cdc:nos2.source:opl871:0st
Table of Contents
0ST
Table Of Contents
- [00008] 0ST - TERMINATE SCP CONNECTIONS.
- [00010] TERMINATE SCP CONNECTIONS.
- [00087] MAIN ROUTINES.
- [00089] TSC - TERMINATE SCP CONNECTIONS.
- [00135] ERS - ENTER RECALL STACK.
- [00164] SUBROUTINES.
- [00166] CCI - CHECK CONNECTION INDICATORS WORD FOR TERMINATING SCP.
- [00201] CCJ - CHECK CONTROL POINT JOB SCP CONNECTIONS.
- [00274] CIN - CLEAR EJT INTERLOCK.
- [00294] CRF - CHECK ROLLOUT FILE SCP CONNECTIONS.
- [00344] CRJ - CHECK ROLLED OUT JOB SCP CONNECTIONS.
- [00376] DLY - DELAY.
- [00397] EUJ - END ALL USER JOBS CONNECTED TO A TERMINATING SCP.
- [00492] NUS - NOTIFY UCP SUBSYSTEM OF SCP TERMINATION.
- [00542] SAI - SET/CLEAR SCP ABORT INTERLOCK.
- [00567] SDS - SEND DATA TO SUBSYSTEM.
- [00622] SEF - SET ERROR FLAG ON SPECIFIED JOB.
- [00655] SIN - SET EJT ENTRY INTERLOCK.
- [00688] SRS - SEND UCP TERMINATION RESPONSE TO CONNECTED SCPS.
- [00782] WCM - WRITE CPA MESSAGE.
Source Code
- 0ST.txt
- 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
cdc/nos2.source/opl871/0st.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator