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,NOATMS,NOSETG,NOSET
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
68 NOATMS: 0 ; FLAG DISALLOWING CREATION OF NEW ATOMS
69 NOSETG: 0 ; FLAG DISALLOWING AUTO-CREATE OF GBINDS
70 NOSET: 0 ; FLAG DISALLOWING AUTO-CREATE OF BINDINGS
71 ;PAGE MAP USAGE TABLE FOR MUDDLE
72 ;EACH PAGE IS REPRESENTED BY ONE BIT IN THE TABLE
73 ;IF BIT = 0 THEN PAGE IS FREE OTHERWISE BUSY
74 ;FOR PAGE n USE BIT (n MOD 32.) IN WORD PMAP+n/32.
75 PMAPB": 525252,,525252 ;SECTION 0 -- BELONGS TO AGC
77 525252,,525252 ;SECTION 1 -- BELONGS TO AGC
79 525252,,525252 ;SECTION 2 -- BELONGS TO AGC
81 525252,,525252 ;SECTION 3 -- BELONGS TO AGC
83 525252,,525252 ;SECTION 4 -- BELONGS TO AGC
85 525252,,525252 ;SECTION 5 -- BELONGS TO AGC (DEPENDS ON HIBOT)
87 525252,,525252 ;SECTION 6 -- START OF PURE CORE (FILLED IN BY INITM)
92 NINT==72. ; NUMBER OF POSSIBLE ITS INTERRUPTS
93 NASOCS==159. ; LENGTH OF ASSOCIATION VECTOR
94 PDLBUF==100 ; EXTRA INSURENCE PDL
95 ASOLNT==10 ; LENGTH OF ASSOCIATION BLOCKS
98 .GLOBAL PATCH,TBINIT,LERR,LPROG,PIDSTO,PROCID,PTIME,GCPDL,INTFLG,WTYP1,WTYP2
99 .GLOBAL PAT,PDLBUF,INTINT,PARNEW,GCPVP,START,SWAP,ICR,SPBASE,TPBASE,GLOBAS,GLOBSP,TPBAS
100 .GLOBAL GCSBOT,GCSTOP,FRETOP,GCSNEW,TD.AGC,SPSTOR,PVSTOR
101 .GLOBAL TOPLEVEL,INTNUM,INTVEC,INTOBL,ASOVEC,ERROBL,MAINPR,RESFUN,.BLOCK,ASOLNT,NODES
102 .GLOBAL WRONGT,TTYOPE,OPEN,CLOSE,IOT,ILVAL,MESS,FACTI,REFVEC,MUDOBL,INITIA
103 .GLOBAL LSTRES,BINDID,DUMNOD,PSTAT,1STEPR,IDPROC,EVATYP,APLTYP,PRNTYP,PURVEC,STOLST
105 TVSTRT==1400 ; THIS SHOULD BE LARGE ENOUGH SO THAT WE HAVE ENOUGH
106 ; ROOM FOR INITAL FREE STORAGE
124 TYPTP==.-2 ; POINT TO TOP OF TYPES
126 ; INITIAL SYMBOL TABEL FOR RSUBRS
129 SQUTBL: BLOCK 2*NSUBRS
156 ;THESE ENTRIES MUST NOT MOVE DURING INITILAIZATION
158 ADDTV TVEC,[-2*NUMPRI-2,,TYPVLC]
159 TYPVEC==TVOFF+TVSTRT-1
161 ADDTV TVEC,[-2*NUMPRI-2,,TYPVLC]
162 TYPBOT==TVOFF+TVSTRT-1 ; POINT TO CURRENT TOP OF TYPE VECTORS
164 ;ENTRY FOR ROOT,TTICHN,TTOCHN
167 TTICHN==TVOFF+TVSTRT-1
170 TTOCHN==TVOFF+TVSTRT-1
175 INITIA==TVOFF+TVSTRT-1
177 INTOBL==TVOFF+TVSTRT-1
179 ERROBL==TVOFF+TVSTRT-1
181 MUDOBL==TVOFF+TVSTRT-1
183 GRAPHS==TVOFF+TVSTRT-1
185 INTNUM==TVOFF+TVSTRT-1
186 ADDTV TVEC,[-2*NINT,,INTVCL]
187 INTVEC==TVOFF+TVSTRT-1
188 ADDTV TUVEC,[-NASOCS,,ASOVCL]
189 ASOVEC==TVOFF+TVSTRT-1
191 SPSTOR==TVOFF+TVSTRT-1
193 PVSTOR==TVOFF+TVSTRT-1
195 HASHTB==TVOFF+TVSTRT-1
197 CHNL0"==TVOFF+TVSTRT-1 ;LIST FOR CURRENTLY OPEN PSUEDO CHANNELS
203 CHNL!N==TVOFF+TVSTRT-1
207 REPEAT 15.,ADDCHN \.RPCNT+1
211 IPCS!N==TVOFF+TVSTRT-1
215 REPEAT 15.,ADDIPC \.RPCNT+1
220 CHNL1==TVOFF+TVSTRT-1
222 REPEAT N.CHNS-1,[ADDTV TCHAN,0
226 ADDTV TASOC,[-ASOLNT,,NODLST]
227 NODES==TVOFF+TVSTRT-1
229 ADDTV TASOC,[-ASOLNT,,NODDUM]
230 DUMNOD==TVOFF+TVSTRT-1
233 EVATYP==TVOFF+TVSTRT-1
236 APLTYP==TVOFF+TVSTRT-1
239 PRNTYP==TVOFF+TVSTRT-1
241 ; SLOTS ASSOCIATED WITH TEMPLATE DATA STRUCTURES
244 TD.GET==TVOFF+TVSTRT-1
247 TD.PUT==TVOFF+TVSTRT-1
250 TD.AGC==TVOFF+TVSTRT-1
253 TD.LNT==TVOFF+TVSTRT-1
256 TD.PTY==TVOFF+TVSTRT-1
259 RCYCHN==TVOFF+TVSTRT-1
268 ADDTV TVEC,[-GSPLNT,,GSP]
269 GLOBASE==TVOFF+TVSTRT-1
272 GLOBSP==TVOFF+TVSTRT-1 ;ENTRY FOR CURRENT POINTER TO GLOBAL SP
274 ; POINTER VECTOR TO PURE SHARED RSUBRS
276 PURV: BLOCK 3*20. ; ENOUGH FOR 20 SUCH (INITIALLY)
280 ADDTV TUVEC,[-3*20.,,PURV]
281 PURVEC==TVOFF+TVSTRT-1
284 STOLST==TVOFF+TVSTRT-1
287 GLOTOP==TVOFF+TVSTRT-1
289 ;PROCESS VECTOR FOR GARBAGE COLLECTOR PROCESS
300 ;INITIAL PROCESS VECTOR
302 PVBASE": BLOCK PVLNT*2
308 ;ENTRY FOR PROCESS I.D.
311 ;THE FOLLOWING IRP MAKES SPACE FO9 SAVED ACS
315 IRP A,,[0,A,B,C,D,E,PVP,TVP,FRM,AB,TB,TP,SP,M,R,P]B,,[0
316 0,0,0,0,0,0,0,TTP,TAB,TTB,TTP,0,TCODE,TRSUBR,TPDL]