IDENT MSI,ORIG ABS SST ENTRY MSI ENTRY FLAW ENTRY RFL= ENTRY SSJ= ENTRY UTL= SYSCOM B1 *COMMENT MSI - MASS STORAGE DEVICE INITIALIZATION. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE MSI - MASS STORAGE DEVICE INITIALIZATION. SPACE 4 *** MSI - MASS STORAGE DEVICE INITIALIZATION. * D. A. HIVELEY. 72/09/27. * S.L. BETH. 73/01/23. SPACE 4 *** MSI - MASS STORAGE DEVICE INITIALIZATION. * * THE FOLLOWING PARAMETERS MAY BE ENTERED VIA * THE K-DISPLAY. * * FM = FAMILY NAME / PACK NAME (DEPENDS ON *TY* VALUE). * PN = FAMILY NAME / PACK NAME (DEPENDS ON *TY* VALUE). * UN = USER NAME (FOR PRIVATE AUXILIARY PACK ONLY). * DM = DEVICE MASK. * SM = SECONDARY MASK. * NC = NUMBER OF CATALOG TRACKS. * NP = NUMBER OF PACKS. * DN = DEVICE NUMBER. * TY = TYPE * F = FAMILY DEVICE. * X = AUXILIARY DEVICE. * LA = LOWER BOUND ACCESS LEVEL. * UA = UPPER BOUND ACCESS LEVEL. * * ENTER XX=0. TO CLEAR ANY OF THE ENTRIES LISTED ABOVE. * ENTER XX=NULL. TO CLEAR THE FIELD IN THE MST (UN ONLY). * * EQ = EST ORDINAL. THIS OPTION IS ONLY VALID FOR *FLAW* * PROCESSING. * * NOTE IT IS NECESSARY TO USE THE DSD/EQPDECK *INITIALIZE* * ENTRY TO SELECT DEVICES AND OPTIONS TO BE INITIALIZED. * DEVICE CHARACTERISTICS CAN ONLY BE CHANGED DURING * *AL*, *FT*, OR *HT* INITIALIZATION. IF THE *FP* * OPTION IS SELECTED, INITIALIZATION WAITS FOR THE * DEVICE TO BE FORMATTED. * * THE FOLLOWING FLAW DIRECTIVES CAN ONLY BE ENTERED VIA * THE K-DISPLAY. * * SLF = SET LOGICAL TRACK FLAW ON *EQ*. * CLF = CLEAR LOGICAL TRACK FLAW ON *EQ*. * SPF = SET PHYSICAL TRACK FLAW ON *EQ*. * CPF = CLEAR PHYSICAL TRACK FLAW ON *EQ*. * * DEFAULT VALUES ARE - * * FM = NO NAME NC = (DEVICE DEPENDENT - SEE *COMSMSP*) * UN = NO NAME EQ = 0 * DM = 0 NP = 0 * TY = 0 DN = 1 * LA = VALUE CONTAINED IN EST. * UA = VALUE CONTAINED IN EST. * * ******************** * * IT SHOULD BE NOTED THAT MSI INITIALIZES WITH THE NEW * PARAMETER INPUT. THEREFORE IF A FAMILY MASK OR DEVICE * NUMBER IS CHANGED THE RESULTANT EDIT OF THE OTHER DEVICES * IN THE FAMILY MAY MISS SOME FILES LEAVING THE SPACE * RESERVED BUT WITH NO CATALOG ENTRIES POINTING TO THE FILES. * TO AVOID THIS SITUATION, FIRST PERFORM AN INITIALIZE OF THE * DEVICE WITH ITS OLD PARAMETERS TO CLEAN UP THE FAMILY, * THEN REINITIALIZE WITH THE NEW PARAMETERS. * * ******************** * * * * THE *FM* PARAMETER WILL BE CONSIDERED A PACK NAME IF THE * DEVICE IS AN AUXILIARY DEVICE (*TY=X*). * * BEFORE ENTERING PARAMETERS CHECK THE K DISPLAY FOR * THE LIST OF EQUIPMENTS TO BE INITIALIZED, IF THE LIST * IS NOT COMPLETE ENTER THE INITIALIZE REQUESTS FOR THE * OTHER EQUIPMENTS AND ENTER *RERUN* TO UPDATE MSI. * * THE DEVICE WHICH IS TO BE INITIALIZED MUST FULFILL * CERTAIN REQUIRMENTS. IF THE DEVICE IS AVAILABLE AND/OR * HAS NO LABEL ERROR STATUS, IT MUST BE THE FIRST EQUIPMENT IN * THE CHAIN. *MSI* WILL NOT ALLOW A CHAINED EQUIPMENT TO BE * SPLIT IN THE MIDDLE OF THE CHAIN (SUCH AS INITIALIZING THE * THIRD UNIT IN A FOUR DEVICE CHAIN). DEVICES WHICH ARE TO BE * CHAINED TOGETHER AND ARE AVAILABLE AND/OR HAVE RECOVERED * LABELS, MUST HAVE THE INITIALIZE REQUESTS SET FOR EACH * EST ORDINAL IN THE CHAIN. * * THE INPUT TO THE FLAW ROUTINE IS CONSIDERED OCTAL * UNLESS THE DIGITS 8 OR 9 APPEAR IN THE NUMBER, OR * THE RADIX SYMBOL *D* IS APPENDED TO THE NUMBER. SPACE 4 *** DAYFILE MESSAGES. * * * EQXXX, ACTIVE FILES, CANNOT INITIALIZE.* * * * EQXXX, INACTIVE QUEUES INITIALIZED.* * * * EQXXX, UNABLE TO INITIALIZE IQFT.* * * * USER ACCESS NOT VALID.* * * * INTERNAL ERROR IN MSI.* * * * IQFT FILE INTERLOCKED.* * * * LINK DEVICE CANNOT BE ALTERED.* * * * MSI ABORTED INITIALIZE MAY NOT BE COMPLETE.* * * * NO INITIALIZE REQUESTS SET FOR MSI.* * * * NO IQFT FILE FOUND.* * * * UNABLE TO READ IQFT FILE.* * * * MSI HUNG.* SPACE 4 *** OPERATOR MESSAGES. * * *ENTER OLD PACK NAME* THIS INPUT MUST MATCH THE * OLD PACKNAME TO CONTINUE. * * *ENTER OLD FAMILY NAME* MUST BE ENTERED TO CONTINUE. * * *ENTER OLD USER NAME.* MUST BE ENTERED TO CONTINUE. * * *ENTER OLD DEVICE NUMBER* MUST BE ENTERED TO CONTINUE. * * *ENTER EST ORDINAL.* ENTER THE EST ORDINAL OF THE DEVICE * TO BE FLAWED OR INITIALIZED. THIS IS THE ONLY INPUT * WHICH WILL BE ACCEPTED AT THIS POINT. * * *ENTER PARAMETERS* ENTER ANY LEGAL PARAMETERS, THEN * ENTER *GO* TO PROCESS THE PARAMETERS. * * *ENTER FLAWS* ENTER ALL FLAWS FOR THE CURRENT EQUIPMENT, * ENTER *GO* TO PROCESS THE FLAWS. FLAWS MAY ALSO * BE ENTERED DURING AN INITIALIZE RUN. * * *ENTER IDENTITY OF EQXXX.* THE CURRENT DEVICE IS GOING TO * BE CHAINED TO ANOTHER DEVICE. TO VERIFY ITS * AVAILABILITY ENTER ITS (PACKNAME AND USER NAME), * (PACKNAME), (FAMILY NAME) OR (FAMILY NAME AND * DEVICE NUMBER) THE ORDER OF ENTRY IS NOT IMPORTANT. * THE ID ENTRIES MUST BE MADE TO CONTINUE PROCESSING. * * *END OF RUN* MSI COMPLETED REQUESTED FUNCTIONS. * * *ENTER CLEAR OR RERUN.* MSI WILL ONLY ACCEPT THE COMMANDS * *CLEAR* AND *RERUN* AT THIS TIME. * SPACE 4 *** OPERATOR ERROR MESSAGES. * * *UN MUST BE SPECIFIED.* DEVICE IS FLAGGED AS PRIVATE * THE USER NAME MUST BE SPECIFIED OR THE * PACK NAME CLEARED. * * *NC IS NOT A POWER OF 2.* THE NUMBER OF CATALOG TRACKS * MUST BE A POWER OF 2. CORRECT AND ENTER *GO*. * * *FAMILY MASK NOT EQUAL TO 377.* THE DEVICE MASK FOR THE * FAMILY DOES NOT EQUAL 377B, CORRECT AND ENTER * *GO* OR ENTER *GO* TO OVERRIDE. THIS IS THE ONLY * INPUT ACCEPTED AT THIS TIME. * * *EQ OR DN INCORRECT.* EST ORDINAL TOO BIG, DEVICE SPECIFIED * IS NOT MASS STORAGE, OR DEVICE NUMBER .GT. 77B WAS * SPECIFIED. CORRECT AND ENTER *GO.*. * * *EQXXX, NO FULL TRACK ACCESS.* INDICATES AN ATTEMPT TO * INITIALIZE WITH *OP=FT* AND NO FULL TRACK ACCESS * EXISTS. ENTER *CLEAR* TO CLEAR THE INITIALIZE REQUEST * OR *GO* TO INITIALIZE AS A HALF TRACK DEVICE. * * *INCORRECT ENTRY.* INPUT NOT ALLOWED - INCORRECT FORMAT OF * INPUT LINE OR MODIFICATION OF A TRACK RESERVED FOR * HARDWARE TESTING WAS ATTEMPTED. * * *FM OR PN MUST BE SPECIFIED.* ENTER THE REQUIRED * PARAMETER AND ENTER *GO*. * * *NP GREATER THAN 8.* ENTER CORRECT NUMBER OF PACKS THEN * ENTER *GO*. * * *DUPLICATE PN.* ANOTHER PACK IN THE SYSTEM HAS THE SAME * NAME. CHANGE THE PACKNAM OR REMOVE THE OTHER * DEVICE FROM THE SYSTEM (IF THIS IS DONE *CMS* MUST * RUN TO UPDATE THE MST TABLES). * * *NC EXCEEDS 200B.* THE NUMBER OF CATALOG TRACKS EXCEEDS * 200B. CORRECT AND ENTER *GO*. * * *CANNOT ALLOCATE DEVICE.* CANNOT ALLOCATE A MULTI-SPINDLE * DEVICE, NOT ENOUGH SPARE EQUIPMENT OR SPARES * NOT UP AND ALLOCATABLE OR AN ATEMPT WAS MADE TO * ALLOCATE A NONREMOVABLE DEVICE. DECREASE THE PACK * COUNT AND ENTER *GO* OR ENTER *CLEAR* TO VOID MSI RUN. * * *NOT AUXILIARY PACK.* ATTEMPT TO MAKE A PRIVATE PACK OUT * OF A NONAUXILIARY DEVICE. CORRECT AND ENTER *GO*. * * *DUPLICATE DN.* DEVICE NUMBER MATCHES ANOTHER IN THE * FAMILY CORRECT AND ENTER *GO* OR OVERRIDE BY * ENTERING *GO*. THIS IS THE ONLY INPUT ACCEPTED AT * THIS TIME. THE OVERRIDE IS ONLY ALLOWED IF THE * CONFLICTING DEVICE HAS THE FULL INITIALIZE STATUS SET. * * *DEVICE NOT REMOVABLE.* A NONREMOVABLE DEVICE WAS * SELECTED FOR CHAINING IN A MULTIPACK STRING. * ENTER *CLEAR* TO VOID THE MSI RUN. * * *NP NOT ALLOWED.* THE EQUIPMENT IS NOT A PACK TYPE * DEVICE. CORRECT AND ENTER *GO*. * * *DUPLICATE BITS IN MASK.* THE MASK FOR THE FAMILY HAS * DUPLICATE BITS SET, THIS DESTROYS THE INTEGRITY OF * THE PF SYSTEM BY CREATING AN AMBIGUOUS MAPING OF THE * USER INDEX. CORRECT AND ENTER *GO* OR ENTER *GO* TO * OVERRIDE. THIS IS THE ONLY INPUT ACCEPTED AT THIS * TIME. THE OVERRIDE IS ONLY ALLOWED IF THE CONFLICTING * DEVICE HAS THE FULL INITIALIZE STATUS SET. * * *DEVICE NOT FIRST IN CHAIN.* TO PREVENT DESTROYING THE * INTEGRITY OF A LINKED DEVICE INITIALIZATION WILL ONLY * TAKE PLACE ON AN AVAILABLE DEVICE IF IT IS THE FIRST * DEVICE IN THE CHAIN. THE ONLY INPUT ACCEPTED AT THIS * TIME IS *RERUN* OR *CLEAR*. * * *EQXXX, INITIALIZE BIT NOT SET.* EQXXX IS AVAILABLE AND HAS * A GOOD LABEL, IT CANNOT BE LINKED TO ANOTHER EQUIPMENT * UNLESS THE TOTAL INITIALIZE REQUEST IS SET. ENTER DSD * COMMAND *INITIALIZE,AL,XXX.*, THEN ENTER *K.RERUN.* TO * UPDATE THE STATUS OF MSI, OR ENTER *CLEAR* * TO VOID THE MSI RUN. * * *DN CANNOT BE ZERO.* A (DN = 0) WAS ENTERED TO CLEAR A * DUPLICATE DEVICE NUMBER ERROR. THE DN CANNOT BE ZERO * FOR A FAMILY TYPE DEVICE. ENTER A NONZERO VALUE * TO CONTINUE OR ENTER *GO* TO OVERRIDE THE ERROR. * * *EQXXX, FORMAT PENDING.* EQXXX HAS THE FORMAT PENDING BIT * SET AND CANNOT BE PROCESSED UNTIL FORMATTING IS * COMPLETE. * * *DEADSTART INITIALIZE REQUIRED.* THE PENDING INITIALIZE IS * FOR A NONREMOVABLE DEVICE WITH ERROR IDLE OR A LABEL * ERROR STATUS. THIS ERROR STATUS REQUIRES A DEADSTART * INITIALIZE. * * *DEFINED DEVICE ALREADY EXISTS.* THE DEVICE AS DEFINED * ALREADY EXISTS IN THE MULTI-MAINFRAME ENVIRONMENT. * IF THIS IS AN AUXILIARY DEVICE CHANGE THE PACKNAME * OR REMOVE THE OTHER PACK FROM THE COMPLEX. IF A * FAMILY DEVICE CHANGE THE DEVICE NUMBER TO A UNIQUE * VALUE FOR THIS FAMILY. * * *FULL INITIALIZE REQUIRED.* THE PENDING INITIALIZE IS FOR * A DEVICE WITH AN ERROR STATUS SET. THIS DEVICE MUST * BE INITIALIZED WITH A FULL INITIALIZE REQUEST. * * *EQXXX, TRACK LIMIT.* INSUFFICIENT SPACE ON THE DEVICE TO * COMPLETE THE INITIALIZATION. FREE UP SPACE AND ENTER * *RERUN* OR ENTER *CLEAR*. IF THIS ERROR OCCURS * DURING DEADSTART, REDEADSTART AND CHECK EQUIPMENT * USAGE IN THE *CMRDECK*. * * *UA NOT WITHIN LIMIT.* THE UPPER BOUND ACCESS LEVEL * EXCEEDS THAT CONTAINED IN THE EST. CORRECT AND * ENTER *GO*. * * *LA NOT WITHIN LIMIT.* THE LOWER BOUND ACCESS LEVEL * IS SMALLER THAN THAT CONTAINED IN THE EST. CORRECT * AND ENTER *GO*. * * *LA GREATER THAN UA.* THE LOWER ACCESS LEVEL LIMIT * IS GREATER THAN THE UPPER LIMIT. CORRECT AND * ENTER *GO*. * * *UNKNOWN ACCESS LEVEL NAME.* THE ACCESS LEVEL NAME * ENTERED IS INCORRECT. CORRECT AND ENTER *GO*. * * TO HALT PROCESSING ON THE CURRENT EQUIPMENT ENTER *CLEAR* * THE CURRENT INITIALIZE REQUEST WILL BE CLEARED AND MSI WILL * ADVANCE TO THE NEXT DEVICE WITH AN INITIALIZE REQUEST UP. * * TO CLEAR ALL PARAMETER INPUT WITHOUT CLEARING THE INITIALIZE * REQUEST ENTER *RERUN*. TITLE MACROS. *CALL COMCMAC *CALL COMCDCM CLEAR SPACE 4 ** CLEAR - CLEAR STORAGE. * * CLEAR FWA,COUNT,MASK * * IF *MASK* IS *X7* IT IS ASSUMED THAT (X7) = 0. PURGMAC CLEAR CLEAR MACRO L,C,M LOCAL A MACREF CLEAR IFNE M,X7,1 MX7 0 R= B2,L R= B3,L+C A SA7 B2 SB2 B2+B1 NE B2,B3,A ENDM ERROR SPACE 4 ** ERROR - DISPLAY KEYBOARD ERROR MESSAGE. * * ERROR NUMBER PURGMAC ERROR ERROR MACRO N MACREF ERROR .N MICRO 1,,*N* SA1 ERROR".N" RJ MTW ENDM SPACE 4 ** KEYMES - DISPLAY KEYBOARD MESSAGE. * * KEYMES MES PURGMAC KEYMES MACREF KEYMES KEYMES MACRO N SA1 N RJ MTW ENDM SPACE 4,10 ** COMMON DECKS. *CALL COMSDSL *CALL COMSDSP *CALL COMSESS *CALL COMSIOQ *CALL COMSLSD *CALL COMSMLS LIST X *CALL COMSMSI LIST * *CALL COMSMSP *CALL COMSMST *CALL COMSPFM *CALL COMSPRD QUAL PFU *CALL COMSPFU QUAL * CTCT EQU /PFU/CTCT CTCU EQU /PFU/CTCU CTLM EQU /PFU/CTLM CTOP EQU /PFU/CTOP CTSU EQU /PFU/CTSU FTCA EQU /PFU/FTCA FTPM EQU /PFU/FTPM FTSC EQU /PFU/FTSC *CALL COMSSFM *CALL COMSSSD *CALL COMSSSJ TITLE ASSEMBLY CONSTANTS. SPACE 4,5 * TABLE AND BUFFER SIZES. PKLL EQU 10B LENGTH OF PACK LINK TABLE CATBL EQU 1011B CATALOG BUFFER LENGTH SCRBL EQU 201B SCRATCH BUFFER LENGTH PARAML EQU 40B PARAMETER AREA LENGTH TITLE DISPLAY BUFFER LINE NUMBER TABLES. SPACE 4 TITLE PARAMETER HOLD AREA. ORG 106B ORIG BSS 1 COMMAND NAME (FOR *UPC*) PAR BSS PARAML PARAMETER AREA SPACE 4 * OPTION TABLE. OTBL EQU * LOC 0 PMFN BSS 1 FAMILY NAME PMUN BSS 1 USER NAME PMID BSS 1 ID ENTRY BSS 1 PMTY BSS 1 TYPE ENTRY PMLA BSS 1 LOWER ACCESS LEVEL PMUA BSS 1 UPPER ACCESS LEVEL NNME EQU *-PMFN PMDM BSS 1 DEVICE MASK PMSM BSS 1 SECONDARY MASK PMNC BSS 1 NUMBER CATALOG TRACKS PMNP BSS 1 NUMBER OF PACKS PMDN BSS 1 DEVICE NUMBER PMEQ BSS 1 EST ORDINAL PMOP BSS 1 OPTION PMXX BSS 1 GARBAGE INPUT NOCT EQU *-PMDM LOC *O OTBLL EQU *-OTBL OPTION TABLE LENGTH ORG OTBL SPACE 4 * TENP - TABLE OF ENTERED PARAMETERS. TENP BSS 0 BSS OTBLL SPACE 4 * PARC - TABLE OF CONVERTED PARAMETERS. PARC BSS 0 42/FN,18/0 BSSZ OTBLL 42/UI,18/0 42/ID,18/0 42/ID,18/0 06/TY,54/0 42/LA,18/0 42/UA,18/0 52/0,8/DM 52/0,8/SM 57/0,3/NC 57/0,3/NP 54/0,6/DN 54/0,6/EQ 57/0,3/OP 60/TRASH SPACE 4 * TARG - ARGUMENT TABLE. TARG BSS 0 FM ARG DARG,(TENP+PMFN),400B PN ARG DARG,(TENP+PMFN),400B UN ARG DARG,(TENP+PMUN),400B TY ARG DARG,(TENP+PMTY),400B ENLA BSS 0 LA ARG DARG,(TENP+PMLA),400B ENUA BSS 0 UA ARG DARG,(TENP+PMUA),400B DM ARG DARG,(TENP+PMDM),400B SM ARG DARG,(TENP+PMSM),400B NC ARG DARG,(TENP+PMNC),400B NP ARG DARG,(TENP+PMNP),400B DN ARG DARG,(TENP+PMDN),400B DARG BSSZ 1 DEFAULT ENTRY ENDP BSS 0 OP ARG DARG,(TENP+PMOP),400B BSSZ 1 ENEQ BSS 0 EQ ARG DARG,(TENP+PMEQ),400B BSSZ 1 ENMS BSS 0 DM ARG DARG,(TENP+PMDM),400B NC ARG DARG,(TENP+PMNC),400B BSSZ 1 ENDN BSS 0 DN ARG DARG,(TENP+PMDN),400B BSSZ 1 EIDS BSS 0 FM ARG DARG,(TENP+PMID),400B PN ARG DARG,(TENP+PMID),400B UN ARG DARG,(TENP+PMID+1),400B DN ARG DARG,(TENP+PMID+1),400B BSSZ 1 HNGP BSS 0 XX ARG DARG,(TENP+PMXX),400B BSSZ 1 DATB SPACE 4,10 * DATB - DISPLAY ADDRESS TABLE. DATB BSS 0 DISPLAY ADDRESS TABLE CON FNDS+1 CON UNDS+1 CON SCRB CON SCRB CON TYDS+1 CON LADS+1 CON UADS+1 CON DMDS+1 CON SMDS+1 CON NCDS+1 CON NPDS+1 CON DNDS+1 CON EQDS+1 CON SCRB CON SCRB DAST CON LTDS+1 LEFT SCREEN ADDRESS DASM CON LTDS+3 MATCH ADDRESS FOR TRT SPACE 4 FETS SPACE 4,10 * FETS. QFET FILEB CATB,CATBL,EPR,FET=8 *QFM* FET CATS FILEB CATB,CATBL,FET=10 *PFU* FET UIFT FILEB 0,0,FET=10 *PFU* UTILITY INTERLOCK FET OUTPUT FILEC 0,0 *ABT* PROCESSOR OUTPUT FET FLAGS SPACE 4 * FLAGS (CLEARED BY *PRS*). FLGS EQU * FWA OF FLAG BLOCK TEMP BSS 1 TEMPORARY CELL FLAG BSS 1 FLAGS NO PARAMETER INPUT NEEDED PVT BSS 1 FLAGS DEVICE IS PRIVATE PACK DSI BSS 1 FLAG DEADSTART INITIALIZE TOTL BSS 1 FLAG TOTAL INITIALIZE (NEGATIVE) PALF BSS 1 PACKS ALLOCATED FLAG 12/EQ NUMBER CNT BSS 1 PARAMETER COUNT/ CATALOG TRACK COUNT LCRC BSS 1 LOW CORE READ CONTROL WORD BUFI BSS 1 INDEX TO MST RECORDS IN BUFFER ARGP BSS 1 POINTER TO CURRENT ARGUMENT TABLE PFUF BSS 1 FLAG *PFU* ACTIVE UIFL BSS 1 UTILITY INTERLOCK FLAG (PFU) LINK BSS 1 LINK EST ORDINAL CLF BSS 1 FLAG *CLEAR* REQUEST ENTERED CLOV BSS 1 *CLEAR* OVERRIDE EST ORDINAL SSFL BSS 1 SECURE SYSTEM FLAG SSID CON MSSI SUBSYSTEM ID FLGSL EQU *-FLGS LENGTH OF FLAG BLOCK SPACE 4 ** TEMPORARY CELLS. EQ CON 0 EST ORDINAL (DISPLAY CODE) RQ CON 0 INITIALIZE REQUESTS PROCESSED * FLAW FLAG. FLFG CON 0 IF SET, FLAW PROCESSING TITLE MAIN LOOP. ** MSI - MAIN PROGRAM. MSI SB1 1 EREXIT ABT1 SET ABORT PROCESSOR ADDRESS BX6 X6-X6 CLEAR FLAW FLAG SA6 FLFG MSI1 RJ PRS PRESET RJ CIR CHECK INITIALIZATION REQUESTED SA1 RQ PL B6,MSI3 IF INITIALIZATION REQUESTED NZ X1,MSI2 IF AT LEAST ONE REQUEST PROCESSED MESSAGE MESC * NO INITIALIZE REQUESTS SET FOR MSI.* MSI2 KEYMES EDRN *END OF RUN.* SYSTEM IMS,R,,CIT CLEAR *CMS* INTERLOCK EXCST =C*CMS.* CALL *CMS* TO UPDATE SYSTEM CONFIGURATION ENDRUN * IF EQUIPMENT AVAILABLE AND NOT DEADSTART STATUS OR * IF EQUIPMENT UNAVAILABLE AND IF THE LABEL WAS RECOVERED, * REQUEST THE VERIFICATION OF THE DEVICES PARAMETERS AND COPY * THE INFORMATION TO THE K DISPLAY. OTHERWISE GO REQUEST INPUT * OF THE NEW PARAMETERS. MSI3 SX6 X1+B1 INCREMENT REQUESTS PROCESSED SA6 A1 RJ DSP DISPLAY EQUIPMENTS TO BE PROCESSED RJ DIO DISPLAY INITIALIZE OPTIONS SA5 PARC+PMEQ R= X1,ESTE IX1 X5*X1 SA1 ESTB+X1+EQDE GET EST ENTRY SX7 TARG SA4 ESTF+X5 SA7 ARGP SA3 X4+STLL MX6 6 LX6 -18 BX7 -X6*X3 CLEAR ERROR STATUS LX1 59-54 SA7 X4+STLL BX3 X6*X3 LX7 59-LIAL SA2 X4+PFGL NG X7,MSI4.1 IF DEADSTART INITIALIZE LX3 24 AX2 12 ZR X3,MSI5 IF NO ERROR STATUS SA4 TOTL NG X4,MSI4 IF FULL INITIALIZE ERROR 25 *FULL INITIALIZE REQUIRED.* EQ MSI6 HALT PROCESSING ON CURRENT DEVICE MSI4 NZ X2,MSI7 IF RECOVERED LABEL SX6 X3-STLE NZ X6,MSI4.1 IF NOT LABEL ERROR LX1 54-56 PL X1,MSI7.1 IF NOT REMOVABLE DEVICE RJ SAL SET ACCESS LEVEL DEFAULTS EQ MSI10 PROCESS KEYBOARD INPUT MSI4.1 NG X1,MSI5 IF EQUIPMENT UNAVAILABLE * IF INITIALIZE SET, DEVICE AVAILABLE AND DEADSTART STATUS, * INITIALIZE AND DO NOT STOP FOR OPERATOR INTERVENTION. MX6 1 BX7 X7-X7 SA6 DSI FLAG DEADSTART INITIALIZE EQ MSI9 DEADSTART INITIALIZE (COPY PARAMETERS) MSI5 SA4 ESTF+X5 SA3 X4+PFGL MX1 -3 AX3 3 BX1 -X1*X3 BX6 -X5 ZR X1,MSI7 IF ONE OF M SA6 CLOV SET OVERRIDE *CLEAR* INDICATOR ERROR 18 *DEVICE NOT FIRST IN CHAIN.* MSI6 SX6 HNGP SX7 7777B SA6 ARGP SA7 CNT RJ PKI STOP FURTHER PROCESSING KEYMES ENCL *ENTER CLEAR OR RERUN.* EQ MSI6 LOOP MSI7 SA4 ESTF+X5 CHECK STATUS OF DEVICE SA1 X4+DULL SA2 X4+ACGL SA3 X4+MDGL SA4 X4+STLL NG X3,MSI8 IF DEVICE REMOVABLE LX2 59-4 PL X2,MSI8 IF ERROR IDLE NOT SET MSI7.1 ERROR 24 *DEADSTART INITIALIZE REQUIRED.* EQ MSI6 STOP PROCESSING MSI8 MX3 -12 LX4 -12 BX7 -X3*X4 MX3 -11 BX1 -X3*X1 MX0 18 LX4 59-LIPF+12 BX7 X7+X1 SA2 CLF CHECK *CLEAR* FLAG ZR X7,MSI9 IF NO ACTIVE FILES/USERS NZ X2,CLEAR IF *CLEAR* FLAG SET PL X4,MSI9 IF NOT INITIALIZING PF,S LX0 -18 SA4 EQ LX4 42-18 SA1 MESA BX7 -X0*X1 BX7 X7+X4 SA7 A1 MESSAGE MESA * EQXXX, ACTIVE FILES, CANNOT INITIALIZE.* RJ ABT ABORT *MSI* MSI9 SA7 CLF CLEAR *CLEAR* FLAG RJ CPY COPY PARAMETERS TO K-DISPLAY SX6 B1 ALLOW FLAW ENTRIES TO NOW BE MADE SA6 CFEB SA1 DSI SA2 TOTL MI X1,MSI12 IF DEADSTART INITIALIZE PL X2,MSI12 IF NOT TOTAL INITIALIZE MSI10 SX7 200 SA7 CNT KEYMES REQPM *ENTER PARAMETERS.* MSI11 RJ PKI PROCESS KEYBOARD INPUT MSI12 RJ PPM PROCESS PARAMETERS ZR X7,MSI11 IF MORE INPUT NEEDED RJ CRE CHECK REQUIRED ENTRIES ZR X6,MSI12 IF PARAMETERS TO PROCESS SA4 TOTL SA5 PARC+PMEQ NG X4,MSI12.1 IF TOTAL INITIALIZE SA4 X5+ESTF SA4 X4+STLL LX4 59-LIPF PL X4,MSI14.1 IF NOT *PF* INITIALIZE MSI12.1 BSS 0 RJ UMS UPDATE MSTS ZR X1,MSI13 IF DEVICE ALLOWED KEYMES ERROR22 *DEFINED DEVICE ALREADY EXISTS.* EQ MSI11 PROCESS NEW INPUT MSI13 RJ EDF SEPARATE FAMILY FROM OTHER EQUIPMENTS SA1 ESTF+B7 SA4 X1+MDGL LX4 59-58 NG X4,MSI14 IF AUXILIARY DEVICE RJ CMS CHECK MASKS MI X7,MSI12 PROCESS NEW PARAMETERS SA5 PARC+PMEQ SA1 ESTF+X5 LX1 59-54 NG X1,MSI14 IF DEVICE UNAVAILABLE RJ ECT EDIT CATALOGS RJ EDD EDIT DIRECT ACCESS FILES IN FAMILY MSI14 SA5 PARC+PMEQ SYSTEM IMS,R,X5,IND INITIALIZE PERMANENT FILES MSI14.1 RJ ISF INITIALIZE SPECIAL FILES SA1 FLAI SX1 X1-TFLA ZR X1,CLEAR IF NO FLAWS SA1 TFLA BX2 X5 LX2 59-35 BX7 X2+X1 SET EQ NUMBER IN FLAW TABLE SA7 A1 RESET TABLE WITH EQ NUMBER ADDED SYSTEM IMS,R,TFLA,SFL SET FLAWS * CHECK FOR MORE DEVICES TO BE INITIALIZED. CLEAR BSS 0 CLEAR INITIALIZE REQUEST SA5 PARC+PMEQ SA4 CLOV CHECK OVERRIDE ON THIS EQUIPMENT SA2 PKL-1 SA1 ESTF+X5 SA1 X1+STLL SX6 B1 PL X4,MSI15 IF OVERRIDE NOT SET IX6 X5+X4 CHECK EQUIPMENT MSI15 MX3 60-LIRP CLEAR CURRENT INITIALIZE REQUESTS BX1 -X3*X1 MX3 48-LIMF LX3 48 BX7 -X3*X1 SA7 A1 SA1 CLF CHECK FOR CLEAR OPERATION ZR X1,MSI16 IF NOT *CLEAR* ZR X6,MSI16 IF OVERRIDE SET FOR THIS EST ORDINAL RJ EDF SEPARATE THE FAMILY FROM OTHER DEVICES RJ CMS CHECK MASKS MI X7,MSI PROCESS NEW DATA AS A RERUN SA2 PKL-1 SA5 PARC+PMEQ MSI16 ZR X5,MSI17 IF EST ORDINAL ZERO SB5 X5 SAVE EST ORDINAL SYSTEM IMS,R,X5,CIN CLEAR CURRENT INITIALIZE REQUEST SA2 A2+B1 SX5 X2 NZ X5,MSI16 IF LINKED PACKS CLEAR THEIR INITIALIZE REQUESTS. SA1 ESTF+B5 CHECK *ISD* INTERLOCK LX1 59-58 PL X1,MSI17 IF NO INTERLOCK SET MSI16.1 SA2 PARC+PMEQ BX6 X2 LX6 48 SA6 CIRB SYSTEM IMS,R,CIRB,ISD CLEAR DEVICE INTERLOCK SA1 CIRB PL X1,MSI16.1 IF INTERLOCK NOT CLEAR MSI17 RJ CDS CLEAR THE DISPLAY EQ MSI1 LOOP FOR MORE EQUIPMENTS TITLE AUXILIARY PROCESSORS. RERUN SPACE 4,10 ** RERUN - RERUN *MSI*. RERUN RJ CDS CLEAR DISPLAY SA1 RERNA LOAD RERUN ADDRESS SB2 X1 JP B2 RERUN THE SELECTED OPTION RERNA VFD 42/0,18/MSI2 TKL SPACE 4,10 ** TKL - TRACK LIMIT PROCESSING. TKL SA1 PARC+PMEQ SET EST ORDINAL IN TRACK LIMIT MESSAGE RJ COD SA4 ERROR26 MX7 -18 LX6 48-18 LX7 48-18 BX6 -X7*X6 BX7 X7*X4 BX6 X6+X7 SA6 A4 ERROR 26 *EQXXX, TRACK LIMIT.* EQ MSI6 STOP PROCESSING SPACE 4 *** FLAW - ENTER DEVICE FLAWS. FLAW SX6 FLAW SET RERUN ADDRESS SA6 RERNA SB1 1 SX6 B1+ SET FLAW FLAG SA6 FLFG RJ PRS MX6 60 SET OVERRIDE CONTROL SA6 CLOV SETRNR NOROLL PREVENT JOB ROLLOUT SA5 LRDS SET UP DISPLAY CONTROL WORD BX7 X5 SA7 KDCW SA5 BLK CLEAR PAGE 2 OF 2 COMMENT BX7 X5 SA7 LNDS+3 SA5 FLAA BX7 X5 SA7 LNDS+4 SA5 FLAB BX7 X5 SA7 L SA7 R RJ REQ REQUEST EQUIPMENT SA1 PARC+PMEQ BX6 -X1 SA6 CLOV SET OVERRIDE CONTROL FOR THIS EQUIPMENT RJ COD SX6 B1 ALLOW FLAW ENTRIES TO NOW BE MADE SA6 CFEB BX6 X4 SA6 INDS+1 SET EST ORDINAL KEYMES ENFLS *ENTER FLAWS.* RJ PKI PROCESS KEYBOARD SA1 PARC+PMEQ SA2 TFLA LX1 59-35 BX7 X1+X2 SET EQ NUMBER IN TABLE SA7 TFLA SYSTEM IMS,R,A7,SFL ENDRUN FLAA DATA 1L FLAB VFD 18/0,18/KDTA,24/0 DISPLAY CONTROL WORD FLAI CON TFLA SPACE 4,10 ** FLAW TABLE FOR *IMS* CALL. * *T WORD1 12/ TYPE, 12/ 0, 12/ EQ, 12/ 0, 12/ TRACK *T,WORD2-N 12/ TYPE, 12/ 0, 12/ 0, 12/ 0, 12/ TRACK * * EQ = EST ORDINAL * TYPE = 0 - END TABLE * 1 - SET FLAW * 2 - CLEAR FLAW * TRACK = LOGICAL TRACK TO FLAW TFLA BSSZ PNFE FLAW TABLE TITLE MAJOR PROCESSORS. REQ SPACE 4,10 ** REQ - REQUEST EST ORDINAL. * * EXIT (PARC+PMEQ) = EST ORDINAL. * * USES X - 1, 2, 4, 5, 6, 7. * A - 1, 2, 4, 5, 6, 7. * * CALLS PKI, COD. * * MACROS ERROR, KEYMES. REQ3 SA1 X4+ESTF SA1 X1+STLL MX2 1 MI X1,REQ2 IF FORMAT PENDING LX2 LIAL-59 BX7 X1+X2 SET INITIALIZE REQUEST IN MST IMAGE LX2 LIRP-LIAL BX7 X7+X2 SA7 A1 REQ SUBR ENTRY/EXIT SX6 ENEQ SA6 ARGP KEYMES REQEQ *ENTER EST ORDINAL.* REQ1 SX7 B1+ SA7 CNT RJ PKI REQUEST EQUIPMENT SA4 PARC+PMEQ R= X5,ESTE IX5 X4*X5 SA5 ESTB+X5+EQDE GET EST ENTRY MI X5,REQ3 IF EQ IS MASS STORAGE DEVICE ERROR 5 *EQ OR DN INCORRECT.* EQ REQ1 SEND ERROR MESSAGE AND WAIT ON CORRECTION REQ2 BX1 X4 RJ COD MX7 -18 SET EST ORDINAL IN FORMAT PENDING MESSAGE LX6 30 SA4 ERROR21 LX7 30 BX6 -X7*X6 BX7 X7*X4 BX6 X6+X7 SA6 A4 ERROR 21 *EQXXX, FORMAT PENDING.* EQ REQ1 WAIT ON NEW INPUT DSP SPACE 4,10 ** DSP - DISPLAY EST ORDINALS. * * USES X - 1, 2, 3, 4, 5, 7. * A - 1, 2, 7. * B - 2, 3, 4, 5, 6, 7. * * MACROS CLEAR. DSP SUBR ENTRY/EXIT SB4 OPDS+1 SA1 BLK CLEAR THE EQUIPMENT LIST BX7 X1 CLEAR B4,4,X7 CLEAR INDSA+1,4,X7 SB2 B0 SB5 B0 MX4 -3 SB7 B0 DSP1 SA1 ESTF+B2 SB2 B2+B1 SB3 B2-ESMX ZR B3,DSPX IF END OF EQUIPMENTS ZR X1,DSP1 IF EMPTY LINK SA2 X1+STLL MI X2,DSP1 IF FORMAT PENDING LX2 59-LIRP SX3 B2-B1 PL X2,DSP1 IF NO INITIALIZE REQUESTS SB5 B5+B1 BX5 -X4*X3 AX3 3 BX7 -X4*X3 LX7 6 BX3 X4*X3 LX3 9 IX7 X3+X7 SA3 DSPA IX7 X7+X5 IX7 X7+X3 SA1 B4+B7 MERGE EQUIPMENT IN DISPLAY LX7 42 EQ B5,B1,DSP2 IF FIRST EQUIPMENT IN WORD LX7 -30 SB5 B0 SX2 B7-3 SB7 B7+B1 NEXT WORD NZ X2,DSP2 IF NOT OVERFLOW TO SECOND LINE SB6 INDSA+1 EQ B4,B6,DSPX IF OVERFLOW SECOND LINE SB4 B6 SB7 B0 DSP2 IX7 X7+X1 SET EST ORDINAL IN MESSAGE SA7 A1 EQ DSP1 LOOP DSPA CON 3R000-3R CPY SPACE 4,10 ** CPY - COPY MST PARAMETERS TO DISPLAY BLOCK. * * USES ALL REGISTERS. * * CALLS PKI, COD. * * MACROS KEYMES. CPY SUBR ENTRY/EXIT SA1 DSI SA5 PARC+PMEQ MX7 1 SA7 FLAG FLAG NO PARAMETER INPUT NEEDED SA4 ESTF+X5 ADDRESS OF MST MI X1,CPY6 IF DEADSTART INITIALIZE SA1 X4+PUGL MX6 42 BX1 X6*X1 BX6 X4 SA6 TEMP SAVE THE MST POINTER MX7 1 ZR X1,CPY2 IF NOT PRIVATE PACK SA7 PVT SET PRIVATE PACK FLAG CPY1 KEYMES ENOUN *ENTER OLD USER NAME.* SX7 01 SA7 CNT RJ PKI PROCESS KEYBOARD INPUT SA4 TEMP SA2 PARC+PMUN SA3 X4+PUGL BX1 X2-X3 AX1 18 NZ X1,CPY1 IF USER NAMES DO NOT MATCH CPY2 SA1 X4+MDGL LX1 59-58 PL X1,CPY4 IF NOT AN AUXILIARY DEVICE CPY3 KEYMES ENOPN *ENTER OLD PACK NAME.* SX7 1 SA7 CNT RJ PKI PROCESS KEYBOARD SA4 TEMP SA2 PARC+PMFN SA3 X4+PFGL BX1 X2-X3 AX1 18 NZ X1,CPY3 IF PACKNAMES DO NOT MATCH EQ CPY6 GO TO NEXT PARAMETER CPY4 SA1 X4+PFGL MX0 42 BX1 X0*X1 ZR X1,CPY6 IF NO FAMILY NAME CPY5 KEYMES ENOFN *ENTER OLD FAMILY NAME.* SX7 1 SA7 CNT RJ PKI PROCESS KEYBOARD INPUT SA4 TEMP SA2 PARC+PMFN SA3 X4+PFGL MX0 42 BX1 X2-X3 BX1 X0*X1 TEST FAMILY NAME NZ X1,CPY5 IF FN DO NOT MATCH CPY6 SB5 X4 SET MST POINTER RJ PTY PROCESS TYPE MX0 -18 SA1 PARC+PMEQ SX1 X1+1000B ENSURE LEADING ZEROES RJ COD SA2 =7L BX6 -X0*X6 BX6 X6+X2 LX6 -18 SA6 EQDS+1 SET EST ORDINAL SA1 B5+ALGL MX6 -12 LX1 59-11 BX1 -X6*X1 RJ COD CONVERT NUMBER OF CATALOG TRACKS BX6 X4 SA6 NCDS+1 RJ SAL SET ACCESS LEVEL DEFAULTS SA4 B5+DDLL GET PACK COUNT MX6 -3 LX4 12 BX1 -X6*X4 SX1 X1+B1 ADJUST COUNT RJ DTY CHECK FOR PACK TYPE DEVICE PL X3,CPY7 IF NOT PACK DEVICE BX6 X1 SA6 PARC+PMNP SET PACK COUNT IN PARM LIST + RJ COD CONVERT NUMBER OF PACKS BX6 X4 SA6 NPDS+1 CPY7 SA1 B5+MDGL SA2 DSI LX1 59-58 MI X1,CPY9 IF AUXILIARY PACK SX7 B5 SA7 TEMP SA3 B5+PFGL MX6 -6 LX3 59-11 BX6 -X6*X3 BX7 X7-X7 SA6 PARC+PMDN SET DEVICE NUMBER IN PARAMETER BLOCK MI X2,CPY9 IF DEADSTART INITIALIZE ZR X6,CPY10 IF DN EQUALS ZERO SA7 A6+ CLEAR THE DEVICE NUMBER CPY8 KEYMES ENODN *ENTER OLD DEVICE NUMBER.* SX7 1 SA7 CNT RJ PKI PROCESS KEYBOARD SA4 TEMP SA2 PARC+PMDN SA3 X4+PFGL MX6 -6 LX3 59-11 BX1 -X6*X3 MASK OFF OLD DN BX1 X1-X2 NZ X1,CPY8 IF DEVICE NUMBERS DO NOT MATCH SB5 X4 SAVE MST ADDRESS EQ CPY10 CLEAR *ID* AND *NC* CPY9 SA1 B5+PFGL MX6 -6 LX1 59-11 BX1 -X6*X1 RJ COD CONVERT DEVICE NUMBER BX6 X4 SA6 DNDS+1 CPY10 BX7 X7-X7 SA7 PARC+PMID ID SA7 A7+B1 SA7 PARC+PMNC NC EQ CPYX RETURN PPM SPACE 4,10 ** PPM - PROCESS PARAMETERS. * * EXIT (X7) = ZERO IF MORE PARAMETERS NEEDED. * (B5) = MST POINTER. * * USES ALL REGISTERS. * * CALLS CPN, DTY, MTW, PTY, VLC. * * MACROS ERROR, KEYMES. PPM SUBR ENTRY/EXIT SB4 PARC SB6 B0 SB3 PMEQ SA1 PARC+PMEQ SA1 X1+ESTF SB5 X1 MST POINTER PPM1 SA5 B4+B6 CHECK PARAMETER LIST NZ X5,PPM2 IF PARAMETER ENTERED SB6 B6+B1 NE B3,B6,PPM1 IF NOT END OF PARAMETERS KEYMES REQPM *ENTER PARAMETERS.* SA1 FLAG BX7 X1 EQ PPMX EXIT PARAMETER ENTRY NEEDED PPM2 RJ CMC CHECK MODE CHANGE ZR X7,PPM23 IF NO FULL TRACK ACCESS SA1 PARC+PMDM PROCESS MASKS SA2 PARC+PMSM SA3 B5+PUGL MX0 -16 LX2 8 BX3 X0*X3 CLEAR OLD MASKS BX6 X1+X2 BX6 X6+X3 SA6 A3 RJ PTY PROCESS TYPE PPM3 SA1 PVT SA2 PARC+PMFN MX7 42 BX3 X2 SA4 PARC+PMUN MI X1,PPM5 IF PRIVATE PACK (PVT SET) NZ X4,PPM5 IF PRIVATE PACK (UN DEFINED) ZR X2,PPM10 IF NO FAMILY NAME DEFINED * PROCESS FAMILY NAME. SA1 B5+PFGL BX6 -X7*X1 BX6 X2+X6 SA6 A1 BX6 X6-X6 SA6 PVT CLEAR PRIVATE PACK FLAG EQ PPM10 GO TO NEXT PARAMETER * PROCESS PACK NAME AND USER NAME. PPM5 SA5 B5+MDGL SA1 B5+PFGL SA2 B5+PUGL BX6 X5 MX5 42 BX0 -X5*X1 LX6 59-58 BX1 X5*X1 OLD PACK NAME BX7 -X5*X2 ZR X4,PPM7 IF NO NEW UN USE OLD ONE SA5 NULL BX5 X5-X4 TEST FOR *NULL* NZ X5,PPM6 IF NOT NULL MX6 0 CLEAR PVT SA7 B5+PUGL SA6 PVT SA6 PARC+PMUN EQ PPM3 LOOP PPM6 PL X6,PPM21 IF NOT AUXILIARY DEVICE MX6 1 BX7 X7+X4 SET NEW USER NAME SA6 PVT SA7 A2 UPDATE MST LX6 1 SA6 PARC+PMNC FORCE NC TO 1 EQ PPM8 CONTINUE PPM7 BX7 X5*X2 CHECK FOR OLD UN ZR X7,PPM22 IF NO OLD UN PPM8 NZ X3,PPM9 IF PACKNAM DEFINED NZ X1,PPM10 GO TO NEXT PARAMETER ERROR 7 *FN OR PN MUST BE SPECIFIED.* MX7 0 SA7 PVT EQ PPMX ERROR EXIT PPM9 BX6 X3+X0 SET NEW PACK NAME SA6 A1 PPM10 RJ CPN CHECK FOR DUPLICATE PACK NAME ZR X7,PPMX IF ERROR * PROCESS NUMBER OF CATALOG TRACKS. SA4 B5+ALGL MX0 -12 LX4 -12 SA3 B5+PUGL MX1 -8 BX3 -X1*X3 BX6 X0*X4 LX6 12 ZR X3,PPM13 IF NO MASK SET - NO CATALOGS NEEDED SA3 PARC+PMNC SA5 PARC+PMEQ NZ X3,PPM11 IF NC SPECIFIED BX3 -X0*X4 DEFAULT COUNT FROM MST PPM11 NZ X3,PPM12 IF NOT USING EQUIPMENT DEFAULT RJ DTY GET DEFAULT FOR DEVICE PPM12 BX1 -X0*X3 VALIDATE NC CX6 X1 SB4 X1-201B BX4 X0*X4 CLEAR OLD COUNT SB6 X6 PL B4,PPM20 IF NC TOO LARGE BX6 X4+X1 SET NEW COUNT NE B6,B1,PPM19 IF NC NOT POWER OF 2 LX6 12 * PROCESS NUMBER OF PACKS. PPM13 SA6 A4 SA1 PARC+PMNP ZR X1,PPM14 IF NUMBER OF PACKS NOT SPECIFIED SA2 B5+DDLL MX7 -57 MX0 -3 SX1 X1-1 BX6 X0*X1 LX7 -9 BX7 -X7*X2 CLEAR CURRENT UNIT COUNT NZ X6,PPM18 IF NP .GT. 7 LX1 -12 POSITION PACK COUNT BX7 X7+X1 LX1 12 SA7 A2 RJ DTY AX3 59 BX3 -X3*X1 NZ X3,PPM17 IF NOT PACK TYPE DEVICE AND NP .NE. 1 RJ ALP ALLOCATE PACKS BX7 X7-X7 MX0 -3 PL X5,PPMX IF UNABLE TO ALLOCATE PACKS PPM14 SA2 PARC+PMEQ RESTORE EST POINTER SA2 X2+ESTF SA1 X2+DDLL GET NUMBER OF PACKS SB5 X2 LX1 12 SA2 B5+MDGL SET SECTOR LIMITS BX1 -X0*X1 BX5 X1 SAVE PACK COUNT SX1 X1+B1 MX0 -11 BX2 X0*X2 LX2 -36 BX6 -X0*X2 LX2 36 IX6 X1*X6 BX6 X2+X6 SA6 A2 * PROCESS DEVICE NUMBER. SA1 PARC+PMDN SA2 B5+PFGL SA3 B5+MDGL MX0 -6 BX2 X0*X2 CLEAR OLD N/M BX2 X2+X5 SET NEW N/M BX4 X0*X1 LX0 59-47 LX3 59-58 LX1 12 AX3 59 MX7 1 NZ X1,PPM15 IF DN SPECIFIED BX1 -X0*X2 NZ X1,PPM15 IF OLD DN SET SX1 10000B SET DEFAULT TO *1* PPM15 NZ X4,PPM16 IF *DN* TOO LARGE BX2 X0*X2 CLEAR OLD DN BX1 -X3*X1 CLEAR DN FOR AUXILIARY DEVICE BX6 X2+X1 ADD IN NEW DN SA6 A2 UPDATE PFGL * PROCESS DEVICE ACCESS LEVEL LIMITS. VERIFY THAT ACCESS * LEVEL VALUES ENTERED ARE VALID ENTRIES. WHEN RUNNING IN * UNSECURED MODE, NO VALIDATION AGAINST THE EQUIPMENT-S * DEFAULT LIMITS (IN THE EST) IS MADE, SINCE THESE DEFAULT * VALUES WILL ALWAYS BE ZERO. SA1 PARC+PMUA DETERMINE IF KNOWN UPPER LEVEL ENTERED SB2 B0 RJ VLC VERIFY UPPER ACCESS LEVEL NG X2,PPM27 IF UNKNOWN VALUE ENTERED SB4 X2 STORE VALUE SA1 PARC+PMLA DETERMINE IF KNOWN LOWER LEVEL ENTERED RJ VLC VERIFY LOWER ACCESS LEVEL NG X2,PPM27 IF UNKNOWN VALUE ENTERED SB3 X2+ STORE VALUE SA1 SSFL GT B3,B4,PPM26 IF LA .GT. UA ZR X1,PPM15.1 IF UNSECURED SYSTEM SA1 PARC+PMEQ GET DEFAULT LIMITS FROM EST R= X4,ESTE IX4 X1*X4 SA4 ESTB+1+X4 LX4 -12 GET UPPER LIMIT MX0 -3 BX2 -X0*X4 SB7 X2 (B7) = UPPER LIMIT LX4 -3 GET LOWER LIMIT BX2 -X0*X4 SB6 X2+ (B6) = UPPER LIMIT GT B4,B7,PPM24 IF VALUE SPECIFIED .GT. LIMIT LT B3,B6,PPM25 IF VALUE SPECIFIED .LT. LOWER LIMIT PPM15.1 SA1 B5+PFGL SET VALUES INTO MST MX0 -6 LX0 6 BX2 X0*X1 SX3 B3 POSITION LOWER LEVEL LX3 9 SX4 B4 POSITION UPPER LEVEL LX4 6 BX3 X3+X4 SET INTO *PFGL* BX6 X2+X3 SA6 A1 EQ PPMX RETURN PPM16 ERROR 5 *EQ OR DN INCORRECT.* MX7 0 EQ PPMX RETURN PPM17 ERROR 16 *NP NOT ALLOWED.* MX7 0 EQ PPMX RETURN PPM18 ERROR 8 *NP GREATER THAN 8.* MX7 0 EQ PPMX RETURN PPM19 ERROR 2 *NC IS NOT A POWER OF 2.* MX7 0 EQ PPMX RETURN PPM20 ERROR 10 *NC EXCEEDS 200B.* MX7 0 EQ PPMX RETURN PPM21 ERROR 12 *NOT AUXILIARY PACK.* MX7 0 EQ PPMX RETURN PPM22 ERROR 1 *UN MUST BE SPECIFIED.* MX7 0 SA7 PVT EQ PPMX RETURN PPM23 ERROR 23 * EQXXX, NO FULL TRACK ACCESS.* BX7 X7-X7 EQ PPMX RETURN PPM24 ERROR 27 *UA NOT WITHIN LIMIT.* MX7 0 EQ PPMX RETURN PPM25 ERROR 28 *LA NOT WITHIN LIMIT.* MX7 0 EQ PPMX RETURN PPM26 ERROR 29 *LA GREATER THAN UA.* MX7 0 EQ PPMX RETURN PPM27 ERROR 30 *UNKNOWN ACCESS LEVEL NAME.* MX7 0 EQ PPMX RETURN NULL DATA 4LNULL CPN SPACE 4,10 ** CPN - CHECK PACKNAMES. * * ENTRY (B5) = MST POINTER OF CURRENT EQUIPMENT. * * EXIT (X7) = 0 IF DUPLICATES OCCURED. * * USES X - 1, 2, 3,4, 5, 6, 7. * A - 1, 2, 3, 4, 5, 7. * B - 7. * * MACROS ERROR. CPN SUBR ENTRY/EXIT SA1 B5+MDGL SA2 ESTF-1 SA4 B5+PFGL LX1 59-58 BX7 X1 SA7 CPNB MX7 42 BX4 X7*X4 CURRENT PACKNAME CPN1 SA2 A2+B1 SB7 A2-ESTF-ESMX-1 ZR B7,CPNX IF END OF EQUIPMENTS ZR X2,CPN1 IF EMPTY LINK SA3 X2+PFGL BX1 X3-X4 TEST NAME SX6 B5 BX1 X7*X1 IX6 X2-X6 NZ X1,CPN1 IF NO MATCH ZR X6,CPN1 IF CURRENT EQUIPMENT SA5 X2+MDGL LX5 59-58 SA1 CPNB NG X1,CPN2 IF CURRENT DEVICE IS AUXILIARY PL X5,CPN1 IF PART OF SAME FAMILY CPN2 AX3 3 SA1 CPNA MX6 -3 SA5 X2+STLL BX6 -X6*X3 BX5 X1*X5 CHECK ERROR STATUS AND INITIALIZE NZ X6,CPN1 IF NOT 1 OF M PACKS NZ X5,CPN1 IF ERROR STATUS OR INITIALIZE ERROR 9 *DUPLICATE PN.* MX7 0 EQ CPNX ERROR EXIT CPNA VFD 12/3600B,12/77B,36/0 INITIALIZE/STATUS MASK CPNB CON 0 STATUS OF CURRENT DEVICE ALP SPACE 4,10 ** ALP - ALLOCATE PACKS. * * ENTRY (X1) = NUMBER OF UNITS-1 TO ALLOCATE. * * EXIT (X5) .LT. 0 IF ABLE TO ALLOCATE. * TO *ABT* IF ACTIVE FILES ON LINKED EQUIPMENT. * * USES X - ALL. * A - 1, 2, 3, 4, 5, 6, 7. * B - 2. * * CALLS ALD, COD. * * MARCOS ERROR, MESSAGE. ALP6 MX6 1 SET PACK ALLOCATED FLAG BX7 X7-X7 SET END OF PACK EQUIPMENT LIST SA6 A5 SA7 B2 ALP SUBR ENTRY/EXIT SB2 PKL PACK EQUIPMENT LIST ADDRESS SA5 PALF PACK ALLOCATION FLAG NG X5,ALPX IF ALREADY ALLOCATED SA2 PARC+PMEQ FIRST EQUIPMENT OF PACK SA4 ESTF+X2 MST ADDRESS R= X3,ESTE IX3 X2*X3 SA3 ESTB+X3+EQDE GET EST ENTRY SA4 X4+DDLL MX0 -3 LX3 59-55 AX4 51 BX6 -X0*X4 SET ORIGINAL UNIT COUNT SX7 X6+B1 IX5 X1-X7 UNIT COUNT-1 REMAINING TO ALLOCATE NG X5,ALP6 IF NO MORE UNITS TO ALLOCATE PL X3,ALP1 IF NOT *LDAM* DEVICE RJ ALD ALLOCATE *LDAM* DEVICE PL X5,ALP4 IF DEVICE NOT ALLOCATED EQ ALP6 RETURN ALP1 SA3 A3+ GET EST ENTRY SA1 ALPA STATUS MASK BX2 X1*X3 DESIRED EQUIPMENT STATUS LX3 59-56 PL X3,ALP3 IF DEVICE NOT REMOVABLE ALP2 SA4 ESTF+X2 READ *STLL* WORD OF MST SA4 X4+STLL AX4 3 POSITION EST LINK MX6 -9 BX6 -X6*X4 LX7 39 ZR X6,ALP4 IF END OF CHAINABLE DEVICE SA6 ALPB R= X3,ESTE IX3 X4*X3 SA3 ESTB+X3+EQDE GET EST ENTRY BX6 X2-X3 SA4 ESTF+X4 MST ADDRESS BX3 X1*X6 NZ X3,ALP4 IF STATUS NOT CORRECT SA3 ALPB GET EST ORDINAL BX6 X7+X3 SA6 B2 PUT IN PACK EQUIPMENT LIST MX6 1 BX6 X6+X4 SA6 A4 FLAG EQUIPMENT AS LINKED DEVICE MX6 -12 SA3 X4+DDLL SA4 X4+STLL LX4 -12 BX6 -X6*X4 NZ X6,ALP5 IF ACTIVE USERS AX3 51 BX7 -X0*X3 SET ORIGINAL UNIT COUNT SB2 B2+1 ADVANCE PACK EQUIPMENT LIST ADDRESS SX7 X7+B1 IX5 X5-X7 UNIT COUNT - 1 REMAINING TO ALLOCATE NG X5,ALP6 IF NO MORE UNITS TO ALLOCATE EQ ALP2 PROCESS NEXT EQUIPMENT ALP3 ERROR 15 *DEVICE NOT REMOVABLE.* BX5 X5-X5 EQ ALPX ERROR EXIT ALP4 ERROR 11 *CANNOT ALLOCATE DEVICE.* BX6 X6-X6 SX5 B0 SA6 PKL CLEAR PACK EQUIPMENT LIST EQ ALPX ERROR EXIT ALP5 SA1 ALPB GET EST ORDINAL RJ COD CONVERT EST ORDINAL TO DISPLAY CODE MX7 -18 SET EST ORDINAL IN ACTIVE FILES MESSAGE LX6 30 SA4 MESA LX7 30 BX6 -X7*X6 BX7 X7*X4 BX6 X6+X7 SA6 A4 MESSAGE A4 * EQXXX, ACTIVE FILES, CANNOT INITIALIZE.* RJ ABT ABORT *MSI* ALPA VFD 6/4,6/0,12/0,3/7,9/0,12/7777B,12/0 ALPB BSS 1 EST ORDINAL UMS SPACE 4,10 ** UMS - UPDATE MASS STORAGE. * * ENTRY INTERNAL EST,S AND MST,S REFLECT NEW DEVICE PARAMETERS. * (PKL) = LIST OF EQUIPMENT MST,S TO BE MODIFIED. * * EXIT (X1) .NE. 0 IF DUPLICATE DAT ENTRY. * * USES X - ALL. * A - ALL. * * CALLS COD, PKI, BPT. * * MACROS ERROR, KEYMES, MESSAGE, SYSTEM. UMS11 MESSAGE MESJ *LINK DEVICE CANNOT BE ALTERED.* BX1 X1-X1 UMS SUBR ENTRY/EXIT SA1 PARC+PMEQ EQUIPMENT SA5 PKL RJ BPT BUILD MST UPDATING PARAMETER TABLE SA4 LINK SA3 DSI BX4 X4-X1 SA1 PKL CHECK FOR LINKED DEVICE NG X3,UMS1 IF DEADSTART INITIALIZE ZR X4,UMS11 IF LINK DEVICE UMS1 NZ X1,UMS2 IF CHAINED DEVICE RJ DTY SA4 DTYA SX5 X4-2RDE SX4 X4-2RDP MX0 -2 IX4 X4*X5 NZ X4,UMS1.1 IF NOT EXTENDED MEMORY DEVICE SA4 PARC+PMEQ EXTRACT XM SHIFT R= X5,ESTE IX5 X4*X5 SA5 ESTB+X5+EQAE LX5 -30 BX2 -X0*X5 SB2 X2 MX0 -11 SX5 20B SA4 TUMS+3 CLEAR OLD SECTOR LIMITS LX5 B2 BX6 X0*X4 LX0 36 BX6 X0*X6 BX6 X6+X5 MERGE NEW SECTOR LIMITS LX5 36 BX6 X6+X5 SA6 A4 UMS1.1 SYSTEM IMS,R,TUMS,MMS SA1 TUMS+6 CHECK REPLY EQ UMSX RETURN * IF THE EQUIPMENT IN THE LINK LIST IS AVAILABLE AND HAS * A GOOD LABEL, THE PACKNAME AND USER NAME OR FAMILY NAME * AND DEVICE NUMBER OR JUST THE FAMILY NAME MUST BE * VERIFIED TO INSURE THE CORRECT PACK IS BEING INITIALIZED. UMS2 SA2 ESTF+X1 R= X3,ESTE IX3 X1*X3 SA3 ESTB+X3+EQDE GET EST ENTRY SA4 X2+STLL MX0 -6 LX4 24 LX3 59-54 BX5 -X0*X4 SX6 A1 SA6 TEMP SAVE PKL INDEX PL X3,UMS4 IF AVAILABLE ZR X5,UMS4 IF NO LABEL ERRORS SA3 ELST CHECK LABEL ERROR FOR NONRECOVERABLE TYPE UMS3 BX6 X3-X5 SA3 A3+B1 ZR X6,UMS9 IF NONRECOVERABLE ERROR NZ X3,UMS3 IF NOT END LIST UMS4 SA3 X2+PFGL SA4 X2+PUGL SA5 X2+STLL MX0 42 BX6 X0*X3 PACKNAME OR FAMILY NAME LX5 59-LIRP BX7 X0*X4 USER NAME SX1 X1+ NG X5,UMS6 IF INITIALIZE SET RJ COD CONVERT EST ORDINAL TO DISPLAY CODE MX7 -18 SET EST ORDINAL IN ACTIVE FILES MESSAGE LX6 30 SA4 ERROR19 LX7 30 BX6 -X7*X6 BX7 X7*X4 BX6 X6+X7 SA6 A4 UMS5 ERROR 19 * EQXXX, INITIALIZE BIT NOT SET.* SX6 7777B SX7 HNGP SA6 CNT SA7 ARGP RJ PKI EQ UMS5 LOOP UMS6 NZ X7,UMS7 IF USER NAME SET LX3 -12 MX0 -6 BX7 -X0*X3 DEVICE NUMBER MX0 -3 ZR X7,UMS7 IF DEVICE NUMBER EQ ZERO BX2 -X0*X7 AX7 3 SX2 X2+2R00 LX7 6 IX7 X2+X7 LX7 59-11 UMS7 SA6 SPN SA7 SUN SX1 X1 CLEAR PACK COUNT MX0 1 RJ COD CONVERT EQ NUMBER LX0 -22 BX6 X0+X4 ADD TRAILING PERIOD SA6 ENID+2 UMS8 SX7 B1 SX6 EIDS SA6 ARGP SA7 CNT KEYMES ENID *ENTER IDENTITY OF EQXXX.* RJ PKI PROCESS KEYBOARD SA1 PARC+PMID SA5 PARC+PMID+1 SA2 SPN SA3 SUN BX4 X1-X2 BX5 X5-X3 NZ X4,UMS8 IF FN OR PN DO NOT MATCH ZR X5,UMS9 IF UN OR DN MATCH SA1 PARC+PMID+1 LX3 6 SX2 1R0 BX5 X3-X2 BX1 X5-X1 NZ X1,UMS8 IF NO MATCH ON DN UMS9 SA2 TEMP SA1 X2+B1 NEXT ENTRY IN PKL NZ X1,UMS2 IF NOT END OF LIST SA5 PKL START OF EQUIPMENTS * UPDATE MST,S AND LINK EQUIPMENTS. UMS10 BX4 X5 SAVE LINKED PACK COUNT AX4 36 SYSTEM IMS,R,TUMS,MMS UPDATE MST SA1 TUMS+6 CHECK REPLY NZ X1,UMSX IF DUPLICATE DAT ENTRY BX1 X5 SET EQUIPMENT SA5 A5+B1 READ NEXT EQUIPMENT ZR X4,UMSX IF END OF LIST R= X2,ESTE IX2 X1*X2 SA2 ESTB+X2+EQDE GET EST ENTRY MX0 1 LX0 54-59 BX6 X0+X2 SA6 A2 SA2 ESTF+X1 SET DEVICE IN USE IN CHAIN SA2 X2+STLL SA3 TUMS+1 UPDATE N/M SX4 X4 LX0 2-54 BX6 X2+X0 IX7 X4+X3 INCREMENT N/M SA7 A2-STLL+PFGL SA6 A2 RJ BPT BUILD PARAMETER TABLE EQ UMS10 LOOP FOR NEXT ENTRY SPN CON 0 SUN CON 0 ELST CON STLE LABEL ERROR CON STNR NOT READY CON 0 TUMS SPACE 4,15 ** TUMS - TABLE OF MST UPDATING PARAMETERS. * *T, TUMS 60/ EST ENTRY *T, 60/ PFGL MST WORD *T, 60/ PUGL MST WORD *T, 60/ MDGL MST WORD *T, 12/ NC,12/ EQ,12/ AI,12/ CI,12/ NE *T, 12/ NP, 48/ UNIT LIST (*LDAM* DEVICES) *T, 60/ REPLY WORD * NC NUMBER OF CATALOG TRACKS. * EQ EST ORDINAL. * AI ALGORITHM INDEX. * CI CLEAR IN USE AS CHAINED DEVICE. * NE NEXT EQUIPMENT IN LINKED DEVICE. TUMS BSSZ 7 EDF SPACE 4,10 ** EDF - SEPARATE FAMILY FROM OTHER MASS STORAGE. * * EXIT (B7) = EST ORDINAL. * * USES X - ALL. * A - 1, 2, 4, 7. * B - 2, 3, 7. EDF SUBR ENTRY/EXIT SA1 PARC+PMEQ SB7 X1 SAVE EST ORDINAL SA1 ESTF+X1 SA1 X1+PFGL MX0 42 BX5 X0*X1 FAMILY NAME SA1 ESTF-1 EDF1 SA1 A1+B1 MX3 42 MI X1,EDF5 IF LINKED EQUIPMENT ZR X1,EDF2 IF EMPTY LINK SA4 X1+PFGL BX3 X0*X4 BX3 X3-X5 TEST FAMILY NAME BX2 X1 EDF2 SB3 A1-ESTF-ESMX ZR B3,EDFX IF END OF EST ZR X3,EDF4 IF MATCH ON FAMILY EDF3 MX7 0 SA7 A1 CLEAR NON FAMILY LINK EQ EDF1 LOOP ON SEARCH EDF4 SB2 A1-ESTF EQ B2,B7,EDF1 IF CURRENT EQUIPMENT SX4 B2 R= X3,ESTE IX3 X4*X3 SA4 X2+STLL SA3 ESTB+X3+EQDE GET EST ENTRY SA2 X2+MDGL CHECK FOR AUXILIARY DEVICE LX4 59-LDIU LX3 59-54 LX2 59-58 NG X4,EDF3 IF DEVICE IN USE MI X2,EDF3 IF AUXILIARY DEVICE CLEAR ENTRY PL X3,EDF1 IF EQUIPMENT AVAILABLE LOOP FOR NEXT EQ EQ EDF3 IF NOT AVAILABLE CLEAR LINK EDF5 SA3 X1+STLL MX6 60-LIRP BX3 -X6*X3 MX6 48-LIMF LX6 48 BX6 -X6*X3 CLEAR INITIALIZE REQUEST IN LINKED EQ SA6 A3 EQ EDF3 GO CLEAR LINK CMS SPACE 4,10 ** CMS - CHECK MASK AND DEVICE NUMBER. * * ENTRY (B7) = EQ NUMBER. * * EXIT (B6) = DEVICE NUMBER. * (B7) = EQ NUMBER. * (X7) .LT. 0 IF NEW PARAMETERS TO PROCESS. * * USES ALL REGISTERS. * * CALLS PKI. * * MACROS ERROR. CMS11 SA1 PARC+PMEQ SET EQUIPMENT BX7 X7-X7 SB7 X1 SA1 ESTF+X1 SET DEVICE NUMBER SA1 X1+PFGL MX0 -6 AX1 12 BX1 -X0*X1 SB6 X1 CMS SUBR ENTRY/EXIT CMS1 SA1 ESTF-1 MX6 0 SA5 ESTF+B7 SA5 X5+PFGL MX0 -6 AX5 12 BX4 -X0*X5 SB6 X4 SAVE DN CMS2 SA1 A1+B1 ZR X1,CMS5 IF EMPTY LINK MX5 -8 SA2 X1+PUGL BX3 X6*X2 BX2 -X5*X2 IX6 X6+X2 SA2 X1+PFGL MX7 60-LIFD SA5 X1+STLL CHECK INITIALIZE STATUS AX2 12 BX2 -X0*X2 DEVICE NUMBER BX5 X7*X5 EXTRACT FULL INITIALIZE FLAGS IX2 X2-X4 CHECK AGAINST CURRENT DEVICE NUMBER CX5 X5 MX7 1 ALLOW *GO* IF FULL INITIALIZE SET LX5 59 BX7 X7-X5 SA7 CMSA ZR X2,CMS8 IF DN MATCH CMS3 ZR X3,CMS5 IF NO DUPLICATION OF BITS IN MASK SB3 A1-ESTF SX7 B3-B7 NZ X7,CMS4 IF NOT CURRENT DEVICE MX7 1 SA7 CMSA INDICATE *GO* NOT ALLOWED CMS4 ERROR 17 *DUPLICATE BITS IN MASK.* EQ CMS6 DISPLAY ERROR CMS5 SB3 A1-ESTF-ESMX NZ B3,CMS2 IF NOT END OF FAMILY SX7 377B ZR X6,CMSX IF NO MASK BITS SET BX6 X7-X6 TEST MASK BX7 X7*X6 ZR X7,CMSX EXIT MASK OK * PROCESS MASK OVER FLOW. ERROR 3 *FAMILY MASK NOT EQUAL 377.* SX7 0 SA7 CMSA INDICATE *GO* ALLOWED FOR THIS ERROR CMS6 MX7 1 SX6 B1 SA7 PARC+PMDM CLEAR DEVICE MASK SA6 CNT SX7 ENMS SA7 ARGP RJ PKI PROCESS MASK ERROR SA1 PARC+PMDM SA5 CMSA CHECK IF *GO* ALLOWED MX7 1 PL X1,CMSX IF NOT *GO* CMS7 ZR X5,CMS11 IF *GO* ALLOWED EQ CMS1 LOOP * PROCESS DUPLICATE DEVICE NUMBER. CMS8 SB3 A1-ESTF EQ B3,B7,CMS3 IF SAME EQUIPMENT ERROR 13 *DUPLICATE DN.* CMS9 MX7 1 SA7 PARC+PMDN CLEAR DEVICE NUMBER SX6 B1 SX7 ENDN SA6 CNT SA7 ARGP RJ PKI PROCESS DN ERROR SA1 PARC+PMDN SA5 CMSA CHECK IF *GO* ALLOWED MI X1,CMS7 IF *GO* ENTERED NZ X1,CMS10 IF DN NOT ZERO ERROR 20 *DN CANNOT BE ZERO.* EQ CMS9 PROCESS ERROR CMS10 MX7 1 EQ CMSX GO PROCESS NEW DN CMSA CON 0 INDICATOR FOR ALLOWING *GO* ENTRY CRE SPACE 4,15 ** CRE - CHECK REQUIRED ENTRIES. * * ENTRY (B5) = ADDRESS OF MST FOR EQUIPMENT. * * EXIT (X6) = 0 IF NEW PARAMETERS TO PROCESS. * (B5) = ADDRESS OF MST FOR EQUIPMENT. * * USES X - 0, 1, 2, 4, 6, 7. * A - 1, 2, 4, 6, 7. * B - 5. * * CALLS PKI. * * MACROS KEYMES. CRE SUBR ENTRY/EXIT MX0 42 SA1 B5+PFGL CHECK FAMILY/PACK NAME BX6 X0*X1 NZ X6,CREX IF FAMILY/PACK NAME SPECIFIED SX6 B5+ SAVE MST POINTER SA6 TEMP CRE1 KEYMES ENNFN *ENTER NEW FAMILY/PACK NAME.* SX7 B1+ SA7 CNT RJ PKI PROCESS KEYBOARD INPUT SA2 PARC+PMFN ZR X2,CRE1 IF FAMILY/PACK NAME NOT ENTERED SA4 TEMP RESTORE MST POINTER SB5 X4 MX6 0 NEW PARAMETERS TO PROCESS EQ CREX RETURN EDD SPACE 4,10 ** EDD - EDIT DEVICE TRTS. * * ENTRY (B6) = DEVICE NUMBER. * (B7) = EST ORDINAL OF INITIALIZED EQUIPMENT. * * EXIT B6,B7 NOT CHANGED. * * USES X - 0, 1, 2, 4, 5, 6. * A - 1, 2, 4, 6. * B - 3, 4. * * MACROS SYSTEM. EDD SUBR ENTRY/EXIT SA1 ESTF+B7 SET IMS PARAMETER WORD MX0 -8 SB3 -B1 SA4 X1+PUGL BX0 -X0*X4 EXTRACT DEVICE MASK LX0 59-11 ZR X0,EDDX IF NOT MASTER DEVICE SB0 0 EDD1 SB3 B3+B1 SB4 ESMX SX5 B3 EQ B3,B4,EDDX IF END OF EQUIPMENTS SA1 ESTF+B3 ZR X1,EDD1 IF NO ENTRY EQ B3,B7,EDD1 IF EQUIPMENT BEING INITIALIZED LX5 47-11 SA2 X1+STLL MX4 60-LIPF BX2 X4*X2 BX6 X0+X5 NZ X2,EDD1 IF FULL OR *PF* INITIALIZE SET SA6 EDPA SYSTEM IMS,R,EDPA,EDT EDIT TRT ON DEVICE EQ EDD1 LOOP FOR NEXT EQUIPMENT EDPA CON 0 12/MASK, 12/EQ, 36/0 ECT SPACE 4,10 ** ECT - EDIT CATALOGS. * * ENTRY (B6) = DEVICE NUMBER. * (B7) = EST ORDINAL. * * EXIT (B6) (B7) UNCHANGED. * * USES ALL BUT B6 AND B7 * * CALLS OPC, RDC, SCT, SFF, WTC. * * MACROS CALLPFU, MESSAGE, RECALL, RETURN, SYSTEM. ECT SUBR ENTRY/EXIT RETURN CATS,R SB5 ESTF-1 NZ B6,ECT1 IN DEVICE NUMBER .NE. 0 MESSAGE MESD * INTERNAL ERROR IN MSI.* RJ ABT ABORT *MSI* ECT1 SB4 B5-ESTF-ESMX+1 ZR B4,ECTX IF END FAMILY SA1 B5+B1 SB5 B5+B1 ZR X1,ECT1 IF EMPTY LINK SA3 X1+ALGL SA5 X1+PUGL MX0 -8 MX2 -12 SA4 X1+STLL LX3 -12 BX7 -X0*X5 DEVICE MASK MX0 60-LIPF BX6 -X2*X3 MASK CATALOG TRACK COUNT ZR X7,ECT1 IF NOT MASTER DEVICE SA6 CNT SAVE CATALOG TRACK COUNT BX4 X0*X4 SA5 X1+PFGL NZ X4,ECT1 IF FULL OR *PF* INITIALIZE SET RJ OCT OPEN CATALOG ECT2 RJ RDC READ CATALOG ENTRIES RJ SFF SEARCH FOR FILES AND DELETE ZR X6,ECT3 IF NO FILES DELETED RJ WTC REWRITE UPDATED CATALOG ECT3 PL X7,ECT2 IF NOT END OF CATALOG TRACK RJ ACT ADVANCE TO NEXT CATALOG TRACK PL X7,ECT2 IF NOT END OF CATALOG TRACKS SA1 CATS DROP *PFU* SX7 10B MX0 42 BX6 X0*X1 BX7 X7+X6 SET FUNCTION TO DROP *PFU* SA7 A1 RECALL A1 WAIT FOR PFU TO COMPLETE CALLPFU UIFT,CTCU,R CLEAR UTILITY INTERLOCK RETURN CATS EQ ECT1 LOOP FOR NEXT EQUIPMENT ABT SPACE 4,10 ** ABT - ABORT JOB. * * USES X - 0, 1, 2, 6, 7. * A - 1, 2, 6, 7. * B - 3, 5. * * MACROS ABORT, CALLPFU, MESSAGE, RECALL, ROUTE, SYSTEM. ABT SUBR ENTRY ABT1 SA1 SSID SX1 X1-DSSI NZ X1,ABT2 IF NOT DEADSTART SEQUENCING MESSAGE MESL + EQ * HANG ABT2 SYSTEM IMS,R,B1,CIT CLEAR *CMS* INTERLOCK SB3 0 SB5 ESMX ABT3 SA2 ESTF+B3 CHECK FOR ISD INTERLOCK LX2 59-58 PL X2,ABT4 IF EQUIPMENT NOT INTERLOCKED SX6 B3 LX6 48 SET EST ORDINAL SA6 CIRB SYSTEM IMS,R,CIRB,ISD CLEAR DEVICE INTERLOCK SA1 CIRB PL X1,ABT3 IF INTERLOCK NOT CLEARED ABT4 SB3 B3+1 LT B3,B5,ABT3 IF NOT END OF EQUIPMENTS SA2 PFUF SA1 CATS CHECK *PFU* ACTIVITY SX7 10B MX0 42 ZR X2,ABT5 IF *PFU* NOT ACTIVE BX6 X0*X1 BX7 X7+X6 SA7 A1 RECALL A1 WAIT FOR PFU TO COMPLETE ABT5 SA1 UIFL ZR X1,ABT6 IF UTILITY INTERLOCK NOT SET SA1 UIFT SX2 B1 FORCE FET COMPLETE BX6 X1+X2 SA6 A1 CALLPFU A1,CTCU,R CLEAR UTILITY INTERLOCK ABT6 MESSAGE MESB * MSI ABORTED INITIALIZE MAY NOT BE * COMPLETE.* SYSTEM DMD,R,RFL= SETFS OUTPUT,0 CHANGE FILE STATUS FOR SSJ= OUTPUT ROUTE ABTA,R ABORT ABORT *MSI* * ROUTE BLOCK FOR MEMORY DUMP. ABTA VFD 42/0LOUTPUT,18/0 VFD 24/0,12/2HLP,6/0,18/FRCS+FRDC BSS DPBL-2 OCT SPACE 4,10 ** OCT - OPEN CATALOG. * * ENTRY (B5) = ESTF POINTER. * (B6) = DEVICE NUMBER. * (B7) = EST ORDINAL. * (X5) = *PFGL* WORD OF MST. * (X7) = DEVICE MASK. * * EXIT B5, B6, B7, NOT CHANGED. * CATALOG OPENED AND *PFU* ACTIVE. * CATS FET NOT BUSY. * * USES ALL BUT B5, B6, B7. * * MACROS CALLPFU, RECALL. OCT SUBR ENTRY/EXIT MX0 -6 AX5 12 BX3 -X0*X5 SB2 X3 SAVE DN OF THIS EQIPMENT LX5 12 SB4 7 LX7 59-7 OCT1 MI X7,OCT2 IF MASK BIT SET LX7 1 SB4 B4-B1 EQ OCT1 FORM USER NAME FOR THIS DEVICE OCT2 MX0 42 SX7 B5-ESTF EQ NUMBER SA7 SCRB PF DESCRIPTION (42/0, 6/, 12/ EST ORDINAL) SX6 B4 SAVE USER INDEX SA6 A7+B1 SX1 A7 SET ADDRESS OF PF DESCRIPTION SX2 A6 SET ADDRESS OF USER INDEX LX1 18 BX7 X1+X2 SA7 CATS+FTPM CALLPFU CATS,CTCT,R GET CATALOG TRACK PARAMETERS * OPEN CATALOG FILE. SX2 5 FILE STATUS SA1 CATS+FTPM GET CATALOG TRACK PARAMETERS MX0 -24 BX1 -X0*X1 SET EST ORDINAL AND FIRST TRACK MX0 -12 BX6 -X0*X1 SET CURRENT TRACK LX1 36 BX2 X2+X1 BUILD CATALOG TRACK FST ENTRY LX6 24 BX7 X2+X6 SA7 A1 BX6 X6-X6 CLEAR SECTOR COUNT SA6 CATS+FTSC CALLPFU CATS,CTOP,R OPEN CATALOG FILE * SET UTILITY INTERLOCK ON DEVICE. SX7 B5-ESTF SET EQUIPMENT TO INTERLOCK SX2 UIFL SET INTERLOCK FLAG ADDRESS LX7 48 BX6 X7+X2 SA6 UIFT+FTPM CALLPFU UIFT,CTSU,R SET PF UTILITY INTERLOCK * ACTIVATE PFU LOAD PROCESSOR. SA1 CATS CLEAR CATS FET STATUS SX7 B2 SET MASTER DEVICE NUMBER MX2 42 SX3 PFUF SET ADDRESS OF PFU ACTIVE FLAG LX7 54 BX6 X7+X3 SA6 CATS+FTPM BX1 X2*X1 SX2 B1 SET CATS FET COMPLETE BX7 X1+X2 SA7 A1 * IT IS NECESSARY TO DO A SEPARATE RECALL ON CATS RATHER THAN * CALLING THE CTLM PROCESSOR OF PFU WITH AUTO RECALL SINCE PFU * STAYS AT THE CONTROL POINT AFTER INITIALIZING THE CTLM * PROCESSOR AND SETTING THE FET COMPLETE BUT DOES NOT RESTART * THE CPU. CALLPFU CATS,CTLM ACTIVATE PFU LOAD PROCESSOR RECALL CATS WAIT FOR PFU TO INITIALIZE EQ OCTX EXIT ACT SPACE 4,10 ** ACT - ADVANCE CATALOG TRACK. * * ENTRY (B5) = ESTF POINTER. * (B6) = DEVICE NUMBER. * (B7) = EST ORDINAL. * CATS FET NOT BUSY. * * EXIT B5,B6,B7 UNCHANGED. * (X7) = 0 CATALOG TRACK ADVANCED. * (X7) .LT. 0 END OF CATALOG TRACKS. * CATS FET NOT BUSY. * * USES X - 0, 1, 2, 3, 6, 7. * A - 1, 2, 6, 7. * * MACROS RECALL. ACT SUBR ENTRY/EXIT SA1 CNT SX6 X1-1 SA6 A1 * ADVANCE TO NEXT CATALOG TRACK ACT1 SA2 SCRB+1 18/UI SX7 X2+10B SA7 A2 18/NEXT UI SX0 A7-B1 SX7 A7 LX0 18 BX7 X0+X7 18/SCR,18/SCR+1 SA1 CATS+1 REWIND BUFFER SA2 A1-B1 SET POSITION FUNCTION CODE IN FET SA7 CATS+FTCA MX3 42 SX6 X1 BX7 X7-X7 CLEAR SECTOR COUNTER SA6 A1+B1 SA7 CATS+FTSC BX7 X3*X2 SA6 A6+B1 SA7 A2 ISSUE FILE POSITION REQUEST RECALL A2 WAIT FOR *PFU* TO PROCESS REQUEST SA1 CNT CHECK IF END OF CATALOG TRACKS MX7 1 ZR X1,ACTX IF END OF CATALOG TRACKS MX7 0 EQ ACTX RETURN RDC SPACE 4,10 ** RDC - READ CATALOG. * * ENTRY (B5) = ESTF POINTER. * (B6) = DEVICE NUMBER. * (B7) = EST ORDINAL. * * EXIT B5,B6,B7 UNCHANGED. * CATALOGS READ INTO CATS BUFFER. * CATS FET NOT BUSY. * * USES X - 0, 1, 2, 3, 6, 7. * A - 1, 3, 6, 7. * * MACROS RECALL. RDC SUBR ENTRY/EXIT SA1 CATS MX0 42 BX6 X0*X1 SX2 4 READ FUNCTION BX6 X6+X2 SA3 A1+B1 GET FIRST BX7 -X0*X3 SA7 A3+B1 RESET IN AND OUT SA7 A7+B1 SA6 A1 SET FUNCTION RECALL CATS MX7 0 SA7 CATS+FTSC CLEAR SECTOR COUNT EQ RDCX RETURN SFF SPACE 4,20 ** SFF - SEARCH FOR FILES. * * ENTRY (B5) = ESTF POINTER. * (B6) = DEVICE NUMBER. * (B7) = EST ORDINAL. * * EXIT B5,B6,B7 UNCHANGED. * (X6) = 0 IF CATALOG NOT CHANGED. * (X7) .LT. 0 IF EOI ENCOUNTERED. * CATALOG ENTRIES (PFC-S) THAT POINT TO FILES ON * SPECIFIED DEVICE ARE CHANGED AS FOLLOWS. * 1. IF PFC HAS VALID ALTERNATE STORAGE ADDRESS (ASA), * THE DISK ADDRESS IS CLEARED. * 2. IF THE PFC HAS NO ASA, THEN THE PFC IS DELETED * BY CLEARING THE USER INDEX. * * USES X - 0, 1, 2, 4, 6, 7. * A - 1, 2, 4, 7. * B - 3, 4. SFF SUBR ENTRY/EXIT SX7 B0 SX6 B0 SA1 CATS+2 IN SA2 CATS+1 FIRST SX0 177B SA2 X2 BX0 X0*X2 CHECK FOR EMPTY SECTOR NZ X0,SFF1 IF NOT EMPTY MX7 1 EQ SFFX EXIT SFF1 SB4 CATB+1 SB3 X0 WORDS IN SECTOR MX0 -6 SX1 B1 SET WRITE WITHOUT EOI FLAG LX1 53-0 BX7 X1+X2 SA7 A2 SFF2 SA1 B4+FCEO CHECK DEVICE NUMBER SX4 B6 LX1 59-35 BX1 -X0*X1 MASK OFF DN IX4 X1-X4 NZ X4,SFF4 IF DN-S DO NOT MATCH * CHECK ALTERNATE STORAGE COPIES OF FILE DATA. IF THE FILE * DATA RESIDES ON TAPE OR CARTRIDGE ALTERNATE STORAGE, THE * DISK ADDRESS AND THE DEVICE NUMBER IN THE CATALOG ENTRY * WILL BE CLEARED TO FORCE A RESTAGE OF THE FILE ON THE NEXT * *ATTACH*. OTHERWISE, THE CATALOG ENTRY WILL BE DELETED. SA1 B4+FCTV MX2 -24 BX7 -X2*X1 NZ X7,SFF2.1 IF TAPE ALTERNATE STORAGE COPY EXISTS SA1 B4+FCAA MX2 -36 BX7 -X2*X1 ZR X7,SFF3 IF NO CARTRIDGE ALTERNATE STORAGE COPY LX1 59-48 NG X1,SFF3 IF CARTRIDGE COPY OBSOLETE SFF2.1 SA2 B4+FCBT CLEAR DISK ADDRESS OF FILE MX7 48 LX7 12 BX7 X7*X2 SA7 A2 SA2 B4+FCDN CLEAR DEVICE NUMBER MX7 54 LX7 36 BX7 X7*X2 SA7 A2 SX6 B1 FORCE CATALOG UPDATE EQ SFF4 CHECK NEXT CATALOG ENTRY SFF3 SA1 B4+FCUI CLEAR USER INDEX OF FILE MX2 42 BX7 X2*X1 CLEAR USER INDEX SA7 A1 SX6 B1 FORCE CATALOG UPDATE * PROCESS NEXT CATALOG ENTRY. SFF4 SB4 B4+NWCE SB3 B3-NWCE NZ B3,SFF2 IF MORE ENTRIES IN THIS SECTOR SA1 CATS+2 GET IN SA2 CATS+FTSC SA4 CATS+4 GET LIMIT SB3 B0 SX7 X2+B1 BUMP SECTOR COUNT SX2 B4+B1 IX2 X1-X2 IN - BUFFER POINTER SA7 A2 IX4 X4-X1 LIMIT - IN MI X2,SFFX IF POINTER .EQ. IN SA1 B4 READ NEXT CONTROL WORD MX2 -24 SX7 177B BX2 -X2*X1 BX7 X7*X1 SB4 B4+B1 SET TO NEXT CATALOG ENTRY SB3 X7 WORDS IN SECTOR MX7 1 SET WRITE WITHOUT EOI FLAG LX7 53-59 BX7 X7+X1 SA7 A1 NZ X2,SFF2 IF MORE DATA MX7 1 FLAG EOI ENCOUNTERED EQ SFFX RETURN WTC SPACE 4,10 ** WTC - WRITE CATALOG BUFFER TO DISK. * * ENTRY (B5) = ESTF POINTER. * (B6) = DEVICE NUMBER. * (B7) = EST ORDINAL. * * EXIT B5,B6,B7 UNCHANGED. * CATALOGS WRITTEN FROM CATS BUFFER. * CATS FET NOT BUSY. * * USES X - 0, 1, 2, 6. * A - 1, 6. * * MACROS RECALL. WTC SUBR ENTRY/EXIT SA1 CATS MX0 42 SX2 2 WRITE FUNCTION BX6 X0*X1 BX6 X6+X2 SA6 CATS WRITE CATALOG RECALL CATS EQ WTCX RETURN TITLE SUBROUTINES. ALD SPACE 4,15 ** ALD - ALLOCATE *LDAM* DEVICES. * * ENTRY (A3) = EST ENTRY ADDRESS. * (A5) = *PALF* ADDRESS. * (X2) = EST ORDINAL. * (X5) = UNIT COUNT-1 REMAINING TO ALLOCATE. * (X7) = ORIGINAL UNIT COUNT. * (B2) = *PKL* INDEX. * * EXIT (A5) = *PALF* ADDRESS. * (B2) = *PKL* INDEX. * (X5) = .LT. 0 IF DEVICE ALLOCATED. * * USES X - ALL. * A - 1, 2, 3, 4, 6, 7. * B - 2, 3, 4, 5. * * CALLS AUL. ALD SUBR ENTRY/EXIT SA3 A3 GET EST ENTRY SB3 X2 SAVE EST ORDINAL SA1 ALDA GET ALLOCATION MASK SB4 X2 SET SEARCH INDEX BX0 X1 BX1 X0*X3 MATCH CRITERIA LX3 59-56 PL X3,ALDX IF DEVICE NOT REMOVABLE ALD1 SB4 B4+B1 INCREMENT EST ORDINAL SX3 B4 R= X2,ESTE IX2 X3*X2 SA2 ESTB+X2+EQDE GET EST ENTRY SA3 B4+ESTF SX4 B4-ESMX PL X4,ALDX IF END OF EST ENTRIES BX6 X0*X2 CHECK DEVICE FOR MATCH BX6 X1-X6 SA4 X3+STLL NZ X6,ALD1 IF NO DEVICE MATCH * THE CHANNELS OF THE FIRST DEVICE ARE COMPARED WITH * THE CHANNELS OF THE LINK CANDIDATES TO INSURE THAT ALL * ITS CHANNELS ARE CONTAINED IN THE LINK DEVICES CHANNELS. SB5 B0 INITIALIZE CHANNEL COMPARE LX2 24 POSITION CHANNELS (B * * * * * * * A) MX3 -12 BX6 -X3*X2 CHANNEL *A* SA6 ALDB LX2 12 BX6 -X3*X2 CHANNEL *B* SA6 A6+B1 SX3 B3 R= X2,ESTE IX3 X3*X2 SA3 ESTB+X3+EQDE GET EST ENTRY OF FIRST EQUIPMENT LX3 24 SA2 ALDB ALD2 MX6 -12 CHECK CHANNEL WITH LIST BX6 -X6*X3 ZR X6,ALD3 IF CHANNEL .EQ. 0 BX2 X2-X6 ZR X2,ALD4 IF CHANNELS COMPARE SA2 A2+B1 NZ X2,ALD2 IF MORE CHANNELS TO CHECK EQ ALD1 LOOP FOR NEXT EQUIPMENT ALD3 NZ B5,ALD4 IF NOT CHANNEL *A* NZ X2,ALD1 IF LIST CHANNEL *A* .NE. 0 ALD4 LX3 12 TEST NEXT CHANNEL SB5 B5+B1 SA2 ALDB SX6 B5-2 *** TWO CHANNEL SUPPORT NZ X6,ALD2 IF NOT END OF CHANNELS MX6 12 CHECK FOR ACTIVE USES SX2 B4 MX3 60-LIFD LX6 24 BX6 X6*X4 BX3 X3*X4 NZ X6,ALD1 IF ACTIVE USERS ZR X3,ALD1 IF TOTAL INITIALIZE NOT SET LX7 39 LX4 0-3 BX7 X7+X2 FORM *PKL* ENTRY MX6 -3 SA7 B2 BX7 -X6*X4 SB2 B2+B1 INCREMENT *PKL* INDEX SX7 X7+B1 ADJUST UNIT COUNT IX5 X5-X7 PL X5,ALD1 IF MORE UNITS TO ALLOCATE RJ AUL ASSEMBLE UNIT LIST EQ ALDX RETURN ALDA VFD 12/5600B *MS*, SHARED, REMOVABLE, *LDAM* VFD 24/0 VFD 12/7777B 0N/OFF AND TYPE VFD 12/0 ALDB BSS 3 CHANNEL LIST FOR DEVICE MATCH AUL SPACE 4,10 ** AUL - ASSEMBLE UNIT LIST. * * ENTRY (B3) = EST ORDINAL. * * EXIT *DDLL* LIST BUILT. * * USES X - 0, 1, 2, 3, 4, 6, 7. * A - 1, 2, 3, 4, 7. * B - 3, 4, 5, 6, 7. AUL3 SA2 B3+ESTF FORM *DDLL* MX0 -48 LX7 B5,X7 SA1 X2+DDLL BX4 -X0*X7 BX1 X0*X1 BX7 X1+X4 SA7 X2+DDLL SET *DDLL* IMAGE IN MST AUL SUBR ENTRY/EXIT SB4 PKL INITIALIZE INDEX SX1 B3 MX0 -6 SA4 PARC+PMNP GET UNIT COUNT SB5 B0 INITIALIZE SHIFT INDEX SB6 X4 AUL1 SA1 X1+ESTF SA3 X1+DDLL BX2 X3 MX6 -3 GET ORIGINAL UNIT COUNT LX2 -51 SB7 6 BX6 -X6*X2 AUL2 BX4 -X0*X3 MASK UNIT BX7 X0*X7 BX7 X4+X7 MERGE NEXT UNIT SX6 X6-1 SB6 B6-B1 LX7 -6 AX3 6 SB5 B5+B7 ZR B6,AUL3 IF END OF ASSEMBLY PL X6,AUL2 IF MORE UNITS TO MERGE SA1 B4 GET NEXT EQUIPMENT SB4 B4+B1 EQ AUL1 LOOP TO ASSEMBLE NEXT UNIT BPT SPACE 4,10 ** BPT - BUILD MST UPDATING PARAMETER TABLE. * * ENTRY (X1) = EST ORDINAL. * INTERNAL EST AND MST REFLECT NEW PARAMETERS. * (X5) = *PKL* LIST ENTRY. * * EXIT *TUMS* BUILT FOR IMS FUNCTION 6. * (X5) = UNCHANGED. * * USES X - 0, 2, 3, 4, 6, 7. * A - 2, 3, 4, 6, 7. BPT SUBR ENTRY/EXIT SA2 X1+ESTF MST ADDRESS R= X3,ESTE IX3 X1*X3 SA3 ESTB+X3+EQDE GET NEW EST ENTRY SA4 X2+PFGL GET NEW MST WORDS BX6 X3 LX7 X4 SA3 X2+PUGL SA6 TUMS MX0 1 SET 16-WORD PFC FLAG SA4 X2+MDGL LX0 57-59 SA7 A6+B1 TUMS + 1 LX6 X3 BX7 X0+X4 SA6 A7+B1 TUMS + 2 SA7 A6+B1 TUMS + 3 MX0 -12 SA3 X2+ALGL CATALOG COUNT AX3 12 BX6 -X0*X3 SA4 X2+DILL ALGORITHM INDEX SA3 X2+STLL LX6 12 MX7 LIHD-LIFD+1 BX6 X6+X1 NC, EQ LX7 LIHD-59 BX4 -X0*X4 LX6 12 BX7 X7*X3 ZR X7,BPT1 IF NOT CHANGING ALGORITHM INDEX BX6 X6+X4 NC, EQ, AI BPT1 LX3 59-LDIU LX6 24 LX0 12 BX6 -X0+X6 NC, EQ, AI, CI SA4 X2+DDLL GET NEW DEVICES UNIT LIST PL X3,BPT2 IF CLEARING DEVICE IN USE IN CHAIN SA4 X2+STLL GET CURRENT UNIT COUNT SA3 X2+DDLL GET CURRENT UNIT LIST BX6 X0*X6 MX0 -48 LX4 59-14 MX2 3 BX7 -X0*X3 LX2 -9 BX4 X2*X4 BX4 X4+X7 BPT2 SX3 X5 SET NEXT EQUIPMENT IN CHAIN BX6 X6+X3 SA6 A7+B1 TUMS+4 BX7 X4 MX6 0 SA7 A6+B1 TUMS+5 SA6 A7+B1 TUMS+6 = CLEAR REPLY WORD EQ BPTX RETURN CIR SPACE 4,10 ** CIR - CHECK INITIALIZATION REQUESTED. * * EXIT (B6) .LT. 0 IF NO EQUIPMENT FOUND. * (B6) = FIRST EQUIPMENT FOUND. * * USES X - 0, 1, 2, 3, 4, 6, 7. * A - 1, 2, 3, 4, 6. * B - 4, 5, 6. * * MACROS SYSTEM. CIR SUBR ENTRY/EXIT SB3 NOPE INITIALIZE EST ORDINAL FOR SEARCH SB6 -B1 SB5 ESMX CIR1 EQ B3,B5,CIRX IF END OF EQUIPMENTS SA2 ESTF+B3 SB3 B3+B1 ZR X2,CIR1 IF EMPTY LINK SX6 B3-B1 EST ORDINAL R= X1,ESTE IX1 X6*X1 SA1 ESTB+X1+EQDE GET EST ENTRY SA4 X2+STLL NG X4,CIR2 IF FORMAT PENDING MX3 60-LIPF BX7 X3*X4 LX4 59-LIRP PL X4,CIR1 IF NO INITIALIZE REQUESTS PENDING BX3 X1 LX4 LIRP-LUNL MI X4,CIR1 IF DEVICE UNLOADED LX1 59-57 BX4 X3 LX4 59-49 LX3 59-52 BX1 X3+X1 LX6 48 NG X4,CIR2 IF DEVICE OFF OR DOWN PL X1,CIR3 IF NOT SHARED DEVICE ZR X7,CIR3 IF NOT GLOBAL INITIALIZE SA6 CIRA PL X3,CIR1.1 IF NOT AN ISD DEVICE SX7 B1 BX6 X6+X7 SA6 CIRB SYSTEM IMS,R,CIRB,ISD INTERLOCK DEVICE SA1 CIRB PL X1,CIR2 IF DEVICE NOT INTERLOCKED SA2 B3+ESTF-1 SET DEVICE INTERLOCKED FLAG MX7 1 LX7 -1 BX7 X7+X2 SA7 A2 CIR1.1 SYSTEM IMS,R,CIRA,CSD CHECK DEVICE STATUS SA1 CIRA CHECK REPLY NG X1,CIR3 IF DEVICE UNLOADED IN OTHER MACHINES CIR2 SA4 A4 CLEAR INITIALIZE REQUESTS MX3 60-LIRP BX4 -X3*X4 MX3 48-LIMF LX3 48 BX6 -X3*X4 SA6 A4+ EQ CIR1 LOOP ON SEARCH CIR3 PL B6,CIR1 IF EQUIPMENT ALREADY FOUND SB6 B3-B1 SX7 B3-B1 SET EQUIPMENT TO PROCESS SX1 B3+1000B-1 ENSURE LEADING ZEROES IN CONVERSION MX0 -18 SA7 PARC+PMEQ RJ COD SA2 =7L BX6 -X0*X6 SA6 EQ BX7 X6+X2 LX7 -18 SA7 EQDS+1 SET EST ORDINAL IN K-DISPLAY EQ CIR1 LOOP ON SEARCH CIRA CON 0 IMS REQUEST/REPLY AREA CIRB CON 0 ISD INTERLOCK STATUS CMC SPACE 4,10 ** CMC - CHECK MODE CHANGE. * * ENTRY (PARC+PMEQ) = EQUIPMENT TO CHECK FOR MODE CHANGE. * (B5) = MST ADDRESS OF EQUIPMENT. * * EXIT (X7) = 0 IF NO FULL TRACK ACCESS WHEN REQUIRED. * TO *ABT* IF INTERNAL ERROR DETECTED. * * USES X - ALL. * A - 1, 2, 3, 4, 6, 7. * B - 3, 6. * * CALLS PMC. CMC4 SX6 -B3 SET *CLEAR* OVERRIDE SA6 CLOV MX0 18 SA4 EQ SA1 ERROR23 FORM MESSAGE LX0 -12 BX6 -X0*X1 LX4 48-18 BX6 X6+X4 SA6 A1 *EQXXX, NO FULL TRACK ACCESS.* BX7 X7-X7 CMC SUBR ENTRY/EXIT SA4 PARC+PMEQ SX7 B1 SB3 X4 SA3 B5+STLL LX3 59-LIHD SB6 B0 INDICATE HALF TRACK NG X3,CMC1 IF HALF TRACK MODE LX3 LIHD-LIFD PL X3,CMCX IF NO MODE CHANGE BX3 X3-X3 CMC1 RJ PMC PROCESS MODE CHANGE NG X5,CMC4 IF NO FULL TRACK ACCESS SB3 NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH CMC2 SB3 B3+B1 ADVANCE EST ORDINAL SX7 B1 SB4 B3-ESMX ZR B4,CMCX IF END OF EST SA2 B3+ESTF SB4 X2 EQ B4,B5,CMC2 IF CURRENT EQUIPMENT SA3 B4+STLL LX3 59-LIHD SB6 B0 SET HALF TRACK MODE NG X3,CMC3 IF HALF TRACK MODE LX3 LIHD-LIFD PL X3,CMC2 IF NO MODE CHANGE BX3 X3-X3 CMC3 RJ PMC PROCESS MODE CHANGE EQ CMC2 LOOP DIO SPACE 4,10 ** DIO - DISPLAY INITIALIZE OPTIONS. * * EXIT DISPLAY UPDATED. * (TOTL) = 0 IF NOT TOTAL INITIALIZE. * * USES X - 0, 2, 3, 5, 6, 7. * A - 2, 3, 5, 6, 7. * B - 2, 3, 4. * DISABLE ACCESS LEVEL PARAMETER ENTRIES ON ANYTHING * OTHER THAN A TOTAL INITIALIZE. DIO2 MX7 1 SA7 ENLA DISABLE *LA* PARAMETER ENTRY SA7 A7+B1 DISABLE *UA* PARAMETER ENTRY ERRNZ ENUA-ENLA-1 ERROR IF WORDS NOT CONTIGUOUS MX0 LIPF-LIQF+1 EXTRACT *PF* AND *QF* OPTIONS LX5 LIFD-LIPF BX3 X0*X5 MX0 48-LIMF EXTRACT DAYFILE OPTIONS LX5 LIPF-LIDF BX2 X0*X5 LX2 LIQF-LIFD MERGE PARTIAL INITIALIZE OPTIONS BX5 X3+X2 SB4 TPDS+2 SA3 BLK SB3 42 SA2 DIOB BX7 X3 SX0 77B DIO3 PL X5,DIO4 IF OPTION NOT SET BX3 X0*X2 LX3 6 SX3 X3+1RF&1R LX6 X3,B3 BX7 X6-X7 SB3 B3-18 PL B3,DIO4 IF DISPLAY WORD NOT FILLED SA7 B4+1 SX6 A7-TPDS-4 ZR X6,DIOX IF DISPLAY LINE LIMIT SA3 BLK SB4 A7 BX7 X3 SB3 48 RESET SHIFT COUNT DIO4 AX2 6 LX5 1 NZ X2,DIO3 IF ALL OPTIONS NOT CHECKED BX6 X6-X6 SA7 B4+B1 SA6 TOTL CLEAR TOTAL INITIALIZE STATUS DIO SUBR ENTRY/EXIT SA3 PARC+PMEQ GET EST ORDINAL SA4 ESTF+X3 GET MST ADDRESS SA5 X4+STLL SB2 B0 LX5 59-LIAL NG X5,DIO1 IF INITIALIZE *AL* SB2 B2+B1 LX5 LIAL-LIHD NG X5,DIO1 IF INITIALIZE *HT* SB2 B2+B1 LX5 LIHD-LIFD DIO1 PL X5,DIO2 IF NOT INITIALIZE *FT* SA2 B2+DIOA SET VALUE FOR INITIALIZE REQUEST MX7 1 SA3 BLK BX6 X2 SA7 TOTL SET TOTAL INITIALIZE INDICATOR SA6 TPDS+3 BX7 X3 SA7 A6+B1 EQ DIOX RETURN DIOA DATA H$ *TOTAL*$ DATA H$*TOTAL/HT*$ DATA H$*TOTAL/FT*$ DIOB VFD 24/0,36/6RMEADQP&6R DTY SPACE 4,10 ** DTY - GET PARAMETERS FOR DEVICE TYPE. * * ENTRY PARC+PMEQ = EST ORDINAL. * * EXIT (X3) = TDTY ENTRY FOR DEVICE TYPE. * (X3) = 0 IF EQUIPMENT NOT FOUND. * (X5) = EST ORDINAL. * * USES X - 2, 3, 5, 6. * A - 3, 5. DTY SUBR ENTRY/EXIT MX2 11 SA5 PARC+PMEQ GET EQUIPMENT LX2 -1 R= X3,ESTE IX3 X5*X3 SA3 ESTB+X3+EQDE GET EST ENTRY LX3 36 BX2 X2*X3 DEVICE TYPE BX6 X2 SAVE DEVICE TYPE LX6 12 SA6 DTYA SA3 TDTY-1 DTY1 SA3 A3+B1 BX6 X2-X3 LX6 1 AX6 48+1 ZR X6,DTYX IF DEVICE TYPE FOUND NZ X3,DTY1 IF MORE ENTRIES EQ DTYX RETURN DTYA CON 0 DEVICE TYPE ISF SPACE 4,15 ** ISF - INITIALIZE SPECIAL FILES. * * USES X - 0, 1, 2, 3, 4, 5, 6. * A - 1, 2, 3, 4, 6. * * MACROS MESSAGE, QCALL, SYSTEM. ISF SUBR ENTRY/EXIT SA1 PARC+PMEQ GET MST POINTER SA1 X1+ESTF SB5 X1 SA3 TOTL SA4 B5+STLL AX3 59 BX4 X3+X4 MX5 -4 LX4 59-LIQF CHECK QUEUE FILE INITIALIZATION PL X4,ISF5 IF NOT SELECTED * INITIALIZE INACTIVE QUEUED FILES. SA3 QFET SA2 PARC+PMEQ LX5 10 BX6 X5*X3 CLEAR ERROR CODE LX2 48-0 SA6 A3 RESET FET+0 BX6 X2 SA6 A3+7 SET EST ORDINAL FOR *QFM* QCALL IIQF,QFET INITIALIZE QUEUED FILES SA1 QFET BX5 -X5*X1 ISOLATE ERROR CODE AX5 10D SET ERROR CODE LOWER SA1 PARC+PMEQ SA3 MESI * EQXXX, INACTIVE QUEUES INITIALIZED.* SA2 TOTL ZR X5,ISF1 IF QUEUES INITIALIZED SA3 MESE * EQXXX, UNABLE TO INITIALIZE IQFT.* NG X2,ISF5 IF TOTAL INITIALIZE ISF1 SA1 EQ SET EST ORDINAL IN MESSAGE MX0 42 LX1 42-18 LX0 42-18 BX3 X0*X3 BX6 X3+X1 SA6 A3 SX0 A3 SET MESSAGE ADDRESS ZR X5,ISF4 IF FILE INITIALIZED SX2 X5-FAIE NZ X2,ISF2 IF NOT INTERLOCK ERROR MESSAGE MESF,,R * IQFT FILE INTERLOCKED.* EQ ISF4 SET UNABLE TO INITIALIZE IQFT FILE ISF2 SX2 X5-FNFE NZ X2,ISF3 IF FILE FOUND MESSAGE MESG,,R * NO IQFT FILE FOUND.* ISF3 SX2 X5-RMSE NZ X2,ISF4 IF NOT RMS ERROR MESSAGE MESH,,R * UNABLE TO READ IQFT FILE.* ISF4 MESSAGE X0,,R ISSUE INITIALIZATION STATUS MESSAGE * MESSAGE MESE,,R * EQXXX, UNABLE TO INITIALIZE IQFT.* * MESSAGE MESI,,R * EQXXX, INACTIVE QUEUES INITIALIZED.* ISF5 SA5 DSI SA4 B5+STLL NG X5,ISFX IF DEADSTART INITIALIZE SA3 TOTL AX3 59 SA5 PARC+PMEQ BX4 X3+X4 LX4 59-LIDF PL X4,ISF6 IF NOT DAYFILE INITIALIZATON * INITIALIZE SYSTEM DAYFILE. SYSTEM IMS,R,X5,IDF ISF6 LX4 LIDF-LIAF PL X4,ISF7 IF NOT ACCOUNT FILE INITIALIZATION * INITIALIZE ACCOUNT FILE. SYSTEM IMS,R,X5,IDF+1 ISF7 LX4 LIAF-LIEF PL X4,ISF8 IF NOT ERRLOG INITIALIZATION * INITIALIZE ERRLOG. SYSTEM IMS,R,X5,IDF+2 ISF8 LX4 LIEF-LIMF PL X4,ISF9 IF NOT MAINTENANCE LOG INITIALIZATION * INITIALIZE MAINTENANCE LOG. SYSTEM IMS,R,X5,IDF+3 ISF9 PL X3,ISFX IF NOT TOTAL INITIALIZE SA1 B5+ACGL CHECK FOR LOCAL AREA SECTOR LX1 59-GLAP PL X1,ISFX IF LOCAL AREA SECTOR NOT DEFINED SYSTEM IMS,R,X5,ILA INITIALIZE LOCAL AREAS EQ ISFX RETURN MTW SPACE 4,10 ** MTW - MOVE THREE WORDS TO DISPLAY LINE. * * ENTRY (A1) = MESSAGE ADDRESS. * * USES X - 1, 2, 5, 6, 7. * A - 1, 2, 5, 6, 7. * B - 2. MTW SUBR ENTRY/EXIT SA2 A1+B1 BX6 X1 SA1 A2+B1 LX7 X2 SA2 FLFG NZ X2,MTW2 IF FLAW PROCESSING SA5 PAGA LX5 30 SB2 X5 GT B2,B1,MTW2 IF CURRENT LEFT SCREEN INDEX IS 2 SA6 MSDS1+1 MTW1 BX6 X1 SA7 A6+1 SA6 A7+B1 SA1 BLK BX6 X1 EQ B1,B2,MTW3 IF CURRENT LEFT SCREEN INDEX IS 1 SA2 MSDS1+1 MTW1.1 SA6 A2 SA6 A2+1 SA6 A6+B1 EQ MTWX RETURN MTW2 SA6 MSDS2+1 DISPLAY FLAW MESSAGE EQ MTW1 CONTINUE MTW3 SA2 MSDS2+1 EQ MTW1.1 CONTINUE PMC SPACE 4,15 ** PMC - PROCESS MODE CHANGE. * * ENTRY (B3) = EST ORDINAL. * (X3) = .LT. 0, IF HALF TRACK ACCESS. * (B6) = 0, IF HALF TRACK MODE. * * EXIT (X5) .LT. 0, IF NO FULL TRACK ACCESS. * * USES X - ALL. * A - 2, 4, 5, 7. * B - 4, 6. * * CALLS DTY. * * MACROS MESSAGE. PMC SUBR ENTRY/EXIT MX0 -12 MX1 0 NG X3,PMC3 IF HALF TRACK ACCESS MX1 60 SB6 12 SET FULL TRACK SHIFT COUNT * ASSEMBLE EST IMAGE. PMC3 SX7 B3 R= X4,ESTE IX7 X7*X4 SA4 ESTB+X7+EQDE READ EST ENTRY LX4 -12 BX5 -X0*X4 CURRENT DEVICE TYPE SA2 PMCB-1 PMC4 SA2 A2+B1 READ NEXT LIST WORD BX7 -X0*X2 ZR X2,PMC4.0 IF END OF LIST BX6 X5-X7 NZ X6,PMC4 IF NO MATCH AX2 12 AX2 X2,B6 POSITION NEW DEVICE TYPE BX5 -X0*X2 NEW DEVICE TYPE PMC4.0 BX4 X0*X4 BX7 X4+X5 MERGE NEW DEVICE TYPE SX0 10001B SET CHANNEL ACCESS FLAGS LX7 12 LX0 24+8 BX2 X0*X7 CHANNEL MODE FLAGS BX2 X1-X2 SELECT MODE OF OPERATION BX2 X0*X2 NEW CHANNEL ACCESS FLAGS MX5 1 ZR X1,PMC4.1 IF HALF TRACK INITIALIZE ZR X2,PMCX IF NO CHANNELS FOR ACCESS PMC4.1 SA7 A4 RJ DTY SET SINGLE UNIT SECTOR LIMIT MX0 12 LX0 -12 SA1 X5+ESTF SA2 X1+MDGL BX7 X0*X3 BX2 -X0*X2 AX3 12 BX7 X2+X7 MX0 -6 SA7 A2 SA4 X1+DILL CHANGE ALGORITHM INDEX BX2 -X0*X3 BX4 X0*X4 BX7 X2+X4 SA7 A4 EQ PMCX RETURN ** DEVICE CONVERSION TABLES. *T PMCB 24/,12/ *FT* TYPE, 12/ *HT* TYPE, 12/OLD TYPE PMCB VFD 24/,12/2RDK,12/2RDI,12/2RDI VFD 24/,12/2RDL,12/2RDJ,12/2RDJ VFD 24/,12/2RDK,12/2RDI,12/2RDK VFD 24/,12/2RDL,12/2RDJ,12/2RDL VFD 24/,12/2RDQ,12/2RDM,12/2RDM VFD 24/,12/2RDQ,12/2RDM,12/2RDQ CON 0 END OF TABLE PTY SPACE 4,10 ** PTY - PROCESS TYPE. * * ENTRY (B5) = MST POINTER. * * USES X - 0, 1, 2, 3, 4, 6, 7. * A - 1, 2, 3. * * CALLS COD. PTY SUBR ENTRY/EXIT SA1 PARC+PMTY SA2 B5+MDGL LX1 6 SA3 B5+PUGL LX2 59-58 PTY1 MX0 -16 ZR X1,PTY3 IF TYPE NOT ENTERED BX6 -X0 DEFAULT MASK FOR AUXILIARY DEVICES MX7 1 SET AUXILIARY BIT SX4 X1-1RX BX2 -X7*X2 ZR X4,PTY2 IF AUXILIARY TYPE MX7 0 CLEAR AUXILIARY BIT BX6 -X0*X3 DEFAULT MASKS FOR FAMILY TYPE SX1 1RF SET TO FAMILY DEVICE PTY2 BX3 X0*X3 SET DEFAULT MASKS BX6 X3+X6 BX7 X7+X2 MERGE NEW AUXILIARY BIT SA6 A3 LX7 58-59 SA7 A2 LX1 -6 BX6 X1 SA6 A1 RESET TYPE SA6 TYDS+1 SA1 B5+PUGL SET INDIRECT FILE MASK MX0 -8 BX7 -X0*X1 BX1 -X0*X1 SA7 PARC+PMDM RJ COD SA1 B5+PUGL SET DIRECT ACCESS MASK BX6 X4 AX1 8 SA6 DMDS+1 BX7 -X0*X1 BX1 -X0*X1 SA7 PARC+PMSM RJ COD BX6 X4 SA6 SMDS+1 EQ PTYX RETURN PTY3 SX1 1RX NG X2,PTY1 IF AUXILIARY DEVICE SX1 1RF SET TO FAMILY DEVICE EQ PTY1 LOOP SAL SPACE 4,15 ** SAL - SET ACCESS LEVEL DEFAULTS. * * EXIT DEFAULTS SET IN THE PARAMETER LIST AND THE K-DISPLAY. * IF THE INITIALIZE IS TOTAL, THE DEFAULTS WILL BE * SET TO THE LOWER EQUIPMENT ACCESS LIMIT FROM THE * EST ENTRY. * THE DEFAULTS WILL BE SET FROM THE MST FOR DEADSTART * INITIALIZE, AS WELL AS FOR A NON-TOTAL INITIALIZE. * * USES X - 0, 1, 2, 5, 6. * A - 1, 5, 6. * B - 3, 4. SAL SUBR ENTRY/EXIT SA1 TOTL SA5 B5+PFGL READ ACCESS LEVELS FROM LABEL SB4 51 SET SHIFT COUNTS SB3 3 MX0 -3 PL X1,SAL1 IF NOT TOTAL INITIALIZE SA1 DSI NG X1,SAL1 IF DEADSTART INITIALIZE SA5 PARC+PMEQ R= X1,ESTE IX1 X5*X1 SA5 ESTB+X1+EQAE READ ACCESS LEVELS FROM EST SB4 45 SET SHIFT COUNTS SB3 B0+ SAL1 LX5 B4 POSITION ACCESS LEVELS BX1 -X0*X5 PROCESS LOWER ACCESS LEVEL SA1 X1+TALV MX2 42 BX6 X2*X1 SA6 PARC+PMLA SET LOWER LIMIT IN PARAMETER LIST SA6 LADS+1 SET LOWER LIMIT IN DISPLAY LX5 B3 PROCESS UPPER ACCESS LEVEL BX1 -X0*X5 SA1 X1+TALV BX6 X2*X1 SA6 PARC+PMUA SET UPPER LIMIT IN PARAMETER LIST SA6 UADS+1 SET UPPER LIMIT IN DISPLAY EQ SALX RETURN PRS SPACE 4,15 ** PRS - PRESET PROGRAM. * * EXIT EST AND MST TABLE READ INTO BUFFERS. * * USES X - ALL. * A - 1, 2, 5, 6, 7. * B - 7. * * CALLS PRK. * * MACROS CLEAR, GETSSM, MESSAGE, SYSTEM. PRS SUBR ENTRY/EXIT SA5 JOPR CHECK JOB ORIGIN MX0 -12 LX5 -24 BX5 -X0*X5 SB7 X5-SYOT NZ B7,PRS3 IF NOT SYSTEM ORIGIN SX3 KYCT RJ PRK PRESET *K* DISPLAY SX7 TFLA SET FLAW INDEX SA7 FLAI CLEAR ESTB,BUF-ESTB CLEAR *ESTB*, *ESTF*, AND *PKL* CLEAR FLGS,FLGSL,X7 CLEAR FLAGS CLEAR PARC+PMFN,OTBLL,X7 SA7 PREQ SA7 CFEB PREVENT SETTING FLAWS FOR SPECIFIED DEVICE SA1 PRSA READ EST POINTER WORD MX6 1 BX7 X1 SA6 ESTB SET LOW CORE READ SA7 LCRC SYSTEM RSB,R,LCRC SA2 ESTB SET *COMCRSB* ENTRY CONDITIONS MX3 -12 SX1 A2 SET ADDRESS TO TRANSFER TO AX2 12 BX7 -X3*X2 AX2 24 SET ADDRESS TO TRANSFER FROM SA7 PRSB SAVE LAST EST ORDINAL + 1 R= X6,ESTE IX3 X7*X6 SET WORD COUNT SX4 B0 SET SUBSYSTEM (= *CMR*) MX6 1 SA6 X1 RJ RSB= READ EST GETSSID SSID GET SUBSYSTEM ID GETSSM SSFL GET SYSTEM SECURITY MODE SA1 PRSC READ MMFL WORD MX6 1 BX7 X1 SA6 SCRB SA7 LCRC SYSTEM RSB,R,LCRC SA1 SCRB SET LINK DEVICE MX6 -9 LX1 59-35 BX6 -X6*X1 NZ X6,PRS1 IF LINK DEVICE DEFINED R= X6,NEEQ PRS1 SA6 LINK SX6 BUF READ MST,S FOR ALL MASS STORAGE SA6 BUFI SX6 NOPE INITIALIZE EST ORDINAL FOR SEARCH SA6 TEMP PRS2 SA5 TEMP SX7 X5+B1 SA7 A5 SA1 PRSB CHECK ORDINAL IX6 X5-X1 R= X0,ESTE IX7 X5*X0 SA1 ESTB+X7+EQDE GET EST ENTRY ZR X6,PRSX IF END OF EST PL X1,PRS2 IF NOT MASS STORAGE MX0 -12 SX6 MSTL SA2 BUFI IX7 X2+X6 INCREMENT BUFFER POINTER LX6 36 BX1 -X0*X1 SA7 A2 LX1 18+3 MST ADDRESS BX6 X6+X2 IX6 X6+X1 SA6 LCRC BX7 X2 MX6 1 SA7 ESTF+X5 SET MST ADDRESS IN ESTF SA6 X2 FLAG LOW CORE READ SYSTEM RSB,R,LCRC READ MST EQ PRS2 LOOP FOR NEXT DEVICE PRS3 MESSAGE MESK * USER ACCESS NOT VALID.* ABORT PRSA VFD 24/1,18/ESTP,18/ESTB PRSB CON ** LAST MASS STORAGE ORDINAL + 1 PRSC VFD 24/1,18/MMFL,18/SCRB TITLE K DISPLAY KEYBOARD MESSAGES SPACE 4 * K-DISPLAY KEYBOARD ERROR MESSAGES. ERRF BSS 1 ERROR1 DATA 30HUN MUST BE SPECIFIED. ERROR2 DATA 30HNC IS NOT A POWER OF 2. ERROR3 DATA 30HFAMILY MASK NOT EQUAL TO 377. ERROR5 DATA 30HEQ OR DN INCORRECT. ERROR6 DATA 30HINCORRECT ENTRY. ERROR7 DATA 30HFM OR PN MUST BE SPECIFIED. ERROR8 DATA 30HNP GREATER THAN 8. ERROR9 DATA 30HDUPLICATE PN. ERROR10 DATA 30HNC EXCEEDS 200B. ERROR11 DATA 30HCANNOT ALLOCATE DEVICE. ERROR12 DATA 30HNOT AUXILIARY PACK. ERROR13 DATA 30HDUPLICATE DN. ERROR15 DATA 30HDEVICE NOT REMOVABLE. ERROR16 DATA 30HNP NOT ALLOWED. ERROR17 DATA 30HDUPLICATE BITS IN MASK. ERROR18 DATA 30HDEVICE NOT FIRST IN CHAIN. ERROR19 DATA 30HEQXXX, INITIALIZE BIT NOT SET. ERROR20 DATA 30HDN CANNOT BE ZERO. ERROR21 DATA 30HEQXXX, FORMAT PENDING. ERROR22 DATA 30HDEFINED DEVICE ALREADY EXISTS. ERROR23 DATA 30HEQXXX, NO FULL TRACK ACCESS. ERROR24 DATA 30HDEADSTART INITIALIZE REQUIRED. ERROR25 DATA 30HFULL INITIALIZE REQUIRED. ERROR26 DATA 30HEQXXX, TRACK LIMIT. ERROR27 DATA 30HUA NOT WITHIN LIMIT. ERROR28 DATA 30HLA NOT WITHIN LIMIT. ERROR29 DATA 30HLA GREATER THAN UA. ERROR30 DATA 30HUNKNOWN ACCESS LEVEL NAME. * K-DISPLAY KEYBOARD INFORMATIVE MESSAGES. REQOP DATA 30HENTER OPTION. REQEQ DATA 30HENTER EST ORDINAL. REQPM DATA 30HENTER PARAMETERS. ENOFN DATA 30HENTER OLD FAMILY NAME. ENOPN DATA 30HENTER OLD PACK NAME. ENOUN DATA 30HENTER OLD USER NAME. ENODN DATA 30HENTER OLD DEVICE NUMBER. ENNFN DATA 30HENTER NEW FAMILY/PACK NAME. ENFLS DATA 30HENTER FLAWS. ENID DATA 30HENTER IDENTITY OF EQXXX. EDRN DATA 30HEND OF RUN. ENCL DATA 30HENTER CLEAR OR RERUN. * DAYFILE MESSAGES. MESA DATA C* EQXXX, ACTIVE FILES, CANNOT INITIALIZE.* MESB DATA C* MSI ABORTED INITIALIZE MAY NOT BE COMPLETE.* MESC DATA C* NO INITIALIZE REQUESTS SET FOR MSI.* MESD DATA C* INTERNAL ERROR IN MSI.* MESE DATA C* EQXXX, UNABLE TO INITIALIZE IQFT.* MESF DATA C* IQFT FILE INTERLOCKED.* MESG DATA C* NO IQFT FILE FOUND.* MESH DATA C* UNABLE TO READ IQFT FILE.* MESI DATA C* EQXXX, INACTIVE QUEUES INITIALIZED.* MESJ DATA C* LINK DEVICE CANNOT BE ALTERED.* MESK DATA C* USER ACCESS NOT VALID.* MESL DATA C* MSI HUNG.* TITLE KEYBOARD INPUT PROCESSOR. PKI SPACE 4,10 ** PKI - PROCESS KEYBOARD INPUT. * * USES X - 1, 2, 3, 4, 5, 6, 7. * A - 0, 1, 2, 4, 5, 6, 7. * B - 2, 3, 4, 5, 7. * * CALLS ARG, CFE, DTY, DXB, RPT, SPT. PKI SUBR ENTRY/EXIT PKI1 EQ KIP KEYBOARD INPUT PROCESSOR PKI2 ZR B6,PKI3 IF NO PARAMETERS ENTERED KEYMES BLK BLANK MESSAGE LINE SB4 PAR RJ CFE CHECK FOR FLAW ENTRY NZ X4,PKI3 IF ERROR ZR X2,PKI1 IF FLAW ENTRY SA4 PAR SA2 ARGP SB4 B6 SB5 X2 RJ ARG ZR X1,PKI4 IF NO ARGUMENT ERRORS PKI3 ERROR 6 *INCORRECT ENTRY.* EQ PKI1 LOOP FOR NEW DATA PKI4 BX6 X6-X6 CLEAR ERROR FLAG SA6 ERRF SB2 TENP SET INITIAL REGISTERS SB4 PARC SA0 DATB * PROCESS NAMES. SB3 NNME SET NUMBER OF NAMES TO PROCESS PKI5 SA2 B2 GET NAME ZR X2,PKI7 IF NAME NOT ENTERED BX7 X2 SAVE CONVERTED PARAMETER SA1 A0 DISPLAY ENTERED PARAMETER SA7 X1 SA1 =1L0 BX1 X7-X1 NZ X1,PKI6 IF NOT *0* BX7 X7-X7 PKI6 SA7 B4 STORE PARAMETER PKI7 SB2 B2+B1 INCREMENT POINTERS SB3 B3-B1 SB4 B4+B1 SA0 A0+B1 NZ B3,PKI5 IF MORE NAMES TO PROCESS * PROCESS OCTAL PARAMETERS. SB3 NOCT SET NUMBER OF OCTAL PARAMETERS SB7 B0 PKI8 SA5 B2 GET OCTAL PARAMETER ZR X5,PKI10 IF PARAMETER NOT ENTERED RJ SPT SAVE POINTERS RJ DXB CONVERT PARAMETER RJ RPT RESTORE POINTERS ZR X4,PKI9 IF NO ERROR IN CONVERSION SX6 B1 SET ERROR FLAG SA6 ERRF EQ PKI10 INCREMENT POINTERS PKI9 SA6 B4 SAVE CONVERTED VALUE SA1 B2 DISPLAY ENTERED PARAMETER BX6 X1 SA1 A0 SA6 X1 PKI10 SB2 B2+B1 INCREMENT POINTERS SB3 B3-B1 SB4 B4+B1 SA0 A0+B1 NZ B3,PKI8 IF MORE OCTAL PARAMETERS TO PROCESS * CLEAR OUT ENTRY AREA. SB3 OTBLL-1 SET PARAMETER AREA LENGTH SB2 PARE BX6 X6-X6 PKI11 SA6 B2+B3 SB3 B3-B1 PL B3,PKI11 IF MORE TO CLEAR RJ DTY GET FLAW PROCESSOR AX3 18 SX6 X3 SA6 DFPR * CHECK FOR ERROR CONDITION. SA1 ERRF CHECK FOR ERROR IN CONVERSION SA2 CNT NZ X1,PKI3 DISPLAY ERROR MESSAGE SX7 X2-1 SA7 CNT ZR X7,PKIX IF END OF EXPECTED PARAMETERS EQ PKI1 GO FOR NEXT PARAMETER RPT SPACE 4,10 ** RPT - RESTORE POINTERS. * * ENTRY SPTA = ENTERED PARAMETER ADDRESS. * SPTA+1 = NUMBER OF PARAMETERS TO PROCESS. * SPTA+2 = CONVERTED PARAMETER ADDRESS. * * EXIT (B2), (B3) AND (B4) RESTORED. * * USES X - 1, 2. * A - 1, 2. * B - 2, 3, 4. RPT SUBR ENTRY/EXIT SA1 SPTA SA2 A1+B1 SB2 X1 SB3 X2 SA1 A2+B1 SB4 X1 EQ RPTX EXIT SPT SPACE 4,10 ** SPT - SAVE POINTERS. * * ENTRY (B2) = ENTERED PARAMETER ADDRESS. * (B3) = NUMBER OF PARAMETERS LEFT TO PROCESS. * (B4) = CONVERTED PARAMETER ADDRESS. * * EXIT (SPTA - SPTA+1) = (B2), (B3) AND (B4). * * USES X - 6, 7. * A - 6, 7. * B - NONE. SPT SUBR ENTRY/EXIT SX6 B2 SX7 B3 SA6 SPTA SA7 A6+B1 SX6 B4 SA6 A7+B1 EQ SPTX EXIT SPTA BSS 1 ADDRESS OF ENTERED PARAMETER BSS 1 NUMBER OF PARAMETERS LEFT TO PROCESS BSS 1 ADDRESS OF CONVERTED PARAMETERS TITLE PROCESS FLAW ENTRIES ** CFE - CHECK FOR FLAW ENTRY. * * ENTRY (B4) = ADDRESS OF PARAMETER. * (B6) = PARAMETER COUNT. * * EXIT (X2) = 0, IF FLAW ENTRY. * (X4) = 0, IF NO ERROR. * * USES X - ALL. * A - 0, 1, 2, 3, 4, 6, 7. * B - 2, 3, 4, 6. * * CALLS COD, FMD, FRD, RPA, SFN. CFE SUBR ENTRY/EXIT SX7 B1 SELECT *SET FLAW* AS DEFAULT SA7 CFEA SA1 B4 MX0 18 SX3 1R= BX4 -X0*X1 SX2 B1 IX3 X3-X4 BX4 X4-X4 NZ X3,CFEX IF NOT EQUIVALENCED SA3 CFEB ZR X3,CFEX IF FLAWS NOT ALLOWED YET SA3 =0LCPF BX6 X0*X1 BX2 X6-X3 ZR X2,CFE2 IF CLEARING PHYSICAL FLAW SA3 =0LSPF BX2 X6-X3 ZR X2,CFE2.1 IF SETTING PHYSICAL FLAW SA3 =0LSLF BX2 X6-X3 ZR X2,CFE1 IF SETTING LOGICAL FLAW SA3 =0LCLF BX2 X6-X3 NZ X2,CFEX IF NOT CLEARING LOGICAL FLAW * PROCESS *CLF* ENTRY. SX7 B1+B1 SELECT *CLEAR FLAW* OPTION SA7 CFEA * PROCESS *SLF* ENTRY. CFE1 SX4 B1 PRESET RESPONSE SB6 B6-B1 NE B6,B1,CFEX IF INCORRECT ENTRY SB4 B4+B1 SX1 B0 SX2 7777B LIMIT RJ RPA RETRIEVE PARAMETER NZ X4,CFEX IF ERROR EQ CFER STORE ENTRY * PROCESS *CPF* ENTRY. CFE2 SX7 B1+B1 SELECT *CLEAR FLAW* OPTION SA7 CFEA * PROCESS *SPF* ENTRY. CFE2.1 SB4 B4+B1 SB6 B6-B1 SA1 DFPR ZR X1,FMD IF LARGE MEMORY DEVICE SA0 X1 SET PHYSICAL DESCRIPTOR ENTRY ADDRESS EQ FRD FLAW ROTATING MASS STORAGE DEVICE CFER NZ X4,CFEX IF ERROR SA1 FLAI SX3 X1-TFLA-PNFE SX4 B1 PRESET ERROR SX7 X1+B1 INCREMENT POINTER PL X3,CFEX IF LIMIT EXCEEDED SA2 CFEA SA7 A1 LX2 48 BX6 X6+X2 SA6 X1 MX0 -12 FORM MASK FOR LOGICAL ENTRY BX1 -X0*X6 MASK OFF BX5 X6 SAVE X6 RJ COD CONVERT TO DISPLAY CODE SA1 DASM SA0 X1 SAVE LAST ADDRESS SX7 X1+6 SA7 A1 SA6 X1 SA4 DAST GET DISPLAY ADDRESS SX7 X4+6 SA1 I DISPLAY ENTRY SA7 A4 BX0 X4 SAVE (X4) RJ SFN SA6 X4 SA1 A1+B1 RJ SFN SA6 X0+B1 SB3 A0 LAST ADDRESS OF LOGICAL TRACK SB2 LTDS+3 SA4 STAR PRESET STAR BX6 X4 CFE3 EQ B2,B3,CFE5 IF END OF LOOP - EXIT SA3 B3 MORE ENTRIES SA2 B2 IX5 X3-X2 NZ X5,CFE4 IF NOT EQUAL GO TO NEXT ENTRY SA6 B3+2 WRITE STAR TO BOTH ENTRIES SA6 B2+2 CFE4 SB2 B2+6 INCREMENT TO NEXT ENTRY EQ CFE3 LOOP CFE5 BX4 X4-X4 CLEAR X4 BX2 X2-X2 EQ CFEX RETURN CFEA BSSZ 1 FLAW TYPE INDICATOR CFEB CON 0 *FLAWS ALLOWED* FLAG STAR DIS 1, * LRDS VFD 24/I,18/R,18/L FLAW K-DISPLAY CONTROL WORD * FLAW PROCESSOR TABLE. DFPR CON 0 RPA SPACE 4,10 ** RPA - RETRIEVE PARAMETERS. * * ENTRY (B4) = ADDRESS OF PARAMETER. * (X1) = 0, IF NO PARAMETER CHECK REQUIRED. * (X1) = RIGHT JUSTIFIED CHARACTER TO CHECK FOR. * (X2) = MAXIMUM VALUE. * * EXIT (X4) = 0, IF NO ERROR. * (X6) = PARAMETER. * (B4) = ADDRESS OF NEXT PARAMETER. * * USES X - 0, 1, 2, 4, 5, 6. * A - 1, 5, 6. * B - 4, 7. * * CALLS DXB. RPA SUBR ENTRY/EXIT SB7 B0 SET OCTAL BASE SX6 B1 LX1 54 IX6 X2-X6 ADJUST MAXIMUM COUNT SA5 B4 GET PARAMETER SA6 RPAA SAVE MAXIMUM VALUE ZR X1,RPA1 IF NO CHARACTER TO CHECK MX0 6 BX2 X0*X5 BX4 X2-X1 NZ X4,RPAX IF INCORRECT ENTRY LX5 6 RPA1 MX0 36 MASK OFF VALUE BX5 X0*X5 SX6 B4 SAVE PARAMETER ADDRESS SA6 RPAB RJ DXB CONVERT TO OCTAL SA1 RPAB RESTORE PARAMETER ADDRESS SB4 X1+B1 NZ X4,RPAX RETURN - IF ERROR SA1 RPAA IX4 X1-X6 NG X4,RPAX IF MAXIMUM VALUE EXCEEDED BX4 X4-X4 EQ RPAX RETURN RPAA BSSZ 1 HOLD FOR MAXIMUM VALUE RPAB BSSZ 1 HOLD FOR PARAMETER ADDRESS SPACE 4 ** FLAW ROUTINES. * * ENTRY (B4) = PARAMETER ADDRESS. * (B6) = PARAMETER COUNT. * * EXIT (X4) = 0, IF NO ERROR. * = 1, IF ERROR. * (X6) = LOGICAL TRACK TO FLAW. * * USES X - ALL. * A - 0, 1, 2, 3, 5, 6. * B - ALL. * * CALLS RPA. FMD SPACE 4,10 ** FMD - FLAW LARGE MEMORY DEVICES. FMD SX4 B6-B1 R= X1,1RA NZ X4,CFER IF ERROR SA2 =100000000 RJ RPA RETRIEVE ADDRESS NZ X4,CFER IF ERROR SX1 202B CONVERT TRACK ADDRESS SA4 PARC+PMEQ EXTRACT XM SHIFT R= X5,ESTE IX5 X4*X5 SA5 ESTB+X5+EQAE MX0 -2 LX5 -30 BX5 -X0*X5 SB7 X5 LX1 B7 IX6 X6/X1 NZ X5,FMD1 IF NOT DEFAULT TRACK SIZE SX4 CETK-4000B IX4 X6-X4 NZ X4,FMD1 IF NOT CETK SX4 B1 EQ CFER FMD1 BX4 X4-X4 SET NO ERROR RESPONSE EQ CFER RETURN FRD SPACE 4,10 ** FRD - FLAW ROTATING MASS STORAGE DEVICES. * GET AND VERIFY THE CYLINDER, TRACK AND SECTOR VALUES GIVEN * BY THE USER. FOR BUFFERED MASS STORAGE DEVICES, THE SECTOR * NUMBER VALUE ENTERED BY THE USER MUST BE CONVERTED TO THE * MAPPING USED BY THE OPERATING SYSTEM. FRD SX4 B6-3 NZ X4,CFER IF TOO MANY PARAMETERS SX1 1RC SA2 A0 GET CYLINDER LIMIT FOR THIS DEVICE MX0 -12 AX2 48 BX2 -X0*X2 RJ RPA GET CYLINDER SPECIFIED BY USER NZ X4,CFER IF INCORRECT CYLINDER VALUE GIVEN SA6 FRDA SAVE CYLINDER NUMBER SX1 1RT SA2 A0 GET TRACK LIMIT FOR THIS DEVICE MX0 -6 AX2 42 BX2 -X0*X2 RJ RPA GET TRACK SPECIFIED BY USER NZ X4,CFER IF INCORRECT TRACK VALUE GIVEN SA6 FRDB SAVE TRACK NUMBER SX1 1RS SA2 A0 GET SECTOR LIMIT FOR THIS DEVICE MX0 -6 AX2 36 BX2 -X0*X2 RJ RPA GET SECTOR SPECIFIED BY USER NZ X4,CFER IF INCORRECT SECTOR VALUE GIVEN SA3 A0 MX0 -3 LX3 -33 POSITION CONVERSION FACTOR BX2 -X0*X3 SB7 X2 LX6 B7 CONVERT PHYSICAL TO LOGICAL SECTOR * MULTIPLY THE TRACK VALUE BY THE NUMBER OF LOGICAL * SECTORS PER PHYSICAL TRACK. MX0 -6 MASK FOR PHYSICAL SECTORS/PHYSICAL TRACK LX3 33-36 SA1 FRDB FETCH TRACK VALUE BX2 -X0*X3 LX2 B7 CONVERT TO LOGICAL SECTORS/PHYSICAL TRACK IX1 X2*X1 CONVERT TRACK VALUE TO LOGICAL SECTORS LX3 36-12 IX6 X6+X1 ACCUMULATE LOGICAL SECTOR COUNT * MULTIPLY THE CYLINDER VALUE BY THE NUMBER OF LOGICAL * SECTORS PER CYLINDER. SA1 FRDA FETCH CYLINDER VALUE MX0 -12 BX2 -X0*X3 EXTRACT PHYSICAL SECTORS/CYLINDER LX2 B7 CONVERT TO LOGICAL SECTORS/CYLINDER IX1 X2*X1 LX3 12 IX6 X6+X1 ACCUMULATE LOGICAL SECTOR COUNT BX3 -X0*X3 * DIVIDE THE ACCUMULATED LOGICAL SECTOR COUNT BY THE * SUM OF (LOGICAL + GAP) SECTORS PER LOGICAL TRACK. PX3 X3 PX6 X6 NX3 X3 FX6 X6/X3 QUOTIENT = LOGICAL TRACK NUMBER UX6,B7 X6 LX6 B7 EQ CFER RETURN FRDA BSS 1 CYLINDER NUMBER FRDB BSS 1 TRACK NUMBER TDTY SPACE 4,10 ** TDTY - TABLE OF DEVICE TYPE PARAMETERS. * *T, TDTY 1/ PK,11/ MN,1/ TT,11/ SL,18/ FP,6/ AI,12/ CT * * PK = PACK TYPE DEVICE FLAG. * MN = DEVICE MNEMONIC. * TT = TRACK TYPE, 0 = FULL TRACK, 1 = HALF TRACK. * SL = SINGLE UNIT SECTOR LIMIT. * FP = PHYSICAL DESCRIPTOR TABLE ENTRY. * AI = *LDAM* ALGORITHM INDEX. * CT = DEFAULT NUMBER OF CATALOG TRACKS. PURGMAC TBLM TBLM MACRO EQ .A IFNE CYUN_EQ,0 VFD 1/1 SET ROTATING MASS STORAGE DEVICE .A ELSE VFD 1/0 SET LARGE MEMORY STORAGE DEVICE .A ENDIF VFD 11/2R_EQ,1/TT_EQ,11/SL_EQ .B IFNE CYUN_EQ,0 VFD 18/PHY_EQ PHYSICAL DESCRIPTOR TABLE ENTRY .B ELSE VFD 18/0 .B ENDIF VFD 6/AI_EQ,12/CT_EQ ENDM LIST G TDTY TBL "MSEQ" LIST -G CON 0 END OF TABLE TPHY SPACE 4,10 ** TPHY - PHYSICAL DESCRIPTOR TABLE. * *T, TPHY 12/CYPN, 6/PTCY, 6/PSPT, 3/CF, 9/UNUSED, 12/PSCY, 12/LSLT * * CYPN = CYLINDERS PER PARTITION. * PTCY = PHYSICAL TRACKS PER CYLINDER. * PSPT = PHYSICAL SECTORS PER PHYSICAL TRACK. * CF = CONVERSION FACTOR. * PSCY = PHYSICAL SECTORS PER CYLINDER. * LSLT = LOGICAL SECTORS PER LOGICAL TRACK, INCLUDING * GAP SECTORS. PURGMAC TBLM TBLM MACRO EQ IFNE CYUN_EQ,0 PHY_EQ VFD 12/CYPN_EQ VFD 6/PTCY_EQ VFD 6/PSPT_EQ VFD 3/CFS_EQ VFD 9/0 UNUSED VFD 12/PSPT_EQ*PTCY_EQ-SPSC_EQ VFD 12/SL_EQ+GS_EQ ENDIF ENDM LIST G TPHY TBL "MSEQ" LIST -G TITLE COMMON DECKS. SPACE 4 * COMMON DECKS. *CALL COMCARG *CALL COMCDCP *CALL COMCDXB *CALL COMCMVE *CALL COMCSFN *CALL COMCUPC *CALL COMCCOD *CALL COMCVLC * COMMON DECKS WHICH MAKE SYSTEM REQUESTS. QUAL SYSREQ QUAL$ EQU 1 *CALL COMCCIO *CALL COMCCPM *CALL COMCLFM *CALL COMCPFU *CALL COMCQFM *CALL COMCRSB *CALL COMCSYS QUAL * CIO= EQU /SYSREQ/CIO= CPM= EQU /SYSREQ/CPM= LFM= EQU /SYSREQ/LFM= PFU EQU /SYSREQ/PFU QFM EQU /SYSREQ/QFM MSG= EQU /SYSREQ/MSG= RCL= EQU /SYSREQ/RCL= RSB= EQU /SYSREQ/RSB= WNB= EQU /SYSREQ/WNB= SYS= SPACE 4,15 ** SYS= - PROCESS SYSTEM REQUEST. * * ENTRY (X6) = SYSTEM REQUEST. * * USES X - 1, 6, 7. * A - 1, 7. * B - 2. * * CALLS /SYSREQ/SYS=. SYS= SUBR ENTRY/EXIT RJ /SYSREQ/SYS= SA1 PREQ ZR X1,SYS=X IF NO PP REQUEST BX7 X7-X7 CLEAR REQUEST WORD SX6 X1-TPPRL-1 VERIFY REQUEST SA7 A1 PL X6,SYS=X IF INCORRECT REQUEST SB2 X1+TPPR-1 JP B2 EXIT TO REQUEST PROCESSOR * TABLE OF PP REQUESTS. TPPR BSS 0 + EQ CLEAR CLEAR INITIALIZATION FLAGS + EQ RERUN PROCESS RERUN + EQ TKL PROCESS TRACK LIMIT BSS 0 TPPRL EQU *-TPPR TITLE KEYBOARD PROCESSOR. KIP SPACE 4,10 ** KIP - KEYBOARD PROCESSOR. * *PKI* UNPACKS INPUT PARAMETERS FOR *MSI* FUNCTIONS. * * EXIT TO PKI2 IF NO INCORRECT FUNCTIONS ENCOUNTERED. * TO PKIX IF *GO* ENTERED. * TO PKI1 IF PAGING OCCURED. * TO *CLEAR* OR *RERUN* IF APPROPRIATE COMMAND ENTERED. * (B6) = NUMBER OF ARGUMENTS ENTERED. * (X6) = 0 IF NO ERRORS IN UNPACKING OF ARGUMENTS. * * USES X - ALL. * A - 1, 2, 3, 5, 6, 7. * B - 2, 3, 6, 7. * * CALLS PGD, UPC. * * MACROS CONSOLE, MOVE, RECALL. KIP BX6 X6-X6 CLEAR PARAMETER AREA SB3 PARAML-1 KIP1 SA6 PAR+B3 SB3 B3-B1 DECREMENT COUNT NZ B3,KIP1 IF MORE WORDS TO CLEAR SA6 I CLEAR INPUT BUFFER SA6 A6+B1 CONSOLE KDCW KIP2 RECALL SA1 I ZR X1,KIP2 IF INPUT NOT READY MX0 6 BX3 X1*X0 SET ENTRY CONDITIONS FOR *PGD* SX2 PAGA SA5 FLFG ZR X5,KIP2.1 IF INITIALIZE PROCESSING SX2 PAGB KIP2.1 BX4 X4-X4 SX1 KDCW RJ PGD PAGE DISPLAY ZR X4,PKI1 IF PAGING OCCURRED MOVE 4,BLK,KBDS1+1 MOVE 4,BLK,KBDS2+1 SA1 I BX0 X1 LX0 18 SA3 FADD FLAW KEYBOARD INPUT ADDRESS SA5 FLFG NZ X5,KIP3 IF FLAW PROCESSING SA5 PAGA LX5 30 SB2 X5 NE B2,B1,KIP3 IF CURRENT LEFT SCREEN INDEX IS 2 SA3 IADD KIP3 SX5 X0-3RGO. NZ X5,KIP3.1 IF NOT *GO* SA1 BLK KIP3.1 MOVE 4,I,X3 ZR X5,PKIX IF *GO* ENTERED SA1 CLRM LX0 -18 BX2 X1-X0 SA1 RERN AX2 30 SX7 B1 ZR X2,KIP4 IF *CLEAR* BX2 X1-X0 AX2 30 ZR X2,RERUN IF *RERUN* SA5 CARD PROCESS COMMAND SB7 PAR-1 RJ UPC UNPACK COMMAND SB6 B6-B1 SKIP FIRST ARGUMENT EQ PKI2 GO PROCESS ENTRY KIP4 SA7 CLF EQ CLEAR ENTER CLEAR ROUTINE CARD DATA H*MSI,* COMMAND IMAGE I BSSZ 8 KEYBOARD INPUT BUFFER KDCW VFD 24/I,18/R,18/O K DISPLAY CONTROL WORD FADD VFD 42/0,18/KBDS2+1 DISPLAY ADDRESS FOR FLAWING IADD VFD 42/0,18/KBDS1+1 DISPLAY ADDRESS FOR INITIALIZING BLK DIS 4, CLRM DATA 5LCLEAR RERN DATA 5LRERUN SPACE 4,10 * INITIALIZE PAGE TABLE. PAGA PAGT O,MSDS1,KBDS1 LEFT SCREEN PAGE 1 PAGT L,MSDS2,KBDS2 LEFT SCREEN PAGE 2 PAGT PAGT R RIGHT SCREEN PAGT * * FLAW PAGE TABLE. PAGB PAGT L,MSDS2,KBDS2 LEFT SCREEN PAGT PAGT R RIGHT SCREEN PAGT * PGD HERE REMOTE BLOCK FROM *COMCDCP* CDS SPACE 4,10 ** CDC - CLEAR K-DISPLAY ENTRIES. * * USES X - 0, 1, 6, 7. * A - 1, 6, 7. * B - 2, 3. CDS SUBR ENTRY/EXIT SX7 LTDS+1 RESTORE *DAST* SA7 DAST SX7 LTDS+3 RESTORE *DASM* SA7 DASM SA1 BLK SX7 1R0-1R SB2 20B LX7 -6 IX7 X1+X7 BX6 X1 SA1 DATB CDS1 SA7 X1 CLEAR DISPLAY AREA SA1 A1+B1 SB3 A1-DAST NZ B3,CDS1 IF NOT END OF OPTIONS SB3 X1 SAVE ADDRESS OF FLAW DISPLAY BX7 X6 CDS2 SA6 B3 SA7 A6+B1 SB2 B2-B1 SB3 B3+6 NZ B2,CDS2 IF NOT END OF FLAW DISPLAY SB2 20B SB3 LTDS+1 BLANK OUT LEFT SCREEN CDS3 SA6 B3 SA7 A6+B1 SA7 A7+B1 SA7 A7+B1 SB2 B2-B1 SB3 B3+6 INCREMENT TO NEXT LINE NZ B2,CDS3 IF NOT LAST LINE EQ CDSX RETURN TITLE K-DISPLAY LINE NUMBERS. SPACE 4 SPACE 4,10 * K-DISPLAY FOR THE LEFT SCREEN WHEN INITIALIZING DEVICES. * THERE IS NO RIGHT SCREEN. * EST ORDINALS THAT ARE SITE DEPENDENT. LVAL OCTMIC NOPE EST ORDINAL MINIMUM VALUE UVAL OCTMIC ESMX-1 EST ORDINAL MAXIMUM VALUE FVAL DECMIC PNFE FLAW ENTRIES MAXIMUM VALUE O VFD 18/0,18/KDTB,24/0 DISPLAY CONTROL WORD KDL 1,T,(MASS STORAGE DEVICE INITIALIZATION ) KDL 54,T,(PAGE 1 OF 2) KDL 1,K,(INITIALIZE EQUIPMENT) OPDS KDL 1,K,( ) INDSA KDL 1,K,( ) TPDS KDL 1,H,(INITIALIZE REQUEST ) KDL 1,H,( OPTION DESCRIPTION) EQDS KDL 1,K,( EQ = 0 EST ORDINAL OF DEVICE ("LVAL"-"UVAL") ,.) FNDS KDL 1,K,( FM = 0 FAMILY NAME OR PACK NAME IF TY=X (1-7 , CHAR).) DNDS KDL 1,K,( DN = 0 DEVICE NUMBER (1-77).) UNDS KDL 1,K,( UN = 0 PRIVATE AUXILIARY DEVICE USER NAME (1 ,-7 CHAR).) TYDS KDL 1,K,( TY = 0 ACCESS TYPE (F OR X).) LADS KDL 1,K,( LA = 0 LOWER ACCESS LEVEL (1-7 CHAR).) UADS KDL 1,K,( UA = 0 UPPER ACCESS LEVEL (1-7 CHAR).) DMDS KDL 1,K,( DM = 0 DEVICE MASK (0-377).) SMDS KDL 1,K,( SM = 0 SECONDARY MASK (0-377).) NCDS KDL 1,K,( NC = 0 CATALOG TRACKS (0-200).) NPDS KDL 1,K,( NP = 0 NUMBER OF PACKS (1-7).) MSDS1 KDL 1,M,( ) KBDS1 KDL 1,I,( ) CON 0 END OF DISPLAY SPACE 4,10 * K-DISPLAY FOR THE LEFT SCREEN WHEN FLAWING DEVICES. * THERE IS A RIGHT SCREEN. L VFD 18/0,18/KDTB,24/0 DISPLAY CONTROL WORD LNDS KDL 1,T,(CURRENT FLAW ENTRIES ) KDL 54,T,(PAGE 2 OF 2) INDS KDL 1,K,( EQ = 0 EST ORDINAL OF DEVICE. ) KDL 1,H,( NUM VALUES ENTERED TRT OCTAL VALUES * = DUPLICAT ,E) LTDS KDL 1,K,( 1 ) KDL 1,K,( 2 ) KDL 1,K,( 3 ) KDL 1,K,( 4 ) KDL 1,K,( 5 ) KDL 1,K,( 6 ) KDL 1,K,( 7 ) KDL 1,K,( 8 ) KDL 1,K,( 9 ) KDL 1,K,( 10 ) KDL 1,K,( 11 ) KDL 1,K,( 12 ) KDL 1,K,( 13 ) KDL 1,K,( 14 ) KDL 1,K,( ) MSDS2 KDL 1,M,( ) KBDS2 KDL 1,I,( ) CON 0 END OF DISPLAY SPACE 4,10 * K-DISPLAY FOR THE RIGHT SCREEN WHEN FLAWING DEVICES. * THERE IS A LEFT SCREEN. R VFD 18/0,18/KDTB,24/0 DISPLAY CONTROL WORD KDL 1,T,(MASS STORAGE DEVICE FLAWING) KDL 1,H,(SLF, CLF, SPF AND CPF ENTRIES) RTDS KDL 1,K,( ) KDL 1,K,( SLF = NNNN SET LOGICAL TRACK FLAW.) KDL 1,K,( CLF = NNNN CLEAR LOGICAL TRACK FLAW.) KDL 1,K,( SPF = XX SET PHYSICAL TRACK FLAW.) KDL 1,H,( CPF = XX CLEAR PHYSICAL TRACK FLAW.) KDL 1,K,( WHERE) KDL 1,K,( NNNN = VALID LOGICAL TRACK NUMBER.) KDL 1,K,( XX = C000,T00,S00 (CYLINDER,TRACK,SECTOR.) KDL 1,H,( = A0000000 (ADDR/10B, FOR DE/DP ONLY.)) KDL 1,K,( NUMERIC VALUES ARE CONSIDERED OCTAL UNLESS THE) KDL 1,K,( DIGITS 8 OR 9 APPEAR IN THE NUMBER, OR A *D* IS) KDL 1,H,( APPENDED TO THE NUMBER.) KDL 1,K,(SEE LEFT SCREEN FOR CURRENT ENTRIES,) KDL 1,H,(UP TO "FVAL" ENTRIES ALLOWED.) CON 0 END OF DISPLAY * Y - COORDINATE TABLE. KYCT KDL * PRK HERE ASSEMBLE REMOTE BLOCK FROM COMCDCP HERE KDTA DATA C*FLAW.* K-DISPLAY TITLE KDTB DATA C*INITIALIZE.* K-DISPLAY TITLE TITLE BUFFERS AND FLAGS SPACE 4 ** TABLES AND BUFFERS. USE BUFFERS UTL= BSS 0 SYSTEM UTILITY SPECIAL ENTRY POINT SSJ= BSSZ SSJL ESTB EQU * EST TABLE ESTF EQU ESTB+ESMX*ESTE EST MST LINK TABLE PKL EQU ESTF+ESMX PACK LINK TABLE BUF EQU PKL+PKLL MST BUFFER CATB EQU BUF+ESMX*MSTL BUFFER FOR CATALOG READS SCRB EQU CATB+CATBL SCRATCH BUFFER RFL= EQU SCRB+SCRBL SPACE 4 END