home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / emulate / x_comp / tasm / addendum.doc next >
Text File  |  1989-12-23  |  5KB  |  129 lines

  1. This file provides some preliminary information about new features 
  2. or  bug fixes that have gone into TASM version 2.7.6 which are not 
  3. covered in the manual (as of version 2.7):
  4.  
  5. EXIT CODES
  6.  
  7. When TASM terminates, it will return to DOS the following exit 
  8. codes:
  9.  
  10. Exit Code       Meaning
  11. -------------------------------------------
  12. 0               Normal completion, no assembly errors
  13. 1               Normal completion, with assembly errors
  14. 2               Abnormal completion, insufficient memory
  15. 3               Abnormal completion, file access error
  16. 4               Abnormal completion, general error
  17.  
  18. Exit  codes 2 and above will also be accompanied by messages  to  the 
  19. console concerning the error. 
  20.  
  21.  
  22. ERROR CHECKING CONTROL
  23.  
  24. TASM   can  provide  additional  error checking  by  specifying  the 
  25. '-a<mask>' option at the time of execution.  If the '-a' is provided 
  26. without a digit following,  then all the available error checking is 
  27. done.   If a digit follows,  then it is used as a mask to determine 
  28. the  error  checks to be made.  The bits of the mask are defined  as 
  29. follows: 
  30.  
  31. BIT     OPTION FLAG    DESCRIPTION
  32. --------------------------------------------------------------------
  33. 0       -a1            Check for apparent illegal use of indirection
  34. 1       -a2            Check for unused data in the arguments
  35. 2       -a4            Check for duplicate labels
  36. 4       -a8            Check for non-unary operators at start of 
  37.                          expression.
  38.  
  39. Combinations of the above bits can also be used.  For example, '-a5' 
  40. would  enable  the checking for illegal  indirection  and  duplicate 
  41. labels. 
  42.  
  43. Illegal indirection applies to micros that use parenthesis around an 
  44. argument  to indicate indirection.   Since it is always legal to put 
  45. an  extra pair of parenthesis around any expression (as far  as  the 
  46. expression parser is concerned),  the user may think that he/she  is 
  47. indicating  indirection  for an instruction that has no  indirection 
  48. and TASM would not complain.   Enabling this checking will result in 
  49. an error message (warning)  whenever an outer pair of parenthesis is 
  50. used  and the instruction set definition table does  not  explicitly 
  51. indicate that to be a valid for of addressing. 
  52.  
  53. Unused  data  in arguments applies to cases where a single  byte  of 
  54. data is needed from an argument, but the argument contains more than 
  55. one byte of data.   If a full sixteen bit address is used in a 'Load 
  56. Immediate'  type  instruction that needs only a single  byte,  for 
  57. example,  an error message would be generated.   Here is an  example 
  58. (6502 code): 
  59.  
  60. 0001   1234                     .org $1234
  61. tasm: Unused data in MS byte of argument.  Line 0002 in test.asm
  62. 0002   1234 A9 34       start   lda  #start
  63.  
  64. To make the above checks occur whenever you do an assembly, add a 
  65. line like this to your AUTOEXEC.BAT file:
  66.  
  67.         SET TASMOPTS=-a                         
  68.  
  69.  
  70. LINES PER PAGE
  71.  
  72. TASM  defaults  to 63  lines per page when paging is enabled.    The 
  73. number  of  lines  per page can be altered  by  providing  a  number 
  74. immediately after the '-p'  option.   For example,  to set the lines 
  75. per  page  to 53,  use '-p53'.   Three lines are used for  the  page 
  76. header, so 50 lines of code would be shown per page. 
  77.  
  78.  
  79. 6800/6801/6803 TABLE
  80.  
  81. A 6800/6801 (and relatives) table has been added.  Invoke TASM with 
  82. a -68 to use it.  The default instruction set class is the 6800 set.  
  83. To use 6801 instructions, use the -x flag.  
  84.  
  85.  
  86. MOTOROLA HEX OUTPUT
  87.  
  88. TASM  can  now generate Motorola hex object code.   A  new flag  was 
  89. added  to select this as well as other object code modes.   It is as 
  90. follows: 
  91.  
  92.         -g0     for Intel hex (default)
  93.         -g1     for MOS Technology hex (same as -m)
  94.         -g2     for Motorola hex
  95.         -g3     for binary (same as -b)
  96.  
  97.  
  98. Z80 TABLE EXTENDED TO SUPPORT HD64180
  99.  
  100. TASM can now generate code to support the Z80 extensions of the 
  101. HD64180.  Use the -x flag to enable the extensions.
  102.  
  103.  
  104. TMS7000 TABLE
  105.  
  106. Invoke TASM with "-70"  to get the TMS7000 table. Standard TI syntax 
  107. is employed except that the indirect addressing should be  indicated 
  108. with brackets instead of parentheses.  Thus: 
  109.  
  110.         MOVD  %x(B),R0          TI syntax
  111.         MOVD  %x[B],R0          TASM syntax
  112.  
  113.  
  114. AMBIGUITY OF MODULO OPERATOR (%) WITH BINARY PREFIX (BUG)
  115.  
  116. TASM  did  not properly recognize '%'  as a modulo operator  if  the 
  117. following character was a 0 or 1 (regardless of white space).   This 
  118. was made more discriminating, and now assumes % is a modulo operator 
  119. if it is in a position suitable for a binary operator. 
  120.  
  121.  
  122. FULL OUTPUT OF LONG OBJECT CODE LISTS IN LIST FILE
  123.  
  124. TASM did not output more than 6 bytes of object to the list file for 
  125. any single mnemonic or directive (e.g.  ,TEXT "........")   although 
  126. all  data was properly set to the object file.  Object bytes  beyond 
  127. the sixth will appear on the following line in the list file. 
  128.  
  129.