IDENT CONFIG,FWA ABS SST ENTRY CONFIG ENTRY RFL= ENTRY SSJ= SYSCOM B1 CONFIG TITLE CONFIG - CONFIGURE MASS STORAGE. *COMMENT CONFIG - CONFIGURE MASS STORAGE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. CONFIG SPACE 4,10 ***** CONFIG - CONFIGURE MASS STORAGE. * * A. J. BEEKMAN. 77/04/25. * W. E. GOEBEL 80/02/29. * * *CONFIG* PROVIDES THE CAPABILITY TO REPAIR OR RECONFIGURE * 844 OR 885 DEVICES ON-LINE. SPACE 4,10 *** *CONFIG* ACCEPTS OPERATOR INPUT THROUGH A K-DISPLAY, VERIFIES * THE ENTERED PARAMETERS AND THEN USES THESE PARAMETERS WHILE * CALLING THE PP PROGRAM *1RM* TO RECONFIGURE OR SUSPEND * 844 OR 885 TYPE RMS DEVICES. SPACE 4,10 *** COMMAND. * * CONFIG. *CONFIG* IS INITIATED BY *CMS* WHEN AN IDLED * DEVICE IS FOUND. SPACE 4,10 *** K-DISPLAY INPUT DATA. * * DATA ITEMS ARE PARTITIONED WITH SEPARATOR CHARACTERS, I.E., * ANY NON-ALPHANUMERIC CHARACTER EXCEPT *=*. EACH VALUE * MUST BE PRECEDED BY A PARAMETER AND SEPARATED FROM THE * PARAMETER BY AN *=*. ONLY ONE DATA ITEM (PARAMETER= * VALUE OR COMMAND) MAY BE ENTERED ON A LINE OF INPUT AND NO * LINE TERMINATOR IS NECESSARY. * * THE FOLLOWING IS A DESCRIPTION OF PARAMETERS. * * EQ=EEE EST ORDINAL *EEE* IS TO BE PROCESSED. * THIS PARAMETER IS ENTERED WHEN THE PROCESSING * OF EQUIPMENTS IS ORDER-DEPENDENT. THIS IS * NEEDED, FOR EXAMPLE, WHEN A UNIT MUST FIRST BE * FREED UP TO REPLACE A FAILING UNIT. IN THIS * CASE A UNIT IS DELETED FROM AN EQUIPMENT WHERE * IT IS NOT IN USE SO THAT IT CAN REPLACE A UNIT * WHICH IS FAILING. * * CH=C1,C2 CHANNEL(S) TO BE USED UNDER NEW DEVICE * DEFINITION. THIS PARAMETER IS USED WHEN THE * ENTIRE DEVICE IS TO BE REDEFINED TO AN ALTERNATE * CHANNEL STRING. IT CAN ALSO BE USED TO ADD OR * DELETE CHANNELS FROM AN EQUIPMENT DEFINITION. * * UL=U1,U2,... UN UNIT LIST FOR NEW CONFIGURATION. WHEN * A UNIT IS TO BE REPLACED, ADDED OR DELETED * THE ENTIRE UNIT CONFIGURATION MUST BE ENTERED * WITH THIS PARAMETER. IF A UNIT IS TO BE * ADDED OR DELETED THE EQUIPMENT MUST BE GLOBALLY * UNLOADED IF SHARED OR HAVE UNAVAILABLE STATUS * OTHERWISE. * * UR=UU UNIT *UU* IS TO BE RECABLED. THIS OPTION IS USED * WHEN A UNIT IS TO BE REPLACED BY A NEW UNIT WITH * THE SAME UNIT NUMBER. THIS IS DONE BY PHYSICALLY * DISCONNECTING THE OLD UNIT AND RECABLING IN THE * REPLACEMENT UNIT. MULTIPLE UNITS MAY BE * SPECIFIED FOR RECABLING. SPACE 4,10 *** K-DISPLAY COMMANDS. * * GO. INITIATE PROCESSING OF RECONFIGURATION RUN USING * PARAMETERS ENTERED. THE K-DISPLAY PARAMETERS WILL BE * SET TO THE DEFAULT VALUES WHEN CONTROL IS RETURNED. * * SUSPEND. ALL REQUESTS TO CURRENT EQUIPMENT ARE SUSPENDED. * THIS IS DONE SO THAT THE DRIVE MAY BE REPAIRED * ON LINE. MULTIPLE EQUIPMENTS MAY BE SUSPENDED * CONCURRENTLY. * * CLEAR. CLEARS THE SUSPEND AND IDLE STATUS FOR CURRENT * EQUIPMENT. THIS IS ENTERED WHEN THE EQUIPMENT IS * TO BE RETURNED FOR NORMAL SYSTEM USE. * * END. ENDS *CONFIG* PROCESSING. * * RERUN. SET THE PARAMETERS TO THEIR DEFAULT VALUES AND UPDATE * THE LIST OF EQUIPMENTS TO BE RECONFIGURED. * * RESET. RESET THE PARAMETERS TO THEIR DEFAULT VALUES. * * * THE FOLLOWING COMMANDS ARE ENTERED IN RESPONSE TO AN * ERROR CONDITION DETECTED BY *1RM*. * * ABORT. THIS COMMAND IS ENTERED TO DISCONTINUE PROCESSING * OF THE CURRENT COMMAND IN PROGRESS. * * IGNORE. THE ERROR CONDITION DETECTED BY *1RM* IS TO * BE IGNORED. THIS COMMAND SHOULD BE USED WITH * DISCRETION. IT SHOULD BE USED ONLY WHEN THE * ERROR BEING POSTED IS WELL UNDERSTOOD AND * CAN LEGITIMATELY BE IGNORED. * * NEXT. THIS COMMAND IS ENTERED IN RESPONSE TO AN * 885 SERVO TIMING CHECK WHEN THE TIMING DATA * IS IN THE REQUIRED RANGE. ENTRY OF THIS * COMMAND WILL CAUSE PROCESSING TO CONTINUE * WITH EITHER THE NEXT UNIT OR THE NEXT STEP * OF PROCESSING. * * RECHECK. THIS COMMAND IS ENTERED TO RETRY A PROCESS * WHICH PREVIOUSLY GAVE AN ERROR. IF THE ERROR * PERSISTS THE MESSAGE WILL BE POSTED AGAIN * WITH ANOTHER OPPORTUNITY FOR OPERATOR ACTION. SPACE 4,10 *** OPERATIONAL CONSIDERATIONS. * * WHEN REPLACING A FAILING UNIT WITH A NEW UNIT THE * NEW UNIT MUST NOT BE DEFINED IN THE EST. IF THE * REPLACEMENT UNIT IS DEFINED IN THE EST IT MUST * FIRST BE DELETED FROM THE EQUIPMENT IN WHICH IT IS * DEFINED. * WHEN ADDING OR DELETING A UNIT FROM AN EQUIPMENT * THE EQUIPMENT MUST BE UNLOADED. * * * WHEN RUNNING IN A MMF ENVIRONMENT CERTAIN PROBLEMS ARISE. * THEY ARE AS FOLLOWS - * * 1) WHEN A UNIT IS INTRODUCED INTO AN EQUIPMENT * *CONFIG* WILL CHECK IF THE REPLACEMENT UNIT IS NOT IN * USE IN THE MACHINE INITIATING THE RECONFIGURATION, BUT IT * CANNOT CHECK IF IT IS IN USE BY THE OTHER MACHINES. THE * DESIGN OF THIS PROGRAM DOES NOT SOLVE THIS PROBLEM AND IT * IS LEFT TO THE OPERATORS TO ENSURE THAT THE REPLACEMENT * UNIT IS TRULY FREE IN THE MMF COMPLEX. * * 2) WHEN REPLACING A UNIT WITH A NEW UNIT, *CONFIG* * WILL CHECK FOR ALL MACHINES ACCESSING THE DEVICE TO COMPLY * WITH THE RECONFIGURATION. HOWEVER, IF THE MACHINE DOES NOT * HAVE THE DEVICE LOADED THERE IS NO WAY TO CHECK FOR ITS * COMPLIANCE. IN THIS CASE THE RECONFIGURATION WILL PROCEED * ON THE MACHINES WITH THE DEVICE LOADED AND THE OTHER * MACHINES WILL NOT BE ABLE TO USE THIS DEVICE. * * 3) THE ADDITION AND DELETION OF A UNIT IS INTENDED * FOR LOCAL MACHINE USE. WHEN AN ADD OR DELETE IS COMPLETED * ON ONE MACHINE, THE REDEFINITION REQUESTED BIT WILL BE * CLEARED FOR THAT EQUIPMENT. THUS, NO OTHER MACHINE WILL * RECOGNIZE THE REQUEST FOR RECONFIGURATION ON THIS EQUIPMENT. * IF MORE THAN ONE MACHINE IN THE COMPLEX WISHES TO ADD OR * DELETE UNITS FROM THE SAME SHARED EQUIPMENT, *IDLE,EQXXX.* * WILL HAVE TO BE ENTERED FROM EACH MACHINE. SPACE 4,10 *** ROUTINES CALLED. * * *1RM*, *CMS*. SPACE 4,10 *** DAYFILE MESSAGES. * * * * INCORRECT COMMAND.* = INCORRECT ARGUMENTS WERE ENTERED * ON THE *CONFIG* COMMAND. * * * USER ACCESS NOT VALID.* = *CONFIG* WAS CALLED FROM A NON- * SYSTEM ORIGIN JOB OR WITHOUT MASS STORAGE SUBSYSTEM ID. * * * CONFIG UTILITY COMPLETE.* = ALL IDLED EQUIPMENTS HAVE * BEEN PROCESSED. SPACE 4,10 *** OPERATOR MESSAGES. * * IF ONE OF THE ERRORS BELOW IS ENCOUNTERED, THE OPERATOR WILL * BE ABLE TO CORRECT THE ERROR VIA THE K-DISPLAY. ALL * PARAMETERS OR COMMANDS AFTER THE ONE IN ERROR WILL BE * IGNORED. * * * **** DEVICE NOT FIRST IN CHAIN. * AN EQUIPMENT OTHER THAN THE FIRST EQUIPMENT IN A * LINKED DEVICE WAS ENTERED TO BE RECONFIGURED. THIS * IS NOT ALLOWED IN ORDER TO PREVENT DESTROYING THE * INTEGRITY OF A LINKED DEVICE RECONFIGURATION. * * **** EQUIPMENT STATUS INCORRECT. * THE EQUIPMENT BEING REDEFINED IS NOT UNLOADED AND * AS SUCH THE NUMBER OF UNITS CANNOT BE CHANGED. * * **** ERROR IN CHANNEL NUMBER. * MAY INDICATE - * 1) IF .LE. 10 PP-S, NOT WITHIN RANGE OF 0-13B. * 2) IF .GT. 10 PP-S, NOT WITHIN RANGES OF 0 - 13B * OR 20B-33B. * 3) 1 (OR MORE) OF CHANNELS SPECIFIED IS DOWN. * * **** ERROR IN EST ORDINAL. * MAY INDICATE - * 1) EQUIPMENT NOT MASS STORAGE. * 2) EQUIPMENT IS NOT *844* OR *885*. * * **** ERROR IN UNIT LIST. * MAY INDICATE - * 1) A UNIT NUMBER WAS DUPLICATED IN THE UNIT LIST. * 2) MORE THAN 3 UNITS WERE SPECIFIED FOR AN *885*. * * **** INCORRECT ENTRY. * 1) A KEYWORD WAS NOT FOUND. * 2) TOO MANY DIGITS WERE ENTERED AS A PARAMETER. * 3) A NON-DIGIT CHARACTER WAS FOUND IN A * PARAMETER. * 4) A CHARACTER WAS FOUND AFTER THE POST RADIX. * 5) AN 8 OR 9 WAS FOUND WITH A *B* POST RADIX. * * **** INCORRECT SEPARATOR. * A *=* SEPARATOR WAS FOUND FOLLOWING A PARAMETER * VALUE OR COMMAND IN THE INPUT STRING. * * **** INTRODUCED UNIT IN USE. * MAY INDICATE - * A UNIT BEING INTRODUCED INTO AN EQUIPMENT IS * DEFINED ON ANOTHER EQUIPMENT. * * * THE FOLLOWING COMMANDS ARE POSTED ON THE K-DISPLAY BY * *1RM*. WHEN *1RM* DETECTS A CONDITION WHICH MAY BE * RESPONDED TO BY THE OPERATOR, A MESSAGE IS POSTED AND * THE LEGAL COMMANDS ARE POSTED ON THE K-DISPLAY. THE * FOLLOWING LIST OF ERROR MESSAGES LISTS THOSE LEGAL * COMMANDS AND INDICATES IF AN OPERATOR RESPONSE IS * REQUIRED OR OPTIONAL. * * * UNIT XX, CHYY WRITE/READ VERIFY ERROR. * PART OF THE VALIDATION PROCEDURE WHEN RETURNING * AN EQUIPMENT FOR SYSTEM USE (CLEAR COMMAND) IS * TO WRITE A SECTOR OF DATA TO THE DEVICE, READ IT * BACK AND VERIFY THE DATA. WHEN THIS VERIFICATION * FAILS THE ABOVE MESSAGE APPEARS. * COMMANDS - REQUIRED. * ABORT, IGNORE, RECHECK. * * * ERROR IN PERFORMING SERVO CHECK ON UNIT XX. * THE SERVO ADJUSTMENT PROCEDURE HAS ENCOUNTERED * A DISK ERROR CONDITION. * COMMANDS - REQUIRED. * ABORT, IGNORE, RECHECK. * * * UNIT XX SERVO TIMING= XXX. ACCEPTABLE RANGE IS 325 TO 345. * WHEN RECONFIGURING AN 885 HDA A SERVO ADJUSTMENT * PROCEDURE IS EXECUTED. THIS PROCEDURE MEASURES * SERVO TIMING CHARACTERISTICS WHICH MUST BE IN THE * SPECIFIED RANGE. A DRIVE ADJUSTMENT MUST BE MADE * BY A CE UNTIL THE TIMING IS IN THE SPECIFIED * RANGE. * COMMANDS - REQUIRED. * ABORT, RECHECK. * NEXT. ONLY IF TIMING IS IN RANGE. * IGNORE. ONLY IF TIMING IS NOT IN RANGE. * * * ERROR ON LINK DEVICE. * WHEN A DEVICE IS SHARED BETWEEN MAINFRAMES THE * LINK DEVICE IS READ TO SYNCHRONIZE PROCESSING * BETWEEN MACHINES. WHEN AN ERROR OCCURS IN * READING THE LINK DEVICE THIS ERROR MESSAGE * IS ISSUED. * COMMANDS - REQUIRED. * ABORT, IGNORE. * * * SPIN DOWN UNIT XX. * THIS IS A DIRECTIVE TO THE OPERATOR OR CE TO * SPIN DOWN THE SPECIFIED UNIT IN PREPARATION * FOR MOVING THE PACK OR HDA. * COMMAND - OPTIONAL. * ABORT, IGNORE. * * * MOVE PACK FROM UNIT XX TO UNIT YY AND SPIN UP. * THIS DIRECTIVE IS ISSUED TO THE OPERATOR FOR * EACH UNIT TO BE MOVED DURING A RECONFIGURATION. * UNIT XX HAS PREVIOUSLY BEEN DIRECTED TO BE * SPUN DOWN AND ITS PACK OR HDA IS NOW TO BE * MOVED TO UNIT YY. * COMMANDS - OPTIONAL. * ABORT, IGNORE. * * * UNIT XX, CHYY LABEL READ ERROR. * IN VERIFYING THAT THE CORRECT LABEL IS PRESENT * ON UNIT XX A DISK ERROR OCCURRED WHICH PREVENTED * THE LABEL FROM BEING READ SUCCESSFULLY. * THE CHANNEL IS SPECIFIED IN THE MESSAGE AND * MAY BE HELPFUL IF THE VERIFY ERROR OCCURS * ONLY FROM A SINGLE CHANNEL IN A DUAL ACCESS * CONFIGURATION. * COMMANDS - REQUIRED. * ABORT, IGNORE, RECHECK. * * * UNIT XX, CHYY LABEL VERIFICATION ERROR. * THE LABEL SECTOR WAS READ BUT THE DATA IN THE * LABEL SECTOR IS NOT CORRECT. * COMMANDS - REQUIRED. * ABORT, IGNORE, RECHECK. * * * WAITING FOR MACHINE ID=XX. * A SHARED DEVICE IS BEING PROCESSED AND IT HAS * BEEN DETECTED THAT MACHINE IDXX IS NOT AT THE * SAME STAGE OF PROCESSING AS THIS MACHINE. * COMMANDS - REQUIRED. * ABORT, IGNORE. SPACE 4,10 **** ASSEMBLY CONSTANTS. OBUFL EQU 1001B OUTPUT BUFFER LENGTH KCML EQU 12 COMMAND LINES IN K-DISPLAY KEQL EQU 7 MAX NUMBER OF IDLED EQUIPMENTS DISPLAYED KLNL EQU 7 K-DISPLAY LINE LENGTH INCLUDING HEADER NSCI EQU 80 NUMBER OF CHARACTERS TO SCAN ON INPUT **** SPACE 4,10 *CALL COMCMAC *CALL COMCDCM *CALL COMCDCP *CALL COMSSSD *CALL COMSSSJ LIST G,X *CALL COMS1RM LIST * MACROS TITLE MACROS. CALL1RM SPACE 4,10 ** CALL1RM - CALL *1RM* TO PERFORM SPECIFIED FUNCTION. * * CALL1RM F * F = FUNCTION CODE AS DEFINED IN *COMS1RM*. * * USES X - 6. * * CALLS CRM. CALL1RM MACRO F MACREF CALL1RM SX6 F*2+1 RJ CRM CALL1RM ENDM GETLCW SPACE 4,10 ** GETLCW - GET LOW CORE WORDS. * * GETLCW WC,LC,AD * WC = WORD COUNT OF LOW CORE WORDS TO READ. * LC = ADDRESS OF LOW CORE WORDS. * AD = ADDRESS TO STORE LOW CORE WORDS. * * USES X - 1, 2, 3. * * CALLS GLC. GETLCW MACRO WC,FR,AD MACREF GETLCW R= X1,WC R= X2,FR R= X3,AD RJ GLC GETLCW ENDM KEYWORD SPACE 4,10 ** KEYWORD - DEFINE COMMAND AND PARAMETER ENTRY POINTS. * * KEYWORD E * E = KEYBOARD KEYWORD SYNTAX. * AN *=* IS APPENDED TO THE KEYWORD OF AN EQUIVALENCED * PARAMETER. THIS MACRO DEFINES BOTH COMMAND AND * PARAMETER KEYWORDS. KEYWORD MACRO KEYWRD,PR MACREF KEYWORD KYMX SET KYMX+1 IFC NE,*PR*0*,1 PR SUBR KEY RMT A MICRO 1,,=KEYWRD= ORG TKEY+."A" VFD 42/0L_KEYWRD,18/PR KEY RMT KEYWORD ENDM KYMX SET 0 INITIALIZE KEYWORD COUNT MOVEDL SPACE 4,15 ** MOVEDL - MOVE DISPLAY LINE. * * *MOVEDL* IS USED TO MOVE A DISPLAY LINE TO A K-DISPLAY * BUFFER WHICH HAS THE X,Y COORDINATES IN THE FIRST 24 BITS * OF EACH LINE. * * MOVEDL COUNT,FROM,TO * * COUNT = WORD COUNT OF BLOCK TO BE MOVED. * FROM = ADDRESS OF FIRST WORD OF SOURCE. * TO = ADDRESS OF FIRST WORD OF DESTINATION. * * USES X - 1, 2, 3. * * CALLS MPL. MOVEDL MACRO COUNT,FROM,TO MACREF MOVEDL R= X1,COUNT R= X2,FROM R= X3,TO RJ MPL MOVEDL ENDM TITLE KEYWORD DEFINITION FOR *CONFIG* COMMANDS. CDEF CLEAR,(CLEAR IDLE AND SUSPEND ON CURRENT EQUIPMENT.) CDEF END,(CLEAR ALL DEVICE IDLES AND END *CONFIG*.) CDEF GO,(INITIATE PROCESSING OF ENTERED CONFIGURATION.) CDEF RERUN,(RESTART *CONFIG* UTILITY PROCESSING.) CDEF RESET,(RESET CURRENT EQUIPMENT TO DEFAULT PARAMETERS.) CDEF SUSPEND,(SUSPEND SYSTEM OPERATION ON CURRENT EQUIPMENT.) CDEF (CH=C1,C2),(C1 AND OPTIONALLY C2 ARE NEW ACCESS CHANNELS.) CDEF (EQ=EEE),(SET EST ORDINAL EEE TO BE PROCESSED.) CDEF (UL=U1,U2,...),(SET UNIT LIST AS SPECIFIED.) CDEF (UR=UU),(UNIT UU IS TO BE RECABLED WITH A NEW DRIVE.) TITLE RESERVED LOCATIONS AND FETS. ORG 102B * RESERVED LOCATIONS. FWA BSS 0 ESTA CON 0 EST ADDRESS LMSO CON 0 LAST MASS STORAGE EST ORDINAL + 1 MMFF CON 0 MULTI-MAINFRAME FLAG NPPU CON 0 NUMBER OF PPU-S IN SYSTEM SLMP CON 0 STRING BUFFER LIMIT POINTER SPTR CON 0 STRING BUFFER POINTER TEMP CON 0 TEMPORARY SPACE 4,10 * *1RM* CALL BLOCK. B1RM BSS 0 *1RM* CALL BLOCK LOC 0 * WHILE *1RM* IS ACTIVE K-DISPLAY INPUT IS INTERPRETED BY * *CONFIG* AND THE COMMAND CODE PASSED TO *1RM*. THE * COMMANDS WHICH ARE LEGAL FOR *1RM* TO ACCEPT ARE SET IN * THE CALL BLOCK BY *1RM* IN THE FORM OF A BIT MAP. THIS * BIT MAP IS ALSO USED TO GENERATE A DESCRIPTION OF LEGAL * COMMANDS IN THE DISPLAY. RFNB VFD 48/0 VFD 11/0 *1RM* FUNCTION CODE VFD 1/0 FUNCTION IN PROGRESS BIT TPAR BSS 0 TABLE OF LEGAL PARAMETERS POS .CLEAR VFD 1/1 POS .END VFD 1/1 POS .GO VFD 1/1 POS .RERUN VFD 1/1 POS .RESET VFD 1/1 POS .SUSPEND VFD 1/1 POS .CH VFD 1/1 POS .EQ VFD 1/1 POS .UL VFD 1/1 POS .UR VFD 1/1 TCOM CON 0 COMMANDS TO PASS TO *1RM* CUEQ CON 0 CURRENT EQUIPMENT URCD CON 0 UNITS TO RECONFIGURE OR RECABLE ESTD CON 0 NEW EST ENTRY FOR CURRENT EQUIPMENT MSTD BSS MSTL NEW MST FOR CURRENT EQUIPMENT LOC *O SPACE 4,10 * FETS. O BSS 0 OUTPUT FILE OUTPUT FILEB OBUF,OBUFL,(FET=7) TITLE CONFIG - MAIN LOOP. ** CONFIG - MAIN LOOP. CONFIG SB1 1 RJ PRS PRESET RJ BCL OUTPUT INITIAL CONFIGURATION * INITIATE K-DISPLAY. SA1 MMFF ZR X1,CON1 IF NOT MMF MODE CALL1RM RCDF CLEAR DAT INTERLOCK CON1 RJ RRC SET VALUES ON K-DISPLAY MX6 -5 SA6 TEMP CONSOLE KL CON2 RJ UKD UPDATE K-DISPLAY RECALL SA1 B1RM+CUEQ CHECK FOR EQUIPMENT PRESENT NZ X1,CON3 IF EQUIPMENT PRESENT SA1 TEMP ZR X1,CON1 IF TIME TO CHECK FOR EQUIPMENT SX6 X1+B1 SA6 A1 * CHECK FOR INPUT. CON3 SA1 KBUF ZR X1,CON2 IF NO INPUT RJ ISB INPUT STRING BUFFER SX7 B0 ASSEMBLE KEYWORD RJ ASC ZR X4,CON3 IF NO DATA ASSEMBLED SB4 1R= NE B4,B5,CON4 IF NOT *=* SEPARATOR SX1 6 IX1 X1*X4 SX5 B5 SB4 X1-54 AX5 B4 BX6 X6+X5 CON4 RJ SPT NZ X5,CON5 IF PARAMETER NOT FOUND SA1 CONA SIMULATE RETURN JUMP SB4 X3 BX6 X1 SA6 B4 JP B4+1 JUMP TO PROCESSOR * RETURN FROM PARAMETER PROCESSING. CON5 ZR X5,CON3 IF NO ERROR RJ IDE PROCESSES ERROR EQ CON3 LOOP FOR MORE INPUT CONA EQ CON5 SIMULATED RETURN JUMP TO PROCESSOR TITLE *1RM* COMMAND DEFINITIONS. ABORT SPACE 4,10 ** ABORT - ABORT THE CURRENT COMMAND SEQUENCE. KEYWORD ABORT,0 IGNORE SPACE 4,10 ** IGNORE - IGNORE CURRENT ERROR CONDITION. KEYWORD IGNORE,0 NEXT SPACE 4,10 ** NEXT - PROCEED TO NEXT UNIT. KEYWORD NEXT,0 RECHECK SPACE 4,10 ** RECHECK - RETRY PROCESS GIVING ERROR. KEYWORD RECHECK,0 TITLE CLC - *CLEAR* COMMAND PROCESSOR. ** CLC - *CLEAR* COMMAND PROCESSOR. * * ENTRY (CUEQ) = CURRENT EQUIPMENT TO RECONFIGURE. * * EXIT REDEFINITION REQUEST CLEARED FOR CURRENT EQUIPMENT. * * USES A - 1, 6. * X - 1, 5, 6. * * MACRO CALL1RM. KEYWORD CLEAR,CLP SA1 B1RM+CUEQ ZR X1,CLPX IF NO EQUIPMENT RJ FUM CHECK FOR UNIT IN USE NZ X5,CLPX IF ERROR DETECTED CALL1RM RCLF RJ RRC SET NEW EQUIPMENT EQ CLPX RETURN TITLE END - END COMMAND PROCESSOR. ** END - *END* COMMAND PROCESSOR. * * COMPLETE RECONFIGURATION RUN. * * USES X - 1, 5. * A - 1. * B - 0. * * CALLS CAE. * * MACROS CALL1RM, EXCST, KEYWORD, MESSAGE, SETFS. KEYWORD END,END END1 RJ CAE CLEAR ALL EQUIPMENT IDLE REQUESTS SA1 MMFF ZR X1,END2 IF NOT MMF MODE CALL1RM RCDF CLEAR DAT INTERLOCK END2 SA1 B1RM+RFNB SX5 B0+ INDICATE NO ERROR NZ X1,ENDX IF *1RM* STILL ATTACHED MESSAGE ENDA * CONFIG UTILITY COMPLETE.* SETFS O,0 EXCST ENDB FORCE CALL TO *CMS* ENDRUN ENDA DATA C* CONFIG UTILITY COMPLETE.* ENDB DATA 4LCMS. TITLE GOC - *GO* COMMAND PROCESSOR. ** GOC - *GO* COMMAND PROCESSOR. * * ENTRY (CUEQ) = CURRENT EQUIPMENT TO RECONFIGURE. * * EXIT (X5) = ERROR MESSAGE ADDRESS. * * USES A - 1, 2, 3, 4, 6, 7. * X - ALL. * * CALLS BCL, CLD, FUM. * * MACROS CALL1RM, KEYWORD. KEYWORD GO,GOC RJ CLD CHECK FOR LEGAL DEVICE NZ X5,GOCX IF INCORRECT DEVICE RJ FUM FIND UNIT IN OTHER MST NZ X5,GOCX IF ERROR IN CONFIGURATION CALL1RM RDDF RJ BCL BUILD CONFIGURATION LIST RJ RRC RESET NEW EQUIPMENT EQ GOCX RETURN TITLE RRC - *RERUN* COMMAND PROCESSOR. ** RRC - *RERUN* COMMAND PROCESSOR. * * ENTRY (ESTA) = EST ADDRESS. * (MMFF) .NE. 0 IF MMF MODE. * * EXIT (X1) = CURRENT EQUIPMENT. * (X5) = ERROR MESSAGE. * (CUEQ) = CURRENT EQUIPMENT TO RECONFIGURE. * (CUEQ), (ESTB), (MSTD), AND K-DISPLAY RESET. * * USES A - 1, 2, 5, 6, 7. * B - 5, 6. * X - 0, 1, 2, 5, 6, 7. * * CALLS EST, RSC, SML. * * MACROS CALL1RM, GETLCW, KEYWORD. KEYWORD RERUN,RRC CALL1RM RUMF RJ EST READ EST INTO *ESTB* * SEARCH FOR EQUIPMENT TO RECONFIGURE. SX5 NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH SB5 B0 SET EQUIPMENT NOT FOUND BX6 X6-X6 CLEAR CURRENT EQUIPMENT SB6 B0 SET SHARED EST ORDINAL SA6 B1RM+CUEQ SA6 B1RM+URCD CLEAR UNITS TO RECONFIGURE RRC1 RJ SML FIND EQUIPMENT ZR X5,RRC3 IF END OF EQUIPMENTS PL X1,RRC1 IF DEVICE IDLE BIT NOT SET NZ B5,RRC2 IF EQUIPMENT PREVIOUSLY FOUND SB5 X5 RRC2 R= X1,ESTE CHECK FOR SHARED DEVICE IX1 X5*X1 SA1 ESTB+X1+EQDE READ EST ENTRY LX1 59-57 PL X1,RRC1 IF NOT SHARED NZ B6,RRC1 IF SHARED EQUIPMENT FOUND SB6 X5 EQ RRC1 NEXT EQUIPMENT RRC3 SX6 B6 NZ B6,RRC4 IF SHARED EQUIPMENT FOUND SX6 B5 RRC4 SA6 B1RM+CUEQ RJ RSC RESET PARAMETERS SA1 B1RM+CUEQ SX5 B0 EQ RRCX RETURN TITLE RSC - *RESET* COMMAND PROCESSOR. ** RSC - *RESET* COMMAND PROCESSOR. * * ENTRY (CUEQ) = CURRENT EQUIPMENT. * * EXIT (X5) = 0. * * USES A - 1, 2, 6, 7. * B - 2, 3, 5, 6, 7. * X - 0, 1, 2, 4, 5, 6, 7. * * CALLS COD, ZTB. * * MACROS KEYWORD, MOVE. KEYWORD RESET,RSC SA5 B1RM+CUEQ R= X1,ESTE IX1 X5*X1 SA1 ESTB+X1+EQDE RESET EST ENTRY BX6 X1 BX7 X7-X7 SA6 B1RM+ESTD SA7 B1RM+URCD CLEAR UNITS TO RECONFIGURE RJ RMT READ CURRENT EQUIPMENT MST MOVE MSTL,MSTB,MSTC MOVE MSTL,MSTB,B1RM+MSTD RJ UKD UPDATE K-DISPLAY INFORMATION EQ RSCX RETURN TITLE SSP - *SUSPEND* COMMAND PROCESSOR. ** SSP - *SUSPEND* COMMAND PROCESSOR. * ONLY 885 AND 844 TYPE DEVICES ARE ALLOWED FOR THIS * COMMAND. THIS IS BECAUSE THE *6DI* DRIVER IS THE * ONLY ONE TO DETECT AND HONOR THE SUSPEND STATUS. * * ENTRY (CUEQ) = CURRENT EQUIPMENT. * * EXIT (X5) = ERROR MESSAGE ADDRESS. * * USES X - 1, 5. * A - 1. * * CALLS EQP. * * MACROS CALL1RM, KEYWORD. KEYWORD SUSPEND,SSP SA1 B1RM+CUEQ ZR X1,SSPX IF NO EQUIPMENT SA1 B1RM+ESTD CHECK FOR 885 OR 844 LX1 59-55 SX5 EREN **** ERROR IN EST ORDINAL. PL X1,SSPX IF NOT *LDAM* CALL1RM RSPF EQ SSPX RETURN TITLE CHP - *CH* PARAMETER PROCESSOR. ** CHP - *CH* PARAMETER PROCESSOR. * * ENTRY (SPTR) = STRING BUFFER ADDRESS OF PREVIOUS CHARACTER. * (SLMP) = STRING BUFFER LIMIT POINTER. * * EXIT (X5) = 0 IF NO ERROR. * = ERROR MESSAGE ADDRESS IF ERROR. * (SPTR) = UPDATED STRING BUFFER POINTER. * VALUE SET IN K-DISPLAY AND PARAMETER TABLE. * * USES X - 0, 1, 2, 5, 6. * A - 1, 2, 6. * B - 1, 2. * * CALLS CCH, CHA, VON. KEYWORD CH=,CHP SX0 3 VALIDATE CHANNEL NUMBER RJ VON NZ X5,CHPX IF ERROR SX0 1S11 ACCESS PATH ENABLED FLAG SX2 X6 BX6 X0+X6 * CHECK THAT CHANNELS ARE AVAILABLE. RJ CHA NZ X5,CHPX IF ERROR IN CHANNEL NUMBER PL X1,CHP1 IF CHANNEL IS UP SX0 3000B MARK CHANNEL DOWN BX6 X0+X6 CHP1 LX6 12 SAVE CHANNEL SA6 CHPA * CHECK FOR SECOND CHANNEL. SX0 3 RJ VON NZ X5,CHPX IF ERROR ZR X4,CHP3 IF NO SECOND CHANNEL SX0 1S11 ACCESS PATH ENABLED FLAG SA1 CHPA SAVE CHANNEL NUMBER SX2 X6+ BX6 X0+X6 BX6 X1+X6 RJ CHA NZ X5,CHPX IF ERROR IN CHANNEL NUMBER PL X1,CHP2 IF CHANNEL IS UP SX0 3000B MARK CHANNEL DOWN BX6 X0+X6 CHP2 SA6 CHPA SAVE CHANNEL CHP3 SA1 B1RM+ESTD INSERT CHANNELS IN REPLACEMENT ENTRY SA2 CHPA MX0 24 LX2 24 LX0 -12 BX6 -X0*X1 CLEAR CHANNEL FIELD BX6 X2+X6 SA6 A1 RJ CCH CHECK FOR MATCHING CHANNELS NZ X1,CHP4 IF AT LEAST ONE CHANNEL MATCHES * SET *URCD* TO INDICATE ALL UNITS CHANGED. SA1 B1RM+MSTD+DDLL GET UNIT COUNT AX1 48 MX0 -3 BX1 -X0*X1 SB2 X1 MX6 1 AX6 B2 SB2 B2+B1 LX6 B2 SA1 B1RM+URCD MERGE CHANGED UNITS BX6 X1+X6 SA6 A1 CHP4 RJ SEQ SET EQUIPMENT PARAMETERS IN K-DISPLAY BX5 X5-X5 CLEAR ERROR STATUS EQ CHPX RETURN CHPA CON 0 TEMPORARY TITLE EQP - *EQ* PARAMETER PROCESSOR. ** EQP - *EQ* PARAMETER PROCESSOR. * ANY MASS STORAGE DEVICE IS ALLOWED FOR THIS COMMAND. * THIS IS BECAUSE DEVICE IDLE MAY BE SET FOR ANY MASS * STORAGE DEVICE. * * ENTRY (CUEQ) = CURRENT EQUIPMENT. * (SPTR) = STRING BUFFER ADDRESS OF PREVIOUS CHARACTER. * (SLMP) = STRING BUFFER LIMIT POINTER. * * EXIT (X5) = 0 IF NO ERROR. * = ERROR MESSAGE ADDRESS IF ERROR. * (SPTR) = UPDATED STRING BUFFER POINTER. * K-DISPLAY UPDATED TO SHOW NEW EQUIPMENT. * * USES X - 0, 4, 5, 6. * A - 6. * B - 0. * * CALLS CLD, RSC, VON. KEYWORD EQ=,EQP SX0 3+1 VALIDATE EST ORDINAL RJ VON NZ X5,EQPX IF ERROR ZR X4,EQP1 IF NO EQUIPMENT ENTERED SA6 B1RM+CUEQ SET EQUIPMENT EQP1 RJ CLD CHECK FOR LEGAL DEVICE NZ X5,EQP2 IF ERROR IN EQUIPMENT RJ RSC RESET PARAMETERS SX5 B0 EQ EQPX RETURN EQP2 SX6 B0 CLEAR CURRENT EQUIPMENT SX5 EREN **** ERROR IN EST ORDINAL. SA6 B1RM+CUEQ RJ RSC RESET PARAMETERS EQ EQPX RETURN TITLE ULP - UNIT LIST PARAMETER PROCESSOR. ** ULP - *UL=* PARAMETER PROCESSOR. * * ENTRY (CUEQ) = CURRENT EQUIPMENT. * * EXIT (MSTD) UPDATED WITH NEW UNIT LIST. * K-DISPLAY UPDATED WITH NEW CONFIGURATION. * * USES X - 0, 1, 2, 3, 4, 5, 6, 7. * A - 1, 6. * B - 3, 4, 5. * * CALLS SEQ, VON. * * MACRO KEYWORD. ULP8 SX5 ERUN **** ERROR IN UNIT LIST. KEYWORD UL=,ULP BX6 X6-X6 CLEAR ASSEMBLY PX6 X6 SA6 ULPA ULP1 SX0 3 VALIDATE UNIT NUMBERS RJ VON NZ X5,ULPX IF ERROR IN ASSEMBLY ZR X4,ULP4 IF NO DIGITS SA1 ULPA UX1,B4 X1 SB3 B4+B4 COMPUTE SHIFT COUNT FOR NEW UNIT SB3 B3+B4 SB3 B3+B3 SB4 B4+B1 LX4 X6,B3 POSITION NEW UNIT BX6 X1+X4 PX6 X6,B4 SA6 ULPA SA2 B1RM+ESTD CHECK FOR 885 MX0 -11 LX2 -12 BX2 -X0*X2 SX3 X2-2RDM SX2 X2-2RDQ ZR X3,ULP2 IF 885 NZ X2,ULP3 IF NOT 885 ULP2 AX4 B3 CHECK NUMBER OF UNITS AND UNIT NUMBER SB3 3 LX4 59-5 GT B4,B3,ULP8 IF MORE THAN 3 UNITS PL X4,ULP8 IF UNIT NUMBER NOT 4X OR 5X LX4 59-4-59+5 NG X4,ULP8 IF UNIT NUMBER NOT 4X OR 5X ULP3 SX1 B5-1R, ZR X1,ULP1 IF MORE UNITS SX1 B5-1R. SX5 ERIS **** ERROR IN SEPARATOR. NZ X1,ULPX IF NOT END OF LINE ULP4 SA1 ULPA BUILD DDLL WORD UX1,B4 X1 ZR B4,ULP5 IF NULL EQUIPMENT SB4 B4-2000B ULP5 PX6 X6,B4 SA1 B1RM+MSTD+DDLL SA6 A1 MX0 -6 MX3 1 INITIALIZE LOOP PARAMETERS BX4 X4-X4 MX2 -8 LOOP COUNTER ULP6 ZR X2,ULP7 IF END OF LOOP BX7 X1-X6 BX7 -X0*X7 LX0 6 ADVANCE UNIT AX2 1 LX3 1 ZR X7,ULP6 IF NO CHANGE IN UNIT NUMBER BX4 X4+X3 EQ ULP6 CHECK NEXT UNIT ULP7 SA1 B1RM+URCD MERGE BITS IN CALL BLOCK BX6 X1+X4 SA6 A1 RJ SEQ SET EQUIPMENT PARAMETERS IN DISPLAY EQ ULPX RETURN ULPA CON 0 SCRATCH LOCATION URP TITLE URP - UNITS FOR RECABLING PARAMETER PROCESSOR. ** URP - *UR=* PARAMETER PROCESSOR. * * ENTRY (URCD) = CURRENT LIST OF UNITS. * (MSTD) = CURRENT REDEFINITION PARAMETERS. * * EXIT (X5) = ERROR MESSAGE ADDRESS. * * USES X - 0, 1, 2, 3, 5, 6. * A - 1, 6. * B - 1, 2. * * CALLS VON. * * MACRO KEYWORD. URP2 SA1 B1RM+URCD ADD UNIT TO LIST BX6 X1+X3 SA6 A1 RJ SEQ SET EQUIPMENT PARAMETERS IN K-DISPLAY KEYWORD UR=,URP ENTRY/EXIT SX0 3 ASSEMBLE UNIT NUMBER RJ VON NZ X5,URPX IF ERROR IN ASSEMBLY * FIND UNIT IN CURRENT UNIT LIST. SA1 B1RM+MSTD+DDLL MX0 -6 MX2 -3 LX1 -48 BX2 -X2*X1 LX1 48 SB2 X2 SET UNIT COUNT SX3 B1 SET UNIT MASK URP1 BX5 X6-X1 CHECK FOR UNIT NUMBER MATCH BX5 -X0*X5 ZR X5,URP2 IF MATCH SB2 B2-B1 ADVANCE UNIT NUMBER AX1 6 LX3 1 PL B2,URP1 IF MORE UNITS TO CHECK SX5 ERUN **** ERROR IN UNIT LIST. EQ URPX RETURN TITLE UTILITY SUBROUTINES. ASC SPACE 4,20 ** ASC - ASSEMBLE CHARACTERS. * * ENTRY (SPTR) = STRING BUFFER ADDRESS OF PREVIOUS CHARACTER. * (SLMP) = STRING BUFFER LIMIT POINTER. * (X7) = 1 IF IGNORE LEADING ZEROES. * * EXIT (X4) = NUMBER OF CHARACTERS ASSEMBLED. * (X5) = RIGHT JUSTIFIED ASSEMBLED CHARACTERS. * (X6) = LEFT JUSTIFIED ASSEMBLED CHARACTERS. * (B5) = SEPARATOR. * (SPTR) = UPDATED STRING BUFFER ADDRESS. * * USES A - 1, 4, 6, 7. * X - 1, 2, 3, 4, 5, 6, 7. * B - 2, 3, 4, 5, 7. * PROCESS END OF BUFFER. ASC3 SA4 SLMP SET STRING BUFFER EMPTY SB2 X4+ SB5 1R. SET TERMINATOR * SET ASSEMBLED CHARACTERS. ASC4 SX4 10 CALCULATE NUMBER OF CHARACTERS SX3 B4 IX4 X4-X3 SX6 B2 SET BUFFER POINTER SA6 SPTR BX6 X6-X6 ZR X4,ASCX IF NO CHARACTERS ASSEMBLED SX2 6 LEFT JUSTIFY CHARACTERS IX3 X3*X2 SB4 X3 LX6 X5,B4 ASC SUBR ENTRY/EXIT SA7 ASCA INITIALIZE IGNORE ZEROES FLAG BX5 X5-X5 SB4 10 SA1 SPTR SET STRING POINTER SB2 X1 SA1 SLMP SET MAXIMUM CHARACTER SCAN SB3 X1 * ASSEMBLE CHARACTERS FROM BUFFER. ASC1 SB2 B2+B1 GE B2,B3,ASC3 IF END OF STRING BUFFER SA1 B2 SB5 X1 SET SEPARATOR SB7 X1-1R ZR B7,ASC1 IF BLANK SB7 X1-1R+ PL B7,ASC4 IF SEPARATOR SA4 ASCA ZR X4,ASC2 IF NOT TO IGNORE ZEROES SB7 X1-1R0 ZR B7,ASC1 IF LEADING ZERO SX7 B0 CLEAR IGNORE ZEROES FLAG SA7 A4 ASC2 LX5 6 ASSEMBLE CHARACTER SB4 B4-1 DECREMENT COUNT BX5 X5+X1 NZ B4,ASC1 IF MORE CHARACTERS TO ASSEMBLE EQ ASC4 SET ASSEMBLED CHARACTERS ASCA CON 0 IGNORE LEADING ZEROES FLAG BCL SPACE 4,20 ** BCL - BUILD CURRENT CONFIGURATION LIST. * * EXIT CURRENT MASS STORAGE CONFIGURATION ON OUTPUT. * * USES A - 1, 2. * X - 1, 2, 5, 6. * * CALLS BED, EST, RMT. * * MACROS CLOCK, DATE, GETLCW, WRITEC, WRITER. BCL2 WRITER O,R FLUSH BUFFER BCL SUBR ENTRY/EXIT RJ EST READ EST INTO *ESTB* DATE BCLA+3 PUT DATE AND TIME IN HEADER CLOCK BCLA+4 WRITEC O,BCLA WRITE HEADER WRITEC X2,BCLB WRITE DESCRIPTION LINE WRITEC X2,(=C* *) WRITE BLANK LINE * SEARCH FOR MASS STORAGE EQUIPMENTS. SX5 NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH BCL1 SX5 X5+B1 INCREMENT EST ORDINAL SA1 LMSO IX1 X1-X5 ZR X1,BCL2 IF END OF MASS STORAGE DEVICES R= X1,ESTE IX1 X5*X1 SA1 ESTB+X1+EQDE READ EST ENTRY PL X1,BCL1 IF NOT MASS STORAGE RJ RMT READ MST RJ BED BUILD EQUIPMENT DISPLAY LINE WRITEC O,BEDB,BEDBL WRITE DISPLAY LINE TO BUFFER EQ BCL1 DISPLAY NEXT MS EQUIPMENT BCLA DATA C*1 MASS STORAGE CONFIGURATION. 00/00/00. 00.00.00.* BCLB DATA C*0 ORD TYPE CHANNELS UNITS* BED SPACE 4,10 ** BED - BUILD EQUIPMENT DISPLAY LINE. * * ENTRY (X5) = EST ORDINAL. * (MSTB) = MST FOR EQUIPMENT. * * EXIT (BEDC) = DISPLAY LINE FOR EQUIPMENT. * (BEDB) = DISPLAY LINE PRECEDED BY BLANK WORD. * * USES A - 0, 1, 2, 3, 6. * X - 0, 1, 2, 3, 6. * B - 4, 5, 6, 7. * * CALLS COD, S2L. * * MACROS MOVE. BED SUBR ENTRY/EXIT MOVE BEDAL,BEDA,BEDC SX1 X5+ CONVERT EST ORDINAL NZ X5,BED1 IF NOT REDEFINITION EQUIPMENT SA1 B1RM+CUEQ BED1 SA0 BEDC DISPLAY WORD ADDRESS SX1 X1+1000B ENSURE THREE DIGITS RJ COD CONVERT EST ORDINAL MX1 -18 BX6 -X1*X6 SA2 A0 LX1 42 POSITION MASK LX6 42 BX2 X1*X2 BX3 X2+X6 MERGE EST ORDINAL INTO LINE R= X2,ESTE IX2 X5*X2 SA2 ESTB+X2+EQDE MERGE EQUIPMENT TYPE LX2 -12 MX0 -11 BX1 -X0*X2 LX0 24 BX3 X0*X3 LX1 24 BX6 X1+X3 SA6 A0 SA3 MSTB+DDLL MERGE UNIT COUNT MX0 -3 LX3 -48 BX1 -X0*X3 LX3 59-58+48 NG X3,BED2 IF NULL EQUIPMENT SX1 X1+B1 BED2 SX6 X1+2R-0 MX0 -12 SB5 X1 SAVE UNIT COUNT FOR UNIT LIST PROCESSING LX0 12 LX6 12 SA3 A0 BX3 X0*X3 BX6 X6+X3 SA6 A0 SA0 A0+B1 NEXT DISPLAY WORD MX0 -6 MERGE CHANNELS IN DISPLAY LINE LX2 -24 BX1 -X0*X2 SB7 36 RJ S2L R= X1,ESTE IX1 X5*X1 SA1 ESTB+X1+EQDE CONVERT SECOND CHANNEL LX1 -24 MX0 -6 BX1 -X0*X1 ZR X1,BED3 IF NO SECOND CHANNEL SB7 18 RJ S2L SET SECOND CHANNEL IN DISPLAY WORD SA1 A0 INSERT COMMA SX6 1R,-1R LX6 30 IX6 X1+X6 SA6 A0 BED3 SA0 A0+B1 NEXT DISPLAY WORD SB7 36 INITIALIZE UNIT POSITION IN DISPLAY WORD SB6 B0 LOGICAL UNIT NUMBER BED4 GE B6,B5,BED5 IF END OF UNITS SA1 MSTB+DDLL SB4 B6+B6 COMPUTE SHIFT COUNT SB4 B4+B6 SB4 B4+B4 AX1 B4 MX0 -6 BX1 -X0*X1 RJ S2L SET UNIT NUMBER IN DISPLAY LINE SB6 B6+B1 INCREMENT UNIT COUNT SB7 B7-18 PL B7,BED4 IF NOT NEW DISPLAY WORD SB7 B7+60 SA0 A0+B1 EQ BED4 NEXT UNIT BED5 SA1 MSTB+ACGL SET STATUSES IN DISPLAY LINE BX6 X6-X6 LX1 59-11 PL X1,BED6 IF NOT DEVICE IDLE SX6 1RI&1R- BED6 SA1 MSTB+DALL AX1 56 LX6 6 SX2 3 BX1 X2-X1 NZ X1,BED7 IF NOT DOWN SX6 X6+1RS&1R- BED7 LX6 12 * MERGE STATUS BITS IN DISPLAY LINE. SA1 BEDC+5 LX6 18 BX6 X1-X6 SA6 A1 EQ BEDX RETURN BEDA DATA L* 1. DQ CH00 UL=-- -- -- -- -- -- -- -- ST = ,----* BEDAL EQU *-BEDA ERRNZ BEDAL+1-KLNL LINE LENGTH ERROR BEDB DATA 10H BLANK SPACING FOR OUTPUT BEDC BSS BEDAL DISPLAY LINE BUFFER BEDBL EQU *-BEDB LENGTH OF OUTPUT LINE CAE SPACE 4,10 ** CAE - CLEAR ALL EQUIPMENT IDLE STATUS. * * EXIT (X5) = ERROR MESSAGE ADDRESS. * = 0 IF NO EQUIPMENT FOUND. * * CALLS CLP, RRC. CAE SUBR ENTRY/EXIT CAE1 RJ RRC ZR X5,CAEX IF NO EQUIPMENT FOUND RJ CLP NZ X5,CAEX IF ERROR IN CLEAR REQUEST EQ CAE1 CHECK FOR NEXT EQUIPMENT CCH SPACE 4,10 ** CCH - CHECK FOR MATCHING CHANNELS. * * ENTRY (X1) = EST TO CHECK. * (ESTD) = NEW EST ENTRY. * * EXIT (X1) = 0 IF NO CHANNEL MATCH. * * USES A - 2, 4. * X - 0, 1, 2, 3, 4. * B - 2. CCH SUBR ENTRY/EXIT SA4 B1RM+ESTD LX1 -24 LX4 24 MX0 -6 BX3 -X0*X1 BUILD CHANNEL MASK FOR NEW EQUIPMENT LX1 -12 BX2 -X0*X1 SX1 B1 SB2 X2 LX2 X1,B2 SB2 X3 ZR X3,CCH1 IF NO SECOND CHANNEL LX3 X1,B2 BX2 X2+X3 CCH1 BX3 -X0*X4 BUILD CHANNEL MASK FOR COMPARE EQUIPMENT SB2 X3 LX4 12 LX3 X1,B2 BX4 -X0*X4 SB2 X4 ZR X4,CCH2 IF NO SECOND CHANNEL LX4 X1,B2 BX3 X3+X4 CCH2 BX1 X2*X3 NON-ZERO IF ANY CHANNEL MATCHES EQ CCHX RETURN CHA SPACE 4,10 ** CHA - CHECK CHANNEL AVAILABLE. * * ENTRY (X2) = CHANNEL NUMBER. * (NPPU) = NUMBER OF PP-S. * * EXIT (X5) = 0 IF CHANNEL AVAILABLE. * = ERROR MESSAGE ADDRESS IF ERROR. * (X1) .LT. 0 IF CHANNEL AVAILABLE ((X5) = 0)) BUT DOWN. * (X6) = RESTORED TO ENTRY VALUE. * * USES A - 1, 5, 6, 7. * X - 1, 3, 4, 5, 6, 7. * B - 2, 3. * * MACROS GETLCW. CHA4 SX5 ERCN **** ERROR IN CHANNEL NUMBER. CHA SUBR ENTRY/EXIT SX7 13B SET UPPER CHANNEL OF LOWER BANK IX1 X7-X2 BX5 X5-X5 SET CHANNEL AVAILABLE PL X1,CHA0 IF CHANNEL IN LOWER BANK SA1 NPPU NUMBER OF PP-S SX5 X1-11 NG X5,CHA4 IF ONLY CHANNELS 0 - 13 SX3 20B LOWER CHANNEL IN UPPER BANK SX4 33B UPPER CHANNEL IN UPPER BANK IX5 X2-X3 NG X5,CHA4 IF NOT IN UPPER BANK IX5 X4-X2 CHECK UPPER LIMIT NG X5,CHA4 IF ERROR CHA0 BX7 X2 SAVE CHANNEL NUMBER SA7 CHAA BX7 X6 PRESERVE X6 GETLCW 1,CHTP,CHTB BX2 X1 FWA OF CHANNEL STATUS TABLE LX2 0-12 POSITION CHANNEL STATUS TABLE ADDRESS SX2 X2 GETLCW CTALL,X2,CHTB BX6 X7 RESTORE X6 SA5 CHAA DETERMINE CHANNEL TABLE WORD INDEX SB2 B0 CHA1 SX5 X5-5 DIVIDE BY 5 LOOP NG X5,CHA2 IF DIVIDE COMPLETE SB2 B2+B1 EQ CHA1 CONTINUE DIVIDE CHA2 SA1 CHTB+B2 SB3 X5+6 CHA3 LX1 12 POSITION CHANNEL BYTE SB3 B3-B1 NZ B3,CHA3 IF CHANNEL NOT IN CORRECT POSITION LX1 59-5 SET POSSIBLE CHANNEL DOWN FLAG SX5 B0 SET CHANNEL AVAILABLE EQ CHAX RETURN CHAA CON 0 TEMPORARY CHANNEL STORAGE BUFFER CLD SPACE 4,20 ** CLD - CHECK LEGALITY OF DEVICE. * DEVICE MUST BE MASS STORAGE, IDLED, AND * FIRST IN CHAIN IF LINKED DEVICE. * * ENTRY (CUEQ) = CURRENT EQUIPMENT. * * EXIT (X5) = ERROR MESSAGE ADDRESS. * = 0 IF LEGAL DEVICE. * * USES A - 1, 5. * X - 1, 5. * * CALLS RMT. CLD SUBR ENTRY/EXIT SA5 B1RM+CUEQ R= X1,ESTE IX1 X5*X1 SA1 ESTB+X1+EQDE READ EST ENTRY PL X1,CLD1 IF NOT MASS STORAGE RJ RMT READ MST TO *MSTB* SA1 MSTB+ACGL CHECK FOR IDLED DEVICE LX1 59-11 PL X1,CLD1 IF NOT IDLED DEVICE SA1 MSTB+STLL SX5 7774B MASK FOR CHAINED EST ORDINAL, FLAG BX5 X5*X1 ZR X5,CLDX IF LEGAL DEVICE SX5 ERDF **** DEVICE NOT FIRST IN CHAIN. EQ CLDX RETURN CLD1 SX5 EREN **** ERROR IN EST ORDINAL. EQ CLDX RETURN CRM SPACE 4,10 ** CRM - CALL *1RM* TO PROCESSES FUNCTION. * * ENTRY (X6) = FUNCTION REQUEST. * (TPAR) = CURRENT PARAMETER LEGALITY TABLE. * (CUEQ) = EQUIPMENT IF APPLICABLE TO FUNCTION. * (URCD) = UNITS TO BE RECONFIGURED. * (ESTD) = EST WITH RECONFIGURATION CHANGES. * (MSTD) = MST WITH RECONFIGURATION CHANGES. * * USES A - 1, 2, 5, 6, 7. * X - 1, 2, 5, 6, 7. * B - 6. * * CALLS ASC, IDE, ISB, SPT, UKD. * * MACROS RECALL, SYSTEM. CRM3 SA1 CRMB RESTORE PARAMETER LIST BX7 X1 SA7 B1RM+TPAR RJ UKD UPDATE K-DISPLAY CRM SUBR ENTRY/EXIT SA2 B1RM+TPAR SAVE LEGAL PARAMETERS SA1 B1RM+RFNB CHECK FOR *1RM* ACTIVE BX7 X2 SA6 A1 SA7 CRMB BX6 X6-X6 CLEAR LEGAL PARAMETERS SA6 A2 SA6 B1RM+TCOM CLEAR COMMAND PASSING AREA NZ X1,CRM1 IF *1RM* ACTIVE SA1 CRMC BX6 X1 SA6 CRMA SYSTEM SPC,R,CRMA CRM1 RECALL SA1 B1RM+RFNB LX1 59-0 PL X1,CRM3 IF FUNCTION COMPLETE RJ UKD UPDATE K-DISPLAY SA5 KBUF CHECK FOR INPUT ENTERED ZR X5,CRM1 IF NO INPUT DATA RJ ISB INPUT STRING BUFFER SX7 B0 ASSEMBLE KEYWORD RJ ASC ZR X4,CRM1 IF NO DATA ASSEMBLED RJ SPT SEARCH PARAMETER TABLE ZR X5,CRM2 IF NO ERROR RJ IDE PROCESS ERROR EQ CRM1 RECHECK FUNCTION CRM2 SB6 A3-TKEY PASS PARAMETER TO *1RM* MX6 1 LX6 B6 SA6 B1RM+TCOM EQ CRM1 CHECK FOR FUNCTION COMPLETE CRMA CON 0 *1RM* CALL BUFFER CRMB CON 0 PARAMETER TABLE SAVE AREA CRMC VFD 18/0L1RM,6/,18/MSG1,18/B1RM *1RM* CALL EST SPACE 4,10 ** EST - READ EST INTO *ESTB*. * * ENTRY NONE. * * EXIT *ESTB* = EST ENTRIES (THROUGH LAST MASS STORAGE + 1). * (LMSO) = LAST MASS STORAGE EST ORDINAL + 1. * * CALLS RSB=. * * USES X - 1, 2, 3, 4, 6, 7. * A - 2, 6, 7. * B - NONE. EST SUBR ENTRY/EXIT SA2 ESTA SET *COMCRSB* ENTRY CONDITIONS SX1 ESTB SET ADDRESS TO TRANSFER TO MX3 -12 AX2 12 BX3 -X3*X2 SX7 X3 AX2 24 SET ADDRESS TO TRANSFER FROM R= X6,ESTE IX3 X3*X6 SET WORD COUNT SX4 B0 SET SUBSYSTEM (= *CMR*) MX6 1 SA6 X1 SA7 LMSO SAVE EST SIZE TO SEARCH RJ RSB= READ EST EQ ESTX RETURN FUM SPACE 4,20 ** FUM - FIND REPLACEMENT UNIT IN MST-S. * * ENTRY (CUEQ) = CURRENT EQUIPMENT. * * EXIT (X5) = ERROR MESSAGE ADDRESS. * (B5) = UNIT POSITION IF UNIT IN MST. * * USES A - 1, 2, 4. * X - 0, 1, 2, 3, 4, 5, 6, 7. * B - 2, 3, 4, 5, 6. * * CALLS CCH, SML. FUM6 SX5 ERSI **** EQUIPMENT STATUS INCORRECT. EQ FUMX RETURN FUM7 SX5 ERIU **** INTRODUCED UNIT IN USE. FUM SUBR ENTRY/EXIT SA1 B1RM+ESTD CHECK FOR SHARED DEVICES SX5 B0 LX1 59-57 PL X1,FUM1 IF DEVICE NOT SHARED SA2 MSTC+ACGL CHECK FOR GLOBAL UNLOAD LX2 59-5 NG X2,FUM3 IF GLOBAL UNLOAD SET EQ FUM2 CHECK UNIT NUMBER FUM1 LX1 57-54 NG X1,FUM3 IF NON-SHARED DEVICE UNAVAILABLE FUM2 SA1 MSTC+DDLL CHECK FOR UNIT NUMBER CHANGE SA2 B1RM+MSTD+DDLL BX1 X1-X2 MX0 -3 AX1 48 BX1 -X0*X1 NZ X1,FUM6 IF CHANGE IN NUMBER OF UNITS FUM3 RJ SML SEARCH FOR MASS STORAGE, *LDAM* DEVICES ZR X5,FUMX IF ALL MS EQUIPMENTS CHECKED * CHECK THAT CHANNELS ARE THE SAME. R= X1,ESTE IX1 X5*X1 SA1 ESTB+X1+EQDE READ EST ENTRY RJ CCH COMPARE CHANNELS ZR X1,FUM3 IF NO CHANNEL MATCHES SA1 MSTB+STLL LX1 59-2 NG X1,FUM3 IF DEVICE IN USE IN CHAIN * SEARCH FOR MATCHING UNIT NUMBER. SA2 B1RM+MSTD+DDLL SA4 MSTB+DDLL BX3 X4+X2 LX3 59-58 SA1 MSTB+DALL SX6 3 AX1 56 BX1 X6-X1 ZR X1,FUM3 IF DEVICE DOWN NG X3,FUM3 IF EITHER EQUIPMENT IS NULL LX2 12 EXTRACT CURRENT UNIT COUNT MX6 -3 LX4 12 BX1 -X6*X4 EXTRACT UNIT COUNT FOR COMPARISON UNIT SB5 B0 INITIALIZE UNIT POSITION IN ERROR LX4 -12 BX7 -X6*X2 LX2 -12 SB2 B0 INITIALIZE COMPARISON LOOP MX6 -6 SET UNIT MASK SB4 6 FUM4 SB3 B0 AX0 X2,B2 EXTRACT UNIT TO CHECK SB6 X1 SET COMPARISON UNIT COUNT BX0 -X6*X0 FUM5 AX3 X4,B3 POSITION COMPARISON EQUIPMENT UNIT BX3 -X6*X3 SB3 B3+B4 BX3 X3-X0 ZR X3,FUM7 IF UNIT NUMBER MATCH SB6 B6-B1 PL B6,FUM5 IF MORE UNITS TO CHECK SX7 X7-1 PL X7,FUM4 IF MORE UNITS TO CHECK EQ FUM3 CHECK NEXT EQUIPMENT GLC SPACE 4,10 ** GLC - GET LOW CORE WORDS. * * ENTRY (X1) = WORD COUNT. * (X2) = LOW CORE ADDRESS. * (X3) = ADDRESS TO STORE WORDS. * * EXIT (X1) = FIRST LOW CORE WORD. * LOW CORE WORD(S) RETURNED. * * USES A - 1, 6. * X - 1, 2, 6. * * MACROS SYSTEM. GLC SUBR ENTRY/EXIT MX6 42 LX1 36 SA6 X3 LX2 18 BX6 X1+X3 BX6 X2+X6 SA6 GLCA SYSTEM RSB,,A6 SA1 X3 EQ GLCX RETURN GLCA CON 0 *RSB* STATUS WORD IDE SPACE 4,10 ** IDE - ISSUE INPUT DATA ERROR MESSAGE TO K-DISPLAY. * * ENTRY (SLMP) = STRING BUFFER LIMIT POINTER. * (X5) = ADDRESS OF ERROR MESSAGE. * * EXIT ERROR MESSAGE SET IN K-DISPLAY. * STRING BUFFER SET EMPTY. * * USES A - 5, 6. * X - 5, 6. * * MACROS MOVE, WRITEC. IDE SUBR ENTRY/EXIT MOVE 6,ERR+X5,MSG1 MOVE MESSAGE TO BUFFER SA5 SLMP SET BUFFER EMPTY BX6 X5 SA6 SPTR WRITEC O,MSG1,6 RECORD ERROR ON OUTPUT FILE EQ IDEX RETURN ISB SPACE 4,20 ** ISB - INPUT STRING BUFFER. * * ENTRY (SPTR) = STRING BUFFER ADDRESS. * (SLMP) = STRING BUFFER LIMIT. * * EXIT (SPTR) = UPDATED STRING BUFFER. * (SLMP) = LWA+1 OF STRING BUFFER. * * USES A - 4, 5, 6, 7. * X - 4, 5, 6, 7. * B - 2. * * CALLS USB. * * MACROS MESSAGE, MOVE, RECALL, WRITEC. * MOVE INPUT TO STRING BUFFER. ISB2 MOVE 6,A5,MSG2 MOVE INPUT TO DISPLAY MOVE 6,ERR+ERBL,MSG1 CLEAR MESSAGE LINE MESSAGE A5,3,R ENTER DIRECTIVES IN CONTROL POINT DAYFILE WRITEC O,KBUF-1,6 RECORD INPUT DIRECTIVES ON OUTPUT SB2 A5 MOVE INPUT TO STRING BUFFER RJ USB SX6 X6+B1 SET LWA+1 OF CHARACTER STRING SA6 SLMP SX7 B6-B1 BX6 X6-X6 CLEAR INPUT BUFFER SA6 A5 SA7 SPTR ISB SUBR ENTRY/EXIT SA4 SPTR SA5 SLMP BX7 X5-X4 NZ X7,ISBX IF BUFFER NOT EMPTY * WAIT FOR INPUT. ISB1 SA5 KBUF NZ X5,ISB2 IF INPUT ENTERED RECALL EQ ISB1 LOOP FOR INPUT USBB BSS NSCI+10 STRING BUFFER MPL SPACE 4,15 ** MPL - MOVE AND POSITION LINE. * * *MPL* IS USED TO MOVE A DISPLAY LINE TO A K-DISPLAY * BUFFER WHICH HAS THE X,Y COORDINATES IN THE FIRST 24 BITS * OF EACH LINE. * * ENTRY (X1) = WORD COUNT OF BLOCK TO BE MOVED. * (X2) = ADDRESS OF FIRST WORD OF SOURCE. * (X3) = ADDRESS OF FIRST WORD OF DESTINATION. * * USES X - 1, 2, 3, 4, 6, 7. * A - 2, 4, 6. MPL SUBR ENTRY/EXIT SA4 X3 GET X,Y COORDINATES FROM DESTINATION MX7 24 SA2 X2+ GET FIRST WORD FROM ORIGIN MPL1 BX4 X7*X4 LX2 36 BX6 -X7*X2 BX6 X6+X4 SX1 X1-1 DECREMENT COUNT SA6 X3 STORE WORD IN DESTINATION BX4 X2 PARTIAL WORD FROM SOURCE SX3 X3+B1 ADDRESS OF NEXT DESTINATION LOCATION SA2 A2+B1 GET NEXT FULL SOURCE WORD NZ X1,MPL1 IF MORE TO MOVE BX6 X7*X4 ZR X6,MPLX IF LAST PARTIAL WORD IS EMPTY SA6 X3 STORE LAST PARTIAL WORD EQ MPLX RETURN RMT SPACE 4,10 ** RMT - READ MST FOR EQUIPMENT. * * ENTRY (X5) = EST ORDINAL. * * EXIT (MSTB) = MST FOR EQUIPMENT. * MST READ INTO SPECIFIED BUFFER. * * USES A - 1. * X - 1, 6. * * MACROS GETLCW. RMT SUBR ENTRY/EXIT R= X1,ESTE IX1 X5*X1 SA1 ESTB+X1+EQDE READ EST ENTRY FOR MST ADDRESS MX6 -12 BX6 -X6*X1 LX6 3 GETLCW MSTL,X6,MSTB EQ RMTX RETURN SEQ SPACE 4,10 ** SEQ - SET EQUIPMENT PARAMETERS IN DISPLAY. * * ENTRY (CUEQ) = CURRENT EQUIPMENT. * (MSTC) = MST FOR CURRENT EQUIPMENT. * (MSTD) = CHANGED MST PARAMETERS. * * EXIT PARAMETERS SET IN DISPLAY BUFFER. * * USES A - 0, 1, 4, 5, 6. * X - 0, 1, 3, 4, 5, 6, 7. * * CALLS BED, RMT. * * MACROS MOVE, MOVEDL. SEQ3 MOVEDL BEDAL,NONE,DSCC CLEAR CURRRENT EQUIP CONFIGURATION MOVEDL BEDAL,BLKL,DSRC CLEAR REQUESTED EQUIP CONFIGURATION MOVEDL SEQAL,BLKL,DSAB CLEAR CHANGED UNITS LINE SEQ SUBR ENTRY/EXIT SA5 B1RM+CUEQ ZR X5,SEQ3 IF NO EQUIPMENT PRESENT RJ RMT READ MST RJ BED BUILD DISPLAY LINE MOVEDL BEDAL,BEDC,DSCC SET CURRENT EQUIPMENT CONFIGURATION MOVE MSTL,B1RM+MSTD,MSTB USE CHANGED PARAMETERS MOVE 1,B1RM+ESTD,ESTB BX5 X5-X5 RJ BED BUILD DISPLAY LINE MOVEDL BEDAL,BEDC,DSRC SET REQUESTED EQUIP CONFIGURATION * INDICATE CHANGED UNITS ON K-DISPLAY. MOVEDL SEQAL,SEQA,DSAB SET CHANGED UNITS SA0 DSAB+1 SA4 B1RM+URCD GET CHANGED UNITS SX7 1R* MX0 -6 MX3 1 SEQ1 ZR X4,SEQX IF END OF UNITS LX4 -1 SX1 X0 LX7 -18 ZR X1,SEQ2 IF NOT NEW WORD SA0 A0+B1 SEQ2 LX0 -18 PL X4,SEQ1 IF NOT THIS UNIT SA1 A0 MERGE * IN UNIT POSITION BX4 -X3*X4 BX1 X0*X1 BX6 X1+X7 SA6 A1 EQ SEQ1 LOOP FOR NEXT UNIT SEQA DATA L* CHANGED UNITS * SEQAL EQU *-SEQA SPT SPACE 4,20 ** SPT - SEARCH PARAMETER TABLE. * * ENTRY (X6) = SEARCH ELEMENT. * (TPAR) = PARAMETER LEGALITY MASK * * EXIT (X3) = PARAMETER TABLE ENTRY. * (X5) = ERROR MESSAGE ADDRESS. * = 0 ON CLEAR ERROR STATUS. * (A3) = PARAMETER TABLE ADDRESS. * * USES A - 1, 3. * X - 0, 1, 3, 4, 5. SPT SUBR ENTRY/EXIT SA1 B1RM+TPAR LEGAL PARAMETER DESCRIPTION MX0 42 SA3 TKEY INITIALIZE PARAMETER SEARCH SX5 ERIE **** INCORRECT ENTRY. SPT1 SA3 A3+B1 BX4 X0*X3 ZR X3,SPTX IF END OF TABLE BX4 X6-X4 LX1 59-0 NZ X4,SPT1 IF NO MATCH PL X1,SPTX IF COMMAND NOT LEGAL SX5 B0 CLEAR ERROR STATUS EQ SPTX RETURN SML SPACE 4,20 ** SML - SEARCH EST FOR MASS STORAGE *LDAM* DEVICES. * * ENTRY (X5) = PREVIOUS EST ORDINAL. * (ESTB) = EST BUFFER INITIALIZED. * * EXIT (X5) = 0 IF ALL EQUIPMENTS CHECKED. * (X5) = EST ORDINAL FOR REDEFINITION. * (X1) .LT. 0 IF IDLED DEVICE. * (MSTB) = MST FOR EQUIPMENT. * * USES A - 1, 2. * X - 1, 2, 5, 6. * * CALLS RMT. SML2 SX5 0 RETURN END OF EST STATUS SML SUBR ENTRY/EXIT SML1 SA1 LMSO SX5 X5+B1 IX1 X1-X5 ZR X1,SML2 IF END OF MASS STORAGE DEVICES R= X1,ESTE IX1 X5*X1 SA1 ESTB+X1+EQDE READ EST ENTRY PL X1,SML1 IF NOT MASS STORAGE SA2 B1RM+CUEQ LX1 59-55 PL X1,SML1 IF NOT *LDAM* BX6 X2-X5 ZR X6,SML1 IF CURRENT EQUIPMENT RJ RMT READ MST SA1 MSTB+ACGL CHECK REDEFINITION STATUS LX1 59-11 EQ SMLX RETURN S2L SPACE 4,10 ** S2L - SET 2 DIGITS IN DISPLAY LINE. * * ENTRY (B7) = SHIFT COUNT. * (A0) = DISPLAY LINE ADDRESS. * (X1) = DIGITS TO DISPLAY. * * USES A - 2, 6. * X - 1, 2, 6. * * CALLS COD. S2L SUBR ENTRY/EXIT SX1 X1+100B INSURE TWO DIGITS RJ COD CONVERT TO DISPLAY CODE MX1 -12 BX6 -X1*X6 SA2 A0 LX1 B7 LX6 B7 BX2 X1*X2 BX6 X2+X6 SA6 A0 EQ S2LX RETURN UKD SPACE 4,10 ** UKD - UPDATE K-DISPLAY INFORMATION. * * ENTRY (TPAR) CONTAINS LEGAL PARAMETERS. * * EXIT K-DISPLAY UPDATED. * * USES A - 4, 5, 6. * X - 4, 5, 6. * B - 5, 6. * * CALLS BED, SEQ, SML. * * MACROS MOVEDL. UKD SUBR ENTRY/EXIT SA5 B1RM+TPAR COPY LEGAL PARAMETER DEFINITION TO DISPLAY SB5 B0 SB6 B0 UKD1 ZR X5,UKD2 IF END OF PARAMETERS SB5 B5+KLNL LX5 -1 PL X5,UKD1 IF NOT LEGAL PARAMETER MX6 1 CLEAR PARAMETER BIT BX5 -X6*X5 MOVEDL KLNL,UKDC-KLNL+B5,DSAA+B6 MOVE DESCRIPTION SB6 B6+KLNL NZ X5,UKD1 IF MORE LEGAL PARAMETERS UKD2 SB5 KLNL*KCML CLEAR REMAINDER OF PARAMETER DESCRIPTIONS GE B6,B5,UKD4 IF PARAMETER AREA FULL UKD3 MOVEDL KLNL,BLKL,DSAA+B6 SB6 B6+KLNL LT B6,B5,UKD3 IF MORE TO CLEAR * SET OTHER EQUIPMENTS TO RECONFIGURE IN DISPLAY. UKD4 SX6 B0 SAVE POSITION SX5 B0 INITIALIZE EQUIPMENT SEARCH LOOP SA6 UKDB UKD5 RJ SML FIND EQUIPMENT ZR X5,UKD6 IF END OF EQUIPMENTS PL X1,UKD5 IF DEVICE IDLE BIT NOT SET RJ BED BUILD EQUIPMENT DISPLAY LINE SA4 UKDB MOVEDL BEDAL,BEDC,DSAE+X4 SA4 UKDB INCREMENT DISPLAY LINE SX6 X4+KLNL SA6 A4 SB5 X6 SB6 KLNL*KEQL LT B5,B6,UKD5 IF NOT END OF DISPLAY LINES EQ UKD8 COMPLETE PROCESSING UKD6 SA4 UKDB SB6 KLNL*KEQL SB5 X4+ NZ X4,UKD7 IF AN EQUIPMENT ALREADY ENTERED SB5 KLNL MOVEDL BEDAL,NONE,DSAE UKD7 MOVEDL BEDAL,BLKL,DSAE+B5 MOVE BLANK LINES SB5 B5+KLNL LT B5,B6,UKD7 IF NOT END OF DISPLAY LINES UKD8 RJ SEQ SET PARAMETERS FOR CURRENT EQUIPMENT EQ UKDX RETURN UKDB CON 0 TEMPORARY UKDC BSS 0 PARAMETER DESCRIPTIONS COMMAND HERE VON SPACE 4,20 ** VON - VALIDATE OCTAL NUMBERS. * * ENTRY (X0) = MAXIMUM NUMBER OF CHARACTERS + 1 ALLOWED. * (SPTR) = STRING BUFFER ADDRESS OF PREVIOUS CHARACTER. * (SLMP) = STRING BUFFER LIMIT POINTER. * * EXIT (X4) = NUMBER OF CHARACTERS ASSEMBLED. * (X5) = ERROR MESSAGE ADDRESS. * (X6) = BINARY VALUE OF NUMBER. * (B5) = SEPARATOR. * (SPTR) = UPDATED STRING BUFFER POINTER. * * USES A - 1, 2, 4, 6. * X - 1, 2, 4, 5, 6, 7. * B - 7. * * CALLS ASC, DXB. VON3 SX5 ERIE **** INCORRECT ENTRY. VON SUBR ENTRY/EXIT * CHECK SYNTAX OF VALUE. SX7 B0 RJ ASC SA2 SPTR CHECK FOR POST RADIX SA1 X2-1 SX2 X1-1R0 PL X2,VON2 IF NO POST RADIX SX7 X1-1RB ZR X7,VON1 IF OCTAL POST RADIX SX2 X1-1RD NZ X2,VON3 IF NOT DECIMAL POST RADIX VON1 SX4 X4-1 DECREMENT NUMBER OF CHARACTERS VON2 IX7 X4-X0 PL X7,VON3 IF TOO MANY DIGITS SX5 ERIS **** INCORRECT SEPARATOR. SX2 B5-1R= ZR X2,VONX IF INCORRECT SEPARATOR BX5 X5-X5 ZR X4,VONX IF NO CHARACTERS * CHECK BINARY VALUES. BX5 X6 CONVERT TO BINARY SB7 B0 PX6 X4,B5 SA6 VONA RJ DXB NZ X4,VON3 IF ERROR IN CONVERSION SA4 VONA RESTORE CHARACTER COUNT UX4,B5 X4 BX5 X5-X5 CLEAR ERROR EQ VONX RETURN VONA CON 0 SCRATCH LOCATION TITLE ERROR MESSAGES. * ERROR MESSAGES. ERR BSS 0 ERROR MESSAGE FIRST WORD ADDRESS LOC 0 ERBL DIS 6, ERCN DIS 6,**** ERROR IN CHANNEL NUMBER. ERDF DIS 6,**** DEVICE NOT FIRST IN CHAIN. EREN DIS 6,**** ERROR IN EST ORDINAL. ERIE DIS 6,**** INCORRECT ENTRY. ERIS DIS 6,**** INCORRECT SEPARATOR. ERSI DIS 6,**** EQUIPMENT STATUS INCORRECT. ERIU DIS 6,**** INTRODUCED UNIT IN USE. ERUN DIS 6,**** ERROR IN UNIT LIST. LOC *O ERRNZ ERBL TKEY SPACE 4,10 ** TKEY - TABLE OF KEYWORDS. * * ENTRY 42/ KEYWORD,18/ PRO * KEYWORD = * PRO = PROCESSOR ADDRESS. TKEY EQU *-1 DUP KYMX+1,1 CON 0 LIST G KEY HERE LIST * ORG TKEY+KYMX+1 CON 0 END OF TABLE TITLE DISPLAY BUFFER. * DISPLAY AREA DATA. KL VFD 24/KBUF,18/DSB,18/DSA SCREEN CONTROL WORD DATA 10H KBUF BSSZ 8 KEYBOARD BUFFER NOREF K SPACE 4,10 * LEFT SCREEN DISPLAY BUFFER. DSA VFD 10/0,1/0,1/0,48/0 64 CHARACTERS/LINE, FORMATTED KDL 18,T,(MASS STORAGE FAILURE RECOVERY) KDL 1,K,(CURRENT EQUIPMENT CONFIGURATION) DSCC EQU * KDL 4,K,(12. DQ-3 CH20,21 UL= 40 41 42 -- -- -- -- -- ST = ----) K SET K+2 SKIP TWO LINES KDL 1,K,(REQUESTED EQUIPMENT CONFIGURATION) DSRC EQU * KDL 4,K,(12. DQ-3 CH20,21 UL= 47 41 42 -- -- -- -- -- ST = ----) DSAB EQU * KDL 8,K,( CHANGED UNITS * ) K SET K+2 SKIP TWO LINES KDL 1,K,(IDLED EQUIPMENTS) DSAE EQU * DUP KEQL,1 KDL 4,K,( ) MSG1 EQU *+1 KDL 1,M,( ) MSG2 EQU *+1 KDL 1,I,( ) CON 0 END OF DISPLAY DSB SPACE 4,10 * RIGHT SCREEN DISPLAY BUFFER. DSB VFD 10/0,1/0,1/0,48/0 64 CHARACTERS/LINE, FORMATTED KDL 1,T,(K DISPLAY COMMANDS) DSAA EQU * DUP KCML,1 KDL 1,K,( , ) CON 0 END OF DISPLAY SPACE 4,10 * LINE SKELETONS. NONE DATA 10HNONE. BLKL DATA 64L TITLE COMMON DECKS. ** COMMON DECKS. *CALL COMCCIO *CALL COMCCOD *CALL COMCCPM *CALL COMCDXB *CALL COMCLFM *CALL COMCMVE *CALL COMCRSB *CALL COMCSYS *CALL COMCUSB *CALL COMCWTC *CALL COMCWTW *CALL COMCZTB TITLE BUFFERS. USE LITERALS * BUFFERS. SSJ= BSSZ SSJL CHTB EQU * CHANNEL STATUS TABLE BUFFER ESTB EQU CHTB+CTALL EST BUFFER MSTC EQU ESTB+ESTE*ESMX CURRENT EQUIPMENT MST MSTB EQU MSTC+MSTL MST READ BUFFER OBUF EQU MSTB+MSTL OUTPUT BUFFER BUFL EQU OBUF+OBUFL END OF BUFFERS RFL= EQU BUFL+10B PRS TITLE PRESET. ** PRS - PRESET. * * EXIT (NPPU) = NUMBER OF PPUS. * (ESTA) = EST ADDRESS. * (MMFF) .NE. 0 IF MMF MODE. * * USES A - 1, 6. * X - 0, 1, 2, 3, 5, 6. * * CALLS PRK. * * MACROS ABORT, EREXIT, GETLCW, MESSAGE. PRS SUBR ENTRY/EXIT EREXIT END1 * CHECK NUMBER OF ARGUMENTS. SX5 PRSA * USER ACCESS NOT VALID.* SA1 SSJ= CHECK SUBSYSTEM ID MX0 -12 BX1 -X0*X1 SX6 X1-MSSI NZ X6,PRS1 IF USER ACCESS NOT VALID SA1 ACTR CHECK NUMBER OF ARGUMENTS SX5 PRSB * INCORRECT COMMAND.* MX0 -18 BX2 -X0*X1 ZR X2,PRS2 IF NO ARGUMENTS PRS1 MESSAGE X5 ABORT * GET NUMBER OF PPUS IN SYSTEM. PRS2 GETLCW 1,PPUL,NPPU MX0 -12 LX1 -24 BX6 -X0*X1 SA6 A1 * GET NUMBER OF MASS STORAGE EQUIPMENTS AND SET EST ADDRESS. GETLCW 1,ESTP,ESTA * SET MULTI-MAINFRAME STATUS. GETLCW 1,MMFL,MMFF AX1 36 BX6 -X0*X1 SA6 A1+ SX3 PRSD RJ PRK PRESET K-DISPLAY BUFFER EQ PRSX RETURN PRSA DATA C* USER ACCESS NOT VALID.* PRSB DATA C* INCORRECT COMMAND.* PRSC CON 0 *GETQP* BUFFER WORD PRSD KDL * Y-COORDINATE TABLE PRK HERE REMOTE BLOCK FROM *COMCDCP* SPACE 4 END