Fixed some typos and added COPY and DTBOOT.
[retro-software/dec/tops10/v4.5.git] / src / s.mac
1 ;***COPYRIGHT 1969, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.***\r
2 \r
3 \r
4 ;THIS SUB-PROGRAM ASSEMBLED WITH SYSTEM PAREMETER FILE - S.MAC(V414)\r
5         XLIST\r
6 IFDEF LISTSN, < IFN LISTSN, <LIST       ;LIST S.MAC IN COMMON ONLY>>\r
7 \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
10 \r
11 ;THIS IS ASSEMBLED IN FRONT OF EACH SUBPROGRAM IN MONITOR\r
12 \r
13 \r
14 DEFINE  XP(A,B)         ;SYSTEM PARAMETER\r
15         <A=B\r
16         INTERNAL A\r
17 >\r
18 \r
19 ;ACCUMULATOR ASSIGNMENTS\r
20 \r
21 ;* MEANS LOADED BY UUO HANDLER ON ALL UUOS\r
22 \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
39 \r
40 ;ONLY 0 THRU 10 SAVED FOR INTERRUPT SERVICE\r
41 \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
49 XP AC2,16\r
50 XP AC3,17\r
51 ;REDEFINE SO THAT ONLY THE ABOVE ACS WILL OCCUR IN DDT PRINTOUTS\r
52 \r
53 DEFINE XP(A,B)<\r
54 A==B\r
55 INTERNAL A\r
56 >\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
77         XP DRL,0                ;RELEASE\r
78         XP DCL,1                ;CLOSE\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
83         XP DOU,2                ;OUTPUT\r
84         XP DIN,3                ;INPUT. SHORT DISPATCH TABLE\r
85         XP DEN,4                ;ENTER\r
86         XP DLK,5                ;LOOKUP\r
87         XP DDO,6                ;DUMP MODE OUTPUT\r
88         XP DDI,7                ;DUMP MODE INPUT\r
89         XP DSO,10               ;SETO\r
90         XP DSI,11               ;SETI\r
91         XP DGF,12               ;GETF UUO\r
92         XP DRN,13               ;RENAME\r
93         XP DCLI,14              ;CLOSE INPUT\r
94         XP DCLR,15              ;CALL D,[SIXBIT /UTPCLR/]\r
95         XP DMT,16               ;MTAPE\r
96                 ; END OF LONG DISPATCH TABLE\r
97 \f\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
102 \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
128 \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
134                                 \r
135                                 ; INITED ON THIS DEVICE(DECTAPE ONLY)\r
136                                 ; IADPTR-COMMON BYTE POINTER TO 2 BIT COUNT\r
137         XP DEVADR,DEVIAD\r
138                                 ; C(RH)=REL. INPUT BUFFER ADD. SERVICE ROUT. IS FILLING\r
139         XP DEVOAD,10            ;C(LH)=PROG IN INDEX FIELD\r
140         XP DEVPTR,DEVOAD\r
141                                 ; C(RH)=REL. OUTPUT BUFFER ADR. SERVICE ROU. IS EMPTYING\r
142         XP DEVCTR,11\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
150         XP A,0                  ;ASCII\r
151         XP AL,1                 ;ASCII LINE\r
152         XP I,10                 ;IMAGE\r
153         XP IB,13                ;IMAGE BINARY\r
154         XP B,14                 ;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
158 ; STATUS BITS\r
159 ;RIGHT HALF (USER)\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
165 ;               01=200 BPI\r
166 ;               10=556 BPI\r
167 ;               11=800 BPI\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
179         XP IOW,1                ;I/O WAIT\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
184 \r
185 ;REST OF BITS IN LH ARE DEVICE DEPENDENT EXCEPT BIT 14(XP 10) WHICK IS KEPT AS A SPARE\r
186 \r
187 \r
188 ;COMMAND DECODER USE OF AC IOS:\r
189 \r
190 ;RH=DISPATCH ADDRESS - SAVJOB,GETJOB,RUNJOB\r
191 ;LH:\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
195 \r
196 \r
197 ;HARDWARE BITS:\r
198 \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
206 \f\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
224 \r
225 ;MTAPE UUO BITS\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
228 \r
229 \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
233 \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
250                                 ; BITS 1-17=UNUSED\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
260 \r
261 \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
289                                 ; IN OR OUT\r
290 \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
298                                 ; SHUFFLE\r
299 \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
303 \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
307 \r
308 ;BITS 15-17 ARE NO LONGER SET BY LOGIN, THEY ARE MONITOR STATUS BITS\r
309 \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
315 \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
318 \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
323 \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
327 \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
333 ;LH BITS\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
343                                 ; MEDDLING MEANS:\r
344                                 ;   1. START N, OR D COMMAND\r
345                                 ;   2. RUN UUO WITH GREATER THAN 1 STARTING\r
346                                 ;      INCREMENT\r
347                                 ;   3. GETSEG UUO\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
354 \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
359 \r
360 ;BITS IN LEFT HALF\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
364 \f; SYSTEM MACROS\r
365 \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
369 \r
370 DEFINE NOSCHED\r
371 <>\r
372 \r
373 ;MACRO TO ALLOW SCHEDULING ONCE MORE\r
374 \r
375 DEFINE SCHEDULE\r
376 <>\r
377 \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
382 \r
383 DEFINE NOSHUFF\r
384 <>\r
385 \r
386 ;MACRO TO ALLOW SHUFFLING ONCE MORE\r
387 \r
388 DEFINE SHUFFLE\r
389 <>\r
390 \r
391 ;MACRO TO TURN OFF ALL PI CHANNELS EXCEPT DATA CONTROL ONCE\r
392 \r
393 DEFINE DISABLE(A)\r
394 <EXTERNAL CHNOFF\r
395         CONI PI,A\r
396         CONO PI,CHNOFF>\r
397 \r
398 ;MACRO TO TURN THEN BACK ON\r
399 \r
400 DEFINE ENABLE(A)\r
401 <EXTERNAL CHNON\r
402         ANDCMI A,CHNOFF ;DO NOT TOUCH DC CHANNELS\r
403         TRO A,2000      ;SET TO TRUN SELECTED CHANNEL ON\r
404         CONO PI,(A)\r
405 >\r
406 \r
407 \r
408 \r
409 ;MACRO TO START A DEVICE FROM UUO LEVEL\r
410 ;TAC:=XWD DEVINT FLAGS,CONO ARGUMENTS\r
411 \r
412 DEFINE STARTDV(A)\r
413 <EXTERNAL PIOFF,PION\r
414         CONO PI,PIOFF\r
415         CONO A,(TAC)\r
416         HLRM TAC,A'CON\r
417         CONO PI,PION\r
418 >\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
429 \r
430 FTTIME=-1       ;TIME ACC\r
431                 ; APPEARS IN APRSER,STUFF\r
432 \r
433 FTATTACH=-1     ;ATTACH AND DETACH TTY TO JOB COMMANDS\r
434                 ; APPEARS IN APRSER,SCNSER\r
435 \r
436 FTTALK=-1       ;TALK TO TTYS COM.\r
437                 ; APPEARS IN APRSER,SCNSER\r
438 \r
439 FTEXAMINE=-1    ;EXAMINE AND DEPOSIT COMMANDS\r
440                 ; APPEARS IN APRSER\r
441 \r
442 FTREASSIGN=-1   ;REASSIGN COMMAND\r
443                 ; APPEARS IN APRSER\r
444 \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
448 \r
449 FTSLEEP=-1      ;SLEEP UUO\r
450                 ; APPEARS IN APRSER,STUFF\r
451 \r
452 FTFINISH=-1     ;FINISH COMMAND\r
453                 ; APPEARS IN APRSER\r
454 \r
455 FTCHECK=0       ;MONITOR CHECKSUMMING\r
456                 ; APPEARS IN ALL FILES EXCEPT CHAN, NULL\r
457 \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
465 \r
466 \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
471 \r
472 \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
476 \r
477 FTTTYSER=-1     ;SCNSRF INSTEAD OF SCNSRH\r
478                 ; APPEARS IN APRSER\r
479 \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
487 \r
488                 ; APPEARS IN FIRST,ONCE,APRSR,SCHED\r
489 \r
490 FTKCT=-1        ;ACCUMULATE CORE*RUNNING TIME FOR CHARGING FOR EACH USER\r
491 \r
492 FTPRV=-1        ;PRIVILEGE BITS FOR EACH USER\r
493 \r
494 FTGETTABL=-1    ;GETTAB UUO - RETURN CONTENTS OF MONITOR  JOBTABLES\r
495 \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
500 \r
501 DEFINE QUEUES\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
506         IFN FTDISK,<\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
510 >\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
514 >\r
515 \r
516 \r
517 ;JOB STATUS CODES WHICH HAVE NO CORRESPONDING QUEUES\r
518 ;JOBS ARE UNRUNABLE WHEN IN THESE STATES\r
519 \r
520 DEFINE CODES\r
521 <       X IOW,  ;IO WAIT\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
526 >\r
527         XP STTYBF,20    ;SIZE OF TTY BUFFER\r
528         XP STTYB1,STTYBF+1      ;LENGTH+1\r
529 \r
530         ASUPPRESS       ;ELIMINATE ALL SYMBOLS NOT REFERENCED LATER\r
531                         ; FROM THE SYMBOL TABLE LISTING\r
532         LIST\r