Man Linux: Main Page and Category List

NAME

       palbart - BART enhanced PDP8 crossassembler

SYNOPSIS

       palbart [options]inputfile

DESCRIPTION

       This manual page documents briefly the palbart command.  It 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

       A summary of options is included below.

       -d     Show symbol table at end of assembly

       -h     Display help.

       -l     Allow generation of literals (default is no literal  generation)
              Show version of program.

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

       -v     Display version information.

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

REFERENCES

       This assembler is based on the pal assember by:
       Douglas Jones <jones@cs.uiowa.edu> and
       Rich Coon <coon@convexw.convex.com>

DISCLAIMER

       See the symbol table for the set of pseudo-ops supported.

       See the code for pseudo-ops that are not standard for PDP/8 assembly.

       Refer to DEC’s "Programming Languages (for  the  PDP/8)"  for  complete
       documentation of pseudo-ops.

       Refer to DEC’s "Introduction to Programming (for the PDP/8)" or a lower
       level introduction to the assembly language.

WARRANTY

       If you don’t like it the way it works or if  it  doesn’t  work,  that’s
       tough.   You’re  welcome  to  fix it yourself.  That’s what you get for
       using free software.

COPYRIGHT NOTICE

       This is free software.  There is no fee for using it.  You may make any
       changes  that  you  wish  and  also  give  it  away.  If you can make a
       commercial product out of it, fine, but do not put any  limits  on  the
       purchaser’s  right  to do the same.  If you improve it or fix any bugs,
       it would be nice if you told me and  offered  me  a  copy  of  the  new
       version.  Gary Messenbrink <gam@rahul.net>

VERSIONS

        Version  Date    by   Comments
          v1.0  12Apr96  GAM  Original
          v1.1  18Nov96  GAM  Permanent symbol table initialization error.
          v1.2  20Nov96  GAM  Added BINPUNch and RIMPUNch pseudo-operators.
          v1.3  24Nov96  GAM  Added DUBL pseudo-op (24 bit integer constants).
          v1.4  29Nov96  GAM  Fixed bug in checksum generation.
          v2.1  08Dec96  GAM  Added concordance processing (cross  reference).
          v2.2  10Dec96  GAM  Added FLTG psuedo-op (floating point constants).
          v2.3   2Feb97  GAM  Fixed paging problem in cross reference  output.
          v2.4   11Apr97   GAM   Fixed  problem  with some labels being put in
       cross reference multiple times.

AUTHOR

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

                               January 16, 2000