PL/M-86 COMPILER    GLOBAL VARIABLES                                             10/5/81    PAGE   1


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



              $title ('GLOBAL VARIABLES')
   1          global:
              do;

              /*

                modified  3/28/81  R. Silberstein
                modified  4/16/81  R. Silberstein
                modified  4/20/81  R. Silberstein
                modified  7/24/81  R. Silberstein
                modified  9/2/81   R. Silberstein

              */

              /*
                      This module defines all the global variables
                      of the assmembler.
              */

              $include (:f1:macro.lit)
          =   $nolist
              $include (:f1:struc.lit)
          =   $nolist
              $INCLUDE (:F1:SUBR2.EXT)
          =   $nolist

  40   1      dcl

                      /* dummy structure forces contiguous storage */

              glob            structure (
              pass            byte,   /* current pass no, 1,2,3 */

                      /* address counters */

              cip             addr,   /* current instruction pointer */
              csegtype        byte,   /* current segment type, code,data,
                                                stack or extra data */
              csegvalue       addr,   /* current segment value */
              csegspec        byte,   /* true if segment value specified */

              escip           addr,   /* current ES instruction pointer */
              cscip           addr,   /* current CS instruction pointer */
              sscip           addr,   /* current SS instruction pointer */
              dscip           addr,   /* current DS instruction pointer */
              curcseg         addr,   /* current code segment value */
              curdseg         addr,   /* current data segment value */
              cursseg         addr,   /* current stack segment value */
              cureseg         addr,   /* current extra segment value */
              cspec           byte,   /* true if code segment value given */
              dspec           byte,   /* true if data segment value given */
PL/M-86 COMPILER    GLOBAL VARIABLES                                             10/5/81    PAGE   2


              sspec           byte,   /* true if stack segment value given */
              espec           byte,   /* true if extra segment value given */


                      /* print output parameters */

              print$on        byte,   /* on/off flag */
              printswitchoff  byte,   /* set/reset by NOLIST/LIST */
              IFLIST          BYTE,   /* SET/RESET BY IFLIST/NOIFLIST */
              maxcol          byte);   /* pagewidth */

  41   1      dcl

              sourcename (12) byte public,   /* source file name */
              sourcestop      byte,          /* used to contain zero */
              savesource (12) byte public,   /* source file during INLUDE file */
              printdevice     byte public,   /* print file device */
              SYMBOLDEVICE    BYTE PUBLIC,   /* SYMBOL FILE DEVICE */
              title (30)      byte public,   /* user specified program title */
              stoptitle       byte,          /* used to contain zero */
              pagesize        byte public,   /* page size */
              simform         byte public,   /* true if formfeed is to be simulated*/
              sourcebuf (80)  byte public,    /* copy of source input to be printed*/
              sourceptr       byte public,    /* source buffer pointer */
              prefix (240)    byte public,    /* prefix to source line */
              prefixptr       byte public,    /* pointer to prefix buffer */
              ABSADDR (4)     BYTE PUBLIC;    /* ABSOLUTE ADDRESS FIELD */


                      /* references to glob structure */

  42   1      dcl
              pass            byte public at(.glob.pass),
              cip             addr public at(.glob.cip),
              csegtype        byte public at(.glob.csegtype),
              csegvalue       addr public at(.glob.csegvalue),
              csegspec        byte public at(.glob.csegspec),
              escip           addr public at(.glob.escip),
              cscip           addr public at(.glob.cscip),
              sscip           addr public at(.glob.sscip),
              dscip           addr public at(.glob.dscip),
              curcseg         addr public at(.glob.curcseg),
              curdseg         addr public at(.glob.curdseg),
              cursseg         addr public at(.glob.cursseg),
              cureseg         addr public at(.glob.cureseg),
              cspec           byte public at(.glob.cspec),
              dspec           byte public at(.glob.dspec),
              sspec           byte public at(.glob.sspec),
              espec           byte public at(.glob.espec),
              print$on        byte public at(.glob.print$on),
              printswitchoff  byte public at(.glob.printswitchoff),
              IFLIST          BYTE PUBLIC AT (.GLOB.IFLIST),
              maxcol          byte public at(.glob.maxcol);

                      /* io error stpublic atus */

  43   1      dcl
