PL/M-86 COMPILER    ASM86 MAIN PROGRAM                                           10/5/81    PAGE   1


ISIS-II PL/M-86 V2.0 COMPILATION OF MODULE MAINP
OBJECT MODULE PLACED IN MAINP.OBJ
COMPILER INVOKED BY:  :F0: MAINP.PLM DEBUG OPTIMIZE(2) DATE(10/5/81) PAGEWIDTH(100) XREF



              $title ('ASM86 MAIN PROGRAM')
   1          mainp:
              do;
              /*

                      This is the main program of the CP/M 8086
                      assembler. This module activates the i/o
                      modules and goes through the source text
                      in 3 passes. The module then for each source
                      line calls the external subroutine DECODELINE
                      to perform assembly of each line;
              */

              /*

                 modified  3/25/81  R. Silberstein
                 modified  3/28/81  R. Silberstein
                 modified  3/30/81  R. Silberstein
                 modified  4/7/81   R. Silberstein
                 modified  4/20/81  R. Silberstein
                 modified  6/16/81  R. Silberstein
                 modified  7/24/81  R. Silberstein
                 modified  7/27/81  R. Silberstein
                 modified  8/21/81  R. Silberstein

              */

              $include (:f1:macro.lit)
          =   $nolist
              $include (:f1:struc.lit)
          =   $nolist
              $include (:f1:equals.lit)
          =   $nolist
              $include (:f1:dev.lit)
          =   $nolist
              $include (:f1:ermod.lit)
          =   $nolist
              $include (:f1:subr2.ext)
          =   $nolist
              $include (:f1:io.ext)
          =   $nolist
              $include (:f1:files.ext)
          =   $nolist
              $include (:f1:outp.ext)
          =   $nolist
              $include (:f1:scan.ext)
          =   $nolist
              $include (:f1:print.ext)
          =   $nolist
              $include (:f1:symb.ext)
          =   $nolist
PL/M-86 COMPILER    ASM86 MAIN PROGRAM                                           10/5/81    PAGE   2


              $include (:f1:ermod.ext)
          =   $nolist
              $include (:f1:mglob.ext)
          =   $nolist
              $include (:f1:text.ext)
          =   $nolist
              $include (:f1:dline.ext)
          =   $nolist

 218   1      DECLARE ASM86 LABEL PUBLIC;

 219   1      closefiles: procedure;
 220   2        call close$source;
 221   2        call close$print;
 222   2        call close$symbol;
 223   2        call close$hex;
 224   2      end closefiles;

 225   1      open$output$files: procedure;
 226   2        CALL OPENPRINT;
 227   2        CALL OPENHEX;
 228   2        CALL OPENSYMBOL;
 229   2      end open$output$files;

 230   1      userbreak: proc byte;  /* test if keyboard break from user */
 231   2        if not constat then return false; /* test console status */
 233   2        if readconsole then;  /* skip first break key */
 235   2        do forever;
 236   3          call outtext(.usbreaktext); /* USER BREAK. OK (Y/N)? */
 237   3          i=upper(readconsole);
 238   3          call crlf;
 239   3          if i = yes then return true;
 241   3          if i = no then return false;
                end$forever;
 244   2      end userbreak;

 245   1      varinit: proc;
 246   2        CALL FILL (0, .PRINT$ON-.CIP, .CIP);
 247   2        errors=0;
 248   2        printswitchoff,includeon=false;
 249   2        IFLEVEL = 0;
 250   2        IFLIST = TRUE;
 251   2        csegtype=rcs;
 252   2      end varinit;

 253   1      pass0init: proc;  /* initialize pass 0 */
 254   2        simform=false;
 255   2        maxcol=119;
 256   2        if printdevice=console then maxcol=79;
 258   2        call symbinit;  /* initialize symbol table */
 259   2        print$on=false;
 260   2        call varinit;
 261   2      end pass0init;

 262   1      pass1init: proc;  /* initialize for pass 1 */
 263   2        call varinit;
 264   2      end pass1init;
