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