PL/M-86 COMPILER    GLOBAL VARIABLES                                             10/5/81    PAGE   3


              errors          addr public,       /* counts no of errors */

                      /* scanner variables: */

              token   struc(                  /* actual token scannes */
                      type    byte,              /* token type, legal values :
                                                      reg       - register
                                                      pseudo    - pseudo code
                                                      string    - text string
                                                      spec      - special character
                                                      number    - number
                                                      operator  - aritmetic operator
                                                      ident     - identifier  */

                      descr   byte,              /* token description, legal values :
                                                      nil       - no specification
                                                      byte      - 8 bit type
                                                      word      - 16 bit type
                                                      dword     - 32 bit type  */

                      value   addr) public,      /* token value  */
              nextch          byte public,    /* next input character (lookahead) */
              acclen          byte public,    /* accumulator length */
              accum(80)       byte public,    /* actual token scanned */
              accumsave(80)   byte public,    /* used to save accumulator */
              acclensave      byte public,
              eofset          byte public,    /* true if end-of-file found */

                    /* Mischellaneous variables: */

              intel$hex$on    byte public,    /* true if INTEL hex ouput format */
              noerror         byte public,    /* errorflag in codemacro decoding */
              errorprinted    byte public,    /* true if an error is printed */
              firstmacroptr   address public, /* pointer at first codemacro */
              macroptr        address public, /* current pointer within macros */
              fullsymbtab     byte public,    /* true if symboltable is full */
              include$on      byte public,    /* true if input from INCLUDE file */
              IFLEVEL         BYTE PUBLIC,    /* IF-ENDIF NESTING LEVEL */
              currentsymbol   symbolstruc     /* current scanned symbol */
                              public,
              symbtabadr      address public, /* pointer at symbol in table */
              nooper          byte    public, /* no of instruction operands */
              operands(4)     operandstruc    /* instruction operands,max 4 */
                                      public,
              codemacroptr    address public, /* pointer to found codemacro */
              help(5)         byte    public, /* scratch area for ascii numbers */
              helpstop        byte,
              i               byte    public, /* scratch variable */
              default$drive   byte    public, /* default disk drive */
              include$default byte    public, /* default disk for include files */
              codemacro$flag  byte    public; /* true if building a codemacro */

  44   1      globalinit: procedure public; /* initiate some global varaiables */
  45   2        stoptitle,sourcestop,helpstop=0;
  46   2        pagesize=66;
  47   2        fullsymbtab,intel$hex$on=false;
  48   2        CALL FILL (0, SIZE (TITLE), .TITLE);
PL/M-86 COMPILER    GLOBAL VARIABLES                                             10/5/81    PAGE   4


  49   2        codemacro$flag=false;
  50   2      end globalinit;


  51   1      end$module global;
