.TITLE     ***  BDRES -- BATCH RESIDENT SECTION

 

 

 

 

/

/ COPYRIGHT (C) 1976

/ DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

/

/ THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY

/ ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH

/ THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS

/ SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO-

/ VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON

/ EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO

/ THESE LICENSE TERMS.  TITLE TO AND OWNERSHIP OF THE

/ SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

/

/ THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE

/ WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM-

/ MITMENT BY DIGITIAL EQUIPMENT CORPORATION.

/

/ DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY

/ OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

/
	.TITLE DESCRIPTION AND EDIT HISTORY

 

 

 

 

/

/ BDRES

/

/ BDRES CONTAINS SUBROUTINES AND BUFFER OR DATA AREAS USED

/ BY THE VARIOUS BATCH OVERLAYS, PLUS SOME FIRST TIME INIT-

/ IALIZATION CODE.  FOR FURTHER INFORMATION SEE THE OVERLAYS

/ THEMSELVES.

/

 

 

 

/
/ 100	20-AUG-76 (EAG)		MULTIACCESS BATCH INITIAL
/				VERSION.
/
/ 101	2-SEP-76 (EAG)		MODIFY ECHOWT SO THAT LISTING	/(101)
/				ERRORS WON'T ABORT JOB...	/(101)
/				OR END....			/(101)

/

	.TITLE CONDITIONAL ASSEMBLY PARAMETERS

 

 

 

 

/

/ NOTE THAT THIS, THE RESIDENT SECTION, IS THE ONLY PORTION

/ OF THE BATCH HANDLER WHICH HAS ASSEMBLY PARAMETERS.  ALL

/ THE OVERLAYS REFERENCE THIS SECTION WHEN THEY MUST UTILIZE

/ AN ASSEMBLY PARAMETER.

/

 

 

 

/
/ THE FOLLOWING THREE PARAMETERS DETERMINE THE LUNS WHICH

/ WILL BE USED BY THE BATCH HANDLER.

/

/	OPRLUN	SHOULD BE OPERATOR TTY

/

/	JOBLUN	USED TO READ JOB INPUT FILE

/

/	LSTLUN	USED TO OUTPUT JOB LISTING

/

/ BEFORE INVOKING THE BATCH HANDLER, THE USER/OPERATOR MUST

/ ENSURE THAT OPRLUN IS ASSIGNED TO THE OPERATOR TTY AND

/ THAT JOBLUN AND LSTLUN ARE BOTH ASSIGNED TO NONE.  THE

/ BATCH HANDLER ASSIGNS APPROPRIATE DEVICES TO JOBLUN AND

/ LSTLUN ITSELF.

/

 

	.IFUND OPRLUN

OPRLUN=3

	.ENDC

 

	.IFUND JOBLUN

JOBLUN=6			/ = 6 DECIMAL.

	.ENDC

 

	.IFUND LSTLUN

LSTLUN=7			/ = 7 DECIMAL.

	.ENDC

 

 

 

/

/ THE ASSEMBLY PARAMETER "DFTIME" SPECIFIES THE DEFAULT TIME

/ LIMIT (IN MINUTES).  IF ZERO IS SPECIFIED AS A JOB'S TIME

/ ESTIMATE/LIMIT, THE DEFAULT TIME LIMIT WILL BE USED INSTEAD.

/ NOTE THAT IT IS FEASIBLE TO HAVE ...OPR MODIFY THE DEFAULT

/ TIME LIMIT, ALTHOUGH SUCH AN OPTION HAS NOT BEEN IMPLEMENTED.

/ IT WOULD MERELY CHANGE LOCATION DEFTIM IN THE BATCH CONTROL

/ VECTOR.

/

 

	.IFUND DFTIME

DFTIME=4

	.ENDC

 

 

 

/

/ THE PARAMETERS "ACCTDEV" AND "ACCTUFD" DETERMINE THE DEVICE,

/ UNIT, AND UFD IN WHICH THE BATCH ACCOUNTING FILE RESIDES.

/ "ACCTUFD" MAY BE SET TO THE UFD NAME, IN .SIXBT, IN WHICH

/ THE ACCOUNTING FILE SHOULD BE FOUND.  IF LEFT UNDEFINED,

/ IT DEFAULTS TO <RSX>.  "ACCTDEV" MAY BE SET TO THE DEVICE

/ NAME AND UNIT NUMBER IN THE FOLLOWING FORMAT:  TWO LETTER

/ DEVICE NAME IN THE HIGH 12 BITS (IN .SIXBT), UNIT NUMBER

/ IN LOW 6 BITS (IN BINARY).  IF LEFT UNDEFINED, IT DEFAULTS

/ TO THE SYSTEM DISK, UNIT ZERO.

/

/ NOTE:  THE DEFAULT FOR "ACCTDEV" IS HANDLED VIA CONDITIONAL

/        ASSEMBLY IN THE BDRES INITIALIZATION CODE.

/

 

	.IFUND ACCTUFD

ACCTUFD=222330			/ .SIXBT "RSX"

	.ENDC

	.TITLE MISCELLANEOUS ASSEMBLY CONSTANTS & MACROS

 

 

 

 

LINLEN=52			/ LENGTH OF INPUT AND LISTING

				/ BUFFERS IN WORD PAIRS.  52

				/ (42 DECIMAL WORD PAIRS OR

				/ 84 WORDS) IS ENOUGH FOR

				/ 132 CHARACTER INPUT LINES

				/ (IOPS ASCII) AND 80

				/ CHARACTER ERROR MESSAGES

				/ (IMAGE ASCII).

 

 

 

/

/ INDIRECT-INDEXED INSTRUCTION MNEMONICS:

/

 

LACIX=LAC* X

ANDIX=AND* X

 

 

 

/

/ SPECIAL INSTRUCTIONS:

/

 

.INH=705522			/ INHIBIT INTERRUPTS.

.ENB=705521			/ ENABLE INTERRUPTS.

 

 

 

/

/ MACRO TO WAIT FOR NEXT SIGNIFICANT EVENT

/

 

	.DEFIN WAIT

	  CAL (05)

	.ENDM

 

 

 

/

/ MACRO TO DEFINE A TEXT BUFFER WITH CORRECT HEADER

/ WORD PAIR COUNT.

/

 

	.DEFIN TEXT TXT,?LBL

	  .NOLST

	  LBL-.*400+2

	  0

	  .ASCII TXT

LBL=.

	  .LST

	.ENDM

 

 

 

/

/ DEFINE DEBUGGING AID MACRO:

/

 

	.DEFIN .DEBUG MESSAG,WORD,FORM

	.ENDM

 

	.IFDEF %DEBUG

 

	.DEFIN .DEBUG MESSAG,WORD,FORM

	  .NOLST

	  .GLOBL .DBG

	  JMS* .DBG

	    .ASCII MESSAG@<0>

	    .DSA FORM

	    .DSA WORD

	  .LST

	.ENDM

 

	.ENDC

	.TITLE REFERENCES TO EXECUTIVE'S SCOM AREA

 

 

 

 

/

/ REENTRANT REGISTERS USED TO INTERFACE TO REENTRANT

/ ROUTINES:

/

 

R1=101

R2=102

 

 

 

/

/ REENTRANT SYSTEM ROUTINE ENTRY POINTS:

/

 

SNAM=123			/ SEARCH LISTHEAD IN R1 FOR

				/ NAME R2 POINTS TO.  RETURN

				/ NODE ADDRESS IN AC, R2.

 

 

 

/

/ POINTERS TO I/O TABLES INDEXED BY LUN NUMBER:

/

 

LUTP1=142			/ POINTER TO LUT (LOGICAL

				/ UNIT TABLE).

 

 

 

/

/ POINTER TO BATCH CONTROL VECTOR (VECTOR IS LOCATED IN

/ THE RESIDENT SECTION).  THIS POINTER MUST BE ZEROED PRIOR

/ TO TASK EXIT.

/

 

BATWD=147

 

 

 

/

/ LOCATION CONTAINING NUMBER OF TTY'S ON SYSTEM:

/

 

TTYNUM=176

 

 

 

/

/ MULTIACCESS CONTROL REGISTERS.  USED TO INTERFACE WITH TDV:

/

 

MA.UCA=221			/ POINTER TO TDV'S USER CONTEXT

				/ AREA.  ZERO IF TDV NOT

				/ RUNNING, NON-ZERO IF IT IS.

 

MA.CY=227			/ ^Y FLAG WORD.

 

MA.CST=230			/ POINTER TO TDV'S CONTROL

				/ AND STATUS TABLE.  OFFSETS

				/ WITHIN CONTROL AND STATUS

				/ TABLE ARE DEFINED LATER.

 

 

 

/

/ QUEUE LISTHEADS:

/

 

PDVL=252			/ PHYSICAL DEVICE LIST.

 

 

 

/

/ LOCATION WHICH CONTAINS SYSTEM DISK TYPE CODE.  THE CODE

/ IS THE SAME AS THE NUMERIC DEVICE CODES RETURNED BY HINF.

/ THE CODES ARE:

/

/	2 ==> RF DISK

/	3 ==> RP DISK

/	24 ==> RK DISK

/

 

SYSDSK=301

	.TITLE NODE FORMAT DEFINITIONS

 

 

 

 

/

/ REFERENCES TO I/O REQUEST NODES ARE CODED USING NUMERIC

/ CONSTANTS.

/

 

 

 

/

/ REFERENCES TO JOB QUEUE NODES ARE CODED USING NUMERIC

