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