PL/M-86 COMPILER    GLOBAL VARIABLES                                             10/5/81    PAGE   5


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


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


     41  01ABH     4  ABSADDR. . . . . .    BYTE ARRAY(4) PUBLIC
     43  01B0H     1  ACCLEN . . . . . .    BYTE PUBLIC
     43  0251H     1  ACCLENSAVE . . . .    BYTE PUBLIC
     43  01B1H    80  ACCUM. . . . . . .    BYTE ARRAY(80) PUBLIC
     43  0201H    80  ACCUMSAVE. . . . .    BYTE ARRAY(80) PUBLIC
      2               ADDR . . . . . . .    LITERALLY         5   11   29   32   35   38   40
                                              42   43 
     19  0000H        ALPHANUMERIC . . .    PROCEDURE BYTE EXTERNAL(5) STACK=0000H
     22  0000H        ASCIICHAR. . . . .    PROCEDURE BYTE EXTERNAL(6) STACK=0000H
     43  0008H     1  BASEINDEX. . . . .    BYTE MEMBER(CURRENTSYMBOL)
     43  0008H     1  BASEINDEX. . . . .    BYTE MEMBER(OPERANDS)
      3               BASEREGBIT . . . .    LITERALLY
      3               BASEREGCOUNT . . .    LITERALLY
      3               BREGBIT. . . . . .    LITERALLY
      3               BREGCOUNT. . . . .    LITERALLY
     16  0000H     1  CH . . . . . . . .    BYTE PARAMETER        17 
     13  0000H     1  CH . . . . . . . .    BYTE PARAMETER        14 
     25  0000H     1  CH . . . . . . . .    BYTE PARAMETER        26 
     10  0000H     1  CH . . . . . . . .    BYTE PARAMETER        11 
     19  0000H     1  CH . . . . . . . .    BYTE PARAMETER        20 
     22  0000H     1  CH . . . . . . . .    BYTE PARAMETER        23 
     40  0001H     2  CIP. . . . . . . .    WORD MEMBER(GLOB)          42 
     42  000FH     2  CIP. . . . . . . .    WORD PUBLIC AT
     43  0290H     1  CODEMACROFLAG. . .    BYTE PUBLIC           49 
      3               CODEMACROHEAD. . .    LITERALLY
     43  000CH     2  CODEMACROPTR . . .    WORD PUBLIC
      2               CR . . . . . . . .    LITERALLY
     42  0017H     2  CSCIP. . . . . . .    WORD PUBLIC AT
     40  0009H     2  CSCIP. . . . . . .    WORD MEMBER(GLOB)          42 
     42  0014H     1  CSEGSPEC . . . . .    BYTE PUBLIC AT
     40  0006H     1  CSEGSPEC . . . . .    BYTE MEMBER(GLOB)          42 
     42  0011H     1  CSEGTYPE . . . . .    BYTE PUBLIC AT
     40  0003H     1  CSEGTYPE . . . . .    BYTE MEMBER(GLOB)          42 
     42  0012H     2  CSEGVALUE. . . . .    WORD PUBLIC AT
     40  0004H     2  CSEGVALUE. . . . .    WORD MEMBER(GLOB)          42 
     42  0025H     1  CSPEC. . . . . . .    BYTE PUBLIC AT
     40  0017H     1  CSPEC. . . . . . .    BYTE MEMBER(GLOB)          42 
     42  001DH     2  CURCSEG. . . . . .    WORD PUBLIC AT
     40  000FH     2  CURCSEG. . . . . .    WORD MEMBER(GLOB)          42 
     42  001FH     2  CURDSEG. . . . . .    WORD PUBLIC AT
     40  0011H     2  CURDSEG. . . . . .    WORD MEMBER(GLOB)          42 
     42  0023H     2  CURESEG. . . . . .    WORD PUBLIC AT
     40  0015H     2  CURESEG. . . . . .    WORD MEMBER(GLOB)          42 
     43  0259H     9  CURRENTSYMBOL. . .    STRUCTURE PUBLIC
     40  0013H     2  CURSSEG. . . . . .    WORD MEMBER(GLOB)          42 
     42  0021H     2  CURSSEG. . . . . .    WORD PUBLIC AT
     28  0000H     2  D. . . . . . . . .    WORD PARAMETER        29 
     37  0000H     2  D. . . . . . . . .    WORD PARAMETER        38 
     34  0000H     2  D. . . . . . . . .    WORD PARAMETER        35 