/ CONSTANTS PLUS THE MASKS USED TO REFERENCE THE CURRENT

/ JOB NODE IMAGE.  FOR A DETAILED DESCRIPTION OF THE

/ JOB QUEUE NODE FORMAT, SEE THE RESIDENT SECTION.

/

	.TITLE REFERENCES TO TDV TABLES

 

 

 

 

/

/ REFERENCES TO TDV'S CONTROL AND STATUS TABLE.  THE

/ CONTROL AND STATUS TABLE IS ACCESSED VIA SCOM LOCATION

/ MA.CST.

/

 

TTY.UC=15			/ 18 (DECIMAL) WORD TABLE, ONE

				/ WORD PER TERMINAL.  CONTAINS

				/ USER CONTEXT AREA (UCA)

				/ ADDRESS IF TERMINAL LOGGED

				/ IN, -1 IF TERMINAL NOT

				/ LOGGED IN.

 

BT.USR=101			/ BIT MAP OF SUCCESSFULLY

				/ LOGGED IN TERMINALS.

	.TITLE REFERENCES TO BDRES AND OTHER BATCH OVERLAYS

 

 

 

 

/

/ DEFINE ENTRY POINT TO BATCH OVERLAY WHICH

/ BDRES EXITS TO:

/

 

	.GLOBL BDSLCT

 

 

 

/

/ DEFINE ENTRY POINT TO BATCH SYSTEM ERROR PROCESSOR:

/

 

	.GLOBL BDABRT

 

 

 

/

/ DEFINE ENTRY POINTS TO ROUTINES IN RESIDENT SECTION:

/

 

	.GLOBL ISSUE		/ ROUTINE TO ISSUE CPB'S.

 

	.GLOBL CHKCRD		/ ROUTINE TO DETERMINE TYPE OF

				/ INPUT LINE.

 

	.GLOBL CTRL.Y		/ ROUTINE TO SIMULATE A ^Y.

 

	.GLOBL USRSTAT		/ ROUTINE TO DETERMINE LOGIN

				/ STATUS OF BATCH.

 

	.GLOBL ERRFLG		/ ROUTINE TO SET ERROR

				/ FLAG BITS IN LOCATION

				/ JOBERR.

 

	.GLOBL PRINT		/ ROUTINE TO PRINT A LINE

				/ ON THE LISTING DEVICE.

 

	.GLOBL ECHO		/ ROUTINE TO ECHO INPUT LINE

				/ ON THE LISTING DEVICE.

 

	.GLOBL ECHOWT		/ ROUTINE TO WAIT FOR LISTING

				/ ACTIVITY TO FINISH.

 

 

 

/

/ DEFINE REFERENCES TO CURRENT JOB NODE IMAGE (PRIMARY NODE):

/

 

	.GLOBL JBNAM1		/ FIRST WORD OF JOB NAME.

 

	.GLOBL JBNAM2		/ SECOND WORD OF JOB NAME.

 

	.GLOBL JBID		/ JOB ID OR SEQUENCE NUMBER.

 

	.GLOBL JBFLGS		/ JOB FLAGS WORD. (SEE BELOW)

 

	.GLOBL JBPARM		/ JOB PARAMETERS.  (SEE BELOW)

 

	.GLOBL JBDATE		/ DATE OF JOB SUBMITTAL.

 

	.GLOBL JBSSM		/ TIME (SSM) OF JOB SUBMITTAL.

 

 

 

/

/ DEFINE REFERENCES TO CURRENT JOB NODE IMAGE (SECONDARY NODE):

/

 

	.GLOBL INDVU		/ INPUT DEVICE AND UNIT.

 

	.GLOBL INUFD		/ INPUT UFD.

 

	.GLOBL LSTDVU		/ LISTING DEVICE AND UNIT.

 

	.GLOBL LSTUFD		/ LISTING UFD.

 

	.GLOBL LGNDVU		/ LOGIN DEVICE AND UNIT.

 

	.GLOBL LGNUFD		/ LOGIN UFD.

 

 

 

/

/ DEFINE BIT MASKS WITHIN JOB FLAGS WORD (JBFLGS):

/

 

DLTFLG=400000			/ DELETE JOB FILE AFTER RUNNING

				/ JOB.

 

OPRFLG=200000			/ OPERATOR REQUIRED TO RUN JOB.

 

FRCFLG=100000			/ JOB FORCED BY OPERATOR.

 

SEQFLG=040000			/ JOB SEQUENCING REQUIRED.

 

HLDFLG=010000			/ HOLD FOR OPERATOR RELEASE.

 

CCLFLG=004000			/ CCL PROCESSING REQUIRED.

 

UFDFLG=002000			/ EXPLICIT LOGIN DEVICE/UFD

				/ SPECIFIED.

 

TIMMSK=001777			/ TIME ESTIMATE.

 

 

 

/

/ DEFINE BIT MASKS WITHIN JOB PARAMETERS WORD (JBPARM):

/

 

CLSMSK=700000			/ JOB CLASS.

 

MEMMSK=000177			/ MEMORY REQUIREMENT.

 

 

 

/

/ DEFINE BIT MASKS WITHIN DATE OF JOB SUBMITTAL (JBDATE):

/

 

YRMSK=777000			/ YEAR (ZERO=1900)

 

MOMSK=000740			/ MONTH

 

DAMSK=000037			/ DAY

 

 

 

/

/ DEFINE SCHEDULING PARAMETERS (LOCATED WITHIN BATCH

/ CONTROL VECTOR, SET BY OPR).

/

 

	.GLOBL WFACTR		/ WAIT TIME MULTIPLIER.

 

	.GLOBL TFACTR		/ TIME ESTIMATE MULTIPLIER.

 

	.GLOBL CFACTR		/ JOB CLASS MULTIPLIER.

 

	.GLOBL OPON		/ OPERATOR ON DUTY FLAG.

				/ 1 => OPERATOR ON

				/ 0 => OPERATOR OFF

 

	.GLOBL WAIMAX		/ MAXIMUM ALLOWABLE WAIT TIME.

 

	.GLOBL TIMMAX		/ MAXIMUM ALLOWABLE RUN TIME.

 

	.GLOBL CLSMIN		/ MINIMUM ALLOWABLE JOB CLASS.

 

	.GLOBL DEFTIM		/ DEFAULT JOB TIME LIMIT.

 

 

 

/

/ OTHER LOCATIONS IN BATCH CONTROL VECTOR:

/

 

	.GLOBL TLEACT		/ ACTION TO TAKE ON TIME

				/ ESTIMATE EXCEEDED.

				/ 1 ==> ABORT JOB.

				/ 2 ==> STOP JOB.

				/ 3 ==> KILL JOB.

				/ 4 ==> REPORT.

				/ 5 ==> IGNORE.

 

	.GLOBL TIMLIM		/ CURRENT JOB FILE TIME LIMIT.

				/ NEGATIVE OF THE MAXIMUM

				/ SECONDS ALLOWED.

 

	.GLOBL JOBFND		/ JOB FOUND & EXECUTING FLAG.

				/ 0 => NO JOB BEING EXECUTED.

				/	(I.E., CURRENT JOB NODE

				/	IMAGE IS INVALID).

				/ 1 => JOB BEING EXECUTED,

				/	START-UP SEQUENCE OR

				/	END-OF-JOB SEQUENCE

				/	IN PROGRESS.

				/ 2 => JOB IS RUNNING.

				/ 3 => BATCH IS SCANNING TO

				/	$ERR CARD (JOB HAS

				/	BEEN KILLED).

 

	.GLOBL JOBERR		/ JOB ERROR FLAGS WORD.  (SEE

				/ BELOW).

 

	.GLOBL EXJOB		/ BATCH EXIT SWITCH.

				/ 0 => EXECUTE JOBS.

				/ +1 => PAUSE AT END OF JOB.

				/ -1 => EXIT AT END OF JOB.

 

	.GLOBL PAUSW		/ $PAUSE IN PROGRESS FLAG.

				/ 0 => NORMAL EXECUTION.

				/ +1 => $PAUSE IN PROGRESS,

				/	BATCH IS WAITING FOR

				/	OPERATOR PROCEED.

 

 

 

/

/ ERROR FLAG BITS WITHIN JOBERR:

/

/	SIGN BIT -- TERMINATE JOB AT NEXT TDV READ.

/

/	ALL OTHER BITS -- INDICATE SOME SPECIFIC CAUSE OF JOB

/			TERMINATION.  MOST BITS ARE SET WHILE

/			SIMULTANEOUSLY SETTING THE SIGN BIT,

/			THUS STOPPING THE JOB AT NEXT TDV READ.

/			SOME ERRORS ALSO SIMULATE A ^Y, WHICH

/			CAUSES A TDV READ, THUS ABORTING THE

/			JOB IMMEDIATELY.  OTHER ERRORS SET A

/			BIT HERE AND SET JOBFND TO +3, CAUSING

/			A SCAN TO A $ERR CARD, THUS KILLING

/			THE JOB.  NOTE, HOWEVER, THAT A ^Y

/			SHOULD BE SIMULATED AND/OR JOBFND SET

/			TO +3 ONLY IF JOBFND IS CURRENTLY

/			+2 OR +3 (REMEMBER THAT JOBFND RANGES

/			FROM 0 TO +3).  IF JOBFND IS NOT +2

/			OR +3, ONLY THE ERROR FLAG BITS IN

/			JOBERR SHOULD BE SET.  ALSO NOTE THAT

/			ALL MANIPULATIONS OF THESE LOCATIONS

/			MUST TAKE PLACE WITH INTERRUPTS

