Man Linux: Main Page and Category List


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


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


       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.


       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