PL/M-86 COMPILER    ASM86 MAIN PROGRAM                                           10/5/81    PAGE   3



 265   1      pass2init: proc;  /* initialize for pass 2 (last pass) */
 266   2        print$on=true;
 267   2        call varinit;
 268   2        call emitinit;
 269   2      end pass2init;

 270   1      pass0terminate: proc;  /* terminate pass 0 */
 271   2        call outtext(.pass0text);  /* End of pass 0 */
 272   2      end pass0terminate;

 273   1      pass1terminate: proc;  /* terminate pass 1 */
 274   2        print$on=false;      /* dummy */
 275   2        call outtext(.pass1text);  /* End of pass 1 */
 276   2      end pass1terminate;

 277   1      pass2terminate: proc;  /* terminate pass 2 (last pass) */
 278   2        DECLARE USEFACT BYTE;
 279   2        USEFACT = (FREEPT-.MEMORY) / ((ENDOFSYMBTAB-.MEMORY) / 100 + 1);
 280   2        errorprinted=false;
 281   2        call emitterminate;    /* terminate hex output module */
 282   2        call symbterminate;    /* print symbols */
 283   2        if printdevice <> console then call printterminate (USEFACT);
 285   2        CALL CLOSEFILES;
 286   2        call outtext(.endtext);  /* END OF ASSEMBLY... */
 287   2        call decout(errors,.help(0));  /* print no of errors */
 288   2        call outtext(.help(2));
 289   2        CALL OUTTEXT (.USEFACTOR);
 290   2        CALL DECOUT (USEFACT, .HELP(0));
 291   2        CALL OUTTEXT (.HELP(3));
 292   2        CALL WRITECONSOLE (25H);   /* % */
 293   2        CALL CRLF;
 294   2      end pass2terminate;

 295   1      include$close: proc (flag);
 296   2        declare flag byte;
 297   2        if eofset and include$on then$do
 299   3          call close$include;
 300   3          include$on,eofset=false;
 301   3          if flag then$do
 303   4            call scan;       /* skip EOF */
 304   4            call scan;       /* prepare for next source line */
 305   4          end$if;
                end$if;
 307   2      end include$close;

 308   1      ASM86:

              call globalinit;      /* initialize some globals */

 309   1      call outtext(.asm86text); /* CP/M 8086 ASSEMBLER.... */

 310   1      if not filesetup then$do
 312   2        call outtext(.parerrtext);  /* PARAMETER ERROR */
 313   2        CALL SYSTEMRESET;
 314   2      end$if;

PL/M-86 COMPILER    ASM86 MAIN PROGRAM                                           10/5/81    PAGE   4


 315   1      CALL OPENSOURCE;

 316   1      CALL OPENOUTPUTFILES;

 317   1      pass=0ffh;
 318   1      do while (pass:=pass+1) < 3;
 319   2        do case pass;
 320   3          call pass0init;    /* pass 0 */
 321   3          call pass1init;    /* pass 1 */
 322   3          call pass2init;    /* pass 2 */
 323   3        end$case;
 324   2        call scaninit;
 325   2        call scan;
 326   2        do while not eofset;
 327   3          if userbreak then$do
 329   4            eofset=true;
 330   4            pass=3;
 331   4          else$do
 333   4            errorprinted=false;
 334   4            call decodeline;
 335   4            call includeclose(false);  /* close include file if necessary */
 336   4            call scan;
 337   4            call includeclose(true);  /* close include file if necessary */
 338   4          end$if;
 339   3        end$while;
 340   2        do case pass;
 341   3          call pass0terminate;  /* pass 0 */
 342   3          call pass1terminate;  /* pass 1 */
 343   3          call pass2terminate;  /* pass 2 */
 344   3          do; end;              /* do nothing if userbreak */
 346   3        end$case;
 347   2      end$while;

 348   1      call system$reset;

 349   1      end$module mainp;
PL/M-86 COMPILER    ASM86 MAIN PROGRAM                                           10/5/81    PAGE   5


CROSS-REFERENCE LISTING
-----------------------


   DEFN  ADDR   SIZE  NAME, ATTRIBUTES, AND REFERENCES
  ----- ------ -----  --------------------------------


      2               ADDR . . . . . . .    LITERALLY        12   18   36   39   42   45  138
                                             179  180  186  189  192  195  198  201  204  207
                                             212 
     26  0000H        ALPHANUMERIC . . .    PROCEDURE BYTE EXTERNAL(5) STACK=0000H
     29  0000H        ASCIICHAR. . . . .    PROCEDURE BYTE EXTERNAL(6) STACK=0000H
    206  0000H     2  ASCIIPTR . . . . .    WORD PARAMETER       207 
    218  0010H        ASM86. . . . . . .    LABEL PUBLIC         308 
    215  0000H     1  ASM86TEXT. . . . .    BYTE ARRAY(1) EXTERNAL(106)         309 
      3               BASEREGBIT . . . .    LITERALLY
      3               BASEREGCOUNT . . .    LITERALLY
      3               BREGBIT. . . . . .    LITERALLY
      3               BREGCOUNT. . . . .    LITERALLY
      5               BYT. . . . . . . .    LITERALLY
     23  0000H     1  CH . . . . . . . .    BYTE PARAMETER        24 
    163  0000H     1  CH . . . . . . . .    BYTE PARAMETER       164 
    102  0000H     1  CH . . . . . . . .    BYTE PARAMETER       103 
    146  0000H     1  CH . . . . . . . .    BYTE PARAMETER       147 
     26  0000H     1  CH . . . . . . . .    BYTE PARAMETER        27 
     17  0000H     1  CH . . . . . . . .    BYTE PARAMETER        18 
     29  0000H     1  CH . . . . . . . .    BYTE PARAMETER        30 
     20  0000H     1  CH . . . . . . . .    BYTE PARAMETER        21 
    105  0000H     1  CH . . . . . . . .    BYTE PARAMETER       106 
     32  0000H     1  CH . . . . . . . .    BYTE PARAMETER        33 
    108  0000H     1  CH . . . . . . . .    BYTE PARAMETER       109 
     64  0000H     1  CHAR . . . . . . .    BYTE PARAMETER        65 
     61  0000H     1  CHAR . . . . . . .    BYTE PARAMETER        62 
    212  0000H     2  CIP. . . . . . . .    WORD EXTERNAL(83)         246 
    215  0000H     1  CLOSEERRTEXT . . .    BYTE ARRAY(1) EXTERNAL(112)
     80  0000H        CLOSEFILE. . . . .    PROCEDURE BYTE EXTERNAL(27) STACK=0000H
    219  00CDH    17  CLOSEFILES . . . .    PROCEDURE STACK=0004H          285 
    131  0000H        CLOSEHEX . . . . .    PROCEDURE EXTERNAL(48) STACK=0000H       223 
    129  0000H        CLOSEINCLUDE . . .    PROCEDURE EXTERNAL(47) STACK=0000H       299 
    133  0000H        CLOSEPRINT . . . .    PROCEDURE EXTERNAL(49) STACK=0000H       221 
    125  0000H        CLOSESOURCE. . . .    PROCEDURE EXTERNAL(45) STACK=0000H       220 
    135  0000H        CLOSESYMBOL. . . .    PROCEDURE EXTERNAL(50) STACK=0000H       222 
      4               CODE . . . . . . .    LITERALLY
     10               CODEMACROERR . . .    LITERALLY
      3               CODEMACROHEAD. . .    LITERALLY
      9               CONSOLE. . . . . .    LITERALLY       256  283 
     67  0000H        CONSTAT. . . . . .    PROCEDURE BYTE EXTERNAL(22) STACK=0000H       231
      2               CR . . . . . . . .    LITERALLY
     92  0000H        CREATEFILE . . . .    PROCEDURE BYTE EXTERNAL(31) STACK=0000H
    100  0000H        CRLF . . . . . . .    PROCEDURE EXTERNAL(34) STACK=0000H       238  293
    212  0000H     1  CSEGTYPE . . . . .    BYTE EXTERNAL(84)         251 
     44  0000H     2  D. . . . . . . . .    WORD PARAMETER        45 
     41  0000H     2  D. . . . . . . . .    WORD PARAMETER        42 
     35  0000H     2  D. . . . . . . . .    WORD PARAMETER        36 
     38  0000H     2  D. . . . . . . . .    WORD PARAMETER        39 
      2               DCL. . . . . . . .    LITERALLY
