TITLE JOBDAT - JOB DATA AREA (FIRST 140 LOC OF USER AREA) V407 SUBTTL T. HASTINGS/TH TS 15 MAR 69 IFNDEF UJOBDAT, ;TO ELIMINATE MOST OF UNWANTED GLOBALS USERS ;ASSEMBLING INSTRUCTIONS TO MAKE USER VERSION FOR CUSP: ;DSK:JOBDAT_TTY:,DSK:JOBDAT ;UJOBDAT=1 ;^Z IFDEF DEVDAT, IFNDEF UJOBDAT,< ENTRY DATJOB DATJOB: > ;THIS AREA PROVIDES STORAGE OF ITEMS OF INTEREST TO BOTH ;THE MONITOR AND THE USER ;MACRO TO DEFINE SYMBOLS FOR MONITOR USE ONLY ;THESE MAY BE CHANGED TO SUIT MONITOR DEFINE M(SYMBOL,VALUE,LENGTH) < SYMBOL=VALUE IFNDEF UJOBDAT, ;MAKE GLOBAL ONLY IF ASSEM FOR MONITOR LOC=VALUE+LENGTH> ;MACRO TO DEFINE SYMBOLS FOR USER USE ;THESE CANNOT BE CHANGED WITHOUT INVALIDATING OLD SAVED FILES DEFINE U(SYMBOL,VALUE,LENGTH) < SYMBOL=VALUE ENTRY SYMBOL LOC=VALUE+LENGTH> ;MACRO TO DEFINE PARAMETERS OF INTEREST TO MONITOR ONLY ;THESE MAY BE CHANGED TO SUIT MONITOR ;MUST ASSEMBLE WITH SYSPAR TAPE FIRST DEFINE XP(SYMBOL,VALUE) < SYMBOL==VALUE IFNDEF UJOBDAT,> ;MAKE GLOBAL ONLY IF ASSEM FOR MONITOR ;DEFINE MONITOR ACS AS LOCALS SO JOBDAT DOES NOT NEED TO BE ASEMBLED WITH S.MAC ;THIS IS SO THE USER IS NOT FACED WITH A LOT OF INTERNAL SYMBOLS ;WHICH MAY CONFLIT WITH HIS AND GIVE HIM MULTIPLY DEFINED GLOBALS PDP=3 PROG=7 M JOBAC,0,20 ;PLACE WHERE USER ACS ARE STORED ON UUO CALLS ;IE RELATIVE 0-17 IN USER AREA M JOBDAC,LOC,17 ;PLACE WHERE HARDWARE ACS(0-16) ARE STORED ;WHEN JOB IS INACTIVE. THESE ARE EITHER THE ;USERS AC IF JOB WAS STOPPED IN USER MODE ;OR ARE THE EXEC IF STOPED IN EXEC MODE ;0-16 ALSO STORED HERE ON CLK INTERRUPTS XP JOBDPD,JOBDAC+PDP ;AC PDP DUMPED HERE XP JOBDPG,JOBDAC+PROG ;AC PROG DUMPED HERE XP JOBD14,JOBDAC+14 ;AC 14 DUMPED HERE XP JOBD15,JOBDAC+15 ;AC 15 DUMPED HERE XP JOBD16,JOBDAC+16 ;AC 16 DUMPED HERE XP JOBD17,JOBDAC+17 ;AC 17 DUMPED HERE U JOBUUO,40,1 ;USER UUO TRAP LOC.(UUO STORED HERE) U JOB41,41,1 ;USER UUO JSR LOCATION U JOBERR,42,1 ;LH UNUSED-SAVE FOR LATER THINGS, SO USER PROGRAMS ;SHOULD IGNORE LH IN ALL PROGRAMS ;RH=COUNT OF NO. OF ERRORS IN RPG(RAPID PROGRAM ;GENERATION) SEQUENCE OF CUSPS. ;NOT CHANGED FROM GET TO GET. M JOBENB,43,1 ;LH=UNUSED ;RH=APR CONSO FLAGS FOR USER APR TRAPPING ;SET BY CALL [SIXBIT /APRENB/] U JOBREL,44,1 ;LH=0,RH=HIGHEST REL. ADR. IN USER AREA(IE LOW SEGMENT) ;SET BY MONITOR EACH TIME JOB RUNS OR CHANGES CORE SIZE M JOBPD1,LOC,0 ;FIRST LOC. OF SYSTEM UUO PUSHDOWN LIST XP JOBPDL,JOBPD1-1 ;FIRST LOC.-1 XP JOBPD3,JOBPDL+3 ;PLACE FOR SSTORING FIRST PUSH IN A UUO ROUTINE(THIRD ENTRY) ; USED BY RUN AND GETSEG UUOS U JOBBLT,JOBPD1,3 ;3 WORDS USED BY LINKING LOADER TO MOVE PROGRAM DOWN ;BEFORE CALLING EXIT. ;OK TO USE EXEC PD LIST BEFORE EXECUTING UUO LOC=72 XP MJOBPD,JOBPDL-LOC ;MINUS LENGTH OF PUSHDOWN LIST XP MJOBP1,MJOBPD+1 ;-LENGTH+1 XP JOBPRT,LOC ;FIRST LOC PROTECTED BY BEING COPIED INTO MONITOR XP JOBPR1,JOBPRT+1 ;FIRST LOC+1 M JOBHCU,LOC,1 ;HIGHEST USER IO CHANNEL IN USE ;ONLY JOBJDA...JOBJDA+C(JOBHCU) ARE COPIED INTO ;MONITOR WHEN JOB IS RUN. 0 MEANS NONE OR ;CHAN. 0 IN USE, -1 MEANS SAVEGET HAS ACTIVE IO M JOBPC,LOC,1 ;JOB PC WHEN JOB INACTIVE U JOBDDT,74,1 ;LH UNUSED,RH=STARTING ADDRESS OF USER DDT XP JOBSAV,JOBDDT-1 ;FIRST LOC.-1 WRITTEN BY SAVE COMMAND M JOBJDA,LOC,20 ;JOB DEVICE ASSIGNMENT TABLE ;LH=UUOS DONE SO FAR,RH=ADR. OF DEVICE DATA BLOCK IN MONITOR XP JOBSV,JOBJDA+1 ;FIRST LOC READ INTO OR WRITTEN FROM BY NEW SAVGET ; WHICH ZERO COMPRESSES ON ALL DEVICES ; THIS LOC CONTAINS THE FIRST IOWD WITH NO-NO. OF DATA WORDS ; IN LH, FIRST ADR-1 IN RH ; MONITOR SUPPRESSES STORING IN RH OF JOBHRL DURING ; SAVEGET(USRCHU NEG.) ; SO THAT OLD ZERO COMPRESSED DECTAPE FILES WILL ; ALWAYS FIT IN CORE (JOBHRL USERD TO BE 0) ; THIS CHECK COULD HAVE BEEN ELIMINATED, IF JOBSV HAD BEEN ; DEFINED AS JOBHRL+1(JOBSYM), HOWEVER JOBSYM ALMOST ; ALWAYS HAS NON-ZERO DATA, SO SAVEGET WOULD HAVE TO ; BE WRITTEN TO EXPAND DOWN OR UP RATHER THEN JUST UP XP JOBSVM,JOBSV-1 ;FIRST LOC-1, USED FOR SETTING UP DUMPE MODE ; COMMAND LIST FOR SAVGET XP JOBSV3,JOBSV+3 ;LOC WHICH SHOULD NOT CONTAIN 0 UNLESS FILE WAS ; CREATED BY CONVERTING OLD FORMAT TO NEW FORMAT ; DECTAPE USING CONVRT PROGRAM XP JOBSVD,JOBSVM-JOBSAV ;NO. OF LOCATIONS TO MOVE DOWN OLD (NON-COMPRESSED DSK) ; SAVE FILES WHICH WERE ALWAYS WRITTEN FROM JOBSAV+1 XP JOBSDP,JOBSV-JOBSAV ;NO. OF LOCATION TO MOVE DOWN CONVERTED SAVE FILES ; WHICH ARE ALWAYS WRITTEN FORM JOBSAV+1 AND HAVE ; AN IOWD ADDED ON FRONT SO IT LOOKS LIKE A COMPRESSED FILE U JOBCN6,JOBJDA+11 ;6 TEMP LOCATIONS USED BY CHAIN TO HOLD ERROR ROUTINE ; WHEN IT LOADS NEXT CHAIN LINK.(JOBJDA+11...16) ; THESE LOCATIONS ARE OK TO USE SINCE CHAIN RELEASES ALL ; USER CHANNELS AND MONITOR WILL NOT DESTROY THEM ; WHEN JOB CONTEXT IS SWITCHED XP JOBSDD,JOBJDA+17 ;PLACE TO SAVE JOBDDT ON SAVE SO ZERO EXPANSION ON GET ;ALWAYS MOVES UP XP JOBSD1,JOBSDD-1 ;FOR COMPUTING IOWD'S XP JOBJMH,JOBHCU-JOBJDA ;JOBHCU-JOBJDA ;USED BY ANYACT ROUT. IN CORE1 XP JOBPFI,JOBJDA+17 ;HIGHEST LOC. IN JOB DATA AREA PROTECTED FROM IO XP MJOBCK,JOBPFI-JOBDAC ;AREA CHECKSUMMED DURING SWAPPING U JOBHRL,115,1 ;LH IS ANALOGOUS TO LH OF JOBSA, IE FIRST ;FREE LOC IN HIGH SEG, SET BY LINKING LOADER ;USED BY SAVE. ;RH ANALOGOUS TO JOBREL, IE HIGHEST LEGAL ;USER ADDRESS IN HIGH SEG. SET BY MONITOR EVERY TIME ;USER RUNS. IF JOBHRL=0, JOB DOES NOT HAVE A HIGH SEG ;USER PROGRAMS SHOULD BE WRITTEN SO THAT ;THEY CAN BE ONE OR TWO SEGMENT PROGRAMS. JOBHRL ;CAN BE TESTED FOR NON-ZERO TO SEE IF HIGH SEG EXISTS U JOBSYM,116,1 ;POINTER TO LOADER AND DDT SYMBOL TABLE POINTER U JOBUSY,117,1 ;POINTER TO UNDEFINED SYMBOL TABLE ;SET BY LOADER, NOT YET USED BY DDT U JOBSA,120,1 ;LH=FIRST LOC NOT LOADED BY RELOCATING LOADER ;RH=STARTING ADDRESS OF USER PROGRAM U JOBFF,121,1 ;FIRST FREE LOCATION IN USER AREA ;USED BY MONITOR TO ASSIGN I/O BUFFERS IN TOP ;OF USER AREA U JOBS41,122,1 ;C(JOB41) SAVED HERE ON SAVE COMMAND ;RESTORE FROM HERE ON GET M JOBEXM,LOC,1 ;LAST LOC EXAMINED OR DEPOSITED USING ;D OR E COMMANDS ;LH=-1 IF LAST COM WAS AN E, 0 IF IT WAS A D U JOBREN,124,1 ;REENTER ADDRESS FOR REENTER COMMAND U JOBAPR,125,1 ;PLACE TO TRAP TO IN USER AREA ON APR TRAP ;ENABLED BY APRENB UUO U JOBCNI,126,1 ;APR IS CONIED INTO C(JOBCNI) ON APR TRAP U JOBTPC,127,1 ;PC IS STORED HERE ON USER APR TRAP U JOBOPC,130,1 ;OLD PC IS STORED HERE ON START,DDT,REENTER, ;STARTC COMMANDS U JOBCHN,131,1 ;LH=FIRST LOC AFTER FIRST FORTRAN 4 LOADED PROGRAM ;RH=FIRST LOC AFTER FIRST FORTRAN 4 BLOCK DATA ;TO BE USED FOR JOB CHAINING M JOBFDV,LOC,1 ;DEV. DATA BLOCK ADR. FOR FINISH COMMAND U JOBCOR,133,1 ;SIZE OF CORE FOR JOB ON RUN,SAVE,GET COM. ;134-136 UNUSED U JOBVER,137,1 ;CONTAINS VERSION NO.(OCTAL) OF CUSP BEING RUN ;GET LOADS FROM SAVE FILE. NEVER CONVERTED ;TO DECIMAL BY MAN OR MACHINE. E 137 WILL PRINT VERSION NO. ;SET BY LOC 137 IN CUSP SOURCE XP JOBDA,140 ;FIRST LOC NOT USED BY JOB DATA AREA END,