PL/M-86 COMPILER    GLOBAL VARIABLES                                             10/5/81    PAGE   6


     31  0000H     2  D. . . . . . . . .    WORD PARAMETER        32 
      2               DCL. . . . . . . .    LITERALLY
     37  0000H        DECOUT . . . . . .    PROCEDURE EXTERNAL(11) STACK=0000H
     43  028EH     1  DEFAULTDRIVE . . .    BYTE PUBLIC
     43  0001H     1  DESCR. . . . . . .    BYTE MEMBER(TOKEN)
     13  0000H        DIGIT. . . . . . .    PROCEDURE BYTE EXTERNAL(3) STACK=0000H
     40  000DH     2  DSCIP. . . . . . .    WORD MEMBER(GLOB)          42 
     42  001BH     2  DSCIP. . . . . . .    WORD PUBLIC AT
     40  0018H     1  DSPEC. . . . . . .    BYTE MEMBER(GLOB)          42 
     42  0026H     1  DSPEC. . . . . . .    BYTE PUBLIC AT
      2               ELSEDO . . . . . .    LITERALLY
      2               ENDCASE. . . . . .    LITERALLY
      2               ENDDO. . . . . . .    LITERALLY
      2               ENDFOREVER . . . .    LITERALLY
      2               ENDIF. . . . . . .    LITERALLY
      2               ENDMODULE. . . . .    LITERALLY
      2               ENDOFFILE. . . . .    LITERALLY
      2               ENDPROC. . . . . .    LITERALLY
      2               ENDWHILE . . . . .    LITERALLY
     43  0252H     1  EOFSET . . . . . .    BYTE PUBLIC
     28  0000H        EQUAL. . . . . . .    PROCEDURE BYTE EXTERNAL(8) STACK=0000H
     43  0255H     1  ERRORPRINTED . . .    BYTE PUBLIC
     43  0000H     2  ERRORS . . . . . .    WORD PUBLIC
     42  0015H     2  ESCIP. . . . . . .    WORD PUBLIC AT
     40  0007H     2  ESCIP. . . . . . .    WORD MEMBER(GLOB)          42 
     42  0028H     1  ESPEC. . . . . . .    BYTE PUBLIC AT
     40  001AH     1  ESPEC. . . . . . .    BYTE MEMBER(GLOB)          42 
      2               FALSE. . . . . . .    LITERALLY        47   49 
      7  0000H     2  FCBADR . . . . . .    WORD PARAMETER         8 
      7  0000H        FILEABORT. . . . .    PROCEDURE EXTERNAL(1) STACK=0000H
      3               FILEISTRUCTURE . .    LITERALLY
      3               FILEOSTRUCTURE . .    LITERALLY
     10  0000H        FILL . . . . . . .    PROCEDURE EXTERNAL(2) STACK=0000H         48 
     43  0006H     2  FIRSTMACROPTR. . .    WORD PUBLIC
      2               FOREVER. . . . . .    LITERALLY
      2               FORMFEED . . . . .    LITERALLY
     43  0256H     1  FULLSYMBTAB. . . .    BYTE PUBLIC           47 
     40  000EH    31  GLOB . . . . . . .    STRUCTURE        42 
      1  0000H        GLOBAL . . . . . .    PROCEDURE STACK=0000H
     44  0000H    44  GLOBALINIT . . . .    PROCEDURE PUBLIC STACK=000AH
     43  0287H     5  HELP . . . . . . .    BYTE ARRAY(5) PUBLIC
     43  028CH     1  HELPSTOP . . . . .    BYTE        45 
     31  0000H        HEX1OUT. . . . . .    PROCEDURE EXTERNAL(9) STACK=0000H
     34  0000H        HEX2OUT. . . . . .    PROCEDURE EXTERNAL(10) STACK=0000H
     43  028DH     1  I. . . . . . . . .    BYTE PUBLIC
     43  0258H     1  IFLEVEL. . . . . .    BYTE PUBLIC
     42  002BH     1  IFLIST . . . . . .    BYTE PUBLIC AT
     40  001DH     1  IFLIST . . . . . .    BYTE MEMBER(GLOB)          42 
     43  028FH     1  INCLUDEDEFAULT . .    BYTE PUBLIC
     43  0257H     1  INCLUDEON. . . . .    BYTE PUBLIC
      3               INDEXREGBIT. . . .    LITERALLY
      3               INDEXREGCOUNT. . .    LITERALLY
      2               INIT . . . . . . .    LITERALLY
     43  0253H     1  INTELHEXON . . . .    BYTE PUBLIC           47 
      3               IREGBIT. . . . . .    LITERALLY
      3               IREGCOUNT. . . . .    LITERALLY
     43  0000H     2  LENGTH . . . . . .    WORD MEMBER(OPERANDS)
