IDENT 0ST,TSCX
PERIPH J
BASE MIXED
SST
QUAL$ EQU 1 DEFINE UNQUALIFIED COMMON DECKS
*COMMENT 0ST - TERMINATE SCP CONNECTIONS.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
TITLE 0ST - TERMINATE SCP CONNECTIONS.
SPACE 4,10
*** 0ST - TERMINATE SCP CONNECTIONS.
*
* A. J. KOMOR. 76/03/01.
* J. L. LARSON. 81/09/11.
* G. S. YODER. 91/06/25.
SPACE 4,10
*** *0ST* IS A LOCATION FREE ROUTINE TO BE USED TO
* TERMINATE CONNECTIONS BETWEEN SYSTEM CONTROL POINTS
* (SCP-S) AND USER CONTROL POINTS (UCP-S).
*
* *0ST* IS CALLED BY *1MA* TO PROCESS AN SCP *SF.EXIT* RA+1
* REQUEST WHEN UCP CONNECTIONS ARE OUTSTANDING.
*
* *0ST* IS CALLED BY *1AJ* TO INFORM SCP-S THAT A CONNECTED
* UCP IS TERMINATING AND/OR TO DISCONNECT UCP-S CONNECTED
* TO A TERMINATING SCP.
*
* *0ST* ENTERS THE PP RECALL STACK FOR THE FOLLOWING
* CONDITIONS -
* 1. SCP ABORT INTERLOCK ALREADY SET (ANOTHER SCP IS
* TERMINATING AT THE SAME TIME AS THIS SCP).
* 2. TERMINATING UCP HAS OUTSTANDING CONNECTIONS TO SCP-S
* WHEN JOB ADVANCING FOR OTHER THAN *OVERRIDE* ERROR.
* THE UCP WILL NOT CONTINUE JOB ADVANCE UNTIL THE SCP-S
* RESPOND BY CLEARING ALL OUTSTANDING CONNECTIONS.
SPACE 4,10
*** OPERATOR MESSAGES (TO CONTROL POINT AREA).
*
* * SCP TERMINATION PROCESSING.* = SCP END/ABORT PROCESSING.
*
* * UCP TERMINATION PROCESSING.* = USER CP END/ABORT.
SPACE 4,10
*** CALL.
*
* ENTRY (SC) = SCP CONNECTION ACTIVITY FLAGS.
* BIT 0 SET IF TERMINATING UCP HAS SCP
* CONNECTIONS.
* BIT 1 SET IF TERMINATING SCP HAS OUTSTANDING
* UCP CONNECTIONS.
* BIT 2 SET IF SCP ISSUED *SF.EXIT* RA+1
* REQUEST.
* BIT 3 SET IF SCP *SSIW* IDENTIFICATION WORD
* TO BE CLEARED.
* (EF) = ERROR FLAG ON TERMINATING SCP/UCP.
*
* EXIT TO *PPR* IF ENTERED PP RECALL STACK.
* (SC) = 0 IF SCP/UCP ABORT/END PROCESSING COMPLETE.
*
* USES DIRECT CELLS 0 - 14, 17 - 36, 60 - 64, 67 AND
* MASS STORAGE SECTOR BUFFER *BFMS*.
SPACE 4,10
** COMMON DECKS.
*CALL COMPMAC
REL$ EQU 1 NO RELOCATION OF SYSTEXT *M* INSTRUCTIONS
*CALL COMPREL
*CALL COMSCPS
*CALL COMSEJT
*CALL COMSMSP
*CALL COMSPIM
*CALL COMSSCP
*CALL COMSSSD
*CALL COMSSSE
*CALL COMSZOL
SPACE 4,10
**** DIRECT LOCATION ASSIGNMENTS.
SI EQU 17 SCP IDENTIFICATION
CN EQU 20 - 24 CM WORD BUFFER
AB EQU 25 - 31 CM WORD BUFFER
FS EQU 32 - 36 CM WORD BUFFER
EF EQU 46 ERROR FLAG
CW EQU 60 - 64 CM WORD BUFFER
SC EQU 67 SCP/UCP CONNECTION FLAGS
****
TITLE MAIN ROUTINES.
TSC SPACE 4,20
** TSC - TERMINATE SCP CONNECTIONS.
*
* TO PROCESS A TERMINATING UCP, THE WAIT RESPONSE AND LONG
* TERM CONNECTION INDICATORS IN THE UCP *SSCW* WORD ARE
* EXAMINED FOR EACH SCP. IF THE TERMINATING UCP IS CONNECTED
* TO AN SCP, A MESSAGE IS SENT TO THAT SCP INFORMING IT OF
* THE UCP END/ABORT.
* IF AN SCP IS TERMINATING, ALL UCP-S CONNECTED TO THIS SCP
* WILL HAVE THE *SSET* (SCP ABORTED) ERROR FLAG SET.
*
* EXIT TO *ERS* TO ENTER RECALL STACK IF CONNECTIONS
* REMAINING.
*
* USES SC, CM - CM+4.
*
* CALLS EUJ, SRS.
ORG 5
TSC SUBR ENTRY/EXIT
LDD SC
LPN 10
ZJN TSC1 IF NOT ACTIVE SCP
LDN ZERL CLEAR SCP IDENTIFICATION WORD
CRD CM
LDD RA
SHN 6
ADN SSIW
CWD CM
TSC1 LDD SC
LPN 1
ZJN TSC2 IF JOB IS NOT UCP WITH CONNECTIONS
RJM SRS SEND UCP TERMINATION TO CONNECTED SCP-S
TSC2 LDD SC
LPN 2
ZJN TSC3 IF JOB IS NOT SCP WITH CONNECTIONS
RJM EUJ END UCPS CONNECTED TO THIS SCP
TSC3 LDD SC
LPN 3
NJN ERS IF OUTSTANDING CONNECTIONS REMAINING
STD SC CLEAR SCP/UCP CONNECTION FLAG
LDD CP CLEAR CONSOLE MESSAGE
ADN MS2W
CWD SC
UJN TSCX RETURN
ERS SPACE 4,10
** ERS - ENTER RECALL STACK.
*
* EXIT TO *PPR*.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
ERS LDD SC
LPN 4
NJN ERS2 IF *SF.EXIT* PROCESSING
LDD EF RESET ERROR FLAG
ZJN ERS1 IF NO ERROR FLAG
STD CM+1
MONITOR CEFM RESET ERROR FLAG
* LDN 0
ERS1 STD CM+1 SET *JACM* OPTIONS
MONITOR JACM CLEAR JOB ADVANCE
ERS2 LDN ZERL ENTER DEFAULT TIMED RECALL
CRD CM
LDN SUTR SCP/UCP TERMINATION PENDING
STD CM
LDD MA ENTER PP CALL INTO RECALL STACK
CWD IR
ADN 1
CWD CM STORE RECALL STACK REASON CODE
MONITOR RECM ENTER RECALL STACK AND DROP PP
LJM PPR EXIT TO PP RESIDENT
TITLE SUBROUTINES.
CCI SPACE 4,15
** CCI - CHECK CONNECTION INDICATORS WORD FOR TERMINATING SCP.
*
* ENTRY (A) = ADDRESS OF CONNECTION INDICATORS WORD TO CHECK.
* (SI) = SUBSYSTEM ID OF TERMINATING SCP.
* (CN+1) = ABORT JOB FLAG.
*
* EXIT (A) .NE. 0 IF CONNECTION TO TERMINATING SCP FOUND.
* (A) = 0 IF CONNECTION TO TERMINATING SCP NOT FOUND.
* (CN+1) .NE. 0 IF CONNECTION TO TERMINATING SCP FOUND.
* (T2) = ADDRESS OF CONNECTION INDICATORS BYTE FOR
* TERMINATING SCP IF FOUND.
* CONNECTION INDICATORS BYTE FOR TERMINATING SCP CLEARED
* IF FOUND.
*
* USES CN+1, T1, T2.
CCI2 LDN 0 SET CONNECTION NOT FOUND
CCI SUBR ENTRY/EXIT
STD T1 SET END OF SEARCH
ADN 4+1
STD T2 SET FIRST BYTE TO CHECK + 1
CCI1 SOD T2
SBD T1
MJN CCI2 IF NO MORE CONNECTIONS TO CHECK
LDI T2
SHN -6
ADC LSSI
LMD SI
NJN CCI1 IF NO CONNECTION TO TERMINATING SCP
STI T2 CLEAR CONNECTION INDICATORS
AOD CN+1 SET ABORT JOB FLAG
UJN CCIX RETURN
CCJ SPACE 4,15
** CCJ - CHECK CONTROL POINT JOB SCP CONNECTIONS.
*
* ENTRY (CN+4) = EJT ORDINAL.
* (CN+1) = ABORT JOB FLAG = 0.
* (FS - FS+4) = EJT ENTRY *SCHE* WORD.
*
* EXIT (CN+1) .NE. 0 IF JOB SHOULD BE ABORTED.
* CONNECTION INDICATORS FOR TERMINATING SCP CLEARED IF
* FOUND.
*
* USES CN, T5, T6, CM - CM+4, CW - CW+4.
*
* CALLS CCI, CRF, NUS.
*
* MACROS MONITOR.
CCJ SUBR ENTRY/EXIT
* CHECK FOR ACTIVE CONNECTION TO TERMINATING SCP.
LDD FS+3 SET UCP CP ADDRESS
LPN 37
SHN 7
STD CN SAVE UCP CP ADDRESS
ADK JCIW GET SUBSYSTEM ID
CRD CM
ADK SSCW-JCIW
CRD CW GET SCP CONNECTIONS
LDN CW SET CONNECTIONS WORD ADDRESS
RJM CCI CHECK CONNECTION INDICATORS
ZJP CCJ2 IF NO CONNECTION TO TERMINATING SCP
LDN 12D SET FIELD SIZE IN *UTEM* REQUEST
STD CW
LDN CW+4 SET FIELD POSITION IN *UTEM* REQUEST
SBD T2
SHN 2+6
STD CW+1
SHN 1
RAD CW+1
LDN 0
STD CW+2
STD CW+3
STD CW+4
LDD CM+2
ADC -LSSI
MJN CCJ1 IF UCP IS NOT A SUBSYSTEM
RJM NUS NOTIFY UCP SUBSYSTEM (MAY RECALL *0ST*)
CCJ1 LDD MA SET *UTEM* REQUEST
CWD CW
LDN 1 SET REQUEST COUNT
STD CM+1
LDN 0
STD CM+3
LDD CN SET *SSCW* ADDRESS
ADK SSCW
STD CM+4
MONITOR UTEM CLEAR CONNECTION INDICATORS BYTE
* CHECK DM* FILE FOR CONNECTION TO TERMINATING SCP.
CCJ2 LDD CN
ADK RFCW
CRD CM
LDD CM
ZJN CCJ3 IF NO DM* FILE PRESENT
STD T5 SET DM* FILE EST ORDINAL
LDD CM+1 SET DM* FILE FIRST TRACK
STD T6
LDN 1 INDICATE DM* FILE
RJM CRF CHECK ROLLOUT FILE
CCJ3 LJM CCJX RETURN
CIN SPACE 4,15
** CIN - CLEAR EJT INTERLOCK.
*
* ENTRY (CN+4) = UCP EJT ORDINAL.
*
* EXIT EJT INTERLOCK CLEARED.
*
* USES T1.
*
* CALLS SFI.
*
* MACROS SFA.
CIN SUBR ENTRY/EXIT
LDN CEIN SET CLEAR EJT INTERLOCK OPTION
STD T1
SFA EJT,CN+4 SET EJT ENTRY ADDRESS
RJM SFI CLEAR EJT INTERLOCK.
UJN CINX RETURN
CRF SPACE 4,15
** CRF - CHECK ROLLOUT FILE SCP CONNECTIONS.
*
* ENTRY (A) = 0 IF PROCESSING JOB ROLLOUT FILE.
* (A) .NE. 0 IF PROCESSING DM* FILE.
*
* EXIT (A) = 0 IF VALID ROLLOUT FILE SYSTEM SECTOR READ.
* (A) .NE. 0 IF ERROR ON SYSTEM SECTOR READ OR IF NOT
* VALID ROLLOUT FILE SYSTEM SECTOR.
*
* USES CW, T7.
*
* CALLS CCI, RSS, WDS.
*
* MACROS ENDMS, SETMS.
* EXIT WITH ERROR STATUS.
CRF5 ENDMS
LDN 1 SET ERROR STATUS
CRF SUBR ENTRY/EXIT
STD CW SAVE DM* FILE FLAG
SETMS IO,(NS,RW)
LDN 0 SET NO FILE NAME VERIFY
RJM RSS READ ROLLOUT FILE SYSTEM SECTOR
NJN CRFX IF ERROR IN SYSTEM SECTOR
STD T7 SET SYSTEM SECTOR FOR WRITE
LDM. FNSS+4
SHN -6
LMN ROFT
NJN CRF5 IF NOT ROLLOUT FILE TYPE
LDM. FASS
ZJN CRF1 IF JOB ROLLOUT FILE
LDD CW
NJN CRF2 IF PROCESSING DM* FILE
UJN CRF5 PROCESS ROLLOUT FILE ERROR
CRF1 LDD CW
NJN CRF5 IF PROCESSING DM* FILE
CRF2 LDC COSS SET CONNECTION INDICATORS ADDRESS
RJM CCI CHECK CONNECTION INDICATORS
ZJN CRF3 IF NO CONNECTION FOUND
LDC BFMS
RJM WDS WRITE UPDATED CONNECTION INDICATORS
MJN CRF4 IF WRITE ERROR
CRF3 ENDMS
* LDN 0 SET NO ERROR
CRF4 LJM CRFX RETURN
CRJ SPACE 4,15
** CRJ - CHECK ROLLED OUT JOB SCP CONNECTIONS.
*
* ENTRY (CN+4) = EJT ORDINAL.
* (CN+1) = ABORT JOB FLAG = 0.
* (FS - FS+4) = EJT ENTRY *SCHE* WORD.
*
* EXIT (CN+1) .NE. 0 IF JOB SHOULD BE ABORTED.
* CONNECTION INDICATORS FOR TERMINATING SCP CLEARED IF
* FOUND.
*
* USES T5, T6.
*
* CALLS CRF.
CRJ SUBR ENTRY/EXIT
LDD FS SET ROLLOUT FILE EST ORDINAL
STD T5
LDD FS+1 SET ROLLOUT FILE FIRST TRACK
STD T6
LDN 0 INDICATE JOB ROLLOUT FILE
RJM CRF CHECK ROLLOUT FILE
NJN CRJX IF ERROR IN ROLLOUT FILE
LDM. DFSS
ZJN CRJX IF NO DM* FILE
STD T5 SET DM* FILE EST ORDINAL
LDM. DFSS+1 SET DM* FILE FIRST TRACK
STD T6
* LDD T6 INDICATE DM* FILE
RJM CRF CHECK ROLLOUT FILE
UJN CRJX RETURN
DLY SPACE 4,10
** DLY - DELAY.
*
* EXIT (A) = 0 IF OPERATOR INTERVENTION.
*
* USES T0.
*
* MACROS DELAY, PAUSE.
DLY SUBR ENTRY/EXIT
LDD HN DELAY 128 * 64 MICRO SECONDS
STD T0
DLY1 SOD T0
MJN DLYX IF DELAY COMPLETE
PAUSE
DELAY
LDD CM+1 CHECK FOR OPERATOR OVERRIDE
LMN ORET
NJN DLY1 IF NOT OPERATOR INTERVENTION
UJN DLYX RETURN
EUJ SPACE 4,15
** EUJ - END ALL USER JOBS CONNECTED TO A TERMINATING SCP.
*
* EXIT ERROR FLAG *SSET* SET ON ALL CONNECTED UCPS.
* CONNECTIONS TO TERMINATING SCP CLEARED FOR ALL
* CONNECTED UCPS.
* TO *ERS* IF UNABLE TO SET SCP ABORT INTERLOCK.
*
* USES SC, SI, T1, AB - AB+4, CM - CM+4, CN - CN+4.
*
* CALLS CCJ, CIN, CRJ, SAI, SEF, SIN, WCM.
*
* MACROS SFA.
EUJ SUBR ENTRY/EXIT
* SET SCP ABORT INTERLOCK.
LDD CP READ JOB CONTROL WORD
ADN JCIW
CRD CM
ADN TFSW-JCIW GET SCP EJT ORDINAL
CRD AB
LDD CM+2 SET SCP IDENTIFICATION
STD SI
LDN LIOS INCREMENT LOW CORE FIELD BY ONE
RJM SAI SET SCP ABORT INTERLOCK
ZJN EUJ1 IF INTERLOCK SUCCESSFULLY SET
LJM ERS ENTER RECALL STACK
EUJ1 LDC =C* SCP TERMINATION PROCESSING.*
RJM WCM WRITE CPA MESSAGE
* SEARCH FOR JOBS CONNECTED TO TERMINATING SCP.
LDN EJTP READ EJT POINTER
CRD CN
LDN 0 INITIALIZE EJT SEARCH ORDINAL
STD CN+4
LDD AB SAVE SCP EJT ORDINAL
STD CN+3
EUJ2 AOD CN+4 ADVANCE EJT ORDINAL
LMD CN+2
ZJP EUJ6 IF END OF EJT
LDD CN+4
LMD CN+3
ZJN EUJ2 IF EJT ENTRY OF TERMINATING SCP
SFA EJT,CN+4 READ EJT ENTRY
CRD AB
LDD AB
ZJN EUJ2 IF EJT ENTRY NOT OCCUPIED
LDD AB+4
SHN 21-13
PJN EUJ2 IF NO POSSIBLE SCP CONNECTIONS
RJM SIN SET EJT INTERLOCK AND READ ENTRY
ZJN EUJ2 IF *ORET* ERROR OR ENTRY NOT OCCUPIED
LDN 0 INITIALIZE ABORT JOB FLAG
STD CN+1
LDD AB+4
SHN 21-13
PJN EUJ5 IF NO POSSIBLE SCP CONNECTIONS
SHN -7 CHECK JOB STATUS
LPN 37
LMN EXJS
NJN EUJ3 IF JOB NOT AT CONTROL POINT
RJM CCJ CHECK CONTROL POINT JOB
UJN EUJ4 CHECK ABORT JOB FLAG
EUJ3 RJM CRJ CHECK ROLLED OUT JOB
EUJ4 LDD CN+1
ZJN EUJ5 IF NOT TO ABORT JOB
LDN SSET SET SCP ABORTED ERROR FLAG
RJM SEF
EUJ5 RJM CIN CLEAR EJT INTERLOCK
LJM EUJ2 ADVANCE EJT ORDINAL
* CLEAR SCP ABORT INTERLOCK.
EUJ6 LDN LDOS DECREMENT LOW CORE FIELD BY ONE
RJM SAI CLEAR SCP ABORT INTERLOCK
* CLEAR OUTSTANDING CONNECTION COUNT.
LDD CP GET OUTSTANDING CONNECTION COUNT
ADK SSOW
STD T1
CRD CM
LDN 0 CLEAR OUTSTANDING CONNECTION COUNT
STD CM+4
LDD T1
CWD CM
LCN 2 CLEAR SCP WITH CONNECTIONS FLAG
RAD SC
LJM EUJX RETURN
NUS SPACE 4,15
** NUS - NOTIFY UCP SUBSYSTEM OF SCP TERMINATION.
*
* ENTRY (CM+2) = SUBSYSTEM ID OF UCP JOB.
* (SI) = SUBSYSTEM ID OF TERMINATING SCP.
*
* EXIT (CN+1) = 0 IF TERMINATION MESSAGE SET TO SUBSYSTEM (DO
* NOT ABORT JOB).
* TO *ERS* IF SUBSYSTEM BUSY RESPONSE TO NOTIFICATION.
*
* USES CN+1, T2, T3, CM - CM+4.
*
* CALLS CIN, SAI, SDS.
NUS1 STD CN+1 CLEAR ABORT JOB FLAG
NUS SUBR ENTRY/EXIT
* BUILD AND SEND TERMINATION MESSAGE TO UCP SUBSYSTEM.
LDD CM+2 SAVE SUBSYSTEM ID
STD T3
LDN ZERL
CRD CM
LDC 4*100 ERROR STATUS 4 (SCP ABORTED)
STD CM+3
LDD MA
CWD CM
LDN 0
STD CM+3
LDD SI SUBSYSTEM IDENTIFICATION OF ABORTED SCP
STD CM+4
LDD MA
ADN 1
CWD CM
LDN 3 SET RETRY ON MOVE
STD T2
LDD T3 SUBSYSTEM IDENTIFICATION OF UCP
RJM SDS SEND DATA TO SUBSYSTEM
ZJN NUS1 IF NOTIFICATION COMPLETE
LMN 2
NJN NUSX IF SUBSYSTEN NOT ACTIVE SCP
* RECALL *0ST* IF SUBSYSTEM BUSY REJECT.
RJM CIN CLEAR EJT INTERLOCK
LDN LDOS CLEAR SCP ABORT INTERLOCK
RJM SAI
LJM ERS ENTER RECALL
SAI SPACE 4,10
** SAI - SET/CLEAR SCP ABORT INTERLOCK.
*
* ENTRY (A) = LIOS, SET INTERLOCK.
* = LDOS, CLEAR INTERLOCK.
*
* EXIT (A) = 0, NO ERRORS.
*
* USES CM - CM+2.
SAI SUBR ENTRY/EXIT
STD CM INCREMENT/DECREMENT LOW CORE FIELD BY ONE
LDC INWL SCP INTERLOCK WORD
STD CM+1
LDN 0D*100+1 POSITION AND WIDTH OF FIELD
STD CM+2
LDD MA
CWD CM
LDN 1 SET REQUEST COUNT
STD CM+1
STD CM+2 SPECIFY NO DROP OF PP
MONITOR UADM SET/CLEAR SCP ABORT INTERLOCK
LDD CM+1 STATUS
UJN SAIX RETURN
SDS SPACE 4,20
** SDS - SEND DATA TO SUBSYSTEM.
*
* ENTRY (A) = SUBSYSTEM IENTIFICATION OF SCP RECEIVING DATA.
* (MB - MB+1) = 2 CM WORD MESSAGE TO BE SENT.
* (T2) = 2 IF CONTINUE RETRY ON MOVE IN PROGRESS AND
* SCP NOT READY FOR DATA.
* = 3 IF CONTINUE RETRY ON MOVE IN PROGRESS.
*
* EXIT (A) = 0, IF DATA ACCEPTED.
* = 2, IF NOT READY FOR DATA.
* = 4, IF SCP INACTIVE.
* (AB - AB+1) = RESTORED TO PRIOR VALUE.
* (CN+2 - CN+4) = RESTORED TO PRIOR VALUE.
*
* USES T1, AB - AB+1, CM - CM+4, CN+2 - CN+4.
*
* CALLS DLY, SEF.
*
* MACROS MONITOR.
SDS4 LDD CM+1 RETURN *TDAM* STATUS
SDS SUBR ENTRY/EXIT
STD T1 SAVE APPROPRIATE SUBSYSTEM IDENTIFICATION
SDS1 LDD T1
STD CM+2
LDN 0 CLEAR *RA* PARAMETER ON *TDAM* CALL
STD CM+4
LDN 1 SET WRITE MODE
STD CM+1
SHN 7-0
STD CM+3 SET TRANSFER LENGTH
MONITOR TDAM
LDD CM+1 EXAMINE STATUS
ZJN SDSX IF CALL ACCEPTED
SBN 5
ZJN SDS3 IF INVALID SCP PARAMETERS
ADD T2
PJN SDS4 IF NOT MOVE OR NOT READY FOR DATA REJECT
RJM DLY DELAY
NJN SDS1 IF NOT OPERATOR INTERVENTION
SDS2 LDN 4 FORCIBLY BREAK CONNECTIONS
UJN SDSX RETURN
SDS3 LDD MA SAVE CONTENTS OF CN+2 - CN+4, AB - AB+1
CWD CN+2
SBN 1 GET SCP INFORMATION FROM OUTPUT REGISTER
CRD CN+2
LDN ITET SCP INVALID TRANSFER ADDRESS
RJM SEF SET ERROR FLAG ON SCP
LDD MA RESTORE CN+2 - CN+4, AB - AB+1
CRD CN+2
UJN SDS2 RETURN SUBSYSTEM INACTIVE STATUS
SEF SPACE 4,15
** SEF - SET ERROR FLAG ON SPECIFIED JOB.
*
* ENTRY (A) = ERROR FLAG.
* (CN+4) = EJT ORDINAL OF JOB TO SET ERROR FLAG ON.
* (AB - AB+1) = JOB SEQUENCE NUMBER OF JOB TO SET
* ERROR FLAG ON.
*
* USES T1, CM - CM+4.
*
* CALLS DLY.
*
* MACROS MONITOR.
SEF SUBR ENTRY/EXIT
ADC 4000 SET EJT ORDINAL SPECIFIED FLAG
STD T1
SEF1 LDD CN+4 SET JOB EJT ORDINAL
STD CM+2
LDD AB SET JOB SEQUENCE NUMBER
STD CM+3
LDD AB+1
STD CM+4
LDD T1 ERROR FLAG AND EJT ORDINAL FLAG
STD CM+1
MONITOR CEFM
LDD CM+1
SBN 1
NJN SEFX IF NOT JOB MOVING REJECT
RJM DLY DELAY
NJN SEF1 IF NO OPERATOR INTERVENTION
UJN SEFX RETURN
SIN SPACE 4,15
** SIN - SET EJT ENTRY INTERLOCK.
*
* ENTRY (CN+4) = UCP EJT ORDINAL.
*
* EXIT (A) = 0 IF *ORET* ERROR SET OR EJT ENTRY NOT USED.
* .NE. 0 IF EJT INTERLOCK SUCCESSFULLY SET.
* (AB - AB+4) = UCP EJT *JSNE* WORD.
* (FS - FS+4) = UCP EJT *SCHE* WORD.
*
* USES T1, AB - AB+4, FS - FS+4.
*
* CALLS DLY, SFI.
*
* MACROS SFA.
SIN2 SFA EJT,CN+4 READ EJT ENTRY
CRD AB
ADN SCHE-JSNE
CRD FS
SIN SUBR ENTRY/EXIT
SIN1 LDN SFIN SET EJT ENTRY INTERLOCK
STD T1
SFA EJT,CN+4 ABSOLUTE ADDRESS OF EJT ENTRY
RJM SFI
ZJN SIN2 IF INTERLOCK SUCCESSFULLY SET
SBN 3
ZJN SINX IF EJT ENTRY NOT IN USE
RJM DLY DELAY
NJN SIN1 IF NOT OPERATOR INTERVENTION
UJN SINX RETURN
SRS SPACE 4,10
** SRS - SEND UCP TERMINATION RESPONSE TO CONNECTED SCPS.
*
* EXIT MESSAGE SENT TO INFORM CONNECTED SCP(S) OF
* UCP END/ABORT.
*
* USES SC, T0, T2, CM - CM+4, CN - CN+4, CW - CW+4, T3 - T7.
*
* CALLS SDS, WCM.
*
* MACROS SFA.
SRS SUBR ENTRY/EXIT
LDC =C* UCP TERMINATION PROCESSING.*
RJM WCM WRITE CPA MESSAGE
LDD CP GET EJT ORDINAL OF UCP
ADN TFSW
CRD T3
ADK SEPW-TFSW GET SPECIAL ENTRY POINTS
CRD CN
ADK SSCW-SEPW READ SCP CONTROL WORD
CRD CW
SFA EJT,T3 ABSOLUTE ADDRESS OF UCP EJT ENTRY
CRD CM GET UCP JOB SEQUENCE NUMBER
LDN 0
STD CM+2
LDD CN SET UCP *DMP=* STATUS
LPN 20
SHN -4
STD CM+3
LDD T3 SET UCP EJT ORDINAL
STD CM+4
LDN ZERL INITIALIZE UCP END/ABORT STATUS WORD
CRD T3
LDD EF
ZJN SRS2 IF NO ERROR FLAG SET
LMN ORET
ZJN SRS1 IF FORCED BREAK IN CONNECTIONS
LCN 1
SRS1 ADN 2
SRS2 ADN 1 USER STATUS = END(1), ABORT(2), BROKEN(3)
SHN 6
STD T3+3
LDD MA WRITE USER STATUS
CWD T3
ADN 1
CWD CM JOB SEQUENCE NUMBER AND EJT ORDINAL
LDN 4 INITIALIZE SCP BYTE POINTER
STD T4
* CHECK WAIT RESPONSE AND LONG TERM CONNECTION INDICATORS.
SRS3 LDM. CW,T4
ZJN SRS5 IF UCP NOT CONNECTED TO THIS SCP
SHN -6
ADC LSSI
STD T3
LDN 3 SET RETRY ON STORAGE MOVE
STD T2
LDD T3 GET SCP IDENTIFICATION
RJM SDS SEND DATA TO SCP
STD T0 SAVE RESPONSE
SBN 4
PJN SRS4 IF SCP INACTIVE
LDD EF
LMN ORET
ZJN SRS4 IF CONNECTIONS TO BE FORCIBLY BROKEN
LDD T0 CHECK RESPONSE
ZJN SRS5 IF DATA ACCEPTED BY SCP
STD T7 SET SCP BUSY FLAG
UJN SRS5 PROCESS NEXT SCP
SRS4 LDN 0 CLEAR SCP CONNECTION
STM. CW,T4
SRS5 SOD T4
PJP SRS3 IF MORE SCP-S TO CHECK FOR
SRS7 LDD CP UPDATE SCP CONTROL WORD
ADC SSCW
CWD CW
LDD T7
ZJN SRS8 IF ALL CONNECTED SCP-S NOTIFIED
LJM ERS ENTER RECALL STACK
SRS8 LDD CW CHECK FOR REMAINING SCP CONNECTIONS
ADD CW+1
ADD CW+2
ADD CW+3
ADD CW+4
NJN SRS9 IF CONNECTIONS REMAINING
LCN 1 CLEAR UCP WITH CONNECTIONS FLAG
RAD SC
SRS9 LJM SRSX RETURN
WCM SPACE 4,10
** WCM - WRITE CPA MESSAGE.
*
* ENTRY (A) = RELATIVE ADDRESS OF MESSAGE.
WCM SUBR ENTRY/EXIT
ADD LA ADJUST MESSAGE ADDRESS BY LOAD ADDRESS
STM WCMA
LDD CP
ADN MS2W
CWM. **,TR WRITE MESSAGE TO CPA
WCMA EQU *-1
UJN WCMX RETURN
SPACE 4,10
** COMMON DECKS.
EJT$ EQU 1 DEFINE EXECUTING JOB TABLE PROCESSOR
*CALL COMPGFP
*CALL COMPRSS
SFI$ EQU 1 SELECT IMMEDIATE RETURN FROM *SFI*
*CALL COMPSFI
SPACE 4,10
USE
RSTR
OVERFLOW 5,ZSTL CHECK LENGTH OF *0ST*
END