Revisions to TASM not covered in the 2.8 documentation: ENABLE RANGE CHECK FOR 8051 AJMP/ACALL. The assembly control flag (-a) may be used to enable this optional error check. To enable, invoke TASM with '-a10' on the command line. This check will ensure that a branch off the current 2K byte page will result in an error message. WORD ADDRESSING A word (16 bit) addressing mode was added to support those target processors that use word addresses instead of byte addresses (e.g. TMS320). CONVERSION TO MICROSOFT C 6.0 AND TURBO C++ As of version 2.8.3 the TASM executable is built using TURBO C++. Makefiles for both TURBO C and Microsoft C are provided, however. Use: MAKEFILE.TC for TURBO C++ MAKEFILE.MSC for Microsoft C 6.0 LOCAL LABELS Labels that start with the '_' character are considered to be local to a given module and may be reused in subsequent modules. The scope of a module is determined by a new directive (MODULE). Here is an example: .module xxx lda regx jne _skip dec _skip rts .module yyy lda regy jne _skip dec _skip rts In the above example, the _skip label is reused without harm. As a default, local labels are not shown in the label table listing (resulting from the '-l' command line option). See following section for options on the label table listing. LOCALLABELCHAR DIRECTIVE To override the default "_" as the label prefix indicating a local label, use the LOCALLABELCHAR directive. For example, to change the prefix to "?" do this: .LOCALLABELCHAR "?" Be carefull to use only characters that are not operators for expression evaluation. To do so causes ambiguity for the expression evaluator. Some safe characters are "?", "{", and "}". LONG FORM LABEL TABLE LISTING Two options have been added (as suffixes) to the '-l' option which causes a label table to be generated in the listing file. They are as follows: Secondary option Description ------------------------------------------------- l Use long form listing a Show all labels (including local labels) The secondary flag should immediately follow the the '-l'. For example: -l to show non-local labels in the short form -lal to show all labels in the long form listing -ll to show non-local labels in the long form ENHANCED 6800 FAMILY TABLE TO SUPPORT 68HC11 Use the '-x7' (or just 'x') command line option to enable the 68HC11 instructions. TASM deviates from standard Motorola syntax for the BSET, BRSET, BCLR, and BRCLR instructions. TASM requires commas separating all arguments. Motorola assemblers use white space to separate the last one or two arguments for these instructions. Here are examples of each applicable instruction: TASM MOTOROLA ---------------------- -------------------- BCLR addr1,Y,bmsk BCLR addr1,Y bmsk BCLR addr1,X,bmsk BCLR addr1,X bmsk BCLR addr1 ,bmsk BCLR addr1 bmsk BSET addr1,Y,bmsk BSET addr1,Y bmsk BSET addr1,X,bmsk BSET addr1,X bmsk BSET addr1 ,bmsk BSET addr1 bmsk BRCLR addr1,Y,bmsk,lab1 BRCLR addr1,Y bmsk lab1 BRCLR addr1,X,bmsk,lab1 BRCLR addr1,X bmsk lab1 BRCLR addr1 ,bmsk,lab1 BRCLR addr1 bmsk lab1 BRSET addr1,Y,bmsk,lab1 BRSET addr1,Y bmsk lab1 BRSET addr1,X,bmsk,lab1 BRSET addr1,X bmsk lab1 BRSET addr1 ,bmsk,lab1 BRSET addr1 bmsk lab1 COMMENTCHAR DIRECTIVE To enhance compatibility with motorola syntax, the COMMENTCHAR directive can be invoked. For example, .COMMENTCHAR "*" as the first line of an assembly source file will cause TASM to expect a '*' in the first column to indicate that a whole line of comment follows (the TASM default is ';'). Note that this does not change the need for a semicolon to initiate a comment at the end of a line. This is, admittedly, a partial solution, but enables TASM to assemble the output of the Small C compiler for the 68HC11 (SC11). SAMPLE FILES FOR THE SMALL C COMPILER (68HC11) TASM can be used in conjuction with the public domain Small C Compiler by J. Hendrix (as published in Doctor Dobb's Journal). Unarchive the MISC.ZOO file to access the files of interest: booz misc.zoo Refer to the README.C11 file for an explaination of the files. TASM VERSION WITH INCREASED LABEL/MACRO MEMORY SPACE If you encounter error messages such as: unable to malloc for label storage try using TASMB.EXE which is in the MISC.ZOO archive. It is built with a different memory model that results in a larger memory heap from which label and macro storage is allocated. It is about 10% larger and runs about 10% slower than TASM.EXE.