PL/M-86 COMPILER    ASM86 MAIN PROGRAM                                           10/5/81    PAGE   6


    216  0000H        DECODELINE . . . .    PROCEDURE EXTERNAL(117) STACK=0000H      334 
     44  0000H        DECOUT . . . . . .    PROCEDURE EXTERNAL(11) STACK=0000H       287  290
      4               DELETEDSYMB. . . .    LITERALLY
     83  0000H        DELETEFILE . . . .    PROCEDURE EXTERNAL(28) STACK=0000H
    194  0000H     2  DEST . . . . . . .    WORD PARAMETER       195 
    137  0000H     1  DEV. . . . . . . .    BYTE PARAMETER       138 
     20  0000H        DIGIT. . . . . . .    PROCEDURE BYTE EXTERNAL(3) STACK=0000H
     71  0000H     1  DISKNUMBER . . . .    BYTE PARAMETER        72 
    215  0000H     1  DISKREADERRTEXT. .    BYTE ARRAY(1) EXTERNAL(109)
    215  0000H     1  DISKWRITEERRTXT. .    BYTE ARRAY(1) EXTERNAL(110)
     97  0000H     2  DMAADDRESS . . . .    WORD PARAMETER        98 
      4               DOUBLEDEFINED. . .    LITERALLY
     10               DOUBLEDEFLAB . . .    LITERALLY
     10               DOUBLEDEFSYMB. . .    LITERALLY
     10               DOUBLEDEFVAR . . .    LITERALLY
      5               DWRD . . . . . . .    LITERALLY
    177  0000H        EJECT. . . . . . .    PROCEDURE EXTERNAL(68) STACK=0000H
      2               ELSEDO . . . . . .    LITERALLY
    146  0000H        EMITCODEBYTE . . .    PROCEDURE EXTERNAL(55) STACK=0000H
    142  0000H        EMITINIT . . . . .    PROCEDURE EXTERNAL(53) STACK=0000H       268 
    144  0000H        EMITTERMINATE. . .    PROCEDURE EXTERNAL(54) STACK=0000H       281 
    161  0000H        EMPTYLINE. . . . .    PROCEDURE BYTE EXTERNAL(61) STACK=0000H
     56  0000H     2  ENDBUF . . . . . .    WORD EXTERNAL(17)
      2               ENDCASE. . . . . .    LITERALLY
      2               ENDDO. . . . . . .    LITERALLY
      2               ENDFOREVER . . . .    LITERALLY       242 
      2               ENDIF. . . . . . .    LITERALLY       305 
      2               ENDMODULE. . . . .    LITERALLY
      2               ENDOFFILE. . . . .    LITERALLY
     10               ENDOFLINEERR . . .    LITERALLY
    180  0000H     2  ENDOFSYMBTAB . . .    WORD EXTERNAL(70)         279 
      2               ENDPROC. . . . . .    LITERALLY
    215  0000H     1  ENDTEXT. . . . . .    BYTE ARRAY(1) EXTERNAL(104)         286 
      2               ENDWHILE . . . . .    LITERALLY
    197  0000H        ENTERATTRIBUTES. .    PROCEDURE EXTERNAL(77) STACK=0000H
    212  0000H     1  EOFSET . . . . . .    BYTE EXTERNAL(92)         297  300  326  329 
     35  0000H        EQUAL. . . . . . .    PROCEDURE BYTE EXTERNAL(8) STACK=0000H
    209  0000H        ERRMSG . . . . . .    PROCEDURE EXTERNAL(81) STACK=0000H
    209  0000H     1  ERRNO. . . . . . .    BYTE PARAMETER       210 
      4               ERROR. . . . . . .    LITERALLY
    212  0000H     1  ERRORPRINTED . . .    BYTE EXTERNAL(93)         280  333 
    212  0000H     2  ERRORS . . . . . .    WORD EXTERNAL(91)         247  287 
      2               FALSE. . . . . . .    LITERALLY       232  242  248  254  259  274  280
                                             300  333  335 
     53  0000H     1  FCB. . . . . . . .    BYTE ARRAY(1) EXTERNAL(14)
     54  0000H     1  FCB16. . . . . . .    BYTE ARRAY(1) EXTERNAL(15)
     83  0000H     2  FCBADDRESS . . . .    WORD PARAMETER        84 
     92  0000H     2  FCBADDRESS . . . .    WORD PARAMETER        93 
     89  0000H     2  FCBADDRESS . . . .    WORD PARAMETER        90 
     86  0000H     2  FCBADDRESS . . . .    WORD PARAMETER        87 
     80  0000H     2  FCBADDRESS . . . .    WORD PARAMETER        81 
     77  0000H     2  FCBADDRESS . . . .    WORD PARAMETER        78 
     74  0000H     2  FCBADDRESS . . . .    WORD PARAMETER        75 
     14  0000H     2  FCBADR . . . . . .    WORD PARAMETER        15 
     14  0000H        FILEABORT. . . . .    PROCEDURE EXTERNAL(1) STACK=0000H
      3               FILEISTRUCTURE . .    LITERALLY
      3               FILEOSTRUCTURE . .    LITERALLY
