6 .GLOBAL TYPVLC,PBASE,TYPBOT,MAINPR,PTIME,IDPROC,ROOT,TTICHN,TTOCHN,TYPVEC
7 .GLOBAL %UNAM,%JNAM,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
29 %UNAM: 0 ; HOLDS UNAME
30 %JNAM: 0 ; HOLDS JNAME
31 OPSYS: -1 ; MINUS ONE (-1) IF ITS
32 RLTSAV: -1 ; SAVED ARG TO REALTIMER
35 IJFNS: 0 ; AGCS JFN,,MUDDLE'S JFN
37 SJFNS: 0 ; SQUOZE JFN,,SAVE JFN
38 OPSYS: 0 ; ZERO IF TOPS20, ONE IF TENEX
39 MULTSG: 0 ; NON-ZERO MEANS TRYING TO USE MULTI SEG STUFF
41 PURBTB: REPEAT MAXSEG,HIBOT
43 IDPROC: 0 ; ENVIRONMENT NUMBER GENERATOR
44 PTIME: 0 ; UNIQUE NUMBER FOR PROCID AND ENVIRONMENTS
45 OBLNT": 13. ; LENGTH OF DEFAULT OBLISTS (SMALL)
48 VECTOP": VECLOC ; TOP OF CURRENT GARBAGE COLLECTED SPACE
51 VECBOT": PARBASE ; BOTTOM OF GARBAGE COLLECTED SPACE
53 CODBOT: 0 ; ABSOLUTE BOTTOM OF CODE
54 CODTOP": PARBASE ; TOP OF IMPURE CODE (INCLUDING "STORAGE")
55 HITOP: 0 ; TOP OF INTERPRETER PURE CORE
58 VECNEW": 0 ; LOCATION FOR OFFSET BETWWEN OLD GCSTOP AND NEW GCSTOP
59 INTFLG: 0 ; INTERRUPT PENDING FLAG
60 MAINPR: 0 ; HOLDS POINTER TO THE MAIN PROCESS
61 NOTTY: 0 ; NON-ZERO==> THIS MUDDLE HAS NO TTY
62 GCHAPN: 0 ; NON-ZERO A GC HAS HAPPENED RECENTLY
63 INTHLD: 0 ; NON-ZERO INTERRUPTS CANT HAPPEN
64 PURBOT: HIBOT ; BOTTOM OF DYNAMICALLY ALLOCATED PURE
65 PURTOP: HIBOT ; TOP OF DYNAMICALLY ALLOCATED PURE
66 SPCCHK: SETZ ; SPECIAL/UNSPECIAL CHECKING?
67 NOSHUF: 0 ; FLAG TO BUILD A NON MOVING HI SEG
69 ;PAGE MAP USAGE TABLE FOR MUDDLE
70 ;EACH PAGE IS REPRESENTED BY ONE BIT IN THE TABLE
71 ;IF BIT = 0 THEN PAGE IS FREE OTHERWISE BUSY
72 ;FOR PAGE n USE BIT (n MOD 32.) IN WORD PMAP+n/32.
73 PMAPB": 525252,,525252 ;SECTION 0 -- BELONGS TO AGC
75 525252,,525252 ;SECTION 1 -- BELONGS TO AGC
77 525252,,525252 ;SECTION 2 -- BELONGS TO AGC
79 525252,,525252 ;SECTION 3 -- BELONGS TO AGC
81 525252,,525252 ;SECTION 4 -- BELONGS TO AGC
83 525252,,525252 ;SECTION 5 -- BELONGS TO AGC (DEPENDS ON HIBOT)
85 525252,,525252 ;SECTION 6 -- START OF PURE CORE (FILLED IN BY INITM)
90 NINT==72. ; NUMBER OF POSSIBLE ITS INTERRUPTS
91 NASOCS==159. ; LENGTH OF ASSOCIATION VECTOR
92 PDLBUF==100 ; EXTRA INSURENCE PDL
93 ASOLNT==10 ; LENGTH OF ASSOCIATION BLOCKS
96 .GLOBAL PATCH,TBINIT,LERR,LPROG,PIDSTO,PROCID,PTIME,GCPDL,INTFLG,WTYP1,WTYP2
97 .GLOBAL PAT,PDLBUF,INTINT,PARNEW,GCPVP,START,SWAP,ICR,SPBASE,TPBASE,GLOBAS,GLOBSP,TPBAS
98 .GLOBAL GCSBOT,GCSTOP,FRETOP,GCSNEW,TD.AGC,SPSTOR,PVSTOR
99 .GLOBAL TOPLEVEL,INTNUM,INTVEC,INTOBL,ASOVEC,ERROBL,MAINPR,RESFUN,.BLOCK,ASOLNT,NODES
100 .GLOBAL WRONGT,TTYOPE,OPEN,CLOSE,IOT,ILVAL,MESS,FACTI,REFVEC,MUDOBL,INITIA
101 .GLOBAL LSTRES,BINDID,DUMNOD,PSTAT,1STEPR,IDPROC,EVATYP,APLTYP,PRNTYP,PURVEC,STOLST
103 TVSTRT==1400 ; THIS SHOULD BE LARGE ENOUGH SO THAT WE HAVE ENOUGH
104 ; ROOM FOR INITAL FREE STORAGE
122 TYPTP==.-2 ; POINT TO TOP OF TYPES
124 ; INITIAL SYMBOL TABEL FOR RSUBRS
127 SQUTBL: BLOCK 2*NSUBRS
154 ;THESE ENTRIES MUST NOT MOVE DURING INITILAIZATION
156 ADDTV TVEC,[-2*NUMPRI-2,,TYPVLC]
157 TYPVEC==TVOFF+TVSTRT-1
159 ADDTV TVEC,[-2*NUMPRI-2,,TYPVLC]
160 TYPBOT==TVOFF+TVSTRT-1 ; POINT TO CURRENT TOP OF TYPE VECTORS
162 ;ENTRY FOR ROOT,TTICHN,TTOCHN
165 TTICHN==TVOFF+TVSTRT-1
168 TTOCHN==TVOFF+TVSTRT-1
173 INITIA==TVOFF+TVSTRT-1
175 INTOBL==TVOFF+TVSTRT-1
177 ERROBL==TVOFF+TVSTRT-1
179 MUDOBL==TVOFF+TVSTRT-1
181 GRAPHS==TVOFF+TVSTRT-1
183 INTNUM==TVOFF+TVSTRT-1
184 ADDTV TVEC,[-2*NINT,,INTVCL]
185 INTVEC==TVOFF+TVSTRT-1
186 ADDTV TUVEC,[-NASOCS,,ASOVCL]
187 ASOVEC==TVOFF+TVSTRT-1
189 SPSTOR==TVOFF+TVSTRT-1
191 PVSTOR==TVOFF+TVSTRT-1
193 HASHTB==TVOFF+TVSTRT-1
195 CHNL0"==TVOFF+TVSTRT-1 ;LIST FOR CURRENTLY OPEN PSUEDO CHANNELS
201 CHNL!N==TVOFF+TVSTRT-1
205 REPEAT 15.,ADDCHN \.RPCNT+1
209 IPCS!N==TVOFF+TVSTRT-1
213 REPEAT 15.,ADDIPC \.RPCNT+1
218 CHNL1==TVOFF+TVSTRT-1
220 REPEAT N.CHNS-1,[ADDTV TCHAN,0
224 ADDTV TASOC,[-ASOLNT,,NODLST]
225 NODES==TVOFF+TVSTRT-1
227 ADDTV TASOC,[-ASOLNT,,NODDUM]
228 DUMNOD==TVOFF+TVSTRT-1
231 EVATYP==TVOFF+TVSTRT-1
234 APLTYP==TVOFF+TVSTRT-1
237 PRNTYP==TVOFF+TVSTRT-1
239 ; SLOTS ASSOCIATED WITH TEMPLATE DATA STRUCTURES
242 TD.GET==TVOFF+TVSTRT-1
245 TD.PUT==TVOFF+TVSTRT-1
248 TD.AGC==TVOFF+TVSTRT-1
251 TD.LNT==TVOFF+TVSTRT-1
254 TD.PTY==TVOFF+TVSTRT-1
257 RCYCHN==TVOFF+TVSTRT-1
266 ADDTV TVEC,[-GSPLNT,,GSP]
267 GLOBASE==TVOFF+TVSTRT-1
270 GLOBSP==TVOFF+TVSTRT-1 ;ENTRY FOR CURRENT POINTER TO GLOBAL SP
272 ; POINTER VECTOR TO PURE SHARED RSUBRS
274 PURV: BLOCK 3*20. ; ENOUGH FOR 20 SUCH (INITIALLY)
278 ADDTV TUVEC,[-3*20.,,PURV]
279 PURVEC==TVOFF+TVSTRT-1
282 STOLST==TVOFF+TVSTRT-1
285 GLOTOP==TVOFF+TVSTRT-1
287 ;PROCESS VECTOR FOR GARBAGE COLLECTOR PROCESS
298 ;INITIAL PROCESS VECTOR
300 PVBASE": BLOCK PVLNT*2
306 ;ENTRY FOR PROCESS I.D.
309 ;THE FOLLOWING IRP MAKES SPACE FO9 SAVED ACS
313 IRP A,,[0,A,B,C,D,E,PVP,TVP,FRM,AB,TB,TP,SP,M,R,P]B,,[0
314 0,0,0,0,0,0,0,TTP,TAB,TTB,TTP,0,TCODE,TRSUBR,TPDL]