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