!----------------------------------------------------------------------- !3. EXTERNAL NAMES: ! ! THESE ARE EXTERNAL VARIABLES WHICH HAVE GENERAL USES. ALL NAMES ! ARE DECLARED EXTERNAL AT THIS LOCATION. FOLLOWING THEM IS A VERY ! BRIEF AND CRYPTIC DESCRIPTION OF THEIR USES. External flg_enable : Boolean, ! ENABLE ANYWHERE INSIDE CURRENT BLOCK level_block : Integer, ! NUMBER OF BLOCKS OUTSIDE CURRENT BLOCK BRAK1 : Ref Block, BRAK2 : Ref Block, CODENAME : Vector[5], CODESIZE : Integer, ! NO. OF PDP-11 WORDS OF CODE PRODUCED CSNAME : Ref Vector[,Byte],! CURRENT CSECT NAME CURROUT : Ref Block, ! NAME OF CURRENT ROUTINE, IF ANY DATASIZE : Integer, ! NO. OF PDP-11 WORDS OF STORAGE RESERVED LABELNO : Integer, DEL : Integer, OLDDELI : Integer, OLDDEL : Integer, pos_atom : Integer, sym_vector : Ref Block, sym_define : Ref Block, sym_linkage : Ref Block, sym_stack : Ref Block, sym_bliss : Ref Block, NIL : Block[SZ_NODE(0)], unit_size : Integer, LEX_FLAGS : BITVECTOR[32], DTPF : Vector, ! INVERSE OF DELIMITER TABLE(DT) LASTPUR : Ref Block, ! SAVED LIST OF PURGED SYMBOL TABLE ENTRIES LOC : Integer, LOOPDEPTH : Integer, ! CURRENT LOOP DEPTH DURING LEXSYNFLO, TNBIND MAINDECL : Boolean, ! COMPILING MAIN MODULE MAXLOCALS : Integer, ! MAX # LOCALS IN A ROUTINE psc_name : Vector[5], MAXPARMS : Integer, ! MAX # PUSHED PARAMETERS IN ANY RTN CALL MODDONE : Boolean, ! FINISHED PARSING OUTER MODULE CODE MODNAME : Ref Vector[,Byte],! MODULE NAME MODMAIN : Ref Vector[,Byte],! NAME OF MAIN MODULE NCELL : Ref Block, NEXTGLOBAL : Integer, ! NUMBER OF LAST GLOBAL ASSIGNED ! (OFFSET INTO GLOBAL REGION). NEXTLOCAL : Integer, ! NUMBER OF LAST LOCAL ASSIGNED ! (OFFSET INTO LOCAL REGION -- STACK). NEXTOWN : Integer, ! NUMBER OF LAST OWN ASSIGNED ! (OFFSET INTO OWN REGION). NINLINES : Integer, ! NUMBER OF "INLINES" IN CURRENT MODULE NLHEAD : Ref Block, NLINES : Integer, ! NUMBER OF LINES ON CURRENT OUTPUT PAGE. NOTREE : Integer, ! STACK OF BITS; BIT ON TOP TURNS OFF GENGT. PURGED : Ref Block, ! POINTS TO LINKED LIST OF PURGED ST ENTRIES RESERVED : Integer, ! BIT MASK OF RESERVED REGISTERS level_routine : Integer, ! BLOCK LEVEL AT ROUTINE BODY LEVEL SSTKLEN : Integer, ! NO. OF WORDS IN RUNTIME STACK STATICSIZE : Integer, level_structure : Integer, ! BLOCK LEVEL AT STRUCTURE DECLARATION LEVEL SYM : Ref Block, TNCHAIN : LSTHDR, ! CHAIN OF TEMP NAME CELLS ptr_actuals : Ref Vector, sym_trap : Ref Block, VTEMPS : Ref Block, VTN : Ref Block, FLAGS : Integer, SCANTYPE : Integer, GETLCNT : Integer, INENABLE : Boolean, NUMPARMS : Integer, ABCOUNT : Integer, LEVEL : Integer, LEVELINC : Integer, flg_plit : Boolean, DYTEMPS : Integer, FINRTNSIZE : Integer, IDENTLEX : Ref Block, MAXLOCALS : Integer, ! THE FOLLOWING "LOCATION" POINTERS REFER TO THE POSITION OF SOME ! PIECE OF SOURCE TEXT, AND ARE IN THE FORMAT: ! (LINE NUMBER) ^ 22 + (CHARACTER POSITION WITHIN LINE) ! LASTEND : BitVector[64], pos_good : Integer, ! LOCATION OF LAST "GOOD" CLOSING BRACKET pos_open : Integer, ! LOCATION OF "CURRENT" OPEN BRACKET pos_del : Integer, ! LOCATION OF LAST DELIMITER SCANNED pos_sym : Integer, ! LOCATION OF LAST NON-DELIMITER SCANNED pos_scan : Integer, ! VALUE OF NATOM WHEN SCANTYPE LAST CHANGED ! (START OF STRING, COMMENT, OR MACRO DEFINITION) ERRLEVEL : Boolean, ! TRUE IF "PANIC SCAN" IS BEING DONE AND ERRORS ! ARE TO BE IGNORED. num_error : Integer, ! COUNT OF FATAL ERRORS FOUND num_warning : Integer, ! COUNT OF NON-FATAL ERRORS FOUND MANYACTS : Integer, ! CURRENT STRUCTURE ACCESS MAY HAVE ! INDEFINITELY MANY ACTUAL PARAMETERS. INDECL : Integer, DEVICE : Integer, flg_stack_addr : Boolean, STK : Vector, ! THE STACK ITSELF TOS : Integer, ! INDEX OF THE (CURRENT) TOP OF STACK LASTMARK : Integer, ! INDEX OF THE LAST FLOOR-MARK ON THE STACK GTHASH : Vector[MAXDELIMITER+2], STEMPS : Ref Block, DTEMPS : Ref Block, LON : Integer, FON : Integer, REGS : Vector[6], STSZ : Vector, HT_NAME : Vector[HTSIZE], HT_THREAD : Vector[HTSIZE], DT : Vector[128]; External tbl_registers : Vector[9]; Bind VVREG = tbl_registers[0] : Ref Block, ! THE PREDEFINED REGISTERS SPREG = tbl_registers[1] : Ref Block, ! VREG, SP, AND PC PCREG = tbl_registers[2] : Ref Block, RR0 = tbl_registers[3] : Ref Block, RR1 = tbl_registers[4] : Ref Block, RR2 = tbl_registers[5] : Ref Block, RR3 = tbl_registers[6] : Ref Block, RR4 = tbl_registers[7] : Ref Block, RR5 = tbl_registers[8] : Ref Block; External sym_remainder : Ref Block, sym_always : Ref Block, sym_otherwise : Ref Block; ! THE STANDARD SUPPORT ROUTINES (AND VARIABLES) External tbl_symbols : Vector[25]; ! ARITHMETIC SUPPORT Bind LEXMUL = tbl_symbols[ 0] : Ref Block, ! MUL (11/20 MULTIPLY ROUTINE) LEXMOD = tbl_symbols[ 1] : Ref Block, ! MODR (11/20 MODULO ROUTINE) LEXDIV = tbl_symbols[ 2] : Ref Block, ! DIVR (11/20 DIVIDE ROUTINE) LEXROT = tbl_symbols[ 3] : Ref Block, ! ROT (ROTATE ROUTINE) LEXSHIFT = tbl_symbols[ 4] : Ref Block, ! SHIFT (11/20 SHIFT ROUTINE) ! REGISTER SAVING/RESTORING LXSAV2 = tbl_symbols[ 5] : Ref Block, LXSAV3 = tbl_symbols[ 6] : Ref Block, LXSAV4 = tbl_symbols[ 7] : Ref Block, LXSAV5 = tbl_symbols[ 8] : Ref Block, ! SIGNAL-ENABLE SUPPORT LXSIGL = tbl_symbols[ 9] : Ref Block, ! $SIGNL (SIGNAL ROUTINE) LXSIG1 = tbl_symbols[10] : Ref Block, ! $SIGN1 (SPECIAL ENTRY POINT) LXENAB = tbl_symbols[11] : Ref Block, ! $ENABL (ENABLE ROUTINE) LXSIGV = tbl_symbols[12] : Ref Block, ! SIGVAL (VARIABLE) LXSIGR = tbl_symbols[13] : Ref Block, ! SIGREG (VARIABLE) ! SIX12 SUPPORT LXINT612 = tbl_symbols[14] : Ref Block, ! FOR INITIALIZATION LXY612 = tbl_symbols[15] : Ref Block, ! FOR FIXING-UP DURING SIGNALS LXE612 = tbl_symbols[16] : Ref Block, ! FOR ROUTINE ENTRY LXX612 = tbl_symbols[17] : Ref Block; ! FOR ROUTINE EXIT ! linkage types External SPEC1LNKG : Ref Block, SPEC2LNKG : Ref Block; ! THE SPECIAL FUNCTIONS External tbl_builtins : Vector[11]; Bind LXHALT = tbl_builtins[ 0] : Ref Block, LXRESET = tbl_builtins[ 1] : Ref Block, LXWAIT = tbl_builtins[ 2] : Ref Block, LXNOP = tbl_builtins[ 3] : Ref Block, LXSWAB = tbl_builtins[ 4] : Ref Block, LXCARRY = tbl_builtins[ 5] : Ref Block, LXOVFLOW = tbl_builtins[ 6] : Ref Block, LXMFPI = tbl_builtins[ 7] : Ref Block, LXMFPD = tbl_builtins[ 8] : Ref Block, LXMTPI = tbl_builtins[ 9] : Ref Block, LXMTPD = tbl_builtins[10] : Ref Block; Macro flg_struct_body = lex_flags[0] %, flg_macro_body = lex_flags[1] %, flg_size_expr = lex_flags[2] %, flg_quote_sym = lex_flags[3] %, flg_quote_del = lex_flags[4] %, flg_quoted = lex_flags[5] %, flg_reserved_word= lex_flags[6] %, flg_unquote = lex_flags[7] %, flg_expand = lex_flags[8] %;