// Static variables for MICRO // last edited March 12, 1981 10:37 AM // Copyright Xerox Corporation 1979, 1980, 1981 get "micdecl.d" static [ // Scalars version = 30000b+1281 // Release version, 3-12-81 cversion = 20000b+0581 // Compatibility version, 2-5-81 xlistflag = 0 // Expanded listing flag binflag = 0 // Binary output flag ltoflag = 0 // List target only flag ucflag = 0 // Force upper case flag lincnt = 0 // Current line count lbsym = 0 // Last label symbol lblct = 0 // Lincnt at last label stlct = 0 // Lincnt at last statement lchan = 0 // Current listing channel warncnt = 0 // Warning count errcnt = 0 // Error count errmax = 100 // Abort if this many errors lllength = 0 // Expanded listing line length @fstop = 0 // Top of free storage @fslim = 0 // Bottom of free storage area fsgap = 77777b // Minimum free space // Scalars saved on .ST file ("environment values") aevals = 1 // Address of saved scalars, init to (lv aevals)+1 dumpver = 0 // Version number symtab = 0 // Symbol table pointer symvec = 0 // Symbol packing vector nstab = 0 // New symbol table pointer slfl = 0 // Free storage list srover = 0 // Roving free block pointer fsbot = 0 // Bottom of used storage relative to fstop ofbot = 0 // Old bottom of free storage memno = 0 // Max used memory # cmtchar = -1 // special * comment character mbext = 0 // Pointer to extension for binary output targsym = 0 // Relative ep of target address symbol tracecalls = false // If true, trace macro calls ignore = false // If true, ignore all statements not starting with : tracesyms = false // If true, trace all lookups/putins nevals = 15 // Number of saved scalars // Table Pointers typesizes typenames // Streams ("channels") inchan outchan fakeoutchan comchan lstchan erlchan ettchan fixchan ttochan symchan sysdir // BUFFERS stbuf stbend // Renamed external procedures getbits setbits ] let startmicro(blv, params, cfa) be // INITIALIZATION ROUTINE [ aevals = (lv aevals) + 1 // Set up renamed procedures [ external [ GetBits; SetBits ] getbits, setbits = GetBits, SetBits ] // Type of symbol table typesizes = table [ 2; // Nul 1; // (Mac, not used) 2; // Fld: Fsbits 2; // Int: Isval 2; // (adr; not used) 2; // Bi: bsno 1; // Neu 13; // Mem: mswidth, mssize, msno, msdflt, mssource, mssink, // mslist, msltag, (msbt), mspost, mstagmac, mslfields 2; // Und 3; // Bt: bttab, btsize ] typenames = table [ 0; 0; 0; 0; 0; 0; 0; 0; 0; 0 ] typenames!nultype = "null" typenames!mactype = "macro" typenames!fldtype = "field" typenames!inttype = "integer" typenames!adrtype = "address" typenames!bitype = "builtin" typenames!neutype = "neutral" typenames!memtype = "memory" typenames!undtype = "undefined" typenames!bttype = "bittable" micro(blv, params, cfa) ]