PL/M-86 COMPILER    GLOBAL VARIABLES                                             10/5/81    PAGE   7


     43  0000H     2  LENGTH . . . . . .    WORD MEMBER(CURRENTSYMBOL)
     16  0000H        LETTER . . . . . .    PROCEDURE BYTE EXTERNAL(4) STACK=0000H
      2               LF . . . . . . . .    LITERALLY
      2               LIT. . . . . . . .    LITERALLY         2    3 
     43  0008H     2  MACROPTR . . . . .    WORD PUBLIC
     42  002CH     1  MAXCOL . . . . . .    BYTE PUBLIC AT
     40  001EH     1  MAXCOL . . . . . .    BYTE MEMBER(GLOB)          42 
     10  0000H     1  N. . . . . . . . .    BYTE PARAMETER        11 
     37  0000H     2  N. . . . . . . . .    WORD PARAMETER        38 
     34  0000H     2  N. . . . . . . . .    WORD PARAMETER        35 
     31  0000H     1  N. . . . . . . . .    BYTE PARAMETER        32 
     28  0000H     1  N. . . . . . . . .    BYTE PARAMETER        29 
     43  01AFH     1  NEXTCH . . . . . .    BYTE PUBLIC
     43  0254H     1  NOERROR. . . . . .    BYTE PUBLIC
     43  0262H     1  NOOPER . . . . . .    BYTE PUBLIC
      3               NOOVERCOUNT. . . .    LITERALLY
      3               NOOVERRIDEBIT. . .    LITERALLY
     43  0006H     2  OFFSET . . . . . .    WORD MEMBER(CURRENTSYMBOL)
     43  0006H     2  OFFSET . . . . . .    WORD MEMBER(OPERANDS)
     43  0263H    36  OPERANDS . . . . .    STRUCTURE ARRAY(4) PUBLIC
      3               OPERANDSTRUC . . .    LITERALLY        43 
      4  0000H        OUTTEXT. . . . . .    PROCEDURE EXTERNAL(0) STACK=0000H
     41  0067H     1  PAGESIZE . . . . .    BYTE PUBLIC           46 
     42  000EH     1  PASS . . . . . . .    BYTE PUBLIC AT
     40  0000H     1  PASS . . . . . . .    BYTE MEMBER(GLOB)          42 
     41  00BAH   240  PREFIX . . . . . .    BYTE ARRAY(240) PUBLIC
     41  01AAH     1  PREFIXPTR. . . . .    BYTE PUBLIC
     41  0046H     1  PRINTDEVICE. . . .    BYTE PUBLIC
     42  0029H     1  PRINTON. . . . . .    BYTE PUBLIC AT
     40  001BH     1  PRINTON. . . . . .    BYTE MEMBER(GLOB)          42 
     42  002AH     1  PRINTSWITCHOFF . .    BYTE PUBLIC AT
     40  001CH     1  PRINTSWITCHOFF . .    BYTE MEMBER(GLOB)          42 
      2               PROC . . . . . . .    LITERALLY        19   22   31   34   37 
     10  0000H     2  PT . . . . . . . .    WORD PARAMETER        11 
      2               REENT. . . . . . .    LITERALLY
     28  0000H     2  S. . . . . . . . .    WORD PARAMETER        29 
     41  003AH    12  SAVESOURCE . . . .    BYTE ARRAY(12) PUBLIC
      3               SEGMBIT. . . . . .    LITERALLY
      3               SEGMCOUNT. . . . .    LITERALLY
     43  0004H     2  SEGMENT. . . . . .    WORD MEMBER(OPERANDS)
     43  0004H     2  SEGMENT. . . . . .    WORD MEMBER(CURRENTSYMBOL)
      3               SEGTYPEBIT . . . .    LITERALLY
      3               SEGTYPECOUNT . . .    LITERALLY
     43  0003H     1  SFLAG. . . . . . .    BYTE MEMBER(OPERANDS)
     43  0003H     1  SFLAG. . . . . . .    BYTE MEMBER(CURRENTSYMBOL)
     41  0068H     1  SIMFORM. . . . . .    BYTE PUBLIC
                      SIZE . . . . . . .    BUILTIN          48 
     41  0069H    80  SOURCEBUF. . . . .    BYTE ARRAY(80) PUBLIC
     41  002DH    12  SOURCENAME . . . .    BYTE ARRAY(12) PUBLIC
     41  00B9H     1  SOURCEPTR. . . . .    BYTE PUBLIC
     41  0039H     1  SOURCESTOP . . . .    BYTE        45 
      2               SPACE. . . . . . .    LITERALLY
     42  0019H     2  SSCIP. . . . . . .    WORD PUBLIC AT
     40  000BH     2  SSCIP. . . . . . .    WORD MEMBER(GLOB)          42 
     42  0027H     1  SSPEC. . . . . . .    BYTE PUBLIC AT
     40  0019H     1  SSPEC. . . . . . .    BYTE MEMBER(GLOB)          42 
     41  0066H     1  STOPTITLE. . . . .    BYTE        45 
