Trailing-Edge
-
PDP-10 Archives
-
BB-H138A-BM
-
3a-sources/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)
%JOBDT==:43000,,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==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
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
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,INTERN .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