/			INHIBITED.

/

/ THIS WORD IS PASSED TO THE JOB END PROCESSOR (END...) TO

/ TELL IT THE REASONS FOR JOB TERMINATION.

/

/ IF ANY BIT IN JOBERR IS SET BEFORE THE JOB IS LOGGED IN

/ TO TDV, THE ENTIRE JOB IS ABORTED.  THIS EVEN APPLIES TO

/ ERRORS WHICH NORMALLY CAUSE A SCAN TO A $ERR CARD.

/

/ SPECIFIC BIT DEFINITIONS:

/

 

JE.IN=200000+400000		/ ASSIGNMENT FAILURE WITH

				/ JOB INPUT FILE.

 

JE.SK=100000+400000		/ SEEK ERROR WITH JOB INPUT

				/ FILE.

 

JE.LST=040000+400000		/ ASSIGNMENT FAILURE WITH

				/ JOB LISTING OUTPUT FILE.

 

JE.NTR=020000+400000		/ ENTER ERROR WITH JOB LISTING

				/ OUTPUT FILE.

 

JE.LGN=010000+400000		/ ILLEGAL EXPLICIT LOGIN

				/ DEVICE/UFD SPECIFIED.

 

JE.JOB=004000+400000		/ JOB ATTEMPTED TO READ A $JOB

				/ CARD (JOB TERMINATES, THEN

				/ NEXT JOB IN JOB FILE IS RUN).

 

JE.EOF=002000+400000		/ JOB ATTEMPTED TO READ PAST

				/ END-OF-FILE (ON JOB FILE).

 

JE.END=001000+400000		/ JOB ATTEMPTED TO READ $END

				/ CARD.

 

JE.ERR=000400+400000		/ I/O READ ERROR ENCOUNTERED

				/ ON JOB INPUT FILE.

 

JE.WRT=000200+400000		/ I/O WRITE ERROR ENCOUNTERED

				/ ON LISTING FILE.  ^Y ALSO

				/ SIMULATED.

 

JE.TMA=000040			/ JOB ABORTED BY TIME LIMIT

				/ OVERRUN.  ^Y ALSO SIMULATED.

				/ JOBFND ALSO SET TO +3.

 

JE.TMS=000020+400000		/ JOB STOPPED BY TIME LIMIT

				/ OVERRUN.

 

JE.TMK=000010			/ JOB KILLED BY TIME LIMIT

				/ OVERRUN.  JOBFND ALSO SET

				/ TO +3.

 

JE.ABRT=000004			/ JOB ABORTED BY OPERATOR.

				/ ^Y ALSO SIMULATED.  JOBFND

				/ ALSO SET TO +3.

 

JE.STP=000002+400000		/ JOB STOPPED BY OPERATOR.

 

JE.KIL=000001			/ JOB KILLED BY OPERATOR.

				/ JOBFND ALSO SET TO +3.

 

 

 

/

/ LOCATIONS WHICH SAVE EVENT VARIABLE VALUES PERTINENT TO

/ SPECIFIC ERRORS FLAGGED IN JOBERR:

/

 

	.GLOBL SK.EV		/ SAVE JOB COMMAND INPUT FILE

				/ SEEK EV VALUE (JE.SK ERROR).

 

	.GLOBL NTR.EV		/ SAVE LISTING OUTPUT FILE EN-

				/ TER EV VALUE (JE.NTR ERROR).

 

	.GLOBL WRT.EV		/ SAVE LISTING OUTPUT FILE

				/ WRITE EV VALUE (JE.WRT

				/ ERROR).

 

 

 

/

/ DEFINE REFERENCES TO ASSIGN COMMAND LINES IN RESIDENT:

/

 

	.GLOBL ASS4OPR		/ LUN 4 TO OPERATOR TTY.

 

	.GLOBL ASS13ACCT	/ LUN 13 TO ACCOUNTING FILE.

 

	.GLOBL ASSLP		/ LUNS 4, 13, AND 16 TO

				/ LISTING DEVICE.

 

 

 

/

/ DEFINE REFERENCES TO OTHER TEXT BUFFERS IN RESIDENT:

/

 

	.GLOBL LGNMSG		/ LOGIN MESSAGE, SPECIFYING

				/ LOGIN DEVICE, UNIT, & UFD.

 

	.GLOBL QJBINF		/ TEXT BUFFER CONTAINING INFO.

				/ FROM JOB QUEUE NODE.

 

	.GLOBL BEGMSG		/ MESSAGE PASSED TO JOB...

				/ AND END... CONTAINING

				/ ACCOUNTING INFO.

 

 

 

/

/ DEFINE REFERENCES TO DYNAMIC LINE BUFFER POINTERS.  THERE

/ ARE TWO LINE BUFFERS IN THE RESIDENT SECTION.  THE TWO

/ LOCATIONS IN.BFR AND LP.BFR EACH POINT TO ONE OF THESE

/ BUFFERS.  WHEN A LINE NEEDS TO BE EXCHANGED, ONLY THE 

/ BUFFER POINTERS ARE PHYSICALLY EXCHANGED.

/

 

	.GLOBL IN.BFR		/ JOB FILE INPUT BUFFER.

 

	.GLOBL LP.BFR		/ LISTING OUTPUT BUFFER.

 

 

 

/

/ REFERENCES TO CPB'S AND ASSOCIATED EVENT VARIABLES:

/

 

	.GLOBL IN.CPB,IN.EV	/ CPB TO READ LINE FROM JOB

				/ INTO IN.BFR.

 

	.GLOBL LP.MOD,LP.LEN	/ CPB TO PRINT LINE IN LP.BFR

				/ ON LISTING DEVICE.

 

	.GLOBL TT.CPB,TT.EV	/ CPB TO PRINT LINE IN TT.BFR

				/ ON OPERATOR TTY.

 

	.GLOBL IN.HINF		/ HINF CPB TO INPUT DEVICE

				/ WHICH WILL SET TRGGR WHEN

				/ DONE.

 

	.GLOBL MRKTIM		/ MARK TIME CPB TO SET TRGGR

				/ IN ONE MINUTE.

 

 

 

/

/ REFERENCES TO WORDS CONTAINING LUN NUMBERS:

/

 

	.GLOBL IN.LUN		/ JOB FILE INPUT LUN.

 

	.GLOBL LP.LUN		/ LISTING OUTPUT LUN.

 

	.GLOBL TT.LUN		/ OPERATOR TTY LUN.

 

 

 

/

/ REFERENCES TO OTHER WORDS IN RESIDENT:

/

 

	.GLOBL PDVLND		/ ADDRESS OF BATCH'S PDVL NODE.

 

	.GLOBL TRGGR		/ BATCH'S TRIGGER EVENT

				/ VARIABLE.

 

	.GLOBL WAITFR		/ A WAITFOR CPB TO WAIT FOR THE

				/ TRIGGER EVENT VARIABLE

				/ (TRGGR) TO BE SET.

 

	.GLOBL TTYBIT		/ BIT MASK FOR BATCH'S TERMINAL

				/ NUMBER WITHIN LOCATIONS

				/ MA.CT, MA.CY, ETC.

 

	.GLOBL TTYOFST		/ OFFSET FROM BASE OF TDV'S

				/ CONTROL AND STATUS TABLE

				/ (ADDRESS IN MA.CST) TO

				/ BATCH'S ENTRY IN UCA ADDRESS

				/ TABLE (TTY.UC).

 

	.GLOBL ACTDEV		/ WORD CONTAINING DEVICE

				/ NAME AND UNIT NUMBER OF

				/ DEVICE CONTAINING ACCOUNT-

				/ ING FILE.  DEVICE NAME IS

				/ IN HIGH 12 BITS IN .SIXBT,

				/ UNIT NUMBER IS IN BINARY

				/ IN LOW 6 BITS.

 

	.GLOBL ACTUFD		/ WORD CONTAINING THREE CHAR-

				/ ACTER UFD NAME OF UFD CON-

				/ TAINING ACCOUNTING FILE.

				/ NAME IS IN .SIXBT.

 

	.GLOBL RUNTIM		/ LOCATION WHICH ACCUMULATES

				/ THE RUN TIME (SECONDS)

				/ (CLOCK OR REAL TIME MINUS

				/ PARTITION WAIT TIME) FOR

				/ ALL JOBS IN THE CURRENT

				/ JOB FILE.

 

	.GLOBL JOBNUM		/ LOCATION CONTAINING THE

				/ NUMBER OF THE CURRENT JOB

				/ WITHIN THE CURRENT JOB

				/ FILE.

	.TITLE ISSUE -- ISSUE A CPB

 

 

 

 

/

/ THIS SUBROUTINE ATTEMPTS TO ISSUE A CPB (VIA A CAL), THEN

/ CHECKS TO SEE THAT THE CPB WAS ACTUALLY ISSUED.  IF AN

/ EVENT VARIABLE VALUE OF -777 IS RETURNED, THE CPB WAS NOT

/ ISSUED DUE TO THE NODE POOL BEING EMPTY.  IF THIS OCCURS,

/ THIS SUBROUTINE WAITS FOR THE NEXT SIGNIFICANT EVENT AND

/ THEN TRIES AGAIN.  THIS IS REPEATED UNTIL THE CPB IS

/ SUCCESSFULLY ISSUED.  NOTE THAT ANY EVENT VARIABLE VALUE

/ OTHER THAN -777 INDICATES THAT THE CPB WAS ACTUALLY

/ ISSUED, ALTHOUGH OTHER ERRORS MAY OCCUR.

/

/ CALLING SEQUENCE:

/	JMS ISSUE

/	  < CPB POINTER >

/	< RETURN >

/

/ THE CPB POINTER TAKES ONE OF TWO FORMATS.  IF THE WORD IS

/ POSITIVE, IT IS MERELY THE ADDRESS OF THE CPB.  IF THE CPB

/ POINTER IS NEGATIVE, IT IS OF THE FORM "400000+WORD", WHERE

/ LOCATION "WORD" CONTAINS THE ADDRESS OF THE CPB.  I.E.,

/ THE SIGN BIT IS A INDIRECTION FLAG (JUST AS WITH THE FPP).

/

/ REGISTERS ALTERED:

/	ALL

/

/ VALUES RETURNED:

/	NONE

/

 

 

ISSUE	0

ISSU.A	LAC* ISSUE		/ PICK UP CPB POINTER.

	SMA			/ SKIP IF INDIRECTION.

	JMP ISSU.B		/ JMP IF NO INDIRECTION.

	XOR (400000)		/ CLEAR INDIRECT BIT.

	DAC ISSU.0		/ PERFORM INDIRECT CYCLE.

	LAC* ISSU.0

/ COME HERE WITH CPB ADDRESS IN AC.

ISSU.B	DAC ISSU.0		/ SAVE CPB ADDRESS.

	CAL* ISSU.0		/ ISSUE THE CAL.

	ISZ ISSU.0		/ BUMP TO EV ADDRESS.

	LAC* ISSU.0		/ FETCH EV ADDRESS.

	DAC ISSU.0		/ PREPARE TO FETCH EV VALUE.

	SZA			/ FETCH EV VALUE, OR ZERO IF

	LAC* ISSU.0		/ NO EV SPECIFIED.

	SAD (-777)		/ WAS NODE POOL EMPTY?

	JMP ISSU.C		/ JMP IF YES -- TRY AGAIN.

	ISZ ISSUE		/ CPB WAS ISSUED -- BUMP TO

	JMP* ISSUE		/ RETURN, THEN RETURN.

 

 

/ COME HERE IF CPB WASN'T ISSUED.

 

ISSU.C	WAIT			/ WAIT FOR SIGNIFICANT EVENT.

	JMP ISSU.A		/ GO TRY AGAIN.

 

 

 

ISSU.0	0			/ TEMPORARY.

	.TITLE CHKCRD -- DETERMINE TYPE OF INPUT LINE

 

 

 

 

/

/ THIS ROUTINE EXAMINES THE INPUT LINE (IN.BFR) AND DETER-

/ MINES WHAT TYPE IT IS.  NOTE THAT THE CALLER OF THIS

/ ROUTINE MUST ENSURE THAT INPUT HAS COMPLETED (I.E., THAT

/ IN.EV IS NON-ZERO) BEFORE CALLING THIS ROUTINE.  THE CARD

/ OR LINE TYPE CODE IS RETURNED IN THE AC.

/

/ THE BROAD CLASSIFICATIONS OF CARD OR LINE TYPES ARE AS

/ FOLLOWS:

/

/	> 0	NOT A CONTROL CARD

/

/	< 0	A CONTROL CARD

/

/ THESE CLASSIFICATIONS ARE BROKEN DOWN BY THE SPECIFIC

/ LINE (CARD) TYPES DEFINED BELOW.

/

/ NOTE:  "%" STANDS FOR "$" IN THESE CODES.

/

/ CODES FOR NON-CONTROL CARDS:

/

 

 

NOT%=1		/ NOT% ==> NOT A CONTROL CARD -- I.E.,

		/	COLUMN 1 DOES NOT CONTAIN "$"

 

%EOF=NOT%+1	/ %EOF ==> $EOF CARD -- RETURN AN END-OF-FILE

		/	TO THE TASK

 

 

 

/

/ CONTROL CARD CODES:

/

 

 

%MSG=-1		/ %MSG ==> $MSG CARD.  PRINTS ON LISTING

		/	DEVICE AND OPERATOR TTY.

 

%LOG=%MSG-1	/ %LOG ==> $LOG CARD.  PRINTS ON LISTING

		/	DEVICE.

 

%PAU=%LOG-1	/ %PAU ==> $PAUSE CARD.  PRINT ON LISTING

		/	DEVICE AND OPERATOR TTY, THEN WAIT

		/	FOR OPERATOR'S OK TO PROCEED.

%EJECT=%PAU-1	/ %EJECT ==> $EJECT CARD.  PRINT FORM-FEED

		/	(PAGE EJECT) ON LISTING DEVICE.

 

%ERR=%EJECT-1	/ %ERR ==> $ERROR CARD.  IF ERROR OCCURS, SKIP

		/	TO NEXT $ERROR CARD.  OTHERWISE, PRINT

		/	ON LISTING DEVICE AND OPERATOR TTY.

 

EOJ=%ERR-1	/ EOJ ==> END-OF-JOB LINE READ ON INPUT FILE.

		/	RETURNED WHEN $JOB, $END, $QUIT, END-

		/	OF-FILE, OR READ ERROR IS ENCOUNTERED.

		/	CAUSES JOB TERMINATION.  NOTE THAT

		/	BITS IN LOCATION JOBERR ARE SET --

		/	SEE BELOW.

 

%OTHER=EOJ-1	/ %OTHER ==> ANY OTHER CONTROL CARD (WITH "$"

		/	IN COLUMN 1) NOT SPECIAL CASED ABOVE.

		/	BY DEFAULT, A TDV COMMAND CARD.

 

 

 

/

/ NOTE:  THE ACTION DESCRIPTIONS ABOVE ARE FOR DESCRIPTIVE

/        PURPOSES ONLY -- IMPLEMENTATION OF THE ACTIONS IS

/        THE RESPONSIBILITY OF THE ROUTINES CALLING CHKCRD.

/

/ NOTE:  CARD TYPES SHOULD BE REFERRED TO ONLY BY THE

/	 MNEMONICS DEFINED ABOVE, AND NEVER BY THEIR

/	 ACTUAL NUMERIC VALUES!

/

/ NOTE:  WHEN THE CODE "EOJ" IS RETURNED (SIGNIFYING AN END-

/        OF-JOB LINE HAS BEEN READ), APPROPRIATE BITS ARE

/        ALSO SET IN JOBERR.  JE.JOB IS SET IF A $JOB IS

/        READ, JE.END IF A $END IS READ, JE.EOF IF A $QUIT

/        OR END-OF-FILE IS READ, OR JE.ERR IF A READ ERROR

/        IS ENCOUNTERED.

/

/ NOTE:  THE ORDERING AND EXACT VALUES OF CARD TYPE CODES

/        %MSG THROUGH %ERR ARE CRITICAL TO THE FORMATION

/        OF TABLE CKCD.O BELOW AND THE CODE WHICH REFER-

/        ENCES IT.  NEW CONTROL CODES MUST BE ADDED FOL-

/	 LOWING %ERR, OR THE TABLE AND CODE CHANGED

/	 APPROPRIATELY.

/

/ CALLING SEQUENCE:

/	JMS CHKCRD

/

/ REGISTERS ALTERED:

/	ALL (MAY ISSUE CAL'S)

/

/ VALUES RETURNED:

/	AC

/

 

 

CHKCRD	0

	LAC IN.EV		/ CHECK FOR READ ERRORS.

	SPA			/ SKIP IF NO ERROR

	JMP CKCD.O		/ JMP IF EV < 0 ==> ERROR.

	LAC* IN.BFR		/ FETCH HEADER WORD.

	AND (17)		/ MASK OUT DATA TRANSFER MODE.

	SAD (5)			/ IS IT END-OF-FILE?

	JMP CKCD.M		/ YES -- RETURN EOJ.

	SAD (6)			/ IS IT END-OF-MEDIUM?

	JMP CKCD.M		/ YES -- TREAT AS END-OF-FILE

	LAC IN.BFR		/ POINT XR TO INPUT BUFFER.

	PAX

	.DEBUG <"BDRES:CHKCRD -- INPUT LINE:  ">,IN.BFR,51

	LACIX (3)		/ PUT SECOND DATA WORD IN MQ,

	LMQ			/ IN CASE WE NEED IT TO FORM

				/ COMMAND NAME.

	LAW 776000		/ VERIFY WORD PAIR COUNT

	ANDIX (0)		/ IS 2 OR GREATER.  IF COUNT

				/ IS ZERO OR ONE, CAUSE CONTROL

				/ CARD CHECK TO DETERMINE CARD

				/ IS NOT A CONTROL CARD.

	SZA!CLA			/ SKIP IF COUNT IS ZERO OR ONE.

	LAW 777760		/ IF COUNT > 1, MASK OUT FIRST

	ANDIX (2)		/ TWO CHARACTERS AND CHECK FOR

	SAD (12*200+44*20)	/ <LF>"$".  MATCH => CNTRL CARD

	JMP CKCD.A		/ JMP IF CONTROL CARD.

	AND (774000)		/ MASK OUT FIRST CHAR., AND

	SAD (44*4000)		/ CHECK FOR "$" ==> CNTRL CARD.

	JMP CKCD.B		/ JMP IF CONTROL CARD.

	LAC (NOT%)		/ CARD DID NOT HAVE "$" AS

	JMP CKCD.H		/ FIRST CHAR. -- THEREFORE

				/ IT'S JUST AN ORDINARY NON-

				/ CONTROL CARD.

 

 

/ COME HERE IF CARD IS A CONTROL CARD OR $EOF CARD -- I.E.

/ IF FIRST CHAR. IS "$".  COME TO CKCD.A IF CARD STARTS

/ <LF>"$", COME TO CKCD.B IF CARD STARTS "$".

 

CKCD.A	LACIX (2)		/ FETCH FIRST DATA WORD

	LLS 7			/ SHIFT OUT LF

	SKP

CKCD.B	LACIX (2)		/ FETCH FIRST DATA WORD

	LRS 3			/ FORM .SIXBT REPRESENTATION

	RAR			/ OF THREE LETTER COMMAND NAME.

	LLS 7

	RAR

	LLS 6			/ LEAVE RESULT IN AC.

	SAD (051706)		/ CHECK FOR .SIXBT "EOF"

	JMP CKCD.G		/ JMP IF $EOF -- RETURN CODE

	SAD (121702)		/ CHECK FOR .SIXBT "JOB"

	JMP CKCD.P		/ JMP IF $JOB.

	SAD (051604)		/ CHECK FOR .SIXBT "END"

	JMP CKCD.N		/ JMP IF $END.

	SAD (212511)		/ CHECK FOR .SIXBT "QUI"

	JMP CKCD.M		/ JMP IF $QUIT.

	CLLR			/ SET UP XR AND LR TO SCAN

	CLX			/ COMMAND NAME TABLE CKCD.J.

	AXR %ERR		/ IF THE COMMAND NAME IS

CKCD.C	SAD CKCD.J-%ERR,X	/ FOUND IN THIS TABLE, THE

	JMP CKCD.F		/ XR WILL CONTAIN THE CARD

	AXS 1			/ TYPE CODE.

	JMP CKCD.C

/ COME HERE IF COMMAND NAME ISN'T IN TABLE.

	LAW %OTHER		/ RETURN $OTHER TYPE CODE.

	SKP

/ COME HERE IF COMMAND NAME FOUND IN TABLE CKCD.J.

CKCD.F	PXA			/ TYPE CODE IS IN XR.

	SKP

/ COME HERE IF CARD IS $EOF.

CKCD.G	LAC (%EOF)		/ RETURN $EOF CARD CODE.

/ COME HERE, TO RETURN TO CALLER, WITH CARD TYPE CODE IN AC.

CKCD.H	.DEBUG <"BDRES:CHKCRD -- CARD TYPE CODE=">,-1,10

	JMP* CHKCRD		/ AND RETURN!

 

 

/ TABLE OF COMMAND NAMES WHICH HAVE UNIQUE CARD TYPE CODES.

/ THE COMMAND NAMES ARE ACCESSED WITH THE CARD TYPE CODE

/ IN THE XR.  FOR MORE INFORMATION, EXAMINE THE CODING

/ WHICH ACCESSES THIS TABLE.

 

CKCD.J	.SIXBT "ERR"		/ $ERROR

	.SIXBT "EJE"		/ $EJECT

	.SIXBT "PAU"		/ $PAUSE

	.SIXBT "LOG"		/ $LOG

	.SIXBT "MSG"		/ $MSG

 

 

/ COME HERE IF WE READ AN END-OF-FILE, END-OF-MEDIUM, OR A

/ $QUIT CARD.

 

CKCD.M	LAC (JE.EOF)		/ GET JOBERR FLAG BITS IN AC.

	.DEBUG <"BDRES:CHKCRD -- END-OF-FILE ON INPUT FILE">,0,0

	SKP

/ COME HERE IF WE READ A $END CARD.

CKCD.N	LAC (JE.END)		/ GET JOBERR FLAG BITS IN AC.

	SKP

/ COME HERE IF WE ENCOUNTER AN I/O READ ERROR.

CKCD.O	LAC (JE.ERR)		/ GET JOBERR FLAG BITS IN AC.

	SKP

/ COME HERE IF WE READ A $JOB CARD.

CKCD.P	LAC (JE.JOB)		/ GET JOBERR FLAG BITS IN AC.

/ COME HERE, FOR ALL OF THE CASES WHICH RETURN "EOJ", WITH

/ THE APPROPRIATE JOBERR FLAG BITS IN THE AC.

	JMS ERRFLG		/ SET BITS IN JOBERR.

	LAW EOJ			/ RETURN CARD TYPE CODE "EOJ".

	JMP CKCD.H

	.TITLE CTRL.Y -- SUBROUTINE TO SIMULATE ^Y

 

 

 

 

/

/ THIS SUBROUTINE SIMULATES A ^Y (TASK ABORT REQUEST) BY

/ SETTING THE APPROPRIATE BIT IN MA.CY.

/

/ NOTE:  THIS SUBROUTINE MUST PRESERVE THE LINK!

/

/ CALLING SEQUENCE:

/	JMS CTRL.Y

/

/ REGISTERS ALTERED:

/	AC

/

/ VALUES RETURNED:

/	NONE

/

 

 

CTRL.Y	0

	.DEBUG <"BDRES:CTRL.Y -- ^Y SIMULATED">,0,0

	LAC TTYBIT		/ FORM MASK TO PRESERVE ^Y

	CMA			/ STATUS OF OTHER TERMINAL #'S.

	.INH			/// AVOID TIMING PROBLEMS.

	AND* (MA.CY)		/// MASK OUT OTHER ^Y BITS.

	XOR TTYBIT		/// SET OUR ^Y BIT.

	.ENB			///

	DAC* (MA.CY		/// UPDATE ^Y FLAG WORD.

	JMP* CTRL.Y		/ RETURN.

	.TITLE USRSTAT -- SUBR. TO CHECK BATCH'S LOGIN STATUS

 

 

 

 

/

/ THIS ROUTINE DETERMINES THE CURRENT TDV LOGIN STATUS OF

/ THE BATCH "USER" AND TAKES ONE OF FOUR RETURNS AS

/ APPROPRIATE.

/

/ GLOSSARY:

/

/	"TDV NOT RUNNING" -- USER IS NOT LOGGED IN; TDV MUST

/				BE REQUESTED DURING LOGIN.

/

/	"USER PARTIALLY LOGGED IN" -- TDV IS WAITING FOR LOGIN

/				DEVICE AND UFD.

/

/ CALLING SEQUENCE:

/	JMS USRSTAT

/	  < TDV NOT RUNNING RETURN >

/	  < USER NOT LOGGED IN RETURN >

/	  < USER PARTIALLY LOGGED IN RETURN >

/	< USER FULLY LOGGED IN RETURN >

/

/ REGISTERS ALTERED:

/	AC, LINK, XR

/

/ VALUES RETURNED:

/	USER LOGIN STATUS, VIA SKIP RETURNS

/

 

 

USRSTAT	0

	.INH			/// DON'T LET TDV CHANGE

				/// ANYTHING.

	LAC* (MA.UCA)		/// IS TDV RUNNING?

	SNA			/// SKIP IF MAYBE IT IS.

	JMP USRS.B		/// JMP IF TDV NOT RUNNING.

	LAC* (MA.CST)		/// IS TDV RUNNING?

	SNA			/// SKIP IF IT DEFINITELY IS.

	JMP USRS.B		/// JMP IF TDV NOT RUNNING.

	PAX			/// POINT XR TO TDV'S CONTROL

				/// AND STATUS TABLE.

	LACIX TTYOFST		/// FETCH OUR UCA ADDRESS.

	SAD (-1)		/// IF -1, NOT LOGGED IN.

	JMP USRS.A		/// JMP IF NOT LOGGED IN.

	LACIX (BT.USR)		/// FETCH LOGIN FLAG WORD.

	AND TTYBIT		/// MASK OUT OUR BIT.

	SZA			/// SKIP IF LOGIN NOT COMPLETE.

	ISZ USRSTAT		/// ISZ IF LOGIN COMPLETE.

	ISZ USRSTAT		///

USRS.A	ISZ USRSTAT		/// BUMP TO APPROPRIATE

USRS.B	.ENB			/// RETURN.

	JMP* USRSTAT		///

	.TITLE ERRFLG -- SUBR. TO SET JOBERR ERROR FLAG BITS

 

 

 

 

 

/

/ THIS SUBROUTINE IS USED TO SET ERROR FLAG BITS IN LOCATION

/ JOBERR.  THE ROUTINE SHOULD BE CALLED WITH THE ERROR FLAGS

/ IN THE AC.

/

/ CALLING SEQUENCE:

/	LAC (JE.***)

/	JMS ERRFLG

/

/ REGISTERS ALTERED:

/	AC, MQ, LINK

/

/ VALUES RETURNED:

/	JOBERR WITH APPROPRIATE BITS SET

/

 

 

ERRFLG	0

	LMQ			/ PUT FLAG BITS IN MQ.

	.INH			///

	LAC JOBERR		/// PICK UP JOBERR.

	OMQ			/// SET FLAG BITS.

	.ENB			///

	DAC JOBERR		/// STORE REVISED JOBERR.

	.DEBUG <"BDRES:ERRFLG -- JOBERR SET TO ">,JOBERR,20

	JMP* ERRFLG		/ AND RETURN.

	.TITLE PRINT -- PRINT A LINE ON LISTING DEVICE

 

 

 

 

/

/ THIS SUBROUTINE PRINTS A LINE ON THE LISTING DEVICE.

/ IT ALSO SETS UP TT.CPB SO THAT THE LINE

/ CAN BE PRINTED ON THE OPERATOR TTY MERELY BY ISSUEING

/ TT.CPB.

/

/ THE LINE IS NORMALLY IN IOPS ASCII MODE.  IF IT IS

/ IN A DIFFERENT DATA MODE, CHANGE LOCATION LP.MOD

/ PRIOR TO CALLING THIS ROUTINE.  THIS ROUTINE RESTORES

/ THE DATA MODE TO IOPS ASCII (+2).

/

/ IF THE BUSY RETURN IS TAKEN, AN APPROPRIATE HINF HAS

/ BEEN ISSUED TO SET TRGGR WHEN LISTING ACTIVITY IS

/ COMPLETE.

/

/ CALLING SEQUENCE:

/	JMS PRINT

/	  < BUSY RETURN >

/	  LAC (LINE BUFFER ADDRESS)

/

/ THIS ROUTINE RETURNS TO THE LAC INSTRUCTION, SO THAT UPON

/ RETURNING THE AC CONTAINS THE BUFFER ADDRESS.

/

/ REGISTERS ALTERED:

/	ALL, BUFFER POINTER IN TT.CPB

/

/ VALUES RETURNED:

/	AC, TT.CPB BOTH POINT TO LINE BUFFER

/

 

 

PRINT	0

	JMS ECHOWT		/ LISTING DEVICE IDLE?

	  JMP* PRINT		/ NO -- TAKE BUSY RETURN.

	ISZ PRINT		/ BUMP TO BUFFER POINTER.

	XCT* PRINT		/ FETCH BUFFER POINTER.

	DAC LP.CPB+4		/ STORE IN CPB.

	DAC TT.CPB+4		/ ALSO TT.CPB.

	JMS ISSUE		/ PRINT THE LINE.

	  LP.CPB

	LAC (2)			/ RESTORE IOPS ASCII MODE.

	DAC LP.MOD

	JMP* PRINT		/ THEN RETURN.

	.TITLE ECHO -- PRINT INPUT LINE ON LISTING DEVICE

 

 

 

 

/

/ THIS ROUTINE PRINTS THE INPUT LINE (IN THE INPUT BUFFER) ON

/ THE LISTING DEVICE.  IT ALSO SETS UP TT.CPB SO THAT, IF

/ TT.CPB IS ISSUED, THE LINE WILL BE PRINTED ON THE OPERATOR

/ TTY.  IT SWAPS THE INPUT AND LISTING BUFFERS, PRINTS THE NEW

/ LISTING BUFFER (FORMERLY THE INPUT BUFFER) ON THE LISTING

/ DEVICE, AND READS A NEW INPUT LINE.

/

/ NOTE THAT IF THE INPUT LINE (THE LINE BEING PRINTED) IS TO

/ BE REFERENCED FOLLOWING THE CALL TO THIS ROUTINE, IT MUST

/ BE ACCESSED VIA LP.BFR RATHER THAN IN.BFR.

/

/ ALSO NOTE THAT THIS ROUTINE ISSUES IN.CPB TO READ A NEW

/ INPUT LINE.

/

/ THIS ROUTINE ALSO SETS UP TT.CPB SO THAT, IF TT.CPB IS

/ ISSUED, THE LINE WILL BE LISTED ON THE OPERATOR'S TTY

/ AS WELL AS THE LISTING DEVICE.  ISSUEING TT.CPB IS THE

/ RESPONSIBILITY OF THE CALLER.  WHEN ECHOWT VERIFIES THAT

/ THE LISTING DEVICE HAS FINISHED, IT ALSO VERIFIES THAT ANY

/ ACTIVITY ON THE OPERATOR'S TTY HAS ALSO COMPLETED.

/

/ THIS ROUTINE NORMALLY TAKES A SKIP RETURN.  THE NON-SKIP

/ RETURN IS TAKEN IF THE LISTING DEVICE AND/OR OPERATOR TTY

/ IS BUSY WITH PRIOR ACTIVITY.  IF THIS OCCURS, AN APPROPRIATE

/ HINF HAS BEEN ISSUED TO SET TRGGR WHEN THE ACTIVITY

/ COMPLETES.

/

/ CALLING SEQUENCE:

/	JMS ECHO

/	  < DEVICE BUSY RETURN >

/	< NORMAL RETURN >

/

/ REGISTERS ALTERED:

/	ALL, IN.BFR, LP.BFR, BUFFER POINTER IN TT.CPB

/

/ VALUES RETURNED:

/	IN.BFR & LP.BFR SWAPPED, TT.CPB SET TO LP.BFR

/

 

 

ECHO	0

	JMS PRINT		/ PRINT IN.BFR, SET UP TT.CPB.

	  JMP* ECHO		/ BUSY -- TAKE BUSY RETURN.

	  LAC IN.BFR

	PAL			/ SWAP INPUT AND LISTING

	LAC LP.BFR		/ BUFFERS.

	DAC IN.BFR

	PLA

	DAC LP.BFR

	JMS ISSUE		/ READ NEW INPUT LINE.

	  IN.CPB

	ISZ ECHO		/ BUMP TO NORMAL RETURN

	JMP* ECHO

	.TITLE ECHOWT -- WAIT FOR LISTING ACTIVITY TO FINISH

 

 

 

 

/

/ THIS ROUTINE WAITS FOR ALL LISTING ACTIVITY TO FINISH AND

/ CHECKS FOR ERRORS ON THE LISTING DEVICE(S).  IT IS CALLED

/ BY VARIOUS ROUTINES TO ENSURE THAT IT IS SAFE TO MODIFY

/ THE LISTING BUFFER.  THIS ROUTINE CHECKS FOR COMPLETION OF

/ LP.CPB AND TT.CPB, AND ALSO FOR ERRORS WITH SAME (I.E.,

/ NEGATIVE VALUES OF LP.EV AND TT.EV).

/

/ THIS ROUTINE NORMALLY TAKES A SKIP RETURN.  THE NON-SKIP

/ RETURN IS TAKEN IF THE LISTING DEVICE AND/OR OPERATOR TTY

/ IS BUSY WITH PRIOR ACTIVITY.  IF THIS OCCURS, AN APPROPRIATE

/ HINF HAS BEEN ISSUED TO SET TRGGR WHEN THE ACTIVITY

/ COMPLETES.

/

/ CALLING SEQUENCE:

/	JMS ECHOWT

/	  < DEVICE BUSY RETURN >

/	< NORMAL RETURN >

/

/ REGISTERS ALTERED:

/	AC & LINK, IF NORMAL RETURN IS TAKEN.

/	ALL, IF DEVICE BUSY RETURN IS TAKEN.

/

/ VALUES RETURNED:

/	NONE

/

 

 
ECHOWT	0

	LAC TT.EV		/ VERIFY TT.CPB COMPLETION

	SPA!SNA!CLL!TCA		/ SKIP IF SUCCESSFULL, SET

				/ LINK IF PENDING.

	JMP ECHW.B		/ JMP IF PENDING OR ERROR.

	LAC LP.EV		/ VERIFY LP.CPB COMPLETION.

	SPA!SNA!CLL!TCA		/ SKIP IF SUCCESSFULL, SET

				/ LINK IF PENDING.

	JMP ECHW.C		/ JMP IF PENDING OR ERROR.

ECHW.A	ISZ ECHOWT		/ BUMP TO NORMAL RETURN.

	JMP* ECHOWT		/ AND RETURN.

 

 

/ COME HERE IF TT.CPB IS PENDING OR HAS ERRORS.

/ LINK IS SET IF PENDING, CLEAR IF ERRORS.

/ AC HAS MINUS VAUE OF TT.EV.

 

ECHW.B	LAW -105		/ ASSUME ERRORS.

	SNL			/ SKIP IF PENDING

	JMS* BDABRT		/ JMS IF ERRORS -- DECLARE

				/ BATCH SYSTEM ERROR.

	JMS ISSUE		/ ISSUE HINF TO TTY TO SET

	  TT.HINF		/ TRGGR WHEN I/O COMPLETE.

	.DEBUG <"BDRES:ECHOWT -- TT.HINF ISSUED.">,0,0

	JMP* ECHOWT		/ TAKE BUSY RETURN.

 

 

/ COME HERE IF LP.CPB IS PENDING OR HAS ERRORS.

/ LINK IS SET IF PENDING, CLEAR IF ERRORS.

/ AC HAS MINUS VAUE OF LP.EV.

 

ECHW.C	SNL!TCA			/ SKIP IF PENDING

	JMP ECHW.D		/ JMP IF ERROR.

	JMS ISSUE		/ ISSUE HINF TO LISTING DEVICE

	  LP.HINF		/ TO SET TRGGR WHEN I/O DONE.

	.DEBUG <"BDRES:ECHOWT -- LP.HINF ISSUED.">,0,0

	JMP* ECHOWT		/ TAKE BUSY RETURN.

 

 

/ COME HERE ON LP.CPB (LISTING DEVICE) ERRORS

/ AC HAS LP.EV VALUE.

 
ECHW.D	DAC WRT.EV		/ SAVE EV VALUE FOR END...

	CLA!IAC			/ SET EV TO +1, SO ERROR

	DAC LP.EV		/ WON'T REOCCUR.

	LAC (JE.WRT)		/ SET JOBERR FLAG BITS.
	JMS ERRFLG
	LAW -2			/ CHECK JOB STATE -- ABORT	/(101)
	TAD JOBFND		/ TASK (ISSUE ^Y) IF JOBFND	/(101)
	SMA			/ IS +2 OR +3.			/(101)
	JMS CTRL.Y		/ ABORT THE CURRENT TASK.
	JMP ECHW.A		/ GO TAKE SKIP RETURN.

	.TITLE DEFINE BATCH CONTROL VECTOR

 

 

 

 

/

/ THIS IS THE "BATCH CONTROL VECTOR", USED BY ASSORTED
/ ROUTINES TO INTERACT WITH BATCH.  DURING INITIALIZATION,

/ LOCATION BATWD IN THE EXECUTIVE'S SCOM AREA IS SETUP TO

/ POINT TO THE BATCH CONTROL VECTOR.  BATCH'S OPERATOR

/ INTERFACE (TASK ...OPR) USES THIS TO CONTROL THE BATCH

/ HANDLERS OPERATION.  THE VARIOUS BATCH OVERLAYS REFER TO

/ THIS CONTROL VECTOR VIA VARIOUS GLOBAL SYMBOLS WHICH WERE

/ DEFINED PREVIOUSLY.

/

/ NOTE:  THE ORDER OF ENTRIES IN THIS TABLE MUST NOT

/        CHANGE, UNLESS CHANGES ARE MADE TO ALL PROGRAMS

/        WHICH REFERENCE IT VIA BATWD.  THIS IS KNOWN TO

/        INCLUDE ...OPR, BUT MAY ALSO INCLUDE MANY OTHER

/        TASKS, ESPECIALLY THOSE WHICH INTERACT WITH

/        BATCH IN ANY WAY.

/

 

 

BCV=.

 

 

/ SCHEDULING PARAMETERS (SET BY OPR):

 

WFACTR	0			/ WAIT TIME MULTIPLIER.

 

TFACTR	10			/ TIME ESTIMATE MULTIPLIER.

 

CFACTR	1			/ JOB CLASS MULTIPLIER.

 

OPON	1			/ OPERATOR ON DUTY FLAG.

				/ 1 ==> OPERATOR ON DUTY.

				/ 0 ==> OPERATOR OFF DUTY.

 

WAIMAX	74			/ MAXIMUM ALLOWABLE WAIT TIME.

				/ (DEFAULT = 60. MINUTES)

 

TIMMAX	1777			/ MAXIMUM ALLOWABLE RUN TIME.

				/ (DEFAUTL = 1023. MINUTES)

 

CLSMIN	0			/ MINIMUM ALLOWABLE JOB CLASS.

 

DEFTIM	DFTIME			/ DEFAULT JOB TIME LIMIT.

 

 

/ PRIMARY JOB QUEUE NODE IMAGE FOR CURRENT JOB:

 

JBNODE=JBNAM1-2			/ DOESN'T INCLUDE POINTERS.

 

JBNAM1	0			/ JOB NAME AS TWO .SIXBT WORDS.

JBNAM2	0

 

	INDVU			/ POINTER TO SECONDARY JOB NODE

 

JBID	0			/ JOB ID OR SEQUENCE NUMBER.

 

JBFLGS	0			/ JOB FLAGS WORD.

 

JBPARM	0			/ JOB PARAMETERS.

 

JBDATE	0			/ DATE OF JOB SUBMITTAL.

 

JBSSM	0			/ TIME OF JOB SUBMITTAL.

 

 

/ SECONDARY JOB QUEUE NODE IMAGE FOR CURRENT JOB:

 

INDVU	0			/ INPUT DEVICE AND UNIT.

 

INUFD	0			/ INPUT UFD.

 

LSTDVU	0			/ LISTING DEVICE AND UNIT.

 

LSTUFD	0			/ LISTING UFD.

 

LGNDVU	0			/ LOGIN DEVICE AND UNIT.

 

LGNUFD	0			/ LOGIN UFD.

 

	0			/ RESERVED.

	0			/ RESERVED.

	0			/ RESERVED.

	0			/ RESERVED.

 

 

/ OTHER LOCATIONS IN BATCH CONTROL VECTOR:

 

TLEACT	3			/ ACTION TO TAKE ON TIME

				/ ESTIMATE EXCEEDED.

				/ 1 ==> ABORT JOB.

				/ 2 ==> STOP JOB.

				/ 3 ==> KILL JOB.

				/ 4 ==> REPORT.

				/ 5 ==> IGNORE.

 

TIMLIM	0			/ CURRENT JOB FILE TIME LIMIT.

				/ NEGATIVE OF THE MAXIMUM

				/ SECONDS ALLOWED.

 

JOBFND	0			/ JOB FOUND & EXECUTING FLAG.

				/ 0 => NO JOB BEING EXECUTED.

				/	(I.E., CURRENT JOB NODE

				/	IMAGE IS INVALID).

				/ 1 => JOB BEING EXECUTED, NOT

				/	YET LOGGED IN TO TDV.

				/ 2 => LOGGED IN TO TDV, JOB

				/	START-UP SEQUENCE IN

				/	PROGRESS.

				/ 3 => JOB IS RUNNING.

				/ 4 => BATCH IS SCANNING TO

				/	$ERR CARD (JOB HAS

				/	BEEN KILLED).

 

JOBERR	0			/ JOB ERROR FLAGS WORD.  SEE

				/ COMMENTS AT GLOBAL DEFINITION

 

EXJOB	1			/ BATCH PAUSE/RUN/EXIT SWITCH.

				/ 0 ==> EXECUTE JOBS.

				/ +1 ==> PAUSE AT END OF JOB.

				/ -1 ==> EXIT AT END OF JOB.

 

PAUSW	0			/ $PAUSE IN PROGRESS FLAG.

				/ 0 ==> NORMAL OPERATION.

				/ 1 ==> $PAUSE IN PROGRESS,

				/	WAITING FOR OPERATOR

				/	PROCEED.

	.TITLE CPB'S AND I/O RELATED LOCATIONS

 

 

 

 

/

/ CPB'S AND LOCATIONS PERTAINING TO JOB FILE INPUT

/ DEVICE (JOBLUN):

/

 

IN.CPB	2600			/ CPB TO READ A LINE FROM

	IN.EV			/ THE INPUT DEVICE.

IN.LUN	JOBLUN

	2			/ MODE = IOPS ASCII.

IN.BFR	BFR1			/ INPUT BUFFER POINTER.

	LINLEN*2

 

IN.EV	1			/ EVENT VARIABLE USED BY READ.

 

 

IN.HINF	3600			/ CPB TO ISSUE HINF TO INPUT

	TRGGR			/ DEVICE, SET TRIGGER EV WHEN

	JOBLUN			/ IT COMPLETES.

 

 

 

/

/ CPB'S WHICH REFER TO LISTING OUTPUT DEVICE (LSTLUN):

/

 

LP.BFR	BFR2			/ LISTING BUFFER POINTER.

 

 

LP.CPB	2700			/ CPB TO PRINT A LINE ON

	LP.EV			/ LISTING DEVICE.

LP.LUN	LSTLUN

LP.MOD	2			/ MODE = IOPS ASCII (USUALLY).

	0			/ BUFFER POINTER.

LP.LEN	LINLEN*2

 

LP.EV	1			/ EVENT VARIABLE FOR LP.CPB.

 

 

LP.HINF	3600			/ CPB TO ISSUE HINF TO LISTING

	TRGGR			/ DEVICE, SET TRIGGER EV WHEN

	LSTLUN			/ IT COMPLETES.

 

 

 

/

/ CPB'S WHICH REFERENCE OPERATOR TTY (OPRLUN):

/

 

TT.CPB	2700			/ CPB TO PRINT A LINE ON THE

	TT.EV			/ OPERATOR'S TTY -- THE LINE

TT.LUN	OPRLUN			/ BUFFER IS ALWAYS THE SAME

	2			/ AS THE ONE USED BY LP.CPB.

	0			/ BUFFER POINTER.

 

TT.EV	1			/ EVENT VARIABLE USED ABOVE.

 

 

TT.HINF	3600			/ CPB TO ISSUE HINF TO OPERATOR

	TRGGR			/ TTY, SET TRIGGER EV WHEN IT

	OPRLUN			/ COMPLETES.

 

 

 

/

/ CPB TO SET TRGGR IN ONE MINUTE:

/

 

MRKTIM	13

	TRGGR

	1			/ INTERVAL = 1 MINUTE

	3			/ UNITS = MINUTES.

	.TITLE MISCELLANEOUS LOCATIONS

 

 

 

 

/

/ TRIGGER EVENT VARIABLE AND WAITFOR CPB WHICH REFERS TO IT.

/

 

TRGGR	0			/ BATCH'S TRIGGER EVENT

				/ VARIABLE.

 

WAITFR	20			/ WAITFOR CPB TO WAIT FOR THE

	TRGGR			/ TRIGGER EVENT VARIABLE TO

				/ BE SET.

 

 

 

/

/ THE FOLLOWING LOCATIONS ARE SET UP BY THE BDRES

/ INITIALIZATION CODE.

/

 

PDVLND	-1			/ ADDRESS OF BATCH'S PDVL NODE.

 

TTYBIT	0			/ BIT MASK FOR BATCH'S TERMINAL

				/ NUMBER WITHIN LOCATIONS

				/ MA.CT, MA.CY, ETC.

 

TTYOFST	-1			/ OFFSET FROM BASE OF TDV'S

				/ CONTROL AND STATUS TABLE

				/ (ADDRESS IN MA.CST) TO

				/ BATCH'S ENTRY IN UCA ADDRESS

				/ TABLE (TTY.UC).

 

 

 

/

/ LOCATIONS IN WHICH TO SAVE EVENT VARIABLE VALUES PERTINENT

/ TO SPECIFIC ERRORS FLAGGED IN JOBERR.  THESE EVENT VARIABLE

/ VALUES ARE PASSED TO END... (THE END-OF-JOB PROCESSOR).

/

 

SK.EV	0			/ JOB COMMAND INPUT FILE SEEK

				/ EV VALUE. (JE.SK ERROR)

 

NTR.EV	0			/ LISTING OUTPUT FILE ENTER EV

				/ VALUE.  (JE.NTR ERROR)

 

WRT.EV	0			/ LISTING OUTPUT FILE WRITE EV

				/ VALUE.  (JE.WRT ERROR)

 

 

 

/

/ LOCATIONS WHICH DEFINE DEVICE/UFD ON WHICH ACCOUNTING

/ FILE RESIDES.  LOCATION ACTDEV IS SET UP BY BDRES

/ INITIALIZATION CODE.

/

 

ACTDEV	0			/ ACCOUNTING FILE DEVICE.

 

ACTUFD	ACCTUFD			/ ACCOUNTING FILE UFD.

 

 

 

/

/ LOCATIONS WHICH MAINTAIN ACCOUNTING INFORMATION ABOUT

/ THE CURRENT JOB FILE AND/OR THE CURRENT JOB WITHIN THE

/ CURRENT JOB FILE.

/

 

RUNTIM	0			/ LOCATION WHICH ACCUMULATES

				/ THE RUN TIME (SECONDS)

				/ (CLOCK OR REAL TIME MINUS

				/ PARTITION WAIT TIME) FOR

				/ ALL JOBS IN THE CURRENT

				/ JOB FILE.

 

JOBNUM	0			/ LOCATION CONTAINING THE

				/ NUMBER OF THE CURRENT JOB

				/ WITHIN THE CURRENT JOB

				/ FILE.

 

 

 

/

/ DEFINE LITERALS HERE SO THEY WON'T BE OVERWRITTEN.

/

 

	.LTORG

	.TITLE TEXT BUFFERS (OVERLAYED BY INITIALIZATION CODE)

 

 

 

 

/

/ DEFINE START OF TEXT BUFFERS, WHICH WILL ALSO BE THE

/ START OF THE INITIALIZATION CODE.  ALL BUFFERS AFTER

/ THIS POINT WILL BE OVERLAYED BY THE BDRES INITIALIZATION

/ CODE.  WHEN THE BUFFERS ARE SET UP (BY VARIOUS OVERLAYS),

/ THEY WILL, IN TURN, OVERWRITE THE INITIALIZATION CODE.

/

 

INIT=.

 

 

 

/

/ ALL BUFFERS ARE DEFINED WITH A STATEMENT OF THE FORM:

/

/	.BLOCK N+1+4/5*2+2

/

/ "N" IS THE NUMBER OF CHARACTERS ALLOWED, EXCLUDING LINE

/ TERMINATOR (CARRAIGE RETURN OR ALT MODE).

/

/ "+1" ALLOCATES ROOM FOR THE LINE TERMINATOR.

/

/ "+4/5" ROUNDS THE TOTAL NUMBER OF CHARACTERS UP TO THE

/ TOTAL NUMBER OF WORD PAIRS.

/

/ "*2" CONVERTS THE NUMBER OF WORD PAIRS TO THE NUMBER

/ OF WORDS.

/

/ "+2" ALLOCATES ROOM FOR THE LINE BUFFER HEADER.

/

 

 

 

/

/ DEFINE DYNAMIC TEXT BUFFERS.  LOCATION IN.BFR ALWAYS

/ POINTS TO ONE OF THESE BUFFERS, USED TO READ INPUT LINES.

/ LOCATION LP.BFR ALWAYS POINTS TO THE OTHER OF THESE

/ BUFFERS, USED TO ECHO LINES ON THE LISTING DEVICE.

/ LOCATION TT.BFR ALWAYS POINTS TO THE SAME BUFFER AS

/ DOES LP.BFR.

/

 

BFR1	.BLOCK LINLEN*2

BFR2	.BLOCK LINLEN*2

 

 

 

/

/ DEFINE TEXT BUFFERS TO HOLD ASSIGN MESSAGES.  THESE

/ MESSAGES ARE SET UP BY BDOPEN.

/

/ FOR MORE INFORMATION SEE THAT OVERLAY.

/

 

ASSLP	.BLOCK 16+1+4/5*2+2

 

ASS4OPR	.BLOCK 12+1+4/5*2+2

 

ASS13ACCT	.BLOCK 21+1+4/5*2+2

 

 

 

/

/ DEFINE TEXT BUFFER TO HOLD INFO. FROM JOB QUEUE NODE:

/

 

QJBINF	.BLOCK 111+1+4/5*2+2

 

 

 

/

/ DEFINE TEXT BUFFER TO HOLD LOGIN LINE:

/

 

LGNMSG	.BLOCK 11+1+4/5*2+2

 

 

 

/

/ DEFINE TEXT BUFFER TO HOLD SOME JOB ACCOUNTING INFO.:

/

 

BEGMSG	.BLOCK 30+1+4/5*2+2

	.TITLE BDRES ENTRY POINT & INITIALIZAION CODE

 

 

 

 

/

/ THIS CODE IS EXECUTED ONCE ONLY, THEN OVERLAYED WITH

/ TEXT BUFFERS.

/

 

	.LOC INIT		/ OVERWRITE TEXT BUFFERS.

 

IN	LAC* (TTYNUM)		/ PICK UP BATCH'S "TERMINAL # "

	.DEBUG <"BDRES:INIT -- BATCH TTY NUMBER = ">,-1,40

	AAC TTY.UC		/ FROM SCOM, AND CALCULATE

	DAC TTYOFST		/ OFFSET INTO TDV'S CONTROL AND

				/ STATUS TABLE OF OUR UCA

				/ ENTRY (USED AS LOGIN STATUS

				/ INDICATOR AND FOR TIMEOUTS).

	TAD (LRS-TTY.UC)	/ ALSO SET UP LOCATION TTYBIT

	DAC TTYBIT		/ TO BE APPROPRIATE BIT MASK

	LAC (400000)		/ INTO LOCATIONS MA.CT, MA.CY,

	CLL			/ AND BT.USR.

	XCT TTYBIT

	DAC TTYBIT

/

	LAC (PDVL)		/ SEARCH PDVL FOR OUR ENTRY,

	DAC* (R1)		/ AND INITIALIZE LOCATION

	LAC (BDNAME)		/ PDVLND WITH THE ADDRESS OF

	DAC* (R2)		/ OUR PDVL NODE.

	JMS* (SNAM)

	  JMP IN.A		/ IF NOT FOUND, FATAL ERROR.

	DAC PDVLND

	.DEBUG <"BDRES:INIT -- PDVL NODE ADDRESS = ">,-1,20

/

	LAC* (LUTP1)		/ VERIFY INPUT AND LISTING

	AAC -1			/ LUNS ARE ASSIGNED TO "NONE".

	PAX			/ IF EITHER IS NOT, DECLARE

	LACIX IN.LUN		/ APPROPRIATE BATCH SYSTEM

	SZA			/ ERROR.

	JMP IN.B		/ JMP IF INPUT LUN ASSIGNED.

	LACIX LP.LUN

	SZA

	JMP IN.C		/ JMP IF LISTING LUN ASSIGNED.

	LACIX TT.LUN		/ VERIFY OPERATOR TTY LUN IS

	SNA			/ ASSIGNED TO SOMETHING, ELSE

	JMP IN.D		/ DECLARE BATCH SYSTEM ERROR.

/

	LAC (BCV)		/ SET UP POINTER TO BATCH

	DAC* (BATWD)		/ CONTROL VECTOR.

/

	.IFDEF ACCTDEV

 

	LAC (ACCTDEV)		/ GET ACCOUNTING DEVICE NAME

				/ IN AC.

	.ENDC

	.IFUND ACCTDEV

 

	LAC* (SYSDSK)		/ FETCH SYSTEM DEVICE CODE,

	SAD (2)			/ THEN CONVERT TO .SIXBT TO

	LAC (220600)		/ USE AS ACCOUNTING DEVICE

	SAD (3)			/ NAME.

	LAC (222000)

	SAD (24)

	LAC (221300)

 

	.ENDC

 

	DAC ACTDEV		/ SET UP ACCOUNTING FILE

				/ DEVICE NAME.

/

	JMS* BDSLCT		/ DONE WITH INITIALIZATION --

				/ GO SELECT A JOB TO EXECUTE.

 

 

/ COME HERE IF BATCH'S PDVL NODE ISN'T FOUND.  THIS IS

/ A SYSTEM ERROR.  WE MUST CLEAR LOCATION PDVLND TO

/ INDICATE TO BDABRT THAT BATCH'S PDVL NODE HAS NOT BEEN

/ FOUND, AND THEREFORE THE I/O REQUEST QUEUE CANNOT BE

/ FLUSHED.

 

IN.A	DZM PDVLND

	LAW -101

	JMS* BDABRT

 

 

/ COME HERE IF INPUT LUN IS NOT ASSIGNED TO "NONE".

 

IN.B	LAW -102

	JMS* BDABRT

 

 

/ COME HERE IF LISTING LUN IS NOT ASSIGNED TO "NONE".

 

IN.C	LAW -103

	JMS* BDABRT

 

 

/ COME HERE IF OPERATOR TTY LUN IS ASSIGNED TO "NONE".

/ (IT SHOULD BE ASSIGNED TO A TTY, BUT WE DON'T CHECK FOR

/ THAT).

 

IN.D	LAW -104

	JMS* BDABRT

 

 

/ NAME OF BATCH HANDLER FOR SEARCHING PDVL

 

BDNAME	.SIXBT "BD@@@@"

 

 

 

	.LTORG

 

 

 

	.END IN