Trailing-Edge
-
PDP-10 Archives
-
decus_20tap1_198111
-
decus/20-0002/jobdat.mac
There are 44 other files named jobdat.mac in the archive. Click here to see a list.
SUBTTL T. HASTINGS/TH/PFC TS 1-MAR-75 V430(443)
;***COPYRIGHT 1969,1970,1971,1972,1973,1974,1975 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.***
;TO ELIMINATE MOST OF UNWANTED GLOBALS USERS
;ASSEMBLING INSTRUCTIONS TO MAKE USER VERSION FOR CUSP:
;.COMPILE JOBDAT
; INSTEAD, THIS MAKES A JOBDAT.UNV FOR USERS
; IF SYMBOL %..UNV IS DEFINED
;MONITOR ASSEMBLY INSTRUCTIONS:
;.COMPILE EJBDAT.REL=F.MAC+S.MAC+JOBDAT.MAC ;IF PRE 5.07
;.COMPILE F??.MAC,S.MAC,EJBDAT.REL=FTEJBD.MAC+JOBDAT.MAC ;IF 5.07 OR LATER
;.COMPILE FVM.MAC,S.MAC,VJBDAT.REL=FTEJBD.MAC+JOBDAT.MAC ;IF 6.01 OR LATER
; WHERE FTEJBD.MAC IS JUST P=1
; NOTE--IF LEVEL C S.MAC IS USED, EJBDAT WILL BE FOR LEVEL C
; OTHERWISE, IT WILL BE FOR LEVEL D.
; USER VERSION IS THE SAME IN EITHER CASE.
;CONDITIONAL ASSEMBLY OPTIONS:
IFNDEF FTCN6,<FTCN6==0> ;REMOVE .JBCN6
IFNDEF FTJOB,<FTJOB==1> ;REMOVE "JOB" SYMBOLS
SUBTTL REVISION HISTORY
;%426(431) MAY 1971, WITH 5.03
;432 COSMETIC IMPROVMENTS TO CLEAN UP COMMENTS;
; SYMBOLS NOT DEFINING WORDS ARE NOW TABBED IN; FIX
; USER SYMBOLS AT CONSTANT LOCATIONS.
;433 ADD CHECKOUT INSTRUCTIONS.
;434 DEFINE .JBHSA,.JBH41,.JBHRN AS USER SYMBOLS.
;435 DEFINE .JBPFH,.JBHGA AND MAKE 6.01(VM) CHANGES.
;436 DEFINE .JBOVL FOR LINK-10 V.2.
;437 REMOVE .JBCN6 (UNDER FTCN6)
;440 REMOVE JOBXXX IN USER VERSION (UNDER FTJOB)
;%427(440) JAN, 1974
;441 (10-13,901) PRODUCE JOBDAT.UNV
;442 PURGE LOCAL MJDA
;443 PURGE LOCAL MACROS
SUBTTL CHECKOUT INSTRUCTIONS
;1. PRODUCE NEW USER VERSION: .COMPILE JOBDAT
; RUN GLOB TO GET LIST OF SYMBOLS: .R GLOB
; *NUJBDT=JOBDAT$
; COMPARE WITH PREVIOUS USER VERSION: .R GLOB
; *OUJBDT=JOBDAT[10,7]$
; .R FILCOM
; *TTY:=OUJBDT.GLB,NUJBDT/1L
; VERIFY OUTPUT.
;
;2. PRODUCE NEW EXEC VERSION: .COMPILE F??,S,EJBDAT.REL=FTEJBD+JOBDAT
; RUN GLOB TO GET LIST OF SYMBOLS: .R GLOB
; *NEJBDT=EJBDAT$
; COMPARE WITH PREVIOUS EXEC VERSION: .R GLOB
; *OEJBDT=EJBDAT[10,7]$
; .R FILCOM
; *TTY:=OEJBDT.GLB,NEJBDT/1L
; VERIFY OUTPUT.
SUBTTL MACRO DEFINITIONS FOR THIS ROUTINE
;THIS AREA PROVIDES STORAGE OF ITEMS OF INTEREST TO BOTH
;THE MONITOR AND THE USER
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ALL NEW USER SYMBOLS MUST BE OF THE FORM: ;;;
;;; .JBXXX IF THE SYMBOL IS IN THE LOW SEGMENT ;;;
;;; .JBHXX IF THE SYMBOL IS IN THE HIGH SEGMENT ;;;
;;; ;;;
;;; THE OLD FORMS OF JOBXXX AND JOBHXX ARE LEGAL ONLY FOR ;;;
;;; COMPATABILITY WITH OLD PROGRAMS AND WILL EVENTUALLY DIE ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; SYMBOLS NOT DEFINING WORDS ARE TABBED IN ONCE ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;MACRO TO DEFINE SYMBOLS FOR USER USE
;THESE CANNOT BE CHANGED WITHOUT INVALIDATING OLD SAVED FILES
DEFINE U(SYMBOL,VALUE,LENGTH)
<SYMBOL=VALUE
IFNDEF %..UNV,ENTRY SYMBOL
LOC=VALUE+LENGTH>
;MACRO TO DEFINE SUPPRESSED SYMBOLS FOR USER USE
DEFINE US(SYMBOL,VALUE,LENGTH)
<SYMBOL==VALUE
IFNDEF %..UNV,ENTRY SYMBOL
LOC=VALUE+LENGTH>
;MACRO TO DEFINE SYMBOLS FOR USER USE OF BOTH JOB AND .JB FORMAT
;SAME AS U
DEFINE UJOB(SYMBOL,VALUE,LENGTH)
<.JB'SYMBOL=VALUE
IFNDEF %..UNV,ENTRY .JB'SYMBOL
JOB'SYMBOL=VALUE
IFNDEF %..UNV,ENTRY JOB'SYMBOL
IFE FTJOB,<IF2 < PURGE JOB'SYMBOL >>
LOC=VALUE+LENGTH>
;MACRO TO DEFINE SYMBOLS FOR USER USE OF BOTH JOB AND .JB FORMAT
;SAME AS US
DEFINE USJOB(SYMBOL,VALUE,LENGTH)
<.JB'SYMBOL==VALUE
JOB'SYMBOL==VALUE
IFNDEF %..UNV,ENTRY .JB'SYMBOL,JOB'SYMBOL
IFE FTJOB,<IF2 < PURGE JOB'SYMBOL >>
LOC=VALUE+LENGTH>
;THESE MACROS PROVIDE STORAGE OF ITEMS OF INTEREST TO ONLY MONITOR
;MACRO TO DEFINE SYMBOLS FOR MONITOR USE ONLY
;THESE MAY BE CHANGED TO SUIT MONITOR
DEFINE M(SYMBOL,VALUE,LENGTH)
<IFE U2,< SYMBOL==VALUE
IFNDEF UJOBDAT,<INTERNAL SYMBOL> ;MAKE GLOBAL ONLY IF ASSEM FOR MONITOR
LOC=VALUE+LENGTH>
IFN U2,<PURGE SYMBOL>>
;MACRO TO DEFINE PARAMETERS OF INTEREST TO MONITOR ONLY
;THESE MAY BE CHANGED TO SUIT MONITOR & WILL NOT PRINT OUT WITH DDT
DEFINE XP(SYMBOL,VALUE)
<IFE U2,< SYMBOL==VALUE
IFNDEF UJOBDAT,<INTERN SYMBOL>> ;MAKE GLOBAL ONLY IF ASSEM FOR MONITOR
IFN U2,<PURGE SYMBOL>>
;DEFINE ASSEMBLY PARAMETERS:
; UJOBDAT=DEFINED IF USER JOBDAT
; U2=USER JOBDAT PASS 2
; LC=4S72 (LEVEL-C) MONITOR JOBDAT
; UNIV=MONITOR WITH UNIVERSAL F, S
; VM=6.01 (VM) MONITOR JOBDAT
IFNDEF P,<IFNDEF PDP,<UJOBDAT==1>> ;IF NOT ASSEMBLED WITH S.MAC, MAKE USER VERSION
IFDEF UJOBDAT,<
R=0 ;DEFINE MONITOR ACS SO USER VERSION WILL ASSEMBLE
P=0 ;OK TO DEFINE TO BE WRONG SINCE DO NOT APPEAR IN U MACRO
IF2,< U2==1> ;FLAG SPECIAL HANDLE IN PASS 2 FOR USER VERSION
>
IFNDEF U2,<U2==0>
IFNDEF UJOBDAT,<IFDEF FTDISK,<IFNDEF P1,<LC=0>>> ;SET LC=0 IF LEV.C MONITOR VERSION
IFNDEF LC,<LC=1> ;ELSE, SET IT TO 1
IFNDEF UJOBDAT,<IFNDEF FTDISK,<UNIV==1 ;IF MONITOR BUT FTDISK UNDEFINED,
SEARCH F,S ;5.07 USES UNIVERSAL F??.MAC,S.MAC
PURGE P>> ;REMOVE DUMMY P
; THEN MUST BE UNIVERSAL F,S
IFNDEF UNIV,<UNIV==0> ; ELSE, PRE 5.07, SO NO UNIVERSALS
IF1,<
IFN UNIV,<VM=FTVM>
IFE UNIV,<IFDEF FTVM,<VM=FTVM>> ;IF 6-SERIES MONITORS, VM=FTVM
>
IFNDEF VM,<VM=0>
IFDEF UJOBDAT,<
IFNDEF %..UNV,TITLE JOBDAT - JOB DATA AREA (FIRST 140 LOC OF USER AREA)
IFDEF %..UNV,<.DIRECTIVE .NOBIN ;SUPPRESS BINARY
%%JOBD==%JOBDT ;STANDARD UNIVERSAL VERSION
PURGE %JOBDT
UNIVERSAL JOBDAT - JOB DATA AREA (FIRST 140 LOC OF USER AREA)
> ;END IFDEF %..UNV
>
IFNDEF UJOBDAT,<
FTJOB==1 ;FORCE JOBXXX SYMBOLS
IFE VM,<
DATJOB: IFNDEF %..UNV,ENTRY DATJOB
TITLE EJBDAT - EXEC VERSION OF JOB DATA AREA
IFNDEF P,<P==PDP> ;IN CASE OF OLD MONITORS
IFNDEF R,<R==PROG> ; ..
>
IFN VM,<
VMDTJB: IFNDEF %..UNV,ENTRY VMDTJB
TITLE VJBDAT - VM EXEC VERSION OF JOB DATA AREA
>
>
SUBTTL LOW SEGMENT DATA AREA
M JOBAC,0,20 ;PLACE WHERE USER ACS ARE STORED ON UUO CALLS
;IE RELATIVE 0-17 IN USER AREA
M JOBDAC,LOC,20 ;PLACE WHERE HARDWARE ACS(0-17) 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+P ;AC P DUMPED HERE
XP JOBDPG,JOBDAC+R ;AC R DUMPED HERE
IFE LC,<
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
UJOB UUO,40,1 ;USER UUO TRAP LOC.(UUO STORED HERE)
UJOB 41,41,1 ;USER UUO JSR LOCATION
;(SET FROM HIGH SEG DATA AREA ON GET IN NO LOW FILE)
UJOB ERR,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/]
UJOB REL,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
IFN VM,<LOC=JOBPDO-.JDAT>
M JOBPD1,LOC,0 ;FIRST LOC. OF SYSTEM UUO PUSHDOWN LIST
XP JOBPDL,JOBPD1-1 ;FIRST LOC.-1
XP JOBPD3,JOBPDL+3 ;PLACE FOR STORING FIRST PUSH IN A UUO ROUTINE
; (THIRD ENTRY)USED BY RUN AND GETSEG UUOS
UJOB BLT,45,3 ;3 WORDS USED BY LINKING LOADER TO MOVE
; PROGRAM DOWN BEFORE CALLING EXIT.
;OK TO USE EXEC PD LIST BEFORE EXECUTING UUO
IFN LC,<LOC=71> ;(LEVEL D)
IFE LC,<LOC=72> ;(LEVEL C)
;LAST LOC+1 OF PD LIST. IE THIS LOC CLOBBERED
; ON PUSH DOWN LIST OVERFLOW DURING EXEC UUO
; WHICH IS OK SINCE CONTENTS ARE COPIED
; INTO THE MONITOR WHEN JOB RUNS
IFN VM,<LOC=JOBPDL+PDLLEN>
XP JOBLPD,LOC-1 ;LAST LOC OF PDL AREA
; FROM JOBPD1+1 THRUJOB LPD ARE RESTORED FROM
; EXTENDED PDL WHEN IT IS BEING RETURNED
XP MJOBPD,JOBPDL-LOC ;MINUS LENGTH OF PUSHDOWN LIST
XP MJOBP1,MJOBPD+1 ;-LENGTH+1
XP MAXPDL,-MJOBPD ;MAX. LENGTH OF ALL PD LISTS IN MONITOR
; NULPDL AND ERRPDL ARE SHORTER
XP MMXPDL,MJOBPD ;MINUS MAX. LENGTH OF ALL PD LISTS IN MONITOR
IFN VM,<LOC=LOC+1>
XP JOBPRT,LOC ;FIRST LOC PROTECTED BY BEING COPIED INTO MONITOR
XP JOBPR1,JOBPRT+1 ;FIRST LOC+1
;
;HERE DOWN PROTECTED
;
IFN LC,<IFE VM,< ;(5-SERIES ONLY)
M JOBEPL,LOC,1 ;LH=UNUSED AND IS ASSUMED ZERO.
; COULD BE USED FOR SOMETHING WITH SMALL CODE CHANGE
;RH=0 OR EXEC CORE ADDRESS OF EXTENDED EXEC PD LIST
; IF PD LIST IN JOB DATA AREA OVERFLOWED ON EXEC UUO
; 0 MEANS JOB DOES NOT HAVE EXEC CORE. EXEC CORE
; IS RETURNED ON UUO RETURN TO USER, CALL RESET,AND
; CORE 0 COMMAND AND KJOB UUO.
>> ;(END LEVEL D ONLY)
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, NEG LH MEANS SAVEGET HAS ACTIVE IO(RH STILL
; HIGHEST CHAN IN USE)
M JOBPC,LOC,1 ;JOB PC WHEN JOB INACTIVE
IFN VM,<
M JBMDDT,LOC,1 ;PMP COPY OF .JBDDT
>
MJDA==LOC
UJOB DDT,74,1 ;LH UNUSED,RH=STARTING ADDRESS OF USER DDT
IFE VM,<MJDA==LOC>
JDA==LOC
;
;HERE DOWN "SAVED"
;
XP JOBSAV,JOBDDT-1 ;FIRST LOC.-1 WRITTEN BY SAVE COMMAND
M JOBJDA,MJDA,20 ;JOB DEVICE ASSIGNMENT TABLE
;LH=UUOS DONE SO FAR, RH=ADR. OF DEVICE DATA BLOCK IN MONITOR
XP JOBSV,JDA+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. 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 USED 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 THAN JUST UP
XP JOBSVM,JOBSV-1 ;FIRST LOC-1, USED FOR SETTING UP DUMP 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 JOBNSV,JOBSV+14 ;JOBSV+4...JOBSV+7--USED TO WRITE NULL HIGH AND
; LOW FILE ON MTA ONLY WHEN SEGMENT HAS NOTHING
; TO BE WRITTEN. THUS MTA ALWAYS WRITES 2 FILES.
XP JOBSVD,JOBSVM-JOBSAV ;NO. OF LOC. TO MOVE DOWN OLD (NON-COMPRESSED DSK)
; SAVE FILES WHICH WERE ALWAYS WRITTEN FROM JOBSAV+1
XP JOBSDP,JOBSV-JOBSAV ;NO. OF LOCATIONS TO MOVE DOWN CONVRTED SAVE FILES
; WHICH ARE ALWAYS WRITTEN FROM JOBSAV+1 AND HAVE
; AN IOWD ADDED ON FRONT TO LOOK LIKE A COMPRESSED FILE
IFN FTCN6,<
UJOB CN6,106,1 ;6 TEMP LOCATIONS USED BY CHAIN
>
IFN VM,<
XP JOBEXM,JDA+16 ;SEE DESCRIPTION FURTHER DOWN
>
XP JOBSDD,JDA+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
UJOB PFI,114,1 ;HIGHEST LOC. IN JOB DATA AREA PROTECTED FROM IO
IFN <.JBPFI-JDA-17>,<
PRINTX ? JOBJDA WRONG>
IFE LC,<
XP MJOBCK,JOBDAC-JOBPFI ;AREA CHECKSUMMED DURING SWAPPING
>
;
;BEFORE HERE PROTECTED
;
UJOB HRL,115,1 ;LH IS FIRST FREE LOC IN HIGH SEG RELATIVE TO ITS ORIGIN
;ANALOGOUS TO LH OF JOBSA FOR LOW SEG
; (IN OTHER WORDS LH=LENGTH TO SAVE ON SAVE COMMAND)
; SET BY LOADER
;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
UJOB SYM,116,1 ;POINTER TO LOADER AND DDT SYMBOL TABLE POINTER
UJOB USY,117,1 ;POINTER TO UNDEFINED SYMBOL TABLE
;SET BY LOADER, NOT YET USED BY DDT
UJOB SA,120,1 ;LH=INITIAL FIRST FREE LOCATION IN LOW SEG (SET BY LOADER)
;RH=STARTING ADDRESS OF USER PROGRAM
UJOB FF,121,1 ;(SET FROM HIGH DATA AREA ON GET IF NO LOW FILE)
;CURRENT FIRST FREE LOCATION IN LOW SEG
; USED AND UPDATED BY MONITOR TO ASSIGN I/O BUFFERS IN TOP
; OF USER AREA. USER MAY CHANGE CONTENTS IN ORDER TO AFFECT
; PLACEMENT OF BUFFERS BY MONITOR
M JOBS41,122,1 ;C(JOB41) SAVED HERE ON SAVE COMMAND
;RESTORE FROM HERE ON GET
U .JBPFH,123,1 ;LH=LENGTH OF PAGE FAULT HANDLER
;RH=START OF PAGE FAULT HANDLER
IFE VM,<
XP JOBEXM,.JBPFH ;LAST LOC EXAMINED OR DEPOSITED USING
;D OR E COMMANDS
;LH=-1 IF LAST COM WAS AN E. 0 IF IT WAS A D
>
UJOB REN,124,1 ;REENTER ADDRESS FOR REENTER COMMAND
; (SET FROM HIGH DATA AREA ON GET IF NO LOW FILE)
UJOB APR,125,1 ;PLACE TO TRAP TO IN USER AREA ON APR TRAP
;ENABLED BY APRENB UUO
UJOB CNI,126,1 ;APR IS CONIED INTO C(JOBCNI) ON APR TRAP
UJOB TPC,127,1 ;PC IS STORED HERE ON USER APR TRAP
UJOB OPC,130,1 ;OLD PC IS STORED HERE ON START,DDT,REENTER,
;STARTC COMMANDS
UJOB CHN,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
U .JBOVL,131,1 ;(SAME AS .JBCHN)
;LH=NEGATIVE COUNT OF ROOT SEGMENT OVERLAYS
;RH=ADDRESS OF ROOT SEGMENT POINTER
M JOBFDV,LOC,1 ;DEV. DATA BLOCK ADR. FOR FINISH COMMAND
; ALSO USER START ADR FOR DDT, REENTER, START
; IF TYPED WHILE JOB WAS IN MONITOR. UUO EXIT
; USES TO JUMP TO USER.
UJOB COR,133,1 ;(SET FROM HIGH DATA AREA ON GET IF NO LOW FILE)
;LH=HIGHEST LOCATION LOADED(LOW SEG) WITH PROG OR DATA
; SET BY LOADER(BLOCK STATEMENTS DO NOT COUNT HERE)
; SAVE WILL NOT WRITE THE LOW SEG OF A TWO SEG PROG,
; IF LH IS 137 OR LESS AND GET WILL NOT READ
;RH=SIZE OF CORE FOR LOW SEG ON RUN,SAVE,GET COM.
;(SET FROM HIGH DATA AREA ON GET IF NO LOW FILE)
;SET BY SAVE TO CORE ASSIGNMENT TO BE USED ON GET
; (UNLESS USER TYPES A LARGER ARG TO GET)
; TO FIRST FREE LOC-1(OR TOP IF USER DDT) OR
; TO USER'S CORE ARG TO SAVE IF BIGGER
;GET ALWAYS SETS RH TO INITIAL CORE ASSIGNMENT SO THAT PROG
; CAN RESTORE CORE TO ORIGINAL ASSIGNMENT ON RESTARTING
UJOB INT,134,1 ;RH=LOC OF DATA BLOCK FOR ERROR INTERCEPTING
U .JBOPS,135,1 ;RESERVED TO OBJECT TIME SYSTEMS
U .JBCST,136,1 ;RESERVED TO CUSTOMERS
UJOB VER,137,1 ;CONTAINS VERSION NO.(OCTAL) OF PROGRAM BEING RUN
;GENERAL FORMAT IS:
; BITS 0-2 WHO LAST EDITTED THIS:
; 0=DIGITAL DEVELOPMENT GROUP
; 1=OTHER DIGITAL
; 2-4=RESERVED TO CUSTOMER
; 5-7=RESERVED TO HIS USERS
; 3-11 DIGITAL MAJOR VERSION NUMBER
; 12-17 DIGITAL MINOR VERSION NUMBER
; 18-35 EDIT NUMBER
;GET LOADS IT FROM THE SAVE FILE. NEVER CONVERTED
;TO DECIMAL BY MAN OR MACHINE. E 137 WILL PRINT VERSION NO.
;SET BY LOC 137 IN CUSP SOURCE
;(SET FROM HIGH DATA AREA ON GET IF NO LOW FILE)
UJOB DA,140 ;FIRST LOC NOT USED BY JOB DATA AREA
XP MJOBDA,-JOBDA ;-LENGTH OF JOB DATA AREA
SUBTTL HIGH SEGMENT DATA AREA
; LOCATIONS ARE RELATIVE TO BEGINNING OF HIGH SEGMENT, SINCE
; THE HIGH SEGMENT CAN BEGIN AT 400000 OR HIGHER
; THIS AREA IS USED TO INITIALIZE CERTAIN LOCATIONS IN THE LOW SEG JOB DATA AREA
; IN CASE THER WAS NO LOW SEG SAVED.(LH JOBCOR 137 OR LESS AS SET BY LOADER)
; LOW SEG JOB DATA AREA LOCATIONS SET FROM HIGH SEG DATA AREA ARE INDICATED ABOVE BY:
;(SET FROM HIGH SEG IF NEC)
; THESE LOCATIONS ARE SET FROM LOW JOB DATA AREA ONLY IF HIGH SEG IS NON-SHARABLE
; AT THE TIME THE SAVE IS PERFORMED (SHRSEG=0 IN JBTSTS)
USJOB HGH,400000 ;NORMAL BEGINNING ADDRESS OF HIGH SEGMENT
US .JBHSA,0 ;USED TO RESTORE JOBSA
XP JOBHSA,.JBHSA;
US .JBH41,1 ;USED TO RESTORE JOB41
XP JOBH41,.JBH41;
US .JBHCR,2 ;USED TO RESTORE JOBCOR(BOTH HALVES)
XP JOBHCR,.JBHCR;
US .JBHRN,3 ;LH RESTORES LH OF JOBHRL(FIRST REL. FREE LOC. IN HIGH)
XP JOBHRN,.JBHRN;RH RESTORES JOBREN,LH SET TO 0 FOR FUTURE
USJOB HVR,4 ;RESTORE BOTH HALVES OF JOBVER
XP JOBPOP,4 ;HIGHEST LOC TO BE RESTORED(POPPED) BY GET
USJOB HNM,5 ;HIGH SEGMENT NAME SO DDT KNOWS ABOUT GETSEGS
USJOB HSM,6 ;HIGH SEGMENT SYMBOL TABLE POINTER
US .JBHGA,7 ; BYTE(9) RESERVED
; BYTE(9) GET ADDRESS PAGE NUMBER TO START SEGMENT
; BYTE (18) [FUTURE] RELATIVE ADDRESS OF EXTENSION BLOCK IF NON-ZERO
USJOB HDA,10 ;FIRST LOC NOT USED BY HIGH SEG DATA AREA
;LOADER WILL LOAD FIRST WORD HERE
IFDEF UJOBDAT,<PURGE P,R> ;CLEAN UP USER VERSION SYMBOL TABLE
IFN U2,<PURGE UJOBDAT> ;DITTO
PURGE LOC,U2,JDA,MJDA ;CLEAN UP SYMBOL TABLE
IF2 <PURGE LC,VM,FTCN6,FTJOB,FTDISK,UNIV,%..UNV> ;DITTO
IF2 <PURGE R,P,P1,FTVM,PDP,PROG> ;DITTO
IF2 <PURGE U,US,UJOB,USJOB,M,XP> ;DITTO
END