PL/M-86 COMPILER    ASM86 MAIN PROGRAM                                           10/5/81    PAGE   7


    140  0000H        FILESETUP. . . . .    PROCEDURE BYTE EXTERNAL(52) STACK=0000H       310
     10               FILESYNTERR. . . .    LITERALLY
     17  0000H        FILL . . . . . . .    PROCEDURE EXTERNAL(2) STACK=0000H        246 
    137  0000H     2  FILNAM . . . . . .    WORD PARAMETER       138 
    137  0000H     2  FILTYP . . . . . .    WORD PARAMETER       138 
    200  0000H        FINDCODEMACRO. . .    PROCEDURE BYTE EXTERNAL(78) STACK=0000H
    191  0000H        FINDSYMBOL . . . .    PROCEDURE BYTE EXTERNAL(75) STACK=0000H
     10               FIRSTITEM. . . . .    LITERALLY
    295  0004H     1  FLAG . . . . . . .    BYTE PARAMETER AUTOMATIC       296  301 
      2               FOREVER. . . . . .    LITERALLY       235 
      2               FORMFEED . . . . .    LITERALLY
    179  0000H     2  FREEPT . . . . . .    WORD EXTERNAL(69)         279 
    212  0000H     1  FULLSYMBTAB. . . .    BYTE EXTERNAL(94)
     47  0000H     1  FUNC . . . . . . .    BYTE PARAMETER        48 
     50  0000H     1  FUNC . . . . . . .    BYTE PARAMETER        51 
    194  0000H        GETATTRIBUTES. . .    PROCEDURE EXTERNAL(76) STACK=0000H
    213  0000H        GLOBALINIT . . . .    PROCEDURE EXTERNAL(99) STACK=0000H       308 
    212  0000H     5  HELP . . . . . . .    BYTE ARRAY(5) EXTERNAL(97)          287  288  290
                                             291 
     38  0000H        HEX1OUT. . . . . .    PROCEDURE EXTERNAL(9) STACK=0000H
     41  0000H        HEX2OUT. . . . . .    PROCEDURE EXTERNAL(10) STACK=0000H
    212  0000H     1  I. . . . . . . . .    BYTE EXTERNAL(98)         237  239  241 
      4               IDENT. . . . . . .    LITERALLY
    137  0000H        IFILESETUP . . . .    PROCEDURE EXTERNAL(51) STACK=0000H
    212  0000H     1  IFLEVEL. . . . . .    BYTE EXTERNAL(96)         249 
    212  0000H     1  IFLIST . . . . . .    BYTE EXTERNAL(87)         250 
     10               IFPARERR . . . . .    LITERALLY
     10               ILLEGALMACRO . . .    LITERALLY
     10               ILLEGALPSEUDO. . .    LITERALLY
     10               ILLEXPRELEM. . . .    LITERALLY
     10               ILLIOPER . . . . .    LITERALLY
    295  0232H    44  INCLUDECLOSE . . .    PROCEDURE STACK=0006H          335  337 
    212  0000H     1  INCLUDEON. . . . .    BYTE EXTERNAL(95)         248  297  300 
      3               INDEXREGBIT. . . .    LITERALLY
      3               INDEXREGCOUNT. . .    LITERALLY
     50  0000H     2  INFO . . . . . . .    WORD PARAMETER        51 
     47  0000H     2  INFO . . . . . . .    WORD PARAMETER        48 
    113  0000H        ININCLUDEBYTE. . .    PROCEDURE BYTE EXTERNAL(39) STACK=0000H
      2               INIT . . . . . . .    LITERALLY
    215  0000H     1  INITIALS . . . . .    BYTE ARRAY(1) EXTERNAL(102)
    111  0000H        INSOURCEBYTE . . .    PROCEDURE BYTE EXTERNAL(38) STACK=0000H
     10               INSTRERR . . . . .    LITERALLY
     95  0000H        INTERROGATEDISK. .    PROCEDURE BYTE EXTERNAL(32) STACK=0000H
      3               IREGBIT. . . . . .    LITERALLY
      3               IREGCOUNT. . . . .    LITERALLY
      4               LAB. . . . . . . .    LITERALLY
     10               LABOUTOFRANGE. . .    LITERALLY
      8               LEFTBRACKET. . . .    LITERALLY
     23  0000H        LETTER . . . . . .    PROCEDURE BYTE EXTERNAL(4) STACK=0000H
      2               LF . . . . . . . .    LITERALLY
    206  0000H     1  LG . . . . . . . .    BYTE PARAMETER       207 
    203  0000H     1  LG . . . . . . . .    BYTE PARAMETER       204 
    200  0000H     1  LG . . . . . . . .    BYTE PARAMETER       201 
    191  0000H     1  LG . . . . . . . .    BYTE PARAMETER       192 
    188  0000H     1  LG . . . . . . . .    BYTE PARAMETER       189 
    185  0000H     1  LG . . . . . . . .    BYTE PARAMETER       186 
      2               LIT. . . . . . . .    LITERALLY         2    3    4    5    6    7    8
