╔════════════╗
║ SYSTEM ║
╚════════════╝
In this section we offer you a description of the MASM assembler
──────────────────────────── ─────────────────────────────
┌───────────────────── ──────────────────────┐
│Master Assembler v1.0 for 128k Speccy only!│
│------------------------------------------│
│ INFORMATION FOR BRAKERS │
│ ----------------------- │
└───────────────────── ──────────────────────┘
1. General information.
I (KSA) am not RST7, and have nothing to do with it...
My guide to MASM will be extremely short and unclear.
For those who are already eager to fight, I can only tell you one thing -
You won’t find any particularly striking VISUAL differences from TASM!
Now more details about everything...
2. Main NON-VISUAL differences.
Maximum text size............ about 26800 bytes
Maximum line size......64 characters
Maximum buffer size...................9000 bytes
Maximum number of tags...................1023
Maximum label length...................10 characters
(colon (as in TASM) is ignored!)
Average assembly speed......700 lines/sec
(and in the penand in the second pass)
Macros...................................implemented
Undocumented commands............implemented
Working with halves of index registers...implemented
Once again I would like to separately mention the speed of assembling
blazing. It is 2 times more than that of TASM v3.0 (by Rst7), which
which for two years was considered the fastest assem-
Blair.
3. Download and launch.
Loading from TR-DOS (and automatic launch after it)
carried out by entering the following command:
A>RUN "MASM128K"
Run from BASIC after downloading:
RANDOMIZE USR 23600
WARNING! The stack before launching MASM must be below 32768!!!
(Standard stack is 24575 (#SFFF)).
4.Menu.
Immediately after downloading, copyright notices will appear, after which
The menu bar itself will appear. From it you will have access to the following things:
E - Exit to the editor for typing or editing text
ta.
W - Select the file you will work with (control
carried out using the cursor keys and 'O'+'P'+'Q'+'A'+Space+Enter).
S - Forced writing of text to disk (another request for
the entry is given before the command, which can spoil the text).
G - Attaching a file from disk to a file in memory.
I - Import file from formatTASM v3.0 format
MASM. WARNING!! There should be no lines in the imported file
longer than 64 characters!
L - Open a new file. A name is requested.
N - Change the name of the working file.
C - View directory (you must have a disk in the dis-
guide, but if it’s not there, it’s okay...).
A - Compile the program into object code.
J - View information about the compiled file.
F - Load a new font (2 sectors = 128 characters ( 2
symbol in a familiar place, first Russian letters, then the main one
boron Latin).
Q - Output to STS (v3.2 or v3.3) or MTD (MasTer Debuger).
B - Output in BASIC.
5.Editor.
Control in the editor is carried out using the following keys:
shami:
CS+8 ===> - move the cursor one character to the right.
CS+5 <=== - one character to the left.
||
CS+6 / - one line down.
/
CS+7 || - one line up.
CS+3 T.VIDEO - 20 lines back.
CS+4 I.VIDEO - forward 20 lines.
CS+1 EIDT - tab.
CS+0 DELETE - deletes the character to the left of the cursor.
CS+9 GRAPH - deletes a character at the cursor position.
CS+2 C.LOCK - insert a character at the cursor position.
SS+W <> - insert a line.
SS+Q <= - delete a line.
SS+E >= - take the string into the buffer.
SS+I - continue searchsample.
SS+Enter - write text without exiting the editor.
SS+CS EXT.MODE - enter command mode:
Q - exit to the menu.
S - search for a pattern throughout the text.
U - search up from the cursor.
D - search down from the cursor.
X - search throughout the text and replace.
R - copy lines from the buffer.
R - write the buffer to disk.
G - load buffer from disk.
C - clear buffer.
L - go to the desired line (enter the line number
carried out in HEX).
F - switching the type of display of symbols with co-
dami #60-#7F (Latin capitals / Russian
capital letters).
At the bottom of the screen there is a line with service information:
LINE:0000 COL:00 F:L TEXT:0000/FFFF BUF:0000/4000 FILE:......
1 2 3 4 5 6
1-line number (in HEX) on which the cursor is located.
2-column number (in HEX) in which the cursor is located.
3-current type of display of symbols with codes #60-#7F
4-text size: busy/free.
5-buffer size: busy/free.
6-name of the file being edited.
6.Assembler.
Supports all operations used in TASM, but:1. Acceptable abbreviations: DEFB - DB; DEFW - DW; DEFS - DS.
2.The DEFS command is slightly expanded:
DEFS ,[,...,]
where is the number of repetitions of the list of bytes
(...).
If the second or more parameters are not specified, then they are accepted.
are equal to zero.
3.Macros are implemented in a non-standard way:
BEGIN
.... ;<---macro body.
END
The piece of text between BEGIN.....END will be compiled times
in a row. Up to 8 nestings are allowed. Labels inside a macro
invalid (use $+offset)!
4. I do not recommend pressing BREAK and removing the disk when INCBIN and
INCLUDE.
5.You can enter binary numbers: %100101 (=25Н=#25=37)
6. The $ sign is the current compilation address (as in TASM).
7.In expressions with numbers you can use the actions / * - +
& ' and also @ - XOR.
8. Macro commands of the following type were created:
- DOWN
During assembly it is replaced by the following sequence
Command value (for HL):
INC H
LD A,H
AND #07
JR NZ,$+12
LD A,L
SUB #E0
LD L,A
JR NC,$+6
LD A,HSUB #08
LD H,A
- UP
Similar to DOWN, but on the line up.
- STOPKEY
Jump if key is not pressed on ADRESS. If pa-
there is no parameter, then go to yourself:
XOR A
IN A,(#FE)
CPL
AND #1F
JP Z,ADDRESS (or JR Z,$-6)
- SYSTEM
This is the sequence:
D.I.
IM 1
LD A,#3F
LD I,A
LD IY,#5СЗА
- SYSTEM+
Similar to SYSTEM, but plus one more thing:
EI
RET
7.Error messages.
0 - no such command.
1 - impossible parameter.
2 - no mark.
3 - the mark is already there.
4 - incorrect label.
5 - impossible action.
6 - label table overflow.
! - no file.
? - bullshit.
A - large nesting (for BEGIN...ENDs).
B - there are more ENDs than BEGINs.
Sometimes there are other errors, but when they appear -
-I haven’t really figured it out yet...
8.Memory allocation.
MASMdoes not overwrite the 48th memory (except for the screen) and for its
works only uses pages 1,3,4 and 6.
9.CREDITS & COMING SOON:
CREDITS:
KSA SoftWare productions:
Coding............50%
Original idea........50%
New turbo algorithms..90%
*AIG* productions:
Coding............50%
Original idea........50%
New turbo algorithms..10%
Thanks to Rst7 for TASM 3.0 (MASM written in TASM, ofcoz).
Coming soon from us: MasTer Debuger v1.0, which will
sit in page 7, display text on the second screen and freely
trace both RAM and ROM (48th, 128th and TR-DOS).
Coming soon form KSA: Monster Commander - best file
shell for ZX-SPECTRUM 48/128K!
Share your thoughts about the article