1 ;***COPYRIGHT 1969, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.***
\r
4 ;THIS SUB-PROGRAM ASSEMBLED WITH SYSTEM PAREMETER FILE - S.MAC(V414)
\r
6 IFDEF LISTSN, < IFN LISTSN, <LIST ;LIST S.MAC IN COMMON ONLY>>
\r
8 ; S - SYSTEM PARAMETER DEFINITIONS FOR PDP-6 AND PDP-10 TIME SHARING MONITORS
\r
9 ; TH/TH/TNM/RCC 04 JUN 69
\r
11 ;THIS IS ASSEMBLED IN FRONT OF EACH SUBPROGRAM IN MONITOR
\r
14 DEFINE XP(A,B) ;SYSTEM PARAMETER
\r
19 ;ACCUMULATOR ASSIGNMENTS
\r
21 ;* MEANS LOADED BY UUO HANDLER ON ALL UUOS
\r
23 XP IOS,0 ;*IO DEVICE STATUS WORD(SEE BELOW FOR BITS)
\r
24 XP TAC,1 ;TEMPORARY(SOMETIMES PRESERVED ACCROSS SUB.)
\r
25 XP TAC1,2 ;TEMPORARY(SOMETIMES PRESERVED ACCROSS SUB.)
\r
26 XP PDP,3 ;*PUSH DOWN POINTER(SEPARATE LIST FOR EACH PI
\r
27 ; CHANNEL AND EACH USER JOB
\r
28 XP ITEM,4 ;BUFFER ITEM COUNT, OR JOB NUMBER
\r
29 XP DAT,5 ;TTY OUTPUT BUFFER POINTER FOR COMMANDS,ERROR
\r
30 ; MESSAG ;OR TEMPORARY
\r
31 XP JBUF,DAT ;ADDRESS OF 3 WORD BUFFER HEADER IN USER AREA
\r
32 XP DEVDAT,6 ;*LH=UUOS DONE SO FAR FOR THIS DEVICE(SEE BELOW)
\r
33 ; RH=ADDRESS OF DEVICE DATA BLOCK
\r
34 XP PROG,7 ;*LH=HIGHEST REL. LOC. IN USER AREA
\r
35 ; RH=ABSOLUTE ADDRESS OF USER AREA
\r
36 XP JDAT,PROG ;*RH=ADDRESS OF JOB DATA AREA
\r
37 ; LH=HIGHEST REL. LOC. IN USER AREA
\r
38 XP TEM,10 ;TEMPORARY USED ONLY SCNSER IO ROUTINE
\r
40 ;ONLY 0 THRU 10 SAVED FOR INTERRUPT SERVICE
\r
42 XP DSER,11 ;*ADDRESS OF DEVICE SERVICE ROUT. DISPATCH TABLE
\r
43 XP BUFPNT,12 ;CONTENTS OF FIRST WORD OF 3 WORD USER BUFFER HEADER
\r
44 XP UCHN,BUFPNT ;*USER IO CHANNEL NO.
\r
45 XP BUFWRD,13 ;CONTENTS OF 2ND WORD OF USER BUFFER
\r
46 XP UUO,14 ;*CURRENT UUO IN PROGRESS
\r
47 ; PROG IN INDEX FIELD FOR RELOCATION
\r
48 XP AC1,15 ;TEMPORARY ACS(MORE TEMPORARY THAN TAC,TAC1)
\r
51 ;REDEFINE SO THAT ONLY THE ABOVE ACS WILL OCCUR IN DDT PRINTOUTS
\r
57 ;DEFINE REST OF SYMBOLS SO THAT THEY WILL NOT BE PRINTED BY EXEC DDT ON OUTPUT
\r
58 \f; DEVICE DATA BLOCK NAMES
\r
59 XP DEVNAM,0 ;NAME IN SIXBIT ASCII
\r
60 ; C(LH)=DEVICE MNEMONIC
\r
61 ; C(RH)=DEVICE NUMBER, LEFT JUSTIFIED
\r
62 XP DEVCHR,1 ;CHARACTERISTIC
\r
63 ; BITS 0-5=JOB NUMBER(BYTE POINTER=PJOBN)
\r
64 ; ZERO VALUE IMPLIES NOT ASSIGNED
\r
65 XP HUNGCT,100 ;BITS 6-11=HUNG DEVICE COUNT. SET WHEN
\r
66 ; DEVICE BECOMES ACTIVE. DECREMENTED EVERY SECOND.
\r
67 XP HUNGST,1 ;BITS 12-17=HUNG DEVICE COUNT
\r
68 ; SETTING. 0 MEANS DEVICE CAN NEVER BE HUNG.
\r
69 ; BITS 18-23=DEVICE NUMBER,BINARY(BYTE POINTER=PUNIT)
\r
70 ; BITS 24-35=BUFFER SIZE
\r
71 XP DEVIOS,2 ;STATUS WORD. SEE BELOW
\r
72 XP DEVSER,3 ;C(LH)=NEXT DEVICE DATA BLOCK
\r
73 ; C(RH)=DEVICE SERVICE DISPATCH TABLE
\r
74 ; DEVICE SERVICE DISPATCH TABLE ASSIGNMENTS
\r
75 XP DINI,-2 ;DEVICE INITILIZATION
\r
76 XP DHNG,-1 ;DEVICE IS HUNG
\r
79 XP DCLO,DCL ;CLOSE OUTPUT
\r
80 ;IMMEDIATE ADDRESS PART OF CLOSE UUO
\r
81 XP CLSOUT,1 ;INHIBIT CLOSING OUTPUT
\r
82 XP CLSIN,2 ;INHIBIT CLOSING INPUT
\r
84 XP DIN,3 ;INPUT. SHORT DISPATCH TABLE
\r
87 XP DDO,6 ;DUMP MODE OUTPUT
\r
88 XP DDI,7 ;DUMP MODE INPUT
\r
93 XP DCLI,14 ;CLOSE INPUT
\r
94 XP DCLR,15 ;CALL D,[SIXBIT /UTPCLR/]
\r
96 ; END OF LONG DISPATCH TABLE
\r
98 XP DEVMOD,4 ;BITS 6-11=LEFT HALF OF IMAGE MODE BYTE POINTER
\r
99 ; BIT 35-J=1 IF MODE J IS LEGAL FOR THIS DEVICE
\r
100 ; BIT 18 DEVICE ASSIGNED BY CONSOLE COMMAND
\r
101 ; BIT 19 DEVICE ASSIGNED BY PROGRAM (INIT)
\r
103 ;RIGHT HALF OF DEVICE CHARACTERISTICS WORD(DEVCHR UUO)
\r
104 XP ASSCON,400000 ;ASSIGNED BY CONSOLE COMMAND ASSIGN
\r
105 XP ASSPRG,200000 ;ASSIGNED BY PROGRAM(INIT UUO)
\r
106 ;LEFT HALF DEVICE CHARACTERISTICS(DEVCHR UUO)
\r
107 XP DVOUT,1 ;OUTPUT DEVICE
\r
108 XP DVIN,2 ;INPUT DEVICE
\r
109 XP DVDIR,4 ;HAS A DIRECTORY
\r
110 XP DVTTY,10 ;IS A TTY
\r
111 XP DVMTA,20 ;IS A MAG TAPE(REWIND)
\r
112 XP DVAVAL,40 ;1 IF DEVICE IS AVAILABLE TO THIS JOB
\r
113 ; SET BY DEVCHR UUO
\r
114 XP DVDTA,100 ;IT IS A DECTAPE
\r
115 XP DVPTR,200 ;IS A PAPER TAPE READER
\r
116 XP DVPTP,400 ;IS A PAPER TAPE PUNCH
\r
117 XP DVLNG,1000 ;DEVICE HAS LONG DISPATCH TABLE
\r
118 ; (OTHER UUOS BESIDES INPUT,OUTPUT,CLOSE,RELEASE)
\r
119 XP DVDIS,2000 ;IS A DISPLAY
\r
120 XP TTYBIU,4000 ;TTY DDB IN USE (AS IO DEV. EVEN IF
\r
121 ; NOT AS USER CONSOLE)
\r
122 XP TTYUSE,10000 ;TTY DDB IN USE FLAG
\r
123 XP TTYATC,20000 ;TTY ATTACHED TO JOB IF 1
\r
124 XP DVLPT,40000 ;IS A LPT (CARRIAGE CONTROL IN FORTRAN)
\r
125 XP DVCDR,100000 ;IS A CARD READER(TRAILING SPACES FOR MACRO)
\r
126 XP DVDSK,200000 ;IS A DISK
\r
127 XP DVDIRIN,400000 ;DECTAPE DIRECTORY IN CORE IF 1(MUST BE SIGN BIT)
\r
129 XP DEVLOG,5 ;LOGICAL NAME FOR JOB DEVICE
\r
130 XP DEVBUF,6 ;C(LH)=REL. ADR. OF 3 WORD OUTPUT BUFFER HEADER
\r
131 ; C(RH)=REL. ADR. OF 3 WORD INPUT BUFFER HEADER
\r
132 XP DEVIAD,7 ;C(LH)=PROG IN INDEX FIELD
\r
133 ;BITS 1 AND 2 USED TO KEEP COUNT OF NO. OF USER CHANNELS
\r
135 ; INITED ON THIS DEVICE(DECTAPE ONLY)
\r
136 ; IADPTR-COMMON BYTE POINTER TO 2 BIT COUNT
\r
138 ; C(RH)=REL. INPUT BUFFER ADD. SERVICE ROUT. IS FILLING
\r
139 XP DEVOAD,10 ;C(LH)=PROG IN INDEX FIELD
\r
141 ; C(RH)=REL. OUTPUT BUFFER ADR. SERVICE ROU. IS EMPTYING
\r
143 ;FOR LONG DISPATCH TABLE DEVICES ONLY:
\r
144 XP DEVFIL,11 ;FILE NAME IN SIXBIT
\r
145 XP DEVEXT,12 ;LH=EXTENSION, RH=UNUSED
\r
146 XP DEVPPN,13 ;PROJECT PROGRAMMER NO. (DISK ONLY)
\r
147 ; OTHER DEVICES NEED NOT HAVE THIS LOCATION IN THEM.
\r
148 \f; I/O STATUS WORD ASSIGNMENTS
\r
149 ;DATA MODES: BITS 32-35(BYTE POINTER=PIOMOD)
\r
151 XP AL,1 ;ASCII LINE
\r
153 XP IB,13 ;IMAGE BINARY
\r
155 XP SD,15 ;SCOPE DUMP MODE
\r
156 XP DR,16 ;DUMP BY RECORDS
\r
157 XP D,17 ;DUMP ACROSS RECORDS
\r
160 XP IOWC,20 ;DON'T COMPUTE WORD COUNT
\r
161 XP IOCON,40 ;CONTINUOUS (CONT=0)
\r
162 XP IONRCK,100 ;READ WITH NO. REREAD CHECK
\r
163 ;BITS 27,28 DENSITY OF MAG TAPE
\r
164 ; 00=INSTALATION STANDARD
\r
168 XP IOPAR,1000 ;WRITE EVEN PARITY (BCD) IF 1 ON MAG TAPE
\r
169 XP IOTEND,2000 ;END OF MAG TAPE
\r
170 XP IOBOT,4000 ;BEGINNING OF MAG TAPE
\r
171 XP IOACT,10000 ;DEVICE ACTIVE
\r
172 XP IODEND,20000 ;DATA END ENCOUNTERED
\r
173 XP IOBKTL,40000 ;BLOCK TOO LARGE
\r
174 XP IODTER,100000 ;DATA ERROR
\r
175 XP IODERR,200000 ;DEVICE ERROR
\r
176 XP IOIMPM,400000 ;IMPROPER MODE DETECTED BY
\r
177 ; INPUT SERVICE ROUTINE
\r
178 ; LEFT HALF (SYSTEM)
\r
180 XP IOBEG,2 ;VIRGIN DEVICE
\r
181 XP IOFST,4 ;NEXT ITEM WILL BE THE FIRST ITEM OF A BUFFER
\r
182 XP IO,20 ;OUT=1, IN=0
\r
183 XP IOEND,40 ;SERVICE ROUTINE HAS TRANSMITTED LAST DATA
\r
185 ;REST OF BITS IN LH ARE DEVICE DEPENDENT EXCEPT BIT 14(XP 10) WHICK IS KEPT AS A SPARE
\r
188 ;COMMAND DECODER USE OF AC IOS:
\r
190 ;RH=DISPATCH ADDRESS - SAVJOB,GETJOB,RUNJOB
\r
192 XP NSRBIT,400000 ;HIGH SEG TO BE FLAGGED NON-SHARABLE(SAVE VS SSAVE COMMAND)
\r
193 ; DO NOT CONFUSE WITH SIGN BIT OF JBTSTS
\r
194 ; WHICH SAYS SEG IS SHARABLE
\r
199 XP UWP,1 ;POSITION IN LH OF DATAO APR TO TURN USER-MODE WRITE PROTECT ON
\r
200 XP USRMOD,10000 ;LH PC WORD, MACHINE WAS IN USER MODE WHEN PC STORED
\r
201 XP UIOMOD,4000 ;LY PC WORD, MACHINE WAS IN USER IO MODE WHEN PC STORED
\r
202 NXM=10000 ;NON EX MEMORY
\r
203 POV=200000 ;PUSH DOWN OVERFLOW
\r
204 ILM=20000 ;ILLEGAL MEMORY
\r
205 ; IE ALL INSTRUCTIONS WERE LEGAL
\r
207 ;LEFT HALF USRJDA (JOB DEVICE ASSIGNMENTS) UUO'S FOR THIS CHANNEL SINCE LAST INIT
\r
208 XP INITB,400000 ;INIT-SAVEGET DEPENDS ON THIS BEING SIGN BIT
\r
209 XP IBUFB,200000 ;INIT WITH INPUT BUFFER SPECIFIED
\r
210 XP OBUFB,100000 ;INIT WITH OUTPUT BUFFER SPECIFIED
\r
211 XP LOOKB,40000 ;LOOKUP
\r
212 XP ENTRB,20000 ;ENTER
\r
213 XP INPB,10000 ;INPUT
\r
214 XP OUTPB,4000 ;OUTPUT
\r
215 XP ICLOSB,2000 ;INPUT CLOSE
\r
216 XP OCLOSB,1000 ;OUTPUT CLOSE
\r
217 XP INBFB,400 ;INBUF
\r
218 XP OUTBFB,200 ;OUTBUF
\r
219 XP SYSDEV,100 ;THIS DEVICE IS SYSTEM TAPE
\r
220 ; PROJ.PROG. NO 1,1 ON DSK
\r
221 XP RENMB,40 ;RENAME UUO
\r
222 XP DSKRLB,20 ;TO DISTINGUISH RELEASE FROM RESET UUO IN DSKSER.
\r
223 ; RELEASE CLEARS THEM ALL
\r
226 XP SLICE,40 ;SET SLICE LEVEL IF A 1 ACCORDING TO SLEVEL
\r
227 XP SLEVEL,20 ;VALUE OF SLICE LEVEL IF SLICE A 1
\r
230 ;ERROR CODES RETURNED TO USERS ON LOOKUP AND ENTER AND RENAME FAILURES(DISK ONLY)
\r
231 ;IN 2ND WORD OF 4 WROD ARGUMENT BLOCK(RH)
\r
232 ;THE SAME ERROR CODES ARE RETURNED ON RUN AND GETSEG UUOS FOR ALL DEVICES
\r
234 XP FNFERR,0 ;FILE NOT FOUND OR 0 FILE NAME
\r
235 XP IPPERR,1 ;INCORRECT PROJECT,PROGRAMMER NO.
\r
236 XP PRTERR,2 ;PROTECTION FAILURE(OR DIRECTORY FULL ON DTA)
\r
237 XP FBMERR,3 ;FILE BEING MODIFIED
\r
238 XP AEFERR,4 ;ALREADY EXISTING FILE(RENAME ONLY)
\r
239 XP NLEERR,5 ;NEITHER LOOKUP NOR ENTER(RENAME ONLY)
\r
240 XP TRNERR,6 ;TRANSMISSION ERROR(RUN,GETSEG UUO ONLY)
\r
241 XP NSFERR,7 ;NOT A SAVE FILE(RUN,GETSEG UUO ONLY)
\r
242 XP NECERR,10 ;NOT ENOUGH CORE(RUN,GETSEG UUO ONLY)
\r
243 XP DNAERR,11 ;DEVICE NOT AVAILABLE(RUN,GETSEG UUO ONLY)
\r
244 XP NSDERR,12 ;NO SUCH DEVICE(RUN,GETSEG UUO ONLY)
\r
245 XP ILUERR,13 ;ILLEGAL UUO (GETSEG ONLY) NOT TWO RELOC REG. CAPABILITY
\r
246 \f; JOB BUFFER AREA HEADER
\r
247 XP JBFADR,0 ;BIT 0=1 IF THIS BUFFER RING HAS NEVER BEEN
\r
248 ; REFERENCED FROM THE USER'S PROGRAM BY
\r
249 ; AN INPUT OR OUTPUT COMMAND.
\r
251 ; BITS 18-35=CURRENT BUFFER ADDRESS
\r
252 XP JBFPTR,1 ;BYTE POINTER TO NEXT BYTE -1
\r
253 XP JBFCTR,2 ;POSITIVE ITEM COUNT
\r
254 ; JOB BUFFER HEADER
\r
255 XP IOUSE,400000 ;1 IF BUFFER IS FULL (OR BEING EMPTIED)
\r
256 ; 0 IF BUFFER IS EMPTY (OR BEING FILLED)
\r
257 ; BITS 1-17=BUFFER SIZE
\r
258 ; BITS 18-35=NEXT BUFFER ADDRESS
\r
259 \f;JOB STATUS WORD(JBTSTS TABLE), ONE WORD FOR EACH JOB(SOME BITS ALSO APPEAR IN HIGH SEG STATUS WORD)
\r
262 XP RUN,400000 ;USER WANTS JOB TO RUN(MUST BE SIGN BIT)
\r
263 XP SNA,400000 ;HIGH SEG NUMBER ASSIGNED (ANALOGOUS TO JNA EXCEPT
\r
264 ; MUST BE SIGN BIT)
\r
265 XP CMWB,200000 ;JOB TYPED A COMMAND WHICH NEEDS CORE
\r
266 ; WHICH IS ON DISK. SET BY COMMAND DECODER
\r
267 ; CLEARED WHEN JOB IN CORE AGAIN.
\r
268 XP SHRSEG,200000 ;HIGH SEG IS SHARABLE (ALTHOUGH NAME MAY BE 0
\r
269 ; IG IT HAS BEEN SUPERSEDED)
\r
270 ; THIS BIT ALSO APPEARS IN SAME PLACE IN LH OF
\r
271 ; OF JBTSGN FOR EACH USER TO INDICATE USER IS USING A SHARABLE
\r
272 ; HIGH SEG (ALSO APPEARS IN LH OF AC ITEM WHEN
\r
273 ; RH IS SEG NUMBER FOR A PARTICULAR JOB
\r
274 XP JACCT,100000 ;PRIVILEGED SYSTEM CUSP IS BEING RUN WHICH CANNOT
\r
275 ; BE STOPPED (E.G., LOGIN
\r
276 ; OR LOGOUT). PROTECT IT FROM CURIOUS EYES.
\r
277 ; DISABLE CONTROL C, MADE IT ACT LIKE ALT-MODE
\r
278 XP JNA,40000 ;THIS JOB NUMBER IS ASSIGNED(JOB INITIALIZED)
\r
279 XP JERR,20000 ;A MONITOR DETECTED ERROR HAS OCCURRED
\r
280 ; JOB CAN NOT CONTINUE
\r
281 XP NSWP,10000 ;JOB OR HIGH SEG IS NOT TO BE SWAPPED(REALTIME OR DISPLAY)
\r
282 ; (CAN BE SHUFFLED OR NOT ACCORDING TO NSHF)
\r
283 ; HIGH SEG CANNOT BE SWAPPED DURING SAVE
\r
284 XP SHF,4000 ;MONITOR IS WAITING FOR DEVICES FOR THIS
\r
285 ; JOB TO STOP AFTER CURRENT BUFFERFULL
\r
286 ; SO JOB CAN BE SHUFFLED IN CORE OR SWAPPED OUT
\r
287 ; IF JOB ONLY HAS LOW SEG
\r
288 XP SWP,2000 ;0 IF JOB IN CORE, 1 IF SWAPPED OUT OR ON WAY
\r
291 ; SAME FOR LOW AND HIGH SEGMENTS
\r
292 XP NSHF,1000 ;JOB IS NOT SHUFFLABLE
\r
293 ; OR HIGH SEGMENT HAS ACTIVE SAVE IO
\r
294 XP CLKR,400 ;JOB HAS A CLOCK REQUEST IN.
\r
295 ; NEEDED SO ONLY ONE REQUEST PER JOB
\r
296 XP STOPIO,SWP+CMWB+SHF ;FORCE JOB TO STOP TO EXECUTE
\r
297 ; SWAP, COMMAND OR
\r
300 ;BITS 10-14 USED TO INDICATE JOB IN WAIT FOR A SHARABLE DEVICE
\r
301 ;0 MEANS JOB NOT WAITING FOR SHARABLE DEVICE
\r
302 ;SEE SCHEDULER(CLKCSS) FOR DEFINITION OF WAIT CODES
\r
304 XP JWSIZ,5 ;SIZE OF WAIT CODE
\r
305 XP JWPOS,^D14 ;RIGHT MOST BIT POS. OF WAIT CODE
\r
306 XP WTMASK,370 ;MASK FOR CLEARING WAIT CODES
\r
308 ;BITS 15-17 ARE NO LONGER SET BY LOGIN, THEY ARE MONITOR STATUS BITS
\r
310 XP JLOG,4 ;JOB SUCCESSFULLY LOGGED IN
\r
311 XP JRQ,2 ;JOB HAS CHANGED STATE AND MUST BE REQUEUED AT CLOCK
\r
312 ; LEVEL BEFORE RESCHEDULING CAN TAKE PLACE
\r
313 XP JXPN,1 ;JOB MUST BE SWAPPED OUT BECAUSE IT IS EXPANDING SIZE
\r
314 ; OF CORE AND THERE WASN'T ROOM IN CORE
\r
316 ;BITS 9-17 ARE USED FOR ACCESS PRIVILEGERS BITS FOR SHARABLE HIGH SEGMENTS
\r
317 ; SAME FORMAT AS ACCESS BITS FOR DISK
\r
319 XP HSASIZ,^D9 ;SIZE OF HIGH SEG ACCESS BITS
\r
320 XP HSAPOS,^D17 ;RIGHT MOST POSITION OF HIGH SEG ACCESS BITS
\r
321 XP HSAMSK,777 ;MASK TO CLEAR ACCESS PRIVILEGES
\r
322 ;MASKS USED TO TEST STATUS CONDITIONS:
\r
324 XP RUNABLE,RUN+JNA ;STATUS BIT PATTERN FOR JOB TO BE RUNABLE
\r
325 XP RUNMSK,JLOG+CLKR+NSHF+JACCT+NSWP ;BITS WHICH DO NOT MATTER FOR RUNABILITY
\r
326 \f;BITS IN JBTSWP TABLE
\r
328 XP FRGSEG,400000 ;LH - 1 IF LOW OR HIGH SEG IS FRAGMENTED ON SWP DEV
\r
329 XP SWPCLR,400000 ;RH - 1 IF JOB DATA AREA SHOULD BE CLEARED AFTER
\r
330 ; IN. SET ON 140 RESTART SO NO DEVICES ASSIGNED
\r
331 \f;VIRTUAL ADDRESSING SPACE DESCRIPTOR WORD (JBTSGN) ONE WORD FOR EACH JOB
\r
332 ;THIS WORD APPEARS IN AC ITEM
\r
334 XP SPYSEG,400000 ;THE HIGH SEB IS PHYSICAL CORE (SEE SPYUUO)
\r
335 ; MUST BE SIGN BIT SO TEST FOR JOB HAVING A
\r
336 ; REAL HIGH SEG IS SKIPG JBTSGN(ITEM)
\r
337 XP SHRSEG,SHRSEG ;THE HIGH SEG THIS JOB IS USING IS SHARABLE
\r
338 ; THIS BIT ALSO APPEARS IN JBTSTS FOR HIGH SEGS
\r
339 XP UWPOFF,100000 ;IF 1, USER-MODE WRITE PROTECT IS OFF FOR THIS JOB
\r
340 XP MEDDLE,40000 ;IF 1, USER HAS MEDDLED WITH SHARABLE PROGRAM SUCH
\r
341 ; THAT PROGRAM CANNOT TRUST ITSELF
\r
342 ; TO TURN UWP OFF OR CHANGE HIGH SEG CORE ASSIGNMENT
\r
344 ; 1. START N, OR D COMMAND
\r
345 ; 2. RUN UUO WITH GREATER THAN 1 STARTING
\r
348 ; 4. HIGH SEG IS PHYSICAL CORE (SPY UUO)
\r
349 XP CORCNT,20000 ;#1, THE HIGH SEG IN CORE COUNT FOR THIS JOB
\r
350 ; HAS BEEN INCREMENTED, IF 0 IT HAS NOT
\r
351 ; SET AND CLEARED BY INCCNT AND DECCNT ROUTINES
\r
352 ;RH IS HIGH SEG NUMBER (NUMBER GREATER THAN JOB MAX AND LESS THAN OR EQUAL TO JBTMAX)
\r
353 ; OR IF SPYSEG IS SET, RH IS HIGHEST PHYSICAL ADR USER MAY SPY INTO
\r
355 ;JOB PRIVILEGE BITS - JBTPRV TABLE
\r
356 ;SET BY LOGIN FROM ACCT.SYS FILE AS MODIFIED BY CUSTOMER
\r
357 ;RH RESERVED FOR SPECIAL CUSTOMER DEFINED PRIVILEGES(PLEASE START AT BIT 35)
\r
358 ;LH RESERVED FOR DIGITAL STANDARD PRIVILEGES
\r
361 XP PVSPYM,1 ;JOB ALLOWED TO SPY AT MONITOR USING PEEK/SPY UUOS
\r
362 XP PVSPYA,2 ;JOB ALLOWED TO SPY AT ALL OF CORE USING PEEK/SPY UUOS
\r
363 XP PVTRPS,4 ;JOB ALLOWED TO USE TRPSET UUO
\r
366 ;MACRO TO PREVENT SCHEDULING, USED AT UUO LEVEL WHEN A
\r
367 ;REENTRANT ROUTINE IS CHANGING COMMON DATA NOT YET
\r
368 ;ASSIGNED TO A PARTICULAR JOB
\r
373 ;MACRO TO ALLOW SCHEDULING ONCE MORE
\r
378 ;MACRO TO PREVENT CORE SHUFFLING, USED AT UUO LEVEL WHEN
\r
379 ;A ROUTINE SETS UP AN ABSOLUTE USER ADDRESS IN AN AC
\r
380 ;OTHER THAN PDP,PROG, OR JDAT. THE MAIN EXAMPLE IS A BLT
\r
381 ;FROM EXEC TO USER OR USER TO EXEC.
\r
386 ;MACRO TO ALLOW SHUFFLING ONCE MORE
\r
391 ;MACRO TO TURN OFF ALL PI CHANNELS EXCEPT DATA CONTROL ONCE
\r
398 ;MACRO TO TURN THEN BACK ON
\r
402 ANDCMI A,CHNOFF ;DO NOT TOUCH DC CHANNELS
\r
403 TRO A,2000 ;SET TO TRUN SELECTED CHANNEL ON
\r
409 ;MACRO TO START A DEVICE FROM UUO LEVEL
\r
410 ;TAC:=XWD DEVINT FLAGS,CONO ARGUMENTS
\r
413 <EXTERNAL PIOFF,PION
\r
419 \f;LIST OF INDEPENDENT MONITOR COMMAND FEATURES
\r
420 ;THESE FEATURES CAN BE ELIMINATED FROM A SYSTEM BY
\r
421 ;SETTING THE APPROPRIATE FTXXXX SYMBOL BELOW TO 0
\r
422 ;AND REASSEMBLING THOSE ROUTINES IN WHICH CODE FOR THE
\r
423 ;FEATURE APPEARS. THE ROUTINES AFFECTED BY EACH FEATURE
\r
424 ;ARE LISTED BELOW. TO GUARANTEE THAT NO ROUTINES ARE
\r
425 ;MISSED, FTXXXX IS DEFINED TO BE AN INTERNAL IN THOSE ROUTINES
\r
426 ;IN WHICH IT IS USED IN CONDITIONAL ASSEMBLY. THUS THE
\r
427 ;RELOCATING LOADER WILL DETECT MULTIPLY DEFINED GLOBALS
\r
428 ;IF NOT ALL ROUTINES AFFECTED HAVE BEEN REASSEMBLED.
\r
430 FTTIME=-1 ;TIME ACC
\r
431 ; APPEARS IN APRSER,STUFF
\r
433 FTATTACH=-1 ;ATTACH AND DETACH TTY TO JOB COMMANDS
\r
434 ; APPEARS IN APRSER,SCNSER
\r
436 FTTALK=-1 ;TALK TO TTYS COM.
\r
437 ; APPEARS IN APRSER,SCNSER
\r
439 FTEXAMINE=-1 ;EXAMINE AND DEPOSIT COMMANDS
\r
440 ; APPEARS IN APRSER
\r
442 FTREASSIGN=-1 ;REASSIGN COMMAND
\r
443 ; APPEARS IN APRSER
\r
445 FTTRPSET=-1 ;USER IO - TRPSET,TRPJEN UUOS AND OPCODE 100(PDP-10S ONLY)
\r
446 ; APPEARS IN APRSER,STUFF,CLKCSS
\r
447 ; THESE UUOS ARE SOON TO BE REPLACED BY SOME KNAVE-PROOF REAL TIME UUOS
\r
449 FTSLEEP=-1 ;SLEEP UUO
\r
450 ; APPEARS IN APRSER,STUFF
\r
452 FTFINISH=-1 ;FINISH COMMAND
\r
453 ; APPEARS IN APRSER
\r
455 FTCHECK=0 ;MONITOR CHECKSUMMING
\r
456 ; APPEARS IN ALL FILES EXCEPT CHAN, NULL
\r
458 FTMONP=0 ;MONITOR WRITE PROTECTED BETWEEN 1000 AND 20000
\r
459 ; APPEARS IN ALL FILES EXCEPT CHAN, NULL
\r
460 \fFTRCHK=-1 ;ASSEMBLE WITH REDUNDANT CHECKING FOR INTERNAL MONITOR ERRORS.
\r
461 ; HALT IF AN ERROR IS DETECTED
\r
462 ; CONTINUE WILL LOOP(IF NON-RECOVERABLE ERROR) OR TRY TO RECOVER
\r
463 ; OPERATOR SHOULD MAKE NOTE OF MEMORY ADDRESS REG(LOC+1 OF HALT)
\r
464 ; APPEARS IN DSKINT,.....
\r
467 FTHALT=0 ;MONITOR HALTS WHEN IT DETECTS AN ERROR IN ITSELF INSTEAD OF PRINTING A MESSAGE
\r
468 ; WHEN IT DETECTS AN ERROR. USED FOR DEBUGGING SO A DUMP CAN BE TAKEN
\r
469 ; APPEARS IN ERRCON, CONTINUE SWITCH WILL CAUSE USUAL
\r
470 ; ERROR MESSAGE TO BE PRINTED, AC DAT HAS JSP DAT,ERROR IN IT ON HALT
\r
473 FTTRACK=0 ;MONITOR LEAVES USEFUL INFORMATION IN LOCATIONS
\r
474 ; IN COMMON, NOT NEEDED EXCEPT FOR LEAVING TRACKS
\r
475 ; TO DEBUG CRASHES WITH.
\r
477 FTTTYSER=-1 ;SCNSRF INSTEAD OF SCNSRH
\r
478 ; APPEARS IN APRSER
\r
480 FT2REL=-1 ;SUBROUTINE CALLS TO SEGCON FOR TWO RELOCATION REGISTER CAPABILITY
\r
481 ; -1 FOR PDP-6 AND PDP-10. SEGCON IS EITHER A DUMMY SET
\r
482 ; OF SUBROUTINE OR THE REAL THING DEPENDING ON THE MACHINE.
\r
483 ; THOSE CUSTOMERS WITHOUT 2 REG MACHINES WHO WANT TO ELIMINATE THE 20 OR SO LOCS OF
\r
484 ; SUBROUTINE CALLS TO SEGCON, CAN DO SO BY REASSEMBLIN THE MONITOR
\r
485 ; WITH FT2REL=0. HOWEVER THE COMPANY WILL DISTRIBUTE MONITORS
\r
486 ; WITH FT2REL=-1 ALWAYS(PDP-6 AND PDP-10)
\r
488 ; APPEARS IN FIRST,ONCE,APRSR,SCHED
\r
490 FTKCT=-1 ;ACCUMULATE CORE*RUNNING TIME FOR CHARGING FOR EACH USER
\r
492 FTPRV=-1 ;PRIVILEGE BITS FOR EACH USER
\r
494 FTGETTABL=-1 ;GETTAB UUO - RETURN CONTENTS OF MONITOR JOBTABLES
\r
496 FTRA10=0 ;NO RA-10 DISK CONTROLLER (BRYANT DISK)
\r
497 ;TEMPORARILY USED IN DSKSER
\r
498 \f;DEFINE THE QUEUES, QUANTUM RUNNING TIME IN JIFFIES, AND PRIORITY
\r
499 ;PRIORITY GOES BACKWARD FROM LOW TO HIGH
\r
502 < X RN,7 ;STRAIGHT RUN (LOWEST PRIORITY)(Q=0)
\r
503 X WS,6 ;IO WAIT SATISFIED
\r
504 X TS,6 ;TTY IO WAIT SATISFIED
\r
505 X ST,6 ;SYSTEM TAPE WAIT
\r
507 X AU,4 ;ALTER DISK UFD QUEUE
\r
508 X MQ,4 ;MONITOR DISK QUEUE
\r
509 X DA,4 ;DISK STORAGE ALLOCATION WAIT
\r
511 X DT,4 ;DECTAPE CONTROL WAIT (UP TO 8 DRIVES)
\r
512 X DC,4 ;DATA CONTROL (DC) WAIT - MAGTAPE AND DECTAPE
\r
513 X MT,4 ;MAGTAPE CONTROL WAIT (UP TO 8 UNITS)
\r
517 ;JOB STATUS CODES WHICH HAVE NO CORRESPONDING QUEUES
\r
518 ;JOBS ARE UNRUNABLE WHEN IN THESE STATES
\r
522 X TIOW, ;TTY IO WAIT
\r
523 X SLP, ;JOB SLEEPING
\r
524 X NUL, ;JOB NUMBER NOT ASSIGNED
\r
525 X STOP, ;STOP (CONTROL C)
\r
527 XP STTYBF,20 ;SIZE OF TTY BUFFER
\r
528 XP STTYB1,STTYBF+1 ;LENGTH+1
\r
530 ASUPPRESS ;ELIMINATE ALL SYMBOLS NOT REFERENCED LATER
\r
531 ; FROM THE SYMBOL TABLE LISTING
\r