PL/M-86 COMPILER    ASM86 MAIN PROGRAM                                           10/5/81    PAGE   8


                                               9   10 
    188  0000H     2  MACDEFPT . . . . .    WORD PARAMETER       189 
      1  0002H   203  MAINP. . . . . . .    PROCEDURE STACK=0010H
    215  0000H     1  MAKEERRTEXT. . . .    BYTE ARRAY(1) EXTERNAL(111)
    212  0000H     1  MAXCOL . . . . . .    BYTE EXTERNAL(88)         255  257 
         0000H        MEMORY . . . . . .    BYTE ARRAY(0)        279 
     10               MISSIFERR. . . . .    LITERALLY
     10               MISSINGPSEUDO. . .    LITERALLY
     10               MISSINSTR. . . . .    LITERALLY
     10               MISSSEGMINFO . . .    LITERALLY
     10               MISSTYPEINFO . . .    LITERALLY
     47  0000H        MON1 . . . . . . .    PROCEDURE EXTERNAL(12) STACK=0000H
     50  0000H        MON2 . . . . . . .    PROCEDURE BYTE EXTERNAL(13) STACK=0000H
     35  0000H     1  N. . . . . . . . .    BYTE PARAMETER        36 
     17  0000H     1  N. . . . . . . . .    BYTE PARAMETER        18 
     44  0000H     2  N. . . . . . . . .    WORD PARAMETER        45 
     41  0000H     2  N. . . . . . . . .    WORD PARAMETER        42 
     38  0000H     1  N. . . . . . . . .    BYTE PARAMETER        39 
      4               NEGLECTED. . . . .    LITERALLY
     10               NEGLECTERR . . . .    LITERALLY
     10               NESTEDIFERR. . . .    LITERALLY
     10               NESTEDINCLUDEERR .    LITERALLY
    203  0000H        NEWCMBODY. . . . .    PROCEDURE BYTE EXTERNAL(79) STACK=0000H
    206  0000H        NEWCMNAME. . . . .    PROCEDURE BYTE EXTERNAL(80) STACK=0000H
    188  0000H        NEWMACRO . . . . .    PROCEDURE BYTE EXTERNAL(74) STACK=0000H
    185  0000H        NEWSYMBOL. . . . .    PROCEDURE BYTE EXTERNAL(73) STACK=0000H
      5               NIL. . . . . . . .    LITERALLY
    215  0000H     1  NO . . . . . . . .    BYTE EXTERNAL(101)        241 
      3               NOOVERCOUNT. . . .    LITERALLY
      3               NOOVERRIDEBIT. . .    LITERALLY
      9               NULL . . . . . . .    LITERALLY
      4               NUMBER . . . . . .    LITERALLY
      8               OAND . . . . . . .    LITERALLY
      8               OEQ. . . . . . . .    LITERALLY
      8               OGE. . . . . . . .    LITERALLY
      8               OGT. . . . . . . .    LITERALLY
      8               OLAST. . . . . . .    LITERALLY
      8               OLE. . . . . . . .    LITERALLY
      8               OLENGTH. . . . . .    LITERALLY
      8               OLT. . . . . . . .    LITERALLY
      8               OMOD . . . . . . .    LITERALLY
      8               ONE. . . . . . . .    LITERALLY
      8               ONOT . . . . . . .    LITERALLY
      8               OOFFSET. . . . . .    LITERALLY
      8               OOR. . . . . . . .    LITERALLY
    215  0000H     1  OPENERRTEXT. . . .    BYTE ARRAY(1) EXTERNAL(108)
     74  0000H        OPENFILE . . . . .    PROCEDURE BYTE EXTERNAL(25) STACK=0000H
    119  0000H        OPENHEX. . . . . .    PROCEDURE EXTERNAL(42) STACK=0000H       227 
    117  0000H        OPENINCLUDE. . . .    PROCEDURE EXTERNAL(41) STACK=0000H
    225  00DEH    14  OPENOUTPUTFILES. .    PROCEDURE STACK=0004H          316 
    121  0000H        OPENPRINT. . . . .    PROCEDURE EXTERNAL(43) STACK=0000H       226 
     77  0000H        OPENROFILE . . . .    PROCEDURE BYTE EXTERNAL(26) STACK=0000H
    115  0000H        OPENSOURCE . . . .    PROCEDURE EXTERNAL(40) STACK=0000H       315 
    123  0000H        OPENSYMBOL . . . .    PROCEDURE EXTERNAL(44) STACK=0000H       228 
      3               OPERANDSTRUC . . .    LITERALLY
      4               OPERATOR . . . . .    LITERALLY
     10               OPMISMATCH . . . .    LITERALLY
