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