1. If you plan to link modules make sure to use the RORG Assembler Directive
in your assembler file instead of AORG. If you must locate your program
segment at an absolute starting address you can use the PROG command in
your linker control file. More on the PROG command and RORG can be found
in the TMS7000 FAMILY DATA MANUAL.
2. The Assembler will abort if the $ASG directive is used to assign a string
that is longer than 6 characters to a symbol.
3. Care should be taken to not inadvertantly run macro names and parameters
togather because the assembler will truncate the macro name and not
generate an error or warning.
4. The description of the TASK command in section 3.3 of the Link Editor
users guide suggest that if a TASK name is not provided the IDT name of the
first module will be used. This is incorrect. If a TASK name is not
provided the task will be named MAIN.
5. The COPY directive should not be used within a macro definition because the
code is inserted at the end of the macro instead of directly after the COPY
directive. In future versions the COPY directive will not be allowed in
macros.
6. The users guide incorrectly implies that the macro name should be included
with the $END command to end a macro definition. Any text on the line
after the $END command is simply a comment.
7. The MLIB directive on the PC has the format:
MLIB 'e:'
The MLIB directive defines the disk ID of the disk containing the macros
(Ex. a:,b:,e:, etc.). The macros need to be located in the same directory
that the source files are in or they can be located on another disk. Also
macros should have no extensions such as .asm, .mac, etc.
8. Care should be taken to insure that all macros are concluded with a $END.
No error will be given but unexpected results could occur.
9. It should be noted that if the program counter reaches >FFFF, the next
increment will cause the counter to start at >0000 without warning or
error message.
10.It should be noted that when using unary operators in an expression the
assembler will give a WARNING - TRAILING OPERANDS message if you put two
identical operators togather such as a++b or a--b. This situation can
be resolved by putting the unary operator in parenthesis such as
a+(+b) or a-(-b).
11.The CSEG directive documentation wrongly suggest that there is an
optional <exp> that will do memory alignment. The directive should
have the format:
[<label>] CSEG ['<string>' [<comment>]]
12.It should be noted that hex constants are not sign extended meaning that
given >F0 as an 8-bit quantity does not give you >FFF0 in a 16-bit
quantity but gives you >00F0. This is important when considering
expressions.