IDENT CVL,CVL
PERIPH
BASE MIXED
SST
*COMMENT CVL - COMMON VALIDATION INTERFACE FOR NOS.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
TITLE CVL - COMMON VALIDATION INTERFACE.
SPACE 4,10
***** CVL - COMMON VALIDATION INTERFACE FOR NOS.
* R. E. DENNIS. 77/02/03.
* C. R. LUND. 81/01/12.
* J. M. MAREK. 88/01/26.
*
* CVL IS CALLED BY THE ON-LINE DIAGNOSTIC SOFTWARE TO
* PROVIDE VALIDATION OF THE CALLER, VERIFICATION OF THE
* HARDWARE TO BE TESTED, AND THE GRANTING OR DENYING OF
* PERMISSION FOR SOLE USE OF HARDWARE ELEMENTS.
* IN ADDITION, UPON REQUEST, CVL WILL RETURN SYSTEM AND
* MACHINE CHARACTERISTICS TO THE CALLER.
SPACE 4,10
*** CALL
*
*
*T IR 18/ *CVL*,1/1,5/ CP,12/ VN,6/ CODE,18/ ADDR
* CP CONTROL POINT NUMBER.
* VN VERSION NUMBER (FUNCTION 4).
* 0 - RETURN OLD FORMAT SAB.
* 1 - RETURN NEW FORMAT SAB.
* CODE FUNCTION CODE.
* ADDR PARAMETER BLOCK ADDRESS.
SPACE 4,10
*** ROUTINES CALLED.
*
* 0PX.
SPACE 4,10
*** DAYFILE MESSAGES.
*
* * CVL CALL ERROR.*
* MAY INDICATE ANY ONE OF THE FOLLOWING -
* 1. RECALL BIT NOT SET.
* 2. INCORRECT FUNCTION CODE.
* 3. THE CALLER DID NOT SUPPLY AN EST ORDINAL, A CH/EQ/UN
* COMBINATION, OR A MNEMONIC.
* 4. EST ORDINAL IS SUPPLIED BY THE CALLER, AND THE FUNCTION
* BIT MEANING THE UNIT IS NOT IN THE EST IS ALSO SET.
* 5. THE NOT-IN-EST BIT IS SET, AND NEITHER THE DEVICE CODE
* NOR THE DEVICE MNEMONIC IS SUPPLIED.
* 6. THE NOT-IN-EST BIT IS SET AND A UNIT RETURN WAS
* REQUESTED.
* 7. THE USERS ECS FIELD LENGTH WAS NOT ZERO WHEN A DIAGNOSTIC
* REQUEST WAS MADE TO ACCESS AN AREA OF *ECS* OR *ESM*
* FOR DIAGNOSTIC TESTING. DIAGNOSTIC AREAS ARE THE
* PREALLOCATED TRACK, THE MAINTENANCE HALF OF ECS, OR ALL OF
* ECS IF THE DEVICE HAS THE DOWN BIT SET IN THE EST. A ZERO
* FIELD LENGTH IN THE *ECS* WORD (BYTE 4) WILL PROVIDE A
* FIXED RA AND FL FOR DIAGNOSTIC ISOLATION PURPOSES TO ALLOW
* ON-LINE REPAIR OF ECS.
* FOR *ESM*, A LOCAL FILE EM* IS CREATED FOR DIAGNOSTICS.
* 8. USER DID NOT REQUEST (OR WAS NOT ASSIGNED) A TAPE FILE
* WHEN USING TAPE PREASSIGNMENT.
* 9. USER-SUPPLIED DEVICE MNEMONIC DOES NOT MATCH THAT OF
* TAPE ASSIGNED WHEN USING TAPE PREASSIGNMENT.
* 10. USER ATTEMPTED TO LOAD TAPE CONTROLWARE WHEN
* USING TAPE PREASSIGNMENT.
* 11. USER REQUESTED A CH/EQ/UN COMBINATION DEFINED IN THE
* EST, BUT THE DEVICE CODE REQUESTED WAS NOT DEFINED IN
* CVL-S INTERNAL TABLE.
* 12. USER REQUESTED A CHANNEL WHICH DOES NOT EXIST.
*
* * USER VALIDATION DENIED.*
* INDICATES ONE OF THE FOLLOWING.
* 1. THE CALLING PROGRAM IS NOT SYSTEM ORIGIN AND EITHER THE
* USER DOES NOT HAVE SYSTEM ORIGIN PRIVILEGES, OR
* ENGINEERING MODE IS NOT SET AT THE SYSTEM CONSOLE.
* 2. THE USER DOES NOT HAVE VALIDATION PRIVILEGES TO RUN ON-
* LINE DIAGNOSTICS. THIS IS REQUIRED FOR ALL *VALIDATE
* CUSTOMER ENGINEER* FUNCTIONS (EXCEPT FOR CERTAIN RHF
* FUNCTIONS).
SPACE 4
TITLE LOCAL DEFINITIONS.
** COMMON DECKS.
*CALL COMPMAC
*CALL COMSCPS
QUAL DSL
*CALL COMSDSL
QUAL *
*CALL COMSESS
*CALL COMSMSP
*CALL COMSMST
*CALL COMSPIM
SSJ$ EQU 1
*CALL COMSSSD
*CALL COMSSSJ
*CALL COMSZOL
**** DIRECT LOCATION ASSIGNMENTS.
FA EQU T1 EXERCISE CAUTION WHEN USING THIS CELL
FS EQU T2 - T6 EXERCISE CAUTION WHEN USING THESE CELLS
EP EQU 20 EST UNIT NUMBER
VT EQU 21 TEMPORARY VALIDATION CODE WORD
BS EQU 22 PARAMETER BLOCK SIZE
VH EQU 23 CODE SHOWING HIGHEST MATCH FOUND
SB EQU 24 SHARE BITS
TI EQU 25 DEVICE CODE TABLE INDEX
CS EQU 26 CHANNEL STATUS BYTE FROM CHANNEL TABLE
DA EQU 27 EST INDEX
LO EQU 30 LAST EST ORDINAL + 1
LM EQU 31 LAST MASS STORAGE ORDINAL + 1
CD EQU 33 - 37 TEMP
CC EQU 34 AUXILIARY CHANNEL FROM EST
CB EQU CC+1 SECOND CHANNEL FROM EST
CA EQU CB+1 FIRST CHANNEL FROM EST
CI EQU CA+1 CHANNEL BYTE INDEX
ES EQU 40 *EQDE* WORD OF EST ENTRY
EA EQU ES+5 ORDINAL OF MATCHED EST ENTRY
CE EQU 47 POINTER TO EST CHANNEL BYTE
FB EQU 57 FNT RELATIVE ADDRESS (0BF PARAMETER)
AE EQU 60 - 65 *EQAE* WORD OF EST ENTRY
****
SPACE 4
* VALIDATION BYTE BIT DEFINITIONS.
VBWD EQU 13 VALIDATION ERROR IN WORD
VBB1 EQU 12 VALIDATION ERROR IN BYTE 1
VBB2 EQU 11 VALIDATION ERROR IN BYTE 2
VBB3 EQU 10 VALIDATION ERROR IN BYTE 3
VBB4 EQU 7 VALIDATION ERROR IN BYTE 4
VBS1 EQU 6 ELEMENT IN BYTE 1 CANNOT BE SHARED
VBS2 EQU 5 ELEMENT IN BYTE 2 CANNOT BE SHARED
VBS3 EQU 4 ELEMENT IN BYTE 3 CANNOT BE SHARED
VBS4 EQU 3 ELEMENT IN BYTE 4 CANNOT BE SHARED
VBCD EQU 0 CALLER HAS SUPPLIED DATA IN WORD
* VALIDATION BYTE BIT MASKS.
VWDM BITSET VBWD VALIDATION ERROR IN WORD
VB1M BITSET VBB1 VALIDATION ERROR IN BYTE 1
VB2M BITSET VBB2 VALIDATION ERROR IN BYTE 2
VB3M BITSET VBB3 VALIDATION ERROR IN BYTE 3
VB4M BITSET VBB4 VALIDATION ERROR IN BYTE 4
VS1M BITSET VBS1 ELEMENT IN BYTE 1 CANNOT BE SHARED
VS2M BITSET VBS2 ELEMENT IN BYTE 2 CANNOT BE SHARED
VS3M BITSET VBS3 ELEMENT IN BYTE 3 CANNOT BE SHARED
VS4M BITSET VBS4 ELEMENT IN BYTE 4 CANNOT BE SHARED
VCDM BITSET VBCD CALLER HAS SUPPLIED DATA IN WORD
* FUNCTION CHARACTERISTICS BIT DEFINITIONS.
LMEM EQU 0 CALLER WILL LOAD CONTROLLER MEMORY
WRTR EQU 1 CALLER WILL WRITE ON VALIDATED UNIT
NPRE EQU 2 WILL WRITE OUTSIDE PREALLOCATED AREA.
* EQU 4 RESERVED FOR CDC
* EQU 5 RESERVED FOR CDC
RTNU EQU 3 RETURN UNIT TO SYSTEM
NEST EQU 6 UNIT NOT IN EST
SPCL EQU 7 SPECIAL REQUEST FLAG
* FOR *ECS* THIS BIT IS IGNORED IF *NPRE*
* (BIT 2) IS NOT SET.
* 0 = WILL ACCESS ALL OF NORMAL *ECS* IF
* DOWN BIT IS SET IN EST.
* 1 = WILL ACCESS MAINTENANCE MODE HALF OF
* *ECS* IF MAINTENANCE MODE BIT IN THE
* ASSOCIATED MST IS SET.
* FOR *RHF*
* 1 = WILL EITHER LOAD OR DUMP NAD
* CONTROLWARE IF SET IN CONJUNCTION
* WITH BIT 0 AND REQUESTING VALIDATION
* FOR RHF HARDWARE.
BESM EQU 10 A *DEMA* FLAG TO CREATE EM* LOCAL FILE.
* 0 = CVL WILL CREATE LOCAL FILE NAMED EM*.
* 1 = CVL WILL NOT CREATE LOCAL FILE.
* FUNCTION CHARACTERISTICS BIT MASKS.
CMEM BITSET LMEM
WRTM BITSET WRTR
PREM BITSET NPRE
NESM BITSET NEST DEVICE NOT EXPECTED IN EST
SPCM BITSET SPCL BIT MASK FOR SPECIAL FUNCTION BIT 7.
* VALIDATION RESPONSE CODES.
VRGR EQU 0 VALIDATION GRANTED
VRSH EQU 2 VALIDATION GRANTED, EQUIPMENT SHARED
VRNM EQU 4 VALIDATION DENIED, NO MATCH
VRCI EQU 5 VALIDATION DENIED, CRITICAL INFORMATION
VRUS EQU 6 VALIDATION DENIED, EQUIPMENT IN USE
VRNB EQU 7 VALIDATION DENIED, SHARE BYTE NOT SET
VRMS EQU 10 VALIDATION DENIED, IN MAINTENANCE STATE
VRMA EQU 11 VALIDATION DENIED, MA BIT NOT SET IN MST
VRLB EQU 12 VALIDATION DENIED, LOCAL DEVICE CODE BAD
VRRB EQU 13 VALIDATION DENIED, REMOTE DEVICE CODE BAD
VRSB EQU 14 VALIDATION DENIED, SHARE BYTE SET
VRUA EQU 15 VALIDATION DENIED, CANNOT ACCESS NETWORK
VRCH EQU 16 VALIDATION DENIED, NAD CONNECTED TO HOST
VRTC EQU 17 VALIDATION DENIED, NO TCU ENABLES SET
VRDS EQU 33 VALIDATION DENIED, DEVICE STATUS ERROR
VRSI EQU 34 SITUATION INDETERMINATE, NO RESPONSE
VRCS EQU 37 VALIDATION DENIED, CM IN USE
VRCD EQU 40 VALIDATION DENIED, CM NOT DOWNED
VRDW EQU 41 VALIDATION GRANTED, DEVICE LOCALLY DOWN
VRBC EQU 42 VALIDATION DENIED, NO BC LOAD ALLOWED
VRFN EQU 43 VALIDATION DENIED, FILE NOT FOUND
VRUV EQU 44 VALIDATION DENIED, USER VALIDATION DENIED
VRNZ EQU 45 VALIDATION DENIED, NON-ZERO EM FL
VRLT EQU 46 VALIDATION DENIED, LABELLED TAPE PREASSIGN
VREF EQU 47 VALIDATION DENIED, ENTRY FOUND IN EST
VRMN EQU 50 VALIDATION DENIED, MNE/DC INCOMPATIBLE
VRIC EQU 51 VALIDATION DENIED, INCORRECT REQUEST PARAM
VRAO EQU 52 VALIDATION DENIED, ADDRESS OUT OF RANGE
VRIP EQU 53 VALIDATION DENIED, INCORRECT PARAM COMB.
VREN EQU 54 VALIDATION DENIED, ENTRY NOT IN EST
VRIS EQU 55 VALIDATION DENIED, I/O SEQUENCE ERROR
* EQU 56 (RESERVED - DO NOT USE)
* ASSEMBLY CONSTANTS.
CH EQU 0 CHANNEL MODIFICATION CONSTANT
FCV EQU 6001 FWA OF *5CV* OVERLAY
TITLE LOCAL MACRO DEFINITIONS.
VBCD SPACE 4,10
** VBCD - DEFINE VALIDATION BYTE CODES.
*
* ENTRY WORD,BITS
* WORD = PARAMETER WORD CONTAINING NON-VALID ENTRY.
* BITS = BIT NUMBERS DEFINING BYTE IN ERROR.
MACRO VBCD,T,A,B
LOC A*100-ESTV*100+B
T BSS 0
ENDM
FCN SPACE 4,10
** FCN - DEFINE FUNCTION PROCESSOR.
*
* ENTRY NAME,USV
* NAME = NAME OF FUNCTION PROCESSOR.
* USV, IF PRESENT, USER VALIDATION REQUIRED.
.2 SET 0
FCN MACRO A,B
LOC .2
IFC NE,$B$$
CON 1,A
ELSE
CON 0,A
ENDIF
.2 SET .2+1
ENDM
TITLE MAIN PROGRAM
** CVL - MAIN PROGRAM.
ORG PPFW
CVL RJM CRS CHECK RECALL STATUS
ZJP CVL1 IF NOT SET
LDN PPUL GET PP STATUS
CRD CM
LDD CM SET MAXIMUM CHANNEL NUMBER + 1
ERRNZ NCHL-PPUL CODE DEPENDS ON VALUE
RAM GCIA
LDN 0
SBD CM
RAM GCIB
LDD CM+3 SET NUMBER OF CONCURRENT PPS
ERRNZ CPPL-PPUL CODE DEPENDS ON VALUE
LPN 77
RAM GCIC
LDD CP GET USER-S EJT ORDINAL
ADN TFSW
CRD CM
LDD CM
STM EJTO
LDN ESTP READ EST POINTER
CRD CM
LDD CM+2 SET LAST EST ORDINAL + 1
STD LO
LDD CM+3 SET LAST MASS STORAGE ORDINAL + 1
STD LM
LDD IR+3 CHECK FUNCTION
SHN -6+1
STD T1
ADN 1
STD T2
SBN TFCNL
CVL1 PJN PCE0 IF INCORRECT FUNCTION
LDM TFCN,T1
ZJN CVL2 IF ENGINEERING ACCESS NOT REQUIRED
RJM CUA CHECK USER ACCESS
LDD CM
ZJN CVL2 IF ENGINEERING ACCESS
LDC VRUV*100+1 SET USER VALIDATION DENIED/COMPLETE BIT
STM RSCD
RJM CKA GET PARAMETER BLOCK ADDRESS
CWM TPMB,ON
UJN DPP DROP PP
CVL2 LDM TFCN,T2 SET PROCESSOR
STD T1
RJM 0,T1 PROCESS FUNCTION
* UJN DPP DROP PP
DPP SPACE 4,10
** DPP - DROP PP.
DPP MONITOR DPPM DROP PP
LJM PPR EXIT TO PP RESIDENT
PCE SPACE 4,10
** PCE - PROCESS CALL ERROR.
PCE SUBR ENTRY/EXIT
PCE0 LDC MSGA * INCORRECT CEVAL REQUEST PARAMETER(S).*
PCE1 RJM DFM
PCE2 LDC MSGB * CVL CALL ERROR.*
* UJN FEP ABORT JOB
* FEP - FATAL ERROR PROCESSOR.
FEP RJM DFM
MONITOR ABTM ABORT JOB
LJM PPR EXIT TO PP RESIDENT
* ERROR MESSAGES ISSUED ON *CVL* ABORT.
MSGA DATA C* INCORRECT CEVAL REQUEST PARAMETER(S).*
MSGB DATA C* CVL CALL ERROR.*
MSGC DATA C* ADDRESS OUT OF RANGE.*
MSGD DATA C* REQUESTED CHANNEL DOES NOT EXIST.*
TFCN SPACE 4,10
** TFCN - FUNCTION CODE TABLE.
*
* ENTRY ONE WORD INDEXED BY FUNCTION PROCESSOR.
*
*T, 12/ ADDR
* ADDR = ADDRESS OF FUNCTION PROCESSOR.
TFCN BSS 0
FCN PCE (UNDEFINED)
FCN VCE,E VALIDATE CUSTOMER ENGINEER
FCN RMC READ MACHINE CHARACTERISTICS
FCN CEA,E CHECK ENGINEERING ACCESS
FCN RSB READ SYSTEM ATTRIBUTE BLOCK
FCN MEM,E RETURN EXCHANGE PACKAGE RA, RAE, FL, FLE.
LOC *O
TFCNL EQU *-TFCN LENGTH OF FUNCTION CODE TABLE.
MEMORY SPACE 4,10
** MEMORY LOCATIONS.
EJTO CON 0 EJT ORDINAL
TPMB TITLE PARAMETER BLOCK TABLE.
*** PARAMETER BLOCK DEFINITIONS.
TPMB BSS 0
RAMM BSS 2 RETURNED RA FOR CEMEM MACRO
FLMM BSS 2 FL FOR CEMEM MACRO
RSCD BSS 1 RESPONSE CODE
RAEM BSS 2 RAE FOR CEMEM MACRO
ESTV EQU RAEM EST ORDINAL VALIDATION BYTE
FLEM BSS 2 FLE FOR CEMEM MACRO
ESTO BSS 1 EST ORDINAL
CHAN BSS 1 CHANNEL VALIDATION BYTE
BSS 1 RESERVED
BSS 1 RESERVED
CHS2 BSS 1 SECOND CHANNEL BYTE
CHS1 BSS 1 FIRST CHANNEL BYTE
EQPV BSS 1 EQUIPMENT VALIDATION BYTE
BSS 2 RESERVED
LDVC BSS 1 LOCAL NAD DEVICE CODE
EQPN BSS 1 EQUIPMENT (CONTROLLER) NUMBER
UNIT BSS 1 UNIT NUMBER VALIDATION BYTE
BSS 3 RESERVED
UNUM BSS 1 UNIT NUMBER
DCMV BSS 1 DEVICE CODE AND MNEMONIC VALIDATION BYTE
BSS 2 RESERVED
DEVM BSS 1 DEVICE MNEMONIC
DEVC BSS 1 DEVICE CODE
BSS 4 RESERVED
FNCH BSS 1 FUNCTION CHARACTERISTICS
PSNV BSS 1 PACK SN VALIDATION BYTE
PKSN BSS 4 PACK SERIAL NUMBER
RAC1 EQU PKSN+2 RHF ACCESS CODE (PART 1)
RAC2 EQU PKSN+3 RHF ACCESS CODE (PART 2)
TCUV BSS 1 TCU ENABLES VALIDATION BYTE
BSS 3 RESERVED
TCUE BSS 1 BUFFER SIZE/TCU ENABLES
LTCV BSS 1 TCU ADDRESS VALIDATION BYTE
BSS 2 RESERVED
RDVC BSS 1 REMOTE NAD DEVICE CODE
LTCA BSS 1 LOGICAL TCU ADDRESS
TPMBL EQU *-TPMB PARAMETER BLOCK LENGTH
*** DETAILED PARAMETER BLOCK DEFINITIONS ARE AS FOLLOWS -
*
*T ADDR+0 48/ ,6/ RC,5/ ,1/C
*T,ADDR+1 5/ VB,6/ ,1/X,36/ ,12/ ESTO
*T,ADDR+2 5/ VB,4/ S,2/ ,1/X,12/ ,12/ ,12/ CH2,12/ CH1
*T,ADDR+3 5/ VB,4/ S,2/ ,1/X,36/ ,12/ EQPN
*T,ADDR+3 5/ VB,4/ S,2/ ,1/ X,24/ ,12/ LDVC,12/ EQPN (RHF)
*T,ADDR+4 5/ VB,4/ S,2/ ,1/X,36/ ,12/ UN
*T,ADDR+5 5/ VB,4/ S,2/ ,1/ X,24/ ,12/ DEVM,12/ DEVC
*T,ADDR+6 48/ ,12/ FC
*T,ADDR+7 5/ VB,6/ ,1/ X,48/ PACK SN
*T,ADDR+7 5/ VB,6/ ,1/X,24/ RAE,24/ FLE (FORMAT WHEN ECS DIAGNOSTICS)
*T,ADDR+10 5/ VB,6/ ,1/X,24/ RAE,24/ FLE (FORMAT FOR DB DISK WHEN EM*)
*T,ADDR+7 5/ VB,39/ ,16/ RHAC (RHF DIAGNOSTICS ONLY)
*T,ADDR+10 5/ VB,4/ S,43/ ,4/ BFSZ,4/ TCUE
*T,ADDR+11 5/ VB,4/ S,27/ ,12/ RDVC,12/ LTCA
*
* WHERE -
* RC (11-6) = RESPONSE CODE (SET BY *CVL*).
* 0 = VALIDATION GRANTED.
* 2 = VALIDATION GRANTED, ELEMENT MIGHT BE
* SHARED WITH ANOTHER MAINFRAME.
* 4 = VALIDATION DENIED, ELEMENT NOT IN EST.
* 5 = VALIDATION DENIED, CRITICAL
* INFORMATION MAY BE DESTROYED.
* 6 = VALIDATION DENIED, ELEMENT IN USE.
* 7 = VALIDATION DENIED, SHARE BYTE NOT SET.
* 10 = VALIDATION DENIED, MAINTENANCE STATE.
* 11 = VALIDATION DENIED, MA NOT SET IN MST
* 12 = VALIDATION DENIED, LOCAL DEVICE
* CODE BAD.
* 13 = VALIDATION DENIED, REMOTE DEVICE
* CODE BAD.
* 14 = VALIDATION DENIED, SHARE BYTE SET.
* 15 = VALIDATION DENIED, CANNOT ACCESS
* NETWORK.
* 16 = VALIDATION DENIED, NAD CONNECTED
* TO HOST.
* 17 = VALIDATION DENIED, NO TCU
* ENABLES SET.
* 33 = VALIDATION DENIED, DEVICE STATUS
* ERROR.
* 34 = SITUATION INDETERMINATE, NO
* RESPONSE.
* 37 = VALIDATION DENIED, CM IN USE.
* 40 = VALIDATION DENIED, CM NOT DOWNED.
* 41 = VALIDATION GRANTED, VERIFY
* INDEPENDENT SHARED DEVICE DOWN ON ALL
* MAINFRAMES.
* 42 = VALIDATION DENIED, NO BC LOAD ON
* PRE-ASSIGNMENT.
* 43 = VALIDATION DENIED, FILE NOT FOUND.
* 44 = VALIDATION DENIED, USER VALIDATION
* DENIED.
* 45 = VALIDATION DENIED, NON-ZERO EXTENDED
* MEMORY FL.
* 46 = VALIDATION DENIED, LABELLED TAPE WAS
* PRE-ASSIGNED.
* 47 = VALIDATION DENIED, ENTRY FOUND IN EST.
* 50 = VALIDATION DENIED, MNEMONIC/DEVICE
* CODE INCOMPATIBLE.
* 51 = VALIDATION DENIED, INCORRECT CEVAL
* REQUEST PARAMETER(S).
* 52 = VALIDATION DENIED, ADDRESS OUT OF
* RANGE.
* 53 = VALIDATION DENIED, INCORRECT CEVAL
* PARAMETER COMBINATION.
* 54 = VALIDATION DENIED, ENTRY NOT IN EST.
* 55 = VALIDATION DENIED, CEVAL I/O SEQUENCE
* ERROR.
* 56 = (RESERVED - DO NOT USE)
* C (0) = COMPLETE BIT (SET BY *CVL*).
* VB (59-55) = VALIDATION ERROR BITS (SET BY *CVL*).
* BIT 59 SET = ERROR IN WORD.
* BIT 58 SET = ERROR IN BYTE 1.
* BIT 57 SET = ERROR IN BYTE 2.
* BIT 56 SET = ERROR IN BYTE 3.
* BIT 55 SET = ERROR IN BYTE 4.
* X (48) = DATA IN WORD (SUPPLIED BY CALLER - IF NOT
* SET, *CVL* SUPPLIES MISSING FIELD).
* ESTO (11-0) = EST ORDINAL OF ELEMENT.
* S = SHARE BITS - IF SET, REQUESTS EXCLUSIVE ACCESS.
* BIT 54 = FOR ELEMENT IN BYTE 1.
* BIT 53 = FOR ELEMENT IN BYTE 2.
* BIT 52 = FOR ELEMENT IN BYTE 3.
* BIT 51 = FOR ELEMENT IN BYTE 4.
* CHX = CHANNEL NUMBERS (4/0,1/P,1/0,1/C,5/N).
* P = PORT NUMBER FOR CONCURRENT CHANNEL (1 = B).
* C = CONCURRENT CHANNEL FLAG.
* N = CHANNEL NUMBER.
* LDVC (23-12) = LOCAL NAD DEVICE CODE (RHF ONLY)
* EQPN (11-0) = EQUIPMENT (CONTROLLER) NUMBER.
* UN (11-0) = UNIT NUMBER.
* DEVM (23-12) = DEVICE MNEMONIC.
* DEVC (11-0) = DEVICE CODE (SEE TABLE *TDVC*).
* FC (11-0) = FUNCTION BITS.
* BIT 0 = LOAD CONTROLLER MEMORY.
* BIT 1 = WILL WRITE ON UNIT.
* BIT 2 = WILL USE NON - PREALLOCATED AREA.
* BIT 3 = RESERVED.
* BIT 4 = UNUSED (POSSIBLE PHASE II CEVAL)
* BIT 5 = UNUSED (POSSIBLE PHASE II CEVAL)
* BIT 6 = ELEMENT NOT IN EST.
* BIT 7 = SPECIAL REQUEST FLAG
* FOR *ECS* THIS BIT IS IGNORED IF *NPRE*
* (BIT 2) IS NOT SET.
* 0 = WILL ACCESS ALL OF NORMAL *ECS* IF
* DOWN BIT IS SET IN EST.
* 1 = WILL ACCESS MAINTENANCE MODE HALF OF
* *ECS* IF MAINTENANCE MODE BIT IN THE
* ASSOCIATED MST IS SET.
* FOR *RHF*
* 1 = WILL EITHER LOAD OR DUMP NAD
* CONTROLWARE IF SET IN CONJUNCTION
* WITH BIT 0 AND REQUESTING VALIDATION
* FOR RHF HARDWARE.
* BIT 8 = DEMA (DB DISK) REQUEST FLAG TO CVL
* FOR CREATION OF EM* LOCAL FILE.
* 0 = CVL WILL CREATE LOCAL FILE NAMED EM*.
* 1 = CVL WILL NOT CREATE LOCAL FILE.
* BITS (11-9) = UNUSED.
* PACK SN = PACK SERIAL NUMBER IN BCD CODE.
* RAE/FLE = EXCHANGE PACKAGE RAE AND FLE (ECS ONLY)
* RAE/FLE = EXCHANGE PACKAGE RAE/FLE (DEMA/ESM ONLY)
* RHAC = ACCESS CODE (RHF)
* BFSZ = BUFFER SIZE (RHF)
* TCUE = TCU ENABLES (RHF)
* RDVC = REMOTE NAD DEVICE CODE (RHF)
* LTCA = LOGICAL TCU ADDRESS (RHF)
COMPDVC SPACE 4,10
*** *CEVAL* DEVICE CODE DEFINITIONS.
QUAL$ EQU 1 DO NOT QUALIFY COMMON DECKS
LIST X
*CALL COMPDVC
LIST *
VCE TITLE RESIDENT ROUTINES.
*** FUNCTION 1.
* VCE - VALIDATE CUSTOMER ENGINEER.
*
* ENTRY
*T IR 18/ *CVL*,1/1,5/ CP ,12/ 0,6/ 01,18/ ADDR
*
* CP CONTROL POINT.
* ADDR ADDRESS OF THE PARAMETER BLOCK (DEFINED PREVIOUSLY).
VCE SUBR ENTRY/EXIT
* VERIFY USER VALIDATIONS.
LDD CP GET ON-LINE DIAGNOSTICS VALIDATION
ADK JSCW
CRD CM
LDD CM
SHN 0-12
LPN 1
RAM VCEB
RJM RPB READ PARAMETER BLOCK
MJN VCE1 IF NOT RHF VALIDATION CALL
RJM PRS
PJN VCE3.1 IF NO FURTHER VALIDATION REQUIRED
VCE1 LDN **
VCEB EQU *-1 (*COLD* VALIDATION PRIVILEGES)
ZJN VCE2 IF NOT VALIDATED
* VERIFY EQUIPMENT SELECTION.
RJM SMP SET MATCH PARAMETERS
PJN VCE3 IF PARAMETERS OK
LDD VH
RJM SVB SET VALIDATION BYTE
LDN VRNM&VRUV SET NO MATCH RESPONSE
VCE2 LMN VRUV USER VALIDATION DENIED
UJN VCE3.1 RETURN RESPONSE CODE
VCE3 ZJN VCE4 IF A MATCH WAS FOUND
LDD TI CHECK DEVICE CODE
SBN LRMS LAST RMS POINTER
MJP VCE15 IF MASS STORAGE
SBK LMUX-LRMS CHECK FOR ECS
MJN VCE5 IF NOT ECS
SBK LECS-LMUX
PJN VCE5 IF NOT ECS
RJM TEM TEST FOR EXTENDED MEMORY PRESENT
VCE3.1 LJM VCE16 RETURN RESPONSE CODE
VCE4 LDD ES
SHN 21-13
MJN VCE9 IF MASS STORAGE DEVICE
* VERIFY NON-MASS STORAGE DEVICES.
VCEA RJM UUS PROCESS UNIT RECORD UNIT SHARE BYTE
* UJN VCE5 (TAPE PREASSIGNMENT)
NJN VCE8 IF UNIT VALIDATION DENIED
VCE5 RJM UES PROCESS UNIT RECORD EQUIPMENT SHARE BYTE
NJN VCE8 IF EQUIPMENT VALIDATION DENIED
RJM UCS PROCESS UNIT RECORD CHANNEL SHARE BYTE
NJN VCE8 IF CHANNEL VALIDATION DENIED
LDM DEVM CHECK FOR MAGNETIC TAPE EQUIPMENT
RJM CMT
ZJN VCE7 IF MAGNETIC TAPE
RJM RHP CHECK FOR RHF DEVICE
PJN VCE10 IF RHF DEVICE
LDN VRGR&VRSH SET VALIDATION GRANTED RESPONSE
VCE7 LMN VRSH SET EQUIPMENT SHARED RESPONSE
VCE8 UJN VCE10 RETURN RESPONSE CODE
* VERIFY MASS STORAGE EQUIPMENT.
VCE9 LDD TI INDEX INTO DEVICE CODE TABLE (TDVC)
SBK LMUX
MJN VCE14 IF NOT EXTENDED MEMORY
SBK LECS-LMUX
PJN VCE14 IF NOT EXTENDED MEMORY
EXECUTE 3CV
RJM /3CV/ECS
VCE10 UJN VCE16 PROCESS APPROPRIATE VALIDATION CODE
VCE14 RJM AUS PROCESS ALLOCATABLE UNIT SHARE BYTE
NJN VCE16 IF UNIT VALIDATION DENIED
VCE15 RJM AES PROCESS ALLOCATABLE EQUIPMENT SHARE BYTE
NJN VCE16 IF EQUIPMENT VALIDATION DENIED
RJM ACS PROCESS ALLOCATABLE CHANNEL SHARE BYTE
NJN VCE16 IF CHANNEL VALIDATION DENIED
EXECUTE 3CV
RJM /3CV/PSN PROCESS PACK SERIAL NUMBER
STD SB SET RESPONSE CODE
RJM /3CV/ESM CHECK IF DB EQUIP AND FOR LFN=EM* CREATION
UJN VCE17 CONTINUE VALIDATION PROCESSING
* COMPLETE REQUEST (NORMAL AND ERROR EXIT).
VCE16 STD SB
VCE17 RJM CAE CLEAR PREVIOUSLY ASSIGNED EQUIPMENT
LDD SB SET UP RESPONSE CODE
SHN 6
ADN 1 ADD COMPLETE BIT
STM RSCD
RJM CKA GET PARAMETER BLOCK ADDRESS
CWM TPMB,BS RETURN PARAMETER BLOCK TO USER
LJM VCEX EXIT
ACS SPACE 4,15
** ACS - PROCESS ALLOCATABLE EQUIPMENT CHANNEL SHARE BITS.
*
* ENTRY (ACSA) = NUMBER OF EST ENTRIES CONTAINING CHANNEL.
*
* EXIT (A) = 0, IF VALIDATION GRANTED.
* (A) = RESPONSE CODE, IF VALIDATION DENIED (CHANNEL
* VALIDATION BYTE SET).
*
* USES CI, DA.
*
* CALLS ACH, FNE, GCI, SCH, SCV.
ACS8 LDM CHS2,CI
ACS9 STM CHS1 SET CHANNEL TO BE USED
RJM GCI
LDD T1
ZJN ACSX IF CHANNEL UNASSIGNED
LDM CHAN
SHN 21-VBCD
MJN ACS10 IF CHANNEL SUPPLIED BY CALLER
SOD CI
MJN ACS10 IF ALL CHANNELS DOWN
LDM CHS2,CI
NJN ACS9 IF ANOTHER CHANNEL TO CHECK
ACS10 RJM SCV INDICATE CHANNEL(S) CANNOT BE SHARED
ACS SUBR ENTRY/EXIT
LDD TI MAP ACCESS LEVEL 10 TO LEVEL 20 FOR RMS
SBN LRMS
PJN ACS0 IF NOT RMS EQUIPMENT
LDM EQPV
SHN -VBS4
ZJN ACS0 IF EQUIPMENT TO BE SHARED
RJM CDD CHECK FOR ISMD DEVICE
NJN ACS0.1 IF NOT ISMD TYPE RMS DEVICE
ACS0 LDN 1 INITIALIZE CHANNEL INDEX
STD CI
LDM CHAN
SHN -VBS4
ZJP ACS8 IF CHANNEL IS TO BE SHARED
ACS0.1 LDM CHS2,CI
ACS1 STM CHS1
RJM GCI
SCN 40 IGNORE THE CHANNEL DOWN BIT
ADD T1
ZJN ACS2 IF CHANNEL UNASSIGNED
ACS1.1 SOD CI
MJN ACS1.2 IF ALL CHANNELS HAVE BEEN CHECKED
LDM CHS2,CI
NJN ACS1 IF ANOTHER CHANNEL TO TEST
ACS1.2 LJM ACS10 INDICATE ALL CHANNELS ARE UP
ACS2 LDN NOPE-1
STD DA
ACS3 RJM FNE FIND NEXT NON-EMPTY EST
ZJN ACS4 IF CHANNEL NOT IN EST
RJM SCH
NJN ACS3 IF NO CHANNEL MATCH
LDD CS
ZJN ACS1.1 IF CHANNEL NOT DOWN
ACS4 RJM ACH
ZJN ACS1.1 IF CHANNEL NOT ASSIGNED TO DIAGNOSTIC
LDN 0
LJM ACSX EXIT
ACH SPACE 4,15
** ACH - ASSIGN CHANNEL TO DIAGNOSTICS.
*
* *ACH* WILL REQUEST AN UNCONFIGURED CHANNEL TO BE DOWNED
* BEFORE ASSIGNMENT IF IT IS NOT ALREADY DOWN.
*
* ENTRY (CHS1) = CHANNEL TO BE REQUESTED.
* (CS) = CHANNEL BYTE FROM CHANNEL TABLE.
*
* EXIT (A) .NE. 0 IF CHANNEL ASSIGNED.
* (A) = 0 IF CHANNEL NOT ASSIGNED.
*
* USES CM - CM+4.
*
* CALLS CEC.
*
* MACROS MONITOR.
ACH SUBR ENTRY/EXIT
LDD CS
NJN ACH1 IF CHANNEL ALREADY DOWN
STD CM+1
STD CM+4 CLEAR MUX FLAG
LDN DNCS DOWN UNCONFIGURED CHANNEL
STD CM+2
LDM CHS1 SET REQUESTED CHANNEL
LPN 77
STD CM+3
MONITOR SEQM
ACH1 LDM CHS1
LPN 77
STD CM+3
LDN ICNS SET CHANNEL ASSIGNMENT SUBFUNCTION
STD CM+2
LDD IR+1 SET CONTROL POINT NUMBER
LPN 37
STD CM+1
MONITOR SEQM
LDD CM+1
ZJN ACHX IF CHANNEL NOT ASSIGNED
RJM CEC INCREMENT EQUIPMENT COUNTER
UJN ACHX EXIT
AES SPACE 4,15
** AES - PROCESS ALLOCATABLE EQUIPMENT SHARE BYTE.
*
* EXIT (A) = 0, IF VALIDATION GRANTED.
* (A) = RESPONSE CODE, IF VALIDATION DENIED ( EQUIPMENT
* VALIDATION BYTE SET).
* (ACSA) = NUMBER OF EST ENTRIES CONTAINING CHANNEL.
*
* USES CI, DA, T1.
*
* CALLS CDD, FCM.
AES3 LDM FNCH
SHN 21-LMEM
PJN AES4 IF NOT CHANGING CONTROLLER MEMORY
LDM CHAN
SHN -VBS4
ZJN AES6 IF CHANNEL SHARE BIT NOT SET EITHER
AES4 LDD AE+4
ZJN AESX IF CONTROL MODULE UNASSIGNED
AES5 LDN VRCS&VRNB CONTROL MODULE IN USE
AES6 LMN VRNB SET RESPONSE
STD T1
LDC VWDM+VB4M
RAM EQPV
LDD T1
AES SUBR ENTRY/EXIT
RJM CDD CHECK FOR ISMD DEVICE
ZJN AES1 IF ISMD TYPE RMS DEVICE
LDN 0
UJN AESX CONTROLLER NOT IN EST
AES1 RJM FCM FIND CONTROL MODULE
ZJN AESX IF CONTROL MODULE NOT IN EST
STM AESA
LDM EQPV
SHN 21-VBS4
PJP AES3 IF CONTROL MODULE WILL BE SHARED
* IF THE CONTROL MODULE IS DOWNED, THEN ALL DRIVES ON THAT
* CONTROL MODULE ARE GUARANTEED TO BE DOWNED AND GLOBALLY
* UNLOADED.
LDD CM
LPN 3
LMN 3
ZJN AES2 IF CONTROL MODULE IS DOWNED
LDN VRCD&VRNB CONTROL MODULE NOT DOWNED
LJM AES6 ISSUE MESSAGE
AES2 LDM EJTO
LMD AE+4
ZJN AESX IF ALREADY ASSIGNED TO THIS DIAGNOSTIC
LDK RDES REQUEST DOWNED EQUIPMENT
STD CM+2
LDM AESA
STD CM+1
MONITOR REQM
LDD CM+1
ZJP AES5 IF ASSIGNED TO ANOTHER DIAGNOSTIC
LDN 0
LJM AESX EXIT WITH CONTROL MODULE ASSIGNED
AESA CON 0 CONTROL MODULE EST ORDINAL
AUS SPACE 4,15
** AUS - PROCESS ALLOCATABLE UNIT SHARE BIT.
*
* ENTRY (ESTO) = EST ORDINAL OF UNIT.
* (ES - ES+4) = FIRST WORD OF EST ENTRY FOR UNIT.
*
* EXIT (A) = 0, IF VALIDATION GRANTED.
* (SB) = VRDW, IF VALIDATION GRANTED (OPERATOR SHOULD
* ENSURE DEVICE IS NOT BEING USED BY OTHER
* MAINFRAMES).
* (A) = RESPONSE CODE, IF VALIDATION DENIED (UNIT
* VALIDATION BYTE SET).
*
* USES T1, AE - AE+4, CM - CM+4.
*
* MACROS MONITOR, SFA.
AUS4 LDM FNCH GET FUNCTION ATTRIBUTES
LPN WRTM+PREM
LMN WRTM+PREM
ZJN AUS6 IF WRITING OUT OF PRE-ALLOCATED AREA
LDD AE+4
ZJN AUSX IF UNIT UNASSIGNED
AUS5 LDN VRUS&VRCI EQUIPMENT IN USE
AUS6 LMN VRCI SET RESPONSE
STD T1
LDC VWDM+VB4M
RAM UNIT SET UNIT VALIDATION BYTE
LDD T1 RESTORE RESPONSE
AUS SUBR ENTRY/EXIT
SFA EST,ESTO READ EQUIPMENT ASSIGNMENT
ADK EQAE
CRD AE
LDM UNIT
SHN 21-VBS4 ISOLATE SHARE BIT
PJN AUS4 IF UNIT WILL BE SHARED
LDD ES
SHN 21-1
AUS1 PJN AUS5 IF UNIT NOT OFF
SHN 21-0-21+1
PJN AUS5 IF UNIT NOT DOWN
LDM EJTO EJT ORDINAL
LMD AE+4
AUS2 ZJN AUSX IF ASSIGNED TO THIS JOB PREVIOUSLY
LDK RDES REQUEST DOWNED EQUIPMENT
STD CM+2
LDM ESTO EST ORDINAL
STD CM+1
MONITOR REQM
LDD CM+1
ZJN AUS1 IF ASSIGNED TO ANOTHER DIAGNOSTIC
LDD ES
SHN 21-11
PJN AUS3 IF NOT A SHARED DEVICE
LDN VRDW DEVICE IS LOCALLY DOWN
STD SB
AUS3 LDN 0 VALIDATION GRANTED
UJN AUS2 RETURN
CAE SPACE 4,15
** CAE - CLEAR ASSIGNED EQUIPMENT.
*
* ENTRY (SB) = VALIDATION RESPONSE CODE.
*
* EXIT IF CALLER IS RETURNING EQUIPMENT OR IF VALIDATION
* HAS BEEN DENIED, THEN ALL EQUIPMENT PREVIOUSLY
* ASSIGNED TO DIAGNOSTIC HAS BEEN RELEASED AND THE
* EQUIPMENT ASSIGNED COUNTER HAS BEEN DECREMENTED
* APPROPRIATELY.
*
* USES CI, AE - AE+4, CM - CM+4, ES - ES+4.
*
* CALLS CEC, CMT, GCI, MCH, SFN.
*
* MACROS MONITOR, SFA.
CAE SUBR ENTRY/EXIT
LDM FNCH
SHN 21-RTNU
MJN CAE1 IF CALLER RETURNING EQUIPMENT
LDD SB
ZJN CAEX IF VALIDATION GRANTED
LMN VRSH
ZJN CAEX IF VALIDATION GRANTED
LMN VRDW&VRSH
ZJN CAEX IF VALIDATION GRANTED
CAE1 LDD CP READ EQUIPMENT ASSIGNED COUNTER
ADN EACW
CRD CM
LDD CM
CAE1.1 ZJN CAEX IF NO EQUIPMENT ASSIGNED
LDM ESTO CHECK EST ORDINAL
SBD LO
PJN CAE2 IF NOT IN EST
ADD LO READ EST ENTRY
SFA EST
ADK EQDE
CRD ES
ADK EQAE-EQDE READ EQUIPMENT ASSIGNMENT
CRD AE
LDD AE+4
LMM EJTO
NJN CAE2 IF NOT ASSIGNED TO THIS JOB
LDD ES+3 CHECK FOR MAGNETIC TAPE EQUIPMENT
RJM CMT
NJN CAE1.3 IF NOT TAPE
* LDN 0 FNT/FST UPDATE NOT REQUIRED
RJM SFN SEARCH FNT FOR FILE
ZJN CAE1.1 IF TAPE WAS PREASSIGNED
CAE1.3 LDM ESTO RETURN EQUIPMENT
STD CM+1
MONITOR DEQM
CAE2 RJM CDD CHECK FOR ISMD DEVICE
NJN CAE2.1 IF NOT ISMD TYPE RMS DEVICE
RJM FCM
ZJN CAE2.1 IF CONTROL MODULE NOT IN EST
STM CM+1
LDM AE+4
ZJN CAE2.1 IF UNASSIGNED
LMM EJTO
NJN CAE2.1 IF ASSIGNED TO ANOTHER DIAGNOSTIC
MONITOR DEQM
CAE2.1 LDM CHAN
SHN 21-VBCD
PJN CAE3 IF CHANNEL NOT SUPPLIED BY CALLER
LDN 0 INITIALIZE LAST CHANNEL INDEX
STD CI
LDM CHS1
UJN CAE4 CHECK FOR CHANNEL ASSIGNMENT
CAE3 RJM MCH GET CHANNELS
LDM CHS2,CI
CAE4 RJM GCI
LDM EJTO
LMD T1
NJN CAE6 IF NOT ASSIGNED TO THIS JOB
LDD IR+1 CP NUMBER
LPN 37
STD CM+1
LDN CCNS RELEASE CHANNEL ASSIGNMENT SUBFUNCTION
STD CM+2
LDM CHS1 CHANNEL NUMBER
LPN 77
STD CM+3
MONITOR SEQM
* LDN 0
CAEA UJN CAE4.1 DECREMENT EQUIPMENT ASSIGNED COUNTER
* STD CM+4 (LOADING NAD CONTROLWARE ONLY)
LDM CHS1 CHANNEL NUMBER
STD CM+3
LDN UPCS UP CHANNEL SUBFUNCTION
STD CM+2
LDM ESTO EST ORDINAL
STD CM+1
MONITOR SEQM
* LDN 0
CAE4.1 RJM CEC DECREMENT EQUIPMENT ASSIGNED COUNTER
CAE5 LJM CAEX EXIT
CAE6 SOD CI
MJN CAE5 IF ALL CHANNELS CHECKED
LDM CHS2,CI
ZJN CAE5 IF ALL CHANNELS CHECKED
STM CHS1
LJM CAE4 TEST ANOTHER CHANNEL
CDD SPACE 4,10
** CDD - CHECK FOR ISMD DEVICE.
*
* ENTRY (TI) = INDEX INTO *COMPDVT* TABLE.
*
* EXIT (A) = 0, IF ISMD TYPE DEVICE.
CDD1 LCN 0 SET NOT AN ISMD DEVICE
CDD SUBR ENTRY/EXIT
LDD TI
SBN FISM
MJN CDDX IF NOT ISMD DEVICE
SBN LISM-FISM
PJN CDD1 IF NOT ISMD DEVICE
LDN 0
UJN CDDX RETURN
CEC SPACE 4,10
** CEC - CHANGE VALUE IN EQUIPMENT ASSIGNED COUNTER.
*
* ENTRY (A) = 0 IF COUNTER IS TO BE DECREMENTED.
* (A) .NE. 0 IF COUNTER IS TO BE INCREMENTED.
*
* EXIT COUNTER INCREMENTED/DECREMENTED APPROPRIATELY.
*
* USES T2, T3, CM - CM+4.
CEC SUBR ENTRY/EXIT
STD T3
LDD CP READ EQUIPMENT ASSIGNED COUNTER
ADN EACW
STD T2
CRD CM
LDD T3
ZJN CEC1 IF DECREMENTING COUNTER
AOD CM
UJN CEC2 UPDATE COUNTER IN CP AREA
CEC1 SOD CM
CEC2 LDD T2
CWD CM
UJN CECX EXIT
CKA SPACE 4,10
** CKA - CHECK ADDRESS.
*
* ENTRY (IR+3 - IR+4) = RELATIVE ADDRESS.
* (BS) = PARAMETER BLOCK WORD COUNT.
*
* EXIT (A) = ABSOLUTE ADDRESS.
*
* CALLS PCE.
CKA2 LDD IR+3 LOAD ABSOLUTE ADDRESS
LPN 77
SHN 6
ADD RA
SHN 6
ADD IR+4
CKA SUBR ENTRY/EXIT
LDD IR+3 RELATIVE ADDRESS
LPN 77
SHN 14
LMD IR+4
SBN 2
MJN CKA1 IF OUT OF RANGE
ADN 2
ADD BS ADD BLOCK WORD COUNT
SHN -6
SBD FL
MJN CKA2 IF IN RANGE
CKA1 LDC MSGC * ADDRESS OUT OF RANGE.*
LJM PCE1 * CVL CALL ERROR.*
CMT SPACE 4,10
** CMT - CHECK FOR MAGNETIC TAPE EQUIPMENT.
*
* ENTRY (A) = DEVICE MNEMONIC.
*
* EXIT (A) = 0, IF MAGNETIC TAPE UNIT.
CMT SUBR ENTRY/EXIT
LMC 2RMT
ZJN CMTX IF *MT*
LMC 2RNT&2RMT
ZJN CMTX IF *NT*
LMC 2RCT&2RNT
ZJN CMTX IF *CT*
LMC 2RAT&2RCT
UJN CMTX (A) = 0 IF *AT*
FCH SPACE 4,15
** FCH - FETCH CHANNEL(S) FROM NEXT NON-RMS EST ENTRY.
*
* ENTRY (DA) = EST ORDINAL - 1 OF NEXT EST ENTRY TO CHECK.
* (LO) = LAST EST ENTRY IN TABLE + 1.
*
* EXIT (A) = NONZERO, IF A NON-RMS ENTRY FOUND.
* = 0, IF NO MORE NON-RMS ENTRIES IN TABLE.
* (DA) = EST ORDINAL OF FOUND ENTRY.
* (AE - AE+4) = *EQAE* WORD OF EST ENTRY.
* (CM - CM+4) = *EQDE* WORD OF EST ENTRY.
*
* CALLS FNE.
FCH SUBR ENTRY/EXIT
FCH1 RJM FNE FIND NEXT EST ENTRY ON CHANNEL
ZJN FCHX IF NO MORE EST ENTRIES IN TABLE
LDD CM
SHN 21-13
MJN FCH1 IF RMS ENTRY
LDN 1
UJN FCHX EXIT
FCM SPACE 4,20
** FCM - FIND CONTROL MODULE.
*
* *FCM* SEARCHES THE EST FOR A CONTROL MODULE EST ENTRY WHOSE
* EQUIPMENT (CONTROL MODULE) NUMBER MATCHES THE UPPER OCTAL
* DIGIT OF *UNUM*. (THE PHYSICAL UNIT NUMBER *UNUM* CONSISTS OF
* CONTROL MODULE NUMBER * 10B + DRIVE NUMBER.)
*
* ENTRY (LO) = LAST EST ORDINAL + 1.
*
* EXIT (A) = CONTROL MODULE EST ORDINAL, IF FOUND.
* = 0, IF CONTROL MODULE NOT IN EST.
* (AE - AE+4) = *EQAE* WORD OF EST ENTRY.
* (CM - CM+4) = *EQDE* WORD OF EST ENTRY.
*
* USES DA, AE - AE+4, CM - CM+4.
*
* MACROS SFA.
FCM SUBR ENTRY/EXIT
LDN NOPE-1
STD DA
FCM1 AOD DA CHECK NEXT EST ENTRY
LMD LO
ZJN FCMX IF CONTROL MODULE NOT IN EST
SFA EST,DA GET EST ENTRY
ADK EQDE
CRD CM
ADK EQAE-EQDE GET EQUIPMENT ASSIGNMENT
CRD AE
LDD CM+3 CHECK FOR A CONTROL MODULE
LMC 2RCM
NJN FCM1 IF NOT A CONTROL MODULE
LDD CM+4 CHECK IF THE RIGHT EQUIPMENT (CONTROLLER)
SHN -6
LMM UNUM
SCN 7
NJN FCM1 IF NOT THE RIGHT EQUIPMENT NUMBER
LDD DA
LJM FCMX EXIT
FNE SPACE 4,10
** FNE - FIND NEXT EST ENTRY.
*
* *FNE* FINDS THE NEXT NON-EMPTY EST ENTRY AND EXTRACTS
* ITS CHANNEL NUMBERS.
*
* ENTRY (DA) = EST ORDINAL - 1 OF NEXT EST ENTRY TO CHECK.
* (LO) = LAST EST ENTRY IN TABLE + 1.
*
* EXIT (A) = NONZERO, IF AN EST ENTRY FOUND.
* 0, IF NO MORE ENTRIES IN TABLE.
* (DA) = EST ORDINAL OF FOUND ENTRY.
* (AE - AE+4) = *EQAE* WORD OF EST ENTRY.
* (CM - CM+4) = *EQDE* WORD OF EST ENTRY.
*
* USES CE, DA, AE - AE+4, CM - CM+4.
*
* CALLS GCH.
*
* MACROS SFA.
FNE SUBR ENTRY/EXIT
FNE1 AOD DA
LMD LO
ZJN FNEX IF NO MORE EST ENTRIES TO CHECK
SFA EST,DA GET NEXT EST ENTRY
ADK EQDE
CRD CM
ADK EQAE-EQDE
CRD AE
LDD CM+3
ZJN FNE1 IF ENTRY EMPTY
LDN CM+1 GET CHANNELS FROM EST
STD CE
RJM GCH
LDD DA
UJN FNEX EXIT WITH MATCH
GCH SPACE 4,10
** GCH - GET CHANNELS FROM EST ENTRY.
*
* ENTRY (CE) = POINTER TO CHANNEL BYTE IN EST ENTRY (BYTE 1).
* (AE - AE+4) = *EQAE* WORD OF EST ENTRY.
*
* EXIT (CA - CC) = CHANNEL NUMBERS.
*
* USES CA, CB, CC.
GCH2 LDN 0 CLEAR AUXILIARY CHANNEL
GCH3 STD CC
LDI CE FETCH FIRST TWO CHANNELS
STD CA
LDM 1,CE
STD CB
GCH SUBR ENTRY/EXIT
LDM 2,CE CHECK DEVICE TYPE
LMC 2RDE
ZJN GCH1 IF EXTENDED MEMORY DEVICE
LMN 2RDP&2RDE
NJN GCH2 IF NOT EXTENDED MEMORY
GCH1 LDD AE+2
LPN 37 GET SIDE DOOR PORT CHANNEL NUMBER
ZJN GCH3 IF NO CHANNEL
LMC 4000
UJN GCH3 SET CHANNEL NUMBER
GCI SPACE 4,10
** GCI - GET CHANNEL FROM CHANNEL STATUS TABLE.
*
* ENTRY (A) = CHANNEL NUMBER.
*
* EXIT (A) = CHANNEL BYTE FROM TABLE.
* (CS) = CHANNEL BYTE FROM TABLE.
* (T1) = CORRESPONDING CHANNEL ASSIGNMENT TABLE ENTRY.
* TO *PCE0* IF CHANNEL DOES NOT EXIST.
*
* USES CM - CM+4, T0 - T7.
GCI SUBR ENTRY/EXIT
LPN 77 IGNORE CIO CHANNEL PORT NUMBER
STD T2 SAVE CHANNEL NUMBER
GCIA SBN ** (MAXIMUM NIO CHANNEL NUMBER)
MJN GCI2 IF NON-CONCURRENT CHANNEL
GCIB SBN 40-** (40-MAXIMUM NIO CHANNEL NUMBER)
MJN GCI1 IF UNDEFINED CHANNEL
GCIC SBN ** (NUMBER OF CIO PPS/CHANNELS)
MJN GCI2 IF CONCURRENT CHANNEL
GCI1 LDC MSGD *REQUESTED CHANNEL DOES NOT EXIST*
LJM PCE0 PROCESS CALL ERROR
GCI2 LCN 0 INITIALIZE CHANNEL STATUS TABLE INDEX
STD T0
GCI3 AOD T0
LCN 5
RAD T2
PJN GCI3 IF NOT CORRECT INDEX
LDC CHTP READ FWA OF CHANNEL STATUS TABLE
CRD CM
LDD CM+2 BUILD FWA OF TABLE
SHN 14
LMD CM+3
ADD T0 ADD CORRECT CHANNEL TABLE WORD INDEX
CRD CM
ADN CTALL READ CHANNEL ASSIGNMENT TABLE
CRD T3
LDM T3+5,T2
STD T1
LDM CM+5,T2
STD CS
UJP GCIX EXIT
MCH SPACE 4,15
** MCH - MATCH CHANNELS.
*
* ENTRY (AE - AE+4) = *EQAE* WORD OF EST ENTRY.
* (ES - ES+4) = *EQDE* WORD OF EST ENTRY.
*
* EXIT (A) = 0, IF A MATCH.
* (A) NON-ZERO, IF NO MATCH (VH PROPERLY SET).
*
* USES CE, CI, VH, VT.
*
* CALLS GCH, SCH.
MCH7 LDD CA STORE CHANNEL
MCH8 LPC 277
STM CHS2,CI
SOD CI
MJN MCH9 IF LAST CHANNEL TRANSFERRED
LDD CB
NJN MCH8 IF ANOTHER CHANNEL
MCH9 LDN 1 RESET CHANNEL INDEX
STD CI
LDN 0 SET RESPONSE
MCH SUBR ENTRY/EXIT
LDN ES+1 SET CHANNEL BYTE POINTER
STD CE
RJM GCH GET CHANNELS FROM EST
LDN 1 INITIALIZE CHANNEL INDEX
STD CI
LDM CHAN GET PARAMETER BLOCK CHANNEL WORD
SHN 21-VBCD
PJN MCH7 IF NO CHANNELS FROM CALLER
LDC C1VB INITIALIZE VALIDATION CODE WORD
STD VT
MCH1 LDD VT
SBD VH
MJN MCH2 IF NOT HIGHER VALIDATION
RAD VH UPDATE CODE WORD
MCH2 RJM SCH SCAN CHANNELS
NJN MCHX IF NO CHANNEL MATCHES
SOD CI
MJN MCH9 IF BOTH CHANNELS MATCH
AOD VT
LDM CHS2,CI
NJN MCH1 IF ANOTHER CHANNEL
UJN MCH9 RESET CHANNEL INDEX
SPACE 4,15
** RHP - RHF PROCESSOR.
*
* THIS ROUTINE DETERMINES THE USER-REQUESTED LEVEL OF ACCESS
* TO THE RHF SUBSYSTEM. THIS IS DONE BY CHECKING AND
* VALIDATING THE PARAMETERS IN THE USER-PASSED PARAMETER
* BLOCK. IF NO ERRORS ARE FOUND, THE APPROPRIATE ROUTINE IS
* CALLED TO EITHER GRANT OR DENY THE USER THAT LEVEL OF ACCESS
* TO THE RHF SUBSYSTEM.
*
* EXIT (A) = RESPONSE CODE RETURNED TO THE CALLER.
* -1, IF DEVICE IS NOT A NAD.
*
* USES ES - ES+4, T1 - T6.
*
* CALLS DVT, VLC, VLD, VLR, VRD, *5CV*.
*
* MACROS EXECUTE, SFA.
RHP6 LCN 1 NOT A NAD DEVICE
RHP SUBR ENTRY/EXIT
LDM DEVC
SBK FNAD
MJN RHP6 IF NOT RHF VALIDATION CALL
SBN LNAD-FNAD
PJN RHP6 IF NOT RHF VALIDATION CALL
RJM DVT DETERMINE VALIDATION TYPE REQUESTED
NJN RHPX IF ERROR DETECTED
LDM TRHP,T1 PROCESS RHF ACCESS REQUEST
STD T1
RJM 0,T1
PJN RHPX IF RETURNING RESPONSE TO CALLER
* SET *5CV* PARAMETERS IN T1 - T6 FOR RHF CALL.
*
* (T1) = NAD EST ORDINAL (0 IF NOT IN EST).
* (T2) = NAD CHANNEL NUMBER.
* (T3) = REMOTE ACCESS CODE (4/0,8/UPPER 8).
* (T4) = REMOTE ACCESS CODE (4/0,8/LOWER 8).
* (T5) = TCU ENABLES AND BUFFER SIZE INDEX.
* (T6) = LOGICAL TCU ADDRESS.
EXECUTE 5CV LOAD *5CV*
LDD EA
SBD LO
MJN RHP0.1 IF ENTRY IN EST
LDN 0
STM ESTO
RHP0.1 LDM ESTO NAD EST ORDINAL (0 IF NOT IN EST)
STD T1
LDM CHS1 NAD CHANNEL NUMBER
STD T2
LDM RAC1 REMOTE ACCESS CODE
LPN 17 UPPER 4 BITS
SHN 14
LMM RAC2 LOWER 12 BITS
STD T4
SHN -10
STD T3 UPPER 8
SHN 10
LMD T4
STD T4 LOWER 8
LDM TCUE TCU ENABLES
LPN 17
SHN 4
ADN 1 SET BUFFER SIZE INDEX = 1
STD T5 4/0,4/TCU ENABLES,4/1
LDM LTCA LOGICAL TCU ADDRESS
LPC 377
STD T6
LDM EQPV
SHN 21-VBS3
PJN RHP4 IF LOCAL NAD IS SHARED
LDD T1
ZJN RHP4 IF NAD NOT IN EST
SFA EST
ADK EQDE
CRD ES READ EST ENTRY
LDD ES
SHN 21-1
MJN RHP4 IF LOCAL NAD IS TURNED OFF OR DOWN
SHN 0-7-21+1+22
LPN 7
LMN 4
ZJN RHP4 IF LOCAL NAD NOT IN USE
RHP1 LDN VRUS LOCAL NAD IN USE
RHP2 LJM RHPX RETURN
RHP3 LDN VRDS DEVICE ERROR
UJN RHP2 RETURN
RHP4 LDN 1 ISSUE CONNECT FUNCTION
RJM FCV CALL *5CV*
MJN RHP3 IF DEVICE ERROR
ZJN RHP5 IF NO RESPONSE
LDN VRCH&VRSI NAD CONNECTED TO HOST
RHP5 LMN VRSI SITUATION INDETERMINATE
UJN RHP2 RETURN
* TRHP - TABLE OF ROUTINES FOR PROCESSING THE USER-SPECIFIED
* LEVEL OF ACCESS TO THE RHF SUBSYSTEM.
TRHP BSS 0
LOC 0
LNCT CON VLC VALIDATE LOCAL NAD CONCURRENT
LNDT CON VLD VALIDATE LOCAL NAD DEDICATED
RNDT CON VDN VALIDATE REMOTE NAD DEDICATED
LRDT CON VDN VALIDATE LOCAL AND REMOTE NAD DEDICATED
LOC *O
SCH SPACE 4,10
** SCH - SCAN CHANNELS FOR A MATCH.
*
* ENTRY (CI) = INDEX TO PARAMETER BLOCK CHANNEL LIST.
* (CA - CC) = CHANNELS FROM EST ENTRY.
*
* EXIT (A) = 0, IF A MATCH.
* (A) NON-ZERO, IF NO MATCH.
*
* USES T1.
SCH SUBR ENTRY/EXIT
LDN 2 INITIALIZE CHANNEL COUNT
STD T1
SCH1 LDM CC,T1
ZJN SCH2 IF NO MATCH
LMM CHS2,CI
LPC 277
ZJN SCHX IF A MATCH
SCH2 SOD T1
PJN SCH1 IF MORE CHANNELS
UJN SCHX EXIT WITH ERROR
SCV SPACE 4,10
** SCV - SET CHANNEL VALIDATION BYTE.
*
* ENTRY (CI) = INDEX TO CHANNEL THAT WAS REFUSED.
*
* EXIT (A) = RESPONSE CODE FOR CHANNEL IN USE.
* (CHANNEL VALIDATION BYTE SET).
*
* USES T1.
SCV SUBR ENTRY/EXIT
LDC TVBN+WVB1 CALCULATE TVBN ADDRESS
SBD CI
STD T1
LDI T1 FETCH PROPER VALIDATION CODE
RAM CHAN SET CHANNEL VALIDATION BYTE
LDN VRUS SET RESPONSE CODE TO EQUIPMENT IN USE
UJN SCVX EXIT
SFN SPACE 4,20
** SFN - SEARCH LOCAL FNT FOR FILE ON SPECIFIED EQUIPMENT.
*
* ENTRY (A) = 0 IF FNT/FST IS READ-ONLY.
* (A) .NE. 0 IF FNT/FST ARE TO BE UPDATED.
* (ESTO) = EST ORDINAL.
*
* EXIT (A) = 0 IF FILE FOUND (AND *FILE BUSY* STATUS SET
* IF UPDATING FNT/FST).
* (A) = 1 IF FILE INTERLOCK REJECT.
* (A) = 2 IF FILE NOT FOUND.
* (CM - CM+4) = FNT ENTRY, IF FILE FOUND AND IF
* UPDATING FNT/FST.
* (FS - FS+4) = FST ENTRY, IF FILE FOUND AND IF
* UPDATING FNT/FST.
*
* USES FA, T0, CM - CM+4, FS - FS+4.
*
* CALLS SFB.
*
* MACROS NFA.
SFN SUBR ENTRY/EXIT
STM SFNA SAVE FILE UPDATE STATUS
LDD CP SETUP LOCAL FILE SEARCH
ADN FLSW
CRD CM
LDD CM
SHN 6
ADN 1
STD T0
LDC FNTN SET FIRST ENTRY OFFSET
STD FA
SFN1 LDN LENF ADVANCE FNT OFFSET
RAD FA
SBD T0
MJN SFN2 IF MORE ENTRIES TO SEARCH
LDN 2
UJN SFNX FILE NOT FOUND
SFN2 NFA FA,R
CRD FS READ FNT ENTRY
ADN FSTL READ FST ENTRY
CRD CM
LDD FS
ZJN SFN1 IF EMPTY ENTRY
LDD CM
LMM ESTO
NJN SFN1 IF ORDINALS DO NOT MATCH
LDC 0
SFNA EQU *-1 FNT/FST UPDATE STATUS
ZJN SFN3 IF NO UPDATE REQUIRED
RJM SFB SET FILE BUSY
SFN3 LJM SFNX RETURN WITH MATCHING ORDINALS
SVB SPACE 4,10
** SVB - SET VALIDATION BYTE.
*
* ENTRY (A) = VALIDATION BYTE CODE.
* BITS 11 - 6 = VALIDATION BYTE OFFSET.
* BITS 5 - 0 = *TVBN* INDEX.
*
* EXIT VALIDATION BYTE SET.
*
* USES T1, T2.
SVB SUBR ENTRY/EXIT
SHN 14 POSITION CODE
ADC ESTV
STD T1
SHN -14 SHIFT OFF ADDRESS, INDEX TO BITS 5 - 0
STD T2
LDM TVBN,T2 GET VALIDATION BITS
RAI T1 STORE IN BYTE
UJN SVBX EXIT
* TVBN - VALIDATION BIT TABLE.
TVBN BSS 0
LOC 0
WVB4 CON VB4M+VWDM
WVB3 CON VB3M+VWDM
WVB2 CON VB2M+VWDM
WVB1 CON VB1M+VWDM
WVBW CON VWDM
LOC *O
* VALIDATION BYTE CODES.
EOVB VBCD ESTV,WVB4 EST ORDINAL ERROR
C2VB VBCD CHAN,WVB3 CHANNEL 2 ERROR
C1VB VBCD CHAN,WVB4 CHANNEL 1 ERROR
LNVB VBCD EQPV,WVB3 LOCAL NAD DEVICE CODE ERROR
EQVB VBCD EQPV,WVB4 EQUIPMENT NUMBER ERROR
UNVB VBCD UNIT,WVB4 UNIT NUMBER ERROR
MNVB VBCD DCMV,WVB3 DEVICE MNEMONIC ERROR
DCVB VBCD DCMV,WVB4 DEVICE CODE ERROR
SNVB VBCD PSNV,WVBW PACK SERIAL NUMBER ERROR
PEVB VBCD PSNV,WVB1
TCVB VBCD TCUV,WVB4 TCU ENABLES ERROR
RDVB VBCD LTCV,WVB3 REMOTE NAD DEVICE CODE ERROR
RNVB VBCD LTCV,WVB4 LOGICAL TCU ADDRESS ERROR
LOC *O
UCS SPACE 4,15
** UCS - PROCESS UNIT RECORD CHANNEL SHARE BITS.
*
* ENTRY (TI) = INDEX TO DEVICE CODE TABLE.
*
* EXIT (A) = 0, IF VALIDATION GRANTED.
* (A) = RESPONSE CODE, IF VALIDATION DENIED.
* (SB) = SHARE BITS SET (IF ANY) FOR THE APPROPRIATE
* CHANNEL FIELDS IN THE PARAMETER BLOCK.
* (CHANNEL VALIDATION BYTE SET).
*
* USES CI, DA.
*
* CALLS ACH, CMT, FCH, GCI, SCH, SCV.
UCS9 LDD TI CHECK IF MUX
SBK FMUX
MJN UCS10 IF NOT MUX
SBK LMUX-FMUX
PJN UCS10 IF NOT MUX
LDC VWDM SET CHANNEL VALIDATION BYTE
RAM CHAN
LDN VRNB SET RESPONSE TO NO SHARE BYTE SET
UJN UCSX EXIT
UCS10 LDM CHS2,CI
UCS11 STM CHS1
RJM GCI
LPN 40
ZJN UCSX IF CHANNEL UP
LDD T1
ZJN UCSX IF CHANNEL DOWN AND UNASSIGNED
LMM CM+5,T3
LPC 3700
ZJN UCSX IF CHANNEL DOWN AND UNASSIGNED
LDM CHAN
SHN 21-VBCD
MJN UCS12 IF CHANNEL SUPPLIED BY CALLER
SOD CI
MJN UCS12 IF ALL CHANNELS CHECKED
LDM CHS2,CI
NJN UCS11 IF ANOTHER CHANNEL TO CHECK
UCS12 RJM SCV INDICATE CHANNEL IS DOWN
UCS SUBR ENTRY/EXIT
LDN 1 INITIALIZE CHANNEL INDEX
STD CI
LDM CHAN
SHN -VBS4
NJN UCS1 IF CHANNEL WILL NOT BE SHARED
LJM UCS9 CHECK IF CHANNEL IS UP
UCS1 LDM DEVM CHECK FOR MAGNETIC TAPE EQUIPMENT
RJM CMT
ZJN UCS1.1 IF TAPE CHANNEL REQUESTED
LDC UJNI+UCS6.1-UCSA DO NOT ASSIGN NON-TAPE CHANNEL
STM UCSA
ERRNG 37+UCSA-UCS6.1 ERROR IF OUT OF RANGE
UJN UCS3 INITIALIZE EST SEARCH
UCS1.1 LDM CHS2,CI
UCS2 STM CHS1
RJM GCI
SCN 40 IGNORE THE CHANNEL DOWN BIT
ADD T1
ZJN UCS3 IF CHANNEL UNASSIGNED
LDM CHAN
SHN 21-VBCD
MJN UCS2.1 IF CHANNEL SUPPLIED BY CALLER
SOD CI
MJN UCS2.1 IF ALL CHANNELS CHECKED
LDM CHS2,CI
NJN UCS2 IF ANOTHER CHANNEL TO TEST
UCS2.1 LJM UCS12 INDICATE CHANNEL IS NOT DOWN
UCS3 LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
STD DA
LDN 1
STD CI
UCS5 RJM FCH FETCH CHANNEL(S) FROM NEXT NON-RMS ENTRY
ZJN UCS6 IF NO MORE EST ENTRIES
RJM SCH
NJN UCS5 IF ENTRY DOES NOT HAVE CHANNEL
LDD CS
ZJN UCS2.1 IF CHANNEL NOT DOWN
* VALIDATION FOR EXCLUSIVE USAGE OF THE CHANNEL WILL BE
* GRANTED IF ALL UNITS ON THE CHANNEL ARE DOWN/UNASSIGNED, OR
* IF DOWN/ASSIGNED TO THE CALLER.
LDD CM CHECK FOR DOWN UNIT
LPN 3
LMN 3
NJN UCS5.1 IF UNIT NOT DOWN
LDD AE+4
ZJN UCS5 IF UNIT UNASSIGNED
LMM EJTO
ZJN UCS5 IF DOWN/ASSIGNED TO THIS JOB
UCS5.1 LJM UCS12 SET CHANNEL VALIDATION BYTE
UCS6 RJM ACH
* UJN UCS6.1 DO NOT ASSIGN NON-TAPE CHANNEL
UCSA EQU *-2
ZJN UCS5.1 IF CHANNEL NOT ASSIGNED
UCS6.1 LDN 0
LJM UCSX EXIT
UES SPACE 4,15
** UES - PROCESS UNIT RECORD EQUIPMENT SHARE BIT.
*
* ENTRY (CI) = POINTER TO CHANNEL BYTE.
* (ES - ES+4) = EST ENTRY.
*
* EXIT (A) = 0, IF VALIDATION GRANTED.
* (A) = RESPONSE CODE, IF VALIDATION DENIED
* (EQUIPMENT VALIDATION BYTE SET).
*
* USES CI, DA, T1.
*
* CALLS CMT, FCH, SCH.
UES10 STD T1
LDC VWDM+VB4M SET EQUIPMENT VALIDATION BYTE
* LDC VWDM+VB3M (SET LOCAL NAD DEVICE CODE BYTE)
UESB EQU *-1
RAM EQPV
LDD T1 SET ERROR CODE
UJN UESX EXIT
UES11 LDN 0
UES SUBR ENTRY/EXIT
LDM EQPV CHECK EQUIPMENT SHARE BIT
UESC SHN 21-VBS4
* SHN 21-VBS3 (TEST LOCAL NAD SHARE BYTE)
MJN UES1 IF EQUIPMENT WILL NOT BE SHARED
LDM FNCH CHECK FUNCTIONAL BITS
* UJN UES11 (NOT CHANGING LOCAL NAD CONTROLWARE)
UESD EQU *-2
SHN 21-LMEM
PJN UES11 IF NOT CHANGING CONTROLLER MEMORY
LDN VRNB SET SHARE BIT NOT SET RESPONSE
UJN UES10 SET ERROR AND EXIT
UES1 LDM DEVM CHECK FOR MAGNETIC TAPE EQUIPMENT
RJM CMT
ZJN UES2 IF MAGNETIC TAPE
LDM DEVC
SBK FNAD
MJN UES11 IF NOT RHF EQUIPMENT
SBN LNAD-FNAD
PJN UES11 IF NOT RHF EQUIPMENT
LDC TNCE-1 SET CHECK FOR NAD EQUIPMENT
STM UESA
UES2 LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
STD DA
UES3 RJM FCH FETCH CHANNELS FROM NEXT NON-RMS EST ENTRY
ZJP UESX IF END OF EST ENTRIES
LDC TMTE-1 TABLE OF TAPE EQUIPMENTS
* LDC TNCE-1 (TABLE OF NAD EQUIPMENTS)
UESA EQU *-1
STD T1
UES5 AOD T1 CHECK NEXT TABLE ENTRY
LDI T1
UES6 ZJN UES3 IF END OF TABLE
LMD CM+3
NJN UES5 IF NO MATCH WITH EST ENTRY
LDN 1
STD CI
UES7 RJM SCH CHECK IF ENTRY IS ON SAME CHANNEL
ZJN UES8 IF ENTRY HAS SAME CHANNEL
SOD CI DECREMENT CHANNEL INDEX
MJN UES3 IF NO MORE CHANNELS TO CHECK
LDM CHS2,CI
NJN UES7 IF ANOTHER CHANNEL TO CHECK
UJN UES3 CHECK NEXT EST ENTRY
* VALIDATION FOR THE CONTROLLER WILL BE GRANTED IF ALL UNITS
* ON THE CONTROLLER ARE DOWN/UNASSIGNED, OR IF DOWN/ASSIGNED
* TO THE CALLER.
UES8 LDD CM+4 CHECK CONTROLLER
SHN -11
LMM EQPN
NJN UES3 IF NOT ON SAME CONTROLLER
LDD CM CHECK FOR DOWN/UNASSIGNED UNIT
LPN 3
LMN 3
NJN UES9 IF UNIT NOT DOWN
* PSN (LOAD/DUMP CONTROLWARE VALIDATION CALL)
UESE EQU *-1
LDD AE+4
ZJN UES6 IF UNIT UNASSIGNED
LMM EJTO
ZJN UES6 IF DOWN/ASSIGNED TO THIS JOB
UES9 LDN VRUS SET EQUIPMENT IN USE RESPONSE
LJM UES10 SET ERROR AND EXIT
** TMTE - TABLE OF MAGNETIC TAPE EQUIPMENT MNEMONICS.
TMTE DATA 2RMT
DATA 2RNT
DATA 2RAT
DATA 2RCT
DATA 0
** TNCE - TABLE OF NAD EQUIPMENT MNEMONICS.
TNCE DATA 2RNC
DATA 0
UUS SPACE 4,10
** UUS - PROCESS UNIT RECORD UNIT SHARE BIT.
*
* ENTRY (ES - ES+4) = EST ENTRY.
*
* EXIT (A) = 0, IF VALIDATION GRANTED.
* (A) = RESPONSE CODE, IF VALIDATION DENIED.
*
* USES CM - CM+4.
*
* MACROS MONITOR, SFA.
UUS6 LDC VWDM+VB4M SET UNIT VALIDATION BYTE
RAM UNIT
LDN VRNB SET RESPONSE TO SHARE BIT NOT SET
UUS SUBR ENTRY/EXIT
LDM UNIT CHECK UNIT PARAMETER WORD
SHN 21-VBS4
PJN UUS6 IF UNIT SHARE BIT NOT SET
* PJN UUS1 (RHF VALIDATION CALL)
UUSA EQU *-1
LDD ES
LPN 3
LMN 3
NJN UUS4 IF UNIT UP
UUS1 SFA EST,ESTO
ADK EQAE
CRD CM
LDD CM+4
ZJN UUS2 IF UNIT UNASSIGNED
LMM EJTO
NJN UUS4 IF ASSIGNED TO ANOTHER DIAGNOSTIC
UJN UUSX RETURN
UUS2 LDM ESTO EST ORDINAL
STD CM+1
UUSB LDN RVES (RHF VALIDATION CALL)
ORG UUSB
LDN RDES REQUEST DOWNED EQUIPMENT
STD CM+2
MONITOR REQM
LDD CM+1
ZJN UUS4 IF ASSIGNED TO ANOTHER DIAGNOSTIC
UUSC LDN 1 (LOAD/DUMP NAD CONTROLWARE)
ORG UUSC
LDN 0
NJN UUS5 IF LOADING/DUMPING CONTROLWARE
UUS3 LJM UUSX RETURN
UUS4 LDC VWDM+VB4M SET UNIT VALIDATION BYTE
RAM UNIT
LDN VRUS SET RESPONSE TO UNIT IN USE
UJN UUS3 RETURN
UUS5 LDM EQPV
LPN VS3M
ZJN UUS3 IF NOT DEDICATED ACCESS
LDD ES
SHN -7
LPN 4
LMN 4
ZJN UUS3 IF *CONTROLWARE NOT LOADED* FLAG SET
LDD ES
SHN -7
LPN 3
NJN UUS4 IF NAD IN USE
LDD ES
LPN 2
ZJN UUS4 IF NAD TURNED ON
LDM ESTO EST ORDINAL
STD CM+1
LDN SB0S SET EST BYTE 0 SUBFUNCTION
STD CM+2
LDC 6777 SET EST BYTE MASK
STD CM+3
LDD TH SET EST BIT VALUE TO SET
STD CM+4
MONITOR SEQM
* LDN 0
LJM UUSX RETURN
COMMON SPACE 4,10
*** RESIDENT COMMON ROUTINES.
*CALL COMPSFB
RMC TITLE OVERLAYABLE FUNCTION PROCESSORS.
USE OVERLAY
OVLA EQU *+5 OVERLAY
SPACE 4
*** FUNCTION 2.
* RMC - READ MACHINE CHARACTERISTICS TO (PARAMETER).
*
* ENTRY
*T IR 18/ *CVL*,1/1,5/ CP ,12/ 0,6/ 02,18/ ADDR
*
* EXIT
*T ADDR 12/ SW,12/ ECS,12/ NPP, 12/ HW,11/ MEM,1/C
* WHERE -
* SW (59-48) = SOFTWARE CHARACTERISTICS.
* BIT 48 = 63 CHARACTER SET.
* ECS(47-36) = EXTENDED MEMORY SIZE/1000B.
* SET TO 7777 IF .GT. 2000K.
* NPP (35-24) = NUMBER OF PPU-S.
* HW (23-12) = HARDWARE CHARACTERISTICS.
* BIT 21 = HARDWARE ESM MODE.
* BIT 20 = 8X5 MAINFRAME (CM EXTENSION).
* BITS 19-18 = 7000 TYPE CPU FLAGS.
* 0 = NOT 7000 TYPE CPU.
* 1 = CYBER 76 MODEL A.
* 2 = CYBER 76 MODEL B.
* 3 = CYBER 176.
* BIT 17 = PPU-S AT 2X SPEED.
* BIT 16 = CYBER 170 TYPE MAINFRAME (S/C REGISTER).
* BIT 15 = CMU PRESENT.
* BIT 14 = CEJ/MEJ PRESENT.
* BIT 13 = INSTRUCTION STACK PRESENT.
* BIT 12 = CPU 1 PRESENT.
* MEM (11-1) = CENTRAL MEMORY SIZE/200B (TRUNCATED).
* SET TO 3777 IF SIZE .GE. 262K.
* C (0) = COMPLETE BIT.
RMC SUBR ENTRY/EXIT
LDN PPUL GET NUMBER OF PP-S
CRD CM
LDN IPRL READ INSTALLATION PARAMETER WORD
CRD ES
LDD ES+2
LPN 1 RETRIEVE CHARACTER SET BIT
STD CM
RJM DES DETERMINE EXTENDED MEMORY SIZE
STD CM+1
LDK CFGL DETERMINE ECS/ESM MODE
CRD ES
LDD ES+3
LPC 2000
SHN -1
STD CM+3
LDC MABL READ MACHINE SIZE
CRD ES
LDD ES+1 DETERMINE HARDWARE CHARACTERISTICS
LMC 4777
STD T1
SHN -3
LPC 702 SET CME, CYBER 176, AND STACK CPU FLAGS
RAD CM+3
LDD T1 SET CMU FLAG
LPN 10
RAD CM+3
LDD T1 SET CYBER 170 FLAG
SHN -2
LPN 20
ADN 4 SET CEJ/MEJ ENABLED FLAG
RAD CM+3
LDD T1 SET CPU 1 PRESENT FLAG
LPN 2
SHN -1
RAD CM+3
LDD ES+4 SET 2X PP SPEED FLAG
LPN 1
SHN 5-0
RAD CM+3
LDD ES+2
ZJN RMC1 IF .LT. 262K
LCN 0 SET SIZE = 3777
UJN RMC2 SAVE SIZE
RMC1 LDD ES+3 GET ACTUAL SIZE
RMC2 SCN 1 SET COMPLETE BIT
LMN 1
STD CM+4
LDN 1 SET PARAMETER BLOCK WORD COUNT
STD BS
RJM CKA CHECK PARAMETER BLOCK ADDRESS
CWD CM STORE RESPONSE
LJM RMCX RETURN
CEA EJECT
*** FUNCTION 3.
* CEA - CHECK ENGINEERING ACCESS.
*
* ENTRY
*T IR 18/ *CVL*,1/1,5/ CP ,12/ 0,6/ 03,18/ ADDR
*
* EXIT
*T ADDR 58/0,1/1
CEA SUBR ENTRY/EXIT
LDN ZERL CLEAR RESPONSE WORD
CRD CM
LDN 1 SET PARAMETER BLOCK WORD COUNT
STD BS
STD CM+4 SET COMPLETE BIT
RJM CKA CHECK ADDRESS
CWD CM RETURN COMPLETE BIT
UJN CEAX EXIT
RSB EJECT
*** FUNCTION 4.
* RSB - READ SYSTEM ATTRIBUTE BLOCK.
*
* ENTRY
*T IR 18/ *CVL*,1/1,5/ CP,12/ VN,6/ 04,18/ ADDR
*
* EXIT ADDR CONTAINS THE FOLLOWING-
*
*T,ADDR 12/ ,12/ LNGTH,24/ ,6/ RC,5/ VN,1/C
*T,ADDR+1 12/ PPSD,24/ CMSZ,12/ ,12/ OPTN
*T,ADDR+2 60/FIRST VARIABLE ENTRY
*T,ADDR+N 60/LAST VARIABLE ENTRY
* WHERE -
* LNGTH NUMBER OF CM WORDS IN THE RESPONSE.
* RC RESPONSE CODE (ALWAYS 0).
* VN VERSION NUMBER OF FORMAT RETURNED.
* C COMPLETION BIT.
* PPSD PP SPEED.
* CMSZ CM SIZE.
* OPTN OPTIONS INSTALLED.
* VARIABLE ENTRY - SEE *CEVAL* INTERFACE SPECIFICATION.
RSB SUBR ENTRY/EXIT
LDK DSSL GET EI/MICROCODE VERIFIED FLAG
CRD T3
ADN MABL-DSSL
CRD CM
ADN EABL+MFEI-MABL GET SAB FWA AND LENGTH
CRD ES
LDD CM+1 FORM ADDR+1 OF RESPONSE
STD CD+4
SHN -6 SET FLAG FOR MAINFRAME TYPE
LPN 44
LMN 4
STD T2
LDD CM+2 SET CM SIZE/100B
STD CD+1
LDD CM+3
STD CD+2
LDD CM+4 SET PP SPEED
STD CD
LDN 1 INITIALIZE CM WORD LENGTH
STD BS
STM TPMB+4 SET COMPLETE BIT
RJM WOW WRITE ONE WORD
LDD IR+2 CHECK FORMAT VERSION REQUESTED
ZJN RSB1 IF OLD FORMAT
LJM RSB7 RETURN NEW FORMAT
* RETURN OLD FORMAT.
RSB1 RJM GSF GET SAB FWA
CRD CD READ MAINFRAME DESCRIPTOR ENTRY
LDD CD+3 SAVE CPU0 ON/OFF FLAG (CYBER 800)
LPN 1
STD T5
LDD CD SAVE MAINFRAME DESCRIPTOR LENGTH
SHN -6
STD T3
STD T4
RSB3 RJM GSF GET SAB FWA
ADD T3 READ NEXT ENTRY
CRD CM
LDN ZERL
CRD CD
LDD CM SAVE ENTRY LENGTH
SHN 14
STD T6
SHN -14 CHECK DESCRIPTOR ID
STD T1
LMN 77
NJN RSB4 IF NOT EXTENDED MEMORY ENTRY
LDC EMP SET EXTENDED MEMORY PROCESSOR ADDRESS
STD T1
UJN RSB5 PROCESS EXTENDED MEMORY ENTRY
RSB4 LMN 77
SBN 3
PJN RSB6 IF ENTRY NOT TO BE USED
LDM TOFP,T1 SET PROCESSOR ADDRESS
STD T1
LDD CM+1 SET ELEMENT NUMBER
STD CD
LDD CM+2 SET MODEL NUMBER
STD CD+1
LDD CM+3 SET SERIAL NUMBER
STD CD+2
* JUMP TO PROCESSOR WITH -
*
* (T2) = 0 IF CYBER 800 MAINFRAME (EXCLUDING 865/875).
* (T3) = (T4) = SAB INDEX.
* (T5) = 0 IF CPU0 IS LOGICALLY ON.
* = 1 IF CPU0 IS LOGICALLY OFF.
* (T6) = CURRENT SAB ENTRY LENGTH.
* (T7) = EI/MICROCODE VERIFIED AT DEADSTART FLAG.
* (BS) = CURRENT CM WORD LENGTH OF OLD SAB FORMAT BUFFER.
* (CD - CD+4) = EID OR 0 (EXTENDED MEMORY PROCESSOR).
* (CM - CM+4) = WORD 0 OF CURRENT SAB ENTRY.
RSB5 RJM 0,T1 PROCESS ENTRY
RSB6 LDD T6 ADVANCE SAB INDEX
RAD T3
STD T4
SBD ES+3
NJP RSB3 IF NOT END OF SAB
LDD BS
UJN RSB9 SET BLOCK LENGTH
* RETURN NEW FORMAT.
RSB7 RJM GSF GET SAB FWA
CRM TPMB+2*5,ES+3
ERRNG CKA2-SABML*5-2*5-TPMB BUFFER OVERFLOW
LDD T2
NJN RSB8 IF NOT CYBER 800 TYPE MAINFRAME
RJM CPR CHECK PROCESSOR RESERVED FOR NOS/VE
LDD T7 ADD EI/MICROCODE VERIFIED FLAG
SHN 0-3
LPN 1
RAM TPMB+3*5+4
RSB8 LDN 2 SET VERSION NUMBER
RAM TPMB+4
LDD ES+3 SET BLOCK LENGTH
ADN 2
STD BS
RSB9 STM TPMB+1
RJM CKA CHECK FOR VALID ADDRESS
CWM TPMB,BS
LJM RSBX RETURN
SPACE 4,10
** TOFP - TABLE OF OLD FORMAT ENTRY PROCESSORS.
TOFP BSS 0
LOC 0
CON IOP IOU ENTRY PROCESSOR
CON CMP CM ENTRY PROCESSOR
CON PRP PROCESSOR ENTRY PROCESSOR
LOC *O
MEM EJECT
*** FUNCTION 5.
* MEM - RETURN EXCHANGE RA, RAE, FL, FLE.
*
* ENTRY
*T IR 18/ *CVL*,1/1,5/ CP,12/ 0,6/ 05,18/ ADDR
*
* EXIT
*T ADDR 24/RA,24/FL,11/0,1/C
*T ADDR+1 24/RAE,24/FLE,12/0
MEM SUBR ENTRY/EXIT
LDD CP
ADN 1
CRM RAMM,ON READ RA INTO PARAMETER BLOCK
CRM FLMM,ON READ FL INTO PARAMETER BLOCK
ADN 1
CRM RAEM,ON READ RAE INTO PARAMETER BLOCK
CRM FLEM,ON READ FLE INTO PARAMETER BLOCK
LDN 1 SET COMPLETE BIT IN PARAMETER BLOCK
STM RAMM+4
LDN 0 CLEAR BYTE 4 OF RAE/FLE PARAMETER BLOCK
STM RAEM+4
LDN 2 PARAMETER BLOCK LENGTH
STD BS
RJM CKA OBTAIN REQUESTOR PARAMETER BLOCK ADDRESS
CWM RAMM,BS WRITE PARAMETER BLOCK
UJN MEMX EXIT
CMP TITLE OVERLAYABLE SUBROUTINES.
CMP SPACE 4,10
** CMP - CM DESCRIPTOR ENTRY PROCESSOR.
*
* ENTRY (T2) = 0 IF CYBER 800 TYPE MAINFRAME.
* (CD - CD+2) = CM ELEMENT ID.
* (CM - CM+4) = WORD ZERO OF NEW FORMAT CM ENTRY.
*
* EXIT OLD FORMAT CM ENTRY WRITTEN TO *TPMB*.
*
* CALLS WOW.
CMP1 LDD CM+4 SET MAINTENANCE CHANNEL PORT NUMBER
SHN -2
SCN 77
STD CD+4
LDN 6 SET DESCRIPTOR ID
CMP2 SHN 10
RAD CD
RJM WOW WRITE OLD FORMAT WORD
CMP SUBR ENTRY/EXIT
LDD T2
ZJN CMP1 IF CYBER 800 TYPE MAINFRAME
LDN 5
UJN CMP2 SET DESCRIPTOR ID
CMR SPACE 4,10
** CMR - CHECK FOR MATCHING ROUTINE.
*
* EXIT (A) = STATUS.
* 0, IF MATCHING ROUTINE MATCHES,
* OR THERE IS NO MATCHING ROUTINE,
* OR THE DEVICE IS NOT IN THE EST.
* NONZERO, IF NO MATCH.
CMR SUBR ENTRY/EXIT
LDM ESTO
ZJN CMRX IF DEVICE NOT IN THE EST
LDM TADR,TI
ZJN CMRX IF NO MATCHING ROUTINE
STD T1
LDM TMSK,TI GET MASK FOR MATCHING ROUTINE
RJM 0,T1
UJN CMRX RETURN WITH STATUS
CPR SPACE 4,10
** CPR - CHECK PROCESSOR RESERVED FOR NOS/VE.
*
* ENTRY (TPMB) = *SAB* ELEMENT DESCRIPTOR TABLE.
*
* USES CM - CM+4.
CPR SUBR ENTRY/EXIT
LDN SSTL
CRD CM
LDD CM+3 CHECK SYSTEM STATUS
SHN 0-13
NJN CPRX IF NVE DISABLED
LDM TPMB+2*5+/DSL/PCPF
LPN 2
NJN CPRX IF SINGLE CPU MAINFRAME
LDM TPMB+2*5+/DSL/OPTN
LPN 1
NJN CPRX IF CPU0 OFF
LDM TPMB+10*5+/DSL/PSTA
SHN 21-0
MJN CPRX IF SECOND CPU OFF
SHN 1
SCN 2 FLAG PROCESSOR SUPPORTS 180 STATE ONLY
LMN 2
STM TPMB+10*5+/DSL/PSTA
UJN CPRX RETURN
DES SPACE 4,10
** DES - DETERMINE EXTENDED MEMORY SIZE/1000B.
*
* EXIT (A) = EXTENDED MEMORY SIZE/1000B.
*
* USES ES - ES+4, T1 - T5.
*
* MACROS SFA.
DES SUBR ENTRY/EXIT
LDK EXML READ EXTENDED MEMORY EST ORDINAL
CRD T1
LDD T1+4
LPC 777
ZJN DESX IF NO CPU ACCESS TO EXTENDED MEMORY
SFA EST READ EST ENTRY
ADK EQDE
CRD ES
ADK EQAE-EQDE
CRD T1
LDD T1+2
SHN -6
LPN 3 MASK OFF EXTENDED MEMORY SHIFT COUNT
ADD TH
ERRNZ SHNI-1000
STM DESA UPDATE SHIFT INSTRUCTION
LDD ES+4 READ MST ENTRY
SHN 3
ADK TDGL
CRD ES
LDD ES+2 GET LENGTH OF TRT = T
SHN 6 T*100
ADD ES+2 T*101
SHN -3 T*101B/10B = T*4*2020B/1000B
DESA SHN 0 EM SIZE/1000B
* SHN EMSC (EMSC = EM SHIFT COUNT)
STD T1
SHN -14
ZJN DES1 IF .LE. 2000K WORDS
LDC 7777 EM SIZE .GT. 2000K WORDS
UJP DESX RETURN
DES1 LDD T1 EM SIZE/1000B
UJP DESX RETURN
EMP SPACE 4,10
** EMP - EXTENDED MEMORY DESCRIPTOR ENTRY PROCESSOR.
*
* ENTRY (CD - CD+4) = 0.
*
* EXIT OLD FORMAT EXTENDED MEMORY ENTRY WRITTEN TO *TPMB*.
*
* CALLS WOW.
EMP SUBR ENTRY/EXIT
LDC 377 SET EXTENDED MEMORY TYPE
STD CD+1
LDN 12D SET DESCRIPTOR ID
SHN 10
STD CD
RJM WOW WRITE OLD FORMAT WORD
UJN EMPX RETURN
FDC SPACE 4,10
** FDC - FIND DEVICE CODE.
*
* ENTRY (DEVC) = DEVICE CODE TO FIND.
*
* EXIT (A) = 0, IF DEVICE CODE FOUND (DEVM, TI SET).
* NONZERO, IF NOT IN *TDVC* (*VH* SET).
* TO *VCE16*, IF DEVICE CODE AND MNEMONIC INCOMPATIBLE.
*
* USES TI.
FDC6 LDK TDVCL-1 RESET DEVICE CODE INDEX
STD TI
FDC SUBR ENTRY/EXIT
LDC DCVB
STD VH
LDK TDVCL INITIALIZE DEVICE CODE TABLE INDEX
STD TI
FDC1 SOD TI
ZJN FDC6 IF MORE DEVICE CODES TO CHECK
LDM DEVC CHECK DEVICE CODE
LMM TDVC,TI CHECK FOR A MATCH IN THE TABLE
LPC 3777
NJN FDC1 IF NO MATCH
RJM CMR CHECK FOR MATCH ROUTINE
FDC2 NJN FDC1 IF NO MATCH
FDC3 LDM DEVM CHECK MNEMONIC
NJN FDC5 IF MNEMONIC SUPPLIED
LDM TMNE,TI FETCH MATCHING TRANSFER ADDRESS
STM DEVM PUT IN PARAMETER BLOCK
FDC4 UJP FDCX EXIT
FDC5 LMM TMNE,TI
ZJN FDC4 IF MNEMONIC MATCHES
LDM TDVC,TI CHECK FOR ALTERNATE
SHN 0-13
NJN FDC2 IF ALTERNATE
LDK VRMN MNEMONIC / DEVICE CODE INCOMPATIBLE
LJM VCE16 EXIT WITH ERROR RESPONSE CODE
FMN SPACE 4,10
** FMN - FIND MNEMONIC.
*
* ENTRY (DEVM) = MNEMONIC TO FIND.
*
* EXIT (A) = 0, IF MNEMONIC FOUND (DEVC, TI SET).
* (A) NON-ZERO, IF NOT IN *TMNE* (*VH* SET).
*
* USES TI.
FMN3 LDM TDVC,TI STORE DEVICE CODE IN PARAMETER BLOCK
LPC 3777
STM DEVC
LDN 0
FMN SUBR ENTRY/EXIT
LDC MNVB
STD VH
LDK TMNEL INITIALIZE INDEX
STD TI
FMN1 SOD TI
SBN 1
MJN FMNX IF MNEMONIC NOT FOUND
LDM TMNE,TI
LMM DEVM
NJN FMN1 IF NO MATCH
LDM TDVC,TI CHECK CORRESPONDING DEVICE CODE
LMN DEVC.DQL
LPC 3777
ZJN FMN1 IF LARGE SECTOR DEVICE CODE, DO NOT MATCH
LDM ESTO
ZJN FMN2 IF NO EST ENTRY FOUND
RJM CMR CHECK FOR MATCHING ROUTINE
NJN FMN1 IF NO MATCH
FMN2 LJM FMN3 EXIT
GSF SPACE 4,10
** GSF - GET SAB FIRST WORD ADDRESS.
*
* ENTRY (ES - ES+1) = MAINFRAME DESCRIPTOR FWA.
*
* EXIT (A) = SAB FWA.
GSF SUBR ENTRY/EXIT
LDD ES+1
SCN 77
SHN 6
ADD ES
SHN 6
UJN GSFX RETURN
IOP SPACE 4,10
** IOP - IOU DESCRIPTOR ENTRY PROCESSOR.
*
* ENTRY (T2) = 0 IF CYBER 800 TYPE MAINFRAME.
* (T4) = CURRENT SAB INDEX.
* (CD - CD+2) = IOU ELEMENT ID.
* (CM - CM+4) = WORD 0 OF NEW FORMAT IOU ENTRY.
*
* EXIT OLD FORMAT IO ENTRY WRITTEN TO *TPMB*.
*
* CALLS RNW, WOW.
IOP1 LDD CM+4 SET MAINTENANCE CHANNEL PORT NUMBER
SHN -2
SCN 77
STD CD+4
LDN 10D SET DESCRIPTOR ID
IOP2 SHN 10
RAD CD
LDN 1 SET ENTRY LENGTH - 1
RAD CD+4
RJM WOW WRITE OLD FORMAT WORD
RJM RNW READ NEXT SAB WORD
LDN 0
STD CD+4
RJM WOW WRITE OLD FORMAT WORD
IOP SUBR ENTRY/EXIT
LDD T2
ZJN IOP1 IF CYBER 800 TYPE MAINFRAME
LDN 9D SET DESCRIPTOR ID
UJN IOP2 COMPLETE ENTRY
MEE SPACE 4,25
** MEE - FIND MATCHING EST ENTRY.
*
* ENTRY (EA) = FIRST EST ORDINAL TO TEST.
* (LO) = LAST EST ORDINAL + 1 TO SEARCH.
*
* EXIT (A) = 0, IF A MATCH WAS MADE.
* = 1, IF NO MATCH AND MATCH NOT EXPECTED.
* = -1, IF NO MATCH.
* (ESTO) = EST ORDINAL, IF A MATCH WAS MADE.
* 0, IF NO MATCH.
* (AE - AE+4) = *EQAE* WORD OF EST ENTRY, IF MATCH.
* (ES - ES+4) = *EQDE* WORD OF EST ENTRY, IF MATCH.
*
* ERROR TO *VCE16* WITH (A) = ERROR RESPONSE CODE FOR THE
* FOLLOWING CONDITIONS -
* AN UNEXPECTED ENTRY IS FOUND IN THE EST.
* THE MNEMONIC AND THE DEVICE CODE ARE INCOMPATIBLE.
*
* USES EA, AE - AE+4, ES - ES+4.
*
* CALLS MCH, MEQ, MUN.
*
* MACROS SFA.
MEE7 AOD EA ADVANCE EST ORDINAL
LMD LO
NJN MEE1 IF MORE EST ENTRIES TO CHECK
STM ESTO RESET EST ORDINAL TO ZERO
LDM FNCH
SHN 1-NEST
LPN 2
SBN 1 SET STATUS
MEE SUBR ENTRY/EXIT
MEE1 LDD EA SET ORDINAL IN PARAMETER BLOCK
STM ESTO
SFA EST READ EST ENTRY
ADK EQDE
CRD ES
ADK EQAE-EQDE
CRD AE
LDD ES+3
ZJN MEE7 IF ENTRY EMPTY
MEEA UJN MEE4 MATCH EQUIPMENT SPECIFICATIONS
* PSN (*DE* DEVICE REQUESTED)
LMC 2RDE
ZJN MEEX IF *DE* DEVICE FOUND
LMN 2RDP&2RDE
MEE2 ZJN MEEX IF *DP* DEVICE FOUND
MEE3 UJN MEE7 CHECK NEXT ENTRY
MEE4 RJM MCH MATCH CHANNELS
NJN MEE7 IF NO MATCH
RJM MEQ MATCH EQUIPMENT (CONTROLLER) NUMBER
NJN MEE3 IF NO MATCH
RJM MUN MATCH UNIT NUMBERS
NJN MEE3 IF NO MATCH
LDM FNCH
SHN 21-NEST
MJN MEE5 IF NOT EXPECTED IN EST
LDM DEVM
ZJN MEE2 IF NO MNEMONIC SUPPLIED
LMD ES+3
ZJN MEE2 IF MNEMONIC MATCHES
LDN VRMN MNEMONIC/DEVICE CODE INCOMPATIBLE
UJN MEE6 EXIT WITH ERROR RESPONSE CODE
MEE5 LDN VREF ENTRY FOUND IN EST
MEE6 LJM VCE16 EXIT WITH ERROR RESPONSE CODE
MEQ SPACE 4,20
** MEQ - MATCH EQUIPMENT (CONTROLLER) NUMBER.
*
* ENTRY (ES - ES+4) = EST ENTRY TO MATCH.
*
* EXIT (A) = 0, IF A MATCH.
* (A) .NE. 0, IF NO MATCH (VH SET PROPERLY).
* (EP) = UNIT NUMBER FROM EST OR MST (FIRST UNIT NUMBER
* IF MULTI-SPINDLE RMS DEVICE).
* FOR RMS -
* (CM) = NUMBER OF UNITS - 1 IN DEVICE.
* (CM+1 - CM+4) = UNIT NUMBERS IN DEVICE.
* IF (CM+4) = 7777, UNITS ARE CONTIGUOUS.
*
* USES EP, T1, VH, CM - CM+4.
*
* CALLS CMT.
MEQ SUBR ENTRY/EXIT
LDD ES CHECK EST ENTRY
SHN 21-13
PJN MEQ4 IF NOT RMS EQUIPMENT
LDD ES+4 READ *DDLL*
SHN 3
ADN DDLL
CRD CM
LDD CM
STD T1
SHN 21-12 CHECK FOR NULL EQUIPMENT
MJN MEQX IF NULL EQUIPMENT
SHN 12-21 SET NUMBER OF UNITS
LPN 7
STD CM
LDD CM+4 SET FIRST UNIT
LPN 77
STD EP
LDD T1 SET EQUIPMENT (CONTROLLER) NUMBER
SHN -6
LPN 7
UJN MEQ7 MATCH EQUIPMENT (CONTROLLER) NUMBER
MEQ4 LDN 0 SET NUMBER OF UNITS
STD CM
LDM DEVM CHECK FOR MAGNETIC TAPE EQUIPMENT
RJM CMT
ZJN MEQ5 IF MAG TAPE ENTRY
LDM DEVM CHECK FOR MUX
LMC 2RTT
ZJN MEQ5 IF MUX
LMC 2RNP&2RTT
NJN MEQ6 IF NOT MUX
* NT/MT/CT/AT/TT/NP ENTRIES PROCESSED HERE.
MEQ5 LDD ES+4 SET UNIT NUMBER
LPN 17
UJN MEQ6.1 SET UNIT NUMBER
* CP/CR/LP ENTRIES PROCESSED HERE.
MEQ6 LDD ES+4 SET UNIT NUMBER
LPN 77
MEQ6.1 STD EP
LDD ES+4 SET EQUIPMENT (CONTROLLER) NUMBER
SHN -11
MEQ7 STD T1
LDC EQVB SET VALIDATION BYTE
SBD VH
MJN MEQ8 IF NOT HIGHER VALIDATION
RAD VH UPDATE CODE WORD
MEQ8 LDM EQPV GET PARAMETER BLOCK EQUIPMENT WORD
SHN 21-VBCD
MJN MEQ9 IF EQUIPMENT (CONTROLLER) NUMBER SUPPLIED
LDD T1 STORE EQUIPMENT (CONTROLLER) NUMBER
STM EQPN
MEQ9 LDD T1 SET RESPONSE
LMM EQPN
LJM MEQX EXIT
MUN SPACE 4,15
** MUN - MATCH UNIT NUMBER.
*
* ENTRY (EP) = UNIT NUMBER FROM EST.
* (CM) = NUMBER OF UNITS - 1 IN DEVICE.
* (CM+1 - CM+4) = UNIT NUMBERS IN DEVICE IF (CM) .NE.
* ZERO (IF (CM+4) = 7777, UNIT NUMBERS ARE SEQUENTIAL).
*
* EXIT (A) = 0, IF A MATCH OR IF RHF VALIDATION CALL.
* (A) NON-ZERO, IF NO MATCH (VH SET PROPERLY).
* (EP) = LOGICAL UNIT NUMBER FOR RMS.
*
* USES CM, EP, T1, T2, VH.
MUN4 LDD EP SET UNIT NUMBER
STM UNUM
MUN5 LDN 0 SET RESPONSE
STD EP SET LOGICAL UNIT NUMBER
MUN SUBR ENTRY/EXIT
LDM UNIT CHECK UNIT NUMBER FROM CALLER
MUNA EQU *-2
* UJN MUN5 (RHF VALIDATION CALL)
SHN 21-VBCD
PJN MUN4 IF NO UNIT NUMBER FROM CALLER
LDC UNVB UPDATE VALIDATION CODE WORD
STD VH
LDD EP SAVE PHYSICAL UNIT NUMBER
STD T1
LDN 0 SET LOGICAL UNIT NUMBER
STD EP
LDN CM+4 UNIT NUMBER LIST ADDRESS
STD T2
LDD T1 MATCH PHYSICAL UNIT NUMBER
MUN1 LMM UNUM
ZJN MUNX IF MATCH
SOD CM
MJN MUNX IF NO MORE TO CHECK
LDD CM+4
LMC 7777
NJN MUN2 IF NOT CONTIGUOUS UNITS
AOD EP INCREMENT LOGICAL UNIT NUMBER
AOD T1 INCREMENT PHYSICAL UNIT NUMBER
UJN MUN1 LOOP
MUN2 AOD EP INCREMENT LOGICAL UNIT
LPN 1
NJN MUN3 IF SECOND UNIT NUMBER IN WORD
SOD T2 DECREMENT TO NEW WORD
LDI T2
LPN 77
UJN MUN1 SET PHYSICAL UNIT
MUN3 LDI T2 ISOLATE NEXT PHYSICAL UNIT NUMBER
SHN -6
UJN MUN1 SET PHYSICAL UNIT
PRP SPACE 4,15
** PRP - PROCESSOR DESCRIPTOR ENTRY PROCESSOR.
*
* ENTRY (T2) = 0 IF CYBER 800 TYPE MAINFRAME.
* (T4) = CURRENT SAB INDEX.
* (T5) = 1 IF CPU0 IS LOGICALLY OFF (CYBER 800).
* (T7) = EI/MICROCODE VERIFIED AT DEADSTART FLAG.
* (PRPA) = 1 IF ONE PROCESSOR ENTRY ALREADY PROCESSED.
* (CD - CD+2) = PROCESSOR ELEMENT ID.
* (CM - CM+4) = WORD ZERO OF NEW FORMAT PROCESSOR ENTRY.
*
* EXIT OLD FORMAT PROCESSOR ENTRY WRITTEN TO *TPMB*.
*
* USES T1, CM - CM+4.
*
* CALLS GSF, RNW, WOW.
PRP2 LDN 1 SET DESCRIPTOR ID
SHN 10
RAD CD
RJM WOW WRITE OLD FORMAT WORD
PRP3 LDN 1 SET CPU ENTRY PROCESSED
RAM PRPA
PRP SUBR ENTRY/EXIT
LDD T2
NJN PRP2 IF NOT CYBER 800 TYPE MAINFRAME
LDD CM+4 GET MAINTENANCE CHANNEL PORT NUMBER
SHN -2
SCN 77
ADN 4 SET ENTRY LENGTH - 1
STD CD+4
AOD T4
RJM GSF GET SAB FWA
ADD T4 READ NEXT WORD OF NEW FORMAT
CRD CM
LDD CM SET DEGRADATION FLAGS
STD CD+3
LDD CM+2 SAVE PMF HARDWARE FLAG
SHN 0-3
LPN 1
LMN 1 FLAG IS OPPOSITE IN OLD FORMAT
STD T1
* FOR A DUAL CPU CYBER 800 TYPE MAINFRAME, ONLY ONE PROCESSOR
* DESCRIPTOR IS RETURNED. IT CONTAINS INFORMATION ABOUT THE
* FIRST CPU THAT IS LOGICALLY ON.
LDD T5 GET CPU0 ON/OFF FLAG
LMN 0 PROCESSOR ENTRY HAS NOT BEEN PROCESSED
PRPA EQU *-1
* LMN 1 (PROCESSOR ENTRY HAS BEEN PROCESSED)
NJN PRP3 IF ENTRY NOT TO BE USED
LDN 2 SET DESCRIPTOR ID
SHN 10
RAD CD
RJM WOW WRITE OLD FORMAT WORD
LDN ZERL
CRD CD
LDD T1 SET PMF HARDWARE AVAILABILITY
STD CD+4
RJM WOW WRITE OLD FORMAT WORD
RJM RNW READ NEXT WORD OF NEW FORMAT
RJM GSF GET SAB FWA
ADN 1 READ SECOND WORD OF MAINFRAME DESCRIPTOR
CRD CM
LDD CM+3 SET EI NAME
STD CD+4
RJM WOW WRITE OLD FORMAT WORD
RJM RNW READ NEXT SAB WORD
LDD T7 SET EI/MICROCODE VERIFIED FLAG
SHN 1-3
LPN 2
RAD CD+4
RJM WOW WRITE OLD FORMAT WORD
LDD MA SET EI DATE
CWD CM
CRD CD
LDN 0
STD CD+3
STD CD+4
RJM WOW WRITE OLD FORMAT WORD
LJM PRP3 RETURN
RNW SPACE 4,10
** RNW - READ NEXT SAB WORD.
*
* ENTRY (T4) = CURRENT SAB INDEX.
*
* EXIT (T4) INCREMENTED.
* (CD - CD+4) = NEXT SAB WORD.
*
* CALLS GSF.
RNW SUBR ENTRY/EXIT
AOD T4 INCREMENT INDEX
RJM GSF GET SAB FWA
ADD T4
CRD CD
UJN RNWX RETURN
RPB SPACE 4,10
** RPB - READ PARAMETER BLOCK.
*
* EXIT (A) .GE. 0 IF RHF VALIDATION CALL.
* (A) .LT. 0 OTHERWISE.
* (VH) = VALIDATION LEVEL INITIALIZED TO *EOVB*.
* TABLE *TPMB* CONTAINS USER PARAMETER BLOCK.
*
* USES BS, VH.
*
* CALLS CKA.
RPB1 LDN 1 INDICATE RHF VALIDATION CALL
RPB SUBR ENTRY/EXIT
LDN TPMBL/5 READ PARAMETER BLOCK
STD BS
RJM CKA
CRM TPMB,BS
LDN EOVB INITIALIZE VALIDATION LEVEL
STD VH
LDM DEVC DETERMINE VALIDATION CALL TYPE
SBK FNAD
MJN RPBX IF NOT RHF VALIDATION CALL
SBN LNAD-FNAD
MJN RPB1 IF RHF VALIDATION CALL
LCN 1
UJN RPBX EXIT
SMP SPACE 4,20
** SMP - SET AND/OR MATCH PARAMETERS.
*
* ENTRY (IR+3 - IR+4) = RELATIVE PARAMETER BLOCK ADDRESS.
* (IR+1) = CONTROL POINT NUMBER.
*
* EXIT (A) = 0, IF DEVICE FOUND IN EST AS EXPECTED.
* = 1, IF DEVICE NOT IN EST AS EXPECTED.
* = -1, IF BAD PARAMETER FOUND (*VH* SET.)
* (EA) = (ESTO) = EST ORDINAL.
* (SB) = 0.
* (TI) = TABLE *TDVC* INDEX INITIALIZED.
* (VH) = VALIDATION LEVEL POINTER INITIALIZED TO *EOVB*.
* TABLE *TPMB* CONTAINS USER PARAMETER BLOCK.
* TO *VCE16*, IF RETURNING UNIT, OR IF ERROR DETECTED.
*
* USES EA, LO, TI, VH, CM - CM+4.
*
* CALLS CMT, FDC, FMN, MEE, VTP.
*
* MACROS SFA.
SMP SUBR ENTRY/EXIT
LDN 0 INITIALIZE RESPONSE CODE
STD SB
LDN NOPE INITIALIZE EST ORDINAL FOR SEARCH
STD EA
* PART I. VERIFY THAT AT LEAST A MINIMAL SET OF PARAMETERS
* HAVE BEEN PASSED.
LDM FNCH
SHN 21-RTNU
PJN SMP1 IF NOT RETURNING UNIT
LDN 0
LJM VCE16 RETURN EQUIPMENT
* IF ESTO NOT GIVEN, EITHER *DEVM* MUST BE *DE*, *MT*, *NT*,
* *CT* OR *AT*, OR ELSE CHANNEL, EQUIP AND UNIT MUST BE GIVEN.
SMP1 LDM ESTV CHECK USER EST ORDINAL
SHN 21-VBCD
MJN SMP4 IF EST ORDINAL SUPPLIED
LDM DEVM
LMC 2RDE
ZJP SMP15 IF *DE* REQUEST
LDM CHAN CHECK USER CHANNEL
SHN 21-VBCD
SMPA PJN SMP3 IF CHANNEL NOT SUPPLIED
* PJN SMP2 (RHF VALIDATION CALL)
LDM EQPV CHECK USER EQUIPMENT
SHN 21-VBCD
PJN SMP2 IF EQUIPMENT NOT SUPPLIED
LDM UNIT CHECK USER UNIT NUMBER
SHN 21-VBCD
SMPB MJN SMP5 IF UNIT NUMBER SUPPLIED
* UJN SMP5 (RHF VALIDATION CALL - NO UNIT NUMBER)
SMP2 LDN VRIP INCORRECT PARAMETER COMBINATION
LJM VCE16 EXIT WITH ERROR RESPONSE CODE
SMP3 LDM DEVM CHECK FOR MAGNETIC TAPE EQUIPMENT
RJM CMT
NJN SMP2 IF MNEMONIC SPECIFIED NOT TAPE
RJM VTP VALIDATE TAPE PREASSIGNMENT PARAMETERS
* UJN SMP4 VERIFY EST ORDINAL
* PART II. VERIFY THAT THE PARAMETERS PASSED ARE CONSISTENT
* AND SUPPLY THE MISSING PARAMETERS.
* VERIFY THE EST ORDINAL IN *ESTO*.
SMP4 LDN EOVB INITIALIZE VALIDATION BYTE
STD VH
LDM FNCH CHECK NOT-IN-EST FUNCTION BIT
SHN 21-NEST
MJN SMP2 IF NOT SUPPOSED TO BE IN EST
LDM ESTO EST ORDINAL
ZJN SMP8 IF NOT PRESENT
STD EA
SBD LO
PJN SMP8 IF EST ORDINAL OUT OF RANGE
LDD EA SET LAST EST ORDINAL + 1 TO SEARCH
ADN 1
STD LO
* SEARCH THE EST FOR AN ENTRY.
*
* THE PARAMETERS SUPPLIED MUST HAVE BEEN-
* EST ORDINAL, OR
* DEVICE MNEMONIC = *MT*, *NT*, *CT* OR *AT*
* (*VTP* GOT ESTO), OR
* CHANNEL, EQUIPMENT, AND UNIT, OR
* CHANNEL, EQUIPMENT, UNIT, AND DEVICE CODE, OR
* CHANNEL, EQUIPMENT, UNIT, AND DEVICE MNEMONIC.
SMP5 RJM MEE FIND MATCHING EST ENTRY
NJN SMP10 IF ENTRY WAS NOT FOUND
LDD ES+3
STM DEVM SUPPLY DEVICE CODE
LDM DEVC
ZJN SMP6 IF NO DEVICE CODE FROM CALLER
RJM FDC FIND DEVICE CODE
UJN SMP7 RETURN WITH STATUS
SMP6 RJM FMN FIND MNEMONIC
SMP7 ZJN SMP9 IF MATCH FOUND
SMP8 LCN 1 SET ERROR STATUS
SMP9 LJM SMPX EXIT
* VERIFY EQUIPMENT THAT IS NOT IN THE EST.
* THE PARAMETERS SUPPLIED MUST HAVE BEEN-
* CHANNEL, EQUIPMENT, UNIT, AND DEVICE CODE, OR
* CHANNEL, EQUIPMENT, UNIT, AND DEVICE MNEMONIC.
SMP10 MJN SMP13 IF ENTRY WAS EXPECTED
LDM FNCH
SHN 21-RTNU
MJN SMP13 IF UNIT RETURN REQUESTED
LDM DEVC
ZJN SMP11 IF NO DEVICE CODE FROM CALLER
RJM FDC FIND DEVICE CODE
UJN SMP12 RETURN WITH STATUS
SMP11 LDM DEVM
ZJN SMP14 IF NO DEVICE MNEMONIC FROM CALLER
RJM FMN FIND MNEMONIC
SMP12 LDN 1 EQUIPMENT NOT FOUND AS EXPECTED
UJN SMP9 RETURN WITH STATUS
SMP13 LDN VREN&VRIP ENTRY NOT IN EST
SMP14 LMN VRIP INCORRECT PARAMETER COMBINATION
LJM VCE16 RETURN WITH ERROR RESPONSE CODE
* PROCESS *DE* REQUEST.
* THE PARAMETERS SUPPLIED MUST HAVE BEEN-
* DEVICE MNEMONIC = *DE*.
SMP15 STM MEEA ENABLE *DE* PROCESSING IN *MEE*
SMP16 RJM MEE FIND MATCHING EST ENTRY
NJP SMP10 IF NO ENTRY FOUND
LDD ES+3 SET MNEMONIC FROM EST
STM DEVM
RJM FMN FIND MNEMONIC
MJN SMP17 IF MNEMONIC NOT FOUND
LDM TMSK,TI
LPN 70
ZJN SMP16 IF NO HIGH SPEED PORT
LDM FNCH
SHN 21-NEST
MJN SMP13 IF NOT EXPECTED IN EST
RJM MCH MATCH / SET CHANNELS
ZJN SMP18 IF CHANNEL MATCHED OR WAS NOT SPECIFIED
SMP17 LCN 1 SET ERROR STATUS
SMP18 LJM SMPX EXIT
TEM SPACE 4,15
** TEM - TEST FOR EXTENDED MEMORY PRESENT.
*
* ENTRY CALLER HAS REQUESTED VALIDATION FOR EXTENDED MEMORY
* WITH NO MATCHING PARAMETERS FOUND IN THE EST. ONE
* MORE PASS IS REQUIRED TO ENSURE THAT EXTENDED
* MEMORY, IF FOUND WITH AN ALTERNATE MNEMONIC, IS NOT
* BEING USED BY THE SYSTEM.
*
* EXIT (A) = RESPONSE CODE RETURNED TO CALLER.
*
* USES EA, CM - CM+4, ES - ES+4.
*
* MACROS SFA.
TEM3 LDD MA RETURN ADDRESS OF PREALLOCATED SPACE
CWM TEMA,ON
SBN 1
CRM PSNV,ON
LDN VRGR VALIDATION GRANTED
TEM SUBR ENTRY/EXIT
LDM FNCH
LPN WRTM+PREM
LMN WRTM+PREM
NJN TEM3 IF WRITING ONLY IN PREALLOCATED AREA
LDK EXML READ EXTENDED MEMORY EST ORDINAL
CRD CM
LDD CM+4
LPC 777
ZJN TEMX IF NO EXTENDED MEMORY PRESENT
SFA EST READ EST ENTRY
ADK EQDE
CRD ES
ADK EQAE-EQDE READ EQUIPMENT ASIGNMENT
CRD CM
LDD ES
LPN 3
LMN 3
NJN TEM1 IF EXTENDED MEMORY NOT DOWN
LDD CM+4
ZJN TEMX IF EXTENDED MEMORY DOWN AND UNASSIGNED
ERRNZ VRGR ERROR IF RESPONSE VALUE CHANGES
TEM1 LDN VRUS EQUIPMENT IN USE
UJN TEMX RETURN
TEMA VFD 12/0 *PSNV* VALUE
VFD 24/ECSRA*100 PREALLOCATED AREA RAE
VFD 24/ECSFL*100 PREALLOCATED AREA FLE
VTP SPACE 4,30
** VTP - VALIDATE TAPE PREASSIGNMENT INFORMATION.
*
* ENTRY (EA) = *NOPE*.
*
* EXIT (ESTO) = EST ORDINAL OF THE PREASSIGNED TAPE,
* IF NO ERRORS. PROCESSING THEN CONTINUES IN *SMP*
* AS IF THE USER HAD SUPPLIED ONLY THE EST ORDINAL.
*
* THE *DIAGNOSTIC-ASSIGNED* BIT IS ALSO SET IN THE
* TAPE-S FNT ENTRY TO ONLY ALLOW *CIO* OPERATIONS
* THAT REMOVE THE ENTRY FROM THE FNT AND TO ABORT
* ALL OTHERS.
*
* ERROR TO *VCE16* WITH (A) = ERROR RESPONSE CODE IF ANY OF
* THE FOLLOWING CONDITIONS EXIST.
* 1. USER-S *DEVM* AND EJT ORDINAL DO NOT MATCH
* WITH CORRESPONDING FIELDS IN EST AND EAT ENTRIES.
* 2. NO FNT/FST ENTRY CONTAINS A MATCHING EST
* ORDINAL.
* 3. USER ATTEMPTED TO LOAD TAPE CONTROLWARE WHEN
* USING TAPE PREASSIGNMENT.
* 4. USER WAS PREASSIGNED A LABELED TAPE.
*
* USES EA, FS+4, CM - CM+4.
*
* CALLS SFN.
*
* MACROS NFA, SFA.
VTP7 AOD EA ADVANCE EST ORDINAL
LMD LO
NJN VTP2 IF MORE ENTRIES TO PROCESS
LDN VRFN FILE NOT FOUND
UJN VTP1 EXIT WITH ERROR
VTP SUBR ENTRY/EXIT
LDM FNCH CHECK FOR LOAD CONTROLWARE REQUEST
SHN 21-LMEM
PJN VTP2 IF CONTROLWARE LOAD NOT REQUESTED
LDN VRBC NO BC LOAD ON PREASSIGN
VTP1 LJM VCE16 EXIT WITH ERROR RESPONSE CODE
VTP2 SFA EST,EA READ NEXT EST ENTRY
ADK EQDE
CRD CM
* TEST IF USER-SUPPLIED DEVICE MNEMONIC AND EJT
* ORDINAL MATCH THOSE IN EST AND EAT ENTRIES.
LDD CM+3
ZJN VTP7 IF EMPTY ENTRY
LMM DEVM
VTP3 NJN VTP7 IF MNEMONICS DO NOT MATCH
SFA EST,EA READ EQUIPMENT ASSIGNMENT
ADK EQAE
CRD CM
LDD CM+4
LMM EJTO
NJN VTP3 IF EJT ORDINALS DO NOT MATCH
LDD EA STORE EST ORDINAL
STM ESTO
* SEARCH FNT/FST TO ENSURE THAT EST ORDINALS MATCH AND
* THAT THE PREASSIGNED TAPE IS UNLABELED.
LDN 1 FNT/FST UPDATE REQUIRED
RJM SFN SEARCH FNT/FST
ZJN VTP4 IF EST ORDINAL FOUND IN FNT/FST
LMN 2
ZJN VTP3.1 IF FILE NOT FOUND
LDK VRIS&VRFN I/O SEQUENCE ERROR
VTP3.1 LMN VRFN FILE NOT FOUND
UJN VTP4.1 EXIT WITH ERROR RESPONSE CODE
VTP4 LDD FS+4
SHN 21-13
PJN VTP6 IF UNLABELED TAPE WAS PREASSIGNED
LDN VRLT LABELED TAPE WAS PREASSIGNED
VTP4.1 LJM VCE16 EXIT WITH ERROR RESPONSE CODE
* SET *DIAGNOSTIC-ASSIGNED* BIT IN FNT.
VTP6 SHN 13-21
SCN 1 CLEAR FILE BUSY STATUS
LMN 1
STD FS+4
LDD CM+3 SET *DIAGNOSTIC-ASSIGNED* BIT IN FNT
SCN 40
LMN 40
STD CM+3
NFA FA,R REWRITE FNT/FST ENTRIES
CWD CM
ADN FSTL
CWD FS
LDC UJNI+VCE5-VCEA ALTER BRANCH ADDRESS
STM VCEA
LJM VTPX EXIT
ERRNG 37+VCEA-VCE5 ERROR IF OUT OF RANGE
WOW SPACE 4,10
** WOW - WRITE OLD FORMAT WORD.
*
* ENTRY (BS) = CURRENT CM WORD LENGTH OF OLD FORMAT BLOCK.
* (CD - CD+4) = NEXT WORD FOR OLD FORMAT BLOCK.
*
* EXIT (A) .NE. 0.
* (BS) INCREMENTED.
WOW SUBR ENTRY/EXIT
LDD MA
CWD CD
CRM TPMB+1*5,ON
WOWA EQU *-1
LDN 5 INCREMENT ADDRESS FOR NEXT WORD
RAM WOWA
AOD BS INCREMENT CM WORD LENGTH
UJN WOWX RETURN
PRS TITLE PRESET FOR RHF PROCESSING.
** PRS - PRESET ROUTINES FOR RHF PROCESSING.
*
* CERTAIN ROUTINES NEED SLIGHT CHANGES, SINCE RHF
* PROCESSING IS SOMEWHAT DIFFERENT FOR RHF DIAGNOSTICS.
* *PRS* MAKES THOSE REQUIRED CHANGES.
*
* EXIT (A) .GE. 0 IF RESPONSE CODE IS TO BE RETURNED TO
* REQUESTING JOB.
* (A) .LT. 0 IF FURTHER VALIDATION REQUIRED.
*
* APPROPRIATE ROUTINES HAVE BEEN ALTERED TO ALLOW
* RHF VALIDATION PROCESSING.
PRS7 AOM VCEB SET *COLD* VALIDATION PRIVILEGES
LCN 0 VALID DEVICE CODE
PRS SUBR ENTRY/EXIT
LDM FNCH
SHN 21-RTNU
MJN PRS7 IF RETURNING EQUIPMENT
LDM DEVC
LMC DEVC.NCR
ZJN PRS4 IF REMOTE NAD
LMN DEVC.NCL&DEVC.NCR
ZJN PRS5 IF LOCAL NAD
LDM FNCH
SHN 21-NEST
MJN PRSX IF NOT IN EST
LDC DCVB NO MATCH ON DEVICE CODE
RJM SVB
LDN VRNM
PRS2 UJN PRSX EXIT
PRS4 LDC * ALTER BRANCH ADDRESS
ORG *-1
LOC UESD
UJN UES11
LOC *O
STM UESD
LDM TCUE
LPN 17
NJN PRS5 IF TCU ENABLES SET
LDC TCVB
RJM SVB
LDN VRTC NO TCU ENABLES SET
UJN PRS2 EXIT
PRS5 LDC * ALTER BRANCH ADDRESS
ORG *-1
LOC MUNA
UJN MUN5
LOC *O
STM MUNA
LDC * ALTER BRANCH ADDRESS
ORG *-1
LOC SMPA
PJN SMP2
LOC *O
STM SMPA
ISTORE SMPB,(UJN SMP5) IGNORE UNIT NUMBER CHECK
LDC VWDM+VB3M SET VALIDATION FOR LOCAL NAD
STM UESB
LDC SHNI+21-VBS3 CHECK LOCAL NAD SHARE BYTE
STM UESC
LDN RVES-RDES CHANGE *REQM* SUBFUNCTION
RAM UUSB
LDC * ALTER BRANCH ADDRESS
ORG *-1
LOC UUSA
PJN UUS1
LOC *O
STM UUSA
LDM FNCH
LPC CMEM+SPCM
LMC CMEM+SPCM
NJN PRS6 IF NOT LOCAL NAD LOAD OR DUMP
LDK PSNI ALLOW CONTROLWARE LOAD/DUMP ON UP NAD
STM UESE
LDC STDI+CM+4 SAVE CHANNEL NUMBER
STM CAEA
AOM UUSC SET LOAD/DUMP CONTROLWARE FLAG
PRS6 LJM PRS7 SET VALIDATION STATUS
DVT SPACE 4,15
** DVT - DETERMINE VALIDATION TYPE.
*
* EXIT (A) = RESPONSE CODE, IF ERROR DETECTED.
* (A) = 0, IF NO ERRORS FOUND.
* (T1) = TABLE INDEX OF NEXT ROUTINE TO PROCESS, IF
* NO ERRORS FOUND.
* IF AN ERROR IS DETECTED, THE APPROPRIATE VALIDATION
* BYTE IS FLAGGED IN THE PARAMETER BLOCK.
*
* USES T1.
*
* CALLS SVB.
DVT SUBR ENTRY/EXIT
LDM TCUE SET BUFFER SIZE TYPE 1
LPN 17
ADN 20
STM TCUE
LDM DEVC DETERMINE NAD TYPE
LMC DEVC.NCR
NJN DVT1 IF NOT REMOTE NAD
LJM DVT6 PROCESS REMOTE NAD
DVT1 LDM FNCH
SHN 21-LMEM
MJN DVT4 IF LOCAL NAD DEDICATED REQUESTED
LDM EQPV
SHN 21-VBS3
MJN DVT2 IF SHARE BYTE SET
LDN LNCT SET LOCAL NAD CONCURRENT TABLE INDEX
STD T1
ERRNZ LNCT-VRGR (EXIT ERROR IF *LNCT* VALUE CHANGED)
UJN DVTX EXIT
DVT2 LDC LNVB ERROR - SHARE BYTE SET
RJM SVB
LDN VRSB
DVT3 UJN DVTX EXIT
DVT4 LDM EQPV
SHN 21-VBS3
PJN DVT5 IF SHARE BYTE NOT SET
LDN LNDT SET LOCAL NAD DEDICATED TABLE INDEX
STD T1
LDN 0
UJN DVT3 EXIT
DVT5 LDC LNVB ERROR - SHARE BYTE NOT SET
RJM SVB
LDN VRNB
UJN DVT3 EXIT
DVT6 LDM RDVC
LMC DEVC.NCR
ZJN DVT8 IF REMOTE NAD DEVICE CODE
LDC RDVB ERROR - REMOTE NAD DEVICE CODE BAD
RJM SVB
LDN VRRB
DVT7 UJN DVT3 EXIT
DVT8 LDM LTCV TEST REMOTE NAD SHARE BYTE
SHN 21-VBS3
MJN DVT9 IF SHARE BYTE SET
LDN LNCT PROCESS LOCAL AND REMOTE NAD CONCURRENT
UJN DVT11 EXIT
DVT9 LDM EQPV TEST LOCAL NAD SHARE BYTE
SHN 21-VBS3
MJN DVT10 IF LOCAL AND REMOTE NAD DEDICATED
LDN RNDT PROCESS REMOTE NAD DEDICATED
UJN DVT11 EXIT
DVT10 LDN LRDT PROCESS LOCAL AND REMOTE NAD DEDICATED
DVT11 STD T1
LDN 0
UJN DVT7 EXIT
VDN SPACE 4,10
** VDN - VALIDATE DEDICATED NAD USAGE.
*
* EXIT (A) = POSITIVE, IF USER UNAUTHORIZED ACCESS.
* (A) = NEGATIVE, IF USER AUTHORIZED ACCESS.
*
* USES CM - CM+4.
VDN SUBR ENTRY/EXIT
LDD CP READ USER ACCESS WORD
ADK AACW
CRD CM
LDD CM+3
SHN 21-4
MJN VDNX IF USER AUTHORIZED ACCESS
LDN VRUA UNAUTHORIZED ACCESS TO NETWORK
UJN VDNX RETURN
VLC SPACE 4,10
** VLC - VALIDATE LOCAL NAD CONCURRENTLY.
*
* EXIT (A) = RESPONSE CODE RETURNED TO *MALET*.
*
* CALLS VDN.
VLC SUBR ENTRY/EXIT
RJM VDN
PJN VLC1 IF USER NOT ALLOWED ACCESS
LDN VRGR VALIDATION GRANTED
UJN VLCX EXIT
VLC1 LDN VRUA UNAUTHORIZED TO ACCESS NETWORK
UJN VLCX EXIT
VLD SPACE 4,10
** VLD - VALIDATE LOCAL NAD DEDICATED.
*
* ENTRY (ES - ES+4) = NAD EST ENTRY.
*
* EXIT (A) = RESPONSE RETURNED TO CALLER.
*
* CALLS TSA.
VLD SUBR ENTRY/EXIT
LDD ES
SHN 0-7
LPN 3
ZJN VLDX IF SUBSYSTEM NOT USING NAD
ERRNZ VRGR (EXIT ERROR IF *VRGR* VALUE CHANGES)
LDN VRUS UNIT IN USE
UJN VLDX RETURN
TTL CVL - COMMON VALIDATION INTERFACE.
** COMMON DECKS.
*CALL COMPCUA
*CALL COMPCRS
OVERFLOW CHECK FOR LOAD OVERFLOW
TITLE MASS STORAGE VALIDATION OVERLAY.
QUAL 3CV
IDENT 3CV,ECVX
*COMMENT CVL - MASS STORAGE VALIDATION OVERLAY.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
3CV SPACE 4,10
ORG OVLA
ECE SPACE 4,10
** ECV - *3CV* ENTRY POINT.
ECV SUBR ENTRY/EXIT
UJN ECVX EXIT
ECS SPACE 4,15
** ECS - EXTENDED CORE STORAGE CALL.
*
* THIS ROUTINE ADJUSTS THE EXCHANGE PACKAGE RAE/FLE AND SETS
* APPROPRIATE INFORMATION IN THE USER-S CALL BLOCK.
*
* EXIT (A) = RESPONSE CODE.
* EXCHANGE PACKAGE AND USER CALL BLOCK ADJUSTED.
*
* USES CM - CM+4.
*
* CALLS UXP.
ECS11 LDN VRNZ NON-ZERO EXTENDED MEMORY FL
ECS SUBR ENTRY/EXIT
LDD CP
ADN ECSW
CRD CM
LDD CM+4
NJN ECS11 IF EXTENDED MEMORY FIELD LENGTH IS NONZERO
STM PSNV CLEAR UPPER BYTE RAE/FLE ADDR IN PARAM BLK
* INITIALIZE THE RAE AND FLE POINTERS.
LDC ECSA
STD T6 SET EXCHANGE PACKAGE POINTER
STD T7 SET PARAMETER BLOCK POINTER
LDM TMSK,TI CHECK FOR CPU ACCESS PATH
LPN 70
NJN ECS1 IF CPU ACCESS PATH
LDN ECSC-ECSA
RAD T6 RESET EXCHANGE PACKAGE POINTER
ECS1 LDM FNCH FUNCTION CHARACTERISTICS
SHN 21-NPRE
MJN ECS3 IF REQUEST TO ACCESS OUTSIDE PREALLOCATED
* SET PARAMETER BLOCK.
ECS2 LDI T7 SET RAE
STM PKSN
LDM 1,T7
STM PKSN+1
LDM 2,T7 SET FLE
STM PKSN+2
LDM 3,T7
STM PKSN+3
RJM UXP UPDATE EXCHANGE PACKAGE
LDN VRGR VALIDATION GRANTED
LJM ECSX EXIT - PROCESS APROPRIATE VALIDATION
* VALIDATE REQUEST TO ACCESS OUTSIDE OF PREALLOCATED AREA.
* DETERMINE FIELD LENGTH.
ECS3 SHN 21-NEST-21+NPRE+22
MJN ECS4 IF NOT IN EST
LDD ES+4
SHN 3
ADK DILL
CRD CD GET ACCESS MODE FROM MST
ADK DDLL-DILL
CRD CM GET EM SIZE FROM MST
LDD CM+1 SET FLE IN PARAMETER BLOCK
STM ECSA+2
LDD CM+2
STM ECSA+3
* DETERMINE REFERENCE ADDRESS.
ECS4 LDM FNCH FUNCTION CHARACTERISTICS
LPC SPCM&NESM
SHN 21-SPCL
PJN ECS6 IF NOT REQUESTING MAINTENANCE HALF OF ECS
ERRNG SPCL-NEST CODE ASSUMES BIT POSITIONS
ERRNG NEST+5-SPCL CODE ASSUMES BIT POSITIONS
SHN 21-NEST-21+SPCL
MJN ECS5 IF NOT IN EST
LDD CD+3
SHN 21-11
PJN ECS9 IF MAINTENANCE MODE NOT SET
ECS5 LDC 400 SET BIT 20 IN RAE FOR EXCHANGE PACKAGE
ECS6 STM ECSA SET RAE IN PARAMETER BLOCK
LDN 0
STM ECSA+1
* VERIFY ACCESS MODE.
LDM FNCH FUNCTION CHARACTERISTICS
SHN 21-WRTR
MJN ECS8 IF WRITING OUTSIDE PREALLOCATED AREA
LDC ECSB SET PARAMETER BLOCK TO PREALLOCATED AREA
STD T7
ECS7 UJP ECS2 REWRITE EXCHANGE PACKAGE
ECS8 SHN 21-NEST-21+WRTR+22
MJN ECS7 IF NOT IN EST
LDD ES
LPN 3
LMN 3
ZJN ECS7 IF DEVICE *DOWN*
LDN VRUS VALIDATION DENIED (EQUIPMENT IN USE)
UJN ECS10 PROCESS USER NOT VALIDATED
ECS9 LDN VRMA VALIDATION DENIED CODE (NO MA PARAMETER)
ECS10 LJM ECSX PROCESS USER VALIDATION
* EXCHANGE PACKAGE AND PARAMETER BLOCK VALUES.
ECSA VFD 24/ECSRA*100 PREALLOCATED AREA RAE
* VFD 24/0 (ACCESSING OUTSIDE PREALLOCATED AREA)
* VFD 24/4000000 (ACCESSING MAINTENANCE HALF)
VFD 24/ECSFL*100 PREALLOCATED AREA FLE
* VFD 24/*DDLL* FL (ACCESSING OUTSIDE PREALLOCATED AREA)
* ALTERNATE PARAMETER BLOCK VALUES WHEN NOT WRITING OUTSIDE
* PREALLOCATED AREA.
ECSB VFD 24/ECSRA*100 PREALLOCATED AREA RAE
VFD 24/ECSFL*100 PREALLOCATED AREA FLE
* ALTERNATE EXCHANGE PACKAGE VALUES WHEN NO CPU PATH.
ECSC VFD 24/0 RAE WHEN NO CPU ACCESS PATH
VFD 24/0 FLE WHEN NO CPU ACCESS PATH
ESM SPACE 4,30
** ESM - EXTENDED SEMI-CONDUCTOR MEMORY STORAGE CALL.
*
* THIS ROUTINE CAN CREATE A LOCAL FILE NAMED EM* IF DEVICE
* IS A DEMA DISK AND PARAMETERS CALL FOR EM* FILE CREATION.
* THE FILE IS CREATED IN THE *ESM* HARDWARE BY OVERLAY *0BF*.
* THIS EM* FILE IS ASSIGNED BY THE SYSTEM (0BF) AND AN FNT IS
* CREATED. THE EM* FILE IS ASSIGNED SPECIAL FILE
* STATUS (MALET IS *SSJ=*) AND THE FILE WILL HAVE AUTO-DROP
* STATUS. AUTO-DROP STATUS ENSURES THAT THE FILE WILL NOT BE
* AVAILABLE FOR ANY CIO OPERATIONS (PARTICULARLY A *RETURN*),
* WHEN MALET IS TERMINATED.
* THE PHYSICAL RAE OF EM* IS DETERMINED, ROUNDED UP TO THE
* NEAREST 1K, AND PLACED IN THE USER-S EXCHANGE PACKAGE
* WITH AND FLE OF 1K. THE RAE AND FLE ARE ALSO PLACED
* IN THE CALLER-S PARAMETER BLOCK.
*
* ENTRY (SB) = PRESENT VALIDATION CODE.
* THE USER-S PARAMETER BLOCK CONTAINS DESIRED DATA.
*
* EXIT (SB) = UPDATED VALIDATION CODE IF ERROR ENCOUNTERED.
* TO PCE2, IF ERROR FLAG SET (* CVL CALL ERROR*).
* EXCHANGE PACKAGE AND USER CALL BLOCK ARE ADJUSTED.
* EM* EXISTS AS A USER LOCAL FILE (*SSST* TYPE).
*
* USES EP, T2 - T7, CM - CM+4.
*
* CALLS CEA, ECS, UXP, *0BF*.
*
* MACROS EXECUTE, MONITOR, PAUSE, SFA.
ESM10 LMK 2RDP&2RDB
NJN ESMX IF NOT LOW SPEED PORT EM DEVICE
RJM ECS SET RAE AND FLE IN PARAMETER BLOCK
STD SB SAVE RESPONSE
ESM SUBR ENTRY/EXIT
LDD SB
ZJN ESM1 IF VALIDATION GRANTED
LMN VRSH
ZJN ESM1 IF VALIDATION GRANTED
LMN VRDW&VRSH
NJN ESMX IF VALIDATION DENIED
ESM1 LDM DEVM
LMC 2RDB
NJN ESM10 IF NOT DEMA DEVICE
ESM2 LDM FNCH
SHN 21-BESM TEST FUNCTION CHARACTERISTCS FOR LFN = EM*
MJN ESMX IF NOT BUILD EM* LOCAL FILE
LDD CP
ADN ECSW
CRD CM
LDD CM+4
ZJN ESM5 IF ESM FIELD LENGTH IS ZERO
LDN VRNZ NON-ZERO EXTENDED MEMORY FL
ESM3 STD SB UPDATE ERROR RESPONSE CODE
UJN ESMX RETURN
ESM4 LDN VRIC INCORRECT CEVAL REQUEST PARAMETER
UJN ESM3 PROCESS NO ESM IN SYSTEM ERROR
ESM5 LDK EXML READ EXTENDED MEMORY EST ORDINAL
CRD CM
LDD CM+4
LPC 777
ZJN ESM4 IF NO EXTENDED MEMORY EQUIPMENT
STD EP EST ORDINAL TO *0BF* PARAMETER AREA (20B)
ESM7 LDD MA
CWD EP SAVE LOW CORE REGISTERS (20 - 24)
CRM SAVE,ON
CWD ES SAVE LOW CORE REGISTERS (40 - 44)
CRM SAVE+5,ON
LDC 2REM
STD ES FILE NAME TO (40-43)
LDN 1R*
SHN 6
STD ES+1
LDN 0
STD ES+2
STD ES+3
STM OVLB-1
EXECUTE 0BF,OVLB CREATE FNT ENTRY (LFN = EM*)
PSN 0
LDD EP+1 RNI HERE FROM *0BF* IF FILE EXISTED
STD T6
NJN ESM9 IF TRACK ASSIGNED
PAUSE
LDD CM+1
ZJN ESM8 IF NO ERROR FLAG SET
LJM PCE2 * CVL CALL ERROR *
ESM8 LDN ZERL
CRD CM
LDN TRLR STORE RECALL STACK REASON CODE
STD CM
LDD MA
CWD IR
ADN 1
CWD CM
MONITOR RECM
LJM PPR ENTER RECALL
ESM9 LDD EP+3
STD T7
RJM CEA CONVERT LOGICAL TO PHYSICAL TRACK ADDRESS
LDD CM+4 SET RAE TO NEXT 1K VALUE (ADDRESS)
ADD TH
LPC -777
STD T2+1 SET RAE FOR EXCHANGE PACKAGE
STM PKSN+6 SET RAE IN PARAMETER BLOCK
SHN -14
RAD CM+3
STD T2
STM PKSN+5
LDN 0
STD T2+2 SET FLE FOR EXCHANGE PACKAGE
STM PKSN+7 SET FLE IN PARAMETER BLOCK
LDD TH
STD T2+3
STM PKSN+10
LDD MA RESTORE REGISTERS
CWM SAVE,TR
LDD MA
CRD EP
ADN 1
CRD ES
LDN T2 SET EXCHANGE PACKAGE VALUES FWA
STD T6
RJM UXP UPDATE EXCHANGE PACKAGE
LJM ESMX EXIT
* THE FOLLOWING TEN DECIMAL CELLS ARE USED FOR SAVING AND
* RESTORING LOW CORE IN ROUTINE *ESM*. IF SPACE IS NEEDED,
* THE AREA COULD BE MOVED TO UNUSED OR ALREADY EXECUTED
* AREAS OF CORE.
SAVE BSS 2*5 TEMP FOR REGISTER SAVE
PSN SPACE 4,15
** PSN - CHECK PACK SERIAL NUMBER.
*
* ENTRY (EP) = LOGICAL UNIT NUMBER.
* (ES - ES+4) = EST ENTRY.
* (SB) = VRDW, IF DOWNED, ALLOCATABLE DEVICE ALREADY
* ASSIGNED TO CALLER.
* = 0, OTHERWISE.
*
* EXIT (A) = VALIDATION RESPONSE CODE (PACK SERIAL NUMBER
* VALIDATION BYTE SET IF ERROR).
*
* USES VT, CD - CD+4, CM - CM+4.
*
* CALLS 0PI.
*
* MACROS EXECUTE.
PSN7 LDD SB
NJN PSNX IF DEVICE ASSIGNED TO CALLER
LDN VRSH INDICATE EQUIPMENT MIGHT BE SHARED
PSN SUBR ENTRY/EXIT
LDM FNCH
SHN 21-NEST
MJN PSN7 IF EQUIPMENT IS NOT IN THE EST
LDD ES+1
SHN 21-5
PJN PSN0 IF NONCONCURRENT CHANNEL
LDD ES+2
SHN 21-5
MJN PSN7 IF CONCURRENT CHANNEL
PSN0 LDD ES+4 CHECK FOR *6DI* DRIVER
SHN 3
ADN MDGL
CRD CM
ADN STLL-MDGL CHECK DEVICE UNLOADED
CRD CD
LDD CM+3
LPN 7
LMN LA6DI
NJN PSN7 IF NO PACK SERIAL PROCESSING
LDM FNCH CHECK FUNCTION BITS
LPN WRTM+PREM
LMN WRTM+PREM
NJP PSN7 IF NOT WRITING OUTSIDE PREALLOCATED AREA
LDD CP CHECK ORIGIN TYPE
ADN JOTW
CRD CM
LDD CM+3
LPN 77
LMK SYOT
PSN1 ZJP PSN7 IF SYSTEM ORIGIN
LDM PSNV CHECK PACK S/N PARAMETER WORD
SHN 21-VBCD
MJN PSN5 IF CALLER SUPPLIED SERIAL NUMBER
PSN2 LDC VWDM INDICATE NO MATCH
PSN3 STM PSNV
LDN VRCI SET MAY DESTROY DATA RESPONSE
LJM PSNX EXIT
* COMPARE PACK SERIAL NUMBER.
PSN4 LDM PKSN+3 CHECK SERIAL NUMBER
LMM BFMS+1
NJN PSN2 IF INCORRECT
LDM PKSN+2
LMM BFMS
NJN PSN2 IF INCORRECT
UJN PSN1 EXIT
* READ PACK SERIAL NUMBER.
PSN5 LDD CD
LPN 2
NJN PSN2 IF PACK UNLOADED
LDM ESTO FETCH EST ORDINAL
STM OVLB-1
EXECUTE 0PI,OVLB
STD VT SAVE MAIN PROCESSOR ADDRESS
LDD EP SET LOGICAL UNIT NUMBER
RJM 0,VT READ SERIAL NUMBER
NJN PSN4 IF NO ERROR
LDC VWDM+VB1M INDICATE HARDWARE ERROR
LJM PSN3 SET RESPONSE AND EXIT
UXP SPACE 4,20
** UXP - UPDATE EXCHANGE PACKAGE.
*
* *UXP* ALTERS THE RAE AND FLE EXCHANGE PACKAGE WORDS IF THIS
* IS A CYBER 170 AND ESM IS IN ESM MODE. IT THEN WRITES THE
* RAE AND FLE EXCHANGE PACKAGE WORDS AND CLEARS THE UEM ENABLED
* BIT.
*
* ENTRY (EP) = EST ORDINAL OF EXTENDED MEMORY, IF ASSIGNING
* *DB* DEVICE WITH -EM*- FILE.
* = 0, IF ASSIGNING EXTENDED MEMORY.
* (T6) = FWA OF EXCHANGE PACKAGE VALUES.
*
* EXIT EXCHANGE PACKAGE *RAE* AND *FLE* SET AND UEM ENABLE
* CLEARED.
*
* USES CM - CM+4.
UXP5 LDD CP SET RAE
ADN 4
CRD CM
LDI T6
STD CM
LDM 1,T6
STD CM+1
LDD CP
ADN 4
CWD CM
ADN 5-4 SET FLE
CRD CM
LDM 2,T6
STD CM
LDM 3,T6
STD CM+1
LDD CP
ADN 5
CWD CM
ADK 3-5 CLEAR UEM ENABLE BIT
CRD CM
LDD EP
LMN 40
ZJN UXPX IF UEM CPU PATH
LDD CM
LPC -400
STD CM
LDD CP
ADN 3
CWD CM
UXP SUBR ENTRY/EXIT
LDD EP
NJN UXP1 IF EST READ REQUIRED
LDM TMSK,TI
UJN UXP2 CHECK FOR ESM MODE
UXP1 SFA EST READ EXTENDED MEMORY EST ORDINAL
ADK EQDE
CRD CM
LDD CM+4 GET CPU PATH TYPE
SHN 3
ADN DILL
CRD CM
LDD CM+3
UXP2 LPN 70
STD EP SAVE CPU PATH TYPE
LMN 30
ZJN UXP4 IF IN ESM MODE
UXP3 UJP UXP5 REWRITE EXCHANGE PACKAGE
UXP4 LDK MABL CHECK MACHINE TYPE
CRD CM
LDD CM+1
SHN 21-10
MJN UXP3 IF NOT A CYBER 170
LDM 1,T6 SET ADJUSTED RAE
SCN 77
SHN 6
LMI T6
SHN 6
STM 1,T6
SHN -14
STI T6
LDM 3,T6 SET ADJUSTED FLE
SCN 77
SHN 6
LMM 2,T6
SHN 6
STM 3,T6
SHN -14
STM 2,T6
UJP UXP3 REWRITE EXCHANGE PACKAGE
COMMON SPACE 4,10
** COMMON DECKS.
CEI$ EQU 0 INITIALIZE *CEA* FOR CPU-ACCESSIBLE DEVICE
*CALL COMPCEA
SPACE 4,10
USE OVERLAY
OVLB EQU *+5 OVERLAY AREA
ERRNG BFMS-OVLB-ZBFL *0BF* OVERFLOWS
ERRNG BFMS-OVLB-ZPXL *0PI* OVERFLOWS
SPACE 4,10
OVERFLOW OVLA,BFMS
END