6 .GLOBAL TYPVLC,PBASE,TYPBOT,MAINPR,PTIME,IDPROC,ROOT,TTICHN,TTOCHN,TYPVEC
7 .GLOBAL %UNAM,%JNAM,%XUNA,%XJNA,NOTTY,GCHAPN,INTHLD,PURBOT,PURTOP,N.CHNS,SPCCHK,CURFCN
8 .GLOBAL TD.GET,TD.PUT,TD.LNT,NOSHUF,GLOTOP,RSTACK,RCYCHN,START,TVSTRT,REALTV
9 .GLOBAL IJFNS,IJFNS1,SJFNS,OPSYS,HASHTB,MULTSG,PURBTB,NSEGS,NOATMS,NOSETG,NOSET
29 %UNAM: 0 ; HOLDS UNAME
30 %XUNA: 0 ; HOLDS XUNAME
31 %JNAM: 0 ; HOLDS JNAME
32 %XJNA: 0 ; HOLDS XJNAME
33 OPSYS: -1 ; MINUS ONE (-1) IF ITS
34 RLTSAV: -1 ; SAVED ARG TO REALTIMER
37 IJFNS: 0 ; AGCS JFN,,MUDDLE'S JFN
39 SJFNS: 0 ; SQUOZE JFN,,SAVE JFN
40 OPSYS: 0 ; ZERO IF TOPS20, ONE IF TENEX
41 MULTSG: 0 ; NON-ZERO MEANS TRYING TO USE MULTI SEG STUFF
43 PURBTB: REPEAT MAXSEG,HIBOT
45 IDPROC: 0 ; ENVIRONMENT NUMBER GENERATOR
46 PTIME: 0 ; UNIQUE NUMBER FOR PROCID AND ENVIRONMENTS
47 OBLNT": 13. ; LENGTH OF DEFAULT OBLISTS (SMALL)
50 VECTOP": VECLOC ; TOP OF CURRENT GARBAGE COLLECTED SPACE
53 VECBOT": PARBASE ; BOTTOM OF GARBAGE COLLECTED SPACE
55 CODBOT: 0 ; ABSOLUTE BOTTOM OF CODE
56 CODTOP": PARBASE ; TOP OF IMPURE CODE (INCLUDING "STORAGE")
57 HITOP: 0 ; TOP OF INTERPRETER PURE CORE
60 VECNEW": 0 ; LOCATION FOR OFFSET BETWWEN OLD GCSTOP AND NEW GCSTOP
61 INTFLG: 0 ; INTERRUPT PENDING FLAG
62 MAINPR: 0 ; HOLDS POINTER TO THE MAIN PROCESS
63 NOTTY: 0 ; NON-ZERO==> THIS MUDDLE HAS NO TTY
64 GCHAPN: 0 ; NON-ZERO A GC HAS HAPPENED RECENTLY
65 INTHLD: 0 ; NON-ZERO INTERRUPTS CANT HAPPEN
66 PURBOT: HIBOT ; BOTTOM OF DYNAMICALLY ALLOCATED PURE
67 PURTOP: HIBOT ; TOP OF DYNAMICALLY ALLOCATED PURE
68 SPCCHK: SETZ ; SPECIAL/UNSPECIAL CHECKING?
69 NOSHUF: 0 ; FLAG TO BUILD A NON MOVING HI SEG
70 NOATMS: 0 ; FLAG DISALLOWING CREATION OF NEW ATOMS
71 NOSETG: 0 ; FLAG DISALLOWING AUTO-CREATE OF GBINDS
72 NOSET: 0 ; FLAG DISALLOWING AUTO-CREATE OF BINDINGS
73 ;PAGE MAP USAGE TABLE FOR MUDDLE
74 ;EACH PAGE IS REPRESENTED BY ONE BIT IN THE TABLE
75 ;IF BIT = 0 THEN PAGE IS FREE OTHERWISE BUSY
76 ;FOR PAGE n USE BIT (n MOD 32.) IN WORD PMAP+n/32.
77 PMAPB": 525252,,525252 ;SECTION 0 -- BELONGS TO AGC
79 525252,,525252 ;SECTION 1 -- BELONGS TO AGC
81 525252,,525252 ;SECTION 2 -- BELONGS TO AGC
83 525252,,525252 ;SECTION 3 -- BELONGS TO AGC
85 525252,,525252 ;SECTION 4 -- BELONGS TO AGC
87 525252,,525252 ;SECTION 5 -- BELONGS TO AGC (DEPENDS ON HIBOT)
89 525252,,525252 ;SECTION 6 -- START OF PURE CORE (FILLED IN BY INITM)
94 NINT==72. ; NUMBER OF POSSIBLE ITS INTERRUPTS
95 NASOCS==159. ; LENGTH OF ASSOCIATION VECTOR
96 PDLBUF==100 ; EXTRA INSURENCE PDL
97 ASOLNT==10 ; LENGTH OF ASSOCIATION BLOCKS
100 .GLOBAL PATCH,TBINIT,LERR,LPROG,PIDSTO,PROCID,PTIME,GCPDL,INTFLG,WTYP1,WTYP2
101 .GLOBAL PAT,PDLBUF,INTINT,PARNEW,GCPVP,START,SWAP,ICR,SPBASE,TPBASE,GLOBAS,GLOBSP,TPBAS
102 .GLOBAL GCSBOT,GCSTOP,FRETOP,GCSNEW,TD.AGC,SPSTOR,PVSTOR
103 .GLOBAL TOPLEVEL,INTNUM,INTVEC,INTOBL,ASOVEC,ERROBL,MAINPR,RESFUN,.BLOCK,ASOLNT,NODES
104 .GLOBAL WRONGT,TTYOPE,OPEN,CLOSE,IOT,ILVAL,MESS,FACTI,REFVEC,MUDOBL,INITIA
105 .GLOBAL LSTRES,BINDID,DUMNOD,PSTAT,1STEPR,IDPROC,EVATYP,APLTYP,PRNTYP,PURVEC,STOLST
107 TVSTRT==1400 ; THIS SHOULD BE LARGE ENOUGH SO THAT WE HAVE ENOUGH
108 ; ROOM FOR INITAL FREE STORAGE
126 TYPTP==.-2 ; POINT TO TOP OF TYPES
128 ; INITIAL SYMBOL TABEL FOR RSUBRS
131 SQUTBL: BLOCK 2*NSUBRS
158 ;THESE ENTRIES MUST NOT MOVE DURING INITILAIZATION
160 ADDTV TVEC,[-2*NUMPRI-2,,TYPVLC]
161 TYPVEC==TVOFF+TVSTRT-1
163 ADDTV TVEC,[-2*NUMPRI-2,,TYPVLC]
164 TYPBOT==TVOFF+TVSTRT-1 ; POINT TO CURRENT TOP OF TYPE VECTORS
166 ;ENTRY FOR ROOT,TTICHN,TTOCHN
169 TTICHN==TVOFF+TVSTRT-1
172 TTOCHN==TVOFF+TVSTRT-1
177 INITIA==TVOFF+TVSTRT-1
179 INTOBL==TVOFF+TVSTRT-1
181 ERROBL==TVOFF+TVSTRT-1
183 MUDOBL==TVOFF+TVSTRT-1
185 GRAPHS==TVOFF+TVSTRT-1
187 INTNUM==TVOFF+TVSTRT-1
188 ADDTV TVEC,[-2*NINT,,INTVCL]
189 INTVEC==TVOFF+TVSTRT-1
190 ADDTV TUVEC,[-NASOCS,,ASOVCL]
191 ASOVEC==TVOFF+TVSTRT-1
193 SPSTOR==TVOFF+TVSTRT-1
195 PVSTOR==TVOFF+TVSTRT-1
197 HASHTB==TVOFF+TVSTRT-1
199 CHNL0"==TVOFF+TVSTRT-1 ;LIST FOR CURRENTLY OPEN PSUEDO CHANNELS
205 CHNL!N==TVOFF+TVSTRT-1
209 REPEAT 15.,ADDCHN \.RPCNT+1
213 IPCS!N==TVOFF+TVSTRT-1
217 REPEAT 15.,ADDIPC \.RPCNT+1
222 CHNL1==TVOFF+TVSTRT-1
224 REPEAT N.CHNS-1,[ADDTV TCHAN,0
228 ADDTV TASOC,[-ASOLNT,,NODLST]
229 NODES==TVOFF+TVSTRT-1
231 ADDTV TASOC,[-ASOLNT,,NODDUM]
232 DUMNOD==TVOFF+TVSTRT-1
235 EVATYP==TVOFF+TVSTRT-1
238 APLTYP==TVOFF+TVSTRT-1
241 PRNTYP==TVOFF+TVSTRT-1
243 ; SLOTS ASSOCIATED WITH TEMPLATE DATA STRUCTURES
246 TD.GET==TVOFF+TVSTRT-1
249 TD.PUT==TVOFF+TVSTRT-1
252 TD.AGC==TVOFF+TVSTRT-1
255 TD.LNT==TVOFF+TVSTRT-1
258 TD.PTY==TVOFF+TVSTRT-1
261 RCYCHN==TVOFF+TVSTRT-1
270 ADDTV TVEC,[-GSPLNT,,GSP]
271 GLOBASE==TVOFF+TVSTRT-1
274 GLOBSP==TVOFF+TVSTRT-1 ;ENTRY FOR CURRENT POINTER TO GLOBAL SP
276 ; POINTER VECTOR TO PURE SHARED RSUBRS
278 PURV: BLOCK 3*20. ; ENOUGH FOR 20 SUCH (INITIALLY)
282 ADDTV TUVEC,[-3*20.,,PURV]
283 PURVEC==TVOFF+TVSTRT-1
286 STOLST==TVOFF+TVSTRT-1
289 GLOTOP==TVOFF+TVSTRT-1
291 ;PROCESS VECTOR FOR GARBAGE COLLECTOR PROCESS
302 ;INITIAL PROCESS VECTOR
304 PVBASE": BLOCK PVLNT*2
310 ;ENTRY FOR PROCESS I.D.
313 ;THE FOLLOWING IRP MAKES SPACE FO9 SAVED ACS
317 IRP A,,[0,A,B,C,D,E,PVP,TVP,FRM,AB,TB,TP,SP,M,R,P]B,,[0
318 0,0,0,0,0,0,0,TTP,TAB,TTB,TTP,0,TCODE,TRSUBR,TPDL]