PL/M-86 COMPILER    ASM86 MAIN PROGRAM                                           10/5/81    PAGE   9


      8               OPTR . . . . . . .    LITERALLY
      8               OSEG . . . . . . .    LITERALLY
      8               OSHL . . . . . . .    LITERALLY
      8               OSHORT . . . . . .    LITERALLY
      8               OSHR . . . . . . .    LITERALLY
      8               OTYPE. . . . . . .    LITERALLY
    102  0000H        OUTHEXBYTE . . . .    PROCEDURE EXTERNAL(35) STACK=0000H
    105  0000H        OUTPRINTBYTE . . .    PROCEDURE EXTERNAL(36) STACK=0000H
    108  0000H        OUTSYMBOLBYTE. . .    PROCEDURE EXTERNAL(37) STACK=0000H
     11  0000H        OUTTEXT. . . . . .    PROCEDURE EXTERNAL(0) STACK=0000H        236  271
                                             275  286  288  289  291  309  312 
      8               OXOR . . . . . . .    LITERALLY
    215  0000H     1  PAGETEXT . . . . .    BYTE ARRAY(1) EXTERNAL(103)
    215  0000H     1  PARERRTEXT . . . .    BYTE ARRAY(1) EXTERNAL(107)         312 
    212  0000H     1  PASS . . . . . . .    BYTE EXTERNAL(82)         317  318  319  330  340
    253  015AH    38  PASS0INIT. . . . .    PROCEDURE STACK=000EH          320 
    270  0198H    12  PASS0TERMINATE . .    PROCEDURE STACK=0006H          341 
    215  0000H     1  PASS0TEXT. . . . .    BYTE ARRAY(1) EXTERNAL(115)         271 
    262  0180H     8  PASS1INIT. . . . .    PROCEDURE STACK=000EH          321 
    273  01A4H    17  PASS1TERMINATE . .    PROCEDURE STACK=0006H          342 
    215  0000H     1  PASS1TEXT. . . . .    BYTE ARRAY(1) EXTERNAL(116)         275 
    265  0188H    16  PASS2INIT. . . . .    PROCEDURE STACK=000EH          322 
    277  01B5H   125  PASS2TERMINATE . .    PROCEDURE STACK=0008H          343 
      7               PCODEMACRO . . . .    LITERALLY
      7               PCSEG. . . . . . .    LITERALLY
      7               PDB. . . . . . . .    LITERALLY
      7               PDBIT. . . . . . .    LITERALLY
      7               PDD. . . . . . . .    LITERALLY
      7               PDSEG. . . . . . .    LITERALLY
      7               PDW. . . . . . . .    LITERALLY
      7               PEJECT . . . . . .    LITERALLY
      7               PEND . . . . . . .    LITERALLY
      7               PENDIF . . . . . .    LITERALLY
      7               PENDM. . . . . . .    LITERALLY
      7               PEQU . . . . . . .    LITERALLY
      7               PESEG. . . . . . .    LITERALLY
      7               PIF. . . . . . . .    LITERALLY
      7               PIFLIST. . . . . .    LITERALLY
      7               PINCLUDE . . . . .    LITERALLY
      7               PLIST. . . . . . .    LITERALLY
      7               PMODRM . . . . . .    LITERALLY
      7               PNOIFLIST. . . . .    LITERALLY
      7               PNOLIST. . . . . .    LITERALLY
      7               PNOSEGFIX. . . . .    LITERALLY
      7               PORG . . . . . . .    LITERALLY
      7               PPAGESIZE. . . . .    LITERALLY
      7               PPAGEWIDTH . . . .    LITERALLY
      7               PRB. . . . . . . .    LITERALLY
      7               PRELB. . . . . . .    LITERALLY
      7               PRELW. . . . . . .    LITERALLY
    166  0000H        PRINTCRLF. . . . .    PROCEDURE EXTERNAL(63) STACK=0000H
    212  0000H     1  PRINTDEVICE. . . .    BYTE EXTERNAL(89)         256  283 
      9               PRINTER. . . . . .    LITERALLY
    172  0000H        PRINTINIT. . . . .    PROCEDURE EXTERNAL(66) STACK=0000H
    168  0000H        PRINTNEWPAGE . . .    PROCEDURE EXTERNAL(64) STACK=0000H
    212  0000H     1  PRINTON. . . . . .    BYTE EXTERNAL(85)         246  259  266  274 
    163  0000H        PRINTSINGLEBYTE. .    PROCEDURE EXTERNAL(62) STACK=0000H
