IDENT VER,VER
PERIPH
BASE MIXED
SST SSCP
TITLE VER - VIRTUAL ENVIRONMENT REQUEST PROCESSOR.
*COMMENT VER - VIRTUAL RESOURCE REQUEST PROCESSOR.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
VER SPACE 4,10
*** VER - VIRTUAL ENVIRONMENT REQUEST PROCESSOR.
*
* K. H. BOSSARD. 82/04/19.
SPACE 4,10
*** *VER* PROCESSES REQUESTS FOR OBTAINING AND
* RETURNING RESOURCES FOR NOS/VE IN THE DUAL STATE
* ENVIRONMENT.
SPACE 4,10
*** CALL.
*
*
*T 18/*VER*, 1/1, 5/CP, 12/FCN, 6/0, 18/ADDR
*
* CP NVE CONTROL POINT NUMBER.
* FCN FUNCTION CODE.
* ADDR ADDRESS OF PARAMETER BLOCK.
SPACE 4,10
*** REPLY BLOCK.
*
* 48/UNCHANGED, 12/GRS
* 48/UNCHANGED, 12/RS
*
* GRS GENERAL RETURN STATUS (RIGHTMOST BIT IS A
* COMPLETION BIT).
* RS INDIVIDUAL RETURN STATUS.
*
* *RS* IS THE RETURN STATUS FOR A SPECIFIC INDIVIDUAL REQUEST
* AND IS NOT PRESENT IN ALL FORMATS. FOR REPLIES THAT HAVE
* BOTH *GRS* AND *RS*, *GRS* CONTAINS THE VALUE OF THE LAST
* ENCOUNTERED NON-ZERO ERROR STATUS. REQUEST PROCESSING
* CONTINUES UNTIL A FATAL ERROR (100X,200X) OCCURS.
SPACE 4,10
*** DAYFILE MESSAGES.
*
*
* * VER - ILLEGAL USER ACCESS.*
* THE CALLER DID NOT HAVE NVE SUBSYSTEM ID.
*
* * VER - ARGUMENT ERROR.*
* INDICATES ONE OF THE FOLLOWING.
* 1. AN ILLEGAL FUNCTION CODE WAS SPECIFIED.
* 2. AUTO RECALL WAS NOT SELECTED.
* 3. PARAMETER BLOCK WAS NOT WITHIN CALLER-S FIELD LENGTH.
* 4. THE COMPLETION BIT IN THE PARAMETER BLOCK WAS SET.
*
* * VER - FATAL MAINTENANCE REGISTER ERROR.*
* A FATAL PARITY ERROR OCCURRED DURING MAINTENANCE REGISTER
* ACCESS THROUGH THE MAINTENANCE CHANNEL.
*
* * VER - EJT ENTRY UNAVAILABLE.*
* *VER* WAS UNABLE TO OBTAIN AN EJT ORDINAL.
*
* * VER - OVERLAY SELECTION ERROR.*
* OVERLAY *2VR* RECEIVED CONTROL ON A FUNCTION CODE
* WHICH SHOULD HAVE BEEN PROCESSED BY *VER* MAIN.
SPACE 4,10
*** BINARY MAINTENANCE LOG MESSAGES.
*
*
* MESSAGES WILL BE ISSUED IN THE FOLLOWING CASES.
*
* 1. REQUEST CM FOR NOS/VE.
* 2. RETURN CM FROM NOS/VE.
* 3. REQUEST PP FOR NOS/VE.
* 4. RETURN PP FROM NOS/VE.
* 5. CANNOT IDLE PP.
* 6. CANNOT DEADSTART PP.
* 7. BAD PP RETURNED FROM NOS/VE.
*
* THE CONTENTS OF THE MESSAGE INCLUDE THE PP NUMBER OR
* THE CURRENT FWA AND LWA+1 OF NOS/VE CM, AS APPROPRIATE.
SPACE 4,10
** ROUTINES CALLED.
*
*
* 1VP - RESERVE VIRTUAL PP.
SPACE 4,10
*CALL COMPMAC
*CALL COMPMRM
*CALL COMSCPS
*CALL COMSDFS
*CALL COMSDFT
QUAL DSL
*CALL COMSDSL
QUAL *
LIST X
*CALL COMSDST
LIST *
*CALL COMSEJT
*CALL COMSIOU
*CALL COMSPIM
*CALL COMSSSD
LIST X
*CALL COMSVED
LIST *
SPACE 4,10
**** DIRECT LOCATION ASSIGNMENTS.
PB EQU 20 - 24 REQUEST/REPLY WORD BUFFER (5 LOCATIONS)
RN EQU 25 C180 REGISTER NUMBER
EC EQU 26 C180 REGISTER CONNECTION CODE
LO EQU 27 LIST OFFSET
NC EQU LO SYSTEM CONTROL POINT NUMBER
CL EQU 30 - 34 CM WORD BUFFER (5 LOCATIONS)
DA EQU 35 DIRECT CELL STORAGE
DB EQU 36 DIRECT CELL STORAGE
DC EQU 37 DIRECT CELL STORAGE
CN EQU 40 - 44 CM WORD BUFFER (5 LOCATIONS)
ES EQU CN CM WORD BUFFER FOR *COMPDVC*
LE EQU 45 LAST EST ORDINAL + 1
CF EQU 46 CONFIGURATION FLAG
BS EQU 47 MEMORY BLOCK SIZE
SC EQU 60 - 64 SCRATCH
****
SPACE 4,10
* IN ORDER TO SAVE SPACE, THE DIRECT CELL *TH* IS USED IN PLACE
* OF *ESIR*. THIS MUST BE CHANGED IF THE VALUE OF *ESIR* IN
* *COMSVED* CHANGES.
ERRNZ ESIR-1000 *ESIR* VALUE HAS CHANGED, SEE ABOVE NOTE
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
ABORT ENDM
FCN SPACE 4,10
** FCN - DEFINE FUNCTION PROCESSOR.
*
* FCN NAME
*
* NAME = NAME OF FUNCTION PROCESSOR.
FCN MACRO A
CON A
FCN ENDM
TITLE MAIN PROGRAM.
ORG PPFW
VER SPACE 4,10
** VER - MAIN PROGRAM.
VER RJM PRS PRESET VIRTUAL ENVIRONMENT
STD PB+4
NJN VERX IF ERROR FOUND DURING PRESET
* TO FUNCTION PROCESSOR WITH
* (PB - PB+4) = FIRST WORD OF PARAMETER BLOCK.
* = 1/F, 35/0, 12/LENGTH, 12/0.
* F = FLAG USED ONLY IN RETURN FUNCTIONS.
* = 0 - RETURN SPECIFIED RESOURCES.
* = 1 - RETURN ALL.
* LENGTH = LENGTH (IN CM WORDS) OF PARAMETER BLOCK.
* (IR+3 - IR+4) = ADDRESS OF PARAMETER BLOCK.
RJM **
VERA EQU *-1 (FUNCTION PROCESSOR ADDRESS)
VERX AOD PB+4 SET COMPLETION BIT
RJM CPA GET PARAMETER BLOCK ADDRESS
CWD PB WRITE RESPONSE
MONITOR DPPM DROP PP
LJM PPR EXIT TO PP RESIDENT
** RESERVED LOCATIONS.
CHFL CON 0 CHANNEL RESERVED FLAG
NEJT CON 0 NOS/VE EJT ORDINAL
PPCA CON 0 PP COMMUNICATION AREA ADDRESS
TITLE ERROR PROCESSOR.
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 ISSUE DAYFILE MESSAGE
MONITOR ABTM ABORT CONTROL POINT
LJM PPR EXIT TO PP RESIDENT
* ERROR MESSAGES.
ERIR DATA C* VER - ILLEGAL USER ACCESS.*
ERAE DATA C* VER - ARGUMENT ERROR.*
ERMR DATA C* VER - FATAL MAINTENANCE REGISTER ERROR.*
EREU DATA C* VER - EJT ENTRY UNAVAILABLE.*
EROS DATA C* VER - OVERLAY SELECTION ERROR.*
SPACE 4,10
* COMMON DECKS.
*CALL COMPMRA
*CALL COMPRNS
TITLE BUFFER DEFINITIONS.
SPACE 4,35
** BUFFER DEFINITIONS.
*
* BUFFERS ARE ALLOCATED AT THE HIGHEST MEMORY LOCATIONS
* SO THAT THE SAME BUFFER DEFINITIONS MAY BE USED BY BOTH
* THE MAIN PORTION OF *VER* AND THE *2VR* OVERLAY. NONE OF
* THESE BUFFERS MAY BE USED BY PRESET.
*
* *IBUF*, *PBUF*, AND *RBUF* MUST NOT OVERLAP.
* *MBUF* MUST NOT OVERLAP *IBUF* OR *RBUF*.
* *CBUF* MUST NOT OVERLAP *RBUF*.
* *MBUF* MAY OVERLAP *CBUF* AND *PBUF*.
* *CBUF* AND *TCFL* MAY OVERLAP *IBUF* AND *PBUF*.
*
* *MBUF* IS USED ONLY FOR THE *RSCM* AND *RNCM* FUNCTIONS.
* *PBUF* IS USED ONLY FOR THE *RNPP* AND *RNPT* FUNCTIONS.
* *PBUF* MUST HAVE TWO RESERVED WORDS PRECEEDING IT FOR DISK
* LINKAGE BYTES.
.CBUFL MAX 40,CTALL*5 CHANNEL TABLE/CONTROL POINT FL SPACE
.IBUFL EQU 10 MAINTENANCE REGISTER SPACE
.MBUFL EQU 10 MAINTENANCE REGISTER SPACE
.PBUFL EQU 1200 PP RESIDENT SPACE
.RBUFL MAX 10,CTALL*5 MAINTENANCE REGISTER/CHANNEL TABLE SPACE
RBUF EQU EPFW-.RBUFL MAINTENANCE REGISTER/CHANNEL TABLE BUFFER
CBUF EQU RBUF-.CBUFL CHANNEL TABLE/CONTROL POINT FL BUFFER
IBUF EQU RBUF-.IBUFL MAINTENANCE REGISTER BUFFER
MBUF EQU IBUF-.IBUFL MAINTENANCE REGISTER BUFFER
PBUF EQU IBUF-.PBUFL PP RESIDENT INPUT BUFFER
** TCFL - TABLE OF CP/PCP CM FIELD LENGTHS.
*
* ONE WORD PER CP/PCP.
*
*T 1/R, 11/ FL
* R=1, IF ROLLOUT FLAG SET.
TCFL EQU CBUF
TITLE COMMON SUBROUTINES.
CHA SPACE 4,10
** CHA - CHECK CHANNEL ASSIGNMENT.
*
* ENTRY (T2) = CHANNEL NUMBER.
*
* EXIT (A) = 0 IF CHANNEL IS ASSIGNED TO NOS/VE.
*
* USES T4.
CHA SUBR ENTRY/EXIT
LDN CTALL
STD T4
LDC ** FWA OF CHANNEL EJT ASSIGNMENT TABLE
CHAA EQU *-2
CRM CBUF,T4 READ CHANNEL ASSIGNMENT TABLE
LDM NEJT
LMM CBUF,T2
UJN CHAX RETURN
CPA SPACE 4,10
** CPA - CHECK PARAMETER BLOCK ADDRESS.
*
* ENTRY (IR+3 - IR+4) = PARAMETER BLOCK ADDRESS.
* (PB+3) = WORD COUNT.
*
* EXIT (A) = ABSOLUTE ADDRESS OF PARAMETER BLOCK.
* ABORT IF PARAMETER BLOCK NOT WITHIN FIELD LENGTH.
*
* MACROS ABORT.
CPA2 LDD IR+3 LOAD ABSOLUTE ADDRESS
SHN 6
ADD RA
SHN 6
ADD IR+4
CPA SUBR ENTRY/EXIT
LDD IR+3
SCN 37
NJN CPA1 IF OUT OF RANGE
LDD IR+3
SHN 14
LMD IR+4
ADD PB+3 ADD LENGTH
SBN 1
SHN -6
SBD FL
MJN CPA2 IF PARAMETER BLOCK WITHIN FL
CPA1 ABORT ERAE * VER - ARGUMENT ERROR.*
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
LPR SPACE 4,10
** LPR - LOAD PP RESIDENT.
*
* EXIT (PBUF) = COPY OF PP RESIDENT.
*
* USES DA, DB, T2, T5, T6, T7, CL, CM - CM+4.
*
* CALLS RNS.
*
* MACROS ENDMS, MONITOR, SETMS.
LPR SUBR ENTRY/EXIT
LDC 0L1PR SET *PPR* NAME
STD CM+3
SHN -14
STD CM+2
MONITOR SPLM SEARCH PERIPHERAL LIBRARY
LDD CM+1 SET EST ORDINAL
LPN 77
STD T5
LDD CM+2 SET TRACK NUMBER
STD T6
LDD CM+3 SET SECTOR NUMBER
STD T7
SETMS IO
LDC PBUF-2
STD CL
LPR1 LDI CL SAVE TWO WORDS
STD CL+1
LDM 1,CL
STD CL+2
LDD CL
RJM RNS READ NEXT SECTOR
LDD CL+1 RESTORE TWO WORDS
STI CL
LDD CL+2
STM 1,CL
LDC 500 ADVANCE BUFFER ADDRESS
RAD CL
LDD T1
SHN -6
NJN LPR1 IF NOT END OF *PPR*
ENDMS
LJM LPRX RETURN
MRER SPACE 4,10
** MRER - MAINTENANCE REGISTER ERROR HANDLER.
*
* ENTRY FATAL MAINTENANCE REGISTER ERROR.
* (T7) = CHANNEL NUMBER IF ONE ASSIGNED.
* (CHFL) .NE. 0 IF CHANNEL ASSIGNED.
*
* EXIT TO *ERR* VIA *ABORT* MACRO.
* CHANNEL DROPPED AND DISCONNECTED.
*
* MACROS ABORT, DCHAN.
MRER LDM CHFL CHECK CHANNEL ASSIGNED FLAG
ZJN MRE1 IF CHANNEL NOT ASSIGNED
MREA DCN **+40
LDD T7
DCHAN DROP CHANNEL
MRE1 ABORT ERMR * VER - FATAL MAINTENANCE REGISTER ERROR.*
NEC SPACE 4,10
** NEC - NORMALIZE EC REGISTER.
*
* ENTRY (RBUF - RBUF+7) = EC REGISTER.
*
* EXIT (RBUF - RBUF+7) = NORMALIZED EC REGISTER.
* NORMALIZED EC REGISTER REWRITTEN.
* BITS 34-39, 43-47, 51-55, 58 = 0.
* ALL OTHER BITS ARE UNCHANGED.
*
* MACROS WRITMR.
NEC SUBR ENTRY/EXIT
LDM RBUF+4 CLEAR BITS 34-39
NECA SCN 37
* SCN 77 (IF IOU MODEL I2)
STM RBUF+4
LDM RBUF+5 CLEAR BITS 43-47
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,,DEMR UPDATE EC REGISTER
LJM NECX RETURN
SDC SPACE 4,10
** SDC - SELECT DEADSTART CHANNEL.
*
* EXIT (T7) = CHANNEL NUMBER.
* (CHFL) = CHANNEL FLAG SET.
*
* USES T0, T1, CM - CM+4.
*
* MACROS RCHAN, SFA.
SDC SUBR ENTRY/EXIT
SDC1 LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
STD T1
SDC2 AOD T1 ADVANCE EST ORDINAL
LMD LE
ZJN SDC1 IF NO CHANNEL FOUND
SFA EST,T1 READ EST ENTRY
ADK EQDE
CRD CM
LDD CM
SHN 21-13
PJN SDC2 IF NOT MASS STORAGE DEVICE
LDD CM+3 CHECK IF ECS ENTRY
LMC 2RDE
ZJN SDC2 IF ECS ENTRY
LDN CM
STD T0
SDC3 AOD T0
LMN CM+3
ZJN SDC2 IF BOTH CHANNELS CHECKED
LDI T0
SHN 0-12
LMN 2
NJN SDC3 IF CHANNEL NOT PRESENT OR DISABLED
LDI T0
SHN 21-5
MJN SDC3 IF CONCURRENT CHANNEL
SHN 5-21
STD T7
RCHAN RESERVE CHANNEL
AOM CHFL SET CHANNEL RESERVED FLAG
LJM SDCX RETURN
SEA SPACE 4,10
** SEA - SET *EICB* ADDRESS.
*
* EXIT (A) = *EICB* ADDRESS.
SEA SUBR ENTRY/EXIT
SEAA LDC ** (FWA OF *EICB*)
UJN SEAX RETURN
VRC SPACE 4,15
** VRC - VE RESERVE CHANNEL.
*
* ENTRY (T2) = CHANNEL NUMBER.
*
* EXIT (T4) = 0 IF CHANNEL PREVIOUSLY NOS/VE RESERVED.
* (CM+1) = NONZERO VALUE IF CHANNEL ASSIGNED.
* NIO CHANNEL DISCONNECTED IF ASSIGNED.
*
* USES T4, CM - CM+4.
*
* CALLS CHA.
*
* MACROS MONITOR.
VRC1 STD T4 INDICATE ALREADY NOS/VE RESERVED
VRC SUBR ENTRY/EXIT
RJM CHA CHECK CHANNEL ASSIGNMENT
ZJN VRC1 IF CHANNEL ALREADY NOS/VE RESERVED
LDD T2 SET CHANNEL NUMBER
STD CM+3
LDM NEJT SET ALTERNATE EJT ORDINAL
STD CM+4
LDC 4001 SET DUMMY EST ORDINAL
STD CM+1
LDN ICNS SET SUBFUNCTION
STD CM+2
MONITOR SEQM REQUEST CHANNEL
LDD CM+1
ZJP VRCX IF CHANNEL NOT AVAILABLE
LDD T2
LPN 40
NJP VRCX IF CONCURRENT CHANNEL
LDC DCNI+40 DISCONNECT CHANNEL
ADD T2
STM VRCA
VRCA DCN **+40
UJP VRCX RETURN
VTC SPACE 4,10
** VTC - VE RETURN CHANNEL.
*
* ENTRY (T2) = CHANNEL NUMBER.
*
* EXIT (A) = 0.
* CHANNEL RETURNED.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
VTC SUBR ENTRY/EXIT
LDD T2 SET CHANNEL NUMBER
STD CM+3
LDM NEJT SET ALTERNATE EJT ORDINAL
STD CM+4
LDC 4001 SET DUMMY EST ORDINAL
STD CM+1
LDN CCNS SET SUBFUNCTION
STD CM+2
MONITOR SEQM RETURN CHANNEL
* LDN 0
UJN VTCX RETURN
OVLA SPACE 4,10
* DEFINE ORIGIN FOR OVERLAY *2VR*.
OVLA EQU *+5
TITLE FUNCTION PROCESSORS.
RCM SPACE 4,15
** FUNCTION 0 - RSCM - RESERVE CM.
*
* ENTRY (EIBA - EIBA+1) = *EICB* ADDRESS.
* (PB LIST ENTRY) = 42/0, 18/CM WORDS/1000B REQUESTED.
*
* EXIT WORD *D7CM+1* OF *EICB* AND PB LIST ENTRY+1 =
* 12/0, 24/FWA/1000B, 24/LWA+1/1000B.
* (PB LIST ENTRY) = 42/0, 18/CM WORDS/1000B REQUESTED
* ROUNDED UP TO THE NEAREST 2000B BOUNDARY.
* MACHINE FL ADJUSTED TO REFLECT NEW TOTAL FOR NOS.
* (PB+4) = ERROR STATUS.
* BML MESSAGE ISSUED.
*
* USES PB+4, T6, T7, CL - CL+4, CM+3 - CM+4, T1 - T1+4.
*
* CALLS CMS, CPA, CRZ, GCC, IBM, RST, SBA, SDA.
RCM SUBR ENTRY/EXIT
LDD PB+3 CHECK PARAMETER BLOCK LENGTH
SBN 2
PJN RCM1 IF LENGTH LONG ENOUGH
LDC ESIL SET INSUFFICIENT LENGTH STATUS
LJM RCM5 RETURN
RCM1 RJM CPA GET NUMBER OF CM WORDS REQUESTED
ADN 1
CRD CL
LDD CL+4 CHECK REQUEST
LPN 1
ZJN RCM1.1 IF REQUEST EVEN
AOD CL+4 ROUND UP TO NEAREST 2000B BOUNDARY
SHN -14
RAD CL+3 ADD CARRY
RCM1.1 LDD CL+3
STD T6
LDD CL+4
STD T7
RJM GCC GET CURRENT NOS/VE SIZE
RJM CRZ CHECK REQUEST SIZE
PJN RCM2.1 IF REQUEST SATISFIED BY RESERVED BLOCK
LDC UEML CHECK FOR UEM PRESENT
CRD T1
LDD T1+4
LPN 2
ZJN RCM6 IF UEM NOT PRESENT
UJN RCM4 SET NOT AVAILABLE
RCM2 RJM SBA SET BOUNDS ADDRESS
RCM2.1 RJM SDA SET *EICB* CM ADDRESSES
LDN 0 SET REPLY WORD
STD CL
STD CL+1
RJM CPA SET REPLY
ADN 1
CWD CL
ADN 1
CWD CN
LDC /COMSDFS/HS0110 SET SYMPTOM CODE
STD T1
LDC /COMSDFS/HM0240 SET MESSAGE ID
RJM IBM ISSUE BML MESSAGE
RCM3 LJM RCMX RETURN
RCM4 LDN ESCM SET CM NOT AVAILABLE STATUS
RCM5 STD PB+4
UJN RCM3 RETURN
* DYNAMIC CASE. (UEM NOT PRESENT).
* DETERMINE IF BLOCK IS ALREADY COMPLETELY USED.
* COMPARE CURRENT NOS/VE MEMORY TO RESERVED BLOCK SIZE.
RCM6 LDD CM+3
STD T1
LDD CN+4
SBD CM+4
PJN RCM6.1 IF NO BORROW
AOD T1 ADJUST FOR BORROW
RCM6.1 LDD CN+3
SBD T1
MJN RCM7 IF ALREADY USING MORE THAN BLOCK
* SET AMOUNT TO REQUEST DYNAMICALLY.
* (REQUEST + CURRENT SIZE - BLOCK SIZE).
LDD CN+3
STD T1
LDD CL+4
ADD CM+4
SBD CN+4
STD T7
PJN RCM6.2 IF NO BORROW
AOD T1 ADJUST FOR BORROW
AOD T7
LDN 0
RCM6.2 SHN -14
ADD CL+3
ADD CM+3
SBD T1
STD T6
RCM7 RJM CMS CHECK MEMORY SIZE
MJN RCM4 IF NOT ENOUGH LEFT
LDD T6 SAVE TOTAL REQUEST
STM RCMA
LDD T7
STM RCMA+1
LDN 0 SET REQUEST FUNCTION
RJM RST REQUEST MEMORY
NJN RCM8 IF TOTAL REQUEST NOT AVAILABLE
LJM RCM2 SET *EICB* AND REPLY
* RETURN MEMORY ALREADY ASSIGNED.
RCM8 STD T7
SHN -14
STD T6
LDM RCMA
SBD T6
SHN 14
LMM RCMA+1
SBD T7
STD T7
SHN -14
STD T6
LDD HN RETURN MEMORY
RJM RST
LJM RCM4 SET NOT AVAILABLE STATUS
RCMA CON 0,0 TOTAL DYNAMIC MEMORY REQUEST
RPP SPACE 4,15
** FUNCTION 1 - RSPP - RESERVE PP-S.
*
* ON 20 PP 810/830 CONFIGURATIONS, PP-S MUST BE ASSIGNED
* TO NOS/VE IN PARTNER PAIRS. IF NOS/VE REQUESTS AN ODD
* NUMBER OF PP-S OR RETURNS ONE MEMBER OF A PARTNER PAIR,
* THE EXTRA PP MUST NOT BE USED BY NOS, BUT NOS/VE MUST
* NOT KNOW ABOUT IT EITHER. THESE PP-S ARE CALLED PSEUDO-
* ASSIGNED. AS FAR AS NOS IS CONCERNED, THEY ARE IN AN
* IDENTICAL STATUS AS OTHERS ASSIGNED TO NOS/VE. THEIR
* INPUT REGISTERS CONTAIN *VP AND THEY ARE IDLE AND MARKED
* AS UPPER PP-S IN THE OS BOUNDS REGISTER. THE ONLY
* DISTINCTION IS THAT BYTE 4 OF THE INPUT REGISTER IS ZERO
* FOR PP-S THAT ARE ACTUALLY ASSIGNED, AND NON-ZERO FOR
* THOSE THAT ARE PSEUDO-ASSIGNED. IN ORDER TO ASSIGN THEM
* TO NOS/VE ALL THAT MUST BE DONE IS TO CLEAR BYTE 4 OF THE
* INPUT REGISTER AND ENTER THE PP NUMBER IN THE REPLY BLOCK
* FOR A REQUEST PP FUNCTION.
*
* EXIT (PB LIST ENTRY) = 6/PP NUMBER, 54/0.
* = 6/77B, 42/0, 12/ERROR CODE
* IF PP UNAVAILABLE.
* (PB+4) = ERROR STATUS.
* BML MESSAGE ISSUED.
*
* USES DA, DB, DC, EC, LO, PB+4, T3, T6, CL - CL+4,
* CM - CM+4, CN - CN+4.
*
* CALLS ARC, CPA, GCP, IBM, IPP, SPB.
*
* MACROS DELAY, EXECUTE, MONITOR, PAUSE.
RPP SUBR ENTRY/EXIT
LDN ZERL INITIALIZE RESPONSE LIST ENTRY
CRD CL
LDN 1 INITIALIZE LIST OFFSET
STD LO
LDD PB+3 GET NUMBER REQUESTED
ZJN RPPX IF NONE REQUESTED
STD T6
RJM GCP GET CURRENT STATUS OF PP-S
RJM ARC ADJUST REQUEST COUNT
LDD T6
ZJN RPPX IF REQUEST SATISFIED
LDD CM+2 TOTAL PP-S IN SYSTEM
SBD T6
SBD T5
SBN MINP
PJN RPP1 IF ENOUGH LEFT FOR NOS
RAD T6 SET NUMBER OF PP-S AVAILABLE TO NOS/VE
MJN RPP0 IF NONE AVAILABLE
NJN RPP1 IF NOS/VE DOES NOT ALREADY HAVE MAXIMUM
RPP0 UJN RPP2.2 SET PP NOT AVAILABLE STATUS
* REQUEST PP FOR *1VP*.
RPP1 LDD MA SET INPUT REGISTER
CWM RPPA,ON
EXECUTE 1VP,=
LDN 5 INITIALIZE ATTEMPT COUNT
STD DC
RPP2 LDN ZERL
CRD CM
LDD CF
ZJN RPP2.1 IF NOT 810/830 WITH 20 PP-S
LDN 4 SET PARTNER PAIR FLAG
RPP2.1 LMN 1 SET PRIORITY REQUEST
STD CM+1
MONITOR RPPM REQUEST PP
LDD CM+1
NJN RPP3 IF PP AVAILABLE
PAUSE NE
DELAY
SOD DC DECREMENT ATTEMPT COUNT
NJN RPP2 IF ANOTHER ATTEMPT TO BE MADE
RPP2.2 LJM RPP6 SET PP NOT AVAILABLE STATUS
RPP3 STD T3 SAVE INPUT REGISTER ADDRESS
LDD CM+2 SAVE SECOND INPUT REGISTER ADDRESS
STD DA
RPP4 LDD T3 GET INPUT REGISTER OF *1VP*
CRD CM
LDD CM
LMC 2R*V
ZJN RPP4.0 IF *1VP* READY
PAUSE NE
DELAY
UJN RPP4 RECHECK CALL
RPP4.0 RJM IPP IDLE PP
MJN RPP4.1 IF PP NOT IDLED
LDD T5
RJM SPB SET UPPER PP BIT
LDC /COMSDFS/HS0112 SET SYMPTOM CODE
STD T1
LDN ZERL CLEAR DATA WORD
CRD CN
LDD T5 SET PP NUMBER
STD CN+4
LDC /COMSDFS/HM0240 SET MESSAGE ID
RJM IBM ISSUE BML MESSAGE
LDD DB
NJN RPP4.2 IF PSEUDO-ASSIGNMENT
LDD T5 SET PP NUMBER
SHN 6
STD CL
RJM CPA WRITE PARAMETER LIST ENTRY
ADD LO
CWD CL
AOD LO INCREMENT LIST OFFSET
RPP4.1 UJN RPP5 CHECK IF REQUEST SATISFIED
RPP4.2 LDN 0 CLEAR PSEUDO-ASSIGNMENT NEEDED
STD DB
LDD T3 SET PSEUDO-ASSIGNED STATUS IN *IR*
CRD CM
AOD CM+4
LDD T3
CWD CM
RPP5 SOD T6
ZJN RPP6 IF REQUEST SATISFIED
LDD DA
STD T3
ZJP RPP1 IF NO SECOND PP ASSIGNED
LDN 0 CLEAR SECOND PP ASSIGNED
STD DA
UJP RPP4 PROCESS SECOND PP
* SET ERROR STATUS IN ALL REMAINING LIST ENTRIES.
RPP6 LDD LO
RPP7 SBD PB+3
SBN 1
PJN RPP8 IF END OF PARAMETER BLOCK LIST
LDN ESPP SET PP NOT AVAILABLE STATUS
STD PB+4
STD CL+4
LDC 7700 SET ERROR RESPONSE
STD CL
RJM CPA WRITE PARAMETER LIST ENTRY
ADD LO
CWD CL
AOD LO INCREMENT LIST OFFSET
UJN RPP7 CHECK FOR ANOTHER ENTRY
RPP8 LJM RPPX RETURN
RPPA VFD 18/0L1VP,42/0 *1VP* INPUT REGISTER
RCL SPACE 4,10
** FUNCTION 2 - RSCH - RESERVE CHANNELS.
*
* ENTRY (PB LIST ENTRY) = 6/CH, 54/0.
*
* EXIT (PB+4) = ERROR STATUS.
* (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR CODE.
*
* USES LO, T2, CL - CL+4.
*
* CALLS CPA, DCA.
RCL7 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
STD PB+4
RCL SUBR ENTRY/EXIT
LDD PB+3 CHECK BLOCK LENGTH
ZJN RCLX IF NONE REQUESTED
SBN NCTAL*5+1
PJN RCL7 IF TOO MANY CHANNELS REQUESTED
LDN NCTAL
STD T2
LDC ** FWA CHANNEL STATUS TABLE
RCLA EQU *-2
CRM RBUF,T2
LDN 1 INITIALIZE LIST OFFSET
STD LO
RCL1 RJM CPA READ NEXT CHANNEL NUMBER
ADD LO
CRD CL
LDN 0 CLEAR ERROR FLAG
STD CL+4
LDD CL
SHN -6
STD T2
SBN MXNC+1
MJN RCL2 IF VALID CHANNEL NUMBER
LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
UJN RCL3 WRITE PARAMETER LIST ENTRY
RCL2 RJM DCA DETERMINE CHANNEL AVAILABILITY
ZJN RCL4 IF CHANNEL WAS PREVIOUSLY NOS/VE RESERVED
LDD CM+1
NJN RCL4 IF CHANNEL ASSIGNED
LDN ESCH SET CHANNEL NOT AVAILABLE STATUS
RCL3 STD PB+4
STD CL+4
RCL4 RJM CPA WRITE PARAMETER LIST ENTRY
ADD LO
CWD CL
LDD CL+4
LMD TH CHECK IF *ESIR*
NJN RCL6 IF LEGAL REQUEST
RCL5 LJM RCLX RETURN
RCL6 AOD LO INCREMENT LIST OFFSET
SBD PB+3
SBN 1
PJN RCL5 IF END OF LIST
LJM RCL1 PROCESS NEXT LIST ENTRY
TCM SPACE 4,20
** FUNCTION 4 - RNCM - RETURN CM.
*
* ENTRY (PB LIST ENTRY) = 42/0, 18/NUMBER OF WORDS/1000B TO
* RETURN.
*
* EXIT *EICB* WORD *D7CM+1* = 12/0, 24/FWA/1000B,
* 24/LWA+1/1000B.
* (PB LIST ENTRY) = 42/0, 18/NUMBER OF WORDS/1000B TO
* RETURN ROUNDED DOWN TO NEAREST 2000B BOUNDARY.
* MACHINE FL IS ADJUSTED IF ANY DYNAMIC MEMORY RETURNED.
* (PB+4) = ERROR STATUS.
* BML MESSAGE ISSUED.
*
* USES T1, CL - CL+1, CM - CM+4, CN - CN+1.
*
* CALLS CPA, GCC, IBM, RDM, SDA.
TCM2 LDN 0 SET TOTAL NUMBER OF WORDS = 0
STD CL
STD CL+1
LDD CN SET AMOUNT TO RETURN = CURRENT VALUE
STD CM+3
LDD CN+1
STD CM+4
TCM3 RJM RDM RETURN DYNAMIC MEMORY
RJM SDA SET CM ADDRESSES IN *EICB*
LDC /COMSDFS/HS0111 SET SYMPTOM CODE
STD T1
LDC /COMSDFS/HM0240 SET MESSAGE ID
RJM IBM ISSUE BML MESSAGE
TCM SUBR ENTRY/EXIT
RJM GCC GET CURRENT NUMBER OF NOS/VE CM WORDS
LDD CM+3
STD CN
LDD CM+4
STD CN+1
RJM CPA GET NUMBER OF WORDS TO BE RETURNED
ADN 1
CRD CM
LDD PB
SHN 21-13
MJP TCM2 IF REQUEST TO RETURN ALL MEMORY
LDD CM+4 ROUND DOWN TO NEAREST 2000B
SCN 1
STD CM+4
RJM CPA SET ROUNDED VALUE IN REPLY BLOCK
ADN 1
CWD CM
LDD CM+3 FIND NEW TOTAL
STD T1
LDD CN+1
SBD CM+4
STD CL+1
PJN TCM1 IF NO BORROW
AOD T1 ADJUST FOR BORROW
AOD CL+1
TCM1 LDD CN
SBD T1
STD CL
PJP TCM3 IF NUMBER TO RETURN .LE. CURRENT NUMBER
LDN ESCM SET CM NOT ASSIGNED ERROR STATUS
STD PB+4
LJM TCMX RETURN
TPP SPACE 4,15
** FUNCTION 5 - RNPP - RETURN PP.
*
* ENTRY (PB LIST ENTRY) = 6/PP NUMBER, 54/0.
*
* EXIT (PB LIST ENTRY) = 6/UNCHANGED, 42/0, 12/ERROR STATUS.
* (PB+4) = ERROR STATUS.
*
* USES DA, EC, LO, PB+4, CL - CL+4, CN - CN+4.
*
* CALLS CPA, CPS, DPL, LPR, SPB, VPN.
*
* MACROS MONITOR.
TPP13 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
STD PB+4
TPP SUBR ENTRY/EXIT
RJM LPR LOAD PP RESIDENT
LDN PPUL GET NUMBER OF SYSTEM PP-S
CRD CN
LDD CN+2
STD DA
LDD PB
SHN 21-13
PJN TPP1 IF RETURN SPECIFIED PP-S REQUEST
LJM TPP7 RETURN ALL NOS/VE PP-S
* RETURN SPECIFIED PP-S.
TPP1 LDD PB+3
ZJN TPPX IF NONE TO RETURN
SBD DA
SBN 1
PJN TPP13 IF REQUEST TOO LARGE
TPP2 LDN 1 INITIALIZE LIST OFFSET
STD LO
TPP3 RJM CPA READ NEXT LIST ENTRY
ADD LO
CRD CL
LDD CL
SHN -6
RJM VPN VALIDATE PP NUMBER
NJN TPP6 IF NOT ASSIGNED TO NOS/VE
RJM CPS CHECK PARTNER STATUS
MJN TPP4 IF ONLY REPLY NEEDED (PARTNER IS ASSIGNED)
NJN TPP6 IF PP IS PSEUDO-ASSIGNED
LDD T4 PP NUMBER
LMC 10000
RJM SPB SET LOWER PP BIT
RJM DPL DEADSTART PP AND LOAD *PPR*
TPP4 LDN 0 CLEAR ERROR FLAG
STD CL+4
TPP5 RJM CPA WRITE LIST ENTRY
ADD LO
CWD CL
LDD CL+4
LMD TH CHECK IF *ESIR*
ZJN TPP9 IF ILLEGAL REQUEST
AOD LO INCREMENT OFFSET
SBD PB+3
SBN 1
PJN TPP9 IF END OF LIST
LJM TPP3 PROCESS NEXT PP
TPP6 STD PB+4
STD CL+4
UJN TPP5 WRITE LIST ENTRY
* RETURN ALL NOS/VE RESERVED PP-S.
TPP7 LDN 0 INITIALIZE PP NUMBER
STD CL
TPP8 LDD CL
RJM VPN VALIDATE PP NUMBER
ZJN TPP10 IF ASSIGNED TO NOS/VE
LMN ESPP
ZJN TPP11 IF NOT END OF PP-S
TPP9 UJN TPP12 RETURN
TPP10 LDD T4 RETURN NOS/VE PP
LMC 10000
RJM SPB SET LOWER PP BIT
RJM DPL DEADSTART PP AND LOAD PPR
TPP11 AOD CL INCREMENT PP NUMBER
SBN 12
NJN TPP8 IF NOT PP 20
LDN 20 SET START OF UPPER BANK
STD CL
UJN TPP8 PROCESS NEXT PP
TPP12 LJM TPPX RETURN
TCH SPACE 4,15
** FUNCTION 6 - RNCH - RETURN CHANNEL.
*
* ENTRY (PB LIST ENTRY) = 6/CH, 54/0.
*
* EXIT (PB+4) = ERROR STATUS.
* (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR STATUS.
*
* USES LO, PB+4, T2, CL - CL+4.
*
* CALLS CPA, VTC.
TCH11 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
STD PB+4
TCH SUBR ENTRY/EXIT
LDN NCTAL READ EJT ASSIGNMENT TABLE
STD T2
LDC ** FWA OF CHANNEL EJT ASSIGNMENT TABLE
TCHA EQU *-2
CRM CBUF,T2
LDD PB
SHN 21-13
PJN TCH1 IF TO RETURN SPECIFIED CHANNELS
LJM TCH7 RETURN ALL NOS/VE CHANNELS
TCH1 LDD PB+3 CHECK BLOCK LENGTH
ZJN TCHX IF NONE TO BE RETURNED
SBN NCTAL*5+1
PJN TCH11 IF TOO MANY CHANNELS TO BE RETURNED
LDN 1 INITIALIZE LIST OFFSET
STD LO
TCH2 RJM CPA GET NEXT CHANNEL TO RETURN
ADD LO
CRD CL
LDD CL
SHN -6
STD T2
SBN MXNC+1
MJN TCH3 IF VALID CHANNEL NUMBER
LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
UJN TCH4 WRITE PARAMETER LIST ENTRY
TCH3 LDM NEJT
LMM CBUF,T2
ZJN TCH5 IF CHANNEL IS NOS/VE RESERVED
LDN ESCH SET CHANNEL NOT NOS/VE RESERVED STATUS
TCH4 STD PB+4
UJN TCH6 WRITE PARAMETER LIST ENTRY
TCH5 RJM VTC VE RETURN CHANNEL
* LDN 0 CLEAR ERROR STATUS
TCH6 STD CL+4
RJM CPA WRITE PARAMETER LIST ENTRY
ADD LO
CWD CL
LDD CL+4
LMD TH CHECK IF *ESIR*
ZJN TCH10 IF ILLEGAL REQUEST
AOD LO INCREMENT LIST OFFSET
SBD PB+3
SBN 1
PJN TCH10 IF END OF LIST
LJM TCH2 PROCESS NEXT LIST ENTRY
* RETURN ALL NOS/VE RESERVED CHANNELS.
TCH7 LDN 0 INITIALIZE CHANNEL TABLE OFFSET
STD T2
TCH8 LDM NEJT
LMM CBUF,T2
NJN TCH9 IF CHANNEL NOT NOS/VE RESERVED
RJM VTC VE RETURN CHANNEL
TCH9 AOD T2 INCREMENT CHANNEL TABLE OFFSET
SBN MXNC+1
MJN TCH8 IF NOT END OF TABLE
TCH10 LJM TCHX RETURN
SCM SPACE 4,15
** FUNCTION 10 - STCM - STATUS OF NOS/VE CM.
*
* ENTRY (EIBA - EIBA+1) = *EICB* ADDRESS.
*
* EXIT (PB LIST ENTRY) = 42/0, 18/NUMBER OF WORDS/1000B.
* = 12/0, 24/FWA/1000B, 24/LWA+1/1000B.
* (PB+4) = ERROR STATUS.
*
* USES PB+4, CL - CL+4, CM - CM+4.
*
* CALLS CPA, GCC, SEA.
SCM1 LDC ESIL SET INSUFFICIENT LENGTH STATUS
STD PB+4
SCM SUBR ENTRY/EXIT
LDD PB+3 CHECK LENGTH
SBN 2
MJN SCM1 IF INSUFFICIENT LENGTH
LDN ZERL CLEAR RESPONSE
CRD CL
RJM GCC GET CURRENT NUMBER OF NOS/VE CM WORDS
LDD CM+3
STD CL+3
LDD CM+4
STD CL+4
RJM SEA GET ADDRESSES FROM *EICB*
ADN D7CM+1
CRD CM
RJM CPA WRITE RESPONSE
ADN 1
CWD CL
ADN 1
CWD CM
UJN SCMX RETURN
SPP SPACE 4,15
** FUNCTION 11 - STPP - STATUS OF NOS/VE PP-S.
*
* ENTRY (PB LIST ENTRY) = 6/PP NUMBER, 54/0.
* (PPCA) = PP COMMUNICATION AREA ADDRESS.
*
* EXIT (PB+4) = ERROR STATUS.
* (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR STATUS.
*
* USES DA, LO, PB+4, CL - CL+4, CN - CN+4.
*
* CALLS CPA, VPN.
SPP5 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
STD PB+4
SPP SUBR ENTRY/EXIT
LDN PPUL GET NUMBER OF SYSTEM PP-S
CRD CN
LDD CN+2
STD DA
LDD PB+3 CHECK PARAMETER BLOCK LENGTH
ZJN SPPX IF NO REQUEST
SBN 21D
PJN SPP5 IF LENGTH .GT. NUMBER OF SYSTEM PP-S
LDN 1 INITIALIZE LIST OFFSET
STD LO
SPP1 RJM CPA READ NEXT LIST ENTRY
ADD LO
CRD CL
LDD CL
SHN -6
RJM VPN VALIDATE PP NUMBER
NJN SPP2 IF NOT ASSIGNED TO NOS/VE
LDD CM+4
ZJN SPP3 IF NOT PSEUDO-ASSIGNED TO NOS/VE
SPP2 LDN ESPP SET PP NOT ASSIGNED STATUS
STD PB+4
SPP3 STD CL+4 SET ERROR STATUS
RJM CPA WRITE RESPONSE
ADD LO
CWD CL
AOD LO INCREMENT LIST OFFSET
SBD PB+3
SBN 1
MJN SPP1 IF NOT END OF LIST
LJM SPPX RETURN
SCH SPACE 4,10
** FUNCTION 12 - STCH - STATUS OF NOS/VE CHANNELS.
*
* ENTRY (PB LIST ENTRY) = 6/CH, 54/0.
* (NEJT) = NOS/VE EJT ORDINAL.
*
* EXIT (PB+4) = ERROR STATUS.
* (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR STATUS.
*
* USES LO, PB+4, T2, CL - CL+4.
*
* CALLS CPA.
SCH5 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
STD PB+4
SCH SUBR ENTRY/EXIT
LDD PB+3 CHECK PARAMETER BLOCK LENGTH
ZJN SCHX IF NO REQUEST
SBN NCTAL*5
PJN SCH5 IF LENGTH .GT. NUMBER OF CHANNELS
LDN NCTAL
STD LO
LDC ** FWA OF CHANNEL EJT ASSIGNMENT TABLE
SCHA EQU *-2
CRM CBUF,LO
LDN 1 INITIALIZE LIST OFFSET
STD LO
SCH1 RJM CPA READ NEXT LIST ENTRY
ADD LO
CRD CL
LDD CL
SHN -6
STD T2
SBN MXNC+1
MJN SCH2 IF VALID CHANNEL NUMBER
LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
STD PB+4
UJN SCH3 WRITE RESPONSE
SCH2 LDM NEJT
LMM CBUF,T2
ZJN SCH3 IF CHANNEL RESERVED BY NOS/VE
LDN ESCH SET CHANNEL NOT RESERVED STATUS
STD PB+4
SCH3 STD CL+4 SET ERROR STATUS
RJM CPA WRITE RESPONSE
ADD LO
CWD CL
LDD CL+4
LMD TH CHECK IF *ESIR*
ZJN SCH4 IF ILLEGAL REQUEST
AOD LO INCREMENT LIST OFFSET
SBD PB+3
SBN 1
PJN SCH4 IF END OF LIST
LJM SCH1 PROCESS NEXT LIST ENTRY
SCH4 LJM SCHX RETURN
SMR SPACE 4,15
** FUNCTION 14 - STMR - STATUS AVAILABLE RESOURCES.
*
* EXIT (PB LIST ENTRY) = 42/0, 18/NUMBER OF CM WORDS/1000B
* AVAILABLE.
* = 54/0, 6/NUMBER OF PP-S AVAILABLE.
*
* USES DA, DB, PB+4, T1, CL - CL+4, CM - CM+4.
*
* CALLS CPA, GCC, GCP.
SMR6 LDC ESIL SET INSUFFICIENT LENGTH STATUS
STD PB+4
SMR SUBR ENTRY/EXIT
LDD PB+3 CHECK BLOCK LENGTH
SBN 2
MJN SMR6 IF INSUFFICIENT LENGTH FOR REPLY
LDN ZERL CLEAR RESPONSE
CRD CL
RJM GCC GET CURRENT NUMBER OF NOS/VE CM WORDS
LDD CM+3
STD DA
STD T1
LDD CM+4
STD DB
LDC UEML CHECK FOR UEM
CRD CM
LDD CM+4
LPN 2
ZJN SMR2 IF UEM NOT PRESENT
LDD CN+4 SUBTRACT CURRENT FROM BLOCK SIZE
SBD DB
STD CL+4
PJN SMR1 IF NO BORROW
AOD T1 ADJUST FOR BORROW
AOD CL+4
SMR1 LDD CN+3
SBD T1
STD CL+3
LJM SMR5 SET RESPONSE
SMR2 LDC MABL GET MACHINE FL/100B
CRD CM
LDD CM+2 FORM MACHINE FL/1000B
LPN 7
SHN 14
LMD CM+3
ADN 7
SHN -3
STD CM+3
SHN -14
SHN 3
ADD CM+2
SHN -3
STD CM+2
LDD CN+1 FORM MACHINE FL - MINCM
STD T1
LDD CM+3
SBD CN+2
STD CL+4
PJN SMR3 IF NO BORROW
AOD T1 ADJUST FOR BORROW
AOD CL+4
SMR3 LDD CM+2
SBD T1
STD CL+3
LDD DA FORM BLOCK - CURRENT
STD T1
LDD CN+4
SBD DB
STD T2
PJN SMR4 IF NO BORROW
AOD T1 ADJUST FOR BORROW
AOD T2
SMR4 LDD CN+3
SBD T1
STD T1
MJN SMR5 IF BLOCK USED UP
LDD T2 RETURN FL - MINCM + UNUSED BLOCK
RAD CL+4
SHN -14
ADD T1
RAD CL+3
* SET UP RESPONSE.
SMR5 LDD CL+4 ROUND DOWN TO NEAREST 2000B
SCN 1
STD CL+4
RJM CPA RETURN AVAILABLE CM
ADN 1
CWD CL
LDN 0 CLEAR RESPONSE
STD CL+3
RJM GCP GET CURRENT STATUS OF NOS/VE PP-S
LDD CM+2 RETURN TOTAL PP-S - DEDICATED - MINIMUM
SBD T5
SBN MINP
ADD T1 DO NOT COUNT PSEUDO-ASSIGNED PP-S
STD CL+4
RJM CPA RETURN AVAILABLE PP-S
ADN 2
CWD CL
LJM SMRX RETURN
TITLE SUBROUTINES.
APP SPACE 4,15
** APP - ASSIGN PSEUDO-ASSIGNED PP.
*
* ENTRY (LO) = CURRENT OFFSET IN PARAMETER LIST.
* (T1) = NUMBER OF PSEUDO-ASSIGNED PP-S.
* (T6) = PP REQUEST COUNT.
*
* EXIT (LO) = ADVANCED LIST ENTRY POINTER.
* (T1) = DECREMENTED COUNT OF PSEUDO-ASSIGNED PP-S.
* (T6) = DECREMENTED PP REQUEST COUNT.
*
* USES CL, LO, T1, T4, T5, T6, CM - CM+4.
*
* CALLS CPA.
*
* NOTE - THIS ROUTINE DOES NOT CHECK FOR THE END OF THE PP
* COMMUNICATION AREA. IT EXPECTS TO FIND A PSEUDO-ASSIGNED PP.
APP SUBR ENTRY/EXIT
LDM PPCA GET PP COMMUNICATION AREA POINTER
STD T4
LDN 0 INITIALIZE PP NUMBER
STD T5
APP1 AOD T5 INCREMENT PP NUMBER
LMN 12
NJN APP2 IF NOT PP 12
LDN 20 SET PP 20
STD T5
APP2 LDN 10 READ NEXT INPUT REGISTER
RAD T4
CRD CM
LDD CM+1
SCN 77
SHN 6
LMD CM
LMC 3RP*V
NJN APP1 IF NOT *VP
LDD CM+4
ZJN APP1 IF NOT PSEUDO-ASSIGNED
LDD T5 SET PP NUMBER IN REPLY
SHN 6
STD CL
RJM CPA WRITE PARAMETER LIST ENTRY
ADD LO
CWD CL
AOD LO INCREMENT LIST OFFSET
LDN 0 CLEAR PSEUDO-ASSIGNED STATUS
STD CM+4
LDD T4 REWRITE INPUT REGISTER
CWD CM
SOD T6 DECREMENT REQUEST COUNT
SOD T1 DECREMENT PSEUDO-ASSIGNED COUNT
LJM APPX RETURN
ARC SPACE 4,45
** ARC - ADJUST REQUEST COUNT.
*
* THIS ROUTINE ATTEMPTS TO SATISFY AS MUCH AS POSSIBLE OF
* THE CURRENT PP REQUEST WITH PSEUDO-ASSIGNED PP-S. IF THE
* REQUEST IS FOR AN ODD NUMBER OF PP-S, ONE PSEUDO-ASSIGNED
* PP WILL BE USED, AND THE REQUEST CHANGED TO ONE FOR AN EVEN
* NUMBER OF PP-S. EVEN REQUESTS WILL BE SATIFIED BY USING
* PAIRS OF PSEUDO-ASSIGNED PP-S, UNTIL ANOTHER PAIR IS NOT
* AVAILABLE, OR THE ENTIRE REQUEST IS SATISFIED.
*
* ENTRY (T6) = PP REQUEST COUNT FROM PARAMETER BLOCK.
* (T1) = NUMBER OF PP-S PSEUDO-ASSIGNED TO NOS/VE.
* (CF) = 0, IF NOT 810/830 WITH 20 PP-S.
*
* EXIT (T6) = ADJUSTED REQUEST COUNT. (REDUCED BY ANY
* PSEUDO-ASSIGNED PP-S THAT WERE USED, OR
* INCREASED BY 1, IF THE REQUEST IS FOR AN
* ODD NUMBER OF PP-S AND NO PSEUDO-ASSIGNED
* PP-S ARE AVAILABLE). THIS COUNT IS ALWAYS
* AN EVEN NUMBER.
* (DB) .NE. 0, IF PSEUDO-ASSIGNMENT REQUIRED.
*
* SEE *GCP* FOR OTHER EXIT CONDITIONS.
*
* USES DB, T6.
*
* CALLS APP, GCP.
ARC3 RJM GCP RESET CURRENT STATUS OF PP-S
ARC SUBR ENTRY/EXIT
LDN 0 CLEAR PSEUDO-ASSIGNMENT FLAG
STD DB
LDD CF
ZJN ARCX IF NOT 810/830 WITH 20 PP-S
LDD T1
NJN ARC1 IF PSEUDO-ASSIGNED PP-S
LDD T6
LPN 1
ZJN ARCX IF REQUEST IS FOR EVEN NUMBER
AOD T6 MAKE REQUEST EVEN
AOD DB SET PSEUDO-ASSIGNMENT REQUIRED
UJN ARC3 RESET STATUS
ARC1 LDD T6
LPN 1
ZJN ARC2 IF EVEN REQUEST
RJM APP ASSIGN PSEUDO-ASSIGNED PP
ARC2 LDD T6
ZJN ARC3 IF REQUEST IS SATISFIED
LDD T1
SBN 2
MJN ARC3 IF NO PAIR OF PSEUDO-ASSIGNED PP-S
RJM APP ASSIGN PSEUDO-ASSIGNED PP
RJM APP ASSIGN PSEUDO-ASSIGNED PP
UJN ARC2 CHECK IF REQUEST SATISFIED
CAM SPACE 4,15
** CAM - CALCULATE AVAILABLE MEMORY.
*
* ENTRY (NC) = SYSTEM CONTROL POINT NUMBER.
*
* EXIT (DB) = HIGHEST CP/PCP NUMBER + 1.
* (DC) = UNASSIGNED CM/100B (3777B IF UNASSIGNED
* CM .GE. 131K).
* *TCFL* BUILT.
*
* USES DB, DC, CM - CM+4, CN - CN+4, SC - SC+4, T1 - T5.
*
* CALLS CCA.
CAM SUBR ENTRY/EXIT
LDK ACML GET AVAILABLE CM
CRD CM
LDN 0 INITIALIZE CP/PCP NUMBER
STD DB
LDD CM
SHN 14
LMD CM+1
SBK 3777
PJN CAM1 IF AVAILABLE CM .GE. 3777B
LDD CM+1
UJN CAM2 SET AVAILABLE CM
CAM1 LDC 3777 SET MAXIMUM AVAILABLE CM
CAM2 STD DC
CAM3 AOD DB ADVANCE CP/PCP NUMBER
LMD NC
ZJN CAM5 IF SYSTEM CP
LMD NC
LMC **
CAMA EQU *-1 (NUMBER OF MCT ENTRIES)
ZJN CAMX IF ALL CP-S/PCP-S PROCESSED
LDD DB SET CP/PCP ADDRESS
RJM CCA
ADK STSW
CRD T1 READ STATUS WORD
ADN JCIW-STSW
CRD SC READ JOB CONTROL WORD
ADK FLSW-JCIW
CRD CM
ADK TFSW-FLSW
CRD CN READ EJT ORDINAL
LDD CN
ZJN CAM5 IF UNASSIGNED CP/PCP
LDD SC+2
ZJN CAM4 IF ROLLABLE JOB
LDN 0
UJN CAM5 CLEAR *TCFL* ENTRY
CAM4 LDD T1+2 SAVE CM FL + ROLLOUT STATUS
LPN 1
SHN 13-0
ADD CM+4
ADD CM ADD NFL
CAM5 STM TCFL,DB
UJP CAM3 PROCESS NEXT CP/PCP
CCA SPACE 4,10
** CCA - COMPUTE CPA/PCPA ADDRESS.
*
* ENTRY (A) = CP/PCP NUMBER.
* (NC) = NUMBER OF CONTROL POINTS.
*
* EXIT (A) = CPA/PCPA ADDRESS.
CCA1 ADD NC
SHN 7
CCA SUBR ENTRY/EXIT
SBD NC
MJN CCA1 IF CONTROL POINT
ZJN CCA1 IF SYSTEM CONTROL POINT
SHN 7
CCAA ADC ** (PCP AREAS BASE ADDRESS)
UJN CCAX RETURN
CMS SPACE 4,10
** CMS - CHECK MEMORY SIZE.
*
* ENTRY (T6 - T7) = MEMORY TO REQUEST/1000B.
* (CN+1 - CN+2) = MINCM/1000B.
*
* EXIT (A) .LT. 0 IF REQUEST WILL NOT LEAVE THE
* MINCM VALUE FOR NOS. (65K MINIMUM REQUIRED IF
* MINCM IS NOT SPECIFIED).
*
* USES T1 - T5.
CMS SUBR ENTRY/EXIT
LDC MABL GET CURRENT NOS CM SIZE/100B
CRD T1
LDD T1+2 FORM CURRENT CM/1000B
LPN 7
SHN 14
LMD T1+3
ADN 7 ROUND TO NEXT THOUSAND
SHN -3
STD T1+3
SHN -14
SHN 3
ADD T1+2
SHN -3
STD T1+2
LDD T6 COMPUTE NEW NOS CM SIZE/1000B
STD T1
LDD T1+3
SBD T7
STD T2
PJN CMS1 IF NO BORROW
AOD T1 ADJUST FOR BORROW
AOD T2
CMS1 LDD T1+2
SBD T1
STD T1
MJN CMSX IF REQUEST TOO LARGE
LDD CN+1 CHECK IF RESULT LEAVES .LT. MINCM
STD T3
LDD T2
SBD CN+2
PJN CMS2 IF NO BORROW
AOD T3 ADJUST FOR BORROW
CMS2 LDD T1
SBD T3
LJM CMSX RETURN
CPS SPACE 4,20
** CPS - CHECK PARTNER STATUS.
*
* WHEN A NOS/VE PP IS RETURNED, IT MUST BE LEFT AS
* PSEUDO-ASSIGNED IF IT-S PARTNER IS STILL ASSIGNED.
* IF IT-S PARTNER IS PSEUDO-ASSIGNED, THEN BOTH CAN BE
* RELEASED FOR USE BY NOS.
*
* ENTRY (T4) = PP NUMBER.
* (T3) = OFFSET INTO PP COMMUNICATION AREA.
* (CM - CM+4) = INPUT REGISTER.
*
* EXIT (A) = 0, IF PARTNER IS PSEUDO-ASSIGNED.
* = *ESPP*, IF PP BEING RETURNED IS PSEUDO-ASSIGNED.
* .LT. 0, IF PARTNER IS STILL ASSIGNED.
*
* USES CM+4, SC, SC+1, T5, T6.
*
* CALLS DPL, SPB.
CPS5 LDN ESPP SET PP NOT ASSIGNED ERROR STATUS
CPS SUBR ENTRY/EXIT
LDD CF
ZJN CPSX IF NOT 810/830 WITH 20 PP-S
LDD CM+4
NJN CPS5 IF PSEUDO-ASSIGNED
LDD T4
SBN 12
PJN CPS1 IF UPPER BANK
ADN 12+20
STD T5 PARTNER PP NUMBER
LDD T3
ADK 10*12
UJN CPS2 READ INPUT REGISTER
CPS1 SBN 6
STD T5 PARTNER PP NUMBER
LDD T3
SBK 10*12
CPS2 STD T6 OFFSET OF PARTNER-S INPUT REGISTER
ADM PPCA
CRD CN READ PARTNER-S INPUT REGISTER
LDD CN+4
ZJN CPS4 IF PARTNER IS ASSIGNED
* PARTNER IS PSEUDO-ASSIGNED. IT CAN BE RELEASED
* FOR USE BY NOS.
LDD T3 SAVE PARAMETERS
STD SC
LDD T4
STD SC+1
LDD T5 RETURN PARTNER
STD T4
LMC 10000 SET LOWER PP BIT
RJM SPB
LDD T6
STD T3
RJM DPL DEADSTART PP AND LOAD *PPR*
LDD SC RESTORE PARAMETERS
STD T3
LDD SC+1
STD T4
LDN 0
CPS3 LJM CPSX RETURN
* PARTNER IS ASSIGNED. SET THIS PP AS PSEUDO-ASSIGNED.
CPS4 AOD CM+4 SET PSEUDO-ASSIGNED STATUS IN *IR*
LDM PPCA
ADD T3
CWD CM
LCN 0
UJN CPS3 RETURN
CRZ SPACE 4,15
** CRZ - CHECK REQUEST SIZE.
*
* ENTRY (CL+3 - CL+4) = REQUEST/1000B.
* (CM+3 - CM+4) = CURRENT NOS/VE MEMORY SIZE/1000B.
* (CN+3 - CN+4) = RESERVED BLOCK SIZE/1000B.
*
* EXIT (A) .LT. 0 IF CURRENT SIZE + REQUEST LARGER THAN
* BLOCK SIZE.
* (A) .GE. 0 IF CURRENT SIZE + REQUEST IS WITHIN BLOCK.
* (CL - CL+1) = (CURRENT SIZE + REQUEST)/1000B.
*
* USES T1, CL - CL+1.
CRZ SUBR ENTRY/EXIT
LDD CL+4 FORM NEW TOTAL
ADD CM+4
STD CL+1
SHN -14
ADD CL+3
ADD CM+3
STD CL
STD T1
LDD CN+4 COMPARE TO BLOCK SIZE
SBD CL+1
PJN CRZ1 IF NO BORROW
AOD T1 ADJUST FOR BORROW
CRZ1 LDD CN+3
SBD T1
UJN CRZX RETURN
CSS SPACE 4,10
** CSS - CHANGE SCHEDULER STATUS.
*
* ENTRY (A) = 0 IF TO ENABLE SCHEDULER.
* .NE. 0 IF TO DISABLE SCHEDULER.
*
* USES CM - CM+4.
*
* MACROS MONITOR.
CSS SUBR ENTRY/EXIT
ZJN CSS1 IF TO ENABLE
LDN LIOS&LDOS
CSS1 LMN LDOS
STM CSSA SET SUBFUNCTION
LDN 1
STD CM+1 SET COUNT
STD CM+2 SET NO DROP
LDD MA
CWM CSSA,ON
MONITOR UADM
UJN CSSX RETURN
CSSA CON LIOS INCREMENT FIELD BY ONE
* CON LDOS (DECREMENT)
CON INWL WORD ADDRESS
CON 13D*100+1 BIT POSITION AND FIELD WIDTH
CON 0
CON 0
DPL SPACE 4,15
** DPL - DEADSTART PP AND LOAD *PPR*.
*
* ENTRY (T3) = OFFSET INTO PP COMMUNICATION AREA.
* (T4) = PP NUMBER.
* (EC) = ELEMENT CONNECT CODE.
* (PPCA) = PP COMMUNICATION AREA ADDRESS.
* *PPR* AT PBUF+5.
*
* EXIT (A) .GT. 0 IF *PPR* SUCCESSFULLY LOADED.
* = 0 IF *PPR* NOT SUCCESSFULLY LOADED.
* BML MESSAGE ISSUED WITH PP NUMBER (SYMPTOM
* CODE INDICATES WHETHER OPERATION WAS SUCCESSFUL).
* IF UNABLE TO COMPLETE DEADSTART/LOAD, THE PP
* IS IDLED AND ITS INPUT REGISTER SET TO ***.
*
* USES T1 - T3, T6, T7, CN - CN+4.
*
* CALLS IBM, IPP, NEC, PSC, SDC.
*
* MACROS DCHAN, DELAY, PAUSE, READMR, WRITMR.
DPL9 LDD T7
DCHAN DROP CHANNEL
LDN 0 CLEAR CHANNEL ASSIGNED FLAG
STM CHFL
LDC /COMSDFS/HS0113 SET SYMPTOM CODE
STD T1
LDN ZERL CLEAR DATA WORD
CRD CN
LDD T4 SET PP NUMBER
STD CN+4
LDC /COMSDFS/HM0240 SET MESSAGE ID
RJM IBM ISSUE BML MESSAGE
LDN 1 SET SUCCESSFUL LOAD STATUS
DPL SUBR ENTRY/EXIT
LDM PPCA SET PP INPUT REGISTER ADDRESS
RAD T3
LDN 10 INITIALIZE DEADSTART/LOAD ATTEMPT COUNT
STD T2
LDD T3 SET UP *IA*, *OA*, *MA*, *CP* FOR THIS PP
STM PBUF+IA+5
ADN 1
STM PBUF+OA+5
ADN 1
STM PBUF+MA+5
LDN NCPL SET SYSTEM CONTROL POINT ADDRESS
CRD CN
AOD CN+1
SHN 7
STM PBUF+CP+5
DPL2 RJM SDC SELECT DEADSTART CHANNEL
RJM PSC PRESET CHANNEL INSTRUCTIONS
DPLA ACN **+40 ACTIVATE CHANNEL
* DEADSTART PP.
READMR RBUF,,DEMR READ EC REGISTER
LDM RBUF+4 SET PP NUMBER
DPLI SCN 37
* SCN 77 (IF IOU MODEL I2)
LMD T4
DPLJ LMN 0
* LMN 40 (SET AUTO MODE BIT IF IOU MODEL I2)
STM RBUF+4
LDM RBUF+5 SET CHANNEL NUMBER
SCN 37
LMD T7
STM RBUF+5
LDM RBUF+6 SET LOAD MODE BIT
SCN 37
ADN 20
STM RBUF+6
LDM RBUF+7 SET ENABLE BIT
SCN 40
ADN 40
STM RBUF+7
WRITMR RBUF,,DEMR WRITE EC REGISTER
RJM NEC NORMALIZE EC REGISTER
* LOAD *PPR*.
LDC MSFW+1 OUTPUT START ADDRESS
DPLB OAN **+40
DELAY
DPLC EJM DPL4,0 IF CHANNEL ACCEPTED WORD
LJM DPL6 PROCESS TIME OUT
DPL4 LDC PPFW-1
DPLD OAM PBUF+6,0 OUTPUT *PPR*
DPLE SFM DPL6,0 IF PARITY ERRORS
DPLF DCN **+40 DISCONNECT CHANNEL TO START PP
* WAIT FOR PP TO INITIALIZE.
*
* NOTE - THE DELAY MUST BE LONG ENOUGH TO ALLOW *PPR*
* PRESET TO COMPLETE (AND ISSUE THE *DPPM* TO CLEAR
* THE INPUT REGISTER). IF A TIME OUT OCCURS HERE,
* AND THE PP IS DEADSTARTED AGAIN AFTER IT IS ALREADY
* EXECUTING, THE RESULTS ARE UNPREDICTABLE.
LDD TH SET DELAY LOOP COUNT
STD T6
DPL5 PAUSE NE
DELAY
SOD T6
ZJN DPL7 IF TIME OUT
LDD T3 CHECK PP INPUT REGISTER
CRD CN
LDD CN+1
SCN 77
SHN 6
LMD CN
LMC 3RP*V
ZJN DPL5 IF PP STILL ASSIGNED TO NOS/VE
LJM DPL9 RETURN
* PROCESS TIME OUT AND PARITY ERRORS.
DPL6 BSS 0
DPLG DCN **+40 DISCONNECT CHANNEL
DPL7 LDD T7
DCHAN DROP CHANNEL
LDN 0 CLEAR CHANNEL RESERVED FLAG
STM CHFL
SOD T2 DECREMENT DEADSTART ATTEMPT COUNT
ZJN DPL8 IF DEADSTART NOT TO BE RETRIED
LJM DPL2 ATTEMPT DEADSTART AGAIN
* IDLE PP AND SET UNUSABLE IF UNABLE TO DEADSTART.
DPL8 LDC /COMSDFS/HS0120 SET SYMPTOM CODE
STD T1
LDN ZERL CLEAR DATA WORD
CRD CN
LDD T4 SET PP NUMBER
STD CN+4
LDC /COMSDFS/HM0240 SET MESSAGE ID
RJM IBM ISSUE BML MESSAGE
RJM IPP IDLE PP
LDD T3
CWM DPLH,ON SET INPUT REGISTER TO ***
LDN 0
LJM DPLX RETURN
DPLH VFD 18/3R***,42/0 INPUT REGISTER OF UNUSABLE PP
GCC SPACE 4,10
** GCC - GET CURRENT NUMBER OF NOS/VE CM WORDS.
*
* ENTRY (EIBA - EIBA+1) = *EICB* ADDRESS.
*
* EXIT (CM+3 - CM+4) = NUMBER OF NOS/VE CM WORDS/1000B.
* (CN - CN+4) = WORD *D7CM* FROM *EICB*.
*
* USES T1, CM - CM+4, CN - CN+4.
*
* CALLS SEA.
GCC SUBR ENTRY/EXIT
RJM SEA SET *EICB* FWA
ADN D7CM
CRD CN READ *D7CM*
ADN 1
CRD CM READ CURRENT FWA/LWA+1
LDD CM+1 SUBTRACT TO FIND CURRENT NOS/VE CM
STD T1
LDD CM+4
SBD CM+2
STD CM+4
PJN GCC1 IF NO BORROW
AOD T1 ADJUST FOR BORROW
AOD CM+4
GCC1 LDD CM+3
SBD T1
STD CM+3
UJN GCCX RETURN
GCP SPACE 4,10
** GCP - GET CURRENT STATUS OF PP-S.
*
* ENTRY (PPCA) = ADDRESS OF PP COMMUNICATION AREA.
*
* EXIT (T4) = NUMBER OF NOS/VE RESERVED PP-S.
* (T1) = NUMBER OF PSEUDO-ASSIGNED TO NOS/VE PP-S.
* (T5) = NUMBER OF DEDICATED PP-S.
* (CM+2) = NUMBER OF PP-S IN SYSTEM.
*
* USES T1, T2, T3, T4, T5, T7, CM - CM+4, CN - CN+4.
GCP SUBR ENTRY/EXIT
LDN PPUL GET NUMBER OF PP-S IN SYSTEM
CRD CM
LDD CM+2
STD T2
LDM PPCA GET PP COMMUNICATION AREA POINTER
STD T3
LDN 0
STD T1 INITIALIZE COUNT OF PSEUDO-ASSIGNED PP-S
STD T4 INITIALIZE COUNT OF NOS/VE PP-S
STD T5 INITIALIZE COUNT OF DEDICATED PP-S
GCP1 LDN 0 INITIALIZE TABLE INDEX
STD T7
LDD T3 READ NEXT INPUT REGISTER
CRD CN
GCP2 LDD CN CHECK FOR DEDICATED PP
LMM TDPP,T7
NJN GCP3 IF NO MATCH
LDD CN+1
SCN 77
LMM TDPP+1,T7
NJN GCP3 IF NO MATCH
AOD T5 COUNT DEDICATED PP
LDD T7
NJN GCP4 IF NOT NOS/VE PP
AOD T4 COUNT NOS/VE PP
LDD CN+4
ZJN GCP4 IF NOT PSEUDO-ASSIGNED
AOD T1 COUNT PSEUDO-ASSIGNED PP
UJN GCP4 READ NEXT INPUT REGISTER
GCP3 LDN 2 INCREMENT INDEX
RAD T7
SBN TDPPL
MJN GCP2 IF NOT END OF TABLE
GCP4 LDN 10 ADVANCE TO NEXT INPUT REGISTER
RAD T3
SOD T2
NJN GCP1 IF MORE PP-S TO PROCESS
LJM GCPX RETURN
TDPP SPACE 4,10
** TDPP - TABLE OF DEDICATED PP-S.
*
* TWO WORD ENTRY.
*
*T, 18/NAME OF DEDICATED PP ROUTINE, 6/0
*
* NOTE - **VP* MUST BE THE FIRST ENTRY IN THE TABLE.
TDPP BSS 0 TABLE OF DEDICATED PP-S
VFD 24/3L*VP NOS/VE PP
VFD 24/0LMTR
VFD 24/0LDSD
VFD 24/0LDIS
VFD 24/0LO26
VFD 24/0L1CD
VFD 24/0L1HP
VFD 24/0L1XM
VFD 24/0L1TS
VFD 24/0L1TN
VFD 24/0L1TM
VFD 24/0LPIP
VFD 24/0LNDR
VFD 24/0LDFT
VFD 24/0LSCD
VFD 24/0LSCI
VFD 24/0LCPD
VFD 24/0LMDD
VFD 24/0LMTE
VFD 24/3L***
TDPPL EQU *-TDPP LENGTH OF DEDICATED PP TABLE
IPP SPACE 4,15
** IPP - IDLE PP.
*
* ENTRY (T3) = PP INPUT REGISTER ADDRESS.
* (PPCA) = PP COMMUNICATION AREA ADDRESS.
* (EC) = ELEMENT CONNECT CODE FOR IDLE PP.
*
* EXIT (A) = 0 IF PP IDLED.
* .LT. 0 IF UNABLE TO IDLE.
* (T5) = PP NUMBER.
* BML MESSAGE ISSUED IF UNABLE TO IDLE.
*
* USES T1, T2, T5, CN - CN+4.
*
* CALLS IBM, NEC.
*
* MACROS DELAY, LOCKMR, PAUSE, READMR, WRITMR.
IPP SUBR ENTRY/EXIT
LDD T3 COMPUTE NUMBER OF PP
SBM PPCA
SHN -3
STD T5
SBN 12
MJN IPP1 IF PP NUMBER .LT. 12
ADN 12+6
STD T5
IPP1 READMR RBUF,,DEMR READ EC REGISTER
LDM RBUF+4 SET PP NUMBER
IPPA SCN 37
* SCN 77 (IF IOU MODEL I2)
LMD T5
IPPB LMN 0
* LMN 40 (SET AUTO MODE BIT IF IOU MODEL I2)
STM RBUF+4
LDM RBUF+6 SET IDLE MODE BIT, K REGISTER (10B)
SCN 37
ADN 6
STM RBUF+6
LDM RBUF+7 SET ENABLE BIT
SCN 40
ADN 40
STM RBUF+7
LDN 10 INITIALIZE TIME OUT COUNT
STD T2
* LOOP UNTIL PP IS IDLED.
IPP2 LOCKMR SET GET LONG TERM INTERLOCK
WRITMR RBUF,,DEMR WRITE EC REGISTER
READMR IBUF,,ISTR 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
ZJP IPP4 IF PP IDLING
SOD T2
ZJN IPP3 IF TIME OUT
PAUSE NE
DELAY
LJM IPP2 LOOP
* ISSUE BML MESSAGE.
IPP3 LDC /COMSDFS/HS0121 SET SYMPTOM CODE
STD T1
LDN ZERL CLEAR DATA WORD
CRD CN
LDD T5 SET PP NUMBER
STD CN+4
LDC /COMSDFS/HM0240 SET MESSAGE ID
RJM IBM ISSUE BML MESSAGE
LDD T3 SET *** IN INPUT REGISTER
CWM DPLH,ON
RJM NEC NORMALIZE EC REGISTER
LCN 1
LJM IPPX RETURN
* NORMALIZE EC REGISTER.
IPP4 RJM NEC NORMALIZE EC REGISTER
LDN 0
LJM IPPX RETURN
PSC SPACE 4,10
** PSC - PRESET CHANNEL INSTRUCTIONS.
*
* ENTRY (T7) = CHANNEL NUMBER.
*
* EXIT CHANNEL INSTRUCTIONS MODIFIED.
*
* USES T1, T5.
PSC SUBR ENTRY/EXIT
LDC TPSC-1 INITIALIZE CHANNEL TABLE ADDRESS
STD T1
PSC1 AOD T1 ADVANCE CHANNEL TABLE
LDI T1
ZJN PSCX IF END OF TABLE
STD T5 MODIFY CHANNEL INSTRUCTION
LDI T5
SCN 37
LMD T7
STI T5
UJN PSC1 LOOP
** TPSC - TABLE OF CHANNEL INSTRUCTIONS.
TPSC BSS 0
CON DPLA
CON DPLB
CON DPLC
CON DPLD
CON DPLE
CON DPLF
CON DPLG
CON MREA
CON 0 END OF TABLE
RDM SPACE 4,10
** RDM - RETURN DYNAMIC MEMORY.
*
* ENTRY (CN - CN+1) = CURRENT NOS/VE MEMORY/1000B.
* (CM+3 - CM+4) = AMOUNT TO RETURN/1000B.
* (CL - CL+1) = NEW NOS/VE MEMORY SIZE/1000B.
* (CN+3 - CN+4) = RESERVED BLOCK SIZE/1000B.
*
* USES T1 - T1+4, T6, T7.
*
* CALLS RST, SBA.
RDM SUBR ENTRY/EXIT
LDD CN+3
STD T1
LDD CL+1
SBD CN+4
PJN RDM1 IF NO BORROW
AOD T1 ADJUST FOR BORROW
RDM1 LDD CL
SBD T1
MJN RDM2 IF NEW TOTAL WITHIN BLOCK
LDD CM+3 RETURN ENTIRE REQUEST
STD T6
LDD CM+4
STD T7
UJN RDM4 RETURN MEMORY
RDM2 LDD CN+3
STD T1
LDD CN+1
SBD CN+4
STD T7
PJN RDM3 IF NO BORROW
AOD T1 ADJUST FOR BORROW
AOD T7
RDM3 LDD CN
SBD T1
STD T6
MJN RDMX IF NO DYNAMIC MEMORY ASSIGNED
RDM4 LDC UEML CHECK FOR UEM PRESENT
CRD T1
LDD T1+4
LPN 2
NJN RDM5 IF UEM PRESENT
RJM SBA SET OS BOUNDS ADDRESS
RDM5 LDD HN RETURN MEMORY
RJM RST
LJM RDMX RETURN
ROJ SPACE 4,10
** ROJ - ROLLOUT JOBS.
*
* ENTRY (BS) = MEMORY REQUIRED THAT WAS UNAVAILABLE.
* SCHEDULER DISABLED BIT SET IN *INWL*.
*
* EXIT (A) .LT. 0 IF ROLLOUTS WILL NOT MAKE THE REQUIRED
* AMOUNT OF MEMORY AVAILABLE.
*
* USES DB, DC, CM - CM+4.
*
* CALLS CAM, SRR.
*
* MACROS MONITOR.
ROJ4 LCN 0 INDICATE INSUFFICIENT MEMORY OBTAINED
ROJ SUBR ENTRY/EXIT
ROJ1 PAUSE NE
LDK JSCL WAIT FOR SCHEDULER NOT ACTIVE
CRD CM
LDD CM
SHN 21-13
MJN ROJ1 IF SCHEDULER ACTIVE
RJM CAM CALCULATE AVAILABLE MEMORY
* ROLLOUT JOBS.
ROJ2 SOD DB DECREMENT CP/PCP NUMBER
ZJN ROJ4 IF ALL CP-S/PCP-S PROCESSED
LDM TCFL,DB
ZJN ROJ2 IF CP/PCP UNASSIGNED
SHN 21-13
MJN ROJ3 IF ROLLOUT ALREADY REQUESTED
RJM SRR REQUEST ROLLOUT
MJN ROJ2 IF REQUEST REJECTED
ROJ3 LDM TCFL,DB
LPC 3777
RAD DC ADD TO AVAILABLE MEMORY
SHN -3
SBD BS
PJN ROJX IF ENOUGH CM AVAILABLE
UJN ROJ2 PROCESS NEXT CP/PCP
RST SPACE 4,10
** RST - REQUEST STORAGE.
*
* ENTRY (A) = 0 IF REQUEST MEMORY.
* = 100 IF RETURN MEMORY.
* (T6 - T7) = MEMORY TO REQUEST OR RETURN/1000B.
*
* EXIT (A) = MEMORY UNAVAILABLE/1000B IF UNABLE TO OBTAIN
* TOTAL REQUEST.
* MEMORY IS ASSIGNED TO OR RELEASED FROM NOS/VE AND
* *MABL* IS UPDATED TO REFLECT THE NEW MACHINE FL
* FOR NOS.
*
* USES BS, NC, T2, T6, T7, CM - CM+4.
*
* CALLS CSS, ROJ.
*
* MACROS MONITOR, PAUSE.
RST5 RJM CSS ENABLE SCHEDULER
LDN 0
RST SUBR ENTRY/EXIT
ADC LDNI
ERRNZ LDNI+100-LCNI CODE DEPENDS ON VALUE
STM RSTA
LDC 377 SET MAXIMUM BLOCK SIZE
STD BS
LDK NCPL SET SYSTEM CP NUMBER
CRD CM
AOD CM+1
STD NC
LDN 1
RJM CSS DISABLE SCHEDULER
RST1 LDD T6 CHECK REMAINING REQUEST
SHN 14
LMD T7
ZJN RST5 IF NO MORE REQUIRED
SBD BS
MJN RST2 IF .LT. 131K REQUIRED
STD T7 SAVE REMAINING REQUEST
SHN -14
STD T6
UJN RST3 REQUEST 131K
RST2 RAD BS
LDN 0 CLEAR REMAINING REQUEST
STD T6
STD T7
RST3 LDN 0
RSTA EQU RST3
* LCN 0 (RETURNING MEMORY)
LMD BS
SHN 3 SET REQUEST / 100B
STD CM+1
LDC 200 SET NOS/VE TYPE
STD CM+2
MONITOR RSTM REQUEST STORAGE
LDD CM+1
ZJN RST1 IF REQUEST HONORED
RJM ROJ
PJN RST3 IF MEMORY AVAILABLE
LDN 0 ENABLE SCHEDULER
RJM CSS
LDD T6 SET AMOUNT UNAVAILABLE
SHN 14
ADD T7
ADD BS
LJM RSTX RETURN
SBA SPACE 4,10
** SBA - SET OS BOUNDS ADDRESS.
*
* ENTRY (CL - CL+1) = NEW NOS/VE SIZE/1000B.
* (EC) = IOU CONNECT CODE.
* *UEM* MUST NOT BE DEFINED FOR *NOS*.
*
* EXIT PP OS BOUNDS ADDRESS SET TO FWA OF NOS/VE CM.
*
* USES T1, T2, T3, CN - CN+4.
*
* CALLS SEA.
*
* MACROS LOCKMR, READMR, WRITMR.
SBA SUBR ENTRY/EXIT
LOCKMR SET
READMR RBUF,,IOSB FETCH CURRENT OS BOUNDS DATA
RJM SEA READ LWA+1 OF NOS/VE CM
ADN D7CM+1
CRD CN
LDD CL CALCULATE NEW FWA OF NOS/VE CM
STD T1
LDD CN+4
SBD CL+1
STD T2
PJN SBA1 IF NO BORROW
AOD T1 ADJUST FOR BORROW
AOD T2
SBA1 LDD CN+3
SBD T1
STD T1
ZJN SBA2 IF ADDRESS/1000B = 0XXXXB (.LT. 16MB)
LDN 1 SET ADDRESS/1000B TO 10000B (16MB)
STD T1
LDN 0
STD T2
SBA2 LDD T2 FORM OS BOUNDS ADDRESS/2000B
SHN -1
STM RBUF+7
SHN -8D
STD T2
LDD T1
SHN 3
LMD T2
STM RBUF+6
READMR IBUF,,DEMR READ EC REGISTER
LDM IBUF+7 CLEAR OS BOUNDS ENABLE
STD T2
SCN 10
STM IBUF+7
WRITMR IBUF
SBAA UJN SBA3 (NO CPP-S IN SYSTEM OR MODEL 42 IOU)
* PSN (CPP-S IN SYSTEM AND NOT MODEL 42 IOU)
READMR MBUF,,ECCR READ CIO EC REGISTER
LDM MBUF+7 CLEAR OS BOUNDS ENABLE
STD T3
SCN 10
STM MBUF+7
WRITMR MBUF
SBA3 WRITMR RBUF,,IOSB WRITE NEW OS BOUNDS
LDD T2 RESTORE EC REGISTER
STM IBUF+7
WRITMR IBUF,,DEMR
SBAB UJN SBA4 (NO CPP-S IN SYSTEM OR IOU MODEL 42)
* PSN (CPP-S IN SYSTEM AND NOT IOU MODEL 42)
LDD T3 RESTORE EC REGISTER
STM MBUF+7
WRITMR MBUF,,ECCR
SBA4 LOCKMR CLEAR
LJM SBAX RETURN
SDA SPACE 4,10
** SDA - SET *EICB* CM ADDRESSES.
*
* ENTRY (CL - CL+1) = NUMBER OF CM WORDS/1000B TO BE RESERVED
* FOR NOS/VE.
* (EIBA - EIBA+1) = *EICB* ADDRESS.
*
* EXIT (CN - CN+4) = WORD *D7CM* OF *EICB*.
* = 12/0, 24/FWA/1000B, 24/LWA+1/1000B.
*
* USES T1, CN - CN+4.
*
* CALLS SEA.
SDA SUBR ENTRY/EXIT
RJM SEA GET CURRENT CM ADDRESSES FROM *EICB*
ADN D7CM+1
CRD CN
LDD CL SUBTRACT NEW TOTAL FROM LWA+1
STD T1
LDD CN+4
SBD CL+1
STD CN+2 SET NEW FWA
PJN SDA1 IF NO BORROW
AOD T1 ADJUST FOR BORROW
AOD CN+2
SDA1 LDD CN+3
SBD T1
STD CN+1
RJM SEA WRITE NEW CM ADDRESSES TO *EICB*
ADN D7CM+1
CWD CN
UJN SDAX RETURN
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.
* (SPBA) = BARREL CONFIGURATION.
* (SPBB) = NUMBER OF BARRELS.
*
* EXIT PP OS BOUNDS REGISTER SET FOR GIVEN PP.
*
* USES T2, T7.
*
* MACROS LOCKMR, READMR, WRITMR.
SPB SUBR ENTRY/EXIT
STD T7 SAVE LOGICAL PP NUMBER
SHN -14
STM SPBE SAVE BOUNDS BIT VALUE
LDN 0
STD T2
LDD T7
SBN 20
MJN SPB1 IF IN LOWER 10 PP-S
STD T7
AOD T2
AOD T2
SPB1 LDD T7
SBN 5
MJN SPB2 IF IN LOWER BARREL OF THE TWO
STD T7
AOD T2
SPB2 LDD T2
SPBA ADN **
* ADN 0 (BARREL RECONFIGURATION)
* ADN 1
* ADN 2
* ADN 3
STD T2
SPBB SBN **
* SBN 1 (NUMBER OF BARRELS)
* SBN 2
* SBN 3
* SBN 4
MJN SPB3 IF NO OVERFLOW
STD T2
ERRNZ SHNI-1000 CANNOT USE DIRECT CELL *TH*
SPB3 LDD TH SET SHIFT COUNT
ADD T7
STM SPBC
STM SPBF
LOCKMR SET
READMR RBUF,,IOSB READ CURRENT OS BOUNDS DATA
LDM RBUF,T2
STM SPBD
LCN 1
SPBC SHN **
LPC **
SPBD EQU *-1
STM RBUF,T2
LDC **
SPBE EQU *-1
SPBF 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
VPN SPACE 4,10
** VPN - VALIDATE PP NUMBER.
*
* ENTRY (A) = PP NUMBER.
* (DA) = NUMBER OF SYSTEM PP-S.
*
* EXIT (A) = 0, IF ASSIGNED TO NOS/VE.
* = *ESIR*, IF INCORRECT NUMBER.
* = *ESPP*, IF NOT ASSIGNED TO NOS/VE.
* (T3) = PP OFFSET INTO COMMUNICATION AREA.
* (T4) = PP NUMBER.
* (CM - CM+4) = INPUT REGISTER.
*
* USES T3, T4, CM - CM+4.
VPN3 LDD T4
VPN4 SHN 3
STD T3
LDM PPCA CHECK IF ASSIGNED TO NOS/VE
ADD T3
CRD CM
LDD CM+1
SCN 77
SHN 6
LMD CM
LMC 3RP*V
ZJN VPNX IF ASSIGNED TO NOS/VE
LDN ESPP SET ERROR CODE
VPN SUBR ENTRY/EXIT
STD T4
SBN 10D
MJN VPN3 IF LOWER BANK PP
LDD DA
SBN 11D
PJN VPN2 IF UPPER PP-S EXIST ON SYSTEM
VPN1 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
UJN VPNX RETURN
VPN2 LDD T4
SBN 20
MJN VPN1 IF 12 .LE. PP NUMBER .LE. 17
ADC 20-32
PJN VPN1 IF PP NUMBER .GT. 31
ADN 32-6
LJM VPN4 RETURN
SPACE 4,10
** CODE PAST THIS POINT MAY BE OVERLAID BY *PBUF*.
*
* *PBUF* IS USED ONLY FOR THE *RPP* FUNCTION.
* *PBUF* MUST HAVE TWO RESERVED WORDS PRECEEDING IT FOR DISK
* LINKAGE BYTES.
ERRNG PBUF-*-2 ERROR IF PBUF OVERLAYS EARLIER CODE
TITLE SUBROUTINES OVERLAYABLE BY *PBUF*.
DCA SPACE 4,10
** DCA - DETERMINE CHANNEL AVAILABILITY.
*
* ENTRY (T2) = CHANNEL NUMBER.
* (RBUF - RBUF+NCTAL*5) = CHANNEL STATUS TABLE.
*
* EXIT (A) = 0 IF CHANNEL PREVIOUSLY ASSIGNED.
* (CM+1) .NE. 0 IF CHANNEL ASSIGNED.
*
* USES T3, T4, CM - CM+4.
*
* CALLS SEC, VRC.
*
* MACROS MONITOR.
DCA SUBR ENTRY/EXIT
LDM RBUF,T2
SHN 21-5
PJN DCA1 IF CHANNEL IS UP
LJM DCA8 CHECK EQUIPMENT ON DOWN CHANNEL
* CHANNEL IS UP. SEARCH FOR EQUIPMENT CONFIGURED ON IT.
DCA1 LDD T2 CHECK IF CONSOLE CHANNEL
LMN CHDS
ZJN DCA4 IF CONSOLE CHANNEL
LDD T2
SBN 20
MJN DCA2 IF CHANNEL 0-17B
SBN 40-20
PJN DCA4 IF CHANNEL ABOVE 37B
DCA2 ADN 4
PJN DCA4 IF REQUESTED 14B-17B OR OVER 33B
DCA3 LDD LE
RJM SEC SEARCH FOR EQUIPMENT ON THIS CHANNEL
ZJN DCA6 IF NO EQUIPMENT FOUND
DCA4 LDN 0 SET CHANNEL NOT ASSIGNED
STD CM+1
LDN 1
DCA5 UJN DCAX RETURN
DCA6 STD CM+1 CLEAR EST ORDINAL
STD CM+4 CLEAR MUX FLAG
LDN DNCS SET SUBFUNCTION
STD CM+2
LDD T2 SET CHANNEL NUMBER
STD CM+3
MONITOR SEQM DOWN UNCONFIGURED CHANNEL
DCA7 RJM VRC VE RESERVE CHANNEL
LDD T4
UJN DCA5 RETURN
* CHANNEL IS DOWN. CHECK FOR NON-TRANSFERRABLE EQUIPMENT.
DCA8 LDD LE
DCA9 RJM SEC SEARCH FOR EQUIPMENT ON THIS CHANNEL
PJN DCA7 IF NO EQUIPMENT FOUND
LDN 0 INITIALIZE TABLE INDEX
STD T4
DCA10 LDM TEQT,T4
ZJN DCA3 IF END OF TABLE
LMD CM+3
LPC 3777
ZJN DCA9 IF EQUIPMENT IS TRANSFERRABLE
AOD T4
UJN DCA10 CHECK NEXT TABLE ENTRY
TEQT SPACE 4,10
** TEQT - TABLE OF TRANSFERRABLE EQUIPMENT.
*
* ONE WORD ENTRY.
*
*T 12/2RMN
* MN = MNEMONIC OF EQUIPMENT THAT MAY BE TRANSFERRED TO NOS/VE.
TEQT BSS 0 TABLE OF TRANSFERRABLE EQUIPMENT
VFD 12/2RAT
VFD 12/2RCT
VFD 12/2RMT
VFD 12/2RNT
VFD 12/2RDJ
VFD 12/2RDL
VFD 12/2RDM
VFD 12/2RDQ
VFD 12/0 END OF TABLE
SEC SPACE 4,15
** SEC - SEARCH FOR EQUIPMENT ON SPECIFIED CHANNEL.
*
* ENTRY (A) = EST ORDINAL+1 FROM WHICH TO START SEARCH.
* = 0 IF (T3) = STARTING EST ORDINAL+1.
* (T2) = CHANNEL NUMBER.
*
* EXIT (A) = 0 IF NONE FOUND.
* = (T3) = EST ORDINAL OF EQUIPMENT FOUND.
* (CM - CM+4) = EST ENTRY WORD *EQDE*.
*
* USES T1, T2, CM - CM+4.
*
* MACROS SFA.
SEC3 LDD T3 RETURN EST ORDINAL
SEC SUBR ENTRY/EXIT
ZJN SEC1 IF NOT INITIAL CALL
STD T3 SAVE EST ORDINAL
SEC1 SOD T3 DECREMENT EST ORDINAL
SBN NOPE-1
ZJN SECX IF END OF EST
SFA EST,T3
ADK EQDE
CRD CM READ EST ENTRY
LDD CM+3
ZJN SEC1 IF NULL ENTRY
LMC 2RDE
ZJN SEC1 IF *DE* EQUIPMENT
LDN CM
STD T1
SEC2 AOD T1
LMN CM+3
ZJN SEC1 IF BOTH CHANNELS CHECKED
LDI T1
ZJN SEC2 IF CHANNEL NOT PRESENT
LMD T2
LPN 77
ZJN SEC3 IF CHANNEL MATCH
UJN SEC2 CHECK NEXT CHANNEL
SRR SPACE 4,10
** SRR - SET ROLLOUT REQUEST.
*
* ENTRY (DB) = NUMBER OF CP/PCP TO ROLL.
*
* EXIT (A) .GE. 0 IF ROLLOUT REQUEST ACCEPTED.
*
* USES T1, CM - CM+4.
*
* MACROS DELAY, MONITOR, PAUSE.
SRR2 PAUSE NE
DELAY 1*8D 1 MS DELAY
SOD T1 DECREMENT RETRY COUNT
PJN SRR1 IF NOT END OF RETRIES
SRR SUBR ENTRY/EXIT
LDD HN SET RETRY LIMIT
STD T1
SRR1 LDD DB SET CP/PCP NUMBER IN *ROCM* REQUEST
STD CM+2
LDC 4000+ROSR SELECT ALTERNATE CP/PCP, SCHEDULER ROLLOUT
STD CM+1
MONITOR ROCM ROLLOUT JOB
LDD CM+1
NJN SRR2 IF REQUEST REJECTED
UJN SRRX RETURN
TITLE PRESET.
PRS SPACE 4,10
** PRS - PRESET VIRTUAL ENVIRONMENT REQUEST PROCESSOR.
*
* EXIT (PB - PB+4) = FIRST WORD OF PARAMETER BLOCK.
* (VERA) = FUNCTION PROCESSOR ADDRESS.
* (A) = 0 IF DUAL STATE ENABLED.
* = ERROR CODE IF DUAL STATE NOT ENABLED.
* (EC) = IOU CONNECT CODE.
* (CF) .NE. 0, IF CYBER 180-810/830 WITH 20 PP-S.
* = 0 FOR ALL OTHER CONFIGURATIONS.
* (LE) = LAST EST ORDINAL.
* (CAMA) = NUMBER OF CP-S + PCP-S + 2.
* (SEAA - SEAA+1) = FWA OF *EICB*.
* (NEJT) = NOS/VE EJT ORDINAL.
* (CHAA - CHAA+1) = (SCHA - SCHA+1) = (TCHA - TCHA+1) =
* FWA OF CHANNEL EJT ASSIGNMENT TABLE.
* (PPCA) = ADDRESS OF PP COMMUNICATION AREA.
* CALLER AND PARAMETER BLOCK VALIDATED.
*
* ERROR ABORT IF ANY OF THE FOLLOWING IS NOT TRUE -
* CALLER-S SUBSYSTEM IDENTIFICATION NUMBER = *NVSI*.
* AUTO RECALL SPECIFIED.
* COMPLETION BIT IN PARAMETER BLOCK NOT SET.
* PARAMETER BLOCK WITHIN FIELD LENGTH.
* LEGAL *VER* FUNCTION CODE SPECIFIED.
*
* USES CF, LE, CM - CM+4, CN - CN+4, PB - PB+4.
*
* CALLS CPA, CRS, SRI.
*
* MACROS ABORT, MONITOR.
PRS SUBR ENTRY/EXIT
LDK PCPP SET FWA OF PCPA-S
CRD CM
LDD CM+3
SHN 14
LMD CM+4
SBK 200B
STM CCAA+1
SHN -14
RAM CCAA
LDD CM+2 SET NUMBER OF CP-S + PCP-S + 2
STM CAMA
LDD CP CHECK SUBSYSTEM ID OF CALLER
ADN JCIW
CRD CN
LDD CN+2
ADC -NVSI
ZJN PRS1 IF CORRECT SUBSYSTEM
ABORT ERIR * VER - ILLEGAL USER ACCESS.*
PRS1 RJM CRS CHECK RECALL STATUS
ZJN PRS2 IF NO AUTO RECALL
LDN 1 VALIDATE FWA
STD PB+3
RJM CPA CHECK PARAMETER BLOCK ADDRESS
CRD PB
RJM CPA VERIFY BLOCK LENGTH WITHIN FL
LDD PB+4 CHECK COMPLETION BIT
LPN 1
ZJN PRS3 IF COMPLETION BIT NOT SET
PRS2 ABORT ERAE * VER - ARGUMENT ERROR.*
PRS3 LDD IR+2 CHECK FUNCTION CODE
SBN TFCNL
PJN PRS2 IF ILLEGAL FUNCTION CODE
LDK ESTP SET EST SIZE
CRD CM
LDD CM+2
STD LE
LDN EIBP READ *EICB* POINTER
CRD CN
LDD CN+3
RAM SEAA
LDD CN+4
STM SEAA+1
LDN SSTL
CRD CM
LDD CM+3
SHN 21-13
PJN PRS4 IF DUAL STATE ENABLED
LDC ESNR SET DUAL STATE NOT ENABLED
LJM PRSX RETURN
PRS4 LDK CHTP
CRD CN
LDD CN+2 SAVE EJT ASSIGNMENT TABLE ADDRESS
SHN 14
LMD CN+3
ADN CTALL
STM TCHA+1
STM SCHA+1
STM CHAA+1
SHN -14
RAM TCHA
STM SCHA
STM CHAA
LDD CN+2 SAVE CHANNEL STATUS TABLE ADDRESS
RAM RCLA
LDD CN+3
STM RCLA+1
LDD CN+4 CHECK FOR EJT ORDINAL
STM NEJT
NJN PRS6 IF EJT ALREADY ASSIGNED TO NOS/VE
STD CM+1
LDN PEJT
STD CM+2
LDD MA
CWM PRSA,ON
MONITOR MTRM
LDD CM+1
NJN PRS5 IF EJT ENTRY AVAILABLE
ABORT EREU * VER - EJT ENTRY UNAVAILABLE*
PRS5 STD CN+4 SAVE EJT ORDINAL
STM NEJT
LDC NVOL REWRITE *NVOL*
CWD CN
PRS6 LDN PPCP SAVE PP COMMUNICATION AREA ADDRESS
CRD CN
LDD CN+4
STM PPCA
LDK EABL+IOEI SET IOU CONNECT CODE
CRD CN
LDD CN+3
STD EC
LDK PPUL GET PP/CPP CONFIGURATION
CRD CM
RJM SRI SET RECONFIGURATION INFORMATION
LDN 0
STD CF
LDD CM+2
LMN 20D
NJN PRS8 IF NOT 20 PP-S
LDK EABL+CPEI READ CPU DESCRIPTOR
CRD CM
LDD CM+1
SHN -6
SHN 14
LMD CM
SHN 6
CRD CM
LDD CM+2 GET MODEL NUMBER
SHN -4
LMN 23
ZJN PRS7 IF CYBER 180-830
LMN 23&24
NJN PRS8 IF NOT CYBER 180-810
PRS7 AOD CF SET CONFIGURATION FLAG
PRS8 LDM TFCN,IR+2 SET FUNCTION PROCESSOR ADDRESS
STM VERA
LDN 0 SET NO ERROR
LJM PRSX RETURN
PRSA VFD 24/0LVER,24/0,1/0,4/NICS,1/0,5/NVJS,1/0
SRI SPACE 4,10
** SRI - SET RECONFIGURATION INFORMATION.
*
* ENTRY (EC) = IOU CONNECT CODE.
*
* EXIT (SPBA) = BARREL CONFIGURATION.
* (SPBB) = NUMBER OF BARRELS PRESENT.
* (CM - CM+4) = (PPUL) = NUMBER OF PP-S / CPP-S.
*
* USES T1, T2, CN - CN+4.
*
* MACROS READMR.
SRI SUBR ENTRY/EXIT
LDN 0 INITIALIZE BARREL COUNT
STD T1
LDN 2 SET WORD COUNT
STD T2
LDK EABL+IOEI READ IOU INFORMATION
CRD CN
LDD CN+1
SCN 77
SHN 6
ADD CN
SHN 6
CRM SRIA,T2
LDM SRIA+/DSL/PPP0 CHECK ALL PP-S PRESENT IN BARREL 1
NJN SRI3 IF ONLY ONE BARREL
LDM SRIA+/DSL/PPP1
SHN 21-4
MJN SRI2 IF ONLY TWO BARRELS
NJN SRI1 IF THREE BARRELS
AOD T1
SRI1 AOD T1
SRI2 AOD T1
SRI3 AOD T1
RAM SPBB SET NUMBER OF BARRELS
LDM SRIA+/DSL/HDMN GET IOU MODEL NUMBER
SHN -4
LMC 0#42
ZJN SRI5 IF IOU MODEL 42
SHN -4
SBN 1
ZJN SRI6 IF IOU MODEL I1
PJN SRI4 IF IOU MODEL I2
LDD CM+3
LPN 77
ZJN SRI5 IF NO CPP-S IN SYSTEM
LDK PSNI ENABLE READ/WRITE OF *ECCR*
STM SBAA
STM SBAB
UJN SRI5 CONTINUE RECONFIGURATION
SRI4 LDN 40 MODIFY EC REGISTER SETTINGS FOR I2
RAM NECA
STM DPLI
STM IPPA
LDN 40
RAM DPLJ
STM IPPB
SRI5 AOM SRIB MODIFY FOR IOU MODEL I2 OR I4
SRI6 READMR SRIA,,ISTR
LDM SRIA+7
SHN -3
SRIB LPN 2 (IOU MODEL I1)
* LPN 3 (IOU MODEL I2 OR I4)
RAM SPBA SET BARREL RECONFIGURATION
LJM SRIX RETURN
SRIA BSS 2*5 IOU INFORMATION
TFCN SPACE 4,10
** TFCN - TABLE OF FUNCTION PROCESSOR ADDRESSES.
*
* ONE WORD INDEXED BY FUNCTION CODE.
*
*T, 12/ADDR
*
* ADDR ADDRESS OF FUNCTION PROCESSOR.
TFCN BSS 0 TABLE OF FUNCTION PROCESSOR ADDRESSES
LOC 0
RSCM FCN RCM RESERVE CM
RSPP FCN RPP RESERVE PP
RSCH FCN RCL RESERVE CHANNEL
RSEQ FCN POF RESERVE EQUIPMENT
RNCM FCN TCM RETURN CM
RNPP FCN TPP RETURN PP
RNCH FCN TCH RETURN CHANNEL
RNEQ FCN POF RETURN EQUIPMENT
STCM FCN SCM STATUS CM
STPP FCN SPP STATUS PP
STCH FCN SCH STATUS CHANNELS
STEQ FCN POF STATUS EQUIPMENT
STMR FCN SMR STATUS AVAILABLE RESOURCES
SFRC FCN POF SET FREE-RUNNING COUNTER TO VALUE
RSPT FCN POF RESERVE NPP, NPP PARTNER PAIR OR CPP
RSCT FCN POF RESERVE NIO OR CIO CHANNEL
RNPT FCN POF RETURN NPP, CPP OR ALL PP-S
RNCT FCN POF RETURN NIO OR CIO CHANNEL OR ALL CHANNELS
STPT FCN POF STATUS NPP-S AND/OR CPP-S
STCT FCN POF STATUS NIO AND/OR CIO CHANNELS
MXVR BSS 0 MAXIMUM *VER* REQUEST + 1
LOC *O
TFCNL EQU *-TFCN LENGTH OF FUNCTION CODE TABLE
POF SPACE 4,10
** POF - PROCESS OVERLAID FUNCTIONS.
*
* ENTRY INITIAL PRESET COMPLETED.
* CALLS OVERLAY *2VR*, WHICH DOES NOT RETURN.
*
* EXIT OVERLAY *2VR* EXITS TO *PPR* WHEN FINISHED.
POF SUBR ENTRY (NO EXIT)
EXECUTE 2VR
SPACE 4,10
** COMMON DECKS.
*CALL COMPCRS
SPACE 4,10
* CHECK FOR OVERFLOW.
OVERFLOW PPFW,EPFW
TTL VER/2VR - VIRTUAL ENVIRONMENT REQUEST OVERLAY.
TITLE MAIN PROGRAM.
QUAL 2VR
IDENT 2VR,POFX
*COMMENT VER - PROCESS OVERLAID *VER* FUNCTIONS.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
ORG OVLA
POF SPACE 4,10
** POF - PROCESS OVERLAID FUNCTIONS.
*
* ENTRY MAIN PRESET COMPLETED.
*
* EXIT TO PP RESIDENT.
POF SUBR ENTRY (NO EXIT)
RJM PRS PRESET VIRTUAL ENVIRONMENT
* TO FUNCTION PROCESSOR WITH
* (PB - PB+4) = FIRST WORD OF PARAMETER BLOCK,
* = 1/F, 35/0, 12/LENGTH, 12/0.
* F = FLAG USED ONLY IN RETURN FUNCTIONS.
* = 0 - RETURN SPECIFIED RESOURCES.
* = 1 - RETURN ALL.
* LENGTH = LENGTH (IN CM WORDS) OF PARAMETER BLOCK.
* (IR+3 - IR+4) = ADDRESS OF PARAMETER BLOCK.
RJM **
POFA EQU *-1 (FUNCTION PROCESSOR ADDRESS)
AOD PB+4 SET COMPLETION BIT
RJM CPA GET PARAMETER BLOCK ADDRESS
CWD PB WRITE RESPONSE
MONITOR DPPM DROP PP
LJM PPR EXIT TO PP RESIDENT
SPACE 4,20
** ASSUMED TYPE CODE VALUES AND RELATIONSHIPS.
*
* THE FOLLOWING TYPE CODE VALUES AND RELATIONSHIPS
* ARE ASSUMED IN THE FUNCTION PROCESSING ROUTINES FOR
* FUNCTIONS *RSPT*, *RNPT*, AND *STPT*. IF THESE VALUES
* OR RELATIONSHIPS CHANGE, ALL REFERENCES TO THESE SYMBOLS
* SHOULD BE EXAMINED CAREFULLY.
ERRNG VPPT-VCPT-VUPT CODE ASSUMES VPPT .GT. VCPT+VUPT
ERRNG VCPT-VNPT-VUPT CODE ASSUMES VCPT .GT. VNPT+VUPT
ERRNG VUPT-VLPT CODE ASSUMES VUPT .GT. VLPT
ERRNZ VPPT-4 CODE ASSUMES VALUE
ERRNZ VCPT-2 CODE ASSUMES VALUE
ERRNZ VUPT-1 CODE ASSUMES VALUE
ERRNZ VLPT CODE ASSUMES VALUE
TITLE OVERLAY *2VR* COMMON DECKS.
LIST X
DVC$ EQU 1
QUAL$ EQU 1
*CALL COMPDVC
LIST *
TITLE FUNCTION PROCESSORS.
REQ SPACE 4,20
** FUNCTION 3 - RSEQ - RESERVE EQUIPMENT.
*
* ENTRY (PB LIST ENTRY) = 6/CH, 6/EQ, 6/UN, 42/0.
* = 60/0.
*
* EXIT (PB+4) = ERROR STATUS.
* (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR CODE.
* = 24/0, 12/EQ/UN TYPE, 15/0,
* 9/EST ORDINAL.
*
* USES DA, LO, T2, CL - CL+4, CM - CM+4.
*
* CALLS CPA, CUA, DVC, SEE, VET, VRC, VTC.
*
* MACROS MONITOR.
REQ17 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
STD PB+4
REQ SUBR ENTRY/EXIT
LDD PB+3 CHECK BLOCK LENGTH
ZJN REQX IF NONE REQUESTED
SBN 2
MJN REQ17 IF BLOCK TOO SHORT
LDD PB+3
SHN -1
SBD LE
PJN REQ17 IF BLOCK LONGER THAN 2 * EST LENGTH
LDD PB+3
LPN 1
NJN REQ17 IF BLOCK LENGTH NOT EVEN NUMBER OF WORDS
LDN 1 INITIALIZE LIST OFFSET
STD LO
REQ1 RJM CPA READ NEXT LIST ENTRY
ADD LO
CRD CL
RJM SEE SEARCH EST FOR EQUIPMENT
PJN REQ3 IF EST ENTRY FOUND
LDN ESNE SET EST ENTRY NOT FOUND STATUS
REQ2 LJM REQ13 WRITE RESPONSE
REQ3 RJM VET VALIDATE EQUIPMENT TRANSFERABILITY
ZJN REQ6 IF EQUIPMENT TRANSFERABLE
PJN REQ2 IF NOT DOWN
LDD CL
SHN -6
STD T2
RJM VRC INSURE CHANNEL IS RESERVED
LDD T4
ZJN REQ4 IF CHANNEL ALREADY ASSIGNED
LDD CM+1
ZJN REQ7 IF CHANNEL NOT AVAILABLE
REQ4 RJM CUA CHECK IF MASS STORAGE UNIT ASSIGNED
ZJN REQ5 IF NOT ASSIGNED
LDN ESAA
UJN REQ2 WRITE RESPONSE
REQ5 LJM REQ12 SET UNIT ASSIGNED BIT IN MST
* ENSURE CHANNEL IS RESERVED BY NOS/VE.
REQ6 STD DA CLEAR CHANNEL JUST RESERVED FLAG
LDD CL GET CHANNEL NUMBER
SHN -6
STD T2
RJM VRC VE RESERVE CHANNEL
LDD T4
ZJN REQ9 IF CHANNEL WAS PREVIOUSLY ASSIGNED
LDD CM+1
NJN REQ8 IF CHANNEL ASSIGNED
REQ7 LDN ESCH SET CHANNEL NOT AVAILABLE STATUS
UJN REQ11 WRITE RESPONSE
* RESERVE EQUIPMENT FOR NOS/VE.
REQ8 LDN 1 SET CHANNEL JUST ASSIGNED FLAG
STD DA
REQ9 LDD T7 SET EST ORDINAL
LMC 4000 SET ALTERNATE EJT FLAG
STD CM+1
LDK RDES REQUEST DOWNED EQUIPMENT
STD CM+2
LDM NEJT SET EJT ORDINAL
STD CM+3
MONITOR REQM REQUEST EQUIPMENT
LDD CM+1
NJN REQ12 IF EQUIPMENT ASSIGNED
LDD DA
ZJN REQ10 IF CHANNEL NOT JUST ASSIGNED
RJM VTC VE RETURN CHANNEL
REQ10 LDN ESEQ SET EQUIPMENT NOT AVAILABLE STATUS
REQ11 UJN REQ13 WRITE RESPONSE
* IF EQUIPMENT IS MASS STORAGE DEVICE, SET BIT CORRESPONDING
* TO *DDLL* UNIT LIST POSITION IN MST BIT MAP.
REQ12 BSS 0
* RJM CCL CHECK CONTROLWARE LOAD
LDD CN
SHN 0-13
ZJN REQ14 IF NOT MASS STORAGE DEVICE
LDD CN+4 READ BIT MAP
SHN 3
ADN NVGL
CRD CM
ERRNZ SHNI-1000 CANNOT USE DIRECT CELL *TH*
LDD TH SET SHIFT COUNT
ADD DC
STM REQA
LDN 1
REQA SHN **
RAD CM+4 SET BIT
LDD CN+4 UPDATE BIT MAP
SHN 3
ADN NVGL
CWD CM
LDN 0 SET NO ERROR STATUS
* WRITE TWO WORD RESPONSE.
REQ13 STD PB+4 SET ERROR STATUS
REQ14 STD CL+4
RJM CPA WRITE FIRST WORD OF RESPONSE
ADD LO
CWD CL
AOD LO INCREMENT LIST OFFSET
LDD CL+4
LPC 7677
NJN REQ15 IF ERROR STATUS SET
LDN ZERL CLEAR SECOND WORD
CRD CL
RJM DVC GET DEVICE CODE
STD CL+2 SET *EQ/UN* TYPE
LDD T7 SET EST ORDINAL
STD CL+4
RJM CPA WRITE SECOND WORD OF RESPONSE
ADD LO
CWD CL
REQ15 AOD LO INCREMENT LIST OFFSET
SBD PB+3
MJN REQ16 IF NOT END OF LIST
LJM REQX RETURN
REQ16 LJM REQ1 PROCESS NEXT REQUEST
TEQ SPACE 4,15
** FUNCTION 7 - RNEQ - RETURN EQUIPMENT.
*
* ENTRY (PB LIST ENTRY) = 6/CH, 6/EQ, 6/UN, 42/0.
* (NEJT) = NOS/VE EJT ORDINAL.
*
* EXIT (PB+4) = ERROR STATUS.
* (PB LIST ENTRY) = 18/UNCHANGED, 30/0, 12/ERROR STATUS.
*
* USES LO, PB+4, T2, CL - CL+4, CM - CM+4, CN - CN+4.
*
* CALLS CHA, CPA, CUA, SEE, VET.
*
* MACROS MONITOR, SFA.
TEQ15 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
STD PB+4
TEQ SUBR ENTRY/EXIT
LDD PB
SHN 21-13
PJN TEQ1 IF TO RETURN SPECIFIED EQUIPMENT
LJM TEQ13 RETURN ALL NOS/VE EQUIPMENT
TEQ1 LDD PB+3 CHECK BLOCK LENGTH
ZJN TEQX IF NONE TO RETURN
SBD LE
PJN TEQ15 IF BLOCK LONGER THAN EST LENGTH
LDN 1 INITIALIZE LIST OFFSET
STD LO
TEQ2 RJM CPA READ NEXT LIST ENTRY
ADD LO
CRD CL
RJM SEE SEARCH EST FOR EQUIPMENT
PJN TEQ3 IF EST ENTRY FOUND
LDN ESNE SET NOT IN EST STATUS
UJN TEQ5 WRITE LIST ENTRY
TEQ3 RJM VET CHECK EQUIPMENT ASSIGNMENT
MJN TEQ4 IF EQUIPMENT ASSIGNED TO NOS/VE
LDN ESEQ SET EQUIPMENT NOT ASSIGNED STATUS
UJN TEQ5 WRITE LIST ENTRY
TEQ4 LDD CL
SHN -6
STD T2
RJM CHA CHECK CHANNEL ASSIGNMENT
ZJN TEQ4.1 IF CHANNEL ASSIGNED
LDN ESCH SET CHANNEL NOT ASSIGNED STATUS
UJN TEQ5 WRITE RESPONSE
TEQ4.1 RJM CUA CHECK UNIT ASSIGNMENT
MJN TEQ7 IF NOT MASS STORAGE
SBN ESAA
ZJN TEQ6 IF UNIT ASSIGNED
LDN ESUN SET UNIT NOT ASSIGNED STATUS
TEQ5 LJM TEQ9 WRITE RESPONSE
* RETURN NOS/VE EQUIPMENT.
TEQ6 LDD CN+4 CLEAR UNIT ASSIGNED STATUS
SHN 3
ADN NVGL
CRD CM
ERRNZ SHNI-1000 CANNOT USE DIRECT CELL *TH*
LDD TH SET SHIFT COUNT
ADD DC
STM TEQA
LDN 1
TEQA SHN **
LMD CM+4 CLEAR BIT
STD CM+4
LDD CN+4 UPDATE UNIT STATUS
SHN 3
ADN NVGL
CWD CM
LDD CM+4 CHECK FOR OTHER UNIT ASSIGNMENTS
NJN TEQ8 IF ANOTHER UNIT ASSIGNED
TEQ7 LDD T7 SET EST ORDINAL
LMC 4000 SET ALTERNATE EJT FLAG
STD CM+1
LDM NEJT SET EJT ORDINAL
STD CM+3
MONITOR DEQM RELEASE EQUIPMENT
TEQ8 LDN 0 CLEAR ERROR FLAG
UJN TEQ10 WRITE RESPONSE
* WRITE LIST RESPONSE.
TEQ9 STD PB+4 SET STATUS
TEQ10 STD CL+4
RJM CPA WRITE RESPONSE
ADD LO
CWD CL
AOD LO INCREMENT OFFSET
SBD PB+3
SBN 1
MJN TEQ12 IF NOT END OF LIST
TEQ11 LJM TEQX RETURN
TEQ12 LJM TEQ2 PROCESS NEXT LIST ENTRY
* RETURN ALL EQUIPMENT.
TEQ13 LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
STD LO
TEQ14 AOD LO ADVANCE EST ORDINAL
LMD LE
ZJN TEQ11 IF END OF EST
SFA EST,LO
ADK EQDE
CRD CN READ EST ENTRY
ADK EQAE-EQDE READ JOB ASSIGNMENT WORD
CRD CM
LDM NEJT
LMD CM+4
NJN TEQ14 IF NOT NOS/VE RESERVED
LDD LO SET EST ORDINAL
LMC 4000 SET ALTERNATE EJT FLAG
STD CM+1
LDM NEJT SET EJT ORDINAL
STD CM+3
MONITOR DEQM RELEASE EQUIPMENT
LDD CN CHECK FOR MASS STORAGE
SHN 21-13
PJN TEQ14 IF NOT MASS STORAGE
LDN ZERL CLEAR ALL UNIT ASSIGNMENTS
CRD CM
LDD CN+4
SHN 3
ADN NVGL
CWD CM
UJP TEQ14 PROCESS NEXT EST ENTRY
SEQ SPACE 4,10
** FUNCTION 13 - STEQ - STATUS NOS/VE EQUIPMENT.
*
* ENTRY (PB LIST ENTRY) = 6/CH, 6/EQ, 6/UN, 42/0.
*
* EXIT (PB+4) = ERROR STATUS.
* (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR STATUS.
*
* USES LO, PB+4, T2, CL - CL+4.
*
* CALLS CHA, CPA, CUA, SEE, VET.
SEQ9 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
STD PB+4
SEQ SUBR ENTRY/EXIT
LDD PB+3 CHECK BLOCK LENGTH
ZJN SEQX IF NO REQUEST
SBD LE
PJN SEQ9 IF BLOCK LONGER THAN EST LENGTH
LDN 1 INITIALIZE LIST OFFSET
STD LO
SEQ1 RJM CPA READ NEXT LIST ENTRY
ADD LO
CRD CL
RJM SEE SEARCH EST FOR EQUIPMENT
PJN SEQ2 IF EST ENTRY FOUND
LDN ESNE SET NOT IN EST STATUS
UJN SEQ5 WRITE RESPONSE
SEQ2 RJM VET CHECK EQUIPMENT ASSIGNMENT
MJN SEQ4 IF EQUIPMENT ASSIGNED TO NOS/VE
SEQ3 LDN ESEQ SET EQUIPMENT NOT ASSIGNED STATUS
UJN SEQ5 WRITE RESPONSE
SEQ4 LDD CL
SHN -6
STD T2
RJM CHA CHECK CHANNEL ASSIGNMENT
ZJN SEQ4.1 IF CHANNEL ASSIGNED
LDN ESCH SET CHANNEL NOT ASSIGNED STATUS
UJN SEQ5 WRITE RESPONSE
SEQ4.1 RJM CUA CHECK UNIT ASSIGNMENT
MJN SEQ6 IF NOT MASS STORAGE DEVICE
SBN ESAA
ZJN SEQ7 IF UNIT ASSIGNED
LDN ESUN SET UNIT NOT ASSIGNED STATUS
SEQ5 STD PB+4
UJN SEQ7 WRITE RESPONSE
SEQ6 LDN 0 CLEAR ERROR STATUS
SEQ7 STD CL+4
RJM CPA
ADD LO
CWD CL WRITE RESPONSE
AOD LO INCREMENT LIST OFFSET
SBD PB+3
SBN 1
PJN SEQ8 IF END OF LIST
LJM SEQ1 PROCESS NEXT LIST ENTRY
SEQ8 LJM SEQX RETURN
FRC SPACE 4,10
** FUNCTION 15 - SFRC - SET FREE-RUNNING COUNTER TO VALUE.
*
* ENTRY (PB LIST ENTRY) = 12/,48/ DESIRED *FRC* VALUE.
*
* EXIT REQUEST WRITTEN TO NOS REQUEST AREA.
FRC SUBR ENTRY/EXIT
* OBTAIN INTERLOCK ON NOS REQUEST AREA.
FRC1 RJM SRA 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 FRCA,CM+1
MONITOR UTEM ATTEMPT TO GET INTERLOCK
LDD CM+1 CHECK STATUS
ZJN FRC2 IF INTERLOCK OBTAINED
DELAY
UJN FRC1 RETRY INTERLOCK ATTEMPT
* FORMAT REQUEST.
FRC2 RJM CPA READ REQUEST
ADN 1
CRD T1
LDN RQSF SET TASKID FOR *FRC* UPDATE
STD T1
* THE FOLLOWING CODE ASSUMES THERE IS ONLY ONE REQUEST BUFFER
* WHICH IMMEDIATELY FOLLOWS THE REQUEST HEADER.
RJM SRA SET ADDRESS OF NOS REQUEST HEADER
CRD CN
ADN 1
CWD T1 WRITE REQUEST TO BUFFER
LDN STRY SET STATUS = *READY*
STD CN+4
RJM SRA SET ADDRESS OF NOS REQUEST HEADER
CWD CN
LJM FRCX RETURN
* *UTEM* REQUEST PARAMETERS.
FRCA VFD 1/1,5/0,6/12D,6/0,42/STIN VERIFY INACTIVE REQUEST
VFD 1/0,5/0,6/12D,6/0,42/STIK SET INTERLOCK ON REQUEST
RSP SPACE 4,30
** FUNCTION 16 - RSPT - RESERVE PP-S.
*
* ENTRY (PB LIST ENTRY) = 12/0, 12/TYPE, 36/0.
* TYPE = TYPE OF PP REQUIRED.
* = 0 - NPP 0-11B ON 810/830 SYSTEM,
* 0-31B ON OTHER SYSTEMS.
* = 1 - NPP 20B-31B ON 810/830 WITH OVER 10 NPP-S,
* 0-31B ON OTHER SYSTEMS.
* = 2 - CPP 0-4.
* = 3 - CPP 5-11B.
* = 4 - NPP PARTNER PAIR ON 810/830 WITH MORE THAN
* 10 NPP-S, ANY TWO NPP-S ON OTHER SYSTEMS.
*
* EXIT (PB LIST ENTRY) = 6/PP, 6/PPP, 12/TYPE, 36/0.
* = 6/77B, 42/0, 12/ERROR CODE
* IF PP UNAVAILABLE.
* PP - ASSIGNED PP NUMBER.
* PPP - SECOND ASSIGNED PP NUMBER IF TYPE = 4.
*
* (PB+4) = ERROR STATUS.
* BML MESSAGE ISSUED.
*
* USES DA, DB, DC, EC, LO, PB+4, T3, T6, CL - CL+4,
* CM - CM+4, CN - CN+4.
*
* CALLS CPA, GCP, IBM, IPP, SPB.
*
* MACROS DELAY, EXECUTE, MONITOR, PAUSE.
RSP23 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
STD PB+4
RSP SUBR ENTRY/EXIT
LDD PB+3 GET NUMBER REQUESTED
ZJN RSPX IF NONE REQUESTED
SBN 1
NJN RSP23 IF LENGTH EXCEEDS ONE
RJM CPA
ADN 1
CRD CL
LDN VPPT
SBD CL+1
MJN RSP23 IF NOT A VALID PP TYPE
RJM GCP GET CURRENT STATUS OF PP-S
LDD CL+1
SBK VCPT+VLPT
ZJN RSP1 IF LOWER BANK CPP REQUEST
SBK VUPT-VLPT
NJN RSP2 IF REQUEST IS FOR ONE OR MORE NPP-S
LDN 5 UPPER BANK CPP REQUEST
RSP1 SBD DB
MJN RSP5 IF SYSTEM HAS CPP-S OF THE RIGHT TYPE
LDK ESCP SET CONCURRENT PP NOT PRESENT (*ESCP*)
LJM RSP21 SET STATUS AND RETURN
RSP2 PJN RSP3 IF REQUEST IS FOR A PAIR OF NPP-S
SBK VNPT-VCPT
NJN RSP4 IF REQUEST IS FOR A LOWER BANK NPP
RSP3 LDD CF
ZJN RSP4 IF NOT 810/830 WITH 20 NPP-S
LDN MINDP
SBD T4 AVAILABLE UPPER BANK NPP-S
PJP RSP20 IF INSUFFICIENT UPPER BANK NPP-S
RSP4 LDD DA NUMBER OF PP-S IN SYSTEM
SBN MINP LESS MINIMUM FOR NOS
STD DB SAVE PP-S ALLOWABLE TO USE
RSP5 LDD CL+1
LPN VPPT
SHN -2
ADN 1
STD T6 NUMBER OF PP-S REQUESTED
LDD DB TOTAL PP-S ALLOWABLE TO USE
SBD T6 REQUESTED PP-S
SBD T5 DEDICATED PP-S
MJP RSP20 IF NOT ENOUGH LEFT FOR NOS
LDC 4000 INITIALIZE PP NUMBER FIELD
STD CL
LDD CL+1
SBN VNPT+VUPT
ZJN RSP7 IF REQUEST FOR UPPER BANK NPP
MJN RSP6 IF REQUEST FOR LOWER BANK NPP
SBK VPPT-VNPT-VUPT
ZJN RSP8 IF REQUEST FOR A PAIR OF NPP-S
* REQUEST CPP FOR /*VP/.
LDD MA SET INPUT REGISTER
CWM RSPA,ON
UJN RSP9 PROCESS PP REQUEST
* REQUEST NPP FOR *1VN*.
RSP6 LDD MA SET INPUT REGISTER
CWM RSPB,ON
EXECUTE 1VN,=
UJN RSP9 PROCESS PP REQUEST
* REQUEST NPP FOR *1VO*.
RSP7 LDD MA SET INPUT REGISTER
CWM RSPC,ON
EXECUTE 1VO,=
UJN RSP9 PROCESS PP REQUEST
* REQUEST NPP FOR *1VP*.
RSP8 LDD MA SET INPUT REGISTER
CWM RSPD,ON
EXECUTE 1VP,=
RSP9 LDN 10 INITIALIZE ATTEMPT COUNT
STD DC
RSP10 LDN ZERL
CRD CM
LDD CL+1
LPN VCPT
ZJN RSP11 IF NPP REQUEST
LDD CL+1
STD CM+4 SET BARREL DESIGNATION
MONITOR CPRM REQUEST CPP
UJN RSP13 CHECK IF SUCCESSFUL
RSP11 LDD CF
ZJN RSP12 IF NOT 810/830 WITH 20 NPP-S
LDD CL+1
LPN VPPT
RSP12 LMN 1 SET PRIORITY REQUEST
STD CM+1
MONITOR RPPM REQUEST NPP
RSP13 LDD CM+1
NJN RSP14 IF PP AVAILABLE
PAUSE NE
DELAY
SOD DC DECREMENT ATTEMPT COUNT
NJN RSP10 IF ANOTHER ATTEMPT TO BE MADE
LJM RSP20 SET PP NOT AVAILABLE STATUS
RSP14 STD T3 SAVE INPUT REGISTER ADDRESS
LDD CM+2 SAVE SECOND INPUT REGISTER ADDRESS
RSP15 STD DA
RSP16 LDD T3 GET INPUT REGISTER OF ASSIGNED PP
CRD CM
LDD CM
LMC 2R*V
ZJN RSP17 IF PP READY
PAUSE NE
DELAY
UJN RSP16 RECHECK CALL
RSP17 RJM IPP IDLE PP
MJN RSP19 IF PP NOT IDLED
STD T1 BML SYMPTOM CODE
LDD T5
RJM SPB SET UPPER PP BIT
LDN ZERL CLEAR DATA WORD
CRD CN
LDD T5 SET PP NUMBER
LPN 37
STD CN+4
ADD CL
SHN 6
MJN RSP18 IF FIRST OR ONLY PP
SHN -6
RSP18 STD CL
LDC /COMSDFS/HM0240 SET MESSAGE ID
RJM IBM ISSUE BML MESSAGE
RSP19 SOD T6
ZJN RSP21 IF REQUEST SATISFIED
LDD DA
ZJP RSP8 IF NO SECOND PP ASSIGNED
STD T3
LDN 0 CLEAR SECOND PP ASSIGNED
UJP RSP15 PROCESS SECOND PP
RSP20 LDN ESPP SET PP NOT AVAILABLE STATUS (*ESPP*)
RSP21 STD PB+4
STD CL+4
ZJN RSP22 IF NO ERROR
LDC 7700
STD CL
RSP22 RJM CPA WRITE PARAMETER LIST ENTRY
ADN 1
CWD CL
LJM RSPX RETURN
RSPA VFD 18/3L*VP,42/0 /*VP/ INPUT REGISTER
RSPB VFD 18/0L1VN,42/0 *1VN* INPUT REGISTER
RSPC VFD 18/0L1VO,42/0 *1VO* INPUT REGISTER
RSPD VFD 18/0L1VP,42/0 *1VP* INPUT REGISTER
RSC SPACE 4,15
** FUNCTION 17 - RSCT - RESERVE NIO OR CIO CHANNEL.
*
* ENTRY (PB LIST ENTRY) = 6/CH, 6/0, 12/TYPE, 36/0.
* CH - CHANNEL NUMBER REQUIRED.
* TYPE - TYPE OF CHANNEL.
* 0 = NIO CHANNEL.
* 1 = CIO CHANNEL.
*
* EXIT (PB+4) = ERROR STATUS.
* (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR CODE.
*
* USES LO, T2, CL - CL+4.
*
* CALLS CPA, DCA.
RSC3 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
STD PB+4
RSC SUBR ENTRY/EXIT
LDD PB+3 CHECK BLOCK LENGTH
ZJN RSCX IF NONE REQUESTED
SBN 1
NJN RSC3 IF LENGTH NOT 1
LDN CTALL
STD T2
LDC ** FWA CHANNEL STATUS TABLE
RSCA EQU *-2
CRM RBUF,T2
RJM CPA READ CHANNEL NUMBER AND TYPE
ADN 1
CRD CL
LDN 0 CLEAR ERROR FLAG
STD CL+4
RJM VCN VALIDATE CHANNEL NUMBER
PJN RSC1 IF CHANNEL NUMBER INCORRECT
RJM DCA DETERMINE CHANNEL AVAILABILITY
ZJN RSC2 IF CHANNEL WAS PREVIOUSLY NOS/VE RESERVED
LDD CM+1
NJN RSC2 IF CHANNEL ASSIGNED
LDN ESCH SET CHANNEL NOT AVAILABLE STATUS
RSC1 STD PB+4
STD CL+4
RSC2 RJM CPA WRITE PARAMETER LIST ENTRY
ADN 1
CWD CL
LJM RSCX RETURN
RNP SPACE 4,20
** FUNCTION 20 - RNPT - RETURN PP.
*
* ENTRY (PB LIST ENTRY) = 6/PP NUMBER, 6/0, 12/TYPE,
* 1/BAD, 35/0.
* TYPE - TYPE OF PP BEING RETURNED.
* 0 OR 1 = NPP.
* 2 OR 3 = CPP.
* BAD - PP MALFUNCTION FLAG.
* 0 = PP IS OK.
* 1 = PP IS MALFUNCTIONING.
*
* EXIT (PB LIST ENTRY) = 24/UNCHANGED, 24/0, 12/ERROR STATUS.
* (PB+4) = ERROR STATUS.
*
* USES DA, DB, LO, T4, PB+4, CL - CL+4, CN - CN+4.
*
* CALLS CPA, DPL, LPR, SPB, VPN.
*
* MACROS MONITOR.
RNP10 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
STD PB+4
RNP SUBR ENTRY/EXIT
RJM LPR LOAD PP RESIDENT
LDD PB
SHN 21-13
MJP RNP4 IF RETURNING ALL PP-S
* RETURN SPECIFIED PP.
RNP1 LDD PB+3
ZJN RNPX IF NONE TO RETURN
SBN 1
NJN RNP10 IF REQUEST TOO LARGE
RNP2 RJM CPA READ NEXT LIST ENTRY
ADN 1
CRD CL
LDD CL+1
SBN VPPT
PJN RNP10 IF TYPE CODE INCORRECT
LDD CL+1 GET PP TYPE FLAG
LPN VCPT
SHN 13-1
LMD CL
SHN -6
RJM VPN VALIDATE PP NUMBER
NJN RNP3 IF NOT ASSIGNED TO NOS/VE
LDD T4 PP NUMBER
LMC 10000
RJM SPB SET LOWER PP BIT
RJM DPL DEADSTART PP AND LOAD *PPR*
LDN 0 CLEAR ERROR FLAG
RNP3 STD PB+4
STD CL+4
RJM CPA WRITE LIST ENTRY
ADN 1
CWD CL
UJN RNP7 RETURN
* RETURN ALL NOS/VE RESERVED PP-S.
RNP4 LDN 0 INITIALIZE PP NUMBER AND BAD PP FLAG
STD T4
STD CL+2
RNP5 LDD T4
RNP6 RJM VPN VALIDATE PP NUMBER
ZJN RNP8 IF ASSIGNED TO NOS/VE
LMN ESPP
ZJN RNP9 IF NOT END OF PP-S
RNP7 LJM RNPX RETURN
RNP8 LDD T4 RETURN NOS/VE PP
LMC 10000
RJM SPB SET LOWER PP BIT
RJM DPL DEADSTART PP AND LOAD PPR
RNP9 AOD T4 INCREMENT PP NUMBER
LPN 17
SBN 12
NJN RNP5 IF NOT END OF PP BANK
LDN 6 SET START OF NEXT BANK
RAD T4
UJN RNP6 PROCESS NEXT PP
RNC SPACE 4,15
** FUNCTION 21 - RNCT - RETURN CIO OR NIO CHANNEL.
*
* ENTRY (PB LIST ENTRY) = 6/CH, 6/0, 12/TYPE, 36/0.
* CH - CHANNEL NUMBER BEING RETURNED.
* TYPE - TYPE OF CHANNEL.
* 0 = NIO CHANNEL.
* 1 = CIO CHANNEL.
*
* EXIT (PB+4) = ERROR STATUS.
* (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR STATUS.
*
* USES PB+4, T2, CL - CL+4, CN - CN+4.
*
* CALLS CPA, VTC.
RNC7 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
STD PB+4
RNC SUBR ENTRY/EXIT
LDN CTALL READ EJT ASSIGNMENT TABLE
STD T2
LDC ** FWA OF CHANNEL EJT ASSIGNMENT TABLE
RNCA EQU *-2
CRM CBUF,T2
LDD PB
SHN 21-13
MJP RNC3 IF RETURNING ALL NOS/VE CHANNELS
LDD PB+3 CHECK BLOCK LENGTH
ZJN RNCX IF NONE TO BE RETURNED
SBN 1
NJN RNC7 IF TOO MANY CHANNELS TO BE RETURNED
RJM CPA GET CHANNEL TO RETURN
ADN 1
CRD CL
RJM VCN VALIDATE CHANNEL NUMBER
PJN RNC2 IF CHANNEL NUMBER INCORRECT
LDM NEJT
LMM CBUF,T2
ZJN RNC1 IF CHANNEL IS NOS/VE RESERVED
LDN ESCH SET CHANNEL NOT NOS/VE RESERVED STATUS
UJN RNC2 WRITE PARAMETER LIST ENTRY
RNC1 RJM VTC VE RETURN CHANNEL
* LDN 0 CLEAR ERROR STATUS
RNC2 STD PB+4
STD CL+4
RJM CPA WRITE PARAMETER LIST ENTRY
ADN 1
CWD CL
UJN RNC6 RETURN
* RETURN ALL NOS/VE RESERVED CHANNELS.
RNC3 LDN 0 INITIALIZE CHANNEL TABLE OFFSET
STD T2
RNC4 LDM NEJT
LMM CBUF,T2
NJN RNC5 IF CHANNEL NOT NOS/VE RESERVED
RJM VTC VE RETURN CHANNEL
RNC5 AOD T2 INCREMENT CHANNEL TABLE OFFSET
SBN MXCH+1
MJN RNC4 IF NOT END OF TABLE
RNC6 LJM RNCX RETURN
STP SPACE 4,15
** FUNCTION 22 - STPT - STATUS OF NOS/VE PP-S.
*
* ENTRY (PB LIST ENTRY) = 6/PP NUMBER, 6/0, 12/TYPE, 36/0.
* TYPE - TYPE OF PP.
* 0 OR 1 = NPP.
* 2 OR 3 = CPP.
*
* (PPCA) = PP COMMUNICATION AREA ADDRESS.
*
* EXIT (PB+4) = ERROR STATUS.
* (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR STATUS.
*
* USES DA, DB, LO, PB+4, CL - CL+4, CN - CN+4.
*
* CALLS CPA, VPN.
STP4 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
STD PB+4
STP SUBR ENTRY/EXIT
LDD PB+3 CHECK PARAMETER BLOCK LENGTH
ZJN STPX IF NO REQUEST
SBK 31D
PJN STP4 IF LENGTH .GT. MAXIMUM LIST LENGTH
LDN 1 INITIALIZE LIST OFFSET
STD LO
STP1 RJM CPA READ NEXT LIST ENTRY
ADD LO
CRD CL
LDD CL+1
SBN VPPT
PJN STP4 IF TYPE CODE INCORRECT
LDD CL+1 GET PP TYPE FLAG
LPN VCPT
SHN 13-1
LMD CL
SHN -6
RJM VPN VALIDATE PP NUMBER
ZJN STP3 IF ASSIGNED TO NOS/VE
STP2 STD PB+4
STP3 STD CL+4 SET ERROR STATUS
RJM CPA WRITE RESPONSE
ADD LO
CWD CL
AOD LO INCREMENT LIST OFFSET
SBD PB+3
SBN 1
MJN STP1 IF NOT END OF LIST
LJM STPX RETURN
STC SPACE 4,15
** FUNCTION 23 - STCT - STATUS OF NOS/VE CHANNELS.
*
* ENTRY (PB LIST ENTRY) = 6/CH, 6/0, 12/TYPE, 36/0.
* TYPE - TYPE OF CHANNEL.
* 0 = NIO CHANNEL.
* 1 = CIO CHANNEL.
*
* (NEJT) = NOS/VE EJT ORDINAL.
*
* EXIT (PB+4) = ERROR STATUS.
* (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR STATUS.
*
* USES LO, PB+4, T2, CL - CL+4, CN - CN+4.
*
* CALLS CPA.
STC5 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
STD PB+4
STC SUBR ENTRY/EXIT
LDD PB+3 CHECK PARAMETER BLOCK LENGTH
ZJN STCX IF NO REQUEST
SBK 35D
PJN STC5 IF LENGTH .GT. MAXIMUM LIST LENGTH
LDN CTALL
STD T2
LDC ** FWA OF CHANNEL EJT ASSIGNMENT TABLE
STCA EQU *-2
CRM CBUF,T2
LDN 1 INITIALIZE LIST OFFSET
STD LO
STC1 RJM CPA READ NEXT LIST ENTRY
ADD LO
CRD CL
RJM VCN VALIDATE CHANNEL NUMBER
PJN STC2 IF CHANNEL NUMBER INCORRECT
LDM NEJT
LMM CBUF,T2
ZJN STC3 IF CHANNEL RESERVED BY NOS/VE
LDN ESCH SET CHANNEL NOT RESERVED STATUS
STC2 STD PB+4
STC3 STD CL+4 SET ERROR STATUS
RJM CPA WRITE RESPONSE
ADD LO
CWD CL
LDD CL+4
LMD TH CHECK IF *ESIR*
ZJN STC4 IF INCORRECT REQUEST
AOD LO INCREMENT LIST OFFSET
SBD PB+3
SBN 1
MJP STC1 IF NOT END OF LIST
STC4 LJM STCX RETURN
TITLE SUBROUTINES.
DPL SPACE 4,25
** DPL - DEADSTART PP AND LOAD *PPR*.
*
* ENTRY (T3) = OFFSET INTO PP COMMUNICATION AREA.
* (T4) = PP NUMBER.
* (EC) = ELEMENT CONNECT CODE.
* (CL+2) = BAD PP FLAG IN UPPERMOST BIT.
* (PPCA) = PP COMMUNICATION AREA ADDRESS.
* *PPR* AT PBUF+5.
*
* EXIT (A) .GT. 0 IF *PPR* SUCCESSFULLY LOADED.
* OR IF REQUEST WAS FOR A CONCURRENT PP.
* .EQ. 0 IF *PPR* NOT SUCCESSFULLY LOADED.
* BML MESSAGE ISSUED WITH PP NUMBER (SYMPTOM
* CODE INDICATES WHETHER OPERATION WAS SUCCESSFUL).
* IF UNABLE TO COMPLETE DEADSTART/LOAD, THE PP
* IS IDLED AND ITS INPUT REGISTER SET TO ***.
*
* USES T1 - T3, T6, T7, CN - CN+4.
*
* CALLS IBM, IPP, NEC, PSC, SDC.
*
* MACROS DCHAN, DELAY, PAUSE, READMR, WRITMR.
DPL11 LDD T7
DCHAN DROP CHANNEL
LDN 0 CLEAR CHANNEL ASSIGNED FLAG
STM CHFL
LDC /COMSDFS/HS0113 SET NPP RETURNED SYMPTOM CODE
DPL12 STD T1
LDN ZERL CLEAR DATA WORD
CRD CN
LDD T4 SET PP NUMBER
LPN 37
STD CN+4
LDC /COMSDFS/HM0240 SET MESSAGE ID
RJM IBM ISSUE BML MESSAGE
LDN 1 SET SUCCESSFUL LOAD STATUS
DPL SUBR ENTRY/EXIT
LDM PPCA SET PP INPUT REGISTER ADDRESS
RAD T3
LDD CL+2 CHECK BAD PP BEING RETURNED
SHN 21-13
PJN DPL2 IF PP IS OK
LDD T4
LPN 40
ZJN DPL1 IF BAD NPP
LDK /COMSDFS/HS0124-/COMSDFS/HS0123
DPL1 ADC /COMSDFS/HS0123 SET BAD PP RETURNED SYMPTOM CODE
STD T1
LDN ZERL CLEAR DATA WORD
CRD CN
LDD T4 SET PP NUMBER
LPN 37
STD CN+4
LDC /COMSDFS/HM0240 SET MESSAGE ID
RJM IBM ISSUE BML MESSAGE
LJM DPL10 FLAG DISABLED PP AND RETURN
DPL2 LDD T4
LPN 40
ZJN DPL3 IF NOT CONCURRENT PP
LDN ZERL
CRD CM
LDN 2 SET RETURN CPP SUBFUNCTION
STD CM+1
LDD T4
LPN 37
STD CM+4 SET CPP NUMBER
MONITOR CPRM RETURN CPP
LDC /COMSDFS/HS0115 SET CPP RETURNED SYMPTOM CODE
UJP DPL12 ISSUE BML MESSAGE AND RETURN
DPL3 LDN 10 INITIALIZE DEADSTART/LOAD ATTEMPT COUNT
STD T2
LDD T3 SET UP *IA*, *OA*, *MA*, *CP* FOR THIS PP
STM PBUF+IA+5
ADN 1
STM PBUF+OA+5
ADN 1
STM PBUF+MA+5
LDN NCPL SET SYSTEM CONTROL POINT ADDRESS
CRD CN
AOD CN+1
SHN 7
STM PBUF+CP+5
DPL4 RJM SDC SELECT DEADSTART CHANNEL
RJM PSC PRESET CHANNEL INSTRUCTIONS
DPLA ACN **+40 ACTIVATE CHANNEL
* DEADSTART PP.
READMR RBUF,,DEMR READ EC REGISTER
LDM RBUF+4 SET PP NUMBER
DPLB SCN 37
* SCN 77 (IF IOU MODEL I2)
LMD T4
DPLC LMN 0
* LMN 40 (SET AUTO MODE BIT IF IOU MODEL I2)
STM RBUF+4
LDM RBUF+5 SET CHANNEL NUMBER
SCN 37
LMD T7
STM RBUF+5
LDM RBUF+6 SET LOAD MODE BIT
SCN 37
ADN 20
STM RBUF+6
LDM RBUF+7 SET ENABLE BIT
SCN 40
ADN 40
STM RBUF+7
WRITMR RBUF,,DEMR WRITE EC REGISTER
RJM NEC NORMALIZE EC REGISTER
* LOAD *PPR*.
LDC MSFW+1 OUTPUT START ADDRESS
DPLD OAN **+40
DELAY
DPLE EJM DPL5,0 IF CHANNEL ACCEPTED WORD
LJM DPL7 PROCESS TIME OUT
DPL5 LDC PPFW-1
DPLF OAM PBUF+6,0 OUTPUT *PPR*
DPLG SFM DPL7,0 IF PARITY ERRORS
DPLH DCN **+40 DISCONNECT CHANNEL TO START PP
* WAIT FOR PP TO INITIALIZE.
*
* NOTE - THE DELAY MUST BE LONG ENOUGH TO ALLOW *PPR*
* PRESET TO COMPLETE (AND ISSUE THE *DPPM* TO CLEAR
* THE INPUT REGISTER). IF A TIME OUT OCCURS HERE,
* AND THE PP IS DEADSTARTED AGAIN AFTER IT IS ALREADY
* EXECUTING, THE RESULTS ARE UNPREDICTABLE.
LDD TH SET DELAY LOOP COUNT
STD T6
DPL6 PAUSE NE
DELAY
SOD T6
ZJN DPL8 IF TIME OUT
LDD T3 CHECK PP INPUT REGISTER
CRD CN
LDD CN+1
SCN 77
SHN 6
LMD CN
LMC 3RP*V
ZJN DPL6 IF PP STILL ASSIGNED TO NOS/VE
LJM DPL11 RETURN
* PROCESS TIME OUT AND PARITY ERRORS.
DPL7 BSS 0
DPLI DCN **+40 DISCONNECT CHANNEL
DPL8 LDD T7
DCHAN DROP CHANNEL
LDN 0 CLEAR CHANNEL RESERVED FLAG
STM CHFL
SOD T2 DECREMENT DEADSTART ATTEMPT COUNT
ZJN DPL9 IF DEADSTART NOT TO BE RETRIED
LJM DPL4 ATTEMPT DEADSTART AGAIN
* IDLE PP AND SET UNUSABLE IF UNABLE TO DEADSTART.
DPL9 LDC /COMSDFS/HS0120 SET SYMPTOM CODE
STD T1
LDN ZERL CLEAR DATA WORD
CRD CN
LDD T4 SET PP NUMBER
STD CN+4
LDC /COMSDFS/HM0240 SET MESSAGE ID
RJM IBM ISSUE BML MESSAGE
RJM IPP IDLE PP
DPL10 LDD T3
CWM DPLJ,ON SET INPUT REGISTER TO ***
LDN 0
LJM DPLX RETURN
GCP SPACE 4,25
** GCP - GET CURRENT STATUS OF PP-S.
*
* ENTRY (PPCA) = ADDRESS OF PP COMMUNICATION AREA.
* (CL+1) = TYPE OF PP BEING REQUESTED.
* = 0 - NPP 0-11B ON 810/830 SYSTEMS,
* ANY NPP ON OTHER SYSTEMS.
* = 1 - NPP 20B-31B ON 810/830 WITH MORE THAN
* 10 NPP-S, ANY NPP ON OTHER SYSTEMS.
* = 2 - CPP 0-4.
* = 3 - CPP 5-11B.
* = 4 - PARTNER PAIR OF NPP-S ON 810/830 WITH
* MORE THAN 10 NPP-S, ANY TWO NPP-S
* ON OTHER SYSTEMS.
* (DA) = NUMBER OF NPP-S IN SYSTEM.
* (DB) = NUMBER OF CPP-S IN SYSTEM.
*
* EXIT (T4) = NUMBER OF AVAILABLE UPPER BANK PP-S
* IF MORE THAN 10 PP-S IN SYSTEM.
* (T5) = NUMBER OF DEDICATED NPP-S OR CPP-S.
*
* USES T1, T2, T3, T4, T5, T7, CM - CM+4, CN - CN+4.
GCP SUBR ENTRY/EXIT
LDN 0
STD T4 INITIALIZE COUNT OF UPPER PP-S AVAILABLE
STD T5 INITIALIZE COUNT OF DEDICATED PP-S
LDN 12
STD T2 INITIALIZE LOOP COUNTER FOR LOWER BARREL
LDM PPCA SET UP BASE PP INPUT REGISTER ADDRESS
STD T3
LDD CL+1
LPN VCPT
ZJN GCP1 IF REQUESTING NPP OR PAIR
LDD DA BIAS PAST NPP COMMUNICATIONS AREAS
SHN 3
RAD T3
LDD DB
UJN GCP2 SET CPP COUNT
GCP1 LDD DA NPP COUNT
GCP2 SBN 12
PJN GCP4 IF TEN OR MORE PP-S
RAD T2 ADJUST COUNTER
GCP3 LDN 0
GCP4 STD T1 UPPER BARREL PP COUNT
GCP5 LDN 0 INITIALIZE TABLE INDEX
STD T7
LDD T3 READ NEXT INPUT REGISTER
CRD CN
GCP6 LDD CN CHECK FOR DEDICATED PP
LMM TDPP,T7
NJN GCP7 IF NO MATCH
LDD CN+1
SCN 77
LMM TDPP+1,T7
NJN GCP7 IF NO MATCH
AOD T5 COUNT DEDICATED PP
UJN GCP8 READ NEXT INPUT REGISTER
GCP7 LDN 2 INCREMENT INDEX
RAD T7
SBN TDPPL
MJN GCP6 IF NOT END OF TABLE
GCP8 LDN 10 ADVANCE TO NEXT INPUT REGISTER
RAD T3
SOD T2
NJN GCP5 IF NOT FINISHED WITH THIS BARREL
LDD T1 PP COUNT FOR NEXT BARREL
ZJN GCP9 IF NO PP-S LEFT TO CHECK
STD T2 LOOP COUNTER FOR NEXT BARREL
ADD T5 CURRENT TOTAL DEDICATED PP-S
STD T4 DEDICATED LOWER PP-S PLUS TOTAL UPPER PP-S
UJP GCP3 CHECK NEXT BARREL
GCP9 LDD T4 DEDICATED LOWER PP-S PLUS TOTAL UPPER PP-S
SBD T5 REDUCE BY TOTAL DEDICATED PP-S
STD T4 AVAILABLE UPPER BARREL PP-S
LJM GCPX RETURN
TDPP SPACE 4,10
** TDPP - TABLE OF DEDICATED PP-S.
*
* TWO WORD ENTRY.
*
*T, 18/NAME OF DEDICATED PP ROUTINE, 6/0
TDPP BSS 0 TABLE OF DEDICATED PP-S
VFD 24/3L*VP NOS/VE PP
VFD 24/0LMTR
VFD 24/0LDSD
VFD 24/0LDIS
VFD 24/0LO26
VFD 24/0L1CD
VFD 24/0L1HP
VFD 24/0L1XM
VFD 24/0L1TS
VFD 24/0L1TN
VFD 24/0L1TM
VFD 24/0LPIP
VFD 24/0LNDR
VFD 24/0LDFT
VFD 24/0LSCD
VFD 24/0LCPD
VFD 24/0LMDD
VFD 24/0LMTE
VFD 24/3L***
TDPPL EQU *-TDPP LENGTH OF DEDICATED PP TABLE
IPP SPACE 4,15
** IPP - IDLE PP.
*
* ENTRY (T3) = PP INPUT REGISTER ADDRESS.
* (PPCA) = PP COMMUNICATION AREA ADDRESS.
* (EC) = ELEMENT CONNECT CODE FOR IDLE PP.
*
* EXIT (A) = SYMPTOM CODE FOR PP ASSIGNMENT IF SUCCESSFUL.
* .LT. 0 IF UNABLE TO IDLE.
* (T5) = PP NUMBER.
* BML MESSAGE ISSUED IF UNABLE TO IDLE.
*
* USES T1, T2, T5, CN - CN+4.
*
* CALLS IBM, NEC.
*
* MACROS DELAY, LOCKMR, PAUSE, READMR, WRITMR.
IPP SUBR ENTRY/EXIT
LDD T3 COMPUTE NUMBER OF PP
SBM PPCA
SHN -3
STD T5
SBN 12
MJN IPP2 IF PP NUMBER 0 - 11
SBN 12
MJN IPP1 IF PP NUMBER 20 - 31
ADN 40 ADJUST CPP NUMBER
STD T5
LDC /COMSDFS/HS0114 CPP ASSIGNMENT SYMPTOM CODE
UJN IPPX RETURN
IPP1 LDN 6 ADJUST UPPER BANK PP NUMBER
RAD T5
IPP2 READMR RBUF,,DEMR READ EC REGISTER
LDM RBUF+4 SET PP NUMBER
IPPA SCN 37
* SCN 77 (IF IOU MODEL I2)
LMD T5
IPPB LMN 0
* LMN 40 (SET AUTO MODE BIT IF IOU MODEL I2)
STM RBUF+4
LDM RBUF+6 SET IDLE MODE BIT, K REGISTER (10B)
SCN 37
ADN 6
STM RBUF+6
LDM RBUF+7 SET ENABLE BIT
SCN 40
ADN 40
STM RBUF+7
LDN 10 INITIALIZE TIME OUT COUNT
STD T2
* LOOP UNTIL PP IS IDLED.
IPP3 LOCKMR SET GET LONG TERM INTERLOCK
WRITMR RBUF,,DEMR WRITE EC REGISTER
READMR IBUF,,ISTR 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
ZJP IPP5 IF PP IDLING
SOD T2
ZJN IPP4 IF TIME OUT
PAUSE NE
DELAY
LJM IPP3 LOOP
* ISSUE BML MESSAGE.
IPP4 LDC /COMSDFS/HS0121 SET SYMPTOM CODE
STD T1
LDN ZERL CLEAR DATA WORD
CRD CN
LDD T5 SET PP NUMBER
STD CN+4
LDC /COMSDFS/HM0240 SET MESSAGE ID
RJM IBM ISSUE BML MESSAGE
LDD T3 SET *** IN INPUT REGISTER
CWM DPLJ,ON
RJM NEC NORMALIZE EC REGISTER
LCN 1
LJM IPPX RETURN
* NORMALIZE EC REGISTER.
IPP5 RJM NEC NORMALIZE EC REGISTER
LDC /COMSDFS/HS0112 NPP ASSIGNMENT SYMPTOM CODE
LJM IPPX RETURN
PSC SPACE 4,10
** PSC - PRESET CHANNEL INSTRUCTIONS.
*
* ENTRY (T7) = CHANNEL NUMBER.
*
* EXIT CHANNEL INSTRUCTIONS MODIFIED.
*
* USES T1, T5.
PSC SUBR ENTRY/EXIT
LDC TPSC-1 INITIALIZE CHANNEL TABLE ADDRESS
STD T1
PSC1 AOD T1 ADVANCE CHANNEL TABLE
LDI T1
ZJN PSCX IF END OF TABLE
STD T5 MODIFY CHANNEL INSTRUCTION
LDI T5
SCN 37
LMD T7
STI T5
UJN PSC1 LOOP
** TPSC - TABLE OF CHANNEL INSTRUCTIONS.
TPSC BSS 0
CON DPLA
CON DPLD
CON DPLE
CON DPLF
CON DPLG
CON DPLH
CON DPLI
CON MREA
CON 0 END OF TABLE
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.
* (SPBA) = NIO BARREL CONFIGURATION.
* (SPBB) = NUMBER OF NIO BARRELS.
*
* EXIT PP OS BOUNDS REGISTER SET FOR GIVEN PP.
*
* USES T2, T7.
*
* MACROS LOCKMR, READMR, WRITMR.
SPB SUBR ENTRY/EXIT
STD T7 SAVE LOGICAL PP NUMBER
SHN -14
STM SPBE SAVE BOUNDS BIT VALUE
LDN 0
STD T2
LDD T7
SBN 40
MJN SPB2 IF NOT CONCURRENT IOU
STD T7
SPBG UJN SPB0 (IOU MODEL 40)
* PSN (IOU MODEL 42)
LDN 3
STD T2
LDK IOSB USE NIO REGISTER
UJN SPB1.1 READ AND ALTER OS BOUNDS REGISTER
SPB0 SBN 5
MJN SPB1 IF IN LOWER OF THE TWO BARRELS
STD T7
AOD T2
SPB1 LDK OBCR SET UP FOR CONCURRENT OS BOUNDS
SPB1.1 STD RN
UJN SPB5 READ AND ALTER OS BOUNDS REGISTER
SPB2 ADN 20
MJN SPB3 IF IN LOWER 10 PP-S
STD T7
AOD T2
AOD T2
SPB3 LDD T7
SBN 5
MJN SPB4 IF IN LOWER BARREL OF THE TWO
STD T7
AOD T2
SPB4 LDK IOSB SET UP FOR NON-CONCURRENT OS BOUNDS
STD RN
LDD T2
SPBA ADN **
* ADN 0 (BARREL RECONFIGURATION)
* ADN 1
* ADN 2
* ADN 3
STD T2
SPBB SBN **
* SBN 1 (NUMBER OF BARRELS)
* SBN 2
* SBN 3
* SBN 4
MJN SPB5 IF NO OVERFLOW
STD T2
SPB5 LDC SHNI SET BIT SHIFT INSTRUCTION
ADD T7
STM SPBC
STM SPBF
LOCKMR SET
READMR RBUF READ APPLICABLE CURRENT OS BOUNDS DATA
LDM RBUF,T2
STM SPBD
LCN 1
SPBC SHN **
LPC **
SPBD EQU *-1
STM RBUF,T2
LDC **
SPBE EQU *-1
SPBF 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
SRA SPACE 4,10
** SRA - SET NOS REQUEST HEADER ADDRESS.
*
* EXIT (A) = ADDRESS OF NOS REQUEST HEADER.
SRA SUBR ENTRY/EXIT
SRAA LDC ** (ADDRESS OF NOS REQUEST HEADER)
UJN SRAX RETURN
VPN SPACE 4,15
** VPN - VALIDATE PP NUMBER.
*
* ENTRY (A) = PP NUMBER.
* (DA) = NUMBER OF SYSTEM NPP-S.
* (DB) = NUMBER OF SYSTEM CPP-S.
*
* EXIT (A) = 0, IF ASSIGNED TO NOS/VE.
* = *ESIR*, IF INCORRECT NUMBER.
* = *ESPP*, IF NOT ASSIGNED TO NOS/VE.
* = *ESCP*, IF CONCURRENT PP NOT PRESENT.
* (T3) = PP OFFSET INTO COMMUNICATION AREA.
* (T4) = PP NUMBER.
* (CM - CM+4) = INPUT REGISTER.
*
* USES T3, T4, CM - CM+4.
VPN7 LDD T4
VPN8 SHN 3
STD T3
ADM PPCA CHECK IF ASSIGNED TO NOS/VE
CRD CM
LDD CM+1
SCN 77
SHN 6
LMD CM
LMC 3RP*V
ZJN VPNX IF ASSIGNED TO NOS/VE
LDN ESPP SET ERROR CODE
VPN SUBR ENTRY/EXIT
STD T4
SBN 10D
MJN VPN7 IF LOWER BANK PP
SBN 40-10D
PJN VPN5 IF CONCURRENT PP
LDD DA
SBN 11D
PJN VPN3 IF UPPER PP-S EXIST ON SYSTEM
VPN1 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
VPN2 UJN VPNX RETURN
VPN3 LDD T4
SBN 20
MJN VPN1 IF 12 .LE. PP NUMBER .LE. 17
SBN 32-20
PJN VPN1 IF PP NUMBER .GT. 31
SBK 6-32
VPN4 LJM VPN8 CHECK IF VE ASSIGNED AND RETURN
VPN5 SBD DB
MJN VPN6 IF AN EXISTING CPP NUMBER
LDD T4
SBN 52
PJN VPN1 IF NOT A VALID CPP NUMBER
LDK ESCP SET CONCURRENT PP NOT PRESENT (*ESCP*)
UJN VPN2 RETURN
VPN6 LDD T4
SBN 6+6
UJN VPN4 CHECK IF VE ASSIGNED AND RETURN
SPACE 4,10
** CODE PAST THIS POINT MAY BE OVERLAID BY *PBUF*.
*
* *PBUF* IS USED ONLY FOR THE *RSP* FUNCTION.
* *PBUF* MUST HAVE TWO RESERVED WORDS PRECEEDING IT FOR DISK
* LINKAGE BYTES.
ERRNG PBUF-*-2 ERROR IF PBUF OVERLAYS EARLIER CODE
TITLE SUBROUTINES OVERLAYABLE BY *PBUF*.
CUA SPACE 4,10
** CUA - CHECK IF UNIT ASSIGNED TO NOS/VE.
*
* ENTRY (DC) = CORRESPONDING BIT NUMBER OF UNIT.
* (CN - CN+4) = EST ENTRY.
*
* EXIT (A) .LT. 0 IF NOT MASS STORAGE DEVICE.
* = 0 IF UNIT NOT ASSIGNED TO NOS/VE.
* = *ESAA* STATUS IF UNIT ASSIGNED TO NOS/VE.
*
* USES CM - CM+4.
CUA2 LCN 0 SET NOT MASS STORAGE FLAG
CUA SUBR ENTRY/EXIT
LDD CN
SHN 21-13
PJN CUA2 IF NOT MASS STORAGE DEVICE
LDD CN+4 GET UNIT ASSIGNMENT STATUS
SHN 3
ADN NVGL
CRD CM
LDC SHNI+21 SET SHIFT COUNT
SBD DC
STM CUAA
LDD CM+4
CUAA SHN **
MJN CUA1 IF UNIT ASSIGNED TO NOS/VE
LDN 0 SET UNIT NOT ASSIGNED STATUS
UJN CUAX RETURN
CUA1 LDN ESAA SET UNIT ALREADY ASSIGNED STATUS
UJN CUAX RETURN
DCA SPACE 4,10
** DCA - DETERMINE CHANNEL AVAILABILITY.
*
* ENTRY (T2) = CHANNEL NUMBER.
* (RBUF - RBUF+CTALL*5) = CHANNEL STATUS TABLE.
*
* EXIT (A) = 0 IF CHANNEL PREVIOUSLY ASSIGNED.
* (CM+1) .NE. 0 IF CHANNEL ASSIGNED.
*
* USES T3, T4, CM - CM+4.
*
* CALLS SEC, VRC.
*
* MACROS MONITOR.
DCA SUBR ENTRY/EXIT
LDM RBUF,T2
SHN 21-5
PJN DCA1 IF CHANNEL IS UP
LJM DCA8 CHECK EQUIPMENT ON DOWN CHANNEL
* CHANNEL IS UP. SEARCH FOR EQUIPMENT CONFIGURED ON IT.
DCA1 LDD T2 CHECK IF CONSOLE CHANNEL
LMN CHDS
ZJN DCA4 IF CONSOLE CHANNEL
LDD T2
SBN 20
MJN DCA2 IF CHANNEL 0-17B
SBN 40-20
MJN DCA2 IF CHANNEL 20B-37B
SBN 56-40
DCA2 ADN 4
PJN DCA4 IF REQUESTED 14B-17B, 34B-37B, OR OVER 51B
DCA3 LDD LE
RJM SEC SEARCH FOR EQUIPMENT ON THIS CHANNEL
ZJN DCA6 IF NO EQUIPMENT FOUND
DCA4 LDN 0 SET CHANNEL NOT ASSIGNED
STD CM+1
LDN 1
DCA5 UJN DCAX RETURN
DCA6 STD CM+1 CLEAR EST ORDINAL
STD CM+4 CLEAR MUX FLAG
LDN DNCS SET SUBFUNCTION
STD CM+2
LDD T2 SET CHANNEL NUMBER
STD CM+3
MONITOR SEQM DOWN UNCONFIGURED CHANNEL
DCA7 RJM VRC VE RESERVE CHANNEL
LDD T4
UJN DCA5 RETURN
* CHANNEL IS DOWN. CHECK FOR NON-TRANSFERRABLE EQUIPMENT.
DCA8 LDD LE
DCA9 RJM SEC SEARCH FOR EQUIPMENT ON THIS CHANNEL
PJN DCA7 IF NO EQUIPMENT FOUND
LDN 0 INITIALIZE TABLE INDEX
STD T4
DCA10 LDM TEQT,T4
ZJN DCA3 IF END OF TABLE
LMD CM+3
LPC 3777
ZJN DCA9 IF EQUIPMENT IS TRANSFERRABLE
AOD T4
UJN DCA10 CHECK NEXT TABLE ENTRY
TEQT SPACE 4,10
** TEQT - TABLE OF TRANSFERRABLE EQUIPMENT.
*
* ONE WORD ENTRY.
*
*T 12/2RMN
* MN = MNEMONIC OF EQUIPMENT THAT MAY BE TRANSFERRED TO NOS/VE.
TEQT BSS 0 TABLE OF TRANSFERRABLE EQUIPMENT
VFD 12/2RAT
VFD 12/2RCT
VFD 12/2RMT
VFD 12/2RNT
VFD 12/2RDJ
VFD 12/2RDL
VFD 12/2RDM
VFD 12/2RDQ
VFD 12/0 END OF TABLE
SEC SPACE 4,15
** SEC - SEARCH FOR EQUIPMENT ON SPECIFIED CHANNEL.
*
* ENTRY (A) = EST ORDINAL+1 FROM WHICH TO START SEARCH.
* = 0 IF (T3) = STARTING EST ORDINAL+1.
* (T2) = CHANNEL NUMBER.
*
* EXIT (A) = 0 IF NONE FOUND.
* = (T3) = EST ORDINAL OF EQUIPMENT FOUND.
* (CM - CM+4) = EST ENTRY WORD *EQDE*.
*
* USES T1, T3, CM - CM+4.
*
* MACROS SFA.
SEC3 LDD T3 RETURN EST ORDINAL
SEC SUBR ENTRY/EXIT
ZJN SEC1 IF NOT INITIAL CALL
STD T3 SAVE EST ORDINAL
SEC1 SOD T3 DECREMENT EST ORDINAL
SBN NOPE-1
ZJN SECX IF END OF EST
SFA EST,T3
ADK EQDE
CRD CM READ EST ENTRY
LDD CM+3
ZJN SEC1 IF NULL ENTRY
LMC 2RDE
ZJN SEC1 IF *DE* EQUIPMENT
LDN CM
STD T1
SEC2 AOD T1
LMN CM+3
ZJN SEC1 IF BOTH CHANNELS CHECKED
LDI T1
ZJN SEC2 IF CHANNEL NOT PRESENT
LMD T2
LPN 77
ZJN SEC3 IF CHANNEL MATCH
UJN SEC2 CHECK NEXT CHANNEL
SEE SPACE 4,20
** SEE - SEARCH EST FOR EQUIPMENT.
*
* ENTRY (CL - CL+4) = 6/CH, 6/EQ, 6/UN, 42/0.
* CH = CHANNEL TO BE MATCHED.
* EQ = EQUIPMENT (CONTROLLER) NUMBER TO BE MATCHED.
* UN = UNIT NUMBER TO BE MATCHED.
*
* EXIT (A) .LT. 0 IF EST ENTRY NOT FOUND.
* (T7) = EST ORDINAL IF ENTRY FOUND.
* (CN - CN+4) = EST ENTRY.
* (DC) = BIT NUMBER OF UNIT CORRESPONDING TO POSITION
* IN *DDLL* UNIT LIST.
*
* USES DA, DB, DC, T1, T3 - T5, T7, CM - CM+4, CN - CN+4.
*
* MACROS SFA.
SEE10 LCN 0 RETURN NOT FOUND FLAG
SEE SUBR ENTRY/EXIT
LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
STD T7
LDD CL SAVE CHANNEL NUMBER
SHN 14
STD T4
SHN -14
STD T5 SAVE EQUIPMENT (CONTROLLER) NUMBER
LDD CL+1 SAVE UNIT NUMBER
SHN -6
STD T3
SEE1 AOD T7 ADVANCE EST ORDINAL
LMD LE
ZJN SEE10 IF END OF EST
SFA EST,T7
ADK EQDE
CRD CN READ EST ENTRY
LDD CN+3
ZJN SEE1 IF NULL ENTRY
LMC 2RDE
ZJN SEE1 IF *DE* EQUIPMENT
LDN CN
STD T1
SEE2 AOD T1
LMN CN+3
ZJN SEE1 IF BOTH CHANNELS CHECKED
LDI T1
ZJN SEE2 IF CHANNEL NOT PRESENT
LMD T4
LPN 77
NJN SEE2 IF CHANNEL DOESN-T MATCH
LDD CN
SHN 21-13
MJN SEE4 IF MASS STORAGE DEVICE
* CHECK NON-MASS STORAGE DEVICE.
LDD CN+4 CHECK EQUIPMENT (CONTROLLER) NUMBER
SHN -11
LMD T5
SEE2.1 NJN SEE1 IF DIFFERENT EQUIPMENT NUMBER
LDD CN+4 CHECK FOR MATCHING UNIT NUMBER
LPN 17
LMD T3
SEE3 NJN SEE2.1 IF DIFFERENT UNIT NUMBER
LJM SEEX RETURN
* CHECK MASS STORAGE DEVICE.
SEE4 LDD CN
SHN 21-7
PJN SEE5 IF NOT *LDAM* TYPE
LDD T5
NJN SEE3 IF NON-ZERO EQUIPMENT (CONTROLLER) NUMBER
UJN SEE6 CHECK FOR MATCHING UNIT NUMBER
SEE5 LDD CN+2
SHN -11
LMD T5
NJN SEE3 IF EQUIPMENT (CONTROLLER) NUMBERS DIFFER
* CHECK UNIT NUMBER.
SEE6 LDD CN+4 READ UNIT LIST FROM MST
SHN 3
ADN DDLL
CRD CM
LDD CM
LPN 7
STD DA SAVE NUMBER OF UNITS
LDN 4 INITIALIZE NUMBER OF BYTES IN UNIT LIST
STD DB
LDN 0 INITIALIZE CORRESPONDING *NVGL* BIT NUMBE
STD DC
SEE7 LDM CM,DB CHECK FOR MATCHING UNIT NUMBERS
LPN 77
LMD T3
ZJN SEE9 IF UNIT NUMBERS MATCH
AOD DC INCREMENT CORRESPONDING BIT NUMBER
SOD DA DECREMENT NUMBER OF UNITS
SEE8 MJN SEE3 IF END OF UNIT LIST
LDM CM,DB
SHN -6
LMD T3
ZJN SEE9 IF UNIT NUMBERS MATCH
SOD DB
AOD DC INCREMENT CORRESPONDING BIT NUMBER
SOD DA DECREMENT NUMBER OF UNITS
MJN SEE8 IF END OF UNIT LIST
UJN SEE7 CHECK NEXT UNIT IN LIST
SEE9 LJM SEEX RETURN
VCN SPACE 4,10
** VCN - VALIDATE CHANNEL NUMBER.
*
* ENTRY (CL - CL+4) = CURRENT PARAMETER LIST ENTRY.
*
* EXIT (A) = ERROR RESPONSE CODE IF CHANNEL NUMBER INCORRECT.
* (A) .LT. 0 IF CHANNEL NUMBER IS CORRECT.
* (T2) = CHANNEL NUMBER, BIASED BY 40B IF CIO CHANNEL.
*
* USES T2.
VCN1 LDD T2
SBK MXNC+1
MJN VCNX IF CHANNEL NUMBER IS CORRECT
VCN2 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
VCN SUBR
LDD CL CHANNEL NUMBER
SHN -6
STD T2
LDD CL+1 GET TYPE
SBK VNCT
ZJN VCN1 IF NIO CHANNEL REQUEST
SBK VCCT-VNCT
NJN VCN2 IF NOT CIO CHANNEL REQUEST
LDN 40
RAD T2
SBK MXCH+1
PJN VCN2 IF CHANNEL NUMBER OUT OF RANGE
ADK MXCH+1-40
SBD DB
MJN VCNX IF CHANNEL IS IN SYSTEM
LDK ESCC SET CIO CHANNEL NOT PRESENT (*ESCC*)
UJN VCNX RETURN WITH ERROR STATUS
VET SPACE 4,15
** VET - VALIDATE EQUIPMENT TRANSFERABILITY.
*
* ENTRY (CN - CN+4) = EST ENTRY.
* (T7) = EST ORDINAL.
* (NEJT) = NOS/VE EJT ORDINAL.
*
* EXIT (A) = 0 IF EQUIPMENT DOWN AND NOT ASSIGNED TO NOS/VE.
* .LT. 0 IF ALREADY ASSIGNED TO NOS/VE.
* = *ESEQ* ERROR STATUS IF NOT DOWN.
*
* USES CM - CM+4.
*
* MACROS SFA.
VET2 LCN 0 SET STATUS
VET SUBR ENTRY/EXIT
LDD CN
LPN 3
LMN 3
NJN VET1 IF EQUIPMENT NOT DOWN
SFA EST,T7 CHECK EQUIPMENT ASSIGNMENT
ADK EQAE
CRD CM
LDM NEJT
LMD CM+4
ZJN VET2 IF ASSIGNED TO NOS/VE
LDN 0 SET NOT ASSIGNED STATUS
UJN VETX RETURN
VET1 LDN ESEQ SET EQUIPMENT NOT AVAILABLE STATUS
UJN VETX RETURN
TITLE PRESET.
PRS SPACE 4,10
** PRS - PRESET VIRTUAL ENVIRONMENT REQUEST OVERLAY.
*
* EXIT (POFA) = FUNCTION PROCESSOR ADDRESS.
* (SRAA - SRAA+1) = NOS REQUEST HEADER ADDRESS.
* (RNCA - RNCA+1) = (STCA - STCA+1) = FWA
* OF CHANNEL EJT ASSIGNMENT TABLE.
* (DA) = NUMBER OF NPP-S IN SYSTEM.
* (DB) = NUMBER OF CPP-S IN SYSTEM.
*
* USES DA, DB, CN - CN+4.
*
* CALLS SRI.
PRS SUBR ENTRY/EXIT
RJM SEA LOCATE DFT/OS BUFFER
ADN DSCM+3
CRD CM
LDD CM+2 READ *DFT* CONTROL WORD
SHN 14
LMD CM+3
SHN -4
SHN 6
LMD CM
ADN 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 SRAA+1 SAVE ADDRESS
SHN -14
RAM SRAA
LDK CHTP
CRD CN
LDD CN+2 SAVE EJT ASSIGNMENT TABLE ADDRESS
SHN 14
LMD CN+3
ADN CTALL
STM RNCA+1
STM STCA+1
SHN -14
RAM RNCA
STM STCA
LDD CN+2 SAVE CHANNEL STATUS TABLE ADDRESS
RAM RSCA
LDD CN+3
STM RSCA+1
RJM SRI SET RECONFIGURATION INFORMATION
LDN PPUL GET THE PP COUNTS
CRD CN
LDD CN+2
STD DA NUMBER OF NPP-S IN SYSTEM
LDD CN+3
LPN 77
STD DB NUMBER OF CPP-S/CIO CHANNELS IN SYSTEM
LDM TFCN,IR+2 SET FUNCTION PROCESSOR ADDRESS
STM POFA
LJM PRSX RETURN
SRI SPACE 4,10
** SRI - SET RECONFIGURATION INFORMATION.
*
* ENTRY (EC) = IOU CONNECT CODE.
*
* EXIT (SPBA) = NIO BARREL CONFIGURATION.
* (SPBB) = NUMBER OF NIO BARRELS PRESENT.
*
* USES T1, T2, CM - CM+4.
*
* MACROS READMR.
SRI SUBR ENTRY/EXIT
LDN 0 INITIALIZE BARREL COUNT
STD T1
LDN 2 SET WORD COUNT
STD T2
LDK EABL+IOEI READ IOU INFORMATION
CRD CM
LDD CM+1
SCN 77
SHN 6
ADD CM
SHN 6
CRM SRIA,T2
LDM SRIA+/DSL/PPP0 CHECK ALL PP-S PRESENT IN BARREL 1
NJN SRI3 IF ONLY ONE BARREL
LDM SRIA+/DSL/PPP1
SHN 21-4
MJN SRI2 IF ONLY TWO BARRELS
NJN SRI1 IF THREE BARRELS
AOD T1
SRI1 AOD T1
SRI2 AOD T1
SRI3 AOD T1
RAM SPBB SET NUMBER OF BARRELS
LDM SRIA+/DSL/HDMN GET IOU MODEL NUMBER
SHN -4
LMC 0#42
NJN SRI4 IF NOT MODEL 42 IOU
LDN PSNI
STM SPBG
UJN SRI5 CONTINUE RECONFIGURATION
SRI4 SHN -4
SBN 1
ZJN SRI6 IF IOU MODEL I1
MJN SRI5 IF NOT MODEL I2
LDN 40 MODIFY EC REGISTER SETTINGS FOR I2
RAM DPLB
STM IPPA
LDN 40
RAM DPLC
STM IPPB
SRI5 AOM SRIB MODIFY FOR IOU MODEL I2 OR I4
SRI6 READMR SRIA,,ISTR
LDM SRIA+7
SHN -3
SRIB LPN 2 (IOU MODEL I1)
* LPN 3 (IOU MODEL I2 OR I4)
RAM SPBA SET NIO BARREL RECONFIGURATION
LJM SRIX RETURN
SRIA BSS 2*5 IOU INFORMATION
TFCN SPACE 4,10
** TFCN - TABLE OF FUNCTION PROCESSOR ADDRESSES.
*
* ONE WORD INDEXED BY FUNCTION CODE.
*
*T 12/ ADDR
*
* ADDR ADDRESS OF FUNCTION PROCESSOR.
TFCN BSS 0 TABLE OF FUNCTION PROCESSOR ADDRESSES
LOC 0
RSCM FCN EOS RESERVE CM (IN MAIN)
RSPP FCN EOS RESERVE PP (IN MAIN)
RSCH FCN EOS RESERVE CHANNEL (IN MAIN)
RSEQ FCN REQ RESERVE EQUIPMENT
RNCM FCN EOS RETURN CM (IN MAIN)
RNPP FCN EOS RETURN PP (IN MAIN)
RNCH FCN EOS RETURN CHANNEL (IN MAIN)
RNEQ FCN TEQ RETURN EQUIPMENT
STCM FCN EOS STATUS CM (IN MAIN)
STPP FCN EOS STATUS PP (IN MAIN)
STCH FCN EOS STATUS CHANNELS (IN MAIN)
STEQ FCN SEQ STATUS EQUIPMENT
STMR FCN EOS STATUS AVAILABLE RESOURCES (IN MAIN)
SFRC FCN FRC SET FREE-RUNNING COUNTER TO VALUE
RSPT FCN RSP RESERVE NPP, NPP PARTNER PAIR OR CPP
RSCT FCN RSC RESERVE NIO OR CIO CHANNEL
RNPT FCN RNP RETURN NPP, CPP OR ALL PP-S
RNCT FCN RNC RETURN NIO OR CIO CHANNEL OR ALL CHANNELS
STPT FCN STP STATUS NPP-S AND/OR CPP-S
STCT FCN STC STATUS NIO AND/OR CIO CHANNELS
MXVR BSS 0 MAXIMUM *VER* REQUEST + 1
LOC *O
TFCNL EQU *-TFCN LENGTH OF FUNCTION CODE TABLE
EOS SPACE 4,10
** EOS - ERROR IN OVERLAY SELECTION.
*
* OVERLAY *2VR* IS EXECUTING WITH A FUNCTION WHICH SHOULD
* HAVE BEEN PROCESSED IN THE MAIN *VER* OVERLAY.
*
* ENTRY OVERLAY PRESET COMPLETED.
*
* EXIT TO *ERR* IN MAIN OVERLAY.
EOS SUBR ENTRY (NO EXIT)
ABORT EROS * VER - OVERLAY SELECTION ERROR*
SPACE 4,10
* CHECK FOR OVERFLOW.
OVERFLOW OVLA,EPFW
TTL VER - VIRTUAL ENVIRONMENT REQUEST PROCESSOR.
END