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