PL/M-86 COMPILER    ASM86 MAIN PROGRAM                                           10/5/81    PAGE  10


    170  0000H        PRINTSOURCELINE. .    PROCEDURE EXTERNAL(65) STACK=0000H
    212  0000H     1  PRINTSWITCHOFF . .    BYTE EXTERNAL(86)         248 
    174  0000H        PRINTTERMINATE . .    PROCEDURE EXTERNAL(67) STACK=0000H       284 
      2               PROC . . . . . . .    LITERALLY        26   29   38   41   44  102  105
                                             108  111  113  115  117  119  121  123  125  127
                                             129  131  133  135  137  140  142  144  146  149
                                             151  153  155  158  161  163  166  168  170  172
                                             174  177  181  183  185  188  191  194  197  200
                                             203  206  209  216  230  245  253  262  265  270
                                             273  277  295 
      7               PRS. . . . . . . .    LITERALLY
      7               PRW. . . . . . . .    LITERALLY
      7               PSEGFIX. . . . . .    LITERALLY
      4               PSEUDO . . . . . .    LITERALLY
     10               PSEUDOOPERR. . . .    LITERALLY
      7               PSIMFORM . . . . .    LITERALLY
      7               PSSEG. . . . . . .    LITERALLY
     17  0000H     2  PT . . . . . . . .    WORD PARAMETER        18 
      7               PTITLE . . . . . .    LITERALLY
    203  0000H     2  PTR. . . . . . . .    WORD PARAMETER       204 
      6               RAH. . . . . . . .    LITERALLY
      6               RAL. . . . . . . .    LITERALLY
      6               RAX. . . . . . . .    LITERALLY
      6               RBH. . . . . . . .    LITERALLY
      6               RBL. . . . . . . .    LITERALLY
      6               RBP. . . . . . . .    LITERALLY
      6               RBX. . . . . . . .    LITERALLY
      6               RCH. . . . . . . .    LITERALLY
      6               RCL. . . . . . . .    LITERALLY
      6               RCS. . . . . . . .    LITERALLY       251 
      6               RCX. . . . . . . .    LITERALLY
      6               RDH. . . . . . . .    LITERALLY
      6               RDI. . . . . . . .    LITERALLY
      6               RDL. . . . . . . .    LITERALLY
      6               RDS. . . . . . . .    LITERALLY
      6               RDX. . . . . . . .    LITERALLY
     59  0000H        READCONSOLE. . . .    PROCEDURE BYTE EXTERNAL(19) STACK=0000H       233
                                             237 
     86  0000H        READRECORD . . . .    PROCEDURE BYTE EXTERNAL(29) STACK=0000H
      2               REENT. . . . . . .    LITERALLY
      4               REG. . . . . . . .    LITERALLY
      6               RES. . . . . . . .    LITERALLY
    200  0000H     2  RESULT . . . . . .    WORD PARAMETER       201 
    191  0000H     2  RESULT . . . . . .    WORD PARAMETER       192 
    185  0000H     2  RESULT . . . . . .    WORD PARAMETER       186 
    206  0000H     2  RETURNPTR. . . . .    WORD PARAMETER       207 
    127  0000H        REWINDSOURCE . . .    PROCEDURE EXTERNAL(46) STACK=0000H
      8               RIGHTBRACKET . . .    LITERALLY
      6               RSI. . . . . . . .    LITERALLY
      6               RSP. . . . . . . .    LITERALLY
      6               RSS. . . . . . . .    LITERALLY
     35  0000H     2  S. . . . . . . . .    WORD PARAMETER        36 
    151  0000H        SCAN . . . . . . .    PROCEDURE EXTERNAL(57) STACK=0000H       303  304
                                             325  336 
    149  0000H        SCANINIT . . . . .    PROCEDURE EXTERNAL(56) STACK=0000H       324 
      3               SEGMBIT. . . . . .    LITERALLY
      3               SEGMCOUNT. . . . .    LITERALLY
