1 TITLE SPECS FOR MUDDLE
\r
6 .GLOBAL TYPVLC,PBASE,TYPBOT,MAINPR,PTIME,IDPROC,ROOT,TTICHN,TTOCHN,TYPVEC
\r
7 .GLOBAL %UNAM,%JNAM,NOTTY,GCHAPN,INTHLD,PURBOT,PURTOP,N.CHNS,SPCCHK,CURFCN
\r
8 .GLOBAL TD.GET,TD.PUT,TD.LNT,NOSHUF
\r
28 %UNAM: 0 ; HOLDS UNAME
\r
29 %JNAM: 0 ; HOLDS JNAME
\r
30 IDPROC: 0 ; ENVIRONMENT NUMBER GENERATOR
\r
31 PTIME: 0 ; UNIQUE NUMBER FOR PROCID AND ENVIRONMENTS
\r
32 OBLNT": 13. ; LENGTH OF DEFAULT OBLISTS (SMALL)
\r
33 VECTOP": VECLOC ; TOP OF CURRENT GARBAGE COLLECTED SPACE
\r
34 VECBOT": VECBASE ; BOTTOM OF GARBAGE COLLECTED SPACE
\r
35 CODBOT: 0 ; ABSOLUTE BOTTOM OF CODE
\r
36 CODTOP": PARBASE ; TOP OF IMPURE CODE (INCLUDING "STORAGE")
\r
37 HITOP: 0 ; TOP OF INTERPRETER PURE CORE
\r
41 VECNEW": 0 ; LOCATION FOR OFFSET BETWWEN OLD GCSTOP AND NEW GCSTOP
\r
42 INTFLG: 0 ; INTERRUPT PENDING FLAG
\r
43 MAINPR: 0 ; HOLDS POINTER TO THE MAIN PROCESS
\r
44 NOTTY: 0 ; NON-ZERO==> THIS MUDDLE HAS NO TTY
\r
45 GCHAPN: 0 ; NON-ZERO A GC HAS HAPPENED RECENTLY
\r
46 INTHLD: 0 ; NON-ZERO INTERRUPTS CANT HAPPEN
\r
47 PURBOT: HIBOT ; BOTTOM OF DYNAMICALLY ALLOCATED PURE
\r
48 PURTOP: HIBOT ; TOP OF DYNAMICALLY ALLOCATED PURE
\r
49 SPCCHK: SETZ ; SPECIAL/UNSPECIAL CHECKING?
\r
50 NOSHUF: 0 ; FLAG TO BUILD A NON MOVING HI SEG
\r
52 ;PAGE MAP USAGE TABLE FOR MUDDLE
\r
53 ;EACH PAGE IS REPRESENTED BY ONE BIT IN THE TABLE
\r
54 ;IF BIT = 0 THEN PAGE IS FREE OTHERWISE BUSY
\r
55 ;FOR PAGE n USE BIT (n MOD 32.) IN WORD PMAP+n/32.
\r
56 PMAP": -1 ;SECTION 0 -- BELONGS TO AGC
\r
57 -1 ;SECTION 1 -- BELONGS TO AGC
\r
58 -1 ;SECTION 2 -- BELONGS TO AGC
\r
59 -1 ;SECTION 3 -- BELONGS TO AGC
\r
60 -1 ;SECTION 4 -- BELONGS TO AGC
\r
61 -1 ;SECTION 5 -- BELONGS TO AGC (DEPENDS ON HIBOT)
\r
62 -1 ;SECTION 6 -- START OF PURE CORE (FILLED IN BY INITM)
\r
63 -1 ;SECTION 7 -- LAST TWO PAGES BELONG TO AGC'S PAGE MAPPER
\r
66 NINT==72. ; NUMBER OF POSSIBLE ITS INTERRUPTS
\r
67 NASOCS==159. ; LENGTH OF ASSOCIATION VECTOR
\r
68 PDLBUF==100 ; EXTRA INSURENCE PDL
\r
69 ASOLNT==10 ; LENGTH OF ASSOCIATION BLOCKS
\r
72 .GLOBAL PATCH,TBINIT,LERR,LPROG,PIDSTO,PROCID,PTIME,GCPDL,INTFLG,WTYP1,WTYP2
\r
73 .GLOBAL PAT,PDLBUF,INTINT,PARNEW,GCPVP,START,SWAP,ICR,SPBASE,TPBASE,GLOBAS,GLOBSP,TPBAS
\r
74 .GLOBAL TOPLEVEL,INTNUM,INTVEC,INTOBL,ASOVEC,ERROBL,MAINPR,RESFUN,.BLOCK,ASOLNT,NODES
\r
75 .GLOBAL WRONGT,TTYOPE,OPEN,CLOSE,IOT,ILVAL,MESS,FACTI,REFVEC,MUDOBL,INITIA
\r
76 .GLOBAL LSTRES,BINDID,DUMNOD,PSTAT,1STEPR,IDPROC,EVATYP,APLTYP,PRNTYP,PURVEC,STOLST
\r
80 TVBASE": BLOCK TVLNT
\r
94 TYPTP==.-2 ; POINT TO TOP OF TYPES
\r
96 ; INITIAL SYMBOL TABEL FOR RSUBRS
\r
99 SQUTBL: BLOCK 2*NSUBRS
\r
103 INTVCL: BLOCK 2*NINT
\r
114 NODDUM: BLOCK ASOLNT
\r
120 ASOVCL: BLOCK NASOCS
\r
126 ;THESE ENTRIES MUST NOT MOVE DURING INITILAIZATION
\r
128 ADDTV TVEC,[-2*NUMPRI-2,,TYPVLC]
\r
131 ADDTV TVEC,[-2*NUMPRI-2,,TYPVLC]
\r
132 TYPBOT==TVOFF-1 ; POINT TO CURRENT TOP OF TYPE VECTORS
\r
134 ;ENTRY FOR ROOT,TTICHN,TTOCHN
\r
156 ADDTV TVEC,[-2*NINT,,INTVCL]
\r
158 ADDTV TUVEC,[-NASOCS,,ASOVCL]
\r
162 CHNL0"==TVOFF-1 ;LIST FOR CURRENTLY OPEN PSUEDO CHANNELS
\r
171 REPEAT 15.,ADDCHN \.RPCNT+1
\r
179 REPEAT 15.,ADDIPC \.RPCNT+1
\r
186 REPEAT N.CHNS-1,[ADDTV TCHAN,0
\r
190 ADDTV TASOC,[-ASOLNT,,NODLST]
\r
193 ADDTV TASOC,[-ASOLNT,,NODDUM]
\r
205 ; SLOTS ASSOCIATED WITH TEMPLATE DATA STRUCTURES
\r
221 ;GLOBAL SPECIAL PDL
\r
227 ADDTV TVEC,[-GSPLNT,,GSP]
\r
231 GLOBSP==TVOFF-1 ;ENTRY FOR CURRENT POINTER TO GLOBAL SP
\r
233 ; POINTER VECTOR TO PURE SHARED RSUBRS
\r
235 PURV: BLOCK 3*20. ; ENOUGH FOR 20 SUCH (INITIALLY)
\r
239 ADDTV TUVEC,[-3*20.,,PURV]
\r
245 ;PROCESS VECTOR FOR GARBAGE COLLECTOR PROCESS
\r
247 GCPVP: BLOCK PVLNT*2
\r
256 ;INITIAL PROCESS VECTOR
\r
258 PVBASE": BLOCK PVLNT*2
\r
264 ;ENTRY FOR PROCESS I.D.
\r
266 ADDPV TFIX,1,PROCID
\r
267 ;THE FOLLOWING IRP MAKES SPACE FO9 SAVED ACS
\r
271 IRP A,,[0,A,B,C,D,E,PVP,TVP,AB,TB,TP,SP,M,R,P]B,,[0
\r
272 0,0,0,0,0,TPVP,TTVP,TAB,TTB,TTP,TSP,TCODE,TRSUBR,TPDL]
\r
289 ADDPV TLIST,0,.BLOCK
\r
292 ADDPV TPVP,0,LSTRES
\r
293 ADDPV TFIX,0,BINDID
\r
295 ADDPV TPVP,0,1STEPR
\r