TMS7000 Assembler/Linker Operational Notes V3.1 88.005 TMDS Release 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 that will do memory alignment. The directive should have the format: [