Added base source
[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         XP DEVADR,DEVIAD\r
134                                 ; C(RH)=REL. INPUT BUFFER ADD. SERVICE ROUT. IS FILLING\r
135         XP DEVOAD,10            ;C(LH)=PROG IN INDEX FIELD\r
136         XP DEVPTR,DEVOAD\r
137                                 ; C(RH)=REL. OUTPUT BUFFER ADR. SERVICE ROU. IS EMPTYING\r
138         XP DEVCTR,11\r
139 ;FOR LONG DISPATCH TABLE DEVICES ONLY:\r
140         XP DEVFIL,11            ;FILE NAME IN SIXBIT\r
141         XP DEVEXT,12            ;LH=EXTENSION, RH=UNUSED\r
142         XP DEVPPN,13            ;PROJECT PROGRAMMER NO. (DISK ONLY)\r
143                                 ; OTHER DEVICES NEED NOT HAVE THIS LOCATION IN THEM.\r
144 \f; I/0 STATUS WORD ASSIGNMENTS\r
145 ;DATA MODES: BITS 32-35(BYTE POINTER=PIOMOD)\r
146         XP A,0                  ;ASCII\r
147         XP AL,1                 ;ASCII LINE\r
148         XP I,10                 ;IMAGE\r
149         XP IB,13                ;IMAGE BINARY\r
150         XP B,14                 ;BINARY\r
151         XP SD,15                ;SCOPE DUMP MODE\r
152         XP DR,16                ;DUMP BY RECORDS\r
153         XP D,17                 ;DUMP ACROSS RECORDS\r
154 ; STATUS BITS\r
155 ;RIGHT HALF (USER)\r
156         XP IOWC,20              ;DON'T COMPUTE WORD COUNT\r
157         XP IOCON,40             ;CONTINUOUS (CONT=0)\r
158         XP IONRCK,100           ;READ WITH NO. REREAD CHECK\r
159 ;BITS 27,28     DENSITY OF MAG TAPE\r
160 ;               00=INSTALATION STANDARD\r
161 ;               01=200 BPI\r
162 ;               10=556 BPI\r
163 ;               11=800 BPI\r
164         XP IOPAR,1000           ;WRITE EVEN PARITY (BCD) IF 1 ON MAG TAPE\r
165         XP IOTEND,2000          ;END OF MAG TAPE\r
166         XP IOBOT,4000           ;BEGINNING OF MAG TAPE\r
167         XP IOACT,10000          ;DEVICE ACTIVE\r
168         XP IODEND,20000         ;DATA END ENCOUNTERED\r
169         XP IOBKTL,40000         ;BLOCK TOO LARGE\r
170         XP IODTER,100000        ;DATA ERROR\r
171         XP IODERR,200000        ;DEVICE ERROR\r
172         XP IOIMPM,400000        ;IMPROPER MODE DETECTED BY\r
173                                 ; INPUT SERVICE ROUTINE\r
174 ; LEFT HALF (SYSTEM)\r
175         XP IOW,1                ;I/O WAIT\r
176         XP IOBEG,2              ;VIRGIN DEVICE\r
177         XP IOFST,4              ;NEXT ITEM WILL BE THE FIRST ITEM OF A BUFFER\r
178         XP IO,20                ;OUT=1, IN=0\r
179         XP IOEND,40             ;SERVICE ROUTINE HAS TRANSMITTED LAST DATA\r
180 \r
181 ;REST OF BITS IN LH ARE DEVICE DEPENDENT EXCEPT BIT 14(XP 10) WHICK IS KEPT AS A SPARE\r
182 \r
183 \r
184 ;COMMAND DECODER USE OF AC IOS:\r
185 \r
186 ;RH=DISPATCH ADDRESS - SAVJOB,GETJOB,RUNJOB\r
187 ;LH:\r
188         XP NSRBIT,400000        ;HIGH SEG TO BE FLAGGED NON-SHARABLE(SAVE VS SSAVE COMMAND)\r
189                                 ; DO NOT CONFUSE WITH SIGN BIT OF JBTSTS\r
190                                 ; WHICH SAYS SEG IS SHARABLE\r
191 \r
192 \r
193 ;HARDWARE BITS:\r
194 \r
195         XP UWP,1                ;POSITION IN LH OF DATAO APR TO TURN USER-MODE WRITE PROTECT ON\r
196         XP USRMOD,10000 ;LH PC WORD, MACHINE WAS IN USER MODE WHEN PC STORED\r
197         XP UIOMOD,4000  ;LY PC WORD, MACHINE WAS IN USER IO MODE WHEN PC STORED\r
198         NXM=10000               ;NON EX MEMORY\r
199         POV=200000              ;PUSH DOWN OVERFLOW\r
200         ILM=20000               ;ILLEGAL MEMORY\r
201                         ; IE ALL INSTRUCTIONS WERE LEGAL\r
202 \f\r
203 ;LEFT HALF USRJDA (JOB DEVICE ASSIGNMENTS) UUO'S FOR THIS CHANNEL SINCE LAST INIT\r
204         XP INITB,400000         ;INIT-SAVEGET DEPENDS ON THIS BEING SIGN BIT\r
205         XP IBUFB,200000         ;INIT WITH INPUT BUFFER SPECIFIED\r
206         XP OBUFB,100000         ;INIT WITH OUTPUT BUFFER SPECIFIED\r
207         XP LOOKB,40000          ;LOOKUP\r
208         XP ENTRB,20000          ;ENTER\r
209         XP INPB,10000           ;INPUT\r
210         XP OUTPB,4000           ;OUTPUT\r
211         XP ICLOSB,2000          ;INPUT CLOSE\r
212         XP OCLOSB,1000          ;OUTPUT CLOSE\r
213         XP INBFB,400            ;INBUF\r
214         XP OUTBFB,200           ;OUTBUF\r
215         XP SYSDEV,100           ;THIS DEVICE IS SYSTEM TAPE\r
216                                 ; PROJ.PROG. NO 1,1 ON DSK\r
217         XP RENMB,40             ;RENAME UUO\r
218         XP DSKRLB,20            ;TO DISTINGUISH RELEASE FROM RESET UUO IN DSKSER.\r
219                                 ; RELEASE CLEARS THEM ALL\r
220 \r
221 ;MTAPE UUO BITS\r
222         XP SLICE,40             ;SET SLICE LEVEL IF A 1 ACCORDING TO SLEVEL\r
223         XP SLEVEL,20            ;VALUE OF SLICE LEVEL IF SLICE A 1\r
224 \r
225 \r
226 ;ERROR CODES RETURNED TO USERS ON LOOKUP AND ENTER AND RENAME FAILURES(DISK ONLY)\r
227 ;IN 2ND WORD OF 4 WROD ARGUMENT BLOCK(RH)\r
228 ;THE SAME ERROR CODES ARE RETURNED ON RUN AND GETSEG UUOS FOR ALL DEVICES\r
229 \r
230         XP FNFERR,0     ;FILE NOT FOUND OR 0 FILE NAME\r
231         XP IPPERR,1     ;INCORRECT PROJECT,PROGRAMMER NO.\r
232         XP PRTERR,2     ;PROTECTION FAILURE(OR DIRECTORY FULL ON DTA)\r
233         XP FBMERR,3     ;FILE BEING MODIFIED\r
234         XP AEFERR,4     ;ALREADY EXISTING FILE(RENAME ONLY)\r
235         XP NLEERR,5     ;NEITHER LOOKUP NOR ENTER(RENAME ONLY)\r
236         XP TRNERR,6     ;TRANSMISSION ERROR(RUN,GETSEG UUO ONLY)\r
237         XP NSFERR,7     ;NOT A SAVE FILE(RUN,GETSEG UUO ONLY)\r
238         XP NECERR,10    ;NOT ENOUGH CORE(RUN,GETSEG UUO ONLY)\r
239         XP DNAERR,11    ;DEVICE NOT AVAILABLE(RUN,GETSEG UUO ONLY)\r
240         XP NSDERR,12    ;NO SUCH DEVICE(RUN,GETSEG UUO ONLY)\r
241         XP ILUERR,13    ;ILLEGAL UUO (GETSEG ONLY) NOT TWO RELOC REG. CAPABILITY\r
242 \f; JOB BUFFER AREA HEADER\r
243         XP JBFADR,0             ;BIT 0=1 IF THIS BUFFER RING HAS NEVER BEEN\r
244                                 ; REFERENCED FROM THE USER'S PROGRAM BY\r
245                                 ; AN INPUT OR OUTPUT COMMAND.\r
246                                 ; BITS 1-17=UNUSED\r
247                                 ; BITS 18-35=CURRENT BUFFER ADDRESS\r
248         XP JBFPTR,1             ;BYTE POINTER TO NEXT BYTE -1\r
249         XP JBFCTR,2             ;POSITIVE ITEM COUNT\r
250 ; JOB BUFFER HEADER\r
251         XP IOUSE,400000         ;1 IF BUFFER IS FULL (OR BEING EMPTIED)\r
252                                 ; 0 IF BUFFER IS EMPTY (OR BEING FILLED)\r
253                                 ; BITS 1-17=BUFFER SIZE\r
254                                 ; BITS 18-35=NEXT BUFFER ADDRESS\r
255 \f;JOB STATUS WORD(JBTSTS TABLE), ONE WORD FOR EACH JOB(SOME BITS ALSO APPEAR IN HIGH SEG STATUS WORD)\r
256 \r
257 \r
258         XP RUN,400000           ;USER WANTS JOB TO RUN(MUST BE SIGN BIT)\r
259         XP SNA,400000           ;HIGH SEG NUMBER ASSIGNED (ANALOGOUS TO JNA EXCEPT\r
260                                 ; MUST BE SIGN BIT)\r
261         XP CMWB,200000          ;JOB TYPED A COMMAND WHICH NEEDS CORE\r
262                                 ; WHICH IS ON DISK.  SET BY COMMAND DECODER\r
263                                 ; CLEARED WHEN JOB IN CORE AGAIN.\r
264         XP SHRSEG,200000        ;HIGH SEG IS SHARABLE (ALTHOUGH NAME MAY BE 0\r
265                                 ; IG IT HAS BEEN SUPERSEDED)\r
266                                 ; THIS BIT ALSO APPEARS IN SAME PLACE IN LH OF\r
267                                 ; OF JBTSGN FOR EACH USER TO INDICATE USER IS USING A SHARABLE\r
268                                 ; HIGH SEG (ALSO APPEARS IN LH OF AC ITEM WHEN\r
269                                 ; RH IS SEG NUMBER FOR A PARTICULAR JOB\r
270         XP JACCT,100000         ;PRIVILEGED SYSTEM CUSP IS BEING RUN WHICH CANNOT\r
271                                 ; BE STOPPED (E.G., LOGIN\r
272                                 ; OR LOGOUT).  PROTECT IT FROM CURIOUS EYES.\r
273                                 ; DISABLE CONTROL C, MADE IT ACT LIKE ALT-MODE\r
274         XP JNA,40000            ;THIS JOB NUMBER IS ASSIGNED(JOB INITIALIZED)\r
275         XP JERR,20000           ;A MONITOR DETECTED ERROR HAS OCCURRED\r
276                                 ; JOB CAN NOT CONTINUE\r
277         XP NSWP,10000           ;JOB OR HIGH SEG IS NOT TO BE SWAPPED(REALTIME OR DISPLAY)\r
278                                 ; (CAN BE SHUFFLED OR NOT ACCORDING TO NSHF)\r
279                                 ; HIGH SEG CANNOT BE SWAPPED DURING SAVE\r
280         XP SHF,4000             ;MONITOR IS WAITING FOR DEVICES FOR THIS\r
281                                 ; JOB TO STOP AFTER CURRENT BUFFERFULL\r
282                                 ; SO JOB CAN BE SHUFFLED IN CORE OR SWAPPED OUT\r
283                                 ; IF JOB ONLY HAS LOW SEG\r
284         XP SWP,2000             ;0 IF JOB IN CORE, 1 IF SWAPPED OUT OR ON WAY\r
285                                 ; IN OR OUT\r
286 \r
287                                 ; SAME FOR LOW AND HIGH SEGMENTS\r
288         XP NSHF,1000            ;JOB IS NOT SHUFFLABLE\r
289                                 ; OR HIGH SEGMENT HAS ACTIVE SAVE IO\r
290         XP CLKR,400             ;JOB HAS A CLOCK REQUEST IN.\r
291                                 ; NEEDED SO ONLY ONE REQUEST PER JOB\r
292         XP STOPIO,SWP+CMWB+SHF  ;FORCE JOB TO STOP TO EXECUTE\r
293                                 ; SWAP, COMMAND OR \r
294                                 ; SHUFFLE\r
295 \r
296         ;BITS 10-14 USED TO INDICATE JOB IN WAIT FOR A SHARABLE DEVICE\r
297         ;0 MEANS JOB NOT WAITING FOR SHARABLE DEVICE\r
298         ;SEE SCHEDULER(CLKCSS) FOR DEFINITION OF WAIT CODES\r
299 \r
300         XP JWSIZ,5              ;SIZE OF WAIT CODE\r
301         XP JWPOS,^D14           ;RIGHT MOST BIT POS. OF WAIT CODE\r
302         XP WTMASK,370           ;MASK FOR CLEARING WAIT CODES\r
303 \r
304 ;BITS 15-17 ARE NO LONGER SET BY LOGIN, THEY ARE MONITOR STATUS BITS\r
305 \r
306         XP JLOG,4               ;JOB SUCCESSFULLY LOGGED IN\r
307         XP JRQ,2                ;JOB HAS CHANGED STATE AND MUST BE REQUEUED AT CLOCK\r
308                                 ; LEVEL BEFORE RESCHEDULING CAN TAKE PLACE\r
309         XP JXPN,1               ;JOB MUST BE SWAPPED OUT BECAUSE IT IS EXPANDING SIZE\r
310                                 ; OF CORE AND THERE WASN'T ROOM IN CORE\r
311 \r
312 ;BITS 9-17 ARE USED FOR ACCESS PRIVILEGERS BITS FOR SHARABLE HIGH SEGMENTS\r
313 ; SAME FORMAT AS ACCESS BITS FOR DISK\r
314 \r
315         XP HSASIZ,^D9   ;SIZE OF HIGH SEG ACCESS BITS\r
316         XP HSAPOS,^D17  ;RIGHT MOST POSITION OF HIGH SEG ACCESS BITS\r
317         XP HSAMSK,777   ;MASK TO CLEAR ACCESS PRIVILEGES\r
318 ;MASKS USED TO TEST STATUS CONDITIONS:\r
319 \r
320         XP RUNABLE,RUN+JNA      ;STATUS BIT PATTERN FOR JOB TO BE RUNABLE\r
321         XP RUNMSK,JLOG+CLKR+NSHF+JACCT+NSWP     ;BITS WHICH DO NOT MATTER FOR RUNABILITY\r
322 \f;BITS IN JBTSWP TABLE\r
323 \r
324         XP FRGSEG,400000        ;LH - 1 IF LOW OR HIGH SEG IS FRAGMENTED ON SWP DEV\r
325         XP SWPCLR,400000        ;RH - 1 IF JOB DATA AREA SHOULD BE CLEARED AFTER\r
326                                 ; IN. SET ON 140 RESTART SO NO DEVICES ASSIGNED\r
327 \f;VIRTUAL ADDRESSING SPACE DESCRIPTOR WORD (JBTSGN) ONE WORD FOR EACH JOB\r
328 ;THIS WORD APPEARS IN AC ITEM\r
329 ;LH BITS\r
330         XP SPYSEG,400000        ;THE HIGH SEB IS PHYSICAL CORE (SEE SPYUUO)\r
331                                 ; MUST BE SIGN BIT SO TEST FOR JOB HAVING A\r
332                                 ; REAL HIGH SEG IS SKIPG JBTSGN(ITEM)\r
333         XP SHRSEG,SHRSEG        ;THE HIGH SEG THIS JOB IS USING IS SHARABLE\r
334                                 ; THIS BIT ALSO APPEARS IN JBTSTS FOR HIGH SEGS\r
335         XP UWPOFF,100000        ;IF 1, USER-MODE WRITE PROTECT IS OFF FOR THIS JOB\r
336         XP MEDDLE,40000         ;IF 1, USER HAS MEDDLED WITH SHARABLE PROGRAM SUCH\r
337                                 ; THAT PROGRAM CANNOT TRUST ITSELF\r
338                                 ; TO TURN UWP OFF OR CHANGE HIGH SEG CORE ASSIGNMENT \r
339                                 ; MEDDLING MEANS:\r
340                                 ;   1. START N, OR D COMMAND\r
341                                 ;   2. RUN UUO WITH GREATER THAN 1 STARTING\r
342                                 ;      INCREMENT\r
343                                 ;   3. GETSEG UUO\r
344                                 ;  4. HIGH SEG IS PHYSICAL CORE (SPY UUO)\r
345 XP CORCNT,20000         ;#1, THE HIGH SEG IN CORE COUNT FOR THIS JOB\r
346                                 ; HAS BEEN INCREMENTED, IF 0 IT HAS NOT\r
347                                 ; SET AND CLEARED BY INCCNT AND DECCNT ROUTINES\r
348 ;RH IS HIGH SEG NUMBER (NUMBER GREATER THAN JOB MAX AND LESS THAN OR EQUAL TO JBTMAX)\r
349 ; OR IF SPYSEG IS SET, RH IS HIGHEST PHYSICAL ADR USER MAY SPY INTO\r
350 \r
351 ;JOB PRIVILEGE BITS - JBTPRV TABLE\r
352 ;SET BY LOGIN FROM ACCT.SYS FILE AS MODIFIED BY CUSTOMER\r
353 ;RH RESERVED FOR SPECIAL CUSTOMER DEFINED PRIVILEGES(PLEASE START AT BIT 35)\r
354 ;LH RESERVED FOR DIGITAL STANDARD PRIVILEGES\r
355 \r
356 ;BITS IN LEFT HALF\r
357         XP PVSPYM,1     ;JOB ALLOWED TO SPY AT MONITOR USING PEEK/SPY UUOS\r
358         XP PVSPYA,2     ;JOB ALLOWED TO SPY AT ALL OF CORE USING PEEK/SPY UUOS\r
359         XP PVTRPS,4     ;JOB ALLOWED TO USE TRPSET UUO\r
360 \f; SYSTEM MACROS\r
361 \r
362 ;MACRO TO PREVENT SCHEDULING, USED AT UUO LEVEL WHEN A\r
363 ;REENTRANT ROUTINE IS CHANGING COMMON DATA NOT YET\r
364 ;ASSIGNED TO A PARTICULAR JOB\r
365 \r
366 DEFINE NOSCHED\r
367 <>\r
368 \r
369 ;MACRO TO ALLOW SCHEDULING ONCE MORE\r
370 \r
371 DEFINE SCHEDULE\r
372 <>\r
373 \r
374 ;MACRO TO PREVENT CORE SHUFFLING, USED AT UUO LEVEL WHEN\r
375 ;A ROUTINE SETS UP AN ABSOLUTE USER ADDRESS IN AN AC\r
376 ;OTHER THAN PDP,PROG, OR JDAT. THE MAIN EXAMPLE IS A BLT\r
377 ;FROM EXEC TO USER OR USER TO EXEC.\r
378 \r
379 DEFINE NOSHUFF\r
380 <>\r
381 \r
382 ;MACRO TO ALLOW SHUFFLING ONCE MORE\r
383 \r
384 DEFINE SHUFFLE\r
385 <>\r
386 \r
387 ;MACRO TO TURN OFF ALL PI CHANNELS EXCEPT DATA CONTROL ONCE\r
388 \r
389 DEFINE DISABLE(A)\r
390 <EXTERNAL CHNOFF\r
391         CONI PI,A\r
392         CONO PI,CHNOFF>\r
393 \r
394 ;MACRO TO TURN THEN BACK ON\r
395 \r
396 DEFINE ENABLE(A)\r
397 <EXTERNAL CHNON\r
398         ANDCMI A,CHNOFF ;DO NOT TOUCH DC CHANNELS\r
399         TRO A,2000      ;SET TO TRUN SELECTED CHANNEL ON\r
400         CONO PI,(A)\r
401 >\r
402 \r
403 \r
404 \r
405 ;MACRO TO START A DEVICE FROM UUO LEVEL\r
406 ;TAC:=XWD DEVINT FLAGS,CONO ARGUMENTS\r
407 \r
408 DEFINE STARTDV(A)\r
409 <EXTERNAL PIOFF,PION\r
410         CONO PI,PIOFF\r
411         CONO A,(TAC)\r
412         HLRM TAC,A'CON\r
413         CONO PI,PION\r
414 >\r
415 \f;LIST OF INDEPENDENT MONITOR COMMAND FEATURES\r
416 ;THESE FEATURES CAN BE ELIMINATED FROM A SYSTEM BY\r
417 ;SETTING THE APPROPRIATE FTXXXX SYMBOL BELOW TO 0\r
418 ;AND REASSEMBLING THOSE ROUTINES IN WHICH CODE FOR THE\r
419 ;FEATURE APPEARS.  THE ROUTINES AFFECTED BY EACH FEATURE\r
420 ;ARE LISTED BELOW.  TO GUARANTEE THAT NO ROUTINES ARE\r
421 ;MISSED, FTXXXX IS DEFINED TO BE AN INTERNAL IN THOSE ROUTINES\r
422 ;IN WHICH IT IS USED IN CONDITIONAL ASSEMBLY.  THUS THE\r
423 ;RELOCATING LOADER WILL DETECT MULTIPLY DEFINED GLOBALS\r
424 ;IF NOT ALL ROUTINES AFFECTED HAVE BEEN REASSEMBLED.\r
425 \r
426 FTTIME=-1       ;TIME ACC\r
427                 ; APPEARS IN APRSER,STUFF\r
428 \r
429 FTATTACH=-1     ;ATTACH AND DETACH TTY TO JOB COMMANDS\r
430                 ; APPEARS IN APRSER,SCNSER\r
431 \r
432 FTTALK=-1       ;TALK TO TTYS COM.\r
433                 ; APPEARS IN APRSER,SCNSER\r
434 \r
435 FTEXAMINE=-1    ;EXAMINE AND DEPOSIT COMMANDS\r
436                 ; APPEARS IN APRSER\r
437 \r
438 FTREASSIGN=-1   ;REASSIGN COMMAND\r
439                 ; APPEARS IN APRSER\r
440 \r
441 FTTRPSET=-1     ;USER IO - TRPSET,TRPJEN UUOS AND OPCODE 100(PDP-10S ONLY)\r
442                 ; APPEARS IN APRSER,STUFF,CLKCSS\r
443                 ; THESE UUOS ARE SOON TO BE REPLACED BY SOME KNAVE-PROOF REAL TIME UUOS\r
444 \r
445 FTSLEEP=-1      ;SLEEP UUO\r
446                 ; APPEARS IN APRSER,STUFF\r
447 \r
448 FTFINISH=-1     ;FINISH COMMAND\r
449                 ; APPEARS IN APRSER\r
450 \r
451 FTCHECK=0       ;MONITOR CHECKSUMMING\r
452                 ; APPEARS IN ALL FILES EXCEPT CHAN, NULL\r
453 \r
454 FTMONP=0        ;MONITOR WRITE PROTECTED BETWEEN 1000 AND 20000\r
455                 ; APPEARS IN ALL FILES EXCEPT CHAN, NULL\r
456 \fFTRCHK=-1      ;ASSEMBLE WITH REDUNDANT CHECKING FOR INTERNAL MONITOR ERRORS.\r
457                 ; HALT IF AN ERROR IS DETECTED\r
458                 ; CONTINUE WILL LOOP(IF NON-RECOVERABLE ERROR) OR TRY TO RECOVER\r
459                 ; OPERATOR SHOULD MAKE NOTE OF MEMORY ADDRESS REG(LOC+1 OF HALT)\r
460                 ; APPEARS IN DSKINT,.....\r
461 \r
462 \r
463 FTHALT=0        ;MONITOR HALTS WHEN IT DETECTS AN ERROR IN ITSELF INSTEAD OF PRINTING A MESSAGE\r
464                 ; WHEN IT DETECTS AN ERROR.  USED FOR DEBUGGING SO A DUMP CAN BE TAKEN\r
465                 ; APPEARS IN ERRCON, CONTINUE SWITCH WILL CAUSE USUAL\r
466                 ; ERROR MESSAGE TO BE PRINTED, AC DAT HAS JSP DAT,ERROR IN IT ON HALT\r
467 \r
468 \r
469 FTTRACK=0       ;MONITOR LEAVES USEFUL INFORMATION IN LOCATIONS\r
470                 ; IN COMMON, NOT NEEDED EXCEPT FOR LEAVING TRACKS\r
471                 ; TO DEBUG CRASHES WITH.\r
472 \r
473 FTTTYSER=-1     ;SCNSRF INSTEAD OF SCNSRH\r
474                 ; APPEARS IN APRSER\r
475 \r
476 FT2REL=-1       ;SUBROUTINE CALLS TO SEGCON FOR TWO RELOCATION REGISTER CAPABILITY\r
477                 ; -1 FOR PDP-6 AND PDP-10.  SEGCON IS EITHER A DUMMY SET\r
478                 ; OF SUBROUTINE OR THE REAL THING DEPENDING ON THE MACHINE.\r
479                 ; THOSE CUSTOMERS WITHOUT 2 REG MACHINES WHO WANT TO ELIMINATE THE 20 OR SO LOCS OF\r
480                 ; SUBROUTINE CALLS TO SEGCON, CAN DO SO BY REASSEMBLIN THE MONITOR\r
481                 ; WITH FT2REL=0. HOWEVER THE COMPANY WILL DISTRIBUTE MONITORS\r
482                 ; WITH FT2REL=-1 ALWAYS(PDP-6 AND PDP-10)\r
483 \r
484                 ; APPEARS IN FIRST,ONCE,APRSR,SCHED\r
485 \r
486 FTKCT=-1        ;ACCUMULATE CORE*RUNNING TIME FOR CHARGING FOR EACH USER\r
487 \r
488 FTPRV=-1        ;PRIVILEGE BITS FOR EACH USER\r
489 \r
490 FTGETTABL=-1    ;GETTAB UUO - RETURN CONTENTS OF MONITOR  JOBTABLES\r
491 \r
492 FTRA10=0        ;NO RA-10 DISK CONTROLLER (BRYANT DISK)\r
493                 ;TEMPORARILY USED IN DSKSER\r
494 \f;DEFINE THE QUEUES, QUANTUM RUNNING TIME IN JIFFIES, AND PRIORITY\r
495 ;PRIORITY GOES BACKWARD FROM LOW TO HIGH\r
496 \r
497 DEFINE QUEUES\r
498 <       X RN,7  ;STRAIGHT RUN (LOWEST PRIORITY)(Q=0)\r
499         X WS,6  ;IO WAIT SATISFIED\r
500         X TS,6  ;TTY IO WAIT SATISFIED\r
501         X ST,6  ;SYSTEM TAPE WAIT\r
502         IFN FTDISK,<\r
503                 X AU,4  ;ALTER DISK UFD QUEUE\r
504                 X MQ,4  ;MONITOR DISK QUEUE\r
505                 X DA,4  ;DISK STORAGE ALLOCATION WAIT\r
506 >\r
507         X DT,4  ;DECTAPE CONTROL WAIT (UP TO 8 DRIVES)\r
508         X DC,4  ;DATA CONTROL (DC) WAIT - MAGTAPE AND DECTAPE\r
509         X MT,4  ;MAGTAPE CONTROL WAIT (UP TO 8 UNITS)\r
510 >\r
511 \r
512 \r
513 ;JOB STATUS CODES WHICH HAVE NO CORRESPONDING QUEUES\r
514 ;JOBS ARE UNRUNABLE WHEN IN THESE STATES\r
515 \r
516 DEFINE CODES\r
517 <       X IOW,  ;IO WAIT\r
518         X TIOW, ;TTY IO WAIT\r
519         X SLP,  ;JOB SLEEPING\r
520         X NUL,  ;JOB NUMBER NOT ASSIGNED\r
521         X STOP, ;STOP (CONTROL C)\r
522 >\r
523         XP STTYBF,20    ;SIZE OF TTY BUFFER\r
524         XP STTYB1,STTYBF+1      ;LENGTH+1\r
525 \r
526         ASUPPRESS       ;ELIMINATE ALL SYMBOLS NOT REFERENCED LATER\r
527                         ; FROM THE SYMBOL TABLE LISTING\r
528         LIST\r
529 \f\r