home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpmhelp / masm.hlp < prev    next >
Text File  |  1994-07-27  |  8KB  |  209 lines

  1. Invoking MACRO-80
  2. MACRO-80 Switches
  3. MACRO-80 Pseudo-Ops
  4. MACRO-80 In-Line Error Messages
  5. MACRO-80 Console Error Messages
  6. Invoking LINK-80
  7. LINK-80 Switches
  8. Invoking LIB-80
  9. LIB-80 Switches
  10. Invoking CREF-80
  11. Debugging MACRO-80 Programs Using DEBUG.MAC
  12. :Invoking MACRO-80
  13.  
  14.      MACRO-80 is invoked by the following command --
  15.  
  16.           M80 obj:fn1.ext,lst:fn2.ext=src:fn3.ext
  17.  
  18. where
  19.      obj:fn1.ext  is the device/filename for the object program
  20.      lst:fn2.ext  is the device/filename for the listing
  21.      src:fn3.ext  is the device/filename for the source
  22.  
  23. :MACRO-80 Switches
  24.  
  25.      The following switches may be specified in the command line --
  26.  
  27.           O    Print all listing addresses in octal
  28.           H    Print all listing addresses in hexadecimal
  29.  
  30.           R    Force generation of an object file
  31.           L    Force generation of a listing file
  32.           C    Force generation of a cross reference file
  33.  
  34.           Z    Assemble Zilog (Z80) mnemonics
  35.           I    Assemble Intel (8080) mnemonics
  36.  
  37.           P     Each /P allocates an extra 256 bytes of stack space for use 
  38. during assembly.  Use /P if stack overflow errors occur during assembly.
  39. :MACRO-80 Pseudo-Ops
  40.  
  41.      The following are the pseudo-ops recognized by MACRO-80 --
  42.  
  43.           ASEG      COMMON    CSEG      DB        DC
  44.           DS        DSEG      DW        END       ENTRY
  45.           PUBLIC    EQU       EXT       EXTRN     NAME
  46.           ORG       PAGE      SET       SUBTTL    TITLE
  47.           .COMMENT  .PRINTX   .RADIX    .REQUEST  .Z80
  48.           .8080     IF        IFT       IFE       IFF
  49.           IF1       IF2       IFDEF     IFNDEF    IFB
  50.           IFNB      ENDIF     .LIST     .XLIST    .CREF
  51.           .XCREF    REPT      ENDM      MACRO     IRP
  52.           IRPC      EXITM     LOCAL     COND      ENDC
  53.           *EJECT    DEFB      DEFS      DEFW      DEFM
  54.           DEFL      GLOBAL    EXTERNAL  INCLUDE   MACLIB
  55.           ELSE      .LALL     .SALL     .XALL
  56. :MACRO-80 In-Line Error Messages
  57.  
  58.      A    Argument Error           O    Bad opcode or objectionable syntax
  59.      C    Conditional nesting err  P    Phase error
  60.      D    Double Defined Symbol    Q    Questionable
  61.      E    External error           R    Relocation
  62.      M    Multiply Defined Symbol  U    Undefined symbol
  63.      N    Number error             V    Value error
  64. :MACRO-80 Console Error Messages
  65.  
  66.      No end statement encountered in input file
  67.           -- no END statement
  68.  
  69.      Unterminated conditional
  70.           -- at least one conditional is unterminated
  71.  
  72.      Unterminated REPT/IRP/IRPC/MACRO
  73.           -- at least one block is unterminated
  74.  
  75.      [xx] [No] Fatal error(s) [,xx warnings]
  76.           -- the number of fatal errors and warnings
  77. :Invoking LINK-80
  78.  
  79.      LINK-80 is invoked by typing --
  80.  
  81.           L80 obj1:filename.ext/sw1,obj2:filename.ext/sw2,...
  82.  
  83. where  objn:filename.ext  denotes a .REL file to be linked and swn  denotes 
  84. switches which control the linking process.
  85. :LINK-80 Switches
  86.  
  87.      /R        Reset -- put loader back in initial state
  88.  
  89.      /E or /E:Name
  90.                Exit LINK-80 and return to CP/M.   Search the system library 
  91. for any undefined references.   /E:Name uses Name for the start address  of 
  92. the program.
  93.  
  94.      /G or /G:Name
  95.                Start  execution  of  the program.   Again,  if  /G:Name  is 
  96. specified, Name defines the start address of execution.
  97.  
  98.      <filename>/N
  99.                Save the binary on disk under the name 'filename.COM'.
  100.  
  101.      /P:adr and /D:adr
  102.                Set  the Program and Data area origins for the next  program 
  103. to be loaded.
  104.  
  105.  
  106.      /U
  107.                List the origin and end of the program and data area as well 
  108. as all undefined globals.
  109.  
  110.      /M
  111.                List  the origin and end of the program and data  area,  all 
  112. defined globals and their values,  and all undefined globals followed by an 
  113. asterisk.
  114.  
  115.      <filename>/S
  116.                Search 'filename.REL' to satisfy references.
  117.  
  118.      /X        If a filename/N was specified,  /X will cause the file to be 
  119. saved in Intel HEX format with a extension of .HEX.
  120.  
  121.      /Y        If a filename/N was specified, /Y will create a filename.SYM 
  122. file when /E is entered.  This file contains the names and addresses of all 
  123. globals for use with SID or ZSID.
  124. :Invoking LIB-80
  125.  
  126.      To invoke LIB-80, type --
  127.  
  128.           LIB
  129.  
  130.      Commands  to LIB-80 consist of an optional destination filename  which 
  131. sets  the  name of the library being created,  followed by an  equal  sign, 
  132. followed by module names separated by commas or filenames with module names 
  133. enclosed in angle brackets separated by commas.
  134.  
  135.      To  select  a  given module from a file,  use the  name  of  the  file 
  136. followed  by  the  module(s)  specified  enclosed  in  angle  brackets  and 
  137. separated  by  commas.   If no modules are selected from a file,  then  all 
  138. modules are selected.
  139.  
  140. :LIB-80 Switches
  141.  
  142.      /O   Set listing radix to Octal
  143.      /H   Set listing radix to Hexadecimal
  144.      /U   List undefineds
  145.      /L   List cross reference
  146.      /C   Create -- start LIB over
  147.      /E   Exit -- rename .LIB to .REL and exit
  148.      /R   Rename -- rename .LIB to .REL
  149. :Invoking CREF-80
  150.  
  151.      CREF-80 is invoked by typing --
  152.  
  153.           CREF80 listing=source
  154.  
  155. where  'listing'  is  the  name of the  file  'listing.LST'  generated  and 
  156. 'source'  s  the  name  of the file  'source.CRF'  generated  by  MACRO-80.  
  157. 'listing' is optional, and, if omitted, the listing file generated is named 
  158. 'source.LST'.
  159. :Debugging MACRO-80 Programs Using DEBUG.MAC
  160.  
  161.      DEBUG.MAC  is  a  package of MACROs which the user may employ  to  aid 
  162. himself  in debugging MACRO-80 programs.   This package contains two  print 
  163. MACROs,  one  register display MACRO,  and one exit MACRO.   In all  cases, 
  164. these MACROs have no net affect on any register.
  165.  
  166.      DEBUG.MAC is used by first specifying it as a MACRO Library within the 
  167. user's program.  This is accomplished by the statement --
  168.  
  169.           MACLIB    DEBUG.MAC
  170.  
  171. as an assembly-language instruction at the beginning of his program.   This 
  172. statement  loads the library DEBUG.MAC and makes its MACROs  available  for 
  173. use.  These MACROs are --
  174.  
  175.  
  176.  Name  # Args  Size (Bytes)   Function                 Example
  177.  ----  ------  ------------   --------                 -------
  178.  
  179.  EXIT    0/1   275 or 263+    Print an exit message,   EXIT
  180.                               print the contents of    EXIT <Exit Cond 1>
  181.                               all registers, and warm
  182.                               boot CP/M
  183.  PRINT     1   19+            Print a message on CON:  PRINT <Message>
  184.  PRINTC    1   17+            Print a char string on   PRINTC <'M1',0DH>
  185.                               CON:
  186.  REGS      0   241            Print the contents of    REGS
  187.                               all registers on CON:
  188.  
  189. Note:  The + after a size indicates that one must add to the indicated size 
  190. the number of characters specified in the parameter.
  191.  
  192. Note:   Messages specified for EXIT and PRINT should not contain restricted 
  193. MACRO-80 symbols (such as !) or an error message will result.
  194.  
  195.      An example of the use of these MACROs follows --
  196.  
  197.           MACLIB    DEBUG.MAC
  198.           -- code --
  199.           REGS                ; print all register values at this point
  200.           -- code --
  201.           PRINT     <Ck Pt 1> ; got to check point 1
  202.           -- code --
  203.           EXIT      <Exit error 1> ; should not have taken this path
  204.           -- code --
  205.           PRINT     <Ck Pt 2> ; got to check point 2
  206.           -- code --
  207.           EXIT                ; normal exit
  208.           -- code --
  209.