

            pmac (1) --- interface to Primos assembler               08/27/84


          | _U_s_a_g_e

                 pmac {-<option>[<level>]} <input file>
                          [-b [<binary file>]]
                          [-l [<listing file>]]
                          [-z <PMA option>]
                    <option> ::= v | x


            _D_e_s_c_r_i_p_t_i_o_n

                 'Pmac' serves as the Subsystem interface to the Primos macro
                 assembler  (PMA).  It examines its option specifications and
                 checks them for consistency,  provides  Subsystem-compatible
                 default  file  names  for  the  listing  and binary files as
                 needed, and then produces a Primos PMA command and causes it
                 to be executed.

                 OOOppptttiiiooonnnsss

                 The general structure of an 'pmac' option is a  single  let-
                 ter,  possibly  followed  by a "level number" indicating the
                 extent to which an option should be employed.  The following
                 list outlines the options and the meanings of their  various
                 levels.   The  first  line  of each description contains the
                 option letter followed by  its  default  level  enclosed  in
                 parentheses,  the  range  of  available  levels  enclosed in
                 square brackets, and a brief  description  of  the  option's
                 purpose.   In all cases, when an option is specified without
                 a level number, the maximum allowable value is assumed.


                 -v(1) [0..2] - Listing verbosity.

                      Level 0 prevents the listing of source code, but allows
                      the listing  of  error  messages  and  statements  that
                      caused them.

                      Level 1 generates a full source code listing containing
                      the machine code representation of each instruction.

                      Level  2  generates  a  full  source  code listing that
                      includes the code generated by all macro calls.

                 -x(1) [1..2] - Cross-reference listing control.

                      Level 1  causes  the  compiler  to  generate  a  cross-
                      reference  listing  containing all variables referenced
                      in executable statements and omitting  those  that  are
                      declared but never referenced.

                      Level  2  causes the compiler to generate a full cross-
                      reference of all variables.

                 In addition to the options above, the "-z" option allows the
                 explicit passing of a string verbatim into the command line.


            pmac (1)                      - 1 -                      pmac (1)




            pmac (1) --- interface to Primos assembler               08/27/84


                 FFFiiillleee CCCooonnntttrrrooolll

                 The "-b" option is used to select the name of  the  file  to
                 receive the binary object code output of the compiler.  If a
                 file  name  follows  the option, then that file receives the
                 object code.  (Note that if "/dev/null" is specified as  the
                 file  name, no object code will be produced.)  If the option
                 is not specified, or no file  name  follows  it,  a  default
                 filename  is constructed from the input filename by changing
                 its suffix to ".b".  For example, if the input  filename  is
                 "prog.s",  the  binary  file  will be "prog.b"; if the input
                 filename is "foo", the binary file will be "foo.b".

                 The "-l" option is used to select the name of  the  file  to
                 receive  the  listing  generated by the compiler.  If a file
                 name  follows  the  option,  then  that  file  receives  the
                 listing.   The  file name "/dev/null" may be used to inhibit
                 the listing; "/dev/tty" to cause it to appear on the  user's
                 terminal;  "/dev/lps"  to cause it to be spooled to the line
                 printer.  If the "-l" option is  specified  without  a  file
                 name  following  it,  a default filename is constructed from
                 the input filename by changing  its  suffix  to  ".l".   For
                 example,  if  the  input  filename is "gonzo.s", the listing
                 file will be "gonzo.l"; if the input filename is "bar",  the
                 listing  file  will  be  "bar.l".  If the "-l" option is not
                 used, no listing is produced.

                 The input filename may be either  a  disk  file  name  (con-
                 ventionally   ending  in  ".s"  or  ".pma")  or  the  device
                 "/dev/tty", in which case input to the compiler is read from
                 the user's terminal.

                 In summary, then, the default command line for  compiling  a
                 file named "file.s" is

                      pmac -v1x1  file.s  -b file.b  -l /dev/null

                 which corresponds to the PMA command

                      pma -i *>file.s -b *>file.b -l no



            _E_x_a_m_p_l_e_s

                 pmac file.s
                 pmac -x dmach.s -b b_dmach -l l_dmach
                 pmac -v2 macroprog.s -z"-newopt"


            _M_e_s_s_a_g_e_s

                 "Usage:  pmac ..."  for invalid option syntax.
                 "level   numbers   for   -<option>   are   <lower bound>  to
                      <upper bound>"  if  an  out-of-range  level  number  is
                      specified.


            pmac (1)                      - 2 -                      pmac (1)




            pmac (1) --- interface to Primos assembler               08/27/84


                 "missing  input  file  name"  if  no input filename could be
                      found.
                 "<name>:  unreasonable input file name" if  an  attempt  was
                      made  to  read from the null device or the line printer
                      spooler.
                 "<name>:  unreasonable binary file name" if an  attempt  was
                      made  to  produce  object  code on the terminal or line
                      printer spooler.
                 "inconsistency in internal tables" if  the  tables  used  to
                      process  the options are incorrectly constructed.  This
                      message indicates a serious error in the  operation  of
                      'pmac'   that   should   be  reported  to  your  system
                      administrator.

                 Numerous other self-explanatory messages may be generated to
                 diagnose conflicts between selected options.


            _B_u_g_s

                 'Pmac' pays no attention to standard ports.


            _S_e_e _A_l_s_o

          |      ld (1), pmacl (1), bind (3)
































            pmac (1)                      - 3 -                      pmac (1)


