Provided by: simh_3.8.1-6_amd64 bug


       macro8x - PDP8 macro assembler


       macro8x [ -d -m -p -r -x ] inputfile inputfile...


       This  manual page documents briefly the macro8x command.  This is a cross-assembler to for
       PDP/8 assembly language programs.  It will produce an  output  file  in  bin  format,  rim
       format,  and  using  the  appropriate pseudo-ops, a combination of rim and bin formats.  A
       listing file is always produced and with an optional symbol table and/or a  symbol  cross-
       reference  (concordance).   The permanent symbol table can be output in a form that may be
       read back in so a customized permanent symbol table can be produced.  Any detected  errors
       are  output  to a separate file giving the filename in which they were detected along with
       the line number, column number and error message as well  as  marking  the  error  in  the
       listing file.
       The following file name extensions are used:
          .pal    source code (input)
          .lst    assembly listing (output)
          .bin    assembly output in DEC's bin format (output)
          .rim    assembly output in DEC's rim format (output)
          .err    assembly errors detected (if any) (output)
          .prm    permanent symbol table in form suitable for reading after   the EXPUNGE pseudo-


          -d   Dump the symbol table at end of assembly
          -m   Print macro expansions.
          -p   Generate a file with the permanent symbols in it.
               (To get the current symbol table, assemble a file than has only
               a $ in it.)
          -r   Produce output in rim format (default is bin format)
          -x   Generate a cross-reference (concordance) of user symbols.


       Assembler error diagnostics are output to an error file and inserted in the listing  file.
       Each line in the error file has the form

          <filename>(<line>:<col>) : error:  <message> at Loc = <loc>

       An example error message is:

          bintst.pal(17:9) : error:  undefined symbol "UNDEF" at Loc = 07616

       The  error  diagnostics  put  in  the  listing  start  with a two character error code (if
       appropriate) and a short message.  A carat '^' is  placed  under  the  item  in  error  if

       An example error message is:

          17 07616 3000          DCA     UNDEF
          UD undefined                   ^
          18 07617 1777          TAD  I  DUMMY

       When  an  indirect  is  generated, an at character '@' is placed after the the instruction
       value in the listing as an indicator as follows:

          14 03716 1777@         TAD     OFFPAG

       Undefined symbols are marked in the symbol table  listing  by  prepending  a  '?'  to  the
       symbol.   Redefined  symbols are marked in the symbol table listing by prepending a '#' to
       the symbol.  Examples are:

          #REDEF   04567
           SWITCH  07612
          ?UNDEF   00000

       Refer to the (source) code for the diagnostic messages generated.


       Only a minimal effort has been made to keep the listing format  anything  like  the  PAL-8
       listing  format.   The  operation  of the conditional assembly pseudo-ops may not function
       exactly as the DEC versions.  I did not have any examples of these so  the  implementation
       is my interpretation of how they should work.

       The  RIMPUNch  and  BINPUNch pseudo-ops do not change the binary output file type that was
       specified on startup.  This was intentional and allows rim formatted  data  to  be  output
       prior  to the actual binary formatted data.  On UN*X style systems, the same effect can be
       achieved by using the "cat" command, but on DOS/Windows systems, doing this  was  a  major

       The  floating  point  input  does not generate values exactly as the DEC compiler does.  I
       worked out several examples by hand and believe that this implementation is slightly  more
       accurate.   If  I am mistaken, let me know and, if possible, a better method of generating
       the values.


       This assembler was written to support the fleet of PDP-8 systems  used  by  the  Bay  Area
       Rapid  Transit  System.   As of early 1997, this includes about 40 PDP-8/E systems driving
       the train destination signs in passenger stations.


         Gary A. Messenbrink <>
         MACRO8X modifications: Bob Supnik <

       This manual page was written by Vince Mulhollon <>, for the Debian GNU/Linux
       system (but may be used by others).

                                         August 12, 2002                               MACRO8X(1)