cdc:nos2.source:opl871:config
Table of Contents
CONFIG
Table Of Contents
- [00341] CALL1RM - CALL *1RM* TO PERFORM SPECIFIED FUNCTION.
- [00357] GETLCW - GET LOW CORE WORDS.
- [00377] KEYWORD - DEFINE COMMAND AND PARAMETER ENTRY POINTS.
- [00400] MOVEDL - MOVE DISPLAY LINE.
- [00424] KEYWORD DEFINITION FOR *CONFIG* COMMANDS.
- [00435] RESERVED LOCATIONS AND FETS.
- [00501] CONFIG - MAIN LOOP.
- [00502] MAIN LOOP.
- [00559] *1RM* COMMAND DEFINITIONS.
- [00561] ABORT - ABORT THE CURRENT COMMAND SEQUENCE.
- [00566] IGNORE - IGNORE CURRENT ERROR CONDITION.
- [00571] NEXT - PROCEED TO NEXT UNIT.
- [00576] RECHECK - RETRY PROCESS GIVING ERROR.
- [00580] CLC - *CLEAR* COMMAND PROCESSOR.
- [00581] CLC - *CLEAR* COMMAND PROCESSOR.
- [00601] END - END COMMAND PROCESSOR.
- [00602] END - *END* COMMAND PROCESSOR.
- [00631] GOC - *GO* COMMAND PROCESSOR.
- [00632] GOC - *GO* COMMAND PROCESSOR.
- [00655] RRC - *RERUN* COMMAND PROCESSOR.
- [00656] RRC - *RERUN* COMMAND PROCESSOR.
- [00709] RSC - *RESET* COMMAND PROCESSOR.
- [00710] RSC - *RESET* COMMAND PROCESSOR.
- [00739] SSP - *SUSPEND* COMMAND PROCESSOR.
- [00740] SSP - *SUSPEND* COMMAND PROCESSOR.
- [00766] CHP - *CH* PARAMETER PROCESSOR.
- [00767] CHP - *CH* PARAMETER PROCESSOR.
- [00850] EQP - *EQ* PARAMETER PROCESSOR.
- [00851] EQP - *EQ* PARAMETER PROCESSOR.
- [00889] ULP - UNIT LIST PARAMETER PROCESSOR.
- [00890] ULP - *UL=* PARAMETER PROCESSOR.
- [00976] URP - *UR=* PARAMETER PROCESSOR.
- [01021] UTILITY SUBROUTINES.
- [01023] ASC - ASSEMBLE CHARACTERS.
- [01094] BCL - BUILD CURRENT CONFIGURATION LIST.
- [01136] BED - BUILD EQUIPMENT DISPLAY LINE.
- [01265] CAE - CLEAR ALL EQUIPMENT IDLE STATUS.
- [01280] CCH - CHECK FOR MATCHING CHANNELS.
- [01319] CHA - CHECK CHANNEL AVAILABLE.
- [01380] CLD - CHECK LEGALITY OF DEVICE.
- [01415] CRM - CALL *1RM* TO PROCESSES FUNCTION.
- [01479] EST - READ EST INTO *ESTB*.
- [01510] FUM - FIND REPLACEMENT UNIT IN MST-S.
- [01600] GLC - GET LOW CORE WORDS.
- [01630] IDE - ISSUE INPUT DATA ERROR MESSAGE TO K-DISPLAY.
- [01652] ISB - INPUT STRING BUFFER.
- [01700] MPL - MOVE AND POSITION LINE.
- [01733] RMT - READ MST FOR EQUIPMENT.
- [01756] SEQ - SET EQUIPMENT PARAMETERS IN DISPLAY.
- [01815] SPT - SEARCH PARAMETER TABLE.
- [01844] SML - SEARCH EST FOR MASS STORAGE *LDAM* DEVICES.
- [01881] S2L - SET 2 DIGITS IN DISPLAY LINE.
- [01906] UKD - UPDATE K-DISPLAY INFORMATION.
- [01977] VON - VALIDATE OCTAL NUMBERS.
- [02036] ERROR MESSAGES.
- [02054] TKEY - TABLE OF KEYWORDS.
- [02071] DISPLAY BUFFER.
- [02124] COMMON DECKS.
- [02140] BUFFERS.
- [02156] PRS - PRESET.
Source Code
- CONFIG.txt
- 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
cdc/nos2.source/opl871/config.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator