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
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
11 IFDEF DEVDAT,<PRINTX PLEASE REASSEMBLE WITHOUT S.MAC
\r
19 ;THIS AREA PROVIDES STORAGE OF ITEMS OF INTEREST TO BOTH
\r
20 ;THE MONITOR AND THE USER
\r
22 ;MACRO TO DEFINE SYMBOLS FOR MONITOR USE ONLY
\r
23 ;THESE MAY BE CHANGED TO SUIT MONITOR
\r
25 DEFINE M(SYMBOL,VALUE,LENGTH)
\r
27 IFNDEF UJOBDAT,<INTERNAL SYMBOL> ;MAKE GLOBAL ONLY IF ASSEM FOR MONITOR
\r
30 ;MACRO TO DEFINE SYMBOLS FOR USER USE
\r
31 ;THESE CANNOT BE CHANGED WITHOUT INVALIDATING OLD SAVED FILES
\r
33 DEFINE U(SYMBOL,VALUE,LENGTH)
\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
42 DEFINE XP(SYMBOL,VALUE)
\r
44 IFNDEF UJOBDAT,<INTERN SYMBOL>> ;MAKE GLOBAL ONLY IF ASSEM FOR MONITOR
\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
54 ;PLACE WHERE USER ACS ARE STORED ON UUO CALLS
\r
55 ;IE RELATIVE 0-17 IN USER AREA
\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
64 XP JOBDPG,JOBDAC+PROG
\r
65 ;AC PROG DUMPED HERE
\r
75 ;USER UUO TRAP LOC.(UUO STORED HERE)
\r
77 ;USER UUO JSR LOCATION
\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
86 ;RH=APR CONSO FLAGS FOR USER APR TRAPPING
\r
87 ;SET BY CALL [SIXBIT /APRENB/]
\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
92 ;FIRST LOC. OF SYSTEM UUO PUSHDOWN LIST
\r
96 ;PLACE FOR SSTORING FIRST PUSH IN A UUO ROUTINE(THIRD ENTRY)
\r
97 ; USED BY RUN AND GETSEG UUOS
\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
104 XP MJOBPD,JOBPDL-LOC
\r
105 ;MINUS LENGTH OF PUSHDOWN LIST
\r
109 ;FIRST LOC PROTECTED BY BEING COPIED INTO MONITOR
\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
118 ;JOB PC WHEN JOB INACTIVE
\r
120 ;LH UNUSED,RH=STARTING ADDRESS OF USER DDT
\r
122 ;FIRST LOC.-1 WRITTEN BY SAVE COMMAND
\r
124 ;JOB DEVICE ASSIGNMENT TABLE
\r
125 ;LH=UUOS DONE SO FAR,RH=ADR. OF DEVICE DATA BLOCK IN MONITOR
\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
140 ;FIRST LOC-1, USED FOR SETTING UP DUMPE MODE
\r
141 ; COMMAND LIST FOR SAVGET
\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
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
164 ;FOR COMPUTING IOWD'S
\r
165 XP JOBJMH,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
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
185 ;POINTER TO LOADER AND DDT SYMBOL TABLE POINTER
\r
187 ;POINTER TO UNDEFINED SYMBOL TABLE
\r
188 ;SET BY LOADER, NOT YET USED BY DDT
\r
190 ;LH=INITIAL FIRST FREE LOCATION IN LOW SEG (SET BY LINKING LOADER)
\r
191 ;RH=STARTING ADDRESS OF USER PROGRAM
\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
197 ; USER MAY CHANGE CONTENTS IN ORDER TO AFFECT PLACEMENT OF
\r
198 ; BUFFERS BY MONITOR
\r
200 ;C(JOB41) SAVED HERE ON SAVE COMMAND
\r
201 ;RESTORE FROM HERE ON GET
\r
203 ;LAST LOC EXAMINED OR DEPOSITED USING
\r
205 ;LH=-1 IF LAST COM WAS AN E, 0 IF IT WAS A D
\r
207 ;REENTER ADDRESS FOR REENTER COMMAND
\r
209 ;PLACE TO TRAP TO IN USER AREA ON APR TRAP
\r
210 ;ENABLED BY APRENB UUO
\r
212 ;APR IS CONIED INTO C(JOBCNI) ON APR TRAP
\r
214 ;PC IS STORED HERE ON USER APR TRAP
\r
216 ;OLD PC IS STORED HERE ON START,DDT,REENTER,
\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
223 ;DEV. DATA BLOCK ADR. FOR FINISH COMMAND
\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
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
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
259 ;USED TO RESTORE JOBSA
\r
261 ;USED TO RESTORE JOB41
\r
263 ;USED TO RESTORE JOBCOR(BOTH HALVES)
\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
268 ;RESTORE BOTH HALVES OF JOBVER
\r
270 ;HIGHEST LOC TO BE RESTORED(POPPED) BY GET
\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