PL/M-86 COMPILER    GLOBAL VARIABLES                                             10/5/81    PAGE   8


      2               STRUC. . . . . . .    LITERALLY        43 
     43  0002H     1  STYPE. . . . . . .    BYTE MEMBER(OPERANDS)
     43  0002H     1  STYPE. . . . . . .    BYTE MEMBER(CURRENTSYMBOL)
     41  0047H     1  SYMBOLDEVICE . . .    BYTE PUBLIC
      3               SYMBOLHEAD . . . .    LITERALLY
      3               SYMBOLSTRUC. . . .    LITERALLY        43 
     43  000AH     2  SYMBTABADR . . . .    WORD PUBLIC
      4  0000H     2  T. . . . . . . . .    WORD PARAMETER         5 
      2               TAB. . . . . . . .    LITERALLY
      7  0000H     2  TEXTADR. . . . . .    WORD PARAMETER         8 
      2               THENDO . . . . . .    LITERALLY
     41  0048H    30  TITLE. . . . . . .    BYTE ARRAY(30) PUBLIC           48 
     43  0002H     4  TOKEN. . . . . . .    STRUCTURE PUBLIC
      2               TRUE . . . . . . .    LITERALLY
     43  0000H     1  TYPE . . . . . . .    BYTE MEMBER(TOKEN)
      3               TYPEBIT. . . . . .    LITERALLY
      3               TYPECOUNT. . . . .    LITERALLY
     25  0000H        UPPER. . . . . . .    PROCEDURE BYTE EXTERNAL(7) STACK=0000H
     43  0002H     2  VALUE. . . . . . .    WORD MEMBER(TOKEN)



MODULE INFORMATION:

     CODE AREA SIZE     = 002CH     44D
     CONSTANT AREA SIZE = 0000H      0D
     VARIABLE AREA SIZE = 0291H    657D
     MAXIMUM STACK SIZE = 000AH     10D
     339 LINES READ
     0 PROGRAM ERROR(S)

END OF PL/M-86 COMPILATION
