Cleanup more typos.
[retro-software/dec/tops10/v4.5.git] / src / jobdat.mac
1 TITLE   JOBDAT - JOB DATA AREA (FIRST 140 LOC OF USER AREA) V407\r
2 SUBTTL  T. HASTINGS/TH  TS  15 MAR 69\r
3 IFNDEF UJOBDAT,<VJOBDT=407\r
4 INTERN VJOBDT           ;PUT VERSION NUMBER IF NOT JSER VERSION\r
5 >\r
6 ;TO ELIMINATE MOST OF UNWANTED GLOBALS USERS\r
7 ;ASSEMBLING INSTRUCTIONS TO MAKE USER VERSION FOR CUSP:\r
8 ;DSK:JOBDAT_TTY:,DSK:JOBDAT\r
9 ;UJOBDAT=1\r
10 ;^Z\r
11 IFDEF DEVDAT,<PRINTX PLEASE REASSEMBLE WITHOUT S.MAC\r
12 >\r
13 \r
14 IFNDEF UJOBDAT,<\r
15 ENTRY DATJOB\r
16 DATJOB:\r
17 >\r
18 \r
19 ;THIS AREA PROVIDES STORAGE OF ITEMS OF INTEREST TO BOTH\r
20 ;THE MONITOR AND THE USER\r
21 \r
22 ;MACRO TO DEFINE SYMBOLS FOR MONITOR USE ONLY\r
23 ;THESE MAY BE CHANGED TO SUIT MONITOR\r
24 \r
25 DEFINE M(SYMBOL,VALUE,LENGTH)\r
26 <               SYMBOL=VALUE\r
27 IFNDEF UJOBDAT,<INTERNAL SYMBOL> ;MAKE GLOBAL ONLY IF ASSEM FOR MONITOR\r
28 LOC=VALUE+LENGTH>\r
29 \r
30 ;MACRO TO DEFINE SYMBOLS FOR USER USE\r
31 ;THESE CANNOT BE CHANGED WITHOUT INVALIDATING OLD SAVED FILES\r
32 \r
33 DEFINE U(SYMBOL,VALUE,LENGTH)\r
34 <               SYMBOL=VALUE\r
35 ENTRY SYMBOL\r
36 LOC=VALUE+LENGTH>\r
37 \r
38 ;MACRO TO DEFINE PARAMETERS OF INTEREST TO MONITOR ONLY\r
39 ;THESE MAY BE CHANGED TO SUIT MONITOR\r
40 ;MUST ASSEMBLE WITH SYSPAR TAPE FIRST\r
41 \r
42 DEFINE XP(SYMBOL,VALUE)\r
43 <               SYMBOL==VALUE\r
44 IFNDEF UJOBDAT,<INTERN SYMBOL>> ;MAKE GLOBAL ONLY IF ASSEM FOR MONITOR\r
45 \r
46 ;DEFINE MONITOR ACS AS LOCALS SO JOBDAT DOES NOT NEED TO BE ASEMBLED WITH S.MAC\r
47 ;THIS IS SO THE USER IS NOT FACED WITH A LOT OF INTERNAL SYMBOLS\r
48 ;WHICH MAY CONFLIT WITH HIS AND GIVE HIM MULTIPLY DEFINED GLOBALS\r
49 \r
50 PDP=3\r
51 PROG=7\r
52 \f\r
53 M JOBAC,0,20\r
54                         ;PLACE WHERE USER ACS ARE STORED ON UUO CALLS\r
55                         ;IE RELATIVE 0-17 IN USER AREA\r
56 M JOBDAC,LOC,17\r
57                         ;PLACE WHERE HARDWARE ACS(0-16) ARE STORED\r
58                         ;WHEN JOB IS INACTIVE. THESE ARE EITHER THE\r
59                         ;USERS AC IF JOB WAS STOPPED IN USER MODE\r
60                         ;OR ARE THE EXEC IF STOPED IN EXEC MODE\r
61                         ;0-16 ALSO STORED HERE ON CLK INTERRUPTS\r
62 XP JOBDPD,JOBDAC+PDP\r
63                         ;AC PDP DUMPED HERE\r
64 XP JOBDPG,JOBDAC+PROG\r
65                         ;AC PROG DUMPED HERE\r
66 XP JOBD14,JOBDAC+14\r
67                         ;AC 14 DUMPED HERE\r
68 XP JOBD15,JOBDAC+15\r
69                         ;AC 15 DUMPED HERE\r
70 XP JOBD16,JOBDAC+16\r
71                         ;AC 16 DUMPED HERE\r
72 XP JOBD17,JOBDAC+17\r
73                         ;AC 17 DUMPED HERE\r
74 U JOBUUO,40,1\r
75                         ;USER UUO TRAP LOC.(UUO STORED HERE)\r
76 U JOB41,41,1\r
77                         ;USER UUO JSR LOCATION\r
78 U JOBERR,42,1\r
79                         ;LH UNUSED-SAVE FOR LATER THINGS, SO USER PROGRAMS\r
80                         ;SHOULD IGNORE LH IN ALL PROGRAMS\r
81                         ;RH=COUNT OF NO. OF ERRORS IN RPG(RAPID PROGRAM\r
82                         ;GENERATION) SEQUENCE OF CUSPS.\r
83                         ;NOT CHANGED FROM GET TO GET.\r
84 M JOBENB,43,1\r
85                         ;LH=UNUSED\r
86                         ;RH=APR CONSO FLAGS FOR USER APR TRAPPING\r
87                         ;SET BY CALL [SIXBIT /APRENB/]\r
88 U JOBREL,44,1\r
89                         ;LH=0,RH=HIGHEST REL. ADR. IN USER AREA(IE LOW SEGMENT)\r
90                         ;SET BY MONITOR EACH TIME JOB RUNS OR CHANGES CORE SIZE\r
91 M JOBPD1,LOC,0\r
92                         ;FIRST LOC. OF SYSTEM UUO PUSHDOWN LIST\r
93 XP JOBPDL,JOBPD1-1\r
94                         ;FIRST LOC.-1\r
95 XP JOBPD3,JOBPDL+3\r
96                         ;PLACE FOR SSTORING FIRST PUSH IN A UUO ROUTINE(THIRD ENTRY)\r
97                         ; USED BY RUN AND GETSEG UUOS\r
98 U JOBBLT,JOBPD1,3\r
99                         ;3 WORDS USED BY LINKING LOADER TO MOVE PROGRAM DOWN\r
100                         ;BEFORE CALLING EXIT.\r
101                         ;OK TO USE EXEC PD LIST BEFORE EXECUTING UUO\r
102 \r
103 \fLOC=72\r
104 XP MJOBPD,JOBPDL-LOC\r
105                         ;MINUS LENGTH OF PUSHDOWN LIST\r
106 XP MJOBP1,MJOBPD+1\r
107                         ;-LENGTH+1\r
108 XP JOBPRT,LOC\r
109                         ;FIRST LOC PROTECTED BY BEING COPIED INTO MONITOR\r
110 XP JOBPR1,JOBPRT+1\r
111                         ;FIRST LOC+1\r
112 M JOBHCU,LOC,1\r
113                         ;HIGHEST USER IO CHANNEL IN USE\r
114                         ;ONLY JOBJDA...JOBJDA+C(JOBHCU) ARE COPIED INTO\r
115                         ;MONITOR WHEN JOB IS RUN. 0 MEANS NONE OR\r
116                         ;CHAN. 0 IN USE, -1 MEANS SAVEGET HAS ACTIVE IO\r
117 M JOBPC,LOC,1\r
118                         ;JOB PC WHEN JOB INACTIVE\r
119 U JOBDDT,74,1\r
120                         ;LH UNUSED,RH=STARTING ADDRESS OF USER DDT\r
121 XP JOBSAV,JOBDDT-1\r
122                         ;FIRST LOC.-1 WRITTEN BY SAVE COMMAND\r
123 M JOBJDA,LOC,20\r
124                         ;JOB DEVICE ASSIGNMENT TABLE\r
125                         ;LH=UUOS DONE SO FAR,RH=ADR. OF DEVICE DATA BLOCK IN MONITOR\r
126 XP JOBSV,JOBJDA+1\r
127                         ;FIRST LOC READ INTO OR WRITTEN FROM BY NEW SAVGET\r
128                         ; WHICH ZERO COMPRESSES ON ALL DEVICES\r
129                         ; THIS LOC CONTAINS THE FIRST IOWD WITH NO-NO. OF DATA WORDS\r
130                         ; IN LH, FIRST ADR-1 IN RH\r
131                         ; MONITOR SUPPRESSES STORING IN RH OF JOBHRL DURING\r
132                         ; SAVEGET(USRCHU NEG.)\r
133                         ; SO THAT OLD ZERO COMPRESSED DECTAPE FILES WILL\r
134                         ; ALWAYS FIT IN CORE (JOBHRL USERD TO BE 0)\r
135                         ; THIS CHECK COULD HAVE BEEN ELIMINATED, IF JOBSV HAD BEEN\r
136                         ; DEFINED AS JOBHRL+1(JOBSYM), HOWEVER JOBSYM ALMOST\r
137                         ; ALWAYS HAS NON-ZERO DATA, SO SAVEGET WOULD HAVE  TO\r
138                         ; BE WRITTEN TO EXPAND DOWN OR UP RATHER THEN JUST UP\r
139 XP JOBSVM,JOBSV-1\r
140                         ;FIRST LOC-1, USED FOR SETTING UP DUMPE MODE\r
141                         ; COMMAND LIST FOR SAVGET\r
142 XP JOBSV3,JOBSV+3\r
143                         ;LOC WHICH SHOULD NOT CONTAIN 0 UNLESS FILE WAS\r
144                         ; CREATED BY CONVERTING OLD FORMAT TO NEW FORMAT\r
145                         ; DECTAPE USING CONVRT PROGRAM\r
146 XP JOBSVD,JOBSVM-JOBSAV\r
147                         ;NO. OF LOCATIONS TO MOVE DOWN OLD (NON-COMPRESSED DSK)\r
148                         ; SAVE FILES WHICH WERE ALWAYS WRITTEN FROM JOBSAV+1\r
149 XP JOBSDP,JOBSV-JOBSAV\r
150                         ;NO. OF LOCATION TO MOVE DOWN CONVERTED SAVE FILES\r
151                         ; WHICH ARE ALWAYS WRITTEN FORM JOBSAV+1 AND HAVE\r
152                         ; AN IOWD ADDED ON FRONT SO IT LOOKS LIKE A COMPRESSED FILE\r
153 \r
154 \fU JOBCN6,JOBJDA+11\r
155                         ;6 TEMP LOCATIONS USED BY CHAIN TO HOLD ERROR ROUTINE\r
156                         ; WHEN IT LOADS NEXT CHAIN LINK.(JOBJDA+11...16)\r
157                         ; THESE LOCATIONS ARE OK TO USE SINCE CHAIN RELEASES ALL\r
158                         ; USER CHANNELS AND MONITOR WILL NOT DESTROY THEM\r
159                         ; WHEN JOB CONTEXT IS SWITCHED\r
160 XP JOBSDD,JOBJDA+17\r
161                         ;PLACE TO SAVE JOBDDT ON SAVE SO ZERO EXPANSION ON GET\r
162                         ;ALWAYS MOVES UP\r
163 XP JOBSD1,JOBSDD-1\r
164                         ;FOR COMPUTING IOWD'S\r
165 XP JOBJMH,JOBHCU-JOBJDA\r
166                         ;JOBHCU-JOBJDA\r
167                         ;USED BY ANYACT ROUT. IN CORE1\r
168 XP JOBPFI,JOBJDA+17\r
169                         ;HIGHEST LOC. IN JOB DATA AREA PROTECTED FROM IO\r
170 XP MJOBCK,JOBDAC-JOBPFI\r
171                         ;AREA CHECKSUMMED DURING SWAPPING\r
172 U JOBHRL,115,1\r
173                         ;LH IS ANALOGOUS TO LH OF JOBSA, IE FIRST\r
174                         ;LH IS FIRST FREE LOC IN HIGH SEG RELATIVE TO ITS ORIGIN\r
175                         ;ANALOGOUS TO LH OF JOBSA FOR LOW SEG\r
176                         ; (IN OTHER WORDS LH=LENGTH TO SAVE ON SAVE COMMAND)\r
177                         ; SET BY LINKING LOADER\r
178                         ;RH ANALOGOUS TO JOBREL, IE HIGHEST LEGAL\r
179                         ;USER ADDRESS IN HIGH SEG. SET BY MONITOR EVERY TIME\r
180                         ;USER RUNS.  IF JOBHRL=0, JOB DOES NOT HAVE A HIGH SEG\r
181                         ;USER PROGRAMS SHOULD BE WRITTEN SO THAT\r
182                         ;THEY CAN BE ONE OR TWO SEGMENT PROGRAMS. JOBHRL\r
183                         ;CAN BE TESTED FOR NON-ZERO TO SEE IF HIGH SEG EXISTS\r
184 U JOBSYM,116,1\r
185                         ;POINTER TO LOADER AND DDT SYMBOL TABLE POINTER\r
186 U JOBUSY,117,1\r
187                         ;POINTER TO UNDEFINED SYMBOL TABLE\r
188                         ;SET BY LOADER, NOT YET USED BY DDT\r
189 U JOBSA,120,1\r
190                         ;LH=INITIAL FIRST FREE LOCATION IN LOW SEG (SET BY LINKING LOADER)\r
191                         ;RH=STARTING ADDRESS OF USER PROGRAM\r
192 \f\r
193 U JOBFF,121,1           ;(SET FROM HIGH DATA AREA ON GET IF NO LOW FILE)\r
194                         ;CURRENT FIRST FREE LOCATION IN LOW SEG\r
195                         ;USED AND UPDATED BY MONITOR TO ASSIGN I/O BUFFERS IN TOP\r
196                         ;OF USER AREA\r
197                         ; USER MAY CHANGE CONTENTS IN ORDER TO AFFECT PLACEMENT OF\r
198                         ; BUFFERS BY MONITOR\r
199 U JOBS41,122,1\r
200                         ;C(JOB41) SAVED HERE ON SAVE COMMAND\r
201                         ;RESTORE FROM HERE ON GET\r
202 M JOBEXM,LOC,1\r
203                         ;LAST LOC EXAMINED OR DEPOSITED USING \r
204                         ;D OR E COMMANDS\r
205                         ;LH=-1 IF LAST COM WAS AN E, 0 IF IT WAS A D\r
206 U JOBREN,124,1\r
207                         ;REENTER ADDRESS FOR REENTER COMMAND\r
208 U JOBAPR,125,1\r
209                         ;PLACE TO TRAP TO IN USER AREA ON APR TRAP\r
210                         ;ENABLED BY APRENB UUO\r
211 U JOBCNI,126,1\r
212                         ;APR IS CONIED INTO C(JOBCNI) ON APR TRAP\r
213 U JOBTPC,127,1\r
214                         ;PC IS STORED HERE ON USER APR TRAP\r
215 U JOBOPC,130,1\r
216                         ;OLD PC IS STORED HERE ON START,DDT,REENTER,\r
217                         ;STARTC COMMANDS\r
218 U JOBCHN,131,1\r
219                         ;LH=FIRST LOC AFTER FIRST FORTRAN 4 LOADED PROGRAM\r
220                         ;RH=FIRST LOC AFTER FIRST FORTRAN 4 BLOCK DATA\r
221                         ;TO BE USED FOR JOB CHAINING\r
222 M JOBFDV,LOC,1\r
223                         ;DEV. DATA BLOCK ADR. FOR FINISH COMMAND\r
224 \fU JOBCOR,133,1\r
225                         ;(SET FROM HIGH DATA AREA ON GET IF NO LOW FILE)\r
226                         ;LH=HIGHEST LOCATION LOADED(LOW SEG) WITH PROG OR DATA\r
227                         ; SET BY LOADER(BLOCK STATEMENTS DO NOT COUNT HERE)\r
228                         ; SAVE WILL NOT WRIT THE LOW SEG OF A TWO SEG PROG.\r
229                         ; IF LH IS 137 OR LESS AND GET WILL NOT READ\r
230                         ;RH=SIZE OF CORE FOR LOW SEG ON RUN,SAVE,GET COM.\r
231                         ;(SET FROM HIGH DATA AREA ON GET IF NO LOW FILE)\r
232                         ;SET BY SAVE TO CORE ASSIGNMENT TO BE USED ON GET\r
233                         ; (UNLESS USER TYPES A LARGER ARG TO GET)\r
234                         ; TO FIRST FREE LOC-1(OR TOP IF USER DDT) OR\r
235                         ; TO USER'S CORE RG TO SAAVE IF BIGGER\r
236                         ;GET ALWAYS SETS RH TO INITIAL CORE ASSIGNMENT SO THAT PROG\r
237                         ; CAN RESTORE CORE TO ORIGINAL ASSIGNMENT ON RESTARTING\r
238                         ;134-136 UNUSED\r
239 U JOBVER,137,1  \r
240                         ;CONTAINS VERSION NO.(OCTAL) OF CUSP BEING RUN IN RH\r
241                         ;PROGRAMMER NUMBER IN LH OF PROGRAMMER MAKING LAST CHANGE\r
242                         ;GET LOADS FROM SAVE FILE.  NEVER CONVERTED\r
243                         ;TO DECIMAL BY MAN OR MACHINE. E 137 WILL PRINT VERSION NO.\r
244                         ;SET BY LOC 137 IN CUSP SOURCE\r
245                         ;(SET FROM HIGH DATA AREA ON GET IF NO LOW FILE)\r
246 XP JOBDA,140\r
247                         ;FIRST LOC NOT USED BY JOB DATA AREA\r
248 \f; HIGH SEGMENT DATA AREA\r
249 ; LOCATIONS ARE RELATIVE TO BEGINNING OF HIGH SEGMENT, SINCE\r
250 ; THE HIGH SEGMENT CAN BEGIN AT 400000 OF HIGHER\r
251 ; THIS AREA IS USED TO INITIALIZE CERTIAN LOCATIONS IN THE LOW SEG JOB DATA AREA\r
252 ; IN CASE THER WAS NO LOW SEG SAVED,(LH JOBCOR 137 OR LESS AS SET BY LOADER)\r
253 ; LOW SEG JOB DATA AREA LOCATIONS SET FROM HIGH SEG DATA AREA ARE INDICATED ABOVE BY:\r
254 ;(SET FROM HIGH SEG IF NEC)\r
255 ; THESE LOCATIONS ARE SET FORM LOW JOB DATA AREA ONLY IF HIGH SEG IS NON-SHARABLE\r
256 ; AT THE TIME THE SAVE IS PREFORMED (SHRSEG=0 IN JBTSTS)\r
257 \r
258 XP JOBHSA,0\r
259                         ;USED TO RESTORE JOBSA\r
260 XP JOBH41,1\r
261                         ;USED TO RESTORE JOB41\r
262 XP JOBHCR,2\r
263                         ;USED TO RESTORE JOBCOR(BOTH HALVES)\r
264 XP JOBHRN,3\r
265                         ;LH RESTORES LH OF JOBHRL(FIRST REL. FREE LOC. IN HIGH)\r
266                         ;RH RESTORES JOBREN,LH SET TO 0 FOR FUTURE\r
267 XP JOBHVR,4\r
268                         ;RESTORE BOTH HALVES OF JOBVER\r
269         XP JOBPOP,4\r
270                         ;HIGHEST LOC TO BE RESTORED(POPPED) BY GET\r
271 XP JOBHDA,10\r
272                         ;FIRST LOC NOT USED BY HIGH SEG DATA AREA\r
273                         ;LOADER WILL LOAD FIRST WORD HERE\r
274                         ;VALUE CANNOT BE CHNGED WITHOUT\r
275                         ;CHANGING LOADER AND RELOADING TO MAKE NEW SAVE FILES\r
276         END\r