cdc:nos2.source:opl871:mrec
Table of Contents
MREC
Table Of Contents
- [00011] MREC - MACHINE RECOVERY UTILITY.
- [00013] MACHINE RECOVERY UTILITY.
- [00193] COMMON DECKS, MACROS, AND MICROS.
- [00261] CONSTANTS, EQUIVALENCES, AND TEMPORARY STORAGE.
- [00341] TMID - TABLE OF MACHINE STATE ENTRIES.
- [00365] TABLES
- [00367] TSDV - TABLE OF SHARED DEVICES. (THIS MACHINE)
- [00380] TRDV - TABLE OF DEVICES TO RECOVER.
- [00394] TSEQ - TABLE OF SHARED EQUIPMENT TYPES.
- [00404] TSFM - TABLE OF SHARED FAMILY NAMES.
- [00414] TSMI - TABLE OF SHARED MAINFRAME IDS.
- [00426] PAMT - PARAMETER TABLE.
- [00440] KDCT - K-DISPLAY COMMAND TABLE.
- [00454] TVPC - VALID PARAMETER AND COMMAND TABLE.
- [00474] MAIN ROUTINE.
- [00557] COMMAND AND PARAMETER PROCESSORS.
- [00559] EQP - PROCESS *EQ* PARAMETER.
- [00713] IDP - PROCESS *ID* PARAMETER.
- [00760] OPP - PROCESS *OP* PARAMETER.
- [00813] OPPA - VALID OPTIONS.
- [00826] REP - *RERUN* PROCESSOR.
- [00854] PARAMETER TABLE MANAGEMENT.
- [00856] PPA - PROCESS PARAMETERS.
- [00871] GPR - GET NEXT ENTRY FROM PARAMETER TABLE.
- [00895] PPT - PROCESS PARAMETER TABLE.
- [00945] STB - SEARCH TABLE.
- [00968] CDM - CHECK DOWN MACHINES.
- [01005] SUBROUTINES.
- [01007] DWN - DETERMINE IF MACHINE IS DOWN.
- [01101] IFN - ISSUE *1MR* FUNCTION AND CHECK FOR ERRORS.
- [01190] MRD - PROCESS RESERVES, BAT-S, DAT-S, FAT-S, AND MRT-S.
- [01246] SSD - SEARCH FOR SHARED DEVICES AND FORMAT MST
- [01467] MWD - MOVE N WORDS.
- [01501] K-DISPLAY CONTROL.
- [01503] DSD - DISPLAY MACHINES SHARING DEVICE.
- [01684] PAG - PAGE LEFT DISPLAY.
- [01724] PKE - PROCESS KEYBOARD ENTRY.
- [01954] PRESET.
- [01956] PRS - PRESET PROGRAM.
Source Code
- MREC.txt
- IDENT MREC,ORIG
- ABS
- SST RECM
- ENTRY MREC
- ENTRY RFL=
- ENTRY SSJ=
- ENTRY UTL=
- SYSCOM B1
- *COMMENT MREC - MACHINE RECOVERY UTILITY.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE MREC - MACHINE RECOVERY UTILITY.
- SPACE 4
- *** MREC - MACHINE RECOVERY UTILITY.
- * R. J. PRIEVE. 75/02/14.
- * J. M. MAREK. 84/09/25.
- SPACE 4
- *** MREC CLEARS INTERLOCKS AND RELEASES MASS STORAGE
- * SPACE OF MACHINES THAT HAVE GONE DOWN IN A MULTI-
- * MAINFRAME ENVIRONMENT. THIS SPACE MAY THEN BE
- * UTILIZED BY REMAINING MACHINES SHARING THE DEVICE(S).
- *
- * *MREC* INTERFACES WITH OPERATOR VIA THE K-DISPLAY.
- * IT WILL DISPLAY THE STATUS OF ALL DEVICES THIS MACHINE
- * IS SHARING AND THE MID(S) OF OTHER MACHINES WITH
- * WHICH IT IS SHARING THEM. IT IS POSSIBLE TO BRING
- * UP THIS DISPLAY TO OBSERVE THE STATUS OF SHARED DEVICES
- * AND NOT DO ANY PROCESSING. TO DO THIS ENTER *MREC.* AND
- * BRING UP THE K-DISPLAY. TYPE *STOP* TO END PROGRAM IF NO
- * RECOVERY IS DESIRED. IF RECOVERY OF A DOWNED MACHINE IS
- * DESIRED, ENTER PARAMETERS AND TYPE *GO*.
- SPACE 4
- *** COMMAND.
- *
- * MREC.
- * MREC(ID=MID,EQ=E1,E2,...,EN)
- *
- * ID - MACHINE ID OF DOWNED MACHINE TO PROCESS.
- * THIS PARAMETER MUST BE ENTERED.
- *
- * EQ - EST ORDINALS OF DEVICES TO PROCESS. IF *EQ=ALL*
- * IS ENTERED, ALL DEVICES SHARED BETWEEN THIS MACHINE
- * AND DOWNED MACHINE WILL BE PROCESSED. DEFAULT = *ALL*.
- *
- * OP=R AND OP=I ARE PARAMETERS WHICH CAN ONLY BE
- * ENTERED VIA THE K-DISPLAY, AND THEN ONLY IF A UNIT
- * OR CONTROLLER RESERVE SITUATION OCCURS.
- * *OP=R* WILL DIRECT *1MR* TO RELEASE ALL UNIT
- * RESERVATIONS (844-N) FOR DEVICE BEING RECOVERED.
- * IS IT RECOMMENDED THAT MACHINES ACCESSING THE
- * DEVICE FROM THE OPPOSITE SIDE OF THE CONTROLLER THAN
- * THIS MACHINE BE IDLED BEFORE ENTERING THIS PARAMETER.
- * *OP=I* WILL DIRECT *1MR* TO IGNORE THE DEVICE.
- * THE MRT AND DAT WILL STILL BE PROCESSED, BUT NO
- * ATTEMPT WILL BE MADE TO CLEAN UP SYSTEM SECTORS
- * OF DIRECT ACCESS FILES ON THE DEVICE.
- * SEE THE DISCUSSION FOLLOWING *EQXXX, UNIT RESERVED.*
- * ERROR MESSAGE FOR ADDITIONAL INFORMATION.
- *
- *
- * IF MREC. IS ENTERED FROM THE CONSOLE, PARAMETERS AND
- * COMMANDS MAY BE ENTERED VIA THE K-DISPLAY.
- *
- * K-DISPLAY COMMANDS.
- *
- * *GO* - INITIATE PROCESSING OF MACHINE AND DEVICES SPECIFIED.
- *
- * *RERUN* - RE-INITIALIZE THE K-DISPLAY AND RERUN
- * THE PROGRAM. PARAMETERS MUST BE REENTERED.
- *
- * *STOP* - TERMINATE THE PROGRAM.
- *
- * *+* - PAGE THE LEFT DISPLAY FORWARD OR FROM THE LAST PAGE
- * TO THE FIRST ONE.
- *
- * *-* - PAGE THE LEFT DISPLAY BACK TO THE FIRST PAGE.
- *
- * *(* - PAGE THE RIGHT DISPLAY FORWARD.
- *
- * *)* - PAGE THE RIGHT DISPLAY BACKWARD.
- *
- * IF PARAMETERS ARE SPECIFIED ON THE COMMAND,
- * THE PROGRAM WILL AUTOMATICALLY *GO* IF ALL PARAMETERS
- * ARE IN CORRECT FORMAT AND WILL *STOP* UPON SUCCESSFUL
- * COMPLETION. IF AN ERROR OCCURS, THE ERROR MESSAGE WILL
- * APPEAR ON THE K-DISPLAY AND IT WILL THEN BE THE OPERATOR-S
- * RESPONSIBILITY TO REENTER PARAMETERS CORRECTLY AND TYPE
- * *GO* AND *STOP*.
- *
- *
- *
- * TERMINOLOGY.
- *
- * *MID* - MACHINE ID.
- *
- * *THIS MACHINE* - MACHINE WHICH *MREC* IS BEING RUN ON.
- SPACE 4
- *** DAYFILE MESSAGES.
- *
- * * NO SHARED DEVICES FOR THIS MACHINE.* - THIS
- * MACHINE IS NOT SHARING ANY DEVICES AND THEREFORE
- * COULD NOT ACCESS ANY DEVICES FOR A DOWNED MACHINE.
- *
- * * INCORRECT ORIGIN TYPE.* - MUST BE SYSTEM ORIGIN
- * TO RUN THIS PROGRAM.
- *
- * * MREC ABNORMAL TERMINATION.* - ERROR CONDITION OCCURRED WHICH
- * CAUSED *EREXIT* PROCESSING TO OCCUR.
- *
- * * PROCESSING COMPLETE.* - THIS MESSAGE IS INFORMATIVE
- * AND ALSO GOES TO THE K-DISPLAY.
- SPACE 4
- *** OPERATOR ERROR MESSAGES. (K-DISPLAY ONLY)
- *
- * *INCORRECT ENTRY.* - PARAMETER ENTERED IS INCORRECT.
- * REENTER CORRETLY.
- *
- * *INCORRECT FORMAT FOR MID.* - MACHINE ID ENTERED
- * WAS NOT 2 CHARACHTERS OR WAS NOT ALPHANUMERIC.
- * CORRECT AND REENTER.
- *
- * *INCORRECT FORMAT FOR EQ ENTRY.* - ERROR IN ENTERING
- * OF *EQ* PARAMETER. CORRECT AND REENTER.
- *
- * *MID SPECIFIED NOT DOWN.* - MACHINE ID WHICH WAS
- * SPECIFIED WAS NOT DETERMINED TO BE DOWN. REENTER
- * CORRECTLY OR TYPE *STOP*.
- *
- * *MID SPECIFIED NOT FOUND.* - MACHINE IS WHICH WAS
- * SPECIFIED IS NOT DEFINED IN THE COMPLEX. REENTER
- * CORRECTLY OR TYPE *STOP*.
- *
- * *MID NOT SPECIFIED.* - MID OF MACHINE TO PROCESS MUST
- * BE ENTERED. THEN TYPE *GO*.
- *
- * * LINK DEVICE READ ERROR.* - UNRECOVERABLE ERROR OCCURRED
- * WHEN ATTEMPTING TO READ LINK DEVICE. ONLY ENTRIES
- * ACCEPTED AFTER THIS ERROR ARE *STOP* OR *RERUN*.
- * (MESSAGE ALSO GOES TO DAYFILE.)
- *
- * * LINK DEVICE WRITE ERROR.* - UNRECOVERABLE ERROR OCCURRED
- * WHEN ATTEMPTING TO WRITE LINK DEVICE. ONLY ENTRIES
- * ACCEPTED AFTER THIS ERROR ARE *STOP* OR *RERUN*.
- * (MESSAGE ALSO GOES TO DAYFILE.)
- *
- * * EQXXX, CHXX, CONTROLLER RESERVED.*
- * CONTROLLER RESERVES MAY BE CLEARED BY HITTING THE
- * DEADSTART BUTTON ON THE DOWNED MACHINE. ONCE THE
- * CORRECTIVE ACTION HAS BEEN TAKEN, TYPE *GO* TO RESUME
- * PROCESSING.
- *
- * * EQXXX, UNXX, UNIT RESERVED.*
- * UNIT RESERVES MAY BE CLEARED ON 885 UNITS BY HITTING
- * THE DEADSTART BUTTON ON THE DOWNED MACHINE.
- * UNIT RESERVES MAY BE CLEARED ON 844 AND 841 DEVICES BY
- * TOGGLING THE DEVICE OFF LINE AND BACK ON LINE VIA A SWITCH
- * IN BACK OF THE DRIVE. IF THIS IS IMPOSSIBLE THE *OP=R*
- * OPTION MAY BE SELECTED FOR 844 DEVICES. THIS OPTION
- * MUST BE USED WITH DISCRETION SINCE IT AFFECTS THE
- * OPERATION OF ALL DRIVES CONNECTED TO THE CONTROLLERS
- * ACCESSING THE DRIVE WITH THE UNIT RESERVED. SPECIFICALLY
- * THE USE OF *OP=R* MAY CAUSE UNRECOVERABLE DISK ERRORS
- * ON ANY SUCH DRIVE.
- *
- * ONCE THE CORRECT ACTION HAS BEEN TAKEN, TYPE *GO* TO
- * RESUME PROCESSING. IF THE RESERVE IS STILL NOT CLEARED,
- * THE OPERATOR WILL AGAIN BE NOTIFIED, IN WHICH CASE HE CAN
- * REPEAT THE PROCEDURE TO CLEAR THE RESERVE.
- *
- * *INCORRECT OPTION.* - INCORRECT OPTION ENTERED ON THE
- * *OP* PARAMETER.
- *
- * *INCORRECT EQUIPMENT.* - *OP=R* MAY ONLY BE ENTERED FOR
- * 844-N DEVICES.
- SPACE 4,20
- *** K-DISPLAY FORMAT.
- *
- * 1 2 3 4 5 6
- * 1234567890123456789012345678901234567890123456789012345678901234
- * MACHINE RECOVERY UTILITY PAGE 1 OF 99
- *
- * EQ TYPE UN DN FM/PN MIDS SHARING DEVICE
- * --- ---- -- -- ------- -------------------------------
- * 6 DJ 0 40 PACK001 11 22* 33 44 55 66
- * 7 DJ-4 1 41 PACK002 22* 33
- * 111 DQ 40 40 FAMILY1 11 22*
- *
- *
- * ID OF DOWNED MACHINE = XX
- * EQ(S) TO RECOVER = ALL
- *
- * MESSAGE LINE
- * KEYBOARD INPUT LINE
- TITLE COMMON DECKS, MACROS, AND MICROS.
- *CALL COMCMAC
- *CALL COMCDCM
- QUAL MMF
- *CALL COMSMMF
- QUAL *
- MMPF EQU /MMF/MMPF DEFINE TAG FOR *COMSMRT*
- MXMF EQU /MMF/MXMF
- QUAL MRT
- *CALL COMSMRT
- QUAL *
- *CALL COMSPRD
- *CALL COMSSSD
- *CALL COMSSSJ
- SPACE 4
- *** MWORDS - MOVE N WORDS.
- *
- * MWORDS FROM,TO,COUNT
- *
- * FROM ADDRESS TO GET DATA FROM.
- * TO ADDRESS TO MOVE DATA TO.
- * COUNT NUMBER OF WORDS TO MOVE. (IF NOT SPECIFIED,
- * DEFAULT = 3.)
- PURGMAC MWORDS
- MWORDS MACRO F,T,C
- SB2 F
- SB3 T
- IFC EQ,$C$$
- SB4 3
- ELSE 1
- SB4 C
- RJ MWD
- ENDM
- SPACE 4
- *** BITCON - SET BIT CONSTANT.
- *
- * BITCON P
- *
- * WHERE P = (P1, P2, ..., PN)
- * WITH P1 - PN = BIT NUMBER TO SET IN WORD.
- PURGMAC BITCON
- BITCON MACRO P
- LOCAL A,B
- A MICRO 1,,
- IRP P
- B DECMIC P
- A MICRO 1,, "A"+1S"B"
- IRP
- CON "A"
- ENDM
- MICROS SPACE 4,10
- ** MICROS.
- 30BLANKS MICRO 1,30,$ $
- 40BLANKS MICRO 1,40,$"30BLANKS" $
- 50BLANKS MICRO 1,50,$"40BLANKS" $
- 60BLANKS MICRO 1,60,$"50BLANKS" $
- TITLE CONSTANTS, EQUIVALENCES, AND TEMPORARY STORAGE.
- ORG 106B
- ORIG BSS 0
- SSJ= VFD 12/0,24/-0,12/MRCS,12/IRSI
- BSSZ SSJL-1
- * ASSEMBLY CONSTANTS.
- MSTBL EQU MSTXL LENGTH OF MST BUFFER
- PARML EQU 62B LENGTH OF PARAMETER AREA
- PAGLN EQU 12 NUMBER OF K-DISPLAY EQUIPMENT ENTRIES
- LLEN EQU 7 NUMBER OF WORDS IN K-DISPLAY LINE
- UTL= EQU 0 PERMIT ACCESS TO A SUSPECT DEVICE
- * LOW CORE READ STATUS WORDS.
- RESP VFD 12/0,12/1,18/ESTP,18/ESTF EST POINTER
- RMMF VFD 12/0,12/1,18/MMFL,18/MMFP *MMFL* WORD
- RMST VFD 12/0,12/MSTBL,18/0,18/MSTB MST
- RDIT VFD 12/0,12//MMF/MMPF,18/0,18/SCRB DIT
- * *1MR* CONTROL.
- REQW BSS 1 REQUEST WORD
- RDIW VFD 18/3R1MR,6/0,18//MRT/RDI,18/TSDV
- PMTW VFD 18/3R1MR,6/0,18//MRT/PMT,18/TRDV
- PRBW VFD 18/3R1MR,6/0,18//MRT/PRB,18/TRDV
- UMTW VFD 18/3R1MR,6/0,18//MRT/UMT,18/0
- * FLAGS AND TEMPORARY STORAGE.
- *
- * THE FOLLOWING WORDS ARE ZEROED OUT WHEN THE PROGRAM
- * IS INITIALIZED AND IN THE EVENT OF *RERUN*.
- CLER EQU * FIRST WORD TO ZERO
- AUTO BSS 1 AUTOMATIC *GO*, *STOP* FLAG
- CVEM BSS 1 CURRENT VALID ENTRY MASK
- ESTF BSS 1 EST POINTER
- LCSW BSS 1 LOW CORE READ STATUS WORD
- MIDP BSS 1 MACHINE ID OF DOWNED MACHINE
- NSDV BSS 1 NUMBER OF SHARED DEVICES (THIS MACHINE)
- PTPR BSS 1 POINTER INTO PARAMETER TABLE
- SORT BSS 1 TABLE SORT FLAG (SEE ROUTINE *MRD*)
- CLERL EQU * END OF WORDS TO ZERO
- DBFA VFD 30/SDD1,30/SDD2 DOUBLE BUFFERS FOR THE *K* DISPLAY
- FNDV VFD 12/0,48/0 12/PAGE-1,24/CURRENT DEVICE,24/NEXT DEVICE
- MMFP BSS 1 *MMFL* WORD FOR THIS MACHINE
- NKDP BSS 1 NUMBER OF *K* DISPLAY PAGES
- NPAR BSS 1 NUMBER OF PARAMETERS ON COMMAND
- SPACE 4
- ERRNG /MRT/COM-* OVERFLOW INTO COMMON STORAGE
- EJECT
- * THE FOLLOWING LOCATIONS ARE READ AND WRITTEN BY
- * *1MR*. DO NOT ADD OR DELETE ANY LOCATIONS WITHOUT ALSO
- * CHANGING *COMSMRT*.
- *
- * THESE LOCATIONS ARE ALSO ZEROED OUT AT INITIALIZATION
- * AND IN EVENT OF *RERUN*.
- ORG /MRT/COM
- COM BSS 0 BEGINNING OF COMMON STORAGE
- MASK BSS 1 MACHINE INDEX OF DOWNED MACHINE
- RCLW BSS 1 *1MR* RECALL CONTROL
- ERRW BSS 1 ERROR RETURN WORD (BYTE 4)
- SPACE 4
- ** TMID - TABLE OF MACHINE STATE ENTRIES.
- *
- *T, 12/ MID,1/T,1/L,1/,9/ EQ,18/ 0,18/ STA
- *
- * MID MACHINE ID.
- * T SET IF MACHINE HAS INDEPENDENT SHARED DEVICES.
- * L LOW SPEED PORT LINK ON THIS MACHINE.
- * EQ EST ORDINAL OF LINK DEVICE.
- * STA STATE OF THIS MACHINE AS DEFINED IN *COMSMMF*.
- *
- * NOTE - EQ AND STA = 0, IF NOT EM MMF.
- TMID BSS 0
- LOC 0
- BSSZ /MMF/MXMF EXTENDED MEMORY MMF MAINFRAMES
- TMIDI BSSZ /MMF/MMPF START OF MAINFRAMES WITH ISHARE DEVICES
- TMIDL EQU * MAXIMUM NUMBER OF MAINFRAMES
- LOC *O
- COML EQU *-COM END OF COMMON STORAGE
- ERRNZ /MRT/COML-COML COMMON STORAGE OUT OF SYNC
- TITLE TABLES
- TSDV SPACE 4,10
- ** TSDV - TABLE OF SHARED DEVICES. (THIS MACHINE)
- *
- *T, TSDV 12/ MASKS,24/,12/ TY,12/ EQ
- *T,SRMS 18/ 0,18/ *TSMI* POINTER,12/ 1,12/ EQ
- *
- * EQ EST ORDINAL OF SHARED DEVICE.
- * MASKS MACHINE MASKS OF OTHER MACHINES SHARING THE
- * DEVICE. RETURNED BY 1MR FUNCTION *RDI*.
- TSDV BSS 0
- BSS MSMX+1
- TRDV SPACE 4,10
- ** TRDV - TABLE OF DEVICES TO RECOVER.
- *
- *T, 12/ RC,24/,12/ TY,12/ EQ
- *
- * RC RETURN CODE IF UNIT OR CONTROLLER RESERVED. SEE
- * COMSMRT FOR CODES. THIS DEPENDS ON OPERATOR ACTION.
- * EQ EST ORDINAL OF DEVICE TO RECOVER.
- * TY TYPE OF SHARED DEVICE.
- * 1 = ISHARE DEVICE.
- * 0 = EXTENDED MEMORY MMF DEVICE.
- TRDV BSS MSMX+1
- TSEQ SPACE 4,10
- ** TSEQ - TABLE OF SHARED EQUIPMENT TYPES.
- *
- *T, 24/ DEVICE TYPE,18/ 0,12/ UNIT NUMBER, 6/ 0
- *
- * THE DEVICE TYPE AND UNIT NUMBER ARE IN DISPLAY CODE,
- * FORMATTED AS THEY WILL APPEAR IN THE DISPLAY.
- TSEQ BSS MSMX+1
- TSFM SPACE 4,10
- ** TSFM - TABLE OF SHARED FAMILY NAMES.
- *
- *T 12/ DEVICE NO.,6/ 0,42/ FAMILY NAME
- *
- * THE DEVICE NUMBER AND FAMILY NAME ARE IN DISPLAY CODE, BUT
- * MUST BE REFORMATTED BEFORE THEY ARE PUT INTO THE DISPLAY.
- TSFM BSS MSMX+1
- TSMI SPACE 4,10
- ** TSMI - TABLE OF SHARED MAINFRAME IDS.
- *
- *T 12/ MID1,12/ MID2,12/ MID3,12/ MID4,12/ MID5
- *
- * THE MIDS ARE FOR ISHARE DEVICES. A POINTER IN *TSDV* POINTS
- * TO THE FIRST WORD OF THAT DEVICES MIDS. THE LIST OF MIDS
- * ENDS WITH A ZERO BYTE OR WITH *MMPF*-1 MIDS.
- .1 SET MMPF-1+4
- SMLX EQU .1/5 MAXIMUM WORDS PER MID LIST
- TSMI BSS SMLX*MSMX+1
- PAMT SPACE 4,10
- ** PAMT - PARAMETER TABLE.
- *
- *T 12/PARM,24/0,6/VOM,18/PROC
- *
- * PARM PARAMETER KEYWORD.
- * VOM VALID OPTION MASK.
- * PROC PROCESSOR ADDRESS FOR PARAMETER.
- PAMT VFD 12/2LID,24/0,6/IDPR,18/IDP *ID*
- VFD 12/2LEQ,24/0,6/EQPR,18/EQP *EQ*
- VFD 12/2LOP,24/0,6/OPPR,18/OPP *OP*
- CON 0 END OF TABLE
- KDCT SPACE 4,10
- ** KDCT - K-DISPLAY COMMAND TABLE.
- *
- *T, 36/COMM,6/VOM,18/PROC
- *
- * COMM COMMAND.
- * VOM VALID OPTION MASK.
- * PROC PROCESSOR ADDRESS FOR COMMAND.
- KDCT VFD 36/2LGO,6/GOCM,18/GO *GO*
- VFD 36/5LRERUN,6/RECM,18/REP *RERUN*
- VFD 36/4LSTOP,6/STCM,18/STOP *STOP*
- CON 0 END OF TABLE
- TVPC SPACE 4,5
- ** TVPC - VALID PARAMETER AND COMMAND TABLE.
- TVPC EQU *
- LOC 0
- IDPR BSS 1 *ID* PARAMETER
- EQPR BSS 1 *EQ* PARAMETER
- OPPR BSS 1 *OP* PARAMETER
- GOCM BSS 1 *GO* COMMAND
- RECM BSS 1 *RERUN* COMMAND
- STCM BSS 1 *STOP* COMMAND
- LOC *O
- ORG TVPC
- SPACE 4
- ** VALID ENTRY MASKS.
- NORP BITCON (IDPR,EQPR,GOCM,RECM,STCM) NORMAL PROCESSING
- ERRP BITCON (RECM,STCM) PROCESSING AFTER LINK DEVICE ERROR
- RSVP BITCON (OPPR,GOCM,RECM,STCM) PROCESSING AFTER RESERVE
- TITLE MAIN ROUTINE.
- * MAIN ROUTINE.
- MREC RJ PRS PRESET
- RERUN RJ IBF INITIALIZE BUFFERS
- RJ SSD SEARCH FOR SHARED DEVICES
- SA1 NSDV CHECK NUMBER OF SHARED DEVICES
- NZ X1,MRE1 IF SHARED DEVICES
- MESSAGE (=C* NO SHARED DEVICES FOR THIS MACHINE.*)
- EQ ABT1
- MRE1 BX6 X6-X6 TERMINATE TABLE
- SA6 TSDV+X1
- SA6 TRDV+X1
- * RETRIEVE ADDITIONAL DISPLAY INFORMATION FROM LINK DEVICE IF
- * THIS MACHINE RUNNING EXTENDED MEMORY MMF.
- SA1 MMFP
- MX0 -9
- AX1 36
- BX1 -X0*X1
- ZR X1,MRE2 IF THIS MF NOT RUNNING EXTENDED MEMORY MMF
- SA1 RDIW SET FUNCTION *RDI*
- RJ IFN
- * GENERATE K-DISPLAY FOR SHARED DEVICES.
- MRE2 RJ DSD DISPLAY SHARED DEVICES
- EQ PPA PROCESS PARAMETERS
- * DETERMINE IF MACHINE SPECIFIED IS DOWN.
- GO SA1 MIDP
- NZ X1,MRE3 IF MID SPECIFIED
- MWORDS ERR7,MSDS+1 *MID NOT SPECIFIED.*
- EQ PPA PROCESS PARAMETERS
- MRE3 BX0 X1
- LX0 48
- SA3 MMFP
- MX6 12
- BX3 X6*X3
- BX6 X3-X0
- SB6 B0
- ZR X6,MRE4 IF SPECIFIED MACHINE IS THIS MF
- RJ DWN
- NG B6,MRE5 IF MACHINE SPECIFIED IS DOWN
- MRE4 MWORDS ERR4,MSDS+1 *MID SPECIFIED NOT DOWN.*
- ZR B6,PPA IF MACHINE FOUND BUT NOT DOWN
- MWORDS ERR5,MSDS+1 *MID SPECIFIED NOT FOUND.*
- EQ PPA PROCESS PARAMETERS
- * PROCESS RESERVES, BAT-S, DAT-S, FAT-S, AND MRT-S.
- MRE5 BX6 X1 SET *MMFL* WORD FOR DOWNED MACHINE
- SA6 MASK
- MESSAGE (=C* *),2,R CLEAR *REQUEST K DISPLAY*
- MESSAGE (=C* *),1,R
- RJ MRD CALL *PRB* AND *PMT* FUNCTIONS
- MESSAGE MES1 * PROCESSING COMPLETE.*
- MWORDS MES1,MSDS+1
- SA1 AUTO
- NZ X1,STOP IF AUTOMATIC *STOP*
- EQ PPA REQUEST INFORMATION FROM K-DISPLAY
- SPACE 4
- ** TERMINATION PROCESSOR.
- ABT SA1 B0 CHECK TYPE OF ERROR
- MX0 -6
- LX1 12
- BX2 -X0*X1
- SX3 X2-ODET
- ZR X3,ABT1 IF OPERATOR DROP
- MESSAGE (=C* MREC ABNORMAL TERMINATION.*)
- ABT1 ABORT
- STOP ENDRUN
- TITLE COMMAND AND PARAMETER PROCESSORS.
- EQP SPACE 4
- ** EQP - PROCESS *EQ* PARAMETER.
- *
- * EXIT TO *PPTA* IF PROCESS NEXT PARAMETER.
- * TO *PPA* IF ERROR IN EQUIPMENT FORMAT.
- *
- * USES X - ALL.
- * A - 0, 1, 2, 3, 6, 7.
- * B - 2, 3, 4, 5, 6, 7.
- *
- * CALLS DXB, GPR.
- *
- * MACROS MWORDS.
- * PROCESS FIRST ARGUMENT.
- EQP SB6 B0
- SB7 B0 SET OCTAL BASE
- SA3 ESTF GET LAST MASS STORAGE ORDINAL + 1
- MX4 -12
- AX3 12
- BX6 -X4*X3
- SA6 EQPA
- RJ GPR GET NEXT PARAMETER TABLE ENTRY
- ZR X2,EQP4 ERROR IF TERMINATOR
- NZ B2,EQP4 ERROR IF SEPARATOR
- MX0 36
- SA3 =3LALL CHECK IF *ALL* ENTERED
- BX4 X3-X2
- ZR X4,EQP5 IF *ALL*
- EQ EQP2 PROCESS FIRST ARGUMENT
- * PROCESS REMAINDER OF ARGUMENTS.
- EQP1 RJ GPR GET NEXT PARAMETER TABLE ENTRY
- ZR X2,EQP6 IF TERMINATOR
- NZ B2,EQP6 IF SEPARATOR
- EQP2 BX5 X2 CONVERT TO BINARY
- LX2 18
- SA0 X2+
- RJ DXB
- NZ X4,EQP4 IF CONVERSION ERROR
- SA3 EQPA GET LAST MASS STORAGE ORDINAL + 1
- SB2 X3
- SB3 X6+
- SB2 B3-B2
- PL B2,EQP4 IF EST ORDINAL .GT. MAXIMUM
- ZR X6,EQP4 IF EST ORDINAL = 0
- R= X3,ESTE
- IX3 X6*X3
- SA3 ESTB+X3+EQDE SET TYPE OF SHARED DEVICE
- LX3 59-52
- PL X3,EQP3 IF NOT ISHARE DEVICE
- MX4 -1
- LX4 12
- BX6 -X4+X6
- EQP3 SA6 TRDV+B6 STORE ENTRY IN TABLE OF DEVICES TO RECOVER
- * (A0) = EST ORDINAL IN DISPLAY CODE, LEFT-JUSTIFIED.
- SX6 A0 STORE DISPLAY CODE FOR K-DISPLAY
- MX3 -18
- BX6 -X3*X6
- SX3 40404B CALCULATE THE NUMBER OF DIGITS
- IX4 X6-X3
- LX3 3
- BX4 X4*X3
- PX4 X4
- ZX4,B2 X4 48 = 3 DIGITS, 42 = 2 DIGITS, 36 = 1 DIGIT
- PX6 X6,B2
- SA6 SCRB+B6
- SB6 B6+B1 INCREMENT TABLE INDEX
- EQ EQP1 LOOP
- EQP4 MWORDS ERR3,MSDS+1 *INCORRECT FORMAT FOR EQ ENTRY.*
- EQ PPA REQUEST INFORMATION FROM K-DISPLAY
- EQP5 SA1 TSDV+B6 SET TO PROCESS ALL SHARED DEVICES
- BX6 -X0*X1
- SB6 B6+B1
- SA6 TRDV-1+B6
- NZ X1,EQP5 IF NOT END OF TABLE
- SA1 DFEQ SET *ALL* IN K-DISPLAY
- BX7 X1
- SA7 EQDS
- MWORDS BLKW+2,EQDS+1,4
- MWORDS BLKW,EQDS1+1,6
- EQ PPTA
- EQP6 BX6 X6-X6 TERMINATE TABLES
- SA6 SCRB+B6
- BX0 X0-X0
- SA6 TRDV+B6
- SA1 PTPR SET TO RECHECK LAST PARAMETER
- SX6 X1-1
- SA6 A1
- * MOVE EQUIPMENT(S) TO RECOVER TO K-DISPLAY.
- MX6 24
- SA1 EQDS CLEAR CURRENT ENTRIES IN K-DISPLAY
- BX6 X6*X1
- SA6 A1
- MWORDS BLKW+2,EQDS+1,4
- MWORDS BLKW,EQDS1+1,6
- SA1 EQDS-1
- SA2 SCRB
- SA3 A1+B1
- BX6 X1
- SA6 A1
- BX6 X3
- SB2 6*6 UNUSED BITS IN THE FIRST WORD
- SB3 4 WORDS IN FIRST LINE OF K-DISPLAY
- SB5 48
- SB6 60
- EQP7 ZR X2,EQP10 IF END OF TABLE
- UX7,B7 X2
- SA2 A2+B1
- SB4 B5-B7 TRAILING BITS OF ZEROS
- SB7 B7-30 NUMBER OF BITS OF EQUIPMENT NUMBER
- AX7 B4
- ZR X2,EQP8 IF END OF TABLE
- SX4 2R, APPEND A *, *
- LX7 12
- SB7 B7+12
- BX7 X7+X4
- EQP8 SB2 B2-B7 DECREMENT UNUSED BIT COUNT
- LX4 X7,B2
- BX6 X6+X4
- MX4 30
- GT B2,B0,EQP7 IF THIS IS NOT THE END OF THE WORD
- SA6 A6+B1 STORE THE CHARACTERS THAT FIT IN THE WORD
- SB2 B2+B6 GET THE CHARACTERS THAT DID NOT FIT
- LX7 B2
- BX6 X4*X7
- SB3 B3-1
- NZ B3,EQP7 IF THIS IS NOT THE END OF THE LINE
- ZR X6,EQP9 IF ALL CHARACTERS FIT INTO THE LAST WORD
- SA6 A6+1
- EQP9 SA1 EQDS1 INITIALIZE THE SECOND LINE
- SB2 10*6
- SB3 6
- BX6 X1
- SA6 A1
- BX6 X6-X6
- EQ EQP7 PROCESS NEXT LINE
- EQP10 ZR X6,PPTA IF THIS WORD IS EMPTY
- SA6 A6+1
- EQ PPTA RETURN TO PROCESS NEXT PARAMETER
- EQPA CON 0 LAST MASS STORAGE ORDINAL + 1
- IDP SPACE 4,15
- ** IDP - PROCESS *ID* PARAMETER.
- *
- * EXIT TO *PPTA* IF PROCESS NEXT PARAMETER.
- * TO *PPA* IF ERROR IN MACHINE ID FORMAT.
- *
- * USES X - 1, 2, 3, 4, 6, 7.
- * A - 1, 6.
- * B - 2.
- *
- * CALLS GPR.
- *
- * MACROS MWORDS.
- IDP RJ GPR GET NEXT TABLE ENTRY
- NZ B2,IDP2 ERROR IF SEPARATOR
- ZR X2,IDP2 ERROR IF TERMINATOR
- MX3 12
- BX4 -X3*X2
- NZ X4,IDP2 ERROR IF MID MORE THAN 2 CHARACTERS
- BX6 X3*X2 SET MACHINE ID
- LX6 12
- MX4 -6
- BX7 -X4*X6
- ZR X7,IDP1 IF 1 CHARACTER MID
- SB2 X7-1RA
- NG B2,IDP2 IF INCORRECT MID
- SB2 X7-1R9
- GT B2,IDP2 IF INCORRECT MID
- IDP1 LX4 6
- BX7 -X4*X6
- SB2 X7-1RA*100B
- NG B2,IDP2 IF INCORRECT MID
- SB2 X7-1R9*100B
- GT B2,IDP2 IF INCORRECT MID
- SA6 MIDP
- SA1 IDDS+2 SET MID IN K-DISPLAY
- MX3 42
- LX6 6
- BX2 X3*X1
- BX6 X2+X6
- SA6 A1+
- EQ PPTA RETURN FOR NEXT PARAMETER
- IDP2 MWORDS ERR2,MSDS+1 *INCORRECT FORMAT FOR MID.*
- EQ PPA REQUEST INFORMATION FROM K-DISPLAY
- OPP SPACE 4
- ** OPP - PROCESS *OP* PARAMETER.
- *
- * ENTRY (ERRW, 24-35) = INDEX OF EQUIPMENT IN *TRDV*.
- * (ERRW, 12-23) = EST ORDINAL OF DEVICE.
- *
- * EXIT BYTE 0 OF EQUIPMENT ENTRY IN *TRDV* = RETURN CODE.
- * TO *PPTA* IF PROCESS NEXT PARAMETER.
- * TO *PPA* IF FORMAT ERROR.
- *
- * USES X - ALL.
- * A - 1, 2, 5, 7.
- *
- * CALLS GPR, STB.
- *
- * MACROS MWORDS.
- OPP RJ GPR GET NEXT PARAMETER
- NZ B2,OPP2 ERROR IF SEPARATOR
- ZR X2,OPP2 ERROR IF TERMINATOR
- MX0 12 SEARCH OPTION TABLE
- SA5 OPPA
- RJ STB
- ZR X5,OPP2 IF OPTION NOT FOUND
- SA1 ERRW READ CORRECT ENTRY FROM *TRDV*
- MX3 -12
- AX1 12
- BX0 -X3*X1 EST ORDINAL OF DEVICE
- AX1 12
- BX4 -X3*X1
- SA1 TRDV+X4
- LX5 59-47
- PL X5,OPP1 IF VALID OPTION FOR ALL DEVICE TYPES
- R= X2,ESTE
- IX2 X0*X2
- SA2 ESTB+X2+EQDE CHECK IF *LDAM* EQUIPMENT
- LX2 59-55
- PL X2,OPP3 IF NOT *LDAM* EQUIPMENT
- OPP1 LX5 36 SET RETURN CODE IN *TRDV* ENTRY
- LX3 48
- BX6 X3*X1
- BX4 -X3*X5
- BX7 X6+X4
- SA7 A1
- EQ PPTA REQUEST INFORMATION FROM K-DISPLAY
- OPP2 MWORDS ERR8,MSDS+1 *INCORRECT OPTION.*
- EQ PPA
- OPP3 MWORDS ERR9,MSDS+1 *INCORRECT EQUIPMENT.*
- EQ PPA
- ** OPPA - VALID OPTIONS.
- *
- *T, OPPA 12/OP,1/V,35/0,12/RC
- *
- * OP OPTION
- * RC RETURN CODE TO *1MR*
- * V SET IF OPTION ONLY VALID ON 844,S.
- OPPA BSS 0
- VFD 12/1LI,1/0,35/0,12//MRT/IGN *I*
- VFD 12/1LR,1/1,35/0,12//MRT/REL *R*
- CON 0 END OF TABLE
- REP SPACE 4,10
- ** REP - *RERUN* PROCESSOR.
- *
- * EXIT K-DISPLAY CLEARED.
- * TO *RERUN* TO RESTART PROGRAM.
- *
- * USES X - 1, 2, 6, 7.
- * A - 1, 2, 6, 7.
- *
- * MACROS MWORDS, SYSTEM.
- REP MWORDS BLKW,MSDS+1,4 CLEAR MESSAGE LINE
- SA2 DFEQ RESET EQ(S) TO RECOVER TO DEFAULT
- BX7 X2
- SA7 EQDS
- MWORDS BLKW+2,EQDS+1,4 CLEAR EQ(S) TO RECOVER
- MWORDS BLKW,EQDS1+1,6
- SA1 IDDS+2 CLEAR MID TO PROCESS
- MX6 42
- BX6 X6*X1
- SA6 A1
- SA1 RMMF RE-READ *MMFL* WORD
- MX7 1
- BX6 X1
- SA7 MMFP SET LOW CORE READ
- SA6 LCSW
- SYSTEM RSB,R,LCSW
- EQ RERUN RERUN PROGRAM
- TITLE PARAMETER TABLE MANAGEMENT.
- PPA SPACE 4,10
- ** PPA - PROCESS PARAMETERS.
- *
- * THE FOLLOWING ROUTINE IS THE COMMON ENTRY POINT FOR
- * REQUESTING INFORMATION FROM THE K-DISPLAY AND
- * PROCESSING PARAMETERS. EXIT FROM THIS ROUTINE OCCURS
- * WHEN *GO*, *RERUN*, OR *STOP* IS ENTERED.
- PPA1 RJ PPT PROCESS PARAMETER TABLE
- PPA RJ PKE PROCESS KEYBOARD ENTRY
- NZ B6,PPA1 IF PARAMETERS
- MWORDS ERR1,MSDS+1 *INCORRECT ENTRY.*
- EQ PPA
- GPR SPACE 4
- ** GPR - GET NEXT ENTRY FROM PARAMETER TABLE.
- *
- * ENTRY (PTPR) = POINTER TO ENTRY TO BE RETURNED.
- *
- * EXIT (PTPR) = UPDATED POINTER.
- * (X2) = TABLE ENTRY. (0 IF TERMINATOR)
- * (B2) = SEPARATOR.
- *
- * USES X - 1, 2, 3, 4, 6.
- * A - 1, 2, 6.
- * B - 2.
- GPR SUBR ENTRY/EXIT
- SA1 PTPR GET TABLE ENTRY
- SA2 PARM+X1
- SX6 X1+B1 UPDATE POINTER
- SA6 A1
- MX3 -6 SET SEPARATOR
- BX4 -X3*X2
- SB2 X4
- BX2 X3*X2
- EQ GPRX RETURN
- PPT SPACE 4,20
- ** PPT - PROCESS PARAMETER TABLE.
- *
- * EXIT TO *PPTX* IF REQUEST FOR INFORMATION FROM K-DISPLAY.
- * TO PROCESSOR IF LEGAL PARAMETER OR COMMAND.
- * TO *GO* IF END OF PARAMETERS AND (AUTO) .NE. 0.
- *
- * CALLS GPR, STB.
- *
- * USES X - 0, 1, 2, 3, 5, 6.
- * A - 1, 5, 6.
- * B - 4, 5.
- *
- * MACROS MWORDS.
- *
- * NOTE THIS ROUTINE IS ENTERED FROM THE PARAMETER
- * PROCESSORS AT *PPTA* TO PROCESS THE NEXT
- * PARAMETER.
- PPT3 SA1 AUTO
- ZR X1,PPTX IF MORE POSSIBLE PARAMETERS FROM K-DISPLAY
- EQ GO *GO* IF PARAMETERS ENTERED BY COMMAND
- PPT SUBR ENTRY/EXIT
- BX6 X6-X6 SET BEGINNING OF TABLE
- MX0 36
- SA6 PTPR
- PPTA SA5 PAMT SET TABLE TO SEARCH
- RJ GPR GET TABLE ENTRY
- ZR X2,PPT3 IF END OF PARAMETERS
- RJ STB SEARCH PARAMETER TABLE
- NZ X5,PPT1 IF ENTRY FOUND
- SA5 KDCT SEARCH K-DISPLAY COMMAND TABLE
- RJ STB
- ZR X5,PPT2 IF ENTRY NOT FOUND
- PPT1 SB5 X5
- AX5 18 CHECK IF VALID ENTRY
- MX3 -6
- BX1 -X3*X5
- SX3 B1
- SB4 X1
- SA1 CVEM
- LX2 B4,X3
- BX6 X1*X2
- ZR X6,PPT2 IF NOT VALID ENTRY
- JP B5 JUMP TO PROCESSOR
- PPT2 MWORDS ERR1,MSDS+1 *INCORRECT ENTRY.*
- EQ PPTX RETURN TO REQUEST K-DISPLAY ENTRY
- STB SPACE 4,15
- ** STB - SEARCH TABLE.
- * TABLE MUST BE TERMINATED BY 0 WORD.
- *
- * ENTRY (A5) = ADDRESS OF TABLE.
- * (X5) = FIRST TABLE ENTRY.
- * (X0) = SEARCH MASK.
- * (X2) = ENTRY TO SEARCH FOR.
- *
- * EXIT (X5) = ENTRY, IF FOUND.
- * = 0, IF NOT FOUND.
- *
- * USES X - 5, 6, 7.
- * A - 5.
- STB SUBR ENTRY/EXIT
- STB1 ZR X5,STBX IF END OF TABLE
- BX6 X0*X5
- BX7 X6-X2
- ZR X7,STBX IF ENTRY FOUND
- SA5 A5+B1 GET NEXT ENTRY
- EQ STB1 LOOP
- CDM SPACE 4,15
- ** CDM - CHECK DOWN MACHINES.
- *
- * ENTRY (X6) = WORD TO MERGE MACHINE ID IN.
- * (X5) = MACHINE MASK TO CHECK.
- * (A1) = *TMID* ENTRY CORRESPONDING TO CURRENT BIT.
- *
- * EXIT (X6) = 5R ID* MERGED IN WORD.
- * (X5) = MACHINE MASK, CURRENT BIT SHIFTED TO BIT 59.
- * (A1) = *TMID* ENTRY CORRESPONDING TO CURRENT BIT.
- *
- * USES X - 1, 4, 5, 6, 7.
- * A - 1.
- CDM2 BX6 X6+X7
- SX7 1R
- BX6 X6+X7
- CDM SUBR ENTRY/EXIT
- SX7 2R
- LX7 18
- BX6 X6+X7
- LX7 -12
- MX4 12
- ZR X5,CDM2 IF END OF MACHINES SHARING DEVICE
- CDM1 LX5 -1
- SA1 A1+B1
- PL X5,CDM1 IF MACHINE NOT FOUND
- SX5 X5 CLEAR BIT
- BX7 X4*X1 GET MID
- LX7 18
- SX1 X1-/MMF/MFDN
- NZ X1,CDM2 IF MACHINE NOT DOWN
- BX6 X6+X7
- SX7 1R*
- BX6 X6+X7
- EQ CDMX RETURN
- TITLE SUBROUTINES.
- DWN SPACE 4,15
- ** DWN - DETERMINE IF MACHINE IS DOWN.
- *
- * ENTRY (X0) = MID OF MACHINE TO TEST. (LEFT JUSTIFIED)
- *
- * EXIT (B6) = 0, IF MACHINE UP.
- * (B6) .LT. 0 , IF MACHINE DOWN.
- * (B6) .GT. 0 , IF MACHINE NOT FOUND.
- * (X0) = UNCHANGED.
- * (X1) = MMFL WORD FOR DOWNED MACHINE.
- *
- * USES X - 1, 3.
- * A - 1, 3.
- * B - 6.
- DWN2 MX3 24
- SB6 X1-/MMF/MFAC (B6) = 0, IF MACHINE IS ACTIVE
- BX1 X3*X1
- SX3 A1-TMID-TMIDI
- PL X3,DWN3 IF IN ISHARE TABLE
- SX3 A1-TMID+1
- BX1 X1+X3
- DWN3 ZR B6,DWNX IF MACHINE ACTIVE
- SB6 -B1 SET MACHINE DOWN
- DWN SUBR ENTRY/EXIT
- SA1 TMID-1 INITIALIZE *TMID* SEARCH
- SB6 TMIDL+1
- DWN1 SA1 A1+1 GET NEXT ENTRY
- SB6 B6-B1
- MX3 12
- BX3 X3*X1
- BX3 X3-X0
- ZR X3,DWN2 IF THIS ENTRY MATCHES
- GT B6,B1,DWN1 IF NOT END OF TABLE
- * SB6 1 SET NOT FOUND FLAG
- EQ DWNX RETURN
- IBF SPACE 4
- * IBF - INITIALIZE BUFFERS.
- *
- * EXIT TEMPORARY STORAGE LOCATIONS ZEROED OUT.
- * EST READ INTO LOCAL BUFFER.
- *
- * USES X - 1, 2, 3, 4, 6, 7.
- * A - 1, 2, 3, 4, 6, 7.
- * B - 2, 3.
- *
- * CALLS IFN, RSB=.
- *
- * MACROS SYSTEM.
- IBF SUBR ENTRY/EXIT
- SA1 MMFP
- LX1 59-47
- PL X1,IBF0 IF NO INDEPENDENT SHARED DEVICES
- SA1 UMTW UPDATE MST ENRIES IN CM
- RJ IFN
- IBF0 SX6 B0+ CLEAR STORAGE LOCATIONS
- SB2 CLER
- SB3 CLERL
- SA3 RESP
- IBF1 SA6 B2
- SB2 B2+B1
- NE B2,B3,IBF1 IF MORE STORAGE TO CLEAR
- SX6 B0+ RESET TO PAGE ONE OF THE DISPLAY
- SA6 FNDV
- SB2 COM CLEAR COMMON STORAGE
- SB3 COM+COML
- IBF2 SA6 B2
- SB2 B2+B1
- NE B2,B3,IBF2 IF MORE STORAGE TO CLEAR
- MX7 1 READ EST POINTER
- BX6 X3
- SA6 LCSW
- SA7 ESTF SET LOW CORE READ
- SYSTEM RSB,R,LCSW
- SA2 ESTF SET *COMCRSB* ENTRY CONDITIONS
- MX3 -12
- SX1 ESTB (X1) = ADDRESS TO TRANSFER TO
- AX2 12
- BX3 -X3*X2
- AX2 24 (X2) = ADDRESS TO TRANSFER FROM
- R= X6,ESTE
- IX3 X3*X6 (X3) = WORD COUNT
- SX4 B0 (X4) = SUBSYSTEM (= *CMR*)
- MX6 1
- SA6 X1
- RJ RSB= READ EST
- SA2 NORP SET NORMAL PROCESSING VALID ENTRIES
- BX6 X2
- SA6 CVEM
- EQ IBFX RETURN
- IFN SPACE 4
- ** IFN - ISSUE *1MR* FUNCTION AND CHECK FOR ERRORS.
- *
- * ENTRY (X1) = REQUEST WORD.
- *
- * EXIT TO *PPA* IF LINK DEVICE ERROR OR RESERVE ERROR.
- *
- * USES X - ALL.
- * A - 1, 2, 5, 6, 7.
- *
- * CALLS COD.
- *
- * MACROS MESSAGE, MWORDS, RECALL, SYSTEM.
- IFN SUBR ENTRY/EXIT
- SX7 B0 CLEAR ERROR RETURN WORD
- SA7 ERRW
- BX6 X1 SAVE REQUEST WORD
- SA6 REQW
- IFN1 SYSTEM SPC,R,REQW
- SA1 REQW
- NZ X1,IFN1 IF NO PP AVAILABLE
- IFN2 RECALL
- SA1 RCLW
- ZR X1,IFN2 IF *1MR* NOT COMPLETE
- SX6 B0+ CLEAR RECALL STATUS WORD
- SA6 RCLW
- * CHECK FOR ERROR RETURN.
- SA5 ERRW
- ZR X5,IFNX IF NO ERRORS
- MX4 -12
- BX6 -X4*X5
- SX2 X6-/MRT/URS
- PL X2,IFN5 IF RESERVE ERROR
- SX2 IFNA ASSUME READ ERROR
- SX3 X6-/MRT/RER
- ZR X3,IFN3 IF READ ERROR
- SX2 IFNB SET WRITE ERROR
- IFN3 MESSAGE X2,,R
- MWORDS X2,MSDS+1
- BX6 X6-X6 SET TO REQUEST K-DISPLAY
- SA6 NPAR
- SA2 ERRP SET ERROR PROCESSING VALID ENTRY MASK
- IFN4 BX6 X2
- SA6 CVEM
- EQ PPA REQUEST INFORMATION FROM K-DISPLAY.
- IFN5 SX0 IFNC ASSUME UNIT RESERVED
- SX3 X6-/MRT/URS
- ZR X3,IFN6 IF UNIT RESERVED
- SX0 IFND SET CONTROLLER RESERVED
- IFN6 AX5 12 CONVERT EST ORDINAL
- BX1 -X4*X5
- RJ COD
- LX6 24 SET EST ORDINAL IN MESSAGE
- SA1 X0
- MX4 -18
- LX4 24
- BX3 X4*X1 CLEAR OLD ORDINAL
- BX6 -X4*X6
- BX6 X6+X3 MERGE NEW ORDINAL IN MESSAGE
- SA6 A1
- AX5 24 CONVERT UNIT/CHANNEL TO DISPLAY CODE
- MX4 -12
- BX1 -X4*X5
- RJ COD
- MX4 -12
- BX6 -X4*X6 UNIT/CHANNEL NUMBER
- LX6 48 SET UNIT/CHANNEL NUMBER IN MESSAGE
- SA1 X0+B1
- LX4 48
- BX3 X4*X1 CLEAR OLD CHANNEL/UNIT NUMBER
- BX6 -X4*X6
- BX6 X6+X3 MERGE NEW CHANNEL/UNIT NUMBER IN MESSAGE
- SA6 A1
- MWORDS X0,MSDS+1,4 WRITE MESSAGE TO K-DISPLAY
- SA2 RSVP SET RESERVE PROCESSING VALID ENTRY MASK
- EQ IFN4
- IFNA DATA 30H LINK DEVICE READ ERROR.
- BSSZ 1
- IFNB DATA 30H LINK DEVICE WRITE ERROR.
- BSSZ 1
- IFNC DATA 40H EQ000, UN00, UNIT RESERVED.
- IFND DATA 40H EQ000, CH00, CONTROLLER RESERVED.
- MRD SPACE 4,10
- ** MRD - PROCESS RESERVES, BAT-S, DAT-S, FAT-S, AND MRT-S.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 5, 6.
- * B - 2, 3, 4, 5.
- *
- * CALLS IFN, STB.
- MRD SUBR ENTRY/EXIT
- SA2 SORT
- NZ X2,MRD6 IF TABLE ALREADY SORTED
- * EDIT TABLE OF DEVICES TO RECOVER, DELETING ENTRIES NOT
- * SHARED BETWEEN DOWNED MACHINE AND THIS MACHINE.
- SB2 B0
- MX4 -12
- SA3 MIDP MID OF MACHINE TO PROCESS
- SB5 B0
- SX6 B1 SET TABLE SORTED
- SA6 SORT
- MRD1 SA2 TRDV+B2
- ZR X2,MRD5 IF END OF TABLE
- MX0 24 SET TO SEARCH TABLE OF SHARED DEVICES
- LX0 24
- SA5 TSDV
- SB4 B0
- RJ STB SEARCH TABLE
- ZR X5,MRD4 IF DEVICE NOT SHARED BY THIS MACHINE
- LX5 59-12
- NG X5,MRD3 IF ISHARE DEVICE
- LX5 12+12-59
- SA1 MASK CHECK IF DOWNED MACHINE IS SHARING DEVICE
- SB4 X1
- MX1 1
- LX1 B4
- BX7 X5*X1
- ZR X7,MRD4 IF DEVICE NOT SHARED WITH DOWNED MACHINE
- MRD3 SX6 X2 RESTORE GOOD ENTRY
- SA6 TRDV+B5
- SB5 B5+B1
- MRD4 SB2 B2+B1 PROCESS NEXT TABLE ENTRY
- EQ MRD1
- MRD5 BX6 X6-X6 TERMINATE TABLE
- SA6 TRDV+B5
- MRD6 SA1 PRBW SET FUNCTION *PRB*
- RJ IFN
- SA1 PMTW SET FUNCTION *PMT*
- RJ IFN
- SA2 NORP SET NORMAL PROCESSING VALID OPTIONS
- BX6 X2
- SA6 CVEM
- EQ MRDX RETURN
- SSD SPACE 4,15
- ** SSD - SEARCH FOR SHARED DEVICES AND FORMAT MST
- * K-DISPLAY DATA.
- *
- * EXIT (NSDV) = NUMBER OF SHARED DEVICES.
- *
- * USES X - ALL.
- * A - ALL.
- * B - 2, 3, 4, 5, 6, 7.
- *
- * CALLS CDD, COD.
- *
- * MACROS SYSTEM.
- * (B5) = NUMBER OF SHARED DEVICES.
- SSD14 SA1 NKDP GET NUMBER OF *K* DISPLAY PAGES
- SX6 B5 SAVE NUMBER OF SHARED DEVICES
- SX1 X1
- SA6 NSDV
- RJ CDD CONVERT TO DECIMAL DISPLAY CODE
- SA1 PGDS INSERT IN HEADER
- LX4 12
- MX6 -12
- BX4 -X6*X4
- BX6 X6*X1
- BX6 X6+X4
- SA6 A1
- SSD SUBR ENTRY/EXIT
- SA3 ESTF
- MX4 -12
- AX3 12
- BX2 -X4*X3 LAST MASS STORAGE ORDINAL + 1
- SA0 TSMI INITIALIZE COUNTERS
- SX7 B1
- PX7 X7
- SA7 NKDP NUMBER OF *K* DISPLAY PAGES = 1
- SB5 B0 NUMBER OF SHARED DEVICES
- SB6 X2+
- SB7 NOPE
- * SEARCH FOR SHARED DEVICES.
- SSD1 EQ B6,B7,SSD14 IF END OF MASS STORAGE DEVICES
- R= X5,ESTE
- SX6 B7 CURRENT EST ORDINAL
- IX5 X6*X5
- BX7 X6
- SA5 ESTB+X5+EQDE READ EST ENTRY
- SB7 B7+B1 INCREMENT EST INDEX
- PL X5,SSD1 IF NOT MASS STORAGE DEVICE
- LX5 59-57
- PL X5,SSD1 IF NOT SHARED DEVICE
- * ENTER SHARED DEVICE INTO TABLE.
- SX1 X6
- LX5 59-52-59+57
- PL X5,SSD2 IF EXTENDED MEMORY MMF DEVICE
- SX0 B1 SET ISHARE DEVICE STATUS
- LX0 12
- BX7 X6+X0
- SX0 A0 SET POINTER TO *TSMI* IN *TSDV* ENTRY
- LX0 24
- BX6 X7+X0
- SSD2 SA6 TSDV+B5
- SA7 TRDV+B5
- * READ MST FOR SHARED DEVICE.
- LX5 52-59
- MX6 -12 READ MST FOR DEVICE
- BX3 -X6*X5
- SA1 RMST
- SA6 MSTB SET LOW CORE READ
- SA6 SCRB
- LX3 18+3 MST ADDRESS
- BX6 X3+X1
- SA6 LCSW
- SYSTEM RSB,R,LCSW
- * FORMAT UNIT NUMBER, DEVICE TYPE, AND NUMBER OF UNITS.
- SA2 MSTB+DDLL GET UNIT COUNT AND LIST
- SA1 A5
- AX5 12 OBTAIN DEVICE TYPE
- MX4 -11
- BX0 -X4*X5 DEVICE TYPE
- AX5 12 SET UNIT NUMBER
- MX4 -3
- LX1 59-55
- LX0 48
- PL X1,SSD3 IF NOT *LDAM* DEVICE
- BX5 X2
- MX4 -6 SET FOR MAXIMUM OF 6 BIT UNIT NUMBER
- SSD3 BX1 -X4*X5
- LX2 12 POSITION UNIT COUNT
- BX5 X2
- RJ COD CONVERT UNIT NUMBER TO DISPLAY
- MX4 -12 MERGE UNIT NUMBER WITH DEVICE TYPE
- BX3 -X4*X6
- LX3 6
- BX0 X0+X3
- MX4 -3 SET NUMBER OF UNITS
- BX3 -X4*X5
- ZR X3,SSD4 IF ONLY 1 UNIT
- SX1 X3+B1
- RJ CDD CONVERT NUMBER OF UNITS
- MX4 -6
- BX2 -X4*X6
- SX1 1R-
- LX1 6
- BX3 X1+X2
- LX3 36
- BX0 X0+X3
- SSD4 BX6 X0 SAVE DEVICE TYPE AND UNIT NUMBER
- SA6 TSEQ+B5
- * FORMAT DEVICE NUMBER AND FAMILY NAME.
- MX0 -6
- SA2 MSTB+PFGL OBTAIN DEVICE NUMBER AND FAMILY NAME
- AX2 12
- BX1 -X0*X2
- AX2 6
- MX3 -42
- BX0 -X3*X2 FAMILY NAME
- BX6 X6-X6 INITIALIZE DEVICE NUMBER AND FAMILY NAME
- ZR X0,SSD5 IF NO DEVICE PRESENT
- RJ COD CONVERT DEVICE NUMBER TO DISPLAY
- MX3 12
- LX6 48
- BX6 X3*X6
- BX6 X6+X0
- SSD5 SA6 TSFM+B5 STORE DEVICE NUMBER AND FAMILY NAME
- SB5 B5+B1 INCREMENT NUMBER OF SHARED DEVICES
- * PUT MID-S ACCESSING DEVICE IN *TSMI*.
- SA4 A5 READ EST ENTRY
- SB3 B1
- LX4 59-52
- PL X4,SSD12 IF EXTENDED MEMORY MMF DEVICE
- LX4 59-54-59+52
- BX7 X7-X7
- NG X4,SSD11 IF DEVICE NOT AVAILABLE
- SA1 MSTB+TRLL READ FWA OF TRT
- MX0 -18
- BX1 -X0*X1
- SA3 MSTB+TDGL READ TRT LENGTH
- AX3 24
- MX0 -12
- BX2 -X0*X3 TRT LENGTH
- IX1 X1+X2 BEGINNING OF MRT
- SX2 X2+7
- AX2 3 MRT LENGTH
- IX1 X1+X2 ADDRESS OF DIT
- SA3 RDIT SET DIT ADDRESS IN *RSB* CONTROL WORD
- LX1 18
- BX6 X1+X3
- SA6 LCSW
- SYSTEM RSB,R,LCSW READ DIT
- SA5 MMFP MAINFRAME ID
- SB4 MMPF-1 MAXIMUM SHARED MAINFRAMES
- SB2 48
- BX7 X7-X7
- SB3 B0 NUMBER OF MIDS FOR THIS MAINFRAME
- LX5 12
- BX5 -X0*X5 MID OF THIS MAINFRAME
- SSD6 SA3 B4+SCRB
- ZR X3,SSD10 IF NO ENTRY
- BX3 -X0*X3 MID ACCESSING DEVICE
- BX4 X3-X5 COMPARE MID
- BX6 X3
- SA2 TMID+TMIDI-1
- SSD7 SA2 A2+B1 SET TABLE OF MACHINE ID-S
- ZR X2,SSD8 IF END OF KNOWN MID-S
- LX2 12
- BX2 X2-X3 COMPARE ENTRY
- BX2 -X0*X2
- NZ X2,SSD7 IF NO MATCH
- EQ SSD9 MID ALREADY IN TABLE
- SSD8 LX6 48
- ZR X4,SSD10 IF THIS MF
- SX2 B1 SET MF RUNNING ISHARE MODE
- LX2 47
- BX6 X6+X2
- SA6 A2+ SET MID IN TABLE
- SSD9 LX3 B2,X3
- BX7 X7+X3 ADD MID TO LIST WORD
- SB2 B2-12
- SB3 B3+B1
- PL B2,SSD10 IF THIS MID LIST WORD IS NOT FULL
- SA7 A0
- SA0 A0+B1
- SB2 48
- BX7 X7-X7
- SSD10 SB4 B4-1 DECREMENT MF ORDINAL
- PL B4,SSD6 IF MORE MACHINES TO CHECK
- SSD11 NZ X7,SSD12 IF LIST WORD IS NOT EMPTY
- SX7 B1+
- SSD12 SA7 A0
- SA0 A0+B1
- SA5 NKDP INCREMENT THE NUMBER OF LINES USED
- SX6 1S18/6+1 DIVIDE NUMBER OF MIDS - 1 BY 6
- SX7 B3-B1
- IX7 X7*X6
- AX7 18
- SX7 X7+B1 INSURE AT LEAST ONE LINE
- UX6,B3 X5
- SB3 B3+X7
- SX5 B3-PAGLN-1
- NG X5,SSD13 IF THIS DEVICE WILL NOT REQUIRE A NEW PAGE
- SX6 X6+1 INCREMENT THE NUMBER OF PAGES USED
- SB3 X7+ SET THE NUMBER OF LINES USED ON NEW PAGE
- SSD13 PX7 X6,B3
- SA7 A5
- EQ SSD1 LOOP FOR NEXT EQUIPMENT
- MWD SPACE 4,10
- ** MWD - MOVE N WORDS.
- *
- * ENTRY (B2) = ADDRESS TO GET DATA FROM.
- * (B3) = ADDRESS TO MOVE DATA TO.
- * (B4) = NUMBER OF WORDS TO MOVE.
- *
- * USES X - 1, 6.
- * A - 1, 6.
- * B - 2, 3, 5.
- MWD1 SA1 B2
- BX6 X1
- SA6 B3
- SB5 B5+B1 INCREMENT COUNTERS
- SB2 B2+B1
- SB3 B3+B1
- NE B4,B5,MWD1 IF MORE WORDS TO MOVE
- MWD SUBR ENTRY/EXIT
- SB5 B0 INITIALIZE COUNTER
- EQ MWD1
- COMMON SPACE 4,10
- ** COMMON DECKS.
- *CALL COMCCDD
- *CALL COMCCOD
- *CALL COMCCPM
- *CALL COMCDCP
- *CALL COMCDXB
- *CALL COMCRSB
- *CALL COMCSYS
- *CALL COMCUPC
- TITLE K-DISPLAY CONTROL.
- DSD SPACE 4,15
- ** DSD - DISPLAY MACHINES SHARING DEVICE.
- *
- * ENTRY (DBFA) = 30/ BUFFER A,30/ BUFFER B.
- * (FNDV) = 12/PAGE NUMBER,24/ INDEX OF FIRST DEVICE,24/.
- *
- * EXIT K-DISPLAY COMPLETED.
- * (DBFA) IS TOGGLED.
- * (FNDV) = 36/ UNCHANGED, 24/ FIRST INDEX FOR NEXT PAGE.
- *
- * USES X - ALL.
- * A - 0, 1, 2, 5, 6, 7.
- * B - 5, 6, 7.
- *
- * CALLS CDD, CDM, COD, DWN, PGD.
- DSD11 SA1 B5 CLEAR EST ORDINAL FROM NEXT UNUSED LINE
- MX4 24
- BX6 X4*X1
- SA6 B5
- SA1 FNDV SET NEXT DEVICE INDEX
- SA2 DBFA TOGGLE BUFFER ADDRESSES
- SX6 HDDS TERMINATE THE BUFFER
- MX4 12
- BX6 X4+X6
- SA6 B5+B1
- MX0 36
- BX6 X0*X1
- BX6 X6+X5
- SA6 A1
- BX6 X2
- LX6 30
- SA6 A2
- SX1 KDCW TOGGLE TO NEW BUFFER
- SX2 KPAG
- SX3 1R+
- LX3 -6
- BX4 X4-X4
- RJ PGD PAGE DISPLAY
- DSD SUBR ENTRY/EXIT
- SA5 DBFA CLEAR DISPLAY BUFFER
- SB7 X5+LLEN*PAGLN
- SB6 X5+
- DSD1 MWORDS BLKW,B6+B1,LLEN-1
- SB6 B6+LLEN
- LT B6,B7,DSD1 IF MORE LINES TO CLEAR
- SA1 FNDV SET FIRST DEVICE INDEX
- AX1 24
- SA0 X1
- AX1 24 GET CURRENT PAGE NUMBER
- SX1 X1+B1
- RJ CDD CONVERT TO DECIMAL DISPLAY CODE
- SA5 DBFA SET BUFFER FWA
- BX7 X4
- SB5 X5
- SB7 B5+PAGLN*LLEN
- SA7 B5-1
- ERRNZ SDD1-1-PGN1 CODE DEPENDS ON VALUE
- ERRNZ SDD2-1-PGN2 CODE DEPENDS ON VALUE
- DSD2 SA5 TSDV+A0 GET NEXT SHARED DEVICE
- ZR X5,DSD11 IF NO MORE DEVICES
- MX4 -12 GET EST ORDINAL
- BX1 -X4*X5
- RJ COD CONVERT EST ORDINAL TO DISPLAY CODE
- LX6 18 STORE EST ORDINAL IN K-DISPLAY
- SA1 B5
- MX4 24
- BX3 X4*X1
- SA1 TSEQ+A0 GET DEVICE TYPE AND UNIT NUMBER
- BX6 -X4*X6
- BX6 X6+X3
- SA6 B5
- BX6 X1
- SA1 TSFM+A0 GET DEVICE NUMBER AND PACK NAME
- SA6 A6+B1
- SX7 2R
- MX2 12
- MX3 -24
- BX2 X2*X1 GET DEVICE NUMBER
- BX3 -X3*X1 GET LOWER 4 CHARACTERS OF PACK NAME
- BX1 X1-X2 GET UPPER 3 CHARACTERS OF PACK NAME
- AX1 24
- BX6 X7+X2
- LX6 48
- BX6 X6+X1
- SA6 A6+B1
- SX1 B1 BLANK FILL PACK NAME
- LX7 48
- IX1 X3-X1 UPPER BITS = 1 IF FILLING NECESSARY
- LX3 36
- BX7 X1*X7
- BX3 -X1*X3
- BX7 X7+X3
- SX2 6000B+10B*35 SET COORDINATE OF FIRST MID
- BX7 X7+X2
- SA7 A6+B1
- BX0 X5
- LX0 59-12
- SB5 B5+LLEN SET BEGINING OF NEXT LINE
- NG X0,DSD3 IF ISHARE DEVICE
- SA1 TMID-1 INITIALIZE MACHINE INDEX
- AX5 48
- BX6 X6-X6 PROCESS FIRST TWO SHARED MACHINES
- RJ CDM
- LX6 30
- RJ CDM
- SA6 A7+B1
- BX6 X6-X6 PROCESS SECOND TWO SHARED MACHINES
- RJ CDM
- LX6 30
- RJ CDM
- SA6 A6+B1
- BX6 X6-X6 PROCESS LAST TWO SHARED MACHINES
- RJ CDM
- LX6 30
- RJ CDM
- SA6 A6+B1
- ERRNG 7-MXMF CODE CAN HANDLE UP TO 7 MAINFRAMES
- EQ DSD9 ADVANCE TO NEXT DEVICE
- DSD3 LX0 -24+12-59+60
- SA5 X0 SET MID LIST ADDRESS
- BX7 X7-X7 CLEAR MID ACCUMULATOR
- MX4 12
- DSD4 NZ X5,DSD5 IF MID LIST WORD IS NOT EXHAUSTED
- SA1 TSDV+A0
- AX1 24 GET FWA OF LIST
- SB6 X1+SMLX-1
- SB6 A5-B6
- PL B6,DSD7 IF BEYOND MAXIMUM NUMBER OF MIDS
- SA5 A5+1 GET NEXT LIST WORD
- DSD5 BX0 X4*X5 GET NEXT MID
- BX6 X7 SAVE THE CURRENT STATE OF THE ACCUMULATOR
- ZR X0,DSD7 IF END OF MID LIST
- SX2 1R* CHECK IF MACHINE DOWN
- RJ DWN
- LX1 59-47 CHECK FOR ISHARE DEVICE
- LX0 18
- NG X1,DSD6 IF ISHARE DEVICE
- ZR B6,DSD6 IF MACHINE NOT DOWN
- BX0 X2+X0
- DSD6 LX0 42 POSITION MID
- BX5 X4+X5
- LX7 30
- LX5 12
- BX7 X7+X0 MERGE MIDS
- ZR X6,DSD4 IF THIS IS FIRST MID IN THE ACCUMULATOR
- LX7 30 REORDER THE MIDS
- DSD7 ZR X7,DSD9 IF THE ACCUMULATOR IS EMPTY
- SB6 A7+1
- GE B6,B5,DSD8 IF A NEW LINE IS NECESSARY
- SA7 A7+B1
- BX7 X7-X7
- EQ DSD4 GET NEXT MID
- DSD8 SA1 B5 GET FIRST WORD OF NEXT LINE
- SX2 2R
- MX0 24
- LX2 -12
- BX6 X0*X1
- SX0 6000B+10B*35
- SA6 A1 CLEAR EST ORDINAL AREA
- BX6 X0+X2
- SA6 A6+3 CLEAR PACK NAME AREA
- SA7 A6+B1 STORE MID(S)
- BX7 X7-X7
- SB5 B5+LLEN
- EQ DSD4 GET NEXT MID
- DSD9 SA0 A0+B1 INCREMENT DEVICE INDEX
- LT B5,B7,DSD2 IF NOT END OF PAGE
- SX5 A0
- EQ B5,B7,DSD11 IF THE PAGE DID NOT OVERFLOW
- SX5 A0-1 IGNORE LAST ENTRY
- DSD10 SB5 B5-LLEN
- SA1 B5
- SX1 X1
- ZR X1,DSD10 IF NOT THE BEGINNING OF A LINE
- EQ DSD11 EXIT
- PAG SPACE 4,15
- ** PAG - PAGE LEFT DISPLAY.
- *
- * ENTRY (B7) = FORWARD/BACKWARD FLAG.
- * = 0 = PAGE FORWARD.
- * = 1 = PAGE BACKWARD.
- * (FNDV) = CURRENT PAGE AND NEXT PAGE FIRST DEVICE.
- *
- * EXIT (FNDV) IS UPDATED TO REFLECT PAGE COMMAND.
- *
- * USES X - 4, 6.
- * A - 4, 6.
- *
- * CALLS DSD.
- PAG SUBR ENTRY/EXIT
- SA4 FNDV
- SX6 B7-1
- ZR X6,PAG1 IF PAGING BACKWARD
- SX6 X4 GET NEXT INDEX
- AX4 48 GET CURRENT PAGE NUMBER
- ZR X6,PAG1 IF NO MORE DEVICES
- SX4 X4+1 INCREMENT THE PAGE NUMBER
- LX4 24
- BX6 X6+X4
- LX6 24
- PAG1 SA6 A4
- RJ DSD DISPLAY SHARED DEVICES
- EQ PAGX RETURN
- PGD HERE ASSEMBLE PAGING SUBROUTINE HERE
- KPAG PAGT LPG1 PAGING TABLE
- PAGT LPG2
- PAGT
- PAGT RPG1
- PAGT RPG2
- PAGT *
- PKE SPACE 4,20
- ** PKE - PROCESS KEYBOARD ENTRY.
- *
- * ENTRY (NPAR) = NUMBER OF PARAMETERS ON COMMAND.
- *
- * EXIT (B6) = NUMBER OF PARAMETERS.
- * (NPAR) = 0.
- * COMMAND OR KEYBOARD ENTRY UNPACKED AND
- * IN PARAMETER BUFFER.
- *
- * USES X - ALL.
- * A - 2, 5, 6, 7.
- * B - 3, 6, 7.
- *
- * CALLS PAG, PGD, UPC.
- *
- * MACROS CONSOLE, MWORDS, RECALL.
- PKE6 MWORDS ARGR,PARM,62B MOVE PARAMETERS TO *PARM*
- BX6 X6-X6
- SB6 X2 NUMBER OF PARAMETERS
- SA6 NPAR SET TO REQUEST K-DISPLAY ON ERROR
- SX6 B1+ SET AUTOMATIC *GO*, *STOP*
- SA6 AUTO
- PKE SUBR ENTRY/EXIT
- SX6 B0+ CLEAR PARAMETER AREA
- SB3 PARML-1
- PKE1 SA6 PARM+B3
- SB3 B3-1
- GE B3,PKE1 IF MORE WORDS TO CLEAR
- SA6 I CLEAR INPUT BUFFER
- * CHECK FOR INPUT IF NO PARAMETERS ON COMMAND.
- SA2 NPAR
- NZ X2,PKE6 IF PARAMETERS ON COMMAND
- BX6 X2 DISABLE AUTOMATIC *GO*, *STOP*
- SA6 AUTO
- PKE2 SX7 B0+ CLEAR THE INPUT BUFFER
- SA7 I
- CONSOLE KDCW
- PKE3 RECALL
- SA2 I
- ZR X2,PKE3 IF INPUT NOT READY
- MWORDS I,KBDS+1,5 MOVE INPUT TO DISPLAY LINE
- MWORDS BLKW,MSDS+1,4 CLEAR MESSAGE LINE
- * CHECK FOR PAGING COMMAND.
- MX0 6
- BX3 X0*X2
- LX3 6
- SB7 X3-1R+
- NG B7,PKE5 IF NOT A PAGING COMMAND
- GT B7,B1,PKE4 IF NOT A LEFT SCREEN COMMAND
- RJ PAG PAGE THE LEFT SCREEN DISPLAY
- EQ PKE2 GET THE NEXT COMMAND
- PKE4 SX1 KDCW
- SX2 KPAG
- LX3 -6
- BX4 X4-X4
- RJ PGD PAGE DISPLAY
- ZR X4,PKE2 IF THE COMMAND WAS A PAGING COMMAND
- * UNPACK COMMAND.
- PKE5 SA5 CCARD
- SB7 PARM-1
- RJ UPC UNPACK COMMAND
- ZR B6,PKEX IF NO ARGUMENTS
- SB6 B6-B1 SKIP FIRST ARGUMENT
- EQ PKEX RETURN
- CCARD DIS 1,MREC, COMMAND IMAGE
- I BSSZ 8 INPUT BUFFER
- KDCW VFD 24/I,18/RPG1,18/LPG1 K-DISPLAY CONTROL WORD
- BLKW DATA 58L
- EJECT
- ** K-DISPLAY ERROR MESSAGES.
- ERR1 DIS 3,INCORRECT ENTRY.
- ERR2 DIS 3,INCORRECT FORMAT FOR MID.
- ERR3 DIS 3,INCORRECT FORMAT FOR EQ ENTRY.
- ERR4 DIS 3,MID SPECIFIED NOT DOWN.
- ERR5 DIS 3,MID SPECIFIED NOT FOUND.
- ERR7 DIS 3,MID NOT SPECIFIED.
- ERR8 DIS 3,INCORRECT OPTION.
- ERR9 DIS 3,INCORRECT EQUIPMENT.
- SPACE 4
- ** K-DISPLAY INFORMATIVE MESSAGE. MESSAGE ALSO GOES
- * TO THE DAYFILE.
- MES1 DIS 3, PROCESSING COMPLETE.
- BSSZ 1
- SPACE 4
- ** PARAMETER AREA.
- BSS 1 COMMAND NAME (FOR *UPC*)
- PARM BSS PARML
- EJECT
- ** COMMON LEFT SCREEN LINES FOR K-DISPLAY.
- HDDS KDL 1,M,(..) DETERMINE MESSAGE LINE
- M EQU K-1
- ORG HDDS
- HDDS KDL 1,T,(MACHINE RECOVERY UTILITY)
- PGDS KDL 59,T,( OF 99)
- KDL 2,,(EQ TYPE UN DN FM/PN)
- KDL 40,K,(MIDS SHARING DEVICE)
- KDL 1,K,(--- ---- -- -- ------- -----------------
- ,--------------)
- IDDS KDL 1,M-3,(ID OF DOWNED MACHINE = )
- KDL 1,M-2,(EQ(S) TO RECOVER =)
- EQDS KDL 20,M-2,(ALL "40BLANKS")
- EQDS1 KDL 1,M-1,("60BLANKS")
- MSDS KDL 1,M,("40BLANKS")
- KBDS KDL 1,I,("50BLANKS")
- CON 0 END OF BUFFER
- DFEQ KDL 20,M-2,(ALL)
- SPACE 4
- ** GENERATE EQUIPMENT DISPLAY BUFFERS FOR K-DISPLAY.
- LPG1 VFD 12/0,36/0,12/0 K-DISPLAY CONTROL WORD
- KDL 52,T,( PAGE XX)
- PGN1 EQU *-1
- K SET K+2
- SDD1 BSS 0
- .A DUP PAGLN+2
- KDL 1,K,("60BLANKS")
- .A ENDD
- KDL 1,K,() LAST LINE
- VFD 12/7777B,48/HDDS
- LPG2 VFD 12/0,36/0,12/0 K-DISPLAY CONTROL WORD
- KDL 52,T,( PAGE XX)
- PGN2 EQU *-1
- K SET K+2
- SDD2 BSS 0
- .A DUP PAGLN+2
- KDL 1,K,("60BLANKS")
- .A ENDD
- KDL 1,K,() LAST LINE
- VFD 12/7777B,48/HDDS
- EJECT
- ** RIGHT SCREEN FOR K-DISPLAY.
- RPG1 VFD 12/0,36/0,12/0 K-DISPLAY CONTROL WORD
- KDL 1,T,(MREC)
- KDL 54,T,(PAGE 1 OF 2)
- KDL 2,H,(PARAMETER DESCRIPTIONS)
- KDL 2,K,(ID MID OF DOWNED MACHINE TO PROCESS.)
- KDL 2,K,(EQ EST ORDINALS OF DEVICES SHARED BETWEEN THIS
- , MACHINE)
- KDL 9,K,(AND DOWNED MACHINE TO PROCESS. ENTER AS)
- KDL 9,K,(EQ=XXX,XXX,...,XXX. THE DEFAULT IS EQ=ALL.)
- KDL 2,K,(OP MAY BE ENTERED IF 844 RESERVE SITUATIONS OC
- ,CUR.)
- KDL 9,K,(THE RESPONSE APPLIES ONLY TO THE CURRENT SITUATION
- ,.)
- KDL 13,K,(OP=I IGNORE CURRENT DEVICE.)
- KDL 13,H,(OP=R CLEAR ALL UNIT RESERVES ON THAT CONTROLLE
- ,R.)
- KDL 2,H,(K DISPLAY COMMANDS)
- KDL 2,K,(GO INITIATE PROCESSING OF DEVICES SPECIFIED.)
- KDL 2,K,(RERUN REINITIALIZE K-DISPLAY AND RERUN PROGRAM.)
- KDL 2,K,(STOP TERMINATE PROGRAM.)
- KDL 2,K,(+ PAGE LEFT DISPLAY FORWARD.)
- KDL 2,K,(- PAGE LEFT DISPLAY BACKWARD.)
- CHAR 1R[,1R( REPLACE *[* WITH *(*
- CHAR 1R],1R) REPLACE *]* WITH *)*
- CODE OTHER
- KDL 2,K,([ PAGE RIGHT DISPLAY FORWARD.)
- KDL 2,K,(] PAGE RIGHT DISPLAY BACKWARD.)
- CODE *
- CON 0 END OF BUFFER
- EJECT
- ** PAGE TWO OF RIGHT SCREEN.
- RPG2 VFD 12/0,36/0,12/0 K-DISPLAY CONTROL WORD
- KDL 1,T,(MREC)
- KDL 54,T,(PAGE 2 OF 2)
- KDL 1,H,(DESCRIPTION OF TABLE ENTRIES.)
- KDL 1,,(EQ)
- KDL 24,K,(EST ORDINAL OF EQUIPMENT.)
- KDL 1,,(UN)
- KDL 24,K,(UNIT NUMBER.)
- KDL 1,,(DN)
- KDL 24,K,(DEVICE NUMBER.)
- KDL 1,,(FM/PN)
- KDL 24,K,(FAMILY OR PACK NAME.)
- KDL 1,,(MIDS SHARING DEVICE)
- KDL 24,K,(MACHINE ID-S OF OTHER MACHINES)
- KDL 24,K,(CURRENTLY SHARING THE DEVICE.)
- KDL 1,,(* (BESIDE MID))
- KDL 24,K,(THE MACHINE IS DOWN. IT CANNOT BE)
- KDL 24,K,(DETERMINED IF MACHINES RUNNING IN)
- KDL 24,K,(SHARED RMS MODE ARE DOWN.)
- CON 0 END OF BUFFER
- EJECT
- USE BUFFERS
- ** BUFFERS.
- ESTB EQU * EST BUFFER
- MSTB EQU ESTB+ESMX*ESTE MST BUFFER
- SCRB EQU MSTB+MSTBL SCRATCH BUFFER
- RFL= EQU SCRB+ESMX+1
- TITLE PRESET.
- ** PRS - PRESET PROGRAM.
- *
- * EXIT (NPAR) = NUMBER OF PARAMETERS.
- * (MMFP) = *MMFL* WORD FOR THIS MACHINE.
- *
- * USES X - 1, 3, 4, 6, 7.
- * A - 1, 6, 7.
- * B - 1.
- *
- * CALLS PRK.
- *
- * MACROS EREXIT, MESSAGE, SYSTEM.
- PRS SUBR ENTRY/EXIT
- SB1 1 INITIALIZE B1
- EREXIT ABT SET ABORT PROCESSOR
- SA1 JOPR CHECK ORIGIN TYPE
- MX3 -12
- AX1 24
- BX6 -X3*X1
- SX4 X6-SYOT
- ZR X4,PRS1 IF SYSTEM ORIGIN
- MESSAGE PRSA * INCORRECT ORIGIN TYPE.*
- EQ ABT1
- PRS1 SA1 ACTR SET NUMBER OF PARAMETERS
- SX6 X1
- SA6 NPAR
- SA1 RMMF READ *MMFL* WORD FROM LOW CORE
- MX7 1
- BX6 X1
- SA6 LCSW
- SA7 MMFP SET LOW CORE READ
- SYSTEM RSB,R,LCSW
- SX3 PRSB
- RJ PRK PRESET *K* DISPLAY COORDINATES
- EQ PRSX RETURN
- PRSA DATA C* INCORRECT ORIGIN TYPE.*
- PRSB KDL * Y-COORDINATE TABLE
- PRK HERE ASSEMBLE Y-COORDINATE PRESET CODE HERE
- END
cdc/nos2.source/opl871/mrec.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator