IDENT 1MA,MTA
PERIPH
BASE MIXED
SST
*COMMENT 1MA - MONITOR AUXILIARY PROCESSOR.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
TITLE 1MA - MONITOR AUXILIARY PROCESSOR.
SPACE 4,10
***** 1MA - MONITOR AUXILIARY PROCESSOR.
* G. R. MANSFIELD. 70/08/04.
* A. J. KOMOR. 76/03/15.
SPACE 4,10
*** *1MA* IS CALLED BY THE SYSTEM MONITOR TO PERFORM
* FUNCTIONS WHICH CAN NOT BE PROCESSED IMMEDIATELY BY THE
* MONITOR.
SPACE 4,10
*** CALL.
*
*
*T IR 18/ *1MA*,1/,5/ CP,12/ CODE,24/ ARG
* CP CONTROL POINT NUMBER
* CODE FUNCTION CODE
* 0 = REQUEST STORAGE
* 1 = DAYFILE MESSAGE
* 2 = SCP FUNCTION ON UCP
* 3 = FILE SWITCHING FUNCTION.
* 4 = EXIT FROM SCP STATUS
* 5 = EJT SYSTEM REQUEST
* 6 = PROCESS CLOCK UPDATE.
* 7 = LOG SOFTWARE ERROR.
* 10 = LOAD CPP RESIDENT
* 11 = LOAD OVERLAY FOR CPP.
* 12 = IDLE CPP
* ARG ARGUMENT(S)
SPACE 4,10
*** DAYFILE MESSAGES.
*
*
* * FL REQUEST BEYOND MFL (CM).* = CM FL REQUEST EXCEEDS MFL.
*
* * FL REQUEST BEYOND MFL (EXTENDED MEMORY).* = EXTENDED MEMORY
* FL REQUEST EXCEEDS MFL.
*
* * MFL LESS THAN EXTENDED MEMORY MINIMUM CM FL.* = A REQUEST
* FOR EXTENDED MEMORY HAS BEEN MADE WHILE AN MFL OF LESS THAN
* *MCMX* IS IN EFFECT.
*
* * INCORRECT COMMON MEMORY MANAGER REQUEST.* = A NON CMM TYPE
* MEMORY REQUEST WAS MADE WHILE THE JOB STEP WAS IN CMM MODE.
*
* * INCORRECT REQUEST.* = PARAMETER ADDRESS OUTSIDE JOB FL.
*
* * USER ACCESS NOT VALID.* = UCP NOT QUALIFIED TO ACCESS SCP.
SPACE 4,10
*** ACCOUNT DAYFILE MESSAGES.
*
*
* *ARUN, USERNAME, FAMILYNAME, TERMINALNAME.* = RECOVERY OF
* AN INTERACTIVE JOB WITH A USER NAME OF USERNAME, A FAMILY
* OF FAMILYNAME, AND A TERMINAL NAME OF TERMINALNAME.
*
* *ASTD, USERNAME, FAMILYNAME.* = INTERACTIVE JOB WITH USER
* NAME USERNAME AND FAMILY FAMILYNAME WAS SUSPENDED DUE TO A
* USER DETACH.
*
* *ASTH, USERNAME, FAMILYNAME.* = INTERACTIVE JOB WITH USER
* NAME USERNAME AND FAMILY FAMILYNAME WAS SUSPENDED DUE TO A
* LINE DISCONNECT.
*
* *ASTP, USERNAME, FAMILYNAME.* = INTERACTIVE JOB WITH USER
* NAME USERNAME AND FAMILY FAMILYNAME WAS SUSPENDED DUE TO A
* PROGRAM REQUEST.
*
* *ASTR, USERNAME, FAMILYNAME.* = INTERACTIVE JOB WITH USER
* NAME USERNAME AND FAMILY FAMILYNAME WAS SUSPENDED DUE TO THE
* RECOVERY OF THE INTERACTIVE SUBSYSTEM.
*
* *ASTT, USERNAME, FAMILYNAME.* = INTERACTIVE JOB WITH USER
* USERNAME AND FAMILY FAMILYNAME WAS SUSPENDED DUE TO A
* SESSION TIMEOUT.
SPACE 4,10
*** OPERATOR MESSAGES.
*
*
* *WAITING FOR STORAGE (CM).* = JOB IS WAITING FOR ADDITIONAL
* CENTRAL MEMORY TO BE MADE AVAILABLE.
*
* *WAITING FOR STORAGE (EM).* = JOB IS WAITING FOR
* ADDITIONAL EXTENDED CORE STORAGE TO BE MADE AVAILABLE.
*
* * CPP NOT RESPONDING* = A CPP HAS NOT BEGUN TO INPUT *PPR*
* FROM CHANNEL 15 DURING A DEADSTART OPERATION.
*
* * LAST BYTE NOT TAKEN BY CPP* = THE LAST BYTE OF *PPR* HAS
* BEEN INPUTTED BY THE CPP BEING DEADSTARTED.
*
* * CHANNEL 15 PARITY ERROR* = DURING CPP DEADSTART, A PARITY
* ERROR WAS ENCOUNTERED ON CHANNEL 15.
*
* * PPR PRESET TIMEOUT* = AFTER BEING LOADED INTO A DEADSTARTED
* CPP, *PPR* HUNG IN ITS PRESET CODE.
SPACE 4,10
*** ERROR LOG MESSAGE.
*
* * PPN P1234 SYSTEM ERROR.* = A PP WITH THE NAME OF PPN
* DETECTED A SYSTEM ERROR AT ADDRESS 1234 WITHIN THE PP.
* THE ADDRESS IS NOT VALID IF IT IS ZERO.
SPACE 4,10
*** HANG CONDITIONS.
*
*
* 1. *1MA* IS CALLED WITH AN INCORRECT FUNCTION CODE.
* 2. EJT REQUEST MADE WITH INCORRECT FUNCTION CODE.
SPACE 4,10
** DIRECT LOCATION ASSIGNMENTS.
FN EQU 20 - 24 FNT ENTRY
FS EQU 25 - 31 FST ENTRY
SP EQU 32 - 36 SUBSYSTEM PARAMETER WORD 1
SQ EQU 37 - 43 JOB IDENTIFIER
SF EQU 44 SUBFUNCTION CODE FOR FUNCTION 0
RC EQU 44 REPLY CODE FOR FUNCTION 3
OT EQU 44 ORIGIN TYPE
EF EQU 46 ERROR FLAG
FA EQU 57 FNT ORDINAL
CN EQU 60 - 64 SCRATCH
SC EQU 67 SCP CONNECTION ACTIVITY, SERVICE CLASS
W3 EQU 15 - 21 PARAMETER BLOCK
W4 EQU 22 - 26
W5 EQU W4
TN EQU W5+1 TERMINAL NUMBER
W0 EQU 27 - 33
W1 EQU 34 - 40
W2 EQU 41 - 45
EJ EQU 46 - 47 EJT ENTRY ADDRESS
TT EQU EJ TERMINAL TABLE ADDRESS
TA EQU 57 INTERACTIVE SUBSYSTEM *RA*
JS EQU 57 JOB STATUS
EL EQU 57 ENTRY LENGTH
SPACE 4,10
** CONSTANTS.
DETI EQU 1 DETACH ALLOWED IF INVOLUNTARY
EJWD MAX JSNE,SCHE,SCLE HIGHEST WORD NEEDED FROM EJT
SPACE 4,10
** COMMON DECKS.
*CALL COMPMAC
*CALL COMSACC
*CALL COMSDFS
*CALL COMSEVT
QUAL DFT
*CALL COMSDFT
QUAL *
*CALL COMSDST
QUAL IOU
*CALL COMSIOU
QUAL *
* UNQUALIFIED *COMSIOU* SYMBOLS.
MR EQU /IOU/MR
MX EQU /IOU/MX
MXDM EQU /IOU/MXDM
MXPT EQU /IOU/MXPT
*CALL COMSEJT
*CALL COMSJCE
*CALL COMSMSC
*CALL COMSMTR
*CALL COMSREM
*CALL COMSSSJ
*CALL COMSMSP
*CALL COMSJRO
*CALL COMSPIM
*CALL COMSSSE
*CALL COMSCPS
*CALL COMSSCP
*CALL COMSSRU
*CALL COMSSSD
*CALL COMSZOL
SPACE 4,10
TITLE MACRO DEFINITIONS.
ABORT SPACE 4,10
** ABORT - ERROR PROCESSING MACRO.
*
* ABORT ADDR
*
* ADDR = FWA OF ERROR MESSAGE FOR DAYFILE.
*
* CALLS ERR.
PURGMAC ABORT
ABORT MACRO A
MACREF ABORT
LDC A
LJM ERR PROCESS ERROR
ABORT ENDM
SPACE 4,10
** OVERLAY CONTROL.
*
* THIS FEATURE IS INCLUDED FOR FUTURE MODULARITY.
.N SET 0
OVLB MICRO 1,, 2M BASE OVERLAY NAME
OVERLAY SPACE 4,10
** OVERLAY - GENERATE OVERLAY CONSTANTS.
*
* OVERLAY (TEXT),LADDR.
*
* ENTRY *TEXT* = TEXT OF SUBTITLES.
* *LADDR* = LOAD ADDRESS FOR OVERLAY, DEFAULT E1MA.
PURGMAC OVERLAY
OVERLAY MACRO TEXT,E1MA
MACREF OVERLAY
QUAL
.N SET .N+1
.M MICRO .N,1, ABCDFGHIJKLM
.O MICRO 1,3, "OVLB"".M"
QUAL ".O"
TTL 1MA/".O" - TEXT
TITLE
IDENT ".O",E1MA TEXT
*COMMENT 1MA - TEXT
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
ORG E1MA
ENDM
SCLASS SPACE 4,15
** SCLASS - DEFINE SERVICE CLASS TABLE.
*
* SCLASS NM,MN,DF,ST,TX
*
* ENTRY *NM* = SERVICE CLASS NAME.
* *MN* = TWO CHARACTER MNEMONIC.
* *DF* = DAYFILE MESSAGE CHARACTER.
* *ST* = SHORT TEXT FOR *QFTLIST*.
* *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE.
*
* NOTE - THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF
* THIS MACRO.
PURGMAC SCLASS
SCLASS MACRO NM,MN,DF,ST,TX
.A IFC NE,$NM$SSSC$
.SCLVSP RMT
INDEX NM,MN_MK TX
.SCLVSP RMT
.A ENDIF
SCLASS ENDM
SCL$ EQU 0 ONLY PROCESS CLASSES WITH JCB-S
*CALL COMSSCD
TABLE SPACE 4,10
** TABLE - GENERATE OVERLAY TABLE.
*
* GENERATES 2-BYTE TABLE ENTRIES IN THE FORMAT
*
*T 12/ OVL,12/ ADDR
*
* OVL = LAST CHARACTER OF OVERLAY TO BE LOADED.
* ADDR = ADDRESS OF FUNCTION PROCESSOR IN THE OVERLAY.
PURGMAC TABLE
MACRO TABLE,NAME,OFFSET,ADDR
LOCAL MC,TAG1,TAG2,TAG3
TAG1 IFC NE,$NAME$$ SET *NAME* TO BEGINNING OF TABLE
NAME BSS 0
.2 SET NAME
TAG1 ELSE
ORG .2+OFFSET*2-2
TAG2 IFC NE,$ADDR$$ IF ACTUAL TABLE ENTRY
MC MICRO 1,1, ADDR
IFC NE,$"MC"$/$,1
ERR TABLE ADDRESSES MUST BE QUALIFIED.
MC MICRO 1,2, ADDR
TAG3 IFC EQ,$"MC"$//$ IF NO OVERLAY TO LOAD
CON 0,ADDR
TAG3 ELSE STORE LAST CHARACTER OF OVERLAY NAME
MC MICRO 4,1, ADDR
CON 1R_"MC",ADDR
TAG3 ENDIF
TAG2 ENDIF
TAG1 ENDIF
ENDM
TITLE MTA - MAIN PROGRAM.
MTA SPACE 4,10
** MTA - MAIN PROGRAM.
ORG PPFW
MTA LDD IR+2 CHECK FUNCTION
SBN TFCNL
MJN MTA1 IF LEGAL REQUEST
LDN 0
RJM CHG CONDITIONALLY HANG PP
LJM DPP DROP PP
MTA1 RJM IFP
LDD IR+3
LPN 37
SHN 14
LMD IR+4
STM SRAB+1
SHN -6
STM SRAA+1
SHN -6
RAM SRAB
LDM TFCN,IR+2 SET PROCESSOR
STD T1
LMC 4000
ZJN MTA2 IF OVERLAY LOAD REQUIRED
LJM 0,T1 ENTER PROCESSOR
MTA2 LDN MESL READ MESSAGE DATA FROM MESSAGE BUFFER
STD T1
LDD MP+3 ASSEMBLE BUFFER ADDRESS
SHN 14
LMD MP+4
ADN 1
CRD SP
ADN 1 READ JOB IDENTIFIER
CRD SQ
CRM BUF,T1 READ REST OF MESSAGE BUFFER
LDN ZERL CLEAR BUFFER INTERLOCK
CRD CN
LDD MP+3 ASSEMBLE BUFFER ADDRESS
SHN 14
LMD MP+4
CWD CN
EXECUTE 2MA
LDN 0
RJM CHG CONDITIONALLY HANG PP
LJM DPP DROP PP
CHG SPACE 4,10
** CHG - CONDITIONALLY HANG PP.
*
* ENTRY (A) = ERROR FLAG TO SET.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
CHG SUBR ENTRY/EXIT
STD CM+2 SET ERROR FLAG
LDM CHG P-ADDRESS
STD CM+1
MONITOR CHGM CONDITIONALLY HANG PP
UJN CHGX RETURN
ERR SPACE 4,10
** ERR - ERROR PROCESSOR.
*
* ENTRY (A) = FWA OF ERROR MESSAGE FOR DAYFILE.
*
* EXIT DAYFILE MESSAGE ISSUED.
* CONTROL POINT ABORTED.
*
* CALLS DFM.
*
* MACROS MONITOR.
ERR RJM DFM
MONITOR ABTM ABORT JOB
ERR1 LJM PPR EXIT TO PP RESIDENT
TITLE SUBROUTINES.
CAA SPACE 4,10
** CAA - CALCULATE ABSOLUTE ADDRESS.
*
* ENTRY (IR+3 - IR+4) = RELATIVE ADDRESS.
*
* EXIT (A) = ABSOLUTE ADDRESS.
CAA SUBR ENTRY/EXIT
LDD IR+3 CALCULATE ABSOLUTE ADDRESS
LPN 37
SHN 6
ADD RA
SHN 6
ADD IR+4
UJN CAAX RETURN
RCL SPACE 4,10
** RCL - ENTER PP RECALL.
* ENTRY SET TO RECALL FOR 250 MILLISECONDS.
*
* ENTRY (IR - IR+4) = RECALL PARAMETERS.
* (SF) = SUBFUNCTION.
* (A) = RECALL STACK REASON CODE.
*
* USES CM - CM+4, CN - CN+4.
*
* MACROS MONITOR.
RCL SHN 6 SAVE RECALL STACK REASON CODE
STD CM
LDN ZERL
CRD CM+1
LDD CP CHECK FOR *ORET*
ADK STSW
CRD CN
LDD CN+1
LMN ORET
ZJN DPP IF SET, DROP PP
LDD SF
ZJN RCL1 IF RFL REQUEST
LDD HN RESTORE SUBFUNCTION
RAD IR+3
RCL1 LDD MA STORE PP CALL IN MESSAGE BUFFER
CWD IR
ADN 1 WRITE RECALL STACK REASON CODE
CWD CM
LDN PTMF REQUEST TIMED RECALL
STD CM+1
LDC 250D SET RECALL TIME
STD CM+4
MONITOR RECM ENTER DEFAULT TIMED RECALL
UJN DPP1 EXIT
SRA SPACE 4,10
** SRA - SET REQUEST ADDRESS.
*
* EXIT (A) = ABSOLUTE ADDRESS OF REQUEST WORD.
* (A) = 0 IF ADDRESS OUTSIDE USER-S FL.
SRA1 LDN 0 INDICATE INCORRECT ADDRESS
SRA SUBR ENTRY/EXIT
SRAA LDC * (REQUEST ADDRESS/100)
SBD FL
PJN SRA1 IF ADDRESS OUTSIDE FL
LDD RA
SHN 6
SRAB ADC * (REQUEST ADDRESS)
UJN SRAX RETURN
DPP SPACE 4,10
** DPP - DROP PP.
*
* USES CM+1 - CM+2.
*
* MACROS MONITOR.
DPP MONITOR DPPM DROP PPU
DPP1 LJM PPR ENTER PP RESIDENT
DPP2 LDN 2 DECREMENT DAYFILE MESSAGE LIMIT
STD CM+1
LDN 0
STD CM+2
LDD MA
CWM DPPA,CM+1
MONITOR UADM UPDATE ACCOUNTING
UJN DPP1 UPDATE ACCOUNTING AND DROP PPU
* MESSAGE BUFFER STRUCTURE FOR UADM FORMAT.
DPPA CON CDOS
CON ACLW
CON 36D*100+12D
CON 0,0
CON AISS SUBFUNCTION
CON IOAW CP AREA WORD TO UPDATE
CON 40D*100+20D MS ACCUMULATOR FIELD
VFD 6/,18/IMMS INCREMENT VALUE
TFCN SPACE 4,10
** TFCN - FUNCTION CODE TABLE.
*
* ENTRY = 1 WORD.
* INDEXED BY FUNCTION CODE.
*
*T, 12/ ADDR
* ADDR ADDRESS OF FUNCTION PROCESSOR
TFCN BSS 0
LOC 0
CON RFL 0 = REQUEST STORAGE
CON DMS 1 = DAYFILE MESSAGE
CON 4000 2 = SCP FUNCTION ON UCP
CON 4000 3 = FILE SWITCHING FUNCTION
CON 4000 4 = EXIT FROM SCP STATUS
CON PER 5 = PROCESS EJT REQUEST
CON PCU 6 = PROCESS CLOCK UPDATE
CON LCE 7 = LOG SOFTWARE ERROR
CON CPP 10 = LOAD CPP RESIDENT
CON CPP 11 = LOAD OVERLAY FOR CPP
CON CPP 12 = IDLE CPP
TFCNL BSS 0 TABLE LENGTH
LOC *O
TITLE FUNCTION PROCESSORS.
PER SPACE 4,50
** FUNCTION 5.
* PROCESS EJT REQUEST.
*
* ENTRY
*T IR 18/ *1MA*,6/ AR,12/ CP,6/ 0,18/ ADDR
* AR = AUTO RECALL FLAG.
* CP = CONTROL POINT NUMBER.
* ADDR ADDRESS OF PARAMETER BLOCK.
*
*ADDR 24/ JSN,12/ FLAGS,6/ PPI,8/ ERR,9/ FCN,1/C
* 42/ NAME,6/ ERF,12/ EJTO
* 3/RES,3/JAL,6/ OT,6/ RC,18/ MSG BUF,24/ RES
* 60/ REC WD 1
* 60/ REC WD 2
* 12/ INST,12/ TN,36/ CDC RES
* 42/ TNAME, 18/ RESERVED
*
* JSN = JOB SEQUENCE NUMBER.
* FLAGS = ENEJ, BIT 0 = SELECT EJT ENTRIES BY ORIGIN TYPE.
* RTEJ - BIT 0 = SELECT EJT ENTRIES BY ORIGIN TYPE.
* BIT 1 = DEFAULT TIMEOUT (CLEAR = 0 TIMEOUT).
* PPI = PREPROCESSOR INDEX.
* ERR = ERROR RETURN (0 ON CALL).
* FCN = FUNCTION CODE.
* C = COMPLETE BIT (0 ON CALL).
* NAME = ENEJ - ENTRY POINT NAME.
* DTEJ, RCEJ, RSEJ - USER NAME.
* ERF = ERROR FLAG TO SET.
* EJTO = EXECUTING JOB TABLE ORDINAL.
* RES = RESERVED FOR CDC.
* JAL = JOB ACCESS LEVEL LIMIT (RETURNED ON *DTEJ*; 0 ON CALL).
* OT = ORIGIN TYPE.
* RC = REASON CODE.
* MSG BUF = RELATIVE ADDRESS OF BUFFER TO RETURN *MS1W*.
* REC WD 1 = RECOVERY WORD 1 (NFL WORD RC1N - SEE *PPCOM*).
* REC WD 2 = RECOVERY WORD 2 (NFL WORD RC2N - SEE *PPCOM*).
* INST = RESERVED FOR INSTALLATIONS.
* TN = TERMINAL NUMBER.
* CDC RES = RESERVED FOR CDC.
* TNAME = TERMINAL NAME (RETURNED BY *DTEJ* AND *TJEJ*;
* SPECIFIED ON CALL FOR *RCEJ*).
*
* NOTE - ANY CHANGES TO THIS PARAMETER BLOCK SHOULD ALSO
* BE DOCUMENTED IN *CPUMTR* AND *IAFEX*.
*
* CALLS CHG, DPP, EXR, SFI, FUNCTION PROCESSORS.
*
* MACROS EXECUTE.
PER BSS 0 ENTRY
LDD MP+3 ASSEMBLE BUFFER ADDRESS
SHN 14
LMD MP+4
ADN 1
CRM W0,TR
LDN ZERL CLEAR BUFFER INTERLOCK
CRD CN
LDD MP+3 ASSEMBLE BUFFER ADDRESS
SHN 14
LMD MP+4
CWD CN
LDK EJWD+1
STD EL
LDD W0+4
LPN 76
STD CN
ZJN PER2 IF NO FUNCTION CODE
SBN MXEJ*2
PJN PER2 IF INCORRECT FUNCTION CODE
LDM TEJT-1,CN SET LOAD ADDRESS
STM PERA
ZJN PER2 IF NO PROCESSOR ADDRESS
LDM TEJT-2,CN SET OVERLAY TO LOAD
ZJN PER1 IF NO OVERLAY TO LOAD
LMC 2L2M
RJM EXR LOAD OVERLAY
PER1 LJM * PROCESS EJT SYSTEM REQUEST
PERA EQU *-1
* PROCESS INCORRECT FUNCTION CODE.
PER2 LDN 0
RJM CHG CONDITIONALLY HANG PP
LDN SSER SYSTEM SOFTWARE ERROR
* UJN PERX RETURN
* EXIT FOR FUNCTION PROCESSORS.
* (A) = ERROR CODE TO PUT INTO RETURN BLOCK.
PERX BSS 0 ENTRY
SHN 12 POSITION ERROR CODE
RAD W0+4
SHN -14
RAD W0+3
AOD W0+4 SET COMPLETE BIT
RJM CAA CALCULATE ABSOLUTE ADDRESS
CWM W0,TR WRITE PARAMETER BLOCK
LDN CEIN
STD T1
LDC 0 CHECK EJTO
PERB EQU *-1 EJT ORDINAL
ZJN PER3 IF NO INTERLOCK TO CLEAR
SFA EJT
RJM SFI CLEAR INTERLOCK
PER3 LJM DPP DROP PP
TEJT SPACE 4,20
** TEJT - TABLE OF EJT REQUEST PROCESSORS.
*
*T 12/ OVL,12/ ADDR
*
* OVL = LAST LETTER OF OVERLAY TO LOAD.
* ADDR = ADDRESS OF FUNCTION PROCESSOR.
TEJT TABLE
TABLE DTEJ,/2MC/DTC DTEJ - DETACH JOB
TABLE ENEJ,//PER2 ENEJ - (PROCESSED BY CPUMTR)
TABLE FJEJ,/2MD/FTJ FJEJ - FREEZE JOB
TABLE RCEJ,/2MC/REC RCEJ - RECOVER JOB
TABLE RSEJ,/2MC/RRJ RSEJ - RESTART RECOVERED JOB
TABLE RTEJ,/2MC/RST RTEJ - RESET TIMEOUT
TABLE SAEJ,/2MD/SUB SAEJ - SET USER BREAK ERROR FLAG
TABLE TJEJ,/2MC/TRM TJEJ - TERMINATE JOB
TABLE MXEJ MAXIMUM EJT REQUEST +1
TITLE FUNCTION PROCESSORS.
RFL SPACE 4,25
*** FUNCTION 0.
* REQUEST STORAGE.
*
* ENTRY
*T ARG 6/SUB,18/FL
*
* SUB = 0 RFL REQUEST (NO STATUS WORD).
* = 1 IF CM, ABORT IF NOT AVAILABLE.
* = 2 IF EXTENDED MEMORY, ABORT IF NOT AVAILABLE.
* = 3 IF CM, NO ABORT IF NOT AVAILABLE.
* = 4 IF EXTENDED MEMORY, NO ABORT IF NOT AVAILABLE.
*
* FL = STORAGE REQUESTED IF SUBFUNCTION 0.
* = ADDRESS OF STATUS WORD IF NOT SUBFUNCTION 0.
*
* IF SUBFUNCTION AND FL ARE BOTH ZERO, A CMM ERROR IS BEING
* REQUESTED.
*
* USES SC, CM - CM+4, T3 - T7.
*
* CALLS CKE, CLM, RSI, SRA.
*
* MACROS EXECUTE, MONITOR.
RFL LDD IR+3 SAVE SUBFUNCTION CODE
SHN -6
STD SF
ZJN RFL3 IF RFL REQUEST
LDC -100
RAD IR+3
RJM SRA SET REQUEST WORD ADDRESS
ZJN RFL2 IF INCORRECT ADDRESS
CRD FN
LDD IR+3
SHN 21-6
MJN RFL6 IF EXTENDED MEMORY REQUEST
LDD FN+2
SCN 77
SHN 6
LMD FN+1
SHN 6
UJN RFL4 ROUND MEMORY REQUEST
RFL1 LDC =C* INCORRECT COMMON MEMORY MANAGER REQUEST.*
LJM ERR PROCESS ERROR
RFL2 LDC =C* INCORRECT REQUEST.*
LJM ERR PROCESS ERROR
RFL3 LDD IR+3
SHN 14
LMD IR+4
ZJN RFL1 IF CMM CONFLICT
RFL4 LPC 377777 MASK OUT NO REDUCE OVERRIDE
ADN 77 ROUND UP MEMORY REQUEST
MJN RFL5 IF TOO MUCH MEMORY REQUESTED
SHN -6
STD T3 SET NEW FL
RJM CKE CHECK FOR EXTENDED MEMORY ASSIGNED
LJM RFL16 CHECK FL .LE. MFL
RFL5 LJM RFL17 PROCESS ERROR
* PROCESS EXTENDED MEMORY.
RFL6 LDC -200+100 CHANGE CMM BIT TO CLEAR
RAM RFLB
LDK MEFL PRESET SHIFT INSTRUCTION
CRD CM
LDD CM+2
SHN -11
ADC SHNI+3
STM RFLA
LDD FN
ADD FN+1
ZJN RFL10 IF POSSIBLE EXTENDED MEMORY STATUS
RFL7 ADC -2*7777
NJN RFL8 IF NOT EXTENDED MEMORY MFL REQUEST
LDD FN+2
SHN -6
LMN 76
ZJN RFL9 IF EXTENDED MEMORY MFL REQUEST
LMN 77&76
NJN RFL8 IF NOT SET EXTENDED MEMORY FL TO ZERO
LDN ZERL
CRD FN-2
RFL8 LJM RFL12 PROCESS EXTENDED MEMORY STORAGE REQUEST
RFL9 LDN SSTL CHECK EXTENDED MEMORY CONTROL
CRD FS
LDN ZERL
CRD CM PRESET EXTENDED MEMORY MFL = 0
LDD FS
SHN 21-5
MJN RFL13 IF USER EXTENDED MEMORY NOT AVAILABLE
LDD CP
ADN ELCW
CRD FS
LDD FS
UJN RFL11 SET MFL(EC) IN REPLY WORD
RFL10 LDD FN+2
SHN -6
NJN RFL12 IF NOT EXTENDED MEMORY STATUS REQUEST
LDN ZERL
CRD CM
LDD CP RETURN EXTENDED MEMORY FL
ADN ECSW
CRD FS
LDD FS+4
RFL11 SHN 3
* SHN 3+UESC (ADJUST FOR BLOCKING FACTOR)
RFLA EQU *-1
STD CM+1
SHN -14
STD CM
UJN RFL13 PROCESS COMPLETION STATUS
RFL12 EXECUTE 2MB PROCESS EXTENDED MEMORY STORAGE REQUEST
* RETURN COMPLETION STATUS.
RFL13 LDD SF
ZJN RFL15 IF NO COMPETION INFORMATION REQUESTED
LDN 1 SET COMPLETION FLAG
STD CM+4
RJM SRA SET REQUEST ADDRESS
ZJN RFL14 IF INCORRECT ADDRESS
CWD CM
RFL14 LDD FN+4
LPN 14
LMN 14
NJN RFL15 IF NOT CLEAR CMM JOB STEP STATUS
LDD CP CLEAR CMM JOB STEP STATUS
ADC DBAW
CRD CM
STD T1
LDD CM
LPC 7677 (CM)
* LPC 7577 (EXTENDED MEMORY)
RFLB EQU *-1
STD CM
LDD T1
CWD CM
RFL15 LJM DPP DROP PPU
* CHECK IF FL .LE. MFL.
RFL16 LDD CP
ADN FLCW
CRD T7
LDN ZERL
CRD CM
LDD FL
STD CM+1
LDD T7
SBD T3
PJN RFL18 IF FL .LE. MFL
LDD IR+3
SHN 21-7
PJN RFL17 IF NOT *NO ABORT*
LJM RFL13 RETURN STATUS ON NO ABORT REQUESTS
RFL17 LDC =C* FL REQUEST BEYOND MFL (CM).*
LJM ERR PROCESS ERROR ABORT
* REQUEST STORAGE.
RFL18 LDD FL SAVE CURRENT FL
STD T4
ZJN RFL19 IF NO FL CURRENTLY ASSIGNED
LDD T3 REQUESTED FL
RJM RSI REQUEST STORAGE INCREASE
NJN RFL20 IF FL NOT ASSIGNED
RJM CLM CLEAR ADDITIONAL MEMORY
LJM RFL13 COMPLETE PROCESSING
RFL19 LJM RFL2 * INCORRECT REQUEST.*
* STORAGE NOT AVAILABLE.
RFL20 PJN RFL21 IF WAITING FOR REPLY FROM *1SJ*
LDD CP CHECK IF JOB ROLLABLE
ADN JCIW
CRD CM
ADK TFSW-JCIW
CRD FN
LDD CM+3 CHECK FOR *DIS* JOB
LPC 1000
ADD CM+2 CHECK FOR NON-ROLLABLE JOB
NJN RFL21 IF JOB NOT ROLLABLE
SFA EJT,FN READ *SCLE* EJT WORD
ADK SCLE
CRD FN
LDD FN
LPN 20
NJN RFL21 IF FORCED ROLLIN, JOB NOT ROLLABLE
STD CM+1 ROLLOUT CONTROL POINT
MONITOR ROCM
UJN RFL22 ENTER PP RECALL
* STORAGE AVAILABLE BUT NOT ASSIGNED.
RFL21 LDD CP SET WAITING FOR STORAGE INCREASE
ADN MS2W
CWM =C*WAITING FOR STORAGE (CM). *,TR
RFL22 LDN CFIR SET CM FL INCREASE PENDING REASON CODE
LJM RCL ENTER PP RECALL STACK
DMS SPACE 4,15
*** FUNCTION 1.
* ENTER DAYFILE MESSAGE.
*
* ENTRY
*T ARG 6/ 0,18/ MSG
* MSG ADDRESS OF MESSAGE.
*
* USES CM - CM+4, T2.
*
* CALLS DFM, SRA.
*
* NOTE THIS FUNCTION SHOULD BE USED ONLY BY SUBSYSTEMS THAT
* CANNOT GIVE UP THE CPU DURING NORMAL *MSG* PROCESSING.
DMS LDN 5 SET WORD COUNT
STD T2
RJM SRA SET REQUEST ADDRESS
ZJN DMS1 IF INCORRECT ADDRESS
CRM BUF,T2
SBN 1
SHN -6
SBD RA
SBD FL
PJN DMS1 IF INCORRECT ADDRESS
LDN 0 TERMINATE MESSAGE
STM BUF+5*5
LDC BUF
RJM DFM ISSUE DAYFILE MESSAGE
LJM DPP DROP PPU
DMS1 LDC =C* INCORRECT REQUEST.*
LJM ERR PROCESS ERROR
CPP SPACE 4,10
** FUNCTIONS 10, 11, 12.
* CPP PROCESSOR.
CPP LDD MA SAVE OVERLAY LOAD PARAMETERS
CRD CN
EXECUTE 2MH PROCESS CPP REQUEST
LJM DPP DROP PP
PCU SPACE 4,10
** FUNCTION 6.
* PROCESS CLOCK UPDATE.
PCU EXECUTE 2MF PROCESS CLOCK UPDATE
LJM DPP DROP PP
LCE SPACE 4,10
** FUNCTION 7.
* LOG SOFTWARE ERROR.
LCE EXECUTE 2MG LOG SOFTWARE ERROR
LJM DPP DROP PP
CKE SPACE 4,10
** CKE - CHECK FOR EXTENDED MEMORY ASSIGNED.
*
* ENTRY (T3) = NEW FL/100B REQUESTED.
*
* EXIT (T3) ADJUSTED IF EXTENDED MEMORY IS ASSIGNED AND
* (T3) IS .LT. MCMX.
*
* USES T3, CM - CM+4.
CKE SUBR ENTRY/EXIT
LDD CP CHECK FOR EXTENDED MEMORY ASSIGNED
ADN ECSW
CRD CM
LDD CM+4
ZJN CKEX IF NO EXTENDED MEMORY ASSIGNED
LDD T3
ADC -MCMX/100
PJN CKEX IF FL .GE. MCMX
LDC MCMX/100 SET TO MINIMUM FL
STD T3
UJN CKEX RETURN
MRER SPACE 4,10
** MRER - MAINTENANCE REGISTER ERROR HANDLER.
*
* ENTRY FATAL MAINTENANCE REGISTER ERROR.
*
* EXIT TO *ERR* VIA *ABORT* MACRO.
*
* MACROS ABORT.
MRER ABORT ERMR * 1MA - FATAL MAINTENANCE REGISTER ERROR.*
CHFL CON 0 CHANNEL RESERVED FLAG
ERMR DATA C* 1MA - FATAL MAINTENANCE REGISTER ERROR.*
CLM SPACE 4,15
** CLM - CLEAR MEMORY (CM).
*
* ENTRY (T4) = OLD FL.
*
* EXIT ADDITIONAL CM CLEARED.
* CONSOLE MESSAGE CLEARED.
* (CM+1) = CURRENT FL.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
CLM SUBR ENTRY/EXIT
LDK SSTL
CRD CM
LDD CM
SHN 21-12
PJN CLM0 IF MEMORY CLEARING ENABLED
LDD CP READ SEPW WORD FROM CP AREA
ADC SEPW
CRD CM
LDD CM CHECK ENTRY POINTS
LPN 1
NJN CLM1 IF SSM= ENTRY POINT PRESENT
CLM0 LDD FL CHECK FL CHANGE
SBD T4
MJN CLM1 IF DECREASE
ZJN CLM1 IF NO CHANGE
SHN 6
STD CM+2
SHN -14
STD CM+1
LDD HN SET RELATIVE ADDRESS OPTION
RAD CM+1
LDD T4 SET ADDRESS FOR CLEAR
SHN 6
STD CM+4
SHN -14
STD CM+3
MONITOR CSTM CLEAR ADDED FL
CLM1 LDN 0
STD CM CLEAR CONSOLE MESSAGE
STD CM+1
LDD CP
ADN MS2W
CWD CM
LDN ZERL RETURN STATUS
CRD CM
LDD FL
STD CM+1
LJM CLMX RETURN
SPACE 4,10
** COMMON DECKS.
EJT$ EQU 1 SELECT EJT PROCESSOR
IFP$ EQU 1
QFT$ EQU 1 SELECT QFT PROCESSOR
*CALL COMPGFP
*CALL COMPRSI
SFI$ EQU 1 SELECT IMMEDIATE RETURN FROM *SFI*
*CALL COMPSFI
SPACE 4,10
** BUFFER.
USE BUFFER
BUF BSS 0
SPACE 4,10
** OVERLAY ORIGIN.
E1MA EQU BUF+MESL*5+5
ERRNG BFMS-*
IFP HERE
OVERFLOW
TTL 1MA/2MA - SYSTEM CP FACILITY PROCESSOR.
TITLE
OVERLAY (SYSTEM CP FACILITY FUNCTION.),E1MA
SPACE 4,10
***** 2MA - FUNCTION PROCESSOR FOR SYSTEM CP FACILITY.
*
* *2MA* PERFORMS VARIOUS TIME CONSUMING FUNCTIONS USED
* IN THE SYSTEM CP (SCP) FACILITY.
SCP SPACE 4,30
*** SYSTEM CONTROL POINT FUNCTIONS. (SEE *CPUMTR*).
*
* ENTRY
*T ARG 6/INDX ,18/ ADDR
* INDX SUBSYSTEM INDEX OF CALLER, OR *TERM* TABLE
* MESSAGE INDEX/2 IF *CPUMTR* REQUESTING ABORT.
* ADDR ADDRESS OF FUNCTION PARAMETERS.
* ADDR = 0, IF *CPUMTR* REQUESTING ABORT.
*
* FOR *1MA* FUNCTION 2 (SCP FUNCTION ON UCP), ADDITIONAL
* INFORMATION IS TRANSFERRED FROM THE MESSAGE BUFFER.
* (SP - SP+4) = 6/ RC,12/ FP, 18/ UCPA, 18/SCPA,6/ FC
* (SQ - SQ+4) = 24/ JSEQ,24/,12/ JEJT (SF.SWPO)
* = MESSAGE (SF.REGR)
* (BUF - BUF+MESL-1) = MESSAGE (SF.REGR)
* FC FUNCTION CODES VALID FOR 1MA ARE -
* 02 SEND DAYFILE MESSAGE AND/OR ABORT USER.
* 24 SWAP OUT USER JOB.
* FP A PARAMETER MEANINGFUL TO A PARTICULAR FUNCTION.
* JEJT JOB EJT ORDINAL.
* JSEQ JOB SEQUENCE NUMBER.
* RC SYSTEM REPLY CODE - (SEE *COMSSCP*).
* SCPA A DATA ADDRESS WITHIN THE SUBSYSTEM MEMORY.
* UCPA A DATA ADDRESS WITHIN A USER JOB MEMORY.
*
* CALLS CHG, DFM, SDM, SWO, SWP, SWT, SXT.
*
* MACROS MONITOR.
SCP SUBR ENTRY
LDD IR+3 CHECK ABORT REQUESTED
LPN 77
ADD IR+4
ZJN SCP4 IF ABORT REQUESTED FROM CPUMTR
LDD IR+2
SBN 3
MJN SCP2 IF SCP FUNCTION ON UCP
ZJN SCP1 IF FILE SWITCHING FUNCTION
RJM SXT PROCESS SF.EXIT
UJN SCP3 DROP PP
SCP1 LJM SWT PROCESS FILE SWITCHING FUNCTION
SCP2 LDD SP+4 GET SCP FUNCTION ON UCP
LPN 37
LMN REGR
NJN SCP6 IF NOT ISSUE DAYFILE MESSAGE
RJM SDM SEND DAYFILE MESSAGE AND/OR ABORT USER
SCP3 LJM DPP EXIT
SCP4 LDD IR+3 GET MESSAGE INDEX/2
SHN -6+1
SCN 1
STD T4
SBN TERML
PJN SCP7 IF NOT LEGAL MESSAGE INDEX
LDM TERM,T4 GET DAYFILE MESSAGE ADDRESS
ZJN SCP5 IF NO DAYFILE MESSAGE
RJM DFM ISSUE MESSAGE TO DAYFILE
SCP5 LDM TERM+1,T4 GET ERROR FLAG
STD CM+1
MONITOR CEFM SET ERROR FLAG
UJN SCP3 EXIT
SCP6 LMN SWPO®R
NJN SCP9 IF NOT VALID SUBFUNCTION CODE
RJM SWO SWAP OUT USER JOB
UJN SCP3 EXIT
SCP7 LDK FSET SET FORCED ERROR
SCP8 RJM CHG CONDITIONALLY HANG PP
UJN SCP3 DROP PP
SCP9 LDN 0
UJN SCP8 CONDITIONALLY HANG
TERM SPACE 4,10
** TERM - TABLE OF ERROR FLAGS AND MESSAGES.
*
*T 12/ ERMA, 12/ ERFL
* ERMA ERROR MESSAGE ADDRESS
* ERFL ERROR FLAG
TERM BSS 0
LOC 0
CON 0,ITET SCP *SSCR* PARAMETERS INCORRECT
CON =C* USER ACCESS NOT VALID.*,SYET
TERML EQU *
LOC *O
TITLE SCP FUNCTION PROCESSORS.
SDM SPACE 4,10
** SDM - SEND DAYFILE MESSAGE AND/OR ABORT JOB. (SF.REGR)
*
* ENTRY (BUF - BUF+MESL-1) = MESSAGE BUFFER DATA.
*
* USES CM - CM+4, T0 - T6, BUF - BUF+5*5.
*
* CALLS DFM, SCB.
*
* MACROS MONITOR.
SDM SUBR ENTRY/EXIT
* SEND MESSAGE TO SPECIFIED DAYFILE.
LDD SP+4 CHECK MESSAGE DESIRED
SCN 77
ADD SP+3
ZJN SDM3 IF NO MESSAGE SPECIFIED
LDD SP CHECK SPECIFIED DAYFILE OPTION
LPN 77
SHN 14
ADD SP+1
SHN -6
SBN MXDF
MJN SDM2 IF VALID DAYFILE OPTION
LDN RC66 * INCORRECT DAYFILE PROCESSING FLAG.*
SDM1 RJM SCB SET COMPLETION BIT, REPLY CODE
UJN SDMX RETURN
SDM2 RAM SDMA SET DAYFILE OPTION
LDN MESL EXTRACT MESSAGE TO BE ISSUED
STD T2
LDN 0 TERMINATE MESSAGE
STM BUF+MESL*5
LDC BUF+MXDF*10000
SDMA EQU *-2 (DAYFILE OPTION)
RJM DFM
* SET ERROR FLAG ON USER JOB IF DESIRED.
SDM3 LDD SP+1 CHECK USER ABORT DESIRED
LPN 77
SHN 14
ADD SP+2
ZJN SDM1 IF NO ABORT SPECIFIED
SBN 1
STD T1
SBN TEFGL
MJN SDM5 IF VALID ERROR FLAG SPECIFIED
LDN RC65 * ATTEMPT TO SET INCORRECT ERROR FLAG.*
SDM4 UJN SDM1 SET COMPLETION BIT, REPLY CODE
SDM5 LDM TEFG,T1 SET ERROR FLAG
STD CM+1
MONITOR CEFM
LDN 0
UJN SDM4 SET COMPLETION BIT
SPACE 4,10
** TEFG - TABLE OF ERROR FLAGS.
*
* INDEXED BY VALUE SPECIFIED IN *FP* FIELD OF SF.REGR REQUEST.
TEFG BSS 0
LOC 0
CON PPET GENERAL SUBSYSTEM ERROR
CON SYET HOSTILE USER ERROR
TEFGL BSS 0
LOC *O
SWO SPACE 4,10
** SWO - SWAP OUT USER CONTROL POINT. (SF.SWPO)
*
* USES CM - CM+4.
*
* CALL CHG, SCB.
*
* MACROS MONITOR.
SWO SUBR ENTRY/EXIT
LDD CP CHECK IF JOB ROLLABLE
ADN JCIW
CRD CM
LDD CM+3 CHECK FOR *DIS* JOB
LPC 1000
ADD CM+2 CHECK FOR NON-ROLLABLE JOB
NJN SWO2 IF JOB NOT ROLLABLE
STD CM+1 ROLLOUT CONTROL POINT
MONITOR ROCM
SWO1 LDN 0 INDICATE NO ERRORS
RJM SCB SET COMPLETION BIT, NO ERRORS
UJN SWOX RETURN
SWO2 LDD MA CLEAR SCP ROLLOUT REQUESTED FLAG
CWM SWOA,ON
LDN 1
STD CM+1
STD CM+2
MONITOR UADM
LDD CM+1
ZJN SWO1 IF BIT SUCCESSFULLY CLEARED
LDN 0
RJM CHG CONDITIONALLY HANG PP
UJN SWO1 SET COMPLETION BIT AND RETURN
SWOA VFD 12/CDOS,12/STSW,6/29D,6/1
SXT SPACE 4,10
** SXT - PROCESS EXIT FROM SCP STATUS. (SF.EXIT)
*
* USES EF, SC.
*
* CALLS SCB, *0ST*.
*
* MACROS EXECUTE.
SXT SUBR ENTRY/EXIT
LDN 0 INDICATE NO ERROR FLAG
STD EF
LDN 6 INDICATE CONNECTED UCP-S FOR SF.EXIT
STD SC
EXECUTE 0ST,OSTL
RJM CAA GET *SF.EXIT* PARAMETER WORD
CRD CM
AOD CM+4 SET COMPLETE BIT
LDD CM CLEAR REPLY CODE (NO ERROR)
LPN 77
STD CM
RJM CAA
CWD CM
UJN SXTX RETURN
TITLE SUBROUTINES.
DLY SPACE 4,10
** DLY - DELAY.
*
* EXIT (A) = 0 IF OPERATOR INTERVENTION.
*
* MACROS DELAY, PAUSE.
DLY SUBR ENTRY/EXIT
PAUSE
DELAY
LDD CM+1 CHECK FOR OPERATOR OVERRIDE
LMN ORET
UJN DLYX RETURN
SCB SPACE 4,15
** SCB - SET COMPLETION BIT.
*
* SCB SETS SETS THE COMPLETION BIT FOR A PARTICULAR
* SF.XXXX FUNCTION ALONG WITH THE REPLY CODE.
*
* ENTRY (A) = REPLY CODE.
*
* EXIT (T7) = REPLY CODE.
*
* USES T1, CM - CM+4.
*
* CALLS DLY.
*
* MACROS MONITOR.
SCB SUBR ENTRY/EXIT
STD T7 SAVE ERROR STATUS
LDD IR+4 ADDRESS OF FUNCTION PARAMETER WORD
STM SCBA
LDD IR+3
LPN 77
SHN 14
ADD T7 SET ERROR STATUS IN CALL
SHN 6
STM SCBB
LDD IR+3 EXTRACT SUBSYSTEM INDEX
SHN -6
ADC LSSI
STM SCBC SUBSYSTEM QUEUE PRIORITY
SCB1 LDC *
SCBA EQU *-1 (ADDRESS OF FUNCTION REQUEST)
STD CM+4
LDC *
SCBB EQU *-1
STD CM+3 ADDRESS OF PARAMETER AND ERROR STATUS
LDC *
SCBC EQU *-1
STD CM+2 SUBSYSTEM QUEUE PRIORITY
LDN 2 FUNCTION CODE
STD CM+1
MONITOR TDAM SET REPLY CODE, COMPLETION BIT
LDD CM+1
ZJN SCB2 RETURN IF ACCEPTED
SBN 4
ZJN SCB2 RETURN IF SUBSYSTEM INACTIVE
PJN SCB3 IF INCORRECT COMPLETION ADDRESS
RJM DLY DELAY
NJN SCB1 IF NOT OPERATOR OVERRIDE
SCB2 LJM SCBX RETURN
SCB3 LDD MA SAVE SCP ORDINAL AND JOB SEQUENCE NUMBER
CWD CM
SCB4 LDD MA GET SCP ORDINAL AND JOB SEQUENCE NUMBER
CRD CM
LDC 4000+ITET SCP INCORRECT TRANSFER ADDRESS
STD CM+1
MONITOR CEFM SET ERROR ON SCP
LDD CM+1
LMN 1 CHECK FOR SCP MOVING STATUS
NJN SCB2 IF OPERATION COMPLETE OR SCP NOT FOUND
RJM DLY DELAY
ZJN SCB2 IF OPERATOR INTERVENTION
LDD T1 RESET SCP CONTROL POINT NUMBER
STD CM+2
UJN SCB4 REISSUE REQUEST
SWT TITLE FILE SWITCHING FUNCTION PROCESSOR.
SWT SPACE 4,40
*** FUNCTION 3.
* FILE SWITCHING PROCESSOR.
*
* THIS PROCESSOR IS CALLED BY *CPUMTR* TO PROCESS AN *SST*
* SYSTEM REQUEST AFTER ALL PARAMETERS HAVE BEEN VALIDATED.
*
* ENTRY
*
*T,ARG 6/0,18/ ADDR
* ADDR RELATIVE ADDRESS OF FUNCTION PARAMETERS.
*
* (SP - SP+4) = 12/ FNTR,12/ FNTS,18/ RSV,6/ FCN,11/ ST,1/ C
* (SQ - SQ+4) = 24/ JSN,24/0,12/ JEJT
* C COMPLETION BIT.
* FCN SUBFUNCTION CODE -
* CUSU = 1 CALLER UCP - SCP TO UCP SWITCH.
* CUUS = 2 CALLER UCP - UCP TO SCP SWITCH.
* CSUS = 3 CALLER SCP - UCP TO SCP SWITCH.
* CSSU = 4 CALLER SCP - SCP TO UCP SWITCH.
* FNTR FNT ORDINAL IN RECEIVER-S FNT (RETURNED PARAMETER).
* (SET TO PARTNER-S CPA BY *CPUMTR* FOR *1MA*.)
* FNTS FNT ORDINAL IN SOURCE-S FNT.
* JEJT PARTNER JOB EJT ORDINAL (FCN = 3 OR 4).
* (SET BY *CPUMTR* FOR *1MA* FOR FCN = 1 OR 2.)
* JSN JOB SEQUENCE NUMBER FOR PARTNER (FCN = 3 OR 4).
* RSV RESERVED FOR CDC.
* ST RETURN STATUS CODE -
* 00 SWITCH COMPLETED NORMALLY.
* 01 FILE BUSY.
* 02 PARTNER ROLLED OUT.
* 03 INCORRECT FILE TYPE.
* 04 PARTNER-S IDENTIFICATION NOT KNOWN.
* 05 NO SPACE IN RECEIVER-S NFL.
* 06 FILE LIMIT.
* 07 FILE *FNTS* NOT FOUND.
SWT BSS 0 ENTRY
LDN 0 INITIALIZE
STD FA
STD RC
LDN SFIN SET JOB INTERLOCK
RJM PJI
ZJN SWT1 IF INTERLOCK SET
LDN RC02 * JOB ROLLED OUT.*
STD RC
NFA SP+1,R SET UP FOR EXIT
CRD FN
ADN FSTL
CRM FS,ON
CRM FBUF,ON
LDD SP+3
LPN 1
ZJP SFP3.1 IF SF = 2 OR 4
LJM SRC SET REPLY CODE
SWT1 LDD SP+3 GET SUB FUNCTION
ZJN SWT2 IF ZERO
SBN 5
PJN SWT2 IF OUT OF RANGE
LDD SP+3
LPN 1
ZJN SFP IF SF = 2 OR 4 (SEND FILE TO PARTNER)
LJM GFP SF = 1 OR 3 (GET FILE FROM PARTNER)
SWT2 LDN 0
RJM CHG CONDITIONALLY HANG PP
LDK RC10 * INCORRECT SUBFUNCTION.*
STD RC
LJM SFP3 CLEAR JOB INTERLOCK
SFP SPACE 4,15
** SFP - SEND FILE TO PARTNER.
*
* ENTRY (SP+1) = SOURCE FNT ORDINAL.
*
* EXIT (FA) = NEW ADDRESS OF FNT.
* (RC) = REPLY CODE.
*
* USES T1, CM - CM+4.
*
* CALLS CCP, CLF, PJI, RTC, UIE.
*
* MACROS NFA.
SFP BSS 0 ENTRY
NFA SP+1,R GET FNT/FST
CRD FN
CRD CM
ADN FSTL
CRM FS,ON
CRM FBUF,ON
* CHANGE FILE TYPE.
LDD CM+4
LPN 77
ADC LIFT*100 SET *LIBRARY* FILE TYPE
STD CM+4
NFA SP+1,R
CWD CM
* CHANGE TO RECEIVER-S CP.
LDD SP SET PARTNER CP
STM CCPA
LDN 0 CHANGE TO PARTNER
RJM CCP
ZJN SFP1 IF SUCCESSFUL
STD T1 SAVE REPLY
LDN RC02 * JOB ROLLED OUT.*
STD RC
LDD T1 GET REPLY
SBN 1
NJN SFP2 IF WRONG JOB
UJN SFP3 CLEAR JOB INTERLOCK
* CREATE LOCAL FNT IN RECEIVER-S NFL.
SFP1 RJM CLF CREATE LOCAL FNT
NJN SFP2 IF FILE NOT CREATED
* WRITE FNT/FST INTO RECEIVER-S NFL.
LDM CCPB GET EJT ORDINAL OF CALLER
RJM UIE UPDATE QFT ENTRY
LDD FS+4 SET FST NOT BUSY
SCN 1
ADN 1
STD FS+4
NFA FA,R COMPUTE NFL ADDRESS
CWD FN WRITE FNT
ADN FSTL
CWM FS,ON WRITE FST
CWM FBUF,ON WRITE UTILITY WORD OF FST
* RETURN TO CALLING JOB.
SFP2 RJM RTC RETURN TO CALLER
* CLEAR JOB INTERLOCK.
SFP3 LDN CFIN CLEAR JOB INTERLOCK
RJM PJI
* TERMINATION PROCESSING - CHECK FOR ERROR.
LDD RC
ZJN SFP4 IF NO ERROR
* CLEAR *LIBRARY* FILE TYPE IN FNT (FILE NOT SWITCHED).
SFP3.1 LDD FS+4 SET FILE NOT BUSY
SCN 1
ADN 1
STD FS+4
NFA SP+1,R UPDATE FNT
CWD FN
ADN FSTL UPDATE FST
CWD FS
UJN SRC SET REPLY CODE
SFP4 LDD SP+1 FNT ORDINAL OF SOURCE FNT
* LJM DLF DELETE LOCAL FNT
DLF SPACE 4,10
** DLF - DELETE LOCAL FNT.
*
* ENTRY (A) = FNT ORDINAL.
*
* USES CM - CM+4.
*
* EXIT TO *SRC*.
*
* MACROS MONITOR.
DLF BSS 0 ENTRY
STD CM+4 SET FNT ORDINAL
LDN DLFS DELETE FNT
STD CM+1
MONITOR PLFM
* LJM SRC SET REPLY CODE
SRC SPACE 4,10
** SRC - SET REPLY CODE.
*
* ENTRY (IR+3 - IR+4) = RELATIVE ADDRESS OF PARAMETER BLOCK.
* (FA) = FNT ORDINAL.
* (RC) = REPLY CODE.
*
* EXIT TO *DPP*.
* TO *ERR* IF INCORRECT REQUEST ADDRESS.
*
* CALLS SRA.
SRC LDD FA GET FNT ORDINAL
STD SP
LDD RC GET REPLY CODE
SHN 1
ADN 1 SET COMPLETION BIT
STD SP+4
RJM SRA SET REQUEST ADDRESS
ZJN SRC1 IF INCORRECT ADDRESS
CWD SP UPDATE *ADDR*
LJM DPP DROP PP
SRC1 LDC =C* INCORRECT REQUEST.*
LJM ERR PROCESS ERROR
GFP SPACE 4,15
** GFP - GET FILE FROM PARTNER.
*
* ENTRY (SP+1) = FNT ORDINAL OF FILE TO BE SWITCHED.
*
* EXIT (FA) = NEW ADDRESS OF FNT.
* (RC) = REPLY CODE.
*
* USES T1, CM - CM+4.
*
* CALLS CCP, CLF, PJI, RTC, UIE.
*
* MACROS MONITOR, NFA.
GFP BSS 0 ENTRY
* CREATE LOCAL FNT IN CALLER-S NFL.
RJM CLF CREATE LOCAL FNT
NJN GFP1 IF FILE NOT CREATED
* CHANGE TO PARTNER CP.
LDD SP SET CP ADDRESS
STM CCPA
LDN 0 CHANGE TO PARTNER
RJM CCP
ZJN GFP2 IF SUCCESSFUL
STD T1 SAVE REPLY CODE
LDN RC02 * JOB ROLLED OUT.*
STD RC SET ERROR CODE
LDD T1 REPLY CODE
SBN 1
NJN GFP3 IF WRONG JOB
GFP1 LJM GFP6 CLEAR JOB INTERLOCK
* SET FILE BUSY.
GFP2 NFA SP+1,R COMPUTE NFL ADDRESS
CRD FN READ FNT
LDN ZERL
CRD CM
LDD SP+1 FNT ORDINAL
STD CM+4
LDD MA FILE NAME
CWD FN
MONITOR SFBM
LDD CM+1
ZJN GFP4 IF FILE NOT BUSY
LDN RC01 * FILE BUSY.*
STD RC SET ERROR CODE
GFP3 UJN GFP5 RETURN TO CALLER
* GET FNT/FST OF FILE TO BE SWITCHED.
GFP4 NFA SP+1,R COMPUTE NFL ADDRESS
CRD FN READ FNT
ADN FSTL
CRM FS,ON
CRM FBUF,ON
* DELETE OLD FNT.
LDD SP+1 FNT ORDINAL
STD CM+4
LDN DLFS DELETE FNT
STD CM+1
MONITOR PLFM
* CHANGE BACK TO CALLING CP.
GFP5 RJM RTC RETURN TO CALLER
* CLEAR JOB INTERLOCK.
GFP6 LDN CFIN CLEAR JOB INTERLOCK
RJM PJI
* TERMINATION PROCESSING - CHECK FOR ERROR CODE.
LDD RC
ZJN GFP7 IF NO ERROR
LDD FA
ZJN GFP8 IF NO NEW FNT CREATED
STD T1 SAVE ORDINAL
LDN 0 CLEAR FNT ORDINAL
STD FA
LDD T1
LJM DLF DELETE LOCAL FNT
* WRITE FNT INTO RECEIVER-S NFL.
GFP7 LDD SQ+4 GET EJT ORDINAL OF PARTNER
RJM UIE UPDATE QFT ENTRY
LDD FS+4 SET FST NOT BUSY
SCN 1
ADN 1
STD FS+4
NFA FA,R COMPUTE NFL ADDRESS
CWD FN WRITE FNT
ADN FSTL
CWM FS,ON WRITE FST
CWM FBUF,ON WRITE UTILITY WORD OF FST
GFP8 LJM SRC SET REPLY CODE
CCP SPACE 4,20
** CCP - CHANGE CONTROL POINT.
*
* *CCP* CHANGES TO THE SPECIFIED CONTROL POINT, TRYING 5 TIMES
* BEFORE GIVING UP. IF CHANGE IS MADE, THE EJT ORDINAL IS
* VERIFIED TO ENSURE THE JOB IS THE CORRECT ONE.
*
* ENTRY (A) = 0 CHANGE TO PARTNER CP.
* (A) .NE. 0 CHANGE BACK TO CALLER CP.
* (CCPA) = NEW CP ADDRESS IF A=0.
*
* EXIT (A) = 0 IF CHANGE MADE SUCCESSFULLY.
* (A) = 1 IF CHANGE NOT POSSIBLE.
* (A) = 2 IF CHANGE MADE, BUT WRONG EJT ORDINAL.
*
* USES T1, CM - CM+4.
*
* CALLS DLY.
*
* MACROS MONITOR.
CCP SUBR ENTRY/EXIT
NJN CCP1 IF CHANGING BACK TO CALLER
* PRESET FOR CHANGE TO PARTNER.
LDD CP GET CALLER EJT ORDINAL
ADN TFSW
CRD CM
LDD CM
STM CCPB
LDD SQ+4 SET EJT ORDINAL FOR VERIFY
UJN CCP2 PROCESS CALL
* PRESET FOR CHANGE BACK TO CALLER.
CCP1 LDM CCPC GET CALLING CP ADDRESS
STM CCPA NEW CPA
LDM CCPB SET EJT ORDINAL FOR VERIFY
CCP2 STD T1
LDD CP SAVE OLD CP
STM CCPC
* CHANGE TO NEW CP, TRYING 5 TIMES.
LDN 5 INITIALIZE RETRY COUNT
STM CCPD
CCP3 LDC **
CCPA EQU *-1 NEW CPA
SHN -7
STD CM+1
MONITOR CCAM CHANGE CP
LDD CM+1
ZJN CCP6 IF CHANGE MADE
SOM CCPD DECREMENT RETRY COUNT
ZJN CCP4 IF 5 TIMES
RJM DLY DELAY
UJN CCP3 TRY AGAIN
* CHANGE REJECTED, RETURN ERROR.
CCP4 LDM CCPC RESET TO OLD CP
STD CP
LDN 1 CHANGE NOT POSSIBLE
CCP5 LJM CCPX RETURN
* CHANGE MADE, VERIFY JOB EJT ORDINAL.
CCP6 LDD CP
ADN TFSW GET JOB EJT ORDINAL
CRD CM
LDD T1 VERIFY JOB EJT ORDINAL
LMD CM
ZJN CCP5 IF EJT ORDINAL MATCHES
LDN 2 WRONG JOB
UJN CCP5 RETURN
CCPB BSS 1 CALLER EJT ORDINAL
CCPC BSS 1 CALLER CPA
CCPD CON 5 RETRY COUNT
CLF SPACE 4,15
** CLF - CREATE LOCAL FNT ENTRY.
*
* *CLF* CREATES A LOCAL FNT ENTRY FOR THE JOB TO WHICH THE
* PP IS ASSIGNED.
*
* EXIT (A) = 0 IF FILE CREATED.
* (A) = (RC) = *RC05*, IF NO NFL AVAILABLE.
* (A) = (RC) = *RC06*, IF LOCAL FILE LIMIT.
* (FA) = FNT ORDINAL IF A=0.
*
* USES CM - CM+4.
*
* CALLS NFL.
*
* MACROS MONITOR.
CLF3 LDD CP REQUEST ADDITIONAL 100B WORDS OF NFL
ADN FLSW
CRD CM
AOD CM
RJM NFL
ZJN CLF1 IF NFL ASSIGNED
LDN RC05 * NOT ENOUGH NFL.*
CLF4 STD RC
CLF SUBR ENTRY/EXIT
* CREATE FNT IN RECEIVER-S NFL.
CLF1 LDD MA SET FILE NAME IN MB
CWM CLFA,ON
LDN CRFS CREATE LOCAL FNT ENTRY
STD CM+1
MONITOR PLFM
LDD CM+1 SAVE FNT ORDINAL
STD FA
LDD CM+4
ZJN CLFX IF FILE CREATED, RETURN
* FNT NOT CREATED, PROCESS REJECT.
SHN 21-1
MJN CLF2 IF LOCAL FILE LIMIT
SHN 21-2-21+1+22
MJN CLF3 IF MORE NFL NEEDED
* DUPLICATE FILE NAME, CHANGE NAME AND TRY AGAIN.
LDD HN CHANGE FILE NAME
RAM CLFA+3
SHN -6
SBN 1R+
MJN CLF1 IF FILE NAME STILL VALID
CLF2 LDN RC06 * LOCAL FILE LIMIT.*
UJN CLF4 SET ERROR CODE
CLFA VFD 42/0LZZZZZGA,18/0 SCRATCH FILE NAME
PJI SPACE 4,20
** PJI - PROCESS JOB INTERLOCK.
*
* *PJI* CLEARS OR SETS THE JOB INTERLOCK ON THE JOB
* TO WHICH THE PP IS CURRENTLY ASSIGNED.
*
* ENTRY (A) = CFIN CLEAR INTERLOCK.
* (A) = SFIN SET INTERLOCK.
*
* EXIT (A) = 0 INTERLOCK SET/CLEAR.
* (A) = 1 INTERLOCK ALREADY SET (*SFIN* OPTION).
*
* USES T1, CM - CM+4.
*
* CALLS SFI.
*
* MACROS SFA.
PJI SUBR ENTRY/EXIT
STD T1 SAVE SET/CLEAR OPTION
LDD CP GET JOB FNT ORDINAL
ADN TFSW
CRD CM
SFA EJT,CM CALCULATE ABSOLUTE ADDRESS OF EJT ENTRY
RJM SFI SET/CLEAR JOB INTERLOCK
UJN PJIX RETURN
RTC SPACE 4,15
** RTC - RETURN TO CALLER.
*
* *RTC* CHANGES CONTROL POINTS BACK TO THE CALLER JOB.
*
* ENTRY JOB AT PARTNER CP.
* *CCP* ALREADY CALLED WITH A=0.
*
* EXIT JOB AT CALLER CP.
*
* CALLS CCP, CHG.
RTC SUBR ENTRY/EXIT
RTC1 LDN 1 CHANGE BACK TO CALLER CONTROL POINT
RJM CCP
ZJN RTCX IF CHANGE SUCCESSFUL
LDN 0
RJM CHG CONDITIONALLY HANG PP
LDD CP CHECK ERROR FLAG
ADK STSW
CRD CM
LDD CM+1
SBK ORET
PJN RTC2 IF *ORET* OR HIGHER ERROR
UJN RTC1 RETRY REQUEST
RTC2 LJM DPP DROP PP
UIE SPACE 4,15
* UIE - UPDATE QFT ENTRY.
*
* *UIE* CHANGES THE JOB EJT ORDINAL ASSIGNMENT IN THE
* QFT ENTRY IF THE LOCAL FILE TYPE IS *QFFT*.
*
* ENTRY (A) = EJT ORDINAL OF JOB WITH QFT ENTRY ASSIGNED.
* (FN - FN+4) = LOCAL FNT ENTRY.
* (FS - FS+4) = LOCAL FST ENTRY.
*
* USES T1, T2, T3, CM - CM+4, CN - CN+4.
*
* CALLS SFI.
*
* MACROS MONITOR, SFA.
UIE SUBR ENTRY/EXIT
STM UIEB SAVE OLD JOB EJT ORDINAL
LDD FN+4 CHECK LOCAL FILE TYPE
SHN -6
LMN QFFT
NJN UIEX IF NOT QUEUED INPUT/OUTPUT FILE
LDD CP GET NEW JOB EJT ORDINAL
ADN TFSW
CRD CM
LDD CM
STM UIEC
LDN 0 INITIALIZE QFT ORDINAL
STD T3
LDK QFTP GET MAXIMUM ENTRIES IN QFT
CRD CM
LDD CM+2
STD T2
UIE1 AOD T3 INCREMENT TO NEXT QFT ENTRY
SBD T2
PJN UIE2 IF END OF QFT
SFA QFT,T3 GET QFT ENTRY
CRD CM
ADN ENTQ-JSNQ
CRD CN
LDD CN CHECK FOR SAME EQUIPMENT
LMD FS
LPC 777
NJN UIE1 IF NOT CORRECT ENTRY
LDD CN+1 CHECK FOR SAME FIRST TRACK
LMD FS+1
NJN UIE1 IF NOT CORRECT ENTRY
LDN 3 SET NUMBER OF REQUESTS FOR *UADM*
STD T1
LDD MA WRITE *UADM* REQUESTS TO MESSAGE BUFFER
CWM UIEA,T1
SFA QFT,T3 CALCULATE ABSOLUTE ADDRESS OF QFT ENTRY
RJM SFI ISSUE *UTEM* TO CHANGE JOB EJT ORDINAL
NJN UIE2 IF EJT ORDINAL VERIFY FAILED
LJM UIEX RETURN
UIE2 MONITOR HNGM HANG PP
UJN UIE2 UNCONDITIONALLY HANG
UIEA VFD 1/1,5/JSNQ,6/1,6/1,42/1 CHECK FILE ASSIGNED
VFD 1/1,5/ENTQ,6/12D,6/0,42/0 VERIFY OLD EJT ORDINAL
UIEB EQU *-1
VFD 1/0,5/ENTQ,6/12D,6/0,42/0 SET NEW EJT ORDINAL
UIEC EQU *-1
SPACE 4,10
** COMMON DECKS.
*CALL COMPNFL
SPACE 4,10
** BUFFER FOR UTILITY FNT WORD.
FBUF BSS LENF*5-2*5 REMAINDER OF FNT
ERRNZ LENF-3 CHANGE BUFFER SIZE AND ALL *FBUF* ACCESS
SPACE 4,10
USE OVERLAY
OSTL EQU *+5 *0ST* LOAD ADDRESS
ERRNG BFMS-OSTL-ZSTL CHECK *0ST* LENGTH
OVERFLOW E1MA
TTL 1MA/2MB - EXTENDED MEMORY STORAGE REQUEST PROCESSING.
TITLE
OVERLAY (EXTENDED MEMORY STORAGE REQUEST.),E1MA
SPACE 4,10
***** 2MB - EXTENDED MEMORY STORAGE REQUEST PROCESSING.
*
* *2MB* PERFORMS ALL ECS RELATED STORAGE REQUESTS FOR
* THE SYSTEM MONITOR. *2MB* WILL INSURE THAT AT LEAST
* *MCMX* WORDS OF CM IS ASSIGNED TO THE CONTROL POINT
* BEFORE REQUESTING EXTENDED MEMORY FOR THE CONTROL POINT.
* IF THE CONTROL POINT HAS AN *MFL* OF LESS THAN *MCMX* AT THE
* TIME EXTENDED MEMORY IS REQUESTED, THE JOB WILL BE ABORTED.
RFE SPACE 4,25
*** FUNCTION 0 (SUBFUNCTIONS 2 AND 4).
* REQUEST EXTENDED CORE STORAGE.
*
* ENTRY
*T ARG 6/SUB,18/FL
*
* SUB = 2 EXTENDED MEMORY REQUEST, ABORT IF NOT AVAILABLE.
* = 4 EXTENDED MEMORY REQUEST, NO ABORT IF NOT AVAILABLE.
*
*T FL 30/VAL,24/,1/R,1/C,1/,3/0
*
* VAL POSITIVE NON-ZERO VALUE INDICATING THE AMOUNT OF
* EXTENDED MEMORY BEING REQUESTED.
* R CLEAR *CMM* STATUS.
* C THIS IS A *CMM* TYPE REQUEST.
*
* EXIT TO *ERR* IF ERRORS ENCOUNTERED.
* TO *RCL* TO ENTER PP RECALL.
*
* USES T3 - T5, T7, CM - CM+4, FS - FS+4, SP - SP+4.
*
* CALLS CLM, REI, RSI.
*
* MACROS MONITOR.
RFE SUBR ENTRY/EXIT
LDK MEFL GET USER EM SHIFT COUNT (UESC)
CRD CM
LDD CM+2
SHN -11
STD CM+2
SBN 4
LPN 77
ADD TH
ERRNZ SHNI-1000
STM RFEA
LDC SHNI+77
SBD CM+2
STM RFEB
LDC SHNI+3
ADD CM+2
STM RFEC
STM RFEE
LDD IR+3 RESTORE DIRECT CELL HIT DURING LOADING
SHN -6
ADN 1
STD T5
LDD FN+2 FETCH REQUEST
ADC 7700 ROUND UP
SHN -14
ADD FN+1
ADN 7
SCN 7
SHN 6
ADD FN
SHN 11
STD T3 SET NEW FLE
SHN -14
STD T0
LDN 17 ROUND VALUE TO BLOCKING SIZE
RFEA SHN -4
* SHN UESC-4
RAD T3
SHN -14
ADD T0
SHN 14
LMD T3
RFEB SHN 0
* SHN -UESC
STD T3
SHN -14
ZJN RFE1 IF REQUEST .LE. 7777B *UEBS* BLOCKS
LDN PSNI
STM RFED
* RE-ENTER AT *RFE1* FOLLOWING CLEAR OF CM WHEN
* CM INCREASE REQUIRED PRIOR TO EXTENDED MEMORY REQUEST.
RFE1 LDD CP FETCH STATUS AND CONTROL WORDS
ADN ECSW
CRD FS
ADN ELCW-ECSW
CRD T7
LDN ZERL
CRD CM
LDD FS+4
RFEC SHN 3
* SHN 3+UESC
STD CM+1
SHN -14
STD CM
LDD T7
SBD T3
RFED PJN RFE3 IF FLE .LE. MFL (EXTENDED MEMORY)
* PSN (IF FLE .GT. 12 BITS)
LDD IR+3
SHN 21-7
PJN RFE2 IF NOT *NO ABORT*
LJM RFEX COMPLETE PROCESSING
RFE2 LDC =C* FL REQUEST BEYOND MFL (EXTENDED MEMORY).*
LJM ERR PROCESS ERROR ABORT
* CHECK FOR AT LEAST MINIMUM CM FL AVAILABLE.
RFE3 LDD FL CHECK CM FL
ADC -MCMX/100
PJN RFE4 IF FL .GE. MINIMUM FL WITH EXTENDED MEMORY
LJM RFE12 GET ENOUGH CM BEFORE REQUESTING ECS
* REQUEST EXTENDED MEMORY.
RFE4 LDD CP CHECK IF JOB ROLLABLE
ADN JCIW
CRD CM
LDD CM+3 CHECK FOR *DIS* JOB
LPC 1000
ADD CM+2 CHECK FOR NON-ROLLABLE JOB
NJN RFE5 IF JOB NOT ROLLABLE
LDN SSTL CHECK EXTENDED MEMORY CONTROL
CRD CM
LDD CM
SHN 21-5
MJN RFE6 IF USER EXTENDED MEMORY DISABLED
RFE5 LDD FS+4 SAVE CURRENT FLE
STD T4
LDD T3
RJM REI REQUEST EXTENDED MEMORY INCREASE
ZJN RFE7 IF ASSIGNED
RFE6 LJM RFE9 IF REQUEST PENDING
* EXTENDED MEMORY ASSIGNED.
RFE7 LDD CP READ ECSW AND SEPW WORDS
ADN ECSW
CRD FS
ADN SEPW-ECSW
CRD CM
LDD CM CHECK ENTRY POINTS
LPN 1
NJN RFE8 IF SSM= ENTRY POINT PRESENT
STD CM+1
STD CM+3
LDD FS+4
SBD T4
MJN RFE8 IF DECREASE
ZJN RFE8 IF NO CHANGE
STD CM+2
LDC 300 SET ECS RELATIVE ADDRESS OPTION
RAD CM+1
LDD T4 SET ADDRESS FOR CLEAR
STD CM+4
MONITOR CSTM CLEAR ADDED STORAGE
RFE8 LDN 0
STD CM
LDD CP
ADN MS2W
CWD CM CLEAR CONSOLE MESSAGE
LDN ZERL RETURN STATUS
CRD CM
LDD FS+4
RFEE SHN 3
* SHN 3+UESC
STD CM+1
SHN -14
STD CM
LJM RFEX RETURN
* EXTENDED MEMORY NOT AVAILABLE.
RFE9 PJN RFE10 IF STORAGE UNASSIGNED WAITING FOR *1SJ*
LDD CP CHECK IF JOB ROLLABLE
ADN JCIW
CRD SP
LDD SP+3 CHECK FOR *DIS* JOB
LPC 1000
ADD SP+2 CHECK FOR NON-ROLLABLE JOB
NJN RFE10 IF JOB NOT ROLLABLE
STD CM+1 ROLLOUT CONTROL POINT
MONITOR ROCM
UJN RFE11 ENTER RECALL
* EXTENDED MEMORY AVAILABLE BUT NOT ASSIGNED.
RFE10 LDD CP SET WAITING MESSAGE
ADN MS2W
CWM =C*WAITING FOR STORAGE (EM). *,TR
RFE11 LDN EFIR SET ECS FL INCREASE PENDING REASON CODE
LJM RCL ENTER PP RECALL
* INSURE JOB CAN BE INCREASED TO AT LEAST MINIMUM CM.
RFE12 LDD CP GET CM CONTROL WORD
ADN FLCW
CRD CM
LDD CM
ADC -MCMX/100
MJN RFE14 IF MFL .LT. MINIMUM FL WITH ECS
* REQUEST MINIMUM CM FOR JOB.
LDD FL SAVE CURRENT CM FL
STD T4
LDC MCMX/100 REQUEST MINIMUM CM FL
RJM RSI
ZJN RFE13 IF ASSIGNED
LJM RFL20 WAIT FOR CM STORAGE
* CLEAR CM FL INCREASE WHEN ASSIGNED.
RFE13 RJM CLM CLEAR ADDITION MEMORY
LJM RFE1 PROCESS EXTENDED MEMORY REQUEST
RFE14 LDC =C* MFL LESS THAN EXTENDED MEMORY MINIMUM CM FL.*
LJM ERR PROCESS ERROR
SPACE 4,10
** COMMON DECKS.
*CALL COMPREI
OVERFLOW E1MA
TTL 1MA/2MZ - EJT SYSTEM REQUEST FUNCTION PROCESSORS.
OVERLAY (EJT SYSTEM REQUEST PROCESSORS.),E1MA
2MC SPACE 4,10
***** *2MC* - EJT SYSTEM REQUEST PROCESSORS.
PRS SUBR ENTRY/EXIT
UJN PRSX EXIT
DTC SPACE 4,10
** DTC - DETACH JOB FROM CALLER.
*
* CALLS CAA, GTN, PES, RRF, SAM, SEA, STO, TAS, VSC, VUD, WCE,
* WDS.
*
* MACROS ENDMS, SETMS.
DTC BSS 0 ENTRY
LDD W1+4 SET TO CLEAR INTERLOCK
STM PERB
RJM CAA READ OTHER PARAMETER BLOCK WORDS
ADN 3
CRD W3
ADN 1
CRD W4
RJM SEA SET ENTRY ADDRESS
CRM EJEN,EL READ EJT ENTRY WORDS
* CHECK JOB STATUS, CONNECTION STATUS AND SERVICE CLASS.
* JOB STATUS MUST BE EITHER *DOJS* OR *IOJS* BECAUSE A
* *FJEJ* MONITOR FUNCTION IS ALWAYS ISSUED BEFORE *DTEJ*.
LDM EJEN+JSNE*5+4
SHN -7
LPN 17
SBK NICS
NJN DTC0 IF SOME SORT OF CONNECTED STATUS
ERRNZ MXCS-3 ERROR IN CONNECTION STATUS CHECK
LDN JOER JOB NOT ONLINE
LJM PERX ERROR EXIT
DTC0 LDM EJEN+JSNE*5+4 CHECK CURRENT JOB STATUS
LPN 76
SBN IOJS*2
ZJN DTC1 IF *IOJS* STATUS
SBN DOJS*2-IOJS*2
ZJN DTC1 IF *DOJS* STATUS
SBN SUJS*2-DOJS*2
NJN DTC2 IF NOT *SUJS* STATUS
DTC1 STD SC PRESET NO SERVICE CLASS CHANGE
* CHECK DETACH REASON CODE.
LDD W2+1
SHN -6
ZJN DTC2 IF NO REASON CODE
STD T1
SBN TAMRL+1
MJN DTC3 IF VALID REASON CODE
DTC2 LDN JDER JOB CANNOT BE DETACHED
LJM PERX ERROR EXIT
DTC3 LDM TAMR-1,T1 MOVE REASON CODE
STM SAMB+1
* READ DISK AND VALIDATE USER DETACH.
LDN 0
RJM RRF READ ROLLOUT FILE
RJM VSC VALIDATE SERVICE CLASS
RJM VUD VALIDATE USER DETACH
* MAKE JOB STATUS AND CONNECTION STATUS CHANGES.
* JOB STATUS MUST BE OBTAINED FROM THE SYSTEM SECTOR COPY
* OF THE EJT BECAUSE THE *FJEJ* FUNCTION REQUEST SETS
* *DOJS* JOB STATUS IN THE EJT TO KEEP THE JOB ROLLED
* OUT UNTIL IAF CAN ISSUE THE *DTEJ* FUNCTION. THE
* SYSTEM SECTOR COPY CONTAINS THE JOB STATUS PRESENT
* AT LAST ROLLOUT.
LDM EJEN+SCLE*5 SAVE CURRENT SERVICE CLASS FOR RECOVERY
SHN -6
STD W3+2
LDM EJSS+JSNE*5+4 GET JOB STATUS FROM SYSTEM SECTOR
LPN 76
SBN IOJS*2
ZJN DTC3.2 IF TERMINAL I/O JOB STATE
SBN DOJS*2-IOJS*2
ZJN DTC3.2 IF DISABLED JOB STATE
SBN SUJS*2-DOJS*2
ZJN DTC4 IF SUSPENDED (IAF MISSING)
DTC3.1 SOM STOD DISABLE EJT TIMEOUT UPDATE
LJM DTC6 MAKE CHANGE
DTC3.2 LDM CBUF+EOJW*5 CHECK JOB TERMINATION OPTION
SHN 0-11
LMN TJJT
ZJN DTC3.1 IF TERMINATE JOB OPTION
DTC4 LDD EJ SAVE JOB STATUS AND SCHEDULE FIELD
SHN 14
LMD EJ+1
ADK JSNE
CRM EJSS,ON
ADK SCHE-JSNE-1
CRM EJSS+SCHE*5,ON
ADK SCLE-SCHE-1
CRD CN
LDD W3+2
SBD SC
NJN DTC4.1 IF CHANGE IN SERVICE CLASS
STD SC INDICATE NO SERVICE CLASS CHANGE
DTC4.1 LDD SC
ZJN DTC5 IF NO SERVICE CLASS CHANGE
STM DTCC+4
SHN 6
STD CN
AOM DTCA INCREMENT REQUEST COUNT
DTC5 LDK SUJS SUSPEND DIRECTLY
STM DTCB+11B
LDN 1
RAM STOB SET TO LEAVE INTERLOCKED
LDN 1
RAM STOA SET TO EXTEND TIMEOUT
DTC6 LDD SC CHANGE SERVICE CLASS
STM CSSS ADD CHANGE TO SYSTEM SECTOR
* SET UP RECOVERY TABLE.
LDD CP READ SUBSYSTEM IDENTIFICATION
ADN JCIW
CRD CM
LDD CM+2 SET SSID FIELD
STD W3
* PUT RECOVERY TABLE INTO SYSTEM SECTOR.
LDD MA TRANSFER RECOVERY WORDS
CWD W3
CRM R1SS,ON
CWD W4
CRM R2SS,ON
CWM CBUF+SRUW*5,ON TRANSFER SRU-S
SBN 1
CRD W3
LDM EJEN+SCHE*5 RESET DISK ADDRESS
STD T5
LDM EJEN+SCHE*5+1
STD T6
LDN 0
STD T7
STD FA
SETMS IO,RW
LDC BFMS SET BUFFER ADDRESS
RJM WDS WRITE SYSTEM SECTOR
RJM PES PROCESS ERROR STATUS
ENDMS
RJM GTN SET TERMINAL NAME IN PARAMETER BLOCK
LDN W3
RJM TAS TRANSFER ACCUMULATED SRU-S
RJM STO SET TIMEOUT
LDN 2
* LDN 3 (IF SERVICE CLASS CHANGE)
DTCA EQU *-1 REQUEST COUNT
STD CM+1
LDD MA PLACE REQUEST(S) IN MESSAGE BUFFER
CWM DTCB,CM+1 PLACE REQUEST
RJM WCE WRITE CHANGE TO EJT
* SEND ACCOUNTING MESSAGES.
LDC 2RAS SET UP MESSAGE
STM SAMB
AOM SAMJ
RJM SAM SEND DETACH MESSAGE
* RETURN JOB ACCESS LEVEL LIMIT OF DETACHED JOB.
LDM EJEN+PRFE*5+2 GET JOB ACCESS LEVEL LIMIT
LPN 7
SHN 6
RAD W2+0
LDN 0
LJM PERX EXIT
DTCB VFD 6/JSNE,6/4,6/7,42/DTCS
VFD 6/JSNE,6/5,6/1,42/ROJS
DTCC VFD 6/SCLE,6/6,6/54D,42/0 SERVICE CLASS CHANGE
TAMR SPACE 4,10
** TAMR - TABLE OF ACCOUNTING MESSAGE REASONS.
TAMR BSS 0
DATA 2LTH HANG UP PHONE
DATA 2LTT TIMEOUT
DATA 2LTR SUBSYSTEM ABORT
DATA 2LTD USER DETACH
DATA 2LTP PROGRAM INITIATED DETACH
DATA 2LTU PROGRAM INITIATED DETACH AND LOGOUT
TAMRL EQU *-TAMR
GTN SPACE 4,15
** GTN - GET TERMINAL NAME.
*
* EXIT TERMINAL NAME WRITTEN TO PARAMETER BLOCK.
*
* ERROR TO *PERX* IF ERROR ON READ.
*
* USES T5, T6, CM - CM+4.
*
* CALLS CAA, PES, RSS.
*
* MACROS ENDMS, SETMS.
GTN SUBR
LDM IFSS INPUT FILE FST WORD
STD T5
LDM IFSS+1
STD T6
SETMS IO
LDN 0
RJM RSS READ SYSTEM SECTOR
RJM PES PROCESS ERROR STATUS
NJN GTN1 IF ERROR ENCOUNTERED
ENDMS
LDD MA PICK UP TERMINAL NAME
CWM TNSS,ON
SBN 1
CRD CM
LDN 0
STD CM+4
LDD CM+3
SCN 77
STD CM+3
RJM CAA GET PARAMETER NAME BLOCK ADDRESS
ADN 6
CWD CM ADD TERMINAL TO PARAMETER BLOCK
UJP GTNX RETURN
GTN1 LDN ERER ERROR ON READ ERROR CODE
LJM PERX ERROR EXIT
PTN SPACE 4,15
** PTN - PUT TERMINAL NAME.
*
* EXIT TERMINAL NAME UPDATED IN SYSTEM SECTOR.
* (SAMD) = TERMINAL NAME.
*
* ERROR TO *PERX* IF I/O ERROR ENCOUNTERED.
*
* USES T5, T6, T7, CM - CM+4.
*
* CALLS CAA, PES, RDS, WDS.
*
* MACROS ENDMS, SETMS.
PTN SUBR
RJM CAA GET PARAMETER NAME BLOCK ADDRESS
ADN 6
CRM SAMD,ON GET TERMINAL FROM PARAMETER BLOCK
LDM IFSS INPUT FILE FST WORD
STD T5
LDM IFSS+1
STD T6
LDN 0
STD T7
SETMS IO
LDC SBUF
RJM RDS READ INPUT FILE SYSTEM SECTOR
RJM PES PROCESS ERROR STATUS
ENDMS
* UPDATE TERMINAL NAME IN SYSTEM SECTOR.
LDD MA PICK UP TERMINAL NAME
CWM SBUF+TNSS-BFMS,ON
SBN 1
CRD CM
LDD CM+3
LMM SAMD+3
SCN 77
LMD CM+3
STM SAMD+3
LDD CM+4
STM SAMD+4
LDD MA PUT TERMINAL NAME IN SYSTEM SECTOR
CWM SAMD,ON
SBN 1
CRM SBUF+TNSS-BFMS,ON
LDN 0
STD T7
SETMS IO,RW
LDC SBUF
RJM WDS WRITE SYSTEM SECTOR
RJM PES PROCESS ERROR STATUS
ENDMS
LJM PTNX RETURN
REC SPACE 4,10
** REC - RECOVER DETACHED JOB.
*
* CALLS CAA, GRE, PES, RRF, SES, SFI, TAS, WCE, WDS.
*
* MACROS ENDMS, MONITOR, SETMS.
REC BSS 0 ENTRY
LDN 0
STD W1+4 INITIALIZE EJT ORDINAL
LDD W2+1 VALIDATE MESSAGE BUFFER ADDRESS
LPN 77
SHN 14
ADD W2+2
ZJN REC1 IF INCORRECT ADDRESS
ADN EJPB
SHN -6
SBD FL
MJN REC2 IF IN RANGE
REC1 LDN MAER ADDRESS ERROR
UJN REC4 ERROR EXIT
REC2 LDD W0 TRANSFER JSN TO REQUEST
ZJN REC3 IF NO JSN
STM GREC+3
LDD W0+1
ZJN REC3 IF NO JSN
STM GREC+4
RJM SES SET UP EJT SEARCH
RJM GRE GET REQUIRED EJT ENTRY
ZJN REC5 IF DETACHED
LDN NTER&JFER JOB NOT DETACHED ERROR CODE
REC3 LMN JFER JOB NOT FOUND ERROR CODE
REC4 LJM PERX ERROR EXIT
REC5 LDD EJ READ EJT ENTRY
SHN 14
ADD EJ+1
CRM EJEN,EL
LDM EJEN+JSNE*5+4
LPN 76
STD JS
SHN -1
LMK EXJS
ZJN REC5.1 IF JOB IN CM
LMK PCJS&EXJS
NJN REC6 IF JOB NOT IN CM
LCN 2
RAM RECF
* ROLL OUT AND SUSPEND JOB.
REC5.1 LDK CEIN CLEAR INTERLOCK
STD T1
LDD EJ
SHN 14
LMD EJ+1
RJM SFI CLEAR INTERLOCK
LDM EJEN+SCHE*5+3 SET CONTROL POINT NUMBER
* LDM EJEN+SCHE*5+1 (JOB ASSIGNED TO PCP)
RECF EQU *-1
STD CM+2
LDC ROSU+4000
STD CM+1
MONITOR ROCM
LDN RTER SET RETRY
UJP REC4 EXIT
* SUSPEND JOB IF NOT ALEADY SUSPENDED.
REC6 LDD W1+4
STM PERB SET TO CLEAR WHEN COMPLETE
LDN 1
STD CM+1
LDD JS
SBN SUJS*2
ZJN REC7 IF SUSPENDED
LDC RTCL
CRM RECC+3,ON
LDC 600D SET TIMEOUT FOR TEN MINUTES
RAM RECC+4
SHN -14
RAM RECC+3
* GATHER INFORMATION FOR RETURN PARAMETER BLOCK.
REC7 RJM CAA READ TERMINAL NUMBER
ADN 5
CRD W5
LDN 0 SET TO READ SYSTEM SECTOR
RJM RRF READ ROLLOUT FILE
LDM CSSS
ZJN REC7.0 IF PREVIOUS SERVICE CLASS CHANGE COMPLETE
LDN 0
STD SC CLEAR SERVICE CLASS
LDM R1SS+2 GET PRE-DETACH SERVICE CLASS
LPN 77
STM DTCC+4 SET SERVICE CLASS IN REQUEST
AOM RECE
UJN REC7.1 CONTINUE WITH RECOVERY PROCESSING
REC7.0 LDM R1SS+2 GET PRE-DETACH SERVICE CLASS
LPN 77
STD SC
LDM EJEN+SCLE*5 GET CURRENT SERVICE CLASS
SHN -6
SBD SC
NJN REC7.1 IF SERVICE CLASS TO BE CHANGED
STD SC INDICATE NO SERVICE CLASS CHANGE
REC7.1 LDD SC
STM CSSS
LDD TN
STM CBUF+TTNW*5+1
LDN 0
STD T7
SETMS IO,RW
LDC BFMS
RJM WDS WRITE SYSTEM SECTOR
RJM PES PROCESS ERROR STATUS
LDN CPAI
STD T7
LDC SBUF
RJM WDS REWRITE CPA SECTOR
RJM PES PROCESS ERROR STATUS
ENDMS
* PROCESS RECOVERY.
LDN 3
STD CM+1
LDD MA
CWM RECA,CM+1
RJM WCE WRITE CHANGES TO EJT
RECE LDN 0
ZJN REC8.2 IF NO EJT SERVICE CLASS UPDATE REQUIRED
STD CM+1 NUMBER OF EJT CHANGES TO MAKE (FOR *WCE*)
LDD MA
CWM DTCC,CM+1 PLACE REQUEST
RJM WCE WRITE CHANGE TO EJT
REC8.2 LDM CBUF+TFSW*5+1
NJN REC9 IF PRIMARY FILE EXISTS
LDK ZERL
UJN REC10 ZERO PRIMARY FILE NAME
REC9 LDD MA TRANSFER PRIMARY FILE FNT
CWM PFSS,ON
SBN 1
REC10 CRD W0
LDN RCEJ*2 RESTORE FCN FIELD
STD W0+4
LDD W0+3 SAVE MODES FIELD
LPN 77
SHN 6
STD W2+4
SHN -6
LMD W0+3
STD W0+3
RJM CAA WRITE RECOVERY WORDS TO RETURN BLOCK
ADN 3
CWM R1SS,ON TRANSFER RECOVERY TABLE
CWM R2SS,ON
LDM EJSS+4
LPN 76
SHN -1
SBN IOJS
ZJN REC11 IF INPUT OR OUTPUT
SBN DOJS-IOJS
ZJN REC11 IF NOT ACTIVE JOB
LDN 1S5 SET ACTIVE JOB FLAG
RAD W2+4
REC11 LDC CBUF+MS1W*5-1
STD T1
REC12 AOD T1
STM RECD
LDI T1
NJN REC12 IF NOT END OF LINE
LDN ZERL ADD ZERO WORD FOR CM EOL
CRM *,ON
RECD EQU *-1
LDN 5
STD T1
LDD W2+1
LPN 77
SHN 6
ADD RA
SHN 6
ADD W2+2
CWM CBUF+MS1W*5,T1
LDC CBUF+SRUW*5
RJM TAS TRANSFER ACCUMULATED SRU-S
LDM CBUF+ACTW*5
SHN -7
STD JS
LPN 10 TIME LIMIT
RAD W2+4
LDD JS SRU LIMIT
LPN 2
SHN 3
RAD W2+4
LDM CBUF+TXSW*5
SHN -6 TIME SHARING SUBSYSTEM
LPN 7
RAD W2+4
LDN 0
LJM PERX NORMAL EXIT
RECA VFD 6/JSNE,6/4,6/7,42/OLCS
RECB VFD 6/JSNE,6/5,6/1,42/SUJS
RECC VFD 6/SCHE,6/24D,6/0,42/0
VFD 36/0 SCRATCH FOR RTCL
RRJ SPACE 4,10
** RRJ - RESTART RECOVERED JOB.
*
* EXIT (A) = ERROR CODE, IF ANY.
* TO *PERX*.
*
* CALLS CET, PTN, RJC, RRF, SAM, SEA, WCE.
*
* MACROS ENDMS, SETMS.
RRJ BSS 0 ENTRY
LDD W1+4 SET TO CLEAR INTERLOCK WHEN COMPLETE
STM PERB
RJM SEA SET ENTRY ADDRESS
CRD CM
ADN SCHE
CRD T5
LDD EJ READ EJT ENTRY
SHN 14
LMD EJ+1
CRM EJEN,EL READ EJT ENTRY WORDS
LDD CM+4
LPC 3676
LMC OLCS*200+SUJS*2
ZJN RRJ2 IF ONLINE AND SUSPENDED
LDN NRER NOT RECOVERABLE ERROR CODE
RRJ1.1 LJM PERX EXIT
* RESTORE JOB STATUS AND SCHEDULE FIELD.
RRJ2 LDN 0
RJM RRF READ ROLLOUT FILE
ENDMS
RJM PTN PUT TERMINAL NAME IN SYSTEM SECTOR
RJM SAM ISSUE RECOVERY ACCOUNTING MESSAGE
LDM EJSS+JSNE*5+4
LPN 76 JOB STATUS FIELD
ADN 1 LEAVE INTERLOCK SET
STM EJSS+JSNE*5+4
SBN IOJS*2+1
ZJN RRJ3 IF *IOJS*
SBN DOJS*2+1-IOJS*2-1
ZJN RRJ3 IF DISABLED
LDN ROJS*2+1
STM EJSS+JSNE*5+4
LDM R1SS+2 GET INITIAL PRIORITY FOR SERVICE CLASS
LPN 77
STD T2
RJM RJC
ADN EXQT
CRD CM
LDD CM+4 SET INITIAL PRIORITY
STD T1
LDD T2
SHN 14
LMN EXQT
RJM CET
LDD T1 SET ENTRY TIME
STM EJSS+SCHE*5+3
LDD T2
STM EJSS+SCHE*5+4
RRJ3 LDM RRJA SET UP REQUEST
STM EJSS+JSNE*5
LDM RRJA+1
STM EJSS+JSNE*5+1
LDM RRJB
STM EJSS+SCHE*5
LDM RRJB+1
STM EJSS+SCHE*5+1
LDM R1SS+2 SET SERVICE CLASS
LPN 77
STM RRJC+4
LDN 2
STD CM+1
ERRNZ SCHE-JSNE-1 CODE DEPENDS ON CONSECUTIVE WORDS
LDD MA
CWM EJSS+JSNE*5,CM+1
CWM RRJC,ON
AOD CM+1
RJM WCE WRITE CHANGES TO EJT
LJM PERX EXIT
RRJA VFD 6/JSNE,6/6,6/0,6/0
RRJB VFD 6/SCHE,6/30D,6/0,6/0
RRJC VFD 6/SCLE,6/6,6/54D,6/0,36/0
RST SPACE 4,10
** RST - RESET TIMEOUT.
*
* USES CM - CM+4, CN - CN+4.
*
* CALLS GRE, SEA, SES, STO.
RST BSS 0 ENTRY
LDD W0+2 CHECK TIMEOUT DELAY FLAG
LPN 2
RAM STOA
LDD W0+2 CHECK FLAGS FIELD
SHN 21-0
MJN RST2 IF SELECT BY ORIGIN TYPE
LDD W1+4
ZJN RST1 IF NO EJTO
STM PERB SET TO CLEAR INTERLOCK WHEN COMPLETE
LJM RST8 RESET ONE TIMEOUT
RST1 LDN IEER INCORRECT EJT ORDINAL
UJN RST6 ERROR EXIT
RST2 LDD W2 VALIDATE ORIGIN TYPE
LPN 77
STM GRED+4
SBN MXOT
MJN RST3 IF VALID ORIGIN TYPE
LDN IOER INCORRECT ORIGIN TYPE
UJN RST6 EXIT
RST3 RJM SES SET UP EJT SEARCH
LDC GRED SET REQUEST ADDRESS
STM GREB
LDN PSNI
STM GREA
STM GREA+1
RST4 RJM GRE GET EJT ENTRY BY ORIGIN TYPE
ZJN RST7 IF ENTRY FOUND
RST5 LDN 0 SET COMPLETE
STM PERB SET INTERLOCK ALREADY CLEAR
RST6 LJM PERX EXIT
RST7 RJM STO SET TIMEOUT
UJN RST4 LOOP FOR NEXT ENTRY
* PROCESS SINGLE ENTRY RESET.
RST8 RJM SEA SET ENTRY ADDRESS
CRD CM READ EJT ENTRY
ADN SCLE
CRD CN
LDD CM+4
LPN 77
SBN SUJS*2+1
ZJN RST9 IF SUSPENDED AND INTERLOCKED
LDN NSER NOT SUSPENDED ERROR CODE
UJN RST6 ERROR EXIT
RST9 RJM STO SET TIMEOUT
UJN RST5 SET NORMAL EXIT
TRM SPACE 4,10
** TRM - TERMINATE JOB.
*
* EXIT TO *PERX*.
*
* USES CM - CM+4, CN - CN+4, T0 - T7.
*
* CALLS CAA, GTN, PES, RRF, SEA, TAS, WCE, WDS.
*
* MACROS ENDMS, SETMS.
TRM BSS 0 ENTRY
LDD W1+4 SET EJTO TO CLEAR INTERLOCK
STM PERB
RJM SEA SET ENTRY ADDRESS
CRM EJEN,EL READ EJT ENTRY WORDS
SBD EL
ADK JSNE
CRD T0
ADN SCHE-JSNE
CRD T5
ADN SCLE-SCHE
CRD CN
LDD T0+4
LPN 76
LMN IOJS*2
ZJN TRM1 IF *IOJS* JOB STATUS
LMN DOJS*2&IOJS*2
ZJN TRM1 IF *DOJS* JOB STATUS
LDN NDER SET JOB NOT DISABLED ERROR
LJM PERX EXIT
TRM1 LDD CN SET SCHEDULING PRIORITY
SHN -6
STD T2
RJM RJC
ADN EXQT
CRD CM
LDD CM+2 SET UPPER PRIORITY
STD T1
LDD T2
SHN 14
LMN EXQT
RJM CET
LDD T1 SET ENTRY TIME
STM TRMB+3
LDD T2
STM TRMB+4
LDN 0 SET TO READ CPA AND SYSTEM SECTOR
RJM RRF READ ROLLOUT FILE
ENDMS
RJM CAA READ RECOVERY WORDS
ADN 3
CRM R1SS,ON
CRM R2SS,ON
LDD CP SET SUBSYSTEM IDENTIFIER
ADN JCIW
CRD CM
LDD CM+2
STM R1SS
LDN 0
STD T7
SETMS IO,RW
LDC BFMS SET BUFFER ADDRESS
RJM WDS WRITE SYSTEM SECTOR
RJM PES PROCESS ERROR STATUS
ENDMS
RJM GTN SET TERMINAL NAME IN PARAMETER BLOCK
LDC CBUF+SRUW*5 TRANSFER SRU-S TO PARAMETER BLOCK
RJM TAS TRANSFER ACCUMULATED SRU-S
LDN 3 SET WORD COUNT
STD CM+1
LDD MA SET EJT STATUS CHANGES
CWM TRMA,CM+1
RJM WCE WRITE CHANGES TO EJT ENTRY
* LDN 0 SET NO ERROR
LJM PERX EXIT
TRMA VFD 6/JSNE,6/4,6/7,42/NICS
VFD 6/JSNE,6/5,6/1,42/ROJS
TRMB VFD 6/SCHE,6/24,6/0,42/0
TITLE EJT SYSTEM REQUEST SUBROUTINES.
GRE SPACE 4,20
** GRE - GET REQUIRED EJT ENTRY.
*
* ENTRY (T4) = NUMBER OF ENTRIES LEFT TO SCAN.
* (EJ - EJ+1) = ADDRESS OF LAST ENTRY FOUND.
*
* EXIT (A) = 0 IF ENTRY FOUND.
* (EJ - EJ+1) = ADVANCED TO CURRENT EJT ENTRY ADDRESS.
* *OLCS* CHANGED TO *NICS* IN EJT ENTRY IF RESET
* TIMEOUT REQUEST.
* EJT ENTRY INTERLOCKED IF FOUND.
* TO *PERX* IF RETRY NECESSARY.
*
* USES T1, T4, CM - CM+4, CN - CN+4, EJ - EJ+1, W3 - W3+4.
*
* CALLS WCE.
*
* MACROS MONITOR.
GRE SUBR ENTRY/EXIT
LDN 2
STD T1
GRE1 AOD W1+4 INCREMENT EJT ORDINAL
SOD T4 DECREMENT ENTRIES TO SCAN
MJN GREX IF AT END OF TABLE
LDN EJTE GET NEXT ENTRY ADDRESS
RAD EJ+1
SHN -14
RAD EJ
GRE1.1 SHN 14
LMD EJ+1
ADK JSNE
CRD W3 READ EJT ENTRY
ADK SCLE-JSNE
CRD CN
LDD W3
ZJN GRE1 IF NO EJT ENTRY
LJM GRE3 PROCESS *RCEJ* REQUEST
* PSN (PROCESS *RTEJ* REQUEST)
* PSN
GREA EQU *-2
* PSN (PROCESS *RTEJ* REQUEST)
* PROCESS RESET TIMEOUT REQUEST.
LDD W3+4 COMPARE CONNECTION STATUS
SHN 0-7
LPN 17
LMN OLCS
NJP GRE1.4 IF NOT ON-LINE CONNECTION STATUS
LDD W3+4 GET JOB STATUS
SHN -1
LPN 37
STM GREF+4
LMK PRJS
ZJN GRE1.2 IF PRE-INITIAL JOB STEP
LMK EXJS&PRJS
ZJN GRE1.2 IF EXECUTING JOB
LMK ERJS&EXJS
ZJN GRE1.2 IF ERROR IN ROLLOUT FILE
LMK PCJS&ERJS
ZJN GRE1.2 IF PCP JOB
LDN 1
GRE1.2 ADN 3
STD CM+1 NUMBER OF CHANGES TO MAKE
LDD MA
CWM GREE,CM+1
RJM WCE CHANGE EJT CONNECTION STATUS
LDD CM+1
ZJN GRE1.3 IF REQUEST COMPLETED SUCCESSFULLY
LDD EJ
UJP GRE1.1 RETRY THE REQUEST
GRE1.3 LDC 4000+SYET ALTERNATE EJT FLAG AND ERROR
STD CM+1
LDD W1+4 EJT ORDINAL
STD CM+2
LDD W3 SET JSN
STD CM+3
LDD W3+1
STD CM+4
MONITOR CEFM
GRE1.4 LDD CN COMPARE ORIGIN TYPE
LPN 17
LMM GRED+4
NJN GRE2 IF NOT FOUND
LDD W3+4 COMPARE JOB STATUS
LPN 77
LMN SUJS*2
ZJN GRE4 IF ENTRY FOUND
GRE2 LJM GRE1 CHECK NEXT ENTRY
* PROCESS RECOVER JOB REQUEST.
GRE3 LDD W0 COMPARE JSN
LMD W3
NJN GRE2 IF NOT FOUND
LDD W0+1
LMD W3+1
NJN GRE2 IF NOT FOUND
LDD W3+4 COMPARE CONNECTION STATUS
SHN -7
LPN 17
LMN DTCS
NJN GRE2 IF NOT DETACHED
GRE4 LDN 42B SET INTERLOCK AFTER TWO VERIFICATIONS
STD CM+1
LDD EJ SET ADDRESS OF EJT ENTRY
STD CM+3
LDD EJ+1
STD CM+4
LDD MA
CWM GREC,T1
GREB EQU *-1 ADDRESS OF REQUESTS
MONITOR UTEM
LDD CM+1
SBN 1
ZJN GRE5 IF INTERLOCK SET
SBN 3-1
ZJN GRE5 IF INTERLOCK SET
LDD CM+1
LJM GREX RETURN
GRE5 LDN RTER RETRY ERROR CODE
LJM PERX EXIT
GREC VFD 1/1,5/JSNE,6/24D,6/36D,42/0 JSN (RCEJ)
VFD 1/1,5/JSNE,6/4,6/7,42/DTCS CONNECTION STATUS (RCEJ)
GRED VFD 1/1,5/SCLE,6/4,6/48D,42/0 ORIGIN TYPE (RTEJ)
VFD 1/1,5/JSNE,6/5,6/1,42/SUJS JOB STATUS (RTEJ)
GREE VFD 1/1,5/JSNE,6/4,6/7,42/OLCS CONNECTION STATUS (RTEJ)
GREF VFD 1/1,5/JSNE,6/5,6/1,42/** CONNECTION STATUS (RTEJ)
VFD 6/JSNE,6/4,6/7,42/NICS CONNECTION STATUS (RTEJ)
VFD 6/JSNE,6/5,6/1,42/ROJS JOB STATUS (RTEJ)
PES SPACE 4,10
** PES - PROCESS I/O ERROR STATUS.
*
* ENTRY (RDCT) = DRIVER STATUS.
*
* EXIT TO *PERX* WITH (A) = *REER* IF RECOVERABLE DRIVER
* ERROR.
* TO *PERX* WITH (A) = *ERER* IF UNRECOVERABLE DRIVER
* ERROR.
PES SUBR ENTRY/EXIT
PJN PESX IF NO DRIVER ERROR
LDM RDCT CHECK DRIVER STATUS
SHN 21-12
PJN PES1 IF RECOVERABLE ERROR
LDN ERER UNRECOVERABLE I/O ERROR ON DEVICE
UJN PES2 SET ERROR CODE
PES1 LDN REER RECOVERABLE DISK ERROR
PES2 LJM PERX EXIT
RRF SPACE 4,15
** RRF - READ ROLLOUT FILE.
*
* ENTRY (A) = 0, IF SYSTEM SECTOR READ NEEDED.
* (EJEN) = EJT ENTRY.
* = 1, IF ONLY CPA SECTOR NEEDED.
* (T5 - T6) = ROLLOUT INFORMATION, SETMS DONE.
*
* ERROR TO *PERX* IF ERROR ON READ.
*
* USES T5, T6, T7.
*
* CALLS PES, RDS, RSS.
*
* MACROS SETMS, ENDMS.
RRF SUBR ENTRY/EXIT
NJN RRF1 IF CPA SECTOR REQUEST
LDM EJEN+SCHE*5
STD T5
LDM EJEN+SCHE*5+1
STD T6
SETMS IO
LDN 0
RJM RSS READ SYSTEM SECTOR
RJM PES PROCESS ERROR STATUS
NJN RRF2 IF ERROR ENCOUNTERED
LDM FNSS+4
SHN -6
LMN ROFT
ZJN RRF1 IF ROLLOUT FILE TYPE
ENDMS
UJN RRF2 PROCESS ROLLOUT FILE ERROR
RRF1 LDN CPAI READ CONTROL POINT AREA
STD T7
LDC SBUF
RJM RDS READ CPA
RJM PES PROCESS ERROR STATUS
ENDMS
LDM SBUF CHECK LINKAGE
ZJN RRF2 IF NO LINK
LDM SBUF+1
LMD HN
ZJP RRFX IF FULL SECTOR READ
RRF2 LDN ERER ERROR ENCOUNTERED ON DEVICE
LJM PERX ERROR EXIT
SAM SPACE 4,10
** SAM - SEND ACCOUNTING MESSAGE.
*
* ENTRY (EJEN) = EJT ENTRY.
*
* USES T1, CM - CM+4.
*
* CALLS ACS, CAA, DFM.
SAM SUBR ENTRY/EXIT
LDM EJEN+SCLE*5 SET SERVICE CLASS IN MESSAGE
SHN -6
STM SAMA+4
RJM CAA READ USER NAME
ADN 1
CRD CN
LDD CN+3
SCN 77
STD CN+3
LDC FOTP MOVE FAMILY NAME
CRD CM
LDM EJEN+JSNE*5+2
SHN -6
STD T1
LDD CM
SHN 14
ADD CM+1
ADD T1
CRD CM READ FOT ENTRY
LDD W0
STM SAMA MOVE JSN
LDD W0+1
STM SAMA+1
* BUILD ACCOUNTING MESSAGE BUFFER.
LDC SAMC SET BUFFER LOCATION
STD T1
LDN CN ADD USER NAME
RJM ACS
LDC SAME ADD COMMA
RJM ACS
LDN CM ADD FAMILY NAME
RJM ACS
LDC 0
SAMJ EQU *-1 DTEJ=1, RSEJ=0 (SET BY *DTC*)
NJN SAM1 IF DETACH OF JOB
LDC SAME ADD COMMA
RJM ACS
LDM SAMD+3 ENSURE VALID TERMINAL NAME
SCN 77
STM SAMD+3
LDC SAMD ADD TERMINAL NAME
RJM ACS
SAM1 LDC SAMF ADD PERIOD
RJM ACS
LDC SAMA+AJNN
RJM DFM SEND DAYFILE MESSAGE
LJM SAMX RETURN
SAMA DATA 10LJSNA SC
SAMB DATA 6LARUN,
SAMC BSSZ 17D MESSAGE BUFFER
SAMD DATA 9LTERMNAM
SAME DATA 2L, COMMA AND SPACE
CON 0 TERMINATOR
SAMF DATA 1L. PERIOD
CON 0 TERMINATOR
SEA SPACE 4,10
** SEA - SET ENTRY ADDRESS.
*
* ENTRY (W1+4) = EJT ORDINAL.
*
* EXIT (A) = ADDRESS OF EJT ENTRY.
* (EJ - EJ+1) = ADDRESS OF EJT ENTRY.
*
* MACROS SFA.
SEA SUBR ENTRY/EXIT
SFA EJT,W1+4 READ EJT ENTRY
STD EJ+1 SAVE ADDRESS
SHN -14
STD EJ
SHN 14
LMD EJ+1
UJN SEAX RETURN
SES SPACE 4,10
** SES - SET UP EJT SEARCH.
*
* EXIT (T4) = NUMBER OF POSSIBLE EJT ENTRIES.
* (EJ - EJ+1) = ADDRESS OF EJT ENTRY 0.
*
* USES T2 - T6, EJ - EJ+1.
*
* MACROS SFA.
SES SUBR ENTRY/EXIT
LDN EJTP
CRD T2 SET T4
SOD T4
LDD T3 SET ADDRESS OF EJT 0
STD EJ+1
LDD T2
STD EJ
UJN SESX RETURN
STO SPACE 4,15
** STO - SET TIMEOUT.
*
* ENTRY (EJ - EJ+1) = CM ADDRESS OF EJT ENTRY TO UPDATE.
* (CN - CN+4) = WORD *SCLE* OF EJT ENTRY.
* (STOA) = TIMEOUT FLAG, 0 = ZERO TIMEOUT.
* (STOB) = INTERLOCK CLEAR FLAG, 0 = CLEAR.
* (STOD) = DISABLE TIMEOUT UPDATE FLAG, 0 = DO NOT
* UPDATE TIMEOUT IN EJT ENTRY.
*
* EXIT SCHEDULE FIELD UPDATED IN EJT ENTRY, IF SO DESIRED.
*
* USES CM - CM+4.
*
* CALLS RJC, SFI, WCE.
STO SUBR ENTRY/EXIT
STOD LDN 1
ZJN STOX IF NOT UPDATING TIMEOUT IN EJT
LDC RTCL GET CLOCK TIME
CRM STOC+3,ON
STOA LDN 0 TIMEOUT DELAY FLAG
ZJN STO1 IF NO DELAY DESIRED
LDD CN
SHN -6
RJM RJC GET JOB CONTROL AREA ADDRESS
ADN SVJT
CRD CM
LDD CM+4 TIME DELAY
SHN 3 *10B
RAM STOC+4
SHN -14
RAM STOC+3
STO1 LDN 1 SET NUMBER OF REQUESTS
STD CM+1
LDD MA
CWM STOC,CM+1 SET REQUEST
RJM WCE WRITE CHANGE TO EJT
STOB LDN 0
NJN STOX IF INTERLOCK CLEAR NOT REQUESTED
LDN CEIN CLEAR INTERLOCK
STD T1
LDD EJ
SHN 14
ADD EJ+1
RJM SFI CLEAR INTERLOCK
LJM STOX RETURN
STOC VFD 6/SCHE,6/24D,6/0,42/0
VFD 36/0 SCRATCH FOR RTCL
TAS SPACE 4,10
** TAS - TRANSFER ACCUMULATED SRU-S.
*
* ENTRY (A) = ADDRESS OF SRU ACCUMULATOR.
*
* EXIT (W1 - W1+3) = ACCUMULATED SRU-S.
*
* USES T7.
TAS SUBR ENTRY/EXIT
STM TASA
LDD W1-1
STD T7
LDD MA SET SRU ACCUMULATOR
CWM *,ON
TASA EQU *-1
SBN 1
CRD W1-1
LDD W1
LPN 77
STD W1
LDD T7 SET OVERWRITTEN CELL
STD W1-1
UJN TASX RETURN
VSC SPACE 4,10
** VSC - VALIDATE SERVICE CLASS.
*
* ENTRY (EJEN+SCLE*5) = CURRENT SERVICE CLASS OF JOB.
* (SC) = 0.
*
* EXIT (SC) = SERVICE CLASS TO ASSIGN TO JOB.
* (SC) = 0, IF NO SERVICE CLASS CHANGE.
*
* ERROR (A) = ERROR CODE. EXIT TO *PERX*.
*
* USES OT, SC, T1, T2, T3, CM - CM+4, CN - CN+4.
*
* CALLS RJC, VSP.
VSC SUBR ENTRY/EXIT
LDM EJEN+SCLE*5
SHN -6
STD T1
RJM RJC
ZJN VSCX IF NO JCB DEFINED FOR SERVICE CLASS
ADN PFCT GET SERVICE CLASS TO ASSIGN ON DETACH
CRD CM
* CHECK FOR IMMEDIATE TIMEOUT. ON AN INVOLUNTARY DETACH WHEN
* THE SERVICE CLASS TIMEOUT DELAY IS ZERO, THE JOB WILL BE
* ABORTED IMMEDIATELY.
SBN PFCT-SVJT CHECK SUSPENSION TIMEOUT DELAY
CRD CN
LDD W2+1
SHN -6
SBN UDRC
ZJN VSC2 IF USER DETACH
LDD CN+4
ZJN VSC1 IF INVOLUNTARY DETACH W/O TIMEOUT DELAY
LDD CM+4
STD SC CHANGE SERVICE CLASS UNCONDITIONALLY
UJN VSCX RETURN
VSC1 LDC 4000+STET ABORT JOB WITH *STET* ERROR
STD CM+1
LDD W1+4 EJT ORDINAL
STD CM+2
LDD W0 SET JSN
STD CM+3
LDD W0+1
STD CM+4
MONITOR CEFM
LDN 0
UJN VSC4 RETURN ERROR STATUS
VSC2 LDD T1
SBD CM+4
ZJP VSCX IF NO CHANGE NECESSARY
* VALIDATE SERVICE CLASS.
LDN IAOT SET ORIGIN TYPE
STD OT
LDN 0 INDICATE NON-SUBSYSTEM AND NON-SSJ= JOB
STD T3
LDD MA GET SERVICE CLASS VALIDATION MASK
CWM VMSS-2,ON
SBN 1
CRD CN
LDD CM+4 SET SERVICE CLASS
RJM VSP VALIDATE SERVICE CLASS
NJN VSC3 IF ERROR
LDD T2 SET SERVICE CLASS CHANGE
STD SC
UJP VSCX RETURN
VSC3 SBN 2
ZJN VSC4 IF SERVICE CLASS NOT VALID FOR USER
LDN ISER&SFER
VSC4 LMN ISER SET ERROR STATUS
LJM PERX PROCESS ERROR
VUD SPACE 4,15
** VUD - VALIDATE USER DETACH.
*
* ENTRY (CBUF) = CPA FROM ROLLOUT FILE.
* (EJ - EJ+1) = ADDRESS OF EJT ENTRY.
* (EJEN) = EJT ENTRY.
*
* ERROR (A) = ERROR CODE - EXIT TO *PERX*.
*
* USES T0 - T7, CM - CM+4, CN.
*
* CALLS DTI.
VUD SUBR ENTRY/EXIT
LDD W2+1
SHN -6
SBN UDRC
MJN VUDX IF NOT USER DETACH, DO NOT VALIDATE
LDM CBUF+ACLW*5+3
RJM DTI GET DETACH LIMIT
MJN VUDX IF UNLIMITED
ZJN VUD2 IF DETACH NOT ALLOWED
STD CN STORE DETACH COUNT
* SET UP FAMILY ORDINAL AND USER INDEX.
LDD EJ
SHN 14
LMD EJ+1
CRD T0 (T2-T3) = FAMILY ORDINAL AND USER INDEX
LDN EJTP
CRD T4 (T4-T5) = EJT ADDRESS, (T6) = ENTRY COUNT
* COUNT DETACHED JOBS FOR THIS FO/UI.
VUD1 LDN EJTE
RAD T5
SHN -14
RAD T4
SHN 14
LMD T5
CRD CM READ *JSNE* OF NEXT ENTRY
LDD CM+2
LMD T2
NJN VUD3 IF NO MATCH
LDD CM+3
LMD T3
NJN VUD3 IF NO MATCH
LDD CM+4 CHECK CONNECTION STATUS
SHN -7
LPN 17
LMN DTCS
NJN VUD3 IF NOT DETACHED
SOD CN
VUD2 ZJN VUD4 IF LIMIT EXCEEDED
VUD3 SOD T6 DECREMENT EJT ENTRY COUNT
NJN VUD1 IF SCAN NOT COMPLETE
LJM VUDX RETURN IF VALIDATED
VUD4 LDN DLER DETACH LIMIT EXCEEDED ERROR CODE
LJM PERX ERROR EXIT
WCE SPACE 4,10
** WCE - WRITE CHANGES TO EJT.
*
* ENTRY (CM+1) = NUMBER OF CHANGES TO MAKE.
* (EJ - EJ+1) = ADDRESS OF EJT ENTRY TO CHANGE.
*
* EXIT (A) = 0.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
WCE SUBR ENTRY/EXIT
LDN 0
STD CM+2
LDD EJ
STD CM+3
LDD EJ+1
STD CM+4
MONITOR UTEM UPDATE SCHEDULE FIELD AND JOB STATUS
* LDN 0
UJN WCEX EXIT
SPACE 4,10
** COMMON DECKS.
AST$ SET 1 ASSEMBLE SSCT/SSAT UPDATE FUNCTIONS
*CALL COMPACS
*CALL COMPAST
QUAL$ SET 0
DTI$ SET 1
CET$ EQU 1 DEFINE *CET* ASSEMBLY
*CALL COMPCPE
*CALL COMPCVI
*CALL COMPRJC
*CALL COMPRSS
CJL$ EQU 1 CHECK SERVICE CLASS AT JOB LIMIT
CUV$ EQU 1 CHECK SERVICE CLASS VALID FOR USER
*CALL COMPVSP
SPACE 4,10
EJEN EQU *
SBUF EQU BFMS-506B SECTOR BUFFER
CBUF EQU SBUF+2 CPA BUFFER
ERRNG SBUF-EJEN-5*EJTE EJT ENTRY OVERFLOWS SECTOR BUFFER
OVERFLOW E1MA
OVERLAY (HIGH USAGE EJT SYSTEM REQUEST PROCESSORS.),E1MA
2MD SPACE 4,10
**** *2MD* - HIGH USAGE EJT SYSTEM REQUEST PROCESSORS.
PRS SUBR ENTRY/EXIT
UJN PRSX EXIT
FTJ SPACE 4,10
** FTJ - FREEZE TERMINAL JOB.
*
* *FTJ* FREEZES THE JOB BY ROLLING IT OUT AND SETTING *DOJS*
* IN THE EJT ENTRY TO KEEP IT ROLLED OUT. *FTJ* THEN ISSUES
* A NULL *TSEM* REQUEST TO INFORM IAF THAT THE SYSTEM NO
* LONGER HAS CONTROL OF THE JOB. THE JOB STATUS
* CONTAINED IN THE EJT IN THE SYSTEM SECTOR IS THE STATUS
* AT THE TIME THE JOB LAST ROLLED OUT.
*
* ENTRY (W1+4) = EJT ORDINAL.
*
* USES T1, W5, CM - CM+4, CN - CN+4.
*
* CALLS CAA, IUT.
*
* MACROS DELAY, MONITOR, PAUSE.
FTJ BSS 0 ENTRY
LDK 10000+FTJB
RJM IUT SET FORCED ROLLOUT AND CLEAR FORCED ROLLIN
SFA EJT,W1+4 CHECK FOR *EXJS* JOB STATUS
ADK JSNE
CRD CM
ADK SCHE-JSNE
CRD CN
LDD CM+4 CHECK CONNECTION STATUS
SHN -7
LPN 17
SBN OLCS
NJP FTJ3 IF NOT ONLINE
LDD CM+4
LPN 76
SHN -1
LMN EXJS
ZJN FTJ0 IF JOB IN CM
LMN PCJS&EXJS
NJN FTJ1 IF JOB NOT AT PCP
LCN 2
RAM FTJD
* CLEAR INTERLOCK IN ORDER TO ISSUE THE *ROCM*.
* REQUEST ROLLOUT AND THEN RETURN THE RETRY ERROR CODE TO
* GIVE THE JOB TIME TO ROLL.
FTJ0 LDC 400000 CLEAR INTERLOCK
RJM IUT
LDN ZERL
CRD CM
LDC 4000+ROSR SELECT SCHEDULER ROLLOUT OPTION
STD CM+1
LDD CN+3 SET CONTROL POINT
* LDD CN+1 (PCP JOB)
FTJD EQU *-1
STD CM+2
MONITOR ROCM
LDK RTER RETURN RETRY ERROR CODE
LJM PERX CLEAR INTERLOCK AND DROP
* IF ROLLED JOB IS NOT IN *IOJS* NOR *DOJS* STATUS,
* THEN SEND A NULL *TSEM* REQUEST TO SET *VROT* COMPLETE
* AND SET *DOJS* JOB STATUS IN THE EJT.
FTJ1 LMK DOJS&PCJS
ZJN FTJ2 IF *DOJS* JOB STATUS
LMK IOJS&DOJS
ZJN FTJ2 IF *IOJS* JOB STATUS
AOM FTJA SET *DOJS* JOB STATUS
LDD CM+4
LPN 76
SBN SUJS*2
FTJ2 ZJP FTJ3 IF SUSPENDED
RJM CAA LOAD WORD 5 FROM PARAMETER BLOCK
ADN 5 GET THE TERMINAL NUMBER
CRD W5
LDK ZERL ISSUE *VASO* *TSEM* REQUEST
CRD CM
LDD TN
STD CM+4
LDK VASO
STD CM
LDD MA
CWD CM
FTJ2.1 LDK ZERL
CRD CM
MONITOR TSEM
LDD CM+1
ZJN FTJ3 IF *IAF* INACCESSIBLE OR ERROR
LMC 7777
NJN FTJ3 IF REQUEST COMPLETE
PAUSE ST
LDC 3600 *TSEM* QUEUE FULL - DELAY AND RETRY
STD T1
FTJ2.2 DELAY
SOD T1
ZJN FTJ2.1 IF TIME TO REISSUE REQUEST
UJN FTJ2.2 CONTINUE TO DELAY
* CLEAR FORCED ROLLOUT AND EXIT.
FTJ3 LDC 1*10000+FTJC CLEAR FORCED ROLLOUT
* LDC 2*10000+FTJC SET *DOJS* STATUS ALSO
FTJA EQU *-2
RJM IUT
LDD W1+4 MUST CLEAR INTERLOCK BEFORE DROPPING
STM PERB
LDN 0 INDICATE NO ERRORS
LJM PERX CLEAR INTERLOCK AND DROP
FTJB VFD 1/0,5/SCLE,6/2,6/52D,42/2 SET ROLLOUT, CLEAR ROLLIN
FTJC VFD 1/0,5/SCLE,6/1,6/53D,42/0 CLEAR FORCED ROLLOUT
VFD 1/0,5/JSNE,6/5,6/1,42/DOJS SET *DOJS* JOB STATUS
SUB SPACE 4,10
** SUB - SET USER BREAK IN EJT ENTRY.
*
* ENTRY (W1+3) = USER BREAK ERROR FLAG.
* (W1+4) = EJT ORDINAL.
*
* CALLS IUT.
SUB BSS 0 ENTRY
* WHEN SETTING A USER BREAK ERROR FLAG ON A JOB RECENTLY
* RECOVERED, THE JOB STATUS COULD BE *SUJS*. IF SO, CHANGE
* THE STATUS TO *DOJS* SO THAT THE JOB CAN BE ENABLED TO
* PROCESS THE ERROR FLAG.
SFA EJT,W1+4 CHECK FOR *SUJS* STATUS
ADK JSNE
CRD CM
LDD CM+4
LPN 76
SBN SUJS*2
NJN SUB1 IF NOT *SUJS* STATUS
AOM SUBA SET *DOJS* STATUS
SUB1 LDD W1+3
STM SUBB+4
LDC 1*10000+SUBB SET USER BREAK ERROR FLAG
* LDC 2*10000+SUBB SET *DOJS* STATUS ALSO
SUBA EQU *-2
RJM IUT ISSUE *UTEM*
LJM PERX DROP
SUBB VFD 1/0,5/PRFE,6/12D,6/36D,42/0 SET USER BREAK ERROR FLAG
VFD 1/0,5/JSNE,6/5,6/1,42/DOJS SET *DOJS* JOB STATUS
TITLE EJT SYSTEM REQUEST SUBROUTINES.
TITLE USER BREAK SUBROUTINES.
IUT SPACE 4,15
** IUT - ISSUE *UTEM* MONITOR FUNCTION.
*
* ENTRY (A) = 1/I, 2/, 3/C, 12/P
* I = 0 IF INTERLOCK SHOULD BE SET.
* = 1 IF INTERLOCK SHOULD BE CLEARED.
* C = NUMBER OF *UTEM* PARAMETER WORDS.
* = 0 IF INTERLOCK REQUEST.
* P = PARAMETER LIST ADDRESS.
* (W1+4) = EJT ORDINAL.
*
* EXIT (A) = 0 IF *UTEM* FUNCTION WAS SUCCESSFUL.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
IUT SUBR ENTRY/EXIT
STM IUTA PARAMETER LIST ADDRESS
SHN -14
STD CM+1
LPN 7 NUMBER OF PARAMETER WORDS
ZJN IUT1 IF NO PARAMETER WORDS
STD CM+2
LDD MA WRITE PARAMETERS TO MESSAGE BUFFER
CWM **,CM+2
IUTA EQU *-1
LDN 0
IUT1 STD CM+2
SFA EJT,W1+4 SET UP EJT ADDRESS
STD CM+4
SHN -14
STD CM+3
MONITOR UTEM
LDD CM+1
UJN IUTX RETURN
SPACE 4,10
OVERFLOW E1MA
OVERLAY (PROCESS CLOCK UPDATE.),E1MA
PCU SPACE 4,10
*** *PCU* - PROCESS CLOCK UPDATE.
*
* *PCU* WILL DELAY INTERNALLY UNTIL *PDTL* INDICATES THAT A
* MINUTE ROLLOVER OCCURS (DUE TO THE HARDWARE CHARACTERISTICS
* OF THE WALL CLOCK CHIP HARDWARE IN SOME CYBER 180 MODELS)
* AND THEN WRITE A REQUEST INTO THE *DFT/OS BUFFER* SO THAT
* *1MB* WILL BE CALLED BY *MTR* TO UPDATE THE WALL CLOCK CHIP
* (IF PRESENT) AND/OR CTI-MAINTAINED CLOCK VIA *DFT*.
PCU SUBR ENTRY/EXIT
RJM PRS PRESET PROGRAM
RJM WDC WAIT FOR DEADSTART COMPLETE
RJM WIB WAIT FOR INACTIVE NOS REQUEST AREA
RJM WMR WAIT FOR MINUTE ROLLOVER
RJM FDR FORMAT *DFT* REQUEST ENTRY
RJM CRF CLEAR CTI CLOCK UPDATE ACTIVE FLAG
UJN PCUX RETURN
TITLE SUBROUTINES.
CRF SPACE 4,10
** CRF - CLEAR CTI CLOCK UPDATE ACTIVE FLAG.
*
* EXIT CTI CLOCK UPDATE ACTIVE FLAG CLEARED IN CMR.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
CRF SUBR ENTRY/EXIT
LDN ZERL SET UP *UADM* CALL
CRD CM
AOD CM+1 SET OPTION COUNT
STD CM+2 SET *NODROP* FLAG
LDD MA WRITE *UADM* PARAMETERS
CWM CRFA,ON
MONITOR UADM CLEAR CTI CLOCK UPDATE ACTIVE FLAG
UJN CRFX RETURN
* *UADM* PARAMETERS TO CLEAR CTI CLOCK UPDATE ACTIVE FLAG.
CRFA VFD 12/LDOS,12/INWL,12/3*100+1,24/0
FDR SPACE 4,10
** FDR - FORMAT *DFT* REQUEST.
*
* EXIT FORMATTED REQUEST WRITTEN TO NOS REQUEST AREA.
*
* USES T1, CM - CM+4, CN - CN+4.
*
* CALLS PDT, SDA.
*
* MACROS DELAY, MONITOR.
FDR SUBR ENTRY/EXIT
* OBTAIN INTERLOCK ON NOS REQUEST AREA.
FDR1 RJM SDA SET ADDRESS OF NOS REQUEST HEADER
STD CM+4 SAVE ADDRESS FOR *UTEM*
SHN -14
STD CM+3
LDN 2 SET NUMBER OF REQUESTS
STD CM+1
LDD MA WRITE REQUESTS TO MESSAGE BUFFER
CWM FDRB,CM+1
MONITOR UTEM ATTEMPT TO GET INTERLOCK
LDD CM+1 CHECK STATUS
ZJN FDR2 IF INTERLOCK OBTAINED
DELAY
UJN FDR1 RETRY INTERLOCK ATTEMPT
* FORMAT REQUEST.
FDR2 LDN /DFT/RQDT SET TASKID FOR CLOCK UPDATE
STD T1
RJM PDT PACK DATE AND TIME
LDN ACPL CHECK CPU-0 *OFF* STATUS
CRD CM
LDD CM
SHN 21-13
PJN FDR3 IF CPU-0 *ON*
AOM FDRA CHANGE TO READ *FRC* FOR CPU-1
FDR3 LDC CMTP
CRD CM
LDD CM+3 SET FWA OF *CPUMTR*
SHN 14
LMD CM+4
FDRA ADN CPBT READ *FRC* FOR CPU-0
* ADN CPBT+1 (CPU-0 *OFF*)
CRD CM
* THE FOLLOWING CODE ASSUMES THERE IS ONLY ONE REQUEST BUFFER
* WHICH IMMEDIATELY FOLLOWS THE REQUEST HEADER.
RJM SDA SET ADDRESS OF NOS REQUEST HEADER
ADN 1
CWD T1 WRITE REQUEST TO BUFFER
ADN 1
CWD CM
SBN 2 READ NOS REQUEST HEADER
CRD CN
LDN /DFT/STRY SET STATUS = *READY*
STD CN+4
RJM SDA SET ADDRESS OF NOS REQUEST HEADER
CWD CN
LJM FDRX RETURN
* *UTEM* REQUEST PARAMETERS.
FDRB VFD 1/1,5/0,6/12D,6/0,42//DFT/STIN VERIFY INACTIVE
VFD 1/0,5/0,6/12D,6/0,42//DFT/STIK SET INTERLOCK
PDT SPACE 4,10
** PDT - PACK DATE AND TIME.
*
* EXIT (T1+1 - T1+4) = PACKED DATE AND TIME IN *DFT* FORMAT.
*
* USES CM - CM+4.
PDT SUBR ENTRY/EXIT
LDN DTEL READ DISPLAY DATE
CRD CM
LDD CM PROCESS YEAR FIELD
LPN 77
SBN 1R0
SHN 10
STD T1+1
LDD CM+1
SHN -6
SBN 1R0
SHN 4
RAD T1+1
LDD CM+2 PROCESS MONTH FIELD
SHN -6
SBN 1R0
RAD T1+1
LDD CM+2
LPN 77
SBN 1R0
SHN 10
STD T1+2
LDD CM+3 PROCESS DAY FIELD
LPN 77
SBN 1R0
SHN 4
RAD T1+2
LDD CM+4
SHN -6
SBN 1R0
RAD T1+2
LDN TIML READ DISPLAY TIME
CRD CM
LDD CM PROCESS HOUR FIELD
LPN 77
SBN 1R0
SHN 10
STD T1+3
LDD CM+1
SHN -6
SBN 1R0
SHN 4
RAD T1+3
LDD CM+2 PROCESS MINUTES FIELD
SHN -6
SBN 1R0
RAD T1+3
LDD CM+2
LPN 77
SBN 1R0
SHN 10
STD T1+4
* LDN 0 PROCESS SECONDS FIELD
* RAD T1+4
LJM PDTX RETURN
SDA SPACE 4,10
** SDA - SET NOS REQUEST HEADER ADDRESS.
*
* EXIT (A) = ADDRESS OF NOS REQUEST HEADER.
SDA SUBR ENTRY/EXIT
SDAA LDC ** (ADDRESS OF NOS REQUEST HEADER)
UJN SDAX RETURN
WDC SPACE 4,10
** WDC - WAIT FOR DEADSTART COMPLETE.
*
* EXIT DEADSTART COMPLETED.
*
* USES CM - CM+4.
*
* MACROS DELAY.
WDC SUBR ENTRY/EXIT
WDC1 LDK INWL READ INTERLOCK WORD
CRD CM
LDD CM+3
SHN 21-3
PJN WDCX IF DEADSTART SEQUENCING COMPLETE
DELAY 1*10 DELAY FOR ONE MILLISECOND
UJN WDC1 RECHECK DEADSTART IN PROGRESS
WIB SPACE 4,10
** WIB - WAIT FOR INACTIVE NOS REQUEST AREA.
*
* THIS ROUTINE IS NEEDED TO AVOID A LARGE TIME ERROR WHEN
* *1MA* IS CALLED DURING DEADSTART, SINCE THE REQUEST BUFFER
* WILL INITIALLY CONTAIN THE *SET*-SUPPLIED ERROR THRESHOLDS.
*
* CALLS SDA.
*
* USES CM - CM+4.
*
* MACROS DELAY.
WIB SUBR ENTRY/EXIT
WIB1 RJM SDA READ NOS REQUEST HEADER
CRD CM
LDD CM+4
ZJN WIBX IF NO REQUEST PRESENT
DELAY
UJN WIB1 LOOP TILL REQUEST CLEARS
WMR SPACE 4,10
** WMR - WAIT FOR MINUTE ROLLOVER.
*
* EXIT MINUTE ROLLOVER HAS JUST OCCURRED.
*
* USES CM - CM+4.
*
* MACROS DELAY.
WMR SUBR ENTRY/EXIT
WMR1 LDN PDTL READ PACKED DATE AND TIME
CRD CM
LDD CM+4 GET SECONDS
LPN 77
ZJN WMRX IF MINUTE JUST ROLLED OVER
DELAY 1*10 DELAY FOR ONE MILLISECOND
UJN WMR1 RECHECK TIME
TITLE PRESET PROGRAM.
PRS SPACE 4,10
** PRS - PRESET PROGRAM.
*
* EXIT (SDAA) = ADDRESS OF NOS REQUEST HEADER.
PRS SUBR ENTRY/EXIT
LDN EIBP LOCATE DFT/OS BUFFER
CRD CM
LDD CM+3
SHN 14
LMD CM+4
ADN DSCM+3
CRD CM
LDD CM+2 READ *DFT* CONTROL WORD
SHN 14
LMD CM+3
SHN -4
SHN 6
LMD CM
ADN /DFT/DFRQ READ NOS REQUEST AREA POINTER
CRD CM
LDD CM+2 SET ADDRESS OF NOS REQUEST HEADER
SHN 14
LMD CM+3
SHN -4
SHN 6
LMD CM
STM SDAA+1 SAVE ADDRESS
SHN -14
RAM SDAA
UJN PRSX RETURN
OVERFLOW E1MA
OVERLAY (LOG SOFTWARE ERROR.),E1MA
SPACE 4,10
**** *2MG* - LOG SOFTWARE ERROR.
*
* *2MG* LOGS A SOFTWARE ERROR. AN ERROR LOG MESSAGE IS
* ISSUED INDICATING THE NAME OF THE PP PROGRAM AND
* THE ADDRESS WITHIN THE PP PROGRAM WHERE THE ERROR
* WAS DETECTED. AN OPERATOR ERROR LOG EVENT IS ISSUED
* TO ALERT THE OPERATOR THAT THE ERROR LOG MESSAGE WAS ISSUED.
* A BML MESSAGE IS ALSO ISSUED.
LCE SPACE 4,10
*** LCE - LOG SOFTWARE ERROR.
*
* ENTRY
*T IR 18/ *1MA*, 1/, 5/CP, 12/7, 24/ADDR
* CP CONTROL POINT NUMBER.
* ADDR ABSOLUTE ADDRESS OF ARGUMENTS.
*
*T ADDR 60/IL
*T,ADDR+1 6/, 6/AF, 12/PA, 24/JSN, 12/SC
*T,ADDR+2 60/IR
*T,ADDR+3 60/OR
*T,ADDR+4 60/MB
* IL INTERLOCK, SET BY *CPUMTR*, CLEARED BY *1MA*.
* AF ABORT FLAG.
* 0 - NO USER JOB IMPACT.
* 1 - JOB STEP ABORTED.
* 2 - JOB ABORTED.
* 3 - PP HUNG.
* PA ADDRESS IN PP PROGRAM WHERE ERROR DETECTED.
* JSN JSN OF JOB PP ASSIGNED TO OR ZERO.
* SC JOB SERVICE CLASS.(ONE DISPLAY CHARACTER SERVICE CODE)
* IR INPUT REGISTER OF PP THAT DETECTED ERROR.
* OR OUTPUT REGISTER OF PP THAT DETECTED ERROR.
* MB FIRST WORD OF MESSAGE BUFFER OF PP THAT
* DETECTED ERROR.
*
* USES CM - CM+4, CN - CN+4.
*
* CALLS C2D, DFM.
*
* MACROS MONITOR.
LCE SUBR ENTRY/EXIT
LDN ZERL
CRD CM
LDD IR+3 GET ADDRESS OF ARGUMENTS
SHN 14
LMD IR+4
ADN 1
CRD CN GET ARGUMENTS
CRM LCEB+5,ON
CRM LCEB+2*5,TR
SBN 5
CWD CM CLEAR BUFFER INTERLOCK
* FORM *ERRLOG* MESSAGE.
LDM LCEB+2*5+1 STORE PP PROGRAM NAME
SCN 77
SHN 6
ADM LCEB+2*5
SHN 6
STM LCEA+1*5+1
SHN -14
LMC 5500
STM LCEA+5
LDD CN+1 STORE P ADDRESS
SHN -6
RJM C2D CONVERT TO DISPLAY CODE
STM LCEA+1*5+3
LDD CN+1
RJM C2D CONVERT TO DISPLAY CODE
STM LCEA+1*5+4
LDD CN+2
ZJN LCE1 IF NO JSN SUPPLIED
STM LCEA STORE JSN IN ERROR LOG MESSAGE
LDD CN+3
STM LCEA+1
LDD CN+4 STORE SERVICE CLASS
STM LCEA+4
LCE1 LDC LCEA+EJNN
RJM DFM ISSUE DAYFILE MESSAGE TO ERROR LOG
* LDN 0 ISSUE ERROR LOG EVENT
STD CM+1
STD CM+3
LDN ELAE
STD CM+4
MONITOR EATM
LDN LCEBL SET LENGTH OF BML MESSAGE
STD CM+1
LDC LCEB+BMLN
RJM DFM ISSUE MESSAGE TO BML
LJM LCEX RETURN
LCEA VFD 24/4L"SJSN",24/-0,12/SYSC
DATA C* PPN P0000 SYSTEM ERROR.*
LCEB CON /COMSDFS/SM0411 BML MESSAGE BUFFER
CON /COMSDFS/SS0100
CON 0,0,0
BSS 5 ARGUMENTS
BSS 5 *IR* OF PP THAT DETECTED ERROR
BSS 5 *OR* OF PP THAT DETECTED ERROR
BSS 5 FIRST WORD OF MESSAGE BUFFER
LCEBL EQU *-LCEB LENGTH OF BML MESSAGE
SPACE 4,10
** COMMON DECKS.
*CALL COMPC2D
SPACE 4,15
OVERLAY (CPP REQUEST PROCESSORS.),E1MA
SPACE 4,10
**** *2MH* - CPP REQUEST PROCESSORS.
*
* *2MH* PROCESSES THE *1MA* FUNCTIONS FOR CONCURRENT PP-S.
*
* ENTRY
*T IR 18/ *1MA*,1/,5/ CP,12/ FUNC,12/,12/ IA
* CP SYSTEM CONTROL POINT NUMBER.
* FUNC FUNCTION CODE.
* 10 = LOAD CPP RESIDENT.
* 11 = LOAD OVERLAY FOR CPP.
* 12 = IDLE CPP.
* IA CPP INPUT REGISTER ADDRESS.
DIRECT SPACE 4,10
** DIRECT CELLS.
CC EQU FN CPP-S CONTROL POINT ADDRESS
DA EQU FN+1 TEMPORARY USED BY *LPR*
DB EQU FN+2 TEMPORARY USED BY *LPR*
EC EQU FN+3 C180 IOU CONNECT CODE
NC EQU FN+4 NUMBER OF CPP-S
NP EQU FS NUMBER OF NPP-S
PC EQU FS+1 FWA OF PP COMMUNICATION AREA FOR CPP 0
PN EQU FS+2 THE NUMBER OF THE CPP
PP EQU FS+3 FWA OF PP COMMUNICATION AREA
RN EQU FS+4 C180 REGISTER NUMBER
COMMON SPACE 4,10
* COMMON DECKS.
QUAL$ EQU 1 DO NOT QUALIFY COMMON DECKS
*CALL COMPIOU
*CALL COMPMRM
*CALL COMSDFS
*CALL COMSIOU
CPP SPACE 4,30
** CPP - CONCURRENT PP PROCESSOR.
*
* *CPP* VERIFIES THE REQUEST, INITIALIZES MEMORY CELLS, AND
* CALLS THE APPROPRIATE PROCESSOR.
*
* ENTRY (IR - IR+4) = REQUEST.
* (CN - CN+4) = OVERLAY LOAD PARAMETERS.
*
* EXIT - TO CORRECT CPP SUBPROCESSOR.
* (CC) = CONTROL POINT AREA ADDRESS OF CALLER.
* (EC) = IOU CONNECT CODE.
* (NC) = NUMBER OF CIO PP-S.
* (NP) = NUMBER OF NIO PP-S.
* (PC) = PP COMMUNICATION AREA ADDRESS FOR FIRST CIO PP.
* (PN) = CIO PP NUMBER.
* (PP) = PP COMMUNICATION AREA ADDRESS FOR FIRST NIO PP.
* (CPPA) = ENVIRONMENTAL CONTROL REGISTER NUMBER.
* (CPPB) = STATUS REGISTER NUMBER.
* (CPPC) = BIASED CIO PP NUMBER.
* (CPPD) = IOU MODEL NUMBER.
*
* ERROR TO *CHG* TO HANG THE PP IF INCORRECT CPP FIELD.
*
* USES CC, EC, NC, NP, PC, PN, PP, CM - CM+4, CN - CN+4.
*
* CALLS AIC, CHG, DPL, SPB.
CPP SUBR ENTRY/EXIT
LDD MA SAVE LOAD PARAMETERS
CWD CN
LDN PPCP GET PP COMMUNICATION AREA ADDRESS
CRD CM
ADK EABL+IOEI-PPCP GET IOU CONNECT CODE
CRD CN
LDD CM+4
STD PP SET PP COMMUNICATION AREA ADDRESS
LDD CN+3
STD EC SET IOU CONNECT CODE
LDN PPUL GET NUMBER OF PP-S AND CPP-S
CRD CM
LDD CM+3 VALIDATE THAT CPP-S ARE PRESENT
LPN 77
ZJN CPP1 IF NO CPP-S
STD NC SET NUMBER OF CPPS
LDD CM+2
STD NP
SHN 3
ADD PP
STD PC SET ADDRESS OF FIRST CPP
LDD IR+4
CRD CM READ CPP-S INPUT REGISTER
SBD PC
MJN CPP1 IF NOT A CPP INPUT REGISTER ADDRESS
SHN -3
STD PN SET THE CPP NUMBER
SBD NC
MJN CPP1.1 IF A VALID CPP
CPP1 LJM CPP3 CONDITIONALLY HANG PP
CPP1.1 LDD CM+1 SET CONTROL POINT ADDRESS
LPN 37
SHN 7
STD CC
LDK ECCR SET ENVIRONMENTAL CONTROL REGISTER NUMBER
STM CPPA
ADK SRCR-ECCR SET STATUS REGISTER NUMBER
STM CPPB
LDD PN SET CIO PP NUMBER
STM CPPC
LDD CN+1
SCN 77
SHN 6
LMD CN
SHN 6
CRD CN GET IOU MODEL NUMBER
LDD CN+2
SHN -4
STM CPPD
LMC 0#42
NJN CPP1.2 IF NOT MODEL 42 IOU
LDK DEMR SET ENVIRONMENTAL CONTROL REGISTER NUMBER
STM CPPA
ADK ISTR-DEMR SET STATUS REGISTER NUMBER
STM CPPB
LDN 30 BIAS CIO PP NUMBER
RAM CPPC
* CALCULATE CPP SUBFUNCTION AND PROCESS IT.
CPP1.2 LDD IR+2
SBN 11B
PJN CPP2 IF NOT DEADSTART A CPP AND LOAD *PPR*
LDD PN PP NUMBER
LMC 10000
RJM SPB SET LOWER PP BIT
RJM DPL DEADSTART PP AND LOAD *PPR*
UJN CPP4 RETURN
CPP2 NJN CPP5 IF NOT LOAD CPP OVERLAY REQUEST
RJM LOV LOAD CPP OVERLAY
UJN CPP4 RETURN
CPP3 RJM CHG CONDITIONALLY HANG THE PP
CPP4 LJM CPPX RETURN
CPP5 RJM AIC ATTEMPT TO IDLE THE CPP
NJN CPP3 IF PP NOT IDLED
LDN ZERL CLEAR INPUT AND OUTPUT REGISTERS
CRD CN
LDD IR+4
CWM CN,ON
CWD CN
UJN CPP4 RETURN
CPPA CON 0 ENVIRONMENTAL CONTROL REGISTER NUMBER
CPPB CON 0 STATUS REGISTER NUMBER
CPPC CON 0 BIASED CIO PP NUMBER
CPPD CON 0 IOU MODEL NUMBER
DPL SPACE 4,20
** DPL - DEADSTART PP AND LOAD *PPR*.
*
* ENTRY (IR+4) = ADDRESS OF CPP COMMUNICATION AREA.
* (CPPA) = ENVIRONMENTAL CONTROL REGISTER NUMBER.
* (CPPC) = BIASED PP NUMBER.
* (EC) = ELEMENT CONNECT CODE.
* (PP) = PP COMMUNICATION AREA ADDRESS.
* *PPR* AT PBUF.
*
* EXIT IF UNABLE TO COMPLETE DEADSTART/LOAD, THE CPP IS IDLED
* AND ITS INPUT REGISTER SET TO ***. ALSO A BML MESSAGE
* ISSUED WITH THE CPP NUMBER AND THE REASON FOR THE
* FAILURE.
*
* USES DA, RN, T6, CM - CM+4, CN - CN+4.
*
* CALLS AIC, AMA, IEM, NEC, RMA, SCU.
*
* MACROS DELAY, LOCKMR, PAUSE, READMR, WRITMR.
DPL6 RJM RMA RELEASE MULTIPLEXER ACCESS
LDN 0 CLEAR CHANNEL ASSIGNED FLAG
STM CHFL
DPL SUBR ENTRY/EXIT
LDN 0
STD DA INITIALIZE DEADSTART/LOAD ATTEMPT COUNT
LDD IR+4
STM PBUF+IA SET UP *IA*, *OA*, *MA*, *CP* FOR THIS PP
ADN 1
STM PBUF+OA
ADN 1
STM PBUF+MA
LDD CC SET CONTROL POINT ADDRESS
STM PBUF+CP
DPL1 RJM AMA ACCESS MULTIPLEXER CHANNEL
* DEADSTART PP.
LOCKMR SET SET LONG TERM INTERLOCK
LDM CPPA SET EC REGISTER NUMBER
STD RN
READMR RBUF READ EC REGISTER
LDM RBUF+4 SET PP NUMBER
SCN 37
LMM CPPC
STM RBUF+4
LDM RBUF+5 SET CHANNEL NUMBER
SCN 37
LMN MX
STM RBUF+5
LDM RBUF+6 SET LOAD MODE BIT
SCN 37
LMN 20
STM RBUF+6
LDM RBUF+7 SET ENABLE BIT
SCN 40
LMN 40
STM RBUF+7
WRITMR RBUF WRITE EC REGISTER
LOCKMR CLEAR
RJM NEC NORMALIZE EC REGISTER
* LOAD *PPR*.
LDC MSFW+1 OUTPUT START ADDRESS
OAN MX+40
DELAY
LDN 1 *CPP NOT RESPONDING*
FJM DPL4,MX IF WORD NOT ACCEPTED ON CHANNEL
LDK .BLI-1 OUTPUT UP TO *.BLI* ENTRY POINT
OAM PBUF+1,MX
LDM PBUF+.BLI MAKE (*.BLI*) A LONG INSTRUCTION
LMC 1S15
OAN MX+40
LDK PBUFL-.BLI-1 OUTPUT THE REST OF *PPR*
OAM PBUF+.BLI+1,MX
DELAY
LDN 2 *CPP HUNG ON INPUT*
FJM DPL4,MX IF CHANNEL STILL FULL
LDN 3 *CHANNEL 15 PARITY ERROR*
SFM DPL4,MX IF PARITY ERRORS
DCN MX+40 DISCONNECT CHANNEL TO START PP
* WAIT FOR PP TO INITIALIZE.
*
* NOTE - THE DELAY MUST BE LONG ENOUGH TO ALLOW *PPR*
* PRESET TO COMPLETE.
LDD TH SET DELAY LOOP COUNT
STD T6
DPL2 PAUSE NE
DELAY
SOD T6
ZJN DPL3 IF TIME OUT
LDD IR+4 CHECK PP OUTPUT REGISTER
ADN 1
CRD CN
SOD CN
ZJN DPL2 IF *PLL* HAS NOT RUN
LJM DPL6 RETURN
* PROCESS DEADSTART ERROR CONDITIONS.
DPL3 LDN 4 *PPR PRESET TIMEOUT*
DPL4 STM DPLA+2,DA SAVE THE ERROR CODE
RJM AIC ATTEMPT TO IDLE THE CPP
RAD DA INHIBIT RETRY IF IDLE FAILED
RJM RMA RELEASE MULTIPLEXER ACCESS
AOD DA INCREMENT RETRY COUNT
SBN 10
MJP DPL1 IF DEADSTART IS TO BE RETRIED
NJN DPL5 IF IDLE FAILED
RJM SCU SET CPP UNAVAILABLE
DPL5 RJM IEM ISSUE ERROR MESSAGE
LJM DPLX RETURN
DPLA SPACE 4,15
** DPLA - FAILURE CODE BUFFER.
*
* EACH TIME THAT A DEADSTART ATTEMPT FAILS, THE FAILURE CODE IS
* SAVED IN *DPLA*. IF THE RETRY COUNT IS EXCEEDED AND A BML
* MESSAGE IS WRITTEN, THE FAILURE CODES WILL BE INCLUDED IN THE
* MESSAGE. THE CODES HAVE THE FOLLOWING MEANINGS.
*
* 1 CPP NOT RESPONDING. IT IS NOT READING PP RESIDENT.
* 2 CPP HUNG ON INPUT. IT HAS NOT FINISHED READING.
* 3 CHANNEL 15 PARITY ERROR.
* 4 PPR PRESET TIMEOUT. PP RESIDENT IS HUNG IN PRESET.
DPLA BSSZ 2+10B FAILURE CODE BUFFER
AIC SPACE 4,10
** AIC - ATTEMPT TO IDLE THE CPP.
*
* ENTRY (CPPC) = BIASED PP NUMBER.
*
* EXIT (A) = 0 IF PP IDLED.
* (A) .LT. 0 IF UNABLE TO IDLE PP.
*
* CALLS IPP.
AIC SUBR ENTRY/EXIT
LDN 6 IDLE AND K REGISTER BITS
RJM IPP IDLE PP
LDN 16 DUMP, IDLE AND K REGISTER BITS
RJM IPP IDLE PP WITH DUMP BIT SET
UJN AICX RETURN
IEM SPACE 4,10
** IEM - ISSUE ERROR MESSAGE TO BML AND SYSTEM CONTROL POINT.
*
* ENTRY (PN) = CPP NUMBER.
*
* EXIT BML MESSAGE ISSUED WITH PP NUMBER.
*
* USES T1, CN - CN+4.
*
* CALLS C2D, IBM.
IEM SUBR ENTRY/EXIT
LDN 2 ENTER FAILURE CODES IN BML MESSAGE
STD T1
LDD MA
CWM DPLA,T1
SBN 2
CRM IBMA,T1
LDC /COMSDFS/HS0125 SET SYMPTOM CODE
STD T1
LDN ZERL CLEAR DATA WORD
CRD CN
LDD PN SET CPP NUMBER
STD CN+4
LDC /COMSDFS/HM0240 SET MESSAGE ID
RJM IBM ISSUE BML MESSAGE
LDD PN CONVERT CPP NUMBER TO DISPLAY CODE
RJM C2D
STM IEMA+11 STORE CPP NUMBER
LDN NCPL ISSUE MESSAGE TO SYSTEM CONTROL POINT
CRD CN
AOD CN+1
SHN 7
ADK MS2W
CWM IEMA,TR
UJP IEMX RETURN
IEMA DATA C* DEADSTART OF CPP XX FAILED*
IPP SPACE 4,20
** IPP - IDLE PP.
*
* ENTRY (A) = BIT SETTING FOR CORRECT IDLE PROCESSING.
* (CPPA) = ENVIRONMENTAL CONTROL REGISTER NUMBER.
* (CPPB) = STATUS REGISTER NUMBER.
* (CPPC) = BIASED CPP NUMBER.
*
* EXIT (A) = 0 IF CPP IDLED.
* (A) .LT. 0 IF UNABLE TO IDLE CPP.
* BML MESSAGE ISSUED IF UNABLE TO IDLE.
*
* USES RN, T1, T4, CN - CN+4.
*
* CALLS IBM, NEC, SCU.
*
* MACROS DELAY, LOCKMR, MONITOR, PAUSE, READMR, WRITMR.
IPP SUBR ENTRY/EXIT
STD CN SAVE IDLE BIT SETTING
STD CN+1
LDN 10 INITIALIZE TIME OUT COUNT
STD T4
IPP1 LOCKMR SET GET LONG TERM INTERLOCK
LDM CPPA SET EC REGISTER NUMBER
STD RN
READMR RBUF READ EC REGISTER
LDM RBUF+4 SET PP NUMBER
SCN 37
LMM CPPC
STM RBUF+4
LDM RBUF+5 SET CHANNEL FOR DUMP
SCN 37
ADN 16 NON-EXISTANT CHANNEL NUMBER
STM RBUF+5
LDM RBUF+6 SET DUMP AND IDLE MODE BITS, K REGISTER
SCN 37
ADD CN IDLE BIT SETTING
STM RBUF+6
LDM RBUF+7 SET ENABLE BIT
SCN 40
ADN 40
STM RBUF+7
WRITMR RBUF WRITE EC REGISTER
LDM CPPB SET STATUS REGISTER NUMBER
STD RN
READMR IBUF READ INPUT STATUS REGISTER
LOCKMR CLEAR CLEAR LONG TERM INTERLOCK
LDM IBUF+4 CHECK IF PP IN IDLE MODE
LPN 3
SHN 10
ADM IBUF+5
SHN 10
ADM IBUF+6
LMC 107700
ZJN IPP2 IF PP IDLING
SOD T4
ZJN IPP3 IF TIME OUT
PAUSE NE
LDN 2 SET READ K REGISTER ONLY
STD CN
LJM IPP1 LOOP
* COMPLETE NORMALIZATION OF *EC* REGISTER.
IPP2 RJM NEC NORMALIZE EC REGISTER
LDN 0
UJN IPP4 RETURN
* PROCESS IDLING ERROR.
IPP3 RJM NEC NORMALIZE EC REGISTER
LDD CN+1
LPN 10
ZJN IPP4 IF NOT DUMP MODE
LDC /COMSDFS/HS0122 SET SYMPTOM CODE
STD T1
LDN ZERL CLEAR DATA WORD
CRD CN
LDD PN SET PP NUMBER
STD CN+4
LDC /COMSDFS/HM0240 SET MESSAGE ID
RJM IBM ISSUE BML MESSAGE
RJM SCU SET CPP UNAVAILABLE
LCN 1 SET ERROR FLAG
IPP4 LJM IPPX RETURN
LOV SPACE 4,30
** LOV - LOAD CPP OVERLAY.
*
* OVERLAY IS PASSED TO THE CPP VIA THE CPP-S MESSAGE BUFFER.
* THE LOAD PARAMETERS INDICATE WHERE TO FIND THE OVERLAY.
*
*T MB 12/ , 12/ EQ, 12/ TK, 12/ SC, 12/ MBA
*
* EQ = EQUIPMENT TO LOAD FROM.
* TK = TRACK.
* SC = SECTOR.
* MBA = CPP MB+1 ADDRESS.
*
* BYTE 0 OF MBA IS THE CONTROL BYTE.
* 0 = 6DD READY FOR DATA.
* N = WORDS IN MB+2 - MB+5 TO COPY.
* 2000 = EOR.
* 4000 = ERROR ON OVERLAY READ.
*
* ENTRY (MB) = LOAD PARAMETERS.
*
* USES DA, PP, T1, CM - CM+4, T4 - T7.
*
* CALLS DFM, RNS.
*
* MACROS DELAY, ENDMS, SETMS.
LOV SUBR ENTRY/EXIT
LDD MA READ LOAD PARAMETERS
CRD T4
LDD CM SAVE CPP MESSAGE BUFFER ADDRESS
STD PP
LOV1 SETMS READSYS
LDC BFMS+2 SET DATA ADDRESS
STM LOVA
SBN 2
RJM RNS READ NEXT SECTOR
MJP LOV5 IF READ ERROR
STD DA SAVE THE WORD COUNT
ENDMS
LOV2 LDC 2000
STD T1
LDD DA
NJN LOV2.1 IF NOT END OF SECTOR
LDM BFMS+1
SBD HN
ZJN LOV1 IF FULL SECTOR OF DATA
LJM LOV6 SEND EOR RESPONSE TO THE CPP
LOV2.1 LDN 4
STD CM
LCN 4
RAD DA
PJN LOV3 IF FULL BLOCK TO COPY
RAD CM
LOV3 LDD PP COPY BLOCK TO CPP
ADN 1
CWM **,CM
LOVA EQU *-1
LDD PP
CWD CM
LDN 4*5 ADVANCE THE WRITE ADDRESS
RAM LOVA
LDD CM
SBN 4
MJN LOV6 IF NOT A FULL BLOCK
LOV4 DELAY WAIT FOR CPP READY
PAUSE NE
LDD PP
CRD CM
LDD CM
NJN LOV4 IF CPP NOT READY FOR NEXT BLOCK
LJM LOV2 COPY NEXT BLOCK
LOV5 LDC 4000 FLAG READ ERROR
STD T1
LOV6 DELAY WAIT FOR CPP READY
PAUSE NE
LDD PP
CRD CM
LDD CM
NJN LOV6 IF CPP NOT READY FOR NEXT BLOCK
LDD T1 SET RESPONSE
STD CM
LDD PP
CWD CM
LDD T1 CHECK FOR ERROR
SHN 21-13
PJN LOV7 IF NO ERRORS
LDD CP DISPLAY ERROR MESSAGE
ADK MS2W
CWM LOVB,TR
LDC LOVB
RJM DFM
LOV7 LJM LOVX RETURN
LOVB DATA C* CPP OVERLAY LOAD FAILED.*
SPB SPACE 4,15
** SPB - SET PP BOUNDS BIT.
*
* ENTRY (A) = 6/BIT VALUE, 12/PP NUMBER.
* BIT VALUE = 1 TO SET LOWER PP.
* = 0 TO SET UPPER PP.
* (EC) = IOU CONNECT CODE.
*
* EXIT PP OS BOUNDS REGISTER SET FOR GIVEN PP.
*
* USES RN, T2, T7.
*
* MACROS LOCKMR, READMR, WRITMR.
SPB SUBR ENTRY/EXIT
STD T7 SAVE LOGICAL PP NUMBER
SHN -14
STM SPBC SAVE BOUNDS BIT VALUE
LDN 4 DETERMINE BARREL
SBD T7
SHN -21
STD T2
ZJN SPB1 IF IN LOWER 5 PP-S
LCN 5
RAD T7 SET PHYSICAL PP WITHIN THE BARREL
SPB1 LDC SHNI SET BIT SHIFT INSTRUCTION
ADD T7
STM SPBA
STM SPBD
LOCKMR SET
LDK OBCR SET OS BOUNDS REGISTER NUMBER
STD RN
LDM CPPD
LMK 0#42
NJN SPB2 IF NOT MODEL 42 IOU
LDK IOSB SET OS BOUNDS REGISTER NUMBER
STD RN
LDN 3 SET BYTE OFFSET
STD T2
SPB2 READMR RBUF READ CURRENT OS BOUNDS DATA
LDM RBUF,T2
STM SPBB
LCN 1
SPBA SHN **
LPC **
SPBB EQU *-1
STM RBUF,T2
LDC **
SPBC EQU *-1
SPBD SHN **
LMM RBUF,T2 ADD NEW BIT TO REGISTER DATA
STM RBUF,T2
WRITMR RBUF SET NEW OS BOUNDS REGISTER
LOCKMR CLEAR
LJM SPBX RETURN
AMA SPACE 4,10
** AMA - ACQUIRE MULTIPLEXER ACCESS.
*
* EXIT MULTIPLEXER ACCESS OBTAINED.
*
* XREF COMSIOU.
AMA SUBR ENTRY/EXIT
AMA1 LOCKMR SET GET ACCESS TO MAINTENANCE CHANNEL
SCF AMA3,MX GET ACCESS TO TWO-PORT MULTIPLEXER
LOCKMR CLEAR
ACN MX+40
UJN AMAX RETURN
AMA3 LOCKMR CLEAR CLEAR MAINTENANCE CHANNEL INTERLOCK
LDN 7 BRIEF DELAY
SBN 1
PJN *-1 IF DELAY NOT COMPLETE
UJN AMA1 TRY TO RESERVE PORT AGAIN
RMA SPACE 4,10
** RMA - RELEASE MULTIPLEXER ACCESS.
*
RMA SUBR ENTRY/EXIT
DCN MX+40
CCF *,MX RELEASE CHANNEL INTERLOCK
UJN RMAX RETURN
IBM SPACE 4,10
** IBM - ISSUE BINARY MAINTENANCE LOG MESSAGE.
*
* ENTRY (A) = MESSAGE ID.
* (T1) = SYMPTOM CODE.
* (CN - CN+4) = DATA WORD.
*
* USES CM - CM+4.
*
* CALLS DFM.
IBM SUBR ENTRY/EXIT
STM IBMA SET MESSAGE ID
LDD T1 SET SYMPTOM CODE
STM IBMA+1
LDD MA MOVE DATA WORD TO BUFFER
CWD CN
CRM IBMB,ON
LDN ZERL
CRD CM
LDN IBML SET MESSAGE LENGTH
STD CM+1
LDC IBMA+BMLN ISSUE DAYFILE MESSAGE
RJM DFM
UJN IBMX RETURN
* MESSAGE BUFFER.
IBMA VFD 12/0,12/0,36/0 MESSAGE ID, SYMPTOM CODE
VFD 60/0 RESERVED
IBMB VFD 60/0 MESSAGE
IBML EQU *-IBMA
NEC SPACE 4,15
** NEC - NORMALIZE EC REGISTER.
*
* ENTRY (CPPA) = EC REGISTER NUMBER.
*
* EXIT (RBUF - RBUF+7) = NORMALIZED EC REGISTER.
* NORMALIZED EC REGISTER REWRITTEN.
* BITS 35-39, 43-47, 51-55, 58 = 0.
* ALL OTHER BITS ARE UNCHANGED.
*
* USES RN.
*
* MACROS LOCKMR, READMR, WRITMR.
NEC SUBR ENTRY/EXIT
LOCKMR SET SET LONG TERM INTERLOCK
LDM CPPA SET EC REGISTER NUMBER
STD RN
READMR RBUF READ EC REGISTER
LDM RBUF+4 CLEAR 35-39 (PP NUMBER)
SCN 37
STM RBUF+4
LDM RBUF+5 CLEAR 43-47 (CHANNEL NUMBER)
SCN 37
STM RBUF+5
LDM RBUF+6 CLEAR BITS 51-55
SCN 37
STM RBUF+6
LDM RBUF+7 CLEAR BIT 58
SCN 40
STM RBUF+7
WRITMR RBUF UPDATE EC REGISTER
LOCKMR CLEAR CLEAR LONG TERM INTERLOCK
LJM NECX RETURN
SCU SPACE 4,10
** SCU - SET CPP UNAVAILABLE.
*
* *SCU* SETS 3 ASTERISKS IN THE CPP-S INPUT REGISTER AND
* DECREMENTS THE NUMBER OF AVAILABLE CPPS IN *PPAL*.
*
* ENTRY (IR+4) = CPP-S INPUT REGISTER ADDRESS.
*
* USES CM - CM+4, CN - CN+4.
*
* MACROS MONITOR.
SCU SUBR ENTRY/EXIT
LDD IR+4 READ CPP-S INPUT REGISTER
CRD CM
LDD CM+1
SCN 77
SHN 6
LMD CM
LMC 3R***
ZJN SCUX IF ALREADY UNAVAILABLE
LDD IR+4 SET *** IN INPUT REGISTER
CWM SCUA,ON
LDD IR+2
SBN 12
NJN SCU1 IF IDLE CPP
LDN 1
STD CM+1 DECREMENT CPP-S AVAILABLE COUNT
STD CM+2 DO NOT DROP THE PP
LDD MA
CWM SCUB,CM+1
MONITOR UADM
LDD CM+1
ZJN SCU1 IF NO UNDERFLOW
RJM CHG CONDITIONALLY HANG
* DECREMENT THE NUMBER OF PP-S ASSIGNED TO THE CONTROL POINT.
SCU1 LDD IR+2
SBN 10
NJP SCUX IF NOT AN ASSIGN AND LOAD REQUEST
SCU2 LDD CC GET CPP-S CONTROL POINT ADDRESS
ZJN SCU3 IF NOT ASSIGNED
ADK STSW
STD CM+4
CRD CN GET THE NUMBER OF PP-S ASSIGNED
LDD CN
LPN 37
ZJN SCU3 IF NO PP-S ASSIGNED
STM SCUC+4 SET UP *UTEM* REQUEST
SBN 1
STM SCUC+1*5+4
LDN 2
STD CM+1
LDD MA
CWM SCUC,CM+1
MONITOR UTEM
LDD CM+1
NJN SCU2 IF REQUEST WAS REJECTED
SCU3 UJP SCUX RETURN
SCUA VFD 18/3R***,42/0 INPUT REGISTER OF UNUSABLE PP
* MESSAGE BUFFER STRUCTURE FOR *UADM* FORMAT.
SCUB CON LDOS SUBFUNCTION
CON PPAL LOW CORE WORD TO UPDATE
CON 12D*100+6 FIELD LOCATION AND SIZE
VFD 6/,18/1 DECREMENT VALUE
* MESSAGE BUFFER STRUCTURE FOR *UTEM*.
SCUC VFD 1/1,5/0,6/5,6/48D,42/** VERIFY NUMBER OF PP-S
VFD 1/0,5/0,6/5,6/48D,42/** REDUCE NUMBER OF PP-S
COMMON SPACE 4,10
* COMMON DECKS.
*CALL COMPC2D
*CALL COMPMRA
*CALL COMPRNS
SPACE 4,10
** BUFFER DEFINITIONS.
*
* *PBUF* CONTAINS A COPY OF PP RESIDENT FOR A CPP.
*
* *RBUF* AND *IBUF* ARE USED TO READ AND CHECK THE ENVIRONMENT
* CONTROL REGISTER.
PBUF BSS 0 CPP RESIDENT BUFFER
CPP$ EQU 1 GENERATE CPP RESIDENT
LIST X,F
*CALL COMPPPR
LIST *
PBUFL EQU *-PBUF
RBUF EQU * *EC* REGISTER BUFFER
IBUF EQU RBUF+12B INPUT STATUS REGISTER BUFFER
ERRNG EPFW-IBUF-12B OVERFLOW INTO EPFW
OVERFLOW E1MA,EPFW
TTL 1MA - MONITOR AUXILIARY PROCESSOR.
END