PL/M-86 COMPILER    ASM86 MAIN PROGRAM                                           10/5/81    PAGE  11


      3               SEGTYPEBIT . . . .    LITERALLY
      3               SEGTYPECOUNT . . .    LITERALLY
     71  0000H        SELECTDISK . . . .    PROCEDURE EXTERNAL(24) STACK=0000H
     97  0000H        SETDMAADDRESS. . .    PROCEDURE EXTERNAL(33) STACK=0000H
    212  0000H     1  SIMFORM. . . . . .    BYTE EXTERNAL(90)         254 
    153  0000H        SKIPRESTOFLINE . .    PROCEDURE EXTERNAL(58) STACK=0000H
    158  0000H        SKIPUNTIL. . . . .    PROCEDURE BYTE EXTERNAL(60) STACK=0000H
    197  0000H     2  SOURCE . . . . . .    WORD PARAMETER       198 
      2               SPACE. . . . . . .    LITERALLY
      4               SPEC . . . . . . .    LITERALLY
    155  0000H        SPECIALTOKEN . . .    PROCEDURE BYTE EXTERNAL(59) STACK=0000H
    200  0000H     2  STRADR . . . . . .    WORD PARAMETER       201 
    191  0000H     2  STRADR . . . . . .    WORD PARAMETER       192 
    188  0000H     2  STRADR . . . . . .    WORD PARAMETER       189 
    185  0000H     2  STRADR . . . . . .    WORD PARAMETER       186 
      4               STRING . . . . . .    LITERALLY
      2               STRUC. . . . . . .    LITERALLY
    197  0000H     2  SYMBADR. . . . . .    WORD PARAMETER       198 
    194  0000H     2  SYMBADR. . . . . .    WORD PARAMETER       195 
    215  0000H     1  SYMBFULLERRTEXT. .    BYTE ARRAY(1) EXTERNAL(113)
    183  0000H        SYMBINIT . . . . .    PROCEDURE EXTERNAL(72) STACK=0000H       258 
      4               SYMBOL . . . . . .    LITERALLY
      3               SYMBOLHEAD . . . .    LITERALLY
      3               SYMBOLSTRUC. . . .    LITERALLY
    181  0000H        SYMBTERMINATE. . .    PROCEDURE EXTERNAL(71) STACK=0000H       282 
     57  0000H        SYSTEMRESET. . . .    PROCEDURE EXTERNAL(18) STACK=0000H       313  348
     11  0000H     2  T. . . . . . . . .    WORD PARAMETER        12 
      2               TAB. . . . . . . .    LITERALLY
     55  0000H     1  TBUFF. . . . . . .    BYTE ARRAY(1) EXTERNAL(16)
     14  0000H     2  TEXTADR. . . . . .    WORD PARAMETER        15 
      2               THENDO . . . . . .    LITERALLY       297  301  310  327 
    158  0000H     1  TOK. . . . . . . .    BYTE PARAMETER       159 
    155  0000H     1  TOK. . . . . . . .    BYTE PARAMETER       156 
      2               TRUE . . . . . . .    LITERALLY       235  240  250  266  329  337 
    146  0000H     1  TYP. . . . . . . .    BYTE PARAMETER       147 
      3               TYPEBIT. . . . . .    LITERALLY
      3               TYPECOUNT. . . . .    LITERALLY
      4               UDEFSYMB . . . . .    LITERALLY
     10               UDEFSYMBOL . . . .    LITERALLY
     32  0000H        UPPER. . . . . . .    PROCEDURE BYTE EXTERNAL(7) STACK=0000H        237
    215  0000H     1  USBREAKTEXT. . . .    BYTE ARRAY(1) EXTERNAL(114)         236 
    278  0000H     1  USEFACT. . . . . .    BYTE       279  284  290 
    174  0000H     1  USEFACT. . . . . .    BYTE PARAMETER       175 
    215  0000H     1  USEFACTOR. . . . .    BYTE ARRAY(1) EXTERNAL(105)         289 
    230  00ECH    63  USERBREAK. . . . .    PROCEDURE BYTE STACK=0006H          327 
      9               VALIDDISK. . . . .    LITERALLY
      4               VARIABLE . . . . .    LITERALLY
    245  012BH    47  VARINIT. . . . . .    PROCEDURE STACK=000AH          260  263  267 
     69  0000H        VERSION. . . . . .    PROCEDURE WORD EXTERNAL(23) STACK=0000H
      5               WRD. . . . . . . .    LITERALLY
     61  0000H        WRITECONSOLE . . .    PROCEDURE EXTERNAL(20) STACK=0000H       292 
     64  0000H        WRITELIST. . . . .    PROCEDURE EXTERNAL(21) STACK=0000H
     89  0000H        WRITERECORD. . . .    PROCEDURE BYTE EXTERNAL(30) STACK=0000H
    215  0000H     1  YES. . . . . . . .    BYTE EXTERNAL(100)        239 
PL/M-86 COMPILER    ASM86 MAIN PROGRAM                                           10/5/81    PAGE  12


MODULE INFORMATION:

     CODE AREA SIZE     = 025EH    606D
     CONSTANT AREA SIZE = 0000H      0D
     VARIABLE AREA SIZE = 0001H      1D
     MAXIMUM STACK SIZE = 0010H     16D
     932 LINES READ
     0 PROGRAM ERROR(S)

END OF PL/M-86 COMPILATION
