1
0
mirror of https://github.com/PDP-10/stacken.git synced 2026-03-02 09:37:06 +00:00
Files
Lars Brinkhoff 6e18f5ebef Extract files from tape images.
Some tapes could not be extracted.
2021-01-29 10:47:33 +01:00

475 lines
18 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
SUBTTL T. HASTINGS/TH/PFC/JNG TS 10 SEP 85 V433(457)
%JOBDT==:43300,,457
.ORG 0 ;PUT COPYRIGHT NOTICE IN .REL FILE
ASCIZ &
COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1969,1988.
ALL RIGHTS RESERVED.
&
.ORG ;BACK TO CODE AREA
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION
; 1969,1974,1979,1980,1982,1984,1986,1988.
;ALL RIGHTS RESERVED.
;
;
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
;ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE
;INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER
;COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
;OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY
;TRANSFERRED.
;
;THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE
;AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
;CORPORATION.
;
;DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
;SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL.
;DATE LOAD EDIT
;---- ---- ----
;
;
;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==0> ;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
;444 IF FTJOB=0, DON'T PUT JOBXXX SYMBOLS IN THE ENTRY BLOCK
;447 ADD .JBEDV
;%431(447) JUL 1979 7.00 RELEASE
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,INTERN 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
IFN FTJOB,<
JOB'SYMBOL=VALUE
IFNDEF %..UNV,ENTRY 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
IFNDEF %..UNV,ENTRY .JB'SYMBOL
IFN FTJOB,<
JOB'SYMBOL==VALUE
IFNDEF %..UNV,ENTRY 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.
;JBBLT USED BY FOROTS TO STORE ADDRESS OF FUNCT. FOR USE BY DBMS
;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
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 = FIRST ADDRESS PAST DDT (DDT END + 1)
;RH = STARTING ADDRESS OF USER DDT
UJOB HSO,75,1 ;HIGH SEGMENT ORIGIN PAGE NUMBER (TOPS-20 ONLY)
UJOB BPT,76,1 ;ADDRESS OF UNSOLICITED BREAKPOINT ENTRY INTO DDT
; UTILIZE VIA "JSR @.JBBPT"
XP .JBLUL,16 ;MAXIMUM LENGTH OF A MONITOR MUUO ARGUMENT LIST
XP JOBUAL,.JBBPT+1 ;WHERE MONITOR MUUO ARGUMENTS ARE STORED
IFE VM,<MJDA==LOC>
;
;HERE DOWN "SAVED"
;
XP JOBSAV,.JBDDT-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,JOBUAL+2 ;FIRST LOC READ OR WRITTEN BY 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
>
U .JBEDV,112,1 ;POINTER TO EXEC DATA VECTOR
IFN VM,<
XP JOBEXM,JOBUAL+.JBLUL-2 ;SEE DESCRIPTION FURTHER DOWN
>
XP JOBSDD,JOBUAL+.JBLUL-1 ;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,.JBDDT,1 ;HIGHEST LOC. IN JOB DATA AREA PROTECTED FROM IO
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,-.JBDA ;-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,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