XL Design Inc.
is
TASM 4.0 (XLD)
Turbo ASseMbler for ZX-Spectrum 128k
DESCRIPTION
(C) XL Design Inc. 1996
(C) Sergei Pavlov
_________________________________________
Additional features compared to 3.0 (3.1):
- Built-in cache directory
- Support for the undocumented commands
(SLI, INF, OUT (C), # 00)
- Support for binary arithmetic
- Labels up to 7 bytes
- Additional arithmetic
- Use half of the IX, IY
- In the command PUSH, the possibility of
input registers, separated by commas
- The speed of assembly increased
1.8 times
- The speed at work in the editor increased 2.5-fold
- Fixed bugs related to * BREAK *,
Three quotes, Merge'm etc.
- Length of the object module is calculated from
last recorded in the memory byte
- In DEFS can be used not only
single characters, but also a string.
________________
Download
This process can be called the principal,
therefore I shall tell more about it. First,
you need to do is find
TASM4.0x file and run it from any rubble. If the first
operation was unsuccessful, and you can not find the desired
file, you need to go to 48 with BASIC open port. Do this not
just and very simple. Simply log in 128
BASIC usr and dial 0, then
confirm these things enter key. After
This should print:
CLEAR 24999
OUT 32765,20
RANDOMIZE USR 15619: REM:
LOAD "tasm4.0x" CODE
RANDOMIZE USR 49152
This lecture to launch the finish.
Let me just say that the restart is done
as follows:
RANDOMIZE USR 23600.
Main Menu
The main screen of the main menu is divided
into two main parts (information and
system). The information part looks
as follows:
WORK> A: WORKNAME
MAIN> A: MAINNAME
A - number of the drive on which you currently work,
WORKNAME - name desktop file; MAINNAME - name of the primary
file, ie file from which will be assembling.
Further, the order of the system parts. In
parentheses indicate the button on which the choice is
described by the item.
Edit (E) - Exit edit. If you do not type the name of the
file, then asks name. In the absence of a file on the disk
label looms New File, that predznamenuet opening a new file.
Assemble (A) - Assembling. If
no file name is given, it will be requested. Assembling is a
two-pass (PASS1 and PASS2). In the first pass is prepared
table tags and checks the syntax and
during the second creates a machine code and
substituted values in the table tags.
If the process fails, then fall out something like:
PASS 1:00001 0 METKA LF A, # 03
The number appearing after the "PASS 1" indicates the line
number where an error was made. If before the number is a
symbol of "I", then the error occurred in the connected file.
After the line number is the code errors, and then the string
itself. Error Codes will be discussed in the chapter "Errors."
If assemble successfully, then the following messages:
*** END ASSM ***
Sym: nnnnn (The remaining space under the table
marks)
Run: nnnnn (Address poslednego ORG)
Len: nnnnn (length of the program. Calculated
according to the formula: Len = End-Run, where
End - last recorded in
memory bytes, Run - address village
glacial ORG.)
New Name (N) - Change the name of the working file.
Main File (M) - Change the name of the master file.
Work File (W) - Rebooting the working file. The working file
will be automatically removed from memory, but if he was not
saved, it will be given to the request for its preservation.
Merge File (G) - attaching a file.
Import 2.0 (I) - Importation of
TASM2.0.
Save (S) - Record of the working file. Automatically
overwritten.
Obj Save (O) - Unload an object module. Start and length
parameters are taken from Run and Len.
Load FNT (F) - Podgruzka new font.
Font has a length of 512 bytes, loaded
in the body of the program and has a 1x8 format.
Symbol Lst (Y) - How to print table
tags.
Disk Drive (D) - Change the current drive.
Quit (Q) - ...
Run Prog (R) - Starting from the address
Run.
Catalog (C) - Attempts to remove directory.
Compared with the previous ones in this version
data field a little bit extended.
Beeper (B) - On / Off gurgling when you press the buttons.
Editor
You see on the screen cursor. Cursor
keys to move. There are service
buttons:
+ <1> (Edit) - Tab.
+ <2> (C. Lock) - Pushing the line.
+ <3> (True.Vid) - According to page up.
+ <4> (Inv.Vid) - down the page.
+ <9> (Graph) - Delete the character to the right
of the cursor.
+ <W> - Insert a row.
+ <Q> - Delete a row.
+ <E> - Storing a string in the buffer.
+ - Continuation of the search.
+ (Ext.Mode) - Log in additional
are positive command mode.
Command mode has the following buttons:
<Q> - Exit the editor.
<R> - Inserting a buffer into the text.
- Vacuuming buffer.
- Continue the search with the replacement.
- Search.
<X> - Searching zamenoy. If you find you will receive: Replace
(Y / N / G)
Y - Yes, replace.
N - No.
G - Replace the end of the text.
- In the beginning of the text.
<E> - At the end of the text.
Expression.
In the operands can be written as
separate operands, and expression that specifies a sequence
algebroicheskih and logical constants, labels, address counter.
In expressions that are processed TASM'om, allowed the
following constants (with examples):
decimal constant (30)
hexadecimal constant (# 40 or 40H)
binary constant (% 1101001101)
character constant (A)
and operators (examples in parentheses):
+ Addition (3 +3 = 6)
- Subtraction (3-2 = 1)
* Multiplication (2 * 2 = 4)
/ Division (4 / 2 = 2)
OR (% 100% 111% = 111)
'& AND (% 111' &%% 011 = 011)
! XOR (% 010 "% 111 =% 101)
^ EXCHANGE (exchange of older with younger byte (# 9C40 ^ = #
409C) {HIGH BYTE (Capture High Byte
(# 9C40 {= # 009C)
} LOW BYTE (Taking the Low Byte
(# 9C40} = # 0040)
[ROLL LEFT (16-bit cyclic shift
left. 15-bit is transferred to 0. (% 1 [% = 10)
] ROLL RIGHT (16-bit cyclic shift
right. 0-bit is transferred to the 15. (% 10] =% 1)
New TASM, as the old one, does not put
priorities in arithmetic operations.
All actions are executed sequentially.
Finding the bracket, he keeps only for its closure.
Additional features
In the team INCBIN and INCLUDE been built cache directory,
which is very accelerated disk access for assembly.
Appeared the following commands:
SLI - for unknown reasons was not implemented in previous
versions.
INF (# ED, # 70) - Taken from the STS. In some
catalogs, it has a mnemonic IN F, (C).
OUT (C), # 00 (# ED, # 71) - Just as the INF
was taken from STS'a.
Teams DEFB, DEFW, DEFS, DEFM for
facilities were duplicated on the DB, DW,
DS, DM. Supported by half of the registers
IX and IY, and by typing INC LX, you do not
go in search of errors. For those
who do not know what the LX, explain:
LX-IXlow; HX-IXhigh; LY-IYlow; HY-IYhigh
The command was implemented DEFS repeat option not only
single bytes, but strings. For example: DS 10, "hello", # FF,
"bye", # FF It repeats the whole line 10 times.
To be fully compliant with GENS'om processing error has been
corrected three quotes (""").
In the instructions PUSH and POP was introduced
ability to input registers with a comma. For example string:
PUSH AF, BC, DE, HL
when disassembling will:
PUSH AF
PUSH BC
PUSH DE
PUSH HL
Technical Information
Before the start of TASM loaded in 4
Bank, at the address # C000. After starting the compiler
spreads in 3 bank, where is the table tags. When we use the
following pages: # 11 - For Includ'ov and buffer.
# 13 - There sits Compiler + table tags.
# 14 - Sam TASM.
# 16 - For the MAIN FILE.
# 17 - The first 4 kilobytes used to
cache directory.
The body TASM'a (4 bank) has the following variables:
# C635 (50741) - Attributes screen + color
curb.
# C633/34 (50739/40) - Delays at press
the key.
# C636 (50742) - Beeper Status
(1-Yep, 0-Nop)
Errors
0 - Syntax error
1 - The field tag of more than 7 characters
2 - Do not completely closed brackets
3 - not valid for this command, the number of
4 - missing comma
5 - Invalid command for this expression
mapping
6 - The label is defined more than once
7 - Do not open the brackets where needed
8 - Using reserved words
va inappropriately
9 - Divide by Zero. Overflow, shorter
Bad Number.
F - file not found on the disk (INCLUDE,
INCBIN)
_____________
If you find errors, as well as on the acquisition of the
following versions please contact the editor ZF. We remind you
that TASM4.0 (XLD) is present in APPENDIX.
_________________________________________