Provided by: simh_3.8.1-6.1build2_amd64 bug

NAME

       macro8x - PDP8 macro assembler

SYNOPSIS

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

DESCRIPTION

       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-op.

OPTIONS

          -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.

DIAGNOSTICS

       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 appropriate.

       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.

BUGS

       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 chore.

       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.

HISTORICAL NOTE

       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.

AUTHOR

         Gary A. Messenbrink <gary@netcom.com>
         MACRO8X modifications: Bob Supnik <bob.supnik@ljo.dec.com

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

                                                 August 12, 2002                                      MACRO8X(1)