IDENT SCRSIM,PW16,SCRSIM ABS SST SYSCOM B1 ENTRY SCRSIM ENTRY RFL= ENTRY SSJ= *COMMENT SCRSIM - SCR SIMULATOR. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TITLE SCRSIM - STATUS/CONTROL REGISTER SIMULATOR. SPACE 4 *** SCRSIM - STATUS/CONTROL REGISTER SIMULATOR. * A. J. BEEKMAN 74/06/13. SPACE 4 *** *SCRSIM* SIMULATES THE CYBER 170 STATUS/CONTROL REGISTERS * BY ALLOWING THE OPERATOR TO MANIPULATE THE BITS IN THE ACTUAL * S/C REGISTER(S) OF THE CYBER 170 OR THE INTERLOCK REGISTER * OF THE CYBER 70. * * *SCRSIM* DRIVES A *K* DISPLAY THAT ALLOWS THE OPERATOR TO * SET AND CLEAR BITS, SET BYTES, AND SET LINES AND AREAS IN * HOLDING REGISTERS. THIS ALLOWS THE OPERATOR TO SET UP BOTH * REGISTERS COMPLETELY. WHEN *GO.* IS ENTERED, THE ENTIRE * HOLDING REGISTER CONTENTS ARE TRANSFERRED INTO THE * STATUS/CONTROL REGISTERS OF THE CYBER 170, OR 128 BITS * ARE TRANSFERRED INTO THE INTERLOCK REGISTER OF THE CYBER 70. * THE PROGRAM IS CALLED FROM THE CONSOLE BY ENTERING X.SCRSIM. * * COMMANDS CAN BE ENTERED ON THE *K* DISPLAY BY ENTERING * K.COMND. WHERE COMND. IS ONE OF THE FOLLOWING- * * AREA,A,M,Y. * BYTE,XX,YYYY. * CLEAR,A,B,...,Z. * CYCLE,X,T,R. * END. * GO. * LINE,X,Y. * READ. * SET,A,B,...,Z. * STOP. * +. * * THE BITS SET THROUGH THE SIMULATOR ARE LOGGED IN THE ERROR * LOG IF AN ERROR BIT (BITS 0-39) IS SET. ERROR LOGGING * WILL NOT OCCUR ON A CYBER 70 IF NNNN OF THE IPRDECK ENTRY * DELAY,TCNNNN IS ZERO. THE SIMULATOR JOB DAYFILE LISTS ALL * COMMANDS ENTERED. * * BATCH INPUT. * * THE SIMULATOR MAY BE CALLED FROM BATCH INPUT BY THE * COMMAND *SCRSIM*. THE INPUT FILE MUST HAVE A RECORD * CONTAINING THE COMMANDS TO BE PROCESSED, ONE COMMAND PER * COMMAND. DEBUG MODE IS NECESSARY, AND THE USER MUST BE * VALIDATED FOR SYSTEM ORIGIN PRIVILEDGES. SPACE 4 *** DAYFILE MESSAGES. * * * END SIMULATOR.* - OPERATOR HAS ENTERED *STOP.* TO DROP THE * SIMULATOR. * * * NO SCR ON MAINFRAME.* - OPERATOR HAS BROUGHT UP * SCR SIMULATOR ON MAINFRAME THAT DOES NOT SUPPORT * STATUS/CONTROL REGISTER. SPACE 4 *** *K* DISPLAY MESSAGES. * * *CONVERSION ERROR.* - PRESENCE OF CHARACTER AFTER POSTRADIX * OR PRESENCE OF 8 OR 9 WITH POSTRADIX OF B. * * *CYCLE STILL PROCESSING.* - COMMAND OTHER THAN *END* * ENTERED BEFORE TOTAL TIME LIMIT IS REACHED. * * *INCORRECT BIT NUMBER.* - BIT NUMBER SPECIFIED NOT VALID. * * *INCORRECT BYTE NUMBER.* - BYTE NUMBER SPECIFIED NOT VALID. * * *INCORRECT CHARACTER.* - ALPHABETIC CHARACTER OTHER THAN B OR * OR D AS POSTRADIX ON DECIMAL VALUES, ALPHABETIC CHARACTER, * 8, OR 9 FOUND IN OCTAL VALUE ARGUMENT, OR CHARACTER WITH * DISPLAY CODE OF 60B OR ABOVE FOUND. * * *INCORRECT COMMAND.* - ENTERED COMMAND NOT LEGAL. * * *INCORRECT LINE NUMBER.* - LINE NUMBER SPECIFIED NOT LEGAL. * * *MAXIMUM NUMBER OF ARGUMENTS.* - FIRST 30 BIT NUMBERS ONLY * ACCEPTED ON SET OR CLEAR COMMANDS. * * *NO BITS SPECIFIED.* - NO BIT NUMBERS SPECIFIED ON SET OR * CLEAR BIT COMMANDS. * * *NOT ENOUGH ARGUMENTS.* - TERMINATOR FOUND BEFORE THE CORRECT * NUMBER OF ARGUMENTS ENTERED FOR THE COMMAND. * * *NUMBER OF BITS TOO LARGE.* - NUMBER OF BITS ON AREA COMMAND * LARGER THAN NUMBER OF BITS FROM STARTING BIT TO END OF * REGISTER. * * *NUMBER OF CYCLES TOO LARGE.* - NUMBER OF CYCLES ON CYCLE * COMMAND IS GREATER THAN 4095. * * *TIME LIMIT UP.* - TOTAL TIME LIMIT ON CYCLE COMMAND HAS * PASSED. INPUT CAN AGAIN BE ACCEPTED BY THE SIMULATOR. * * *TOO MANY BITS SPECIFIED.* - MORE BITS SPECIFIED THAN CAN * BE HELD IN AREA, LINE OR BYTE GIVEN. SPACE 4 *CALL COMCMAC *CALL COMCDCM *CALL COMSPRD *CALL COMSSCR *CALL COMSSSJ *CALL COMSSSD TITLE CONSTANTS. * CONSTANTS. MNOP EQU 30 MAXIMUM NUMBER OF PARAMETERS ALLOWED IBUFL EQU 101B INPUT BUFFER LENGTH OBUFL EQU 101B OUTPUT BUFFER LENGTH TITLE HOLDING REGISTERS AND DIRECT LOCATIONS. ORG 101B * HOLDING REGISTERS FOR OPERATOR USE. PW16 BSSZ 1 CHANNEL 16 PARAMETER WORD UHLD BSSZ 4 CHANNEL 16 HOLDING REGISTER PW36 BSSZ 1 CHANNEL 36 PARAMETER WORD LHLD BSSZ 4 CHANNEL 36 HOLDING REGISTER * DIRECT LOCATIONS. K VFD 24/I,18/R,18/L16 *K* DISPLAY CONTROL WORD I BSS 8 KEYBOARD INPUT BUFFER PARA BSS 30 PARAMETER AREA BLNK DIS 4, REGF BSSZ 1 REGISTER IN USE FLAG CA BSSZ 1 CHANNEL 36 AVAILABLE FLAG * FETS. IN BSS 0 INPUT FILEB IBUF,IBUFL OT BSS 0 OUTPUT FILEB OBUF,OBUFL * SSJ PARAMETER AREA. SSJ= VFD 12/0,24/-0,12/SCCS,12/IRSI BSSZ SSJL-1 SCRSIM TITLE SCRSIM - MAIN LOOP. * SCRSIM - STATUS/CONTROL REGISTER SIMULATOR. SCRSIM SB1 1 RJ PRS PRESET READ IN,R SA1 IN+2 IN SA2 A1+B1 OUT IX6 X1-X2 NZ X6,SCS11 IF FET INPUT, BEGIN ROUTINE BX6 X6-X6 ZERO FET NAME SA6 IN SCS1 SA1 I ZR X1,SCS11 IF INPUT NOT READY * DISPLAY INPUT COMMAND. MESSAGE I,3 ENTER COMMAND IN JOB DAYFILE MOVE 3,BLNK,MSGL CLEAR ERROR MESSAGE AREAS MOVE 3,BLNK,MSGK MOVE 5,I,PARL DISPLAY COMMAND MOVE 5,I,PARK SA2 BLNK SB2 4 BX6 X2 SCS2 SA3 PARL+B2 SA4 PARK+B2 NZ X3,SCS3 IF NOT ZERO WORD SA6 A3+ BLANK OUT ZERO WORD SB2 B2-B1 SA6 A4 NZ B2,SCS2 IF NOT END OF BUFFER * FIND CORRECT COMMAND AND PROCESSOR. SCS3 SA2 I SA1 TOCP TABLE OF COMMAND PROCESSORS SCS4 BX6 X1 AX6 18 MX7 -6 BX6 -X7*X6 SHIFT COUNT FOR MASK SB7 X6 MX0 1 AX0 B7 MASK FOR COMMAND BX2 X0*X2 BX1 X0*X1 BX6 X2-X1 ZR X6,SCS5 IF CORRECT COMMAND SA1 A1+B1 SA2 A2 NZ X1,SCS4 IF NOT END OF COMMANDS MOVE 3,SCSA,MSGL *INCORRECT PARAMETER.* MOVE 3,SCSA,MSGK EQ SCS8 SCS5 SB6 7 SA2 A2 CHECK FOR SEPARATOR SB7 B7+B6 SHIFT COUNT FOR COMMAND AND SEPARATOR LX2 B7 SX3 1R+ CHECK FOR *+* COMMAND LX3 6 BX3 X2-X3 ZR X3,SCS7 IF *+* ONLY BX2 -X7*X2 SX6 X2-1R+ NG X6,SCS6 IF ALPHANUMERIC SX6 X2-1R# NG X6,SCS7 IF SEPARATOR OR TERMINATOR SCS6 MOVE 3,SCSA,MSGL *INCORRECT PARAMETER.* MOVE 3,SCSA,MSGK EQ SCS8 * JUMP TO COMMAND PROCESSOR. SCS7 SA1 A1 SB7 X1 PROCESSOR ADDRESS SX6 SCS8 SET UP RETURN ADDRESS SX7 1 SET DISPLAY UPDATE AFTER COMMAND SA7 SCSC SA6 B7-B1 JP B7 * RETURN FROM PROCESSOR AND CLEAR INPUT AREA. SCS8 MOVE 3,MSGL,SCSB+1 SA1 SCSB+1 NG X1,SCS9 IF NO ERROR MESSAGE MESSAGE SCSB,3 PUT ERROR MESSAGE IN DAYFILE SCS9 BX6 X6-X6 CLEAR INPUT AREA SB2 B0 SB3 7 SCS10 SA6 I+B2 EQ B2,B3,SCS11 IF END OF BUFFER SB2 B2+B1 EQ SCS10 * READ AND DISPLAY S/C REGISTER CONTENTS. SCS11 RECALL SA1 SCSC CHECK IF TIME TO UPDATE DISPLAY SX6 X1-1 SA6 A1+ NZ X6,SCS12 IF NOT TIME TO UPDATE RJ DCR DISPLAY CONTENTS OF REGISTER SX6 50 RESET DISPLAY UPDATE COUNTER SA6 SCSC RECALL SCS12 SA1 IN CHECK FOR FET INPUT ZR X1,SCS1 IF NO FET INPUT READC IN,I,8 TRANSFER FET INPUT TO INPUT AREA NZ X1,STP IF EOR/EOF, END SIMULATOR MESSAGE I,2 DISPLAY AT CONTROL POINT EQ SCS1 SCSA DIS 3,INCORRECT COMMAND. BSSZ 1 SCSB DIS 4, ERROR MESSAGE BUFFER BSSZ 1 SCSC CON 1 DISPLAY UPDATE COUNTER SPACE 4,5 ** TABLE OF COMMAND PROCESSORS. *T 36/ COMMAND,6/ SC,18/ ADDR * * SC SHIFT COUNT FOR MASK. * ADDR PROCESSOR ADDRESS. TOCP BSS 0 VFD 36/4LAREA,6/23,18/ARP VFD 36/4LBYTE,6/23,18/BYP VFD 36/5LCLEAR,6/29,18/CLP VFD 36/5LCYCLE,6/29,18/CYP VFD 36/2LGO,6/11,18/GOP VFD 36/4LLINE,6/23,18/LIP VFD 36/4LREAD,6/23,18/REP VFD 36/3LSET,6/17,18/SEP VFD 36/4LSTOP,6/23,18/STP VFD 36/1L+,6/5,18/TOP BSSZ 1 ARP TITLE PARAMETER PROCESSOR SUBROUTINES. *** AREA,A,M,Y. * SET M BITS IN THE HOLDING REGISTER, FROM BIT A TO * A+M-1, TO THE OCTAL VALUE Y. Y MAY BE UP TO M BITS * OF OCTAL VALUE. A IS THE STARTING BIT NUMBER (0-203), * AND M IS THE NUMBER OF BITS (1-204). A AND M ARE * ASSUMED DECIMAL, BUT MAY HAVE A POSTRADIX OF D OR B. ** ARP - SET AREA TO OCTAL VALUE. * * EXIT AREA IN HOLDING REGISTER SET TO GIVEN OCTAL VALUE. * VALUE DISPLAYED ON *K* DISPLAY. * * USES X - 0, 1, 2, 3, 5, 6, 7. * B - 2, 4, 5, 6, 7. * A - 0, 1, 2, 3, 5, 6, 7. * * CALLS GPV, GOV, DYL. DATA 0 RETURN ADDRESS ARP BSS 0 * GET PARAMETERS. SA2 I LX2 30 SA0 B0 MX0 -6 BX6 -X0*X2 SX7 X6-1R) ZR X7,ARP15 IF *)* SX7 X6-1R. ZR X7,ARP15 IF *.* SB6 5 CHARACTER COUNTER RJ GPV GET PARAMETER VALUE ZR X1,ARP11 IF ERROR SX7 X6-NBIT PL X7,ARP12 IF INCORRECT BIT NUMBER SA6 ARPA SAVE STARTING BIT ARP1 SX6 X1-1R) ZR X6,ARP15 IF *)* TERMINATOR SX6 X1-1R. ZR X6,ARP15 IF *.* TERMINATOR SX0 A0 NZ X0,ARP2 IF BOTH PARAMETERS FOUND SA0 B1 RJ GPV GET PARAMETER VALUE ZR X1,ARP11 IF ERROR SA5 ARPA IX7 X5+X6 END BIT + 1 SX5 205 IX7 X7-X5 PL X7,ARP13 IF NUMBER OF BITS TOO LARGE SA6 ARPB SAVE NUMBER OF BITS EQ ARP1 ARP2 RJ GOV GET OCTAL VALUE ZR X2,ARP11 IF ERROR SX6 B7+ ZR B4,ARP3 IF NO FULL WORD OF VALUE SX1 60 NUMBER OF BITS IN A WORD SX2 B4+ IX7 X2*X1 IX6 X7+X6 TOTAL NUMBER OF BITS ARP3 SA2 ARPB IX7 X2-X6 NG X7,ARP14 IF TOO MANY BITS GIVEN * INSERT VALUE INTO HOLDING REGISTER. SA1 REGF SA2 ARPA STARTING BIT SX6 60 SX7 X2 IX6 X7/X6 HOLDING REGISTER WORD SX7 60 IX7 X6*X7 IX7 X2-X7 SB5 X7 BIT NUMBER IN WORD SA7 A2 SAVE BIT NUMBER IN WORD SX7 UHLD+X6 ZR X1,ARP4 IF CHANNEL 16 REGISTER SX7 LHLD+X6 ARP4 SA0 X7 STARTING ADDRESS SA1 A0 SA3 ARPB NUMBER OF BITS SB7 X3+ SB6 60 SA3 GOVA VALUE ARP5 SB4 60 SB4 B5-B4 SB4 -B4 GE B7,B4,ARP6 IF ENOUGH BITS TO FILL WORD SB4 B7+ ARP6 GE B6,B4,ARP7 IF ENOUGH BITS IN VALUE WORD SB4 B6+ ARP7 SB3 B4-B1 MASK COUNT MX0 1 AX0 B3 LX2 B4,X0 VALUE WORD MASK LX0 B5,X2 HOLDING WORD MASK BX7 X2*X3 GET VALUE AX3 B4 LX7 B5 VALUE LEFT SHIFTED BX6 -X0*X1 BX1 X7+X6 MERGE IN VALUE SB6 B6-B4 NZ B6,ARP8 IF NOT END OF VALUE WORD SB6 60 SA3 A3+B1 GET NEXT VALUE WORD ARP8 SB5 B5+B4 SB2 60 SB2 B5-B2 NZ B2,ARP9 IF NOT END OF HOLDING WORD BX6 X1 SA6 A1+ SAVE WORD SA1 A1+B1 GET NEXT HOLDING REGISTER WORD SB5 B0+ ARP9 SB7 B7-B4 NZ B7,ARP5 IF NOT END OF TRANSFER BX6 X1 SA6 A1 SAVE LAST WORD * DISPLAY ENTIRE AREA. RJ DYL DISPLAY LINE SA1 ARPB NUMBER OF BITS SA2 ARPA BIT ORDINAL IN WORD SB7 X2-60 SB6 X1+ SB7 -B7+B1 NUMBER OF BITS LEFT IN WORD + 1 SB5 B6-B7 ARP10 NG B5,ARP11 IF ENTIRE AREA DISPLAYED SB6 B5+B1 NUMBER OF BITS LEFT TO DISPLAY SA0 A0+B1 SET NEXT WORD ADDRESS RJ DYL DISPLAY LINE SB5 B6-61 EQ ARP10 * RETURN TO MAIN PROCESSOR. ARP11 SA1 ARP-1 GET RETURN ADDRESS SB7 X1+ JP B7 ARP12 MOVE 3,ARPD,MSGL *INCORRECT BIT NUMBER.* MOVE 3,ARPD,MSGK EQ ARP11 ARP13 MOVE 3,ARPE,MSGL *NUMBER OF BITS TOO LARGE.* MOVE 3,ARPE,MSGK EQ ARP11 ARP14 MOVE 3,ARPF,MSGL *TOO MANY BITS SPECIFIED.* MOVE 3,ARPF,MSGK EQ ARP11 ARP15 MOVE 3,ARPC,MSGL *NOT ENOUGH ARGUMENTS.* MOVE 3,ARPC,MSGK EQ ARP11 ARPA BSSZ 1 STARTING BIT ARPB BSSZ 1 NUMBER OF BITS ARPC DIS 3,NOT ENOUGH ARGUMENTS. BSSZ 1 ARPD DIS 3,INCORRECT BIT NUMBER. BSSZ 1 ARPE DIS 3,NUMBER OF BITS TOO LARGE. BSSZ 1 ARPF DIS 3,TOO MANY BITS SPECIFIED. BSSZ 1 BYP SPACE 4,16 *** BYTE,XX,YYYY. * SET BYTE XX IN THE HOLDING REGISTER TO THE OCTAL * VALUE YYYY. YYYY MAY BE UP TO 12 BITS OF OCTAL * VALUE. XX IS THE BYTE NUMBER (0-16), AND IS * ASSUMED DECIMAL, BUT MAY HAVE A POSTRADIX OF D OR B. ** BYP - SET BYTE TO OCTAL VALUE. * * EXIT BYTE SET IN HOLDING REGISTER. * VALUE DISPLAYED ON *K* DISPLAY. * * USES X - 0, 1, 2, 5, 6, 7. * B - 2, 6, 7. * A - 0, 1, 2, 7. * * CALLS GPV, GOV, DYL. DATA 0 ENTRY/EXIT BYP BSS 0 SA2 I SB6 5 CHARACTER COUNTER LX2 30 MX0 -6 BX6 -X0*X2 SX7 X6-1R) ZR X7,BYP1 IF *)* SX7 X6-1R. ZR X7,BYP1 IF *.* * GET CORRECT BYTE. RJ GPV GET PARAMETER VALUE ZR X1,BYP5 IF ERROR SX7 X1-1R) ZR X7,BYP1 IF *)* TERMINATOR SX7 X1-1R. ZR X7,BYP1 IF *.* TERMINATOR EQ BYP2 BYP1 MOVE 3,BYPA,MSGL *NOT ENOUGH ARGUMENTS.* MOVE 3,BYPA,MSGK EQ BYP5 BYP2 SX7 X6-17 NG X7,BYP3 IF LEGAL BYTE NUMBER MOVE 3,BYPB,MSGL *INCORRECT BYTE NUMBER.* MOVE 3,BYPB,MSGK EQ BYP5 BYP3 SA0 UHLD SA1 REGF ZR X1,BYP4 IF CHANNEL 16 REGISTER SA0 LHLD BYP4 SX7 5 SX5 X6 IX7 X6/X7 WORD NUMBER SB7 X7 SA0 A0+B7 SET WORD ADDRESS SX6 5 IX6 X6*X7 IX6 X5-X6 BYTE ORDINAL IN WORD SB2 X6 RJ GOV GET OCTAL VALUE ZR X2,BYP5 IF ERROR NZ B4,BYP6 IF TOO MANY BITS SB7 B7-13 PL B7,BYP6 IF TOO MANY BITS * INSERT OCTAL VALUE INTO BYTE. SA2 GOVA OCTAL VALUE SX5 12 SX7 B2 IX7 X7*X5 SHIFT COUNT SB7 X7 SA1 A0 GET HOLDING WORD MX0 48 BX6 -X0*X2 LX0 B7 FORM MASK LX6 B7 BX7 X0*X1 BX7 X6+X7 INSERT VALUE SA7 A0+ RJ DYL DISPLAY LINE BYP5 SA1 BYP-1 GET RETURN ADDRESS SB7 X1+ JP B7 BYP6 MOVE 3,BYPC,MSGL *TOO MANY BITS SPECIFIED.* MOVE 3,BYPC,MSGK EQ BYP5 BYPA DIS 3,NOT ENOUGH ARGUMENTS. BSSZ 1 BYPB DIS 3,INCORRECT BYTE NUMBER. BSSZ 1 BYPC DIS 3,TOO MANY BITS SPECIFIED. BSSZ 1 CLP SPACE 4,15 *** CLEAR,A,B,...,Z. * CLEAR BITS A,B,...,Z IN THE HOLDING REGISTER, WHERE * A,B,...,Z ARE BIT NUMBERS (0-203). DECIMAL VALUES * ARE ASSUMED, BUT EACH MAY HAVE A POSTRADIX OF D OR B. * IF MORE THAN 30 BIT NUMBERS ARE ENTERED, ONLY THE * FIRST 30 WILL BE PROCESSED. ALL OTHERS WILL BE * IGNORED. ** CLP - CLEAR BITS IN HOLDING REGISTERS. * * EXIT BITS CLEARED IN HOLDING REGISTER. * BITS DISPLAYED ON *K* DISPLAY. * * USES X - 0, 1, 2, 6. * B - 6, 7. * A - 0, 1, 2, 6. * * CALLS GPV, CBV. DATA 0 RETURN ADDRESS CLP BSS 0 SA2 I SB6 B0+ LX2 36 SA0 B0 MX0 -6 BX6 -X0*X2 SX1 X6-1R) ZR X1,CLP4 IF *)* SX1 X6-1R. ZR X1,CLP4 IF *.* SB6 6 CHARACTER COUNTER * GET BIT NUMBERS. CLP1 RJ GPV GET PARAMETER VALUE ZR X1,CLP5 IF ERROR SA6 PARA+A0 SA0 A0+B1 CHECK FOR MAXIMUM NUMBER OF PARAMETERS SX0 A0 SX6 X1-1R) ZR X6,CLP3 IF *)* SX6 X1-1R. ZR X6,CLP3 IF *.* SX0 X0-MNOP ZR X0,CLP2 IF MAXIMUM NUMBER OF PARAMETERS EQ CLP1 CLP2 MOVE 3,CLPA,MSGL *MAXIMUM NUMBER OF ARGUMENTS.* MOVE 3,CLPA,MSGK CLP3 SB6 A0+ NUMBER OF BITS SPECIFIED SA0 UHLD SA1 REGF ZR X1,CLP4 IF CHANNEL 16 REGISTER SA0 LHLD CLP4 SX0 B1 SET CLEAR BIT FLAG RJ CBV CHANGE BIT VALUES CLP5 SA1 CLP-1 GET RETURN ADDRESS SB7 X1+ JP B7 CLPA DIS 3,MAXIMUM NUMBER OF ARGUMENTS. BSSZ 1 CYP SPACE 4,25 *** CYCLE,X,T,R. * SET BIT X EVERY T PERIODS A TOTAL OF R TIMES. X IS * THE BIT NUMBER (0-203) AND R THE NUMBER OF TIMES TO * SET THE BIT. R MAY NOT EXCEED 4095. T IS THE * NUMBER OF TIME PERIODS FOR EACH CYCLE, ONE PERIOD * BEING 16 MILLISECONDS. T=32 IS APPROXIMATELY ONE HALF * SECOND. THIS COMMAND ASSUMES CONTROL OF THE * SIMULATOR FOR THE TOTAL TIME PERIOD SPECIFIED, AND * NO COMMAND WILL BE ACCEPTED EXCEPT *END*. BIT X * IS SET IN THE HOLDING REGISTER BY THIS COMMAND. * * END. * END *CYCLE* COMMAND PROCESSING BEFORE R HAS BEEN * REACHED. CONTROL OF THE SIMULATOR IS RETURNED TO * THE OPERATOR. ** CYP - CYCLE BIT AT GIVEN INTERVAL. * * EXIT BIT SET ON *K* DISPLAY. * * USES X - 0, 1, 2, 3, 5, 6, 7. * B - 6, 7. * A - 0, 1, 2, 3, 5, 6, 7. * * CALLS GPV, DYL, DEB, SSR. DATA 0 RETURN ADDRESS CYP BSS 0 SA2 I SB6 6 CHARACTER COUNT LX2 36 MX0 -6 BX6 -X0*X2 SX7 X6-1R) ZR X7,CYP2 IF *)* SX7 X6-1R. ZR X7,CYP2 IF *.* SA0 3 CYP1 RJ GPV GET PARAMETER VALUE ZR X1,CYP11 IF ERROR SA0 A0-B1 SX0 A0 SA6 PARA+A0 SAVE PARAMETER ZR X0,CYP3 IF ALL PARAMETERS FOUND SX6 X1-1R) ZR X6,CYP2 IF *)* TERMINATOR SX6 X1-1R. ZR X6,CYP2 IF *.* TERMINATOR EQ CYP1 CYP2 MOVE 3,CYPA,MSGL *NOT ENOUGH ARGUMENTS.* MOVE 3,CYPA,MSGK EQ CYP11 CYP3 SA5 PARA+2 BIT NUMBER SX7 X5-NBIT NG X7,CYP4 IF LEGAL BIT NUMBER MOVE 3,CYPB,MSGL *INCORRECT BIT NUMBER.* MOVE 3,CYPB,MSGK EQ CYP11 * SET BIT IN HOLDING REGISTER. CYP4 SA0 UHLD SA1 REGF ZR X1,CYP5 IF CHANNEL 16 REGISTER SA0 LHLD CYP5 SX7 60 SX6 X5+ SA6 CYPI SAVE BIT NUMBER IX7 X6/X7 WORD NUMBER SB7 X7+ SA0 A0+B7 SET WORD ADDRESS SX6 60 IX6 X6*X7 IX6 X5-X6 BIT ORDINAL IN WORD MX0 59 SB7 X6 LX0 B7 SA1 A0 GET HOLDING WORD SX7 B1 LX7 B7 BX1 X0*X1 BX6 X7+X1 SET BIT SA6 A0+ RJ DYL DISPLAY LINE * GET TIME PARAMETERS. SA5 PARA+1 TIME INTERVAL SX6 X5+ SA6 CYPE SAVE INTERVAL SA5 A5-B1 NUMBER OF CYCLES BX7 X5 SX5 X5-4096 PL X5,CYP17 IF NUMBER TOO LARGE * SEND SET BIT TO STATUS AND CONTROL REGISTER. CYP6 SA7 CYPF SAVE NUMBER OF CYCLES SA1 REGF SX6 5 IX5 X1*X6 LX1 59 SA2 CYPI SX7 4000B BX7 X2+X7 BIT NUMBER AND SET BIT CODE LX7 12 BX6 X1+X7 SET BIT 59 IF CHANNEL 36 SA6 PW16+X5 SET PARAMETER WORD SA0 A6+ SA1 CYPE SX6 X1-32 NG X6,CYP13 IF INTERVAL LESS THAN HALF SECOND CYP7 RJ SSR SEND SYSTEM REQUEST RTIME CYPG SA5 CYPF SX5 X5-1 ZR X5,CYP10 IF TIME LIMIT UP SA1 I SA2 =5LCYCLE BX6 X1-X2 MX0 30 BX6 X0*X6 ZR X6,CYP8 IF NO INPUT ENTERED MX0 18 SA2 =3LEND BX6 X1-X2 BX6 X0*X6 ZR X6,CYP16 IF *END* MOVE 3,CYPJ,MSGL *CYCLE STILL PROCESSING.* MOVE 3,CYPJ,MSGK * LOOP FOR TIME INTERVAL. CYP8 RTIME CYPH SA1 CYPE SA2 CYPG GET REAL TIME MX7 -32 AX2 4 SA3 CYPH GET PRESENT TIME BX2 -X7*X2 AX3 4 BX3 -X7*X3 IX3 X3-X2 IX3 X3-X1 PL X3,CYP9 IF TIME TO RESET BIT RJ DCR DISPLAY CONTENTS OF REGISTER RECALL EQ CYP8 CYP9 SA5 CYPF DECREMENT NUMBER OF CYCLES SX6 X5-1 SA6 A5 EQ CYP7 CYP10 MOVE 3,CYPD,MSGL *TIME LIMIT UP.* MOVE 3,CYPD,MSGK CYP11 RJ DCR DISPLAY CONTENTS OF REGISTER SA1 CYP-1 GET RETURN ADDRESS SB7 X1+ JP B7 * PROCESS FUNCTION WITH INTERVAL LESS THAN HALF SECOND. CYP13 SX1 B1 SET LESS THAN HALF SECOND FLAG LX1 58-0 SA2 CYPE LX2 36 SA3 CYPF LX3 24 BX6 X2+X3 TIME INTERVAL AND LIMIT BX6 X1+X6 SA1 A6 GET PARAMETER WORD BX7 X1+X6 SA7 A6 RJ SSR SEND SYSTEM REQUEST CYP14 SA1 A0 GET PARAMETER WORD LX1 59-58 PL X1,CYP10 IF TIME LIMIT UP SA1 I SA2 =5LCYCLE BX6 X1-X2 MX0 30 BX6 X0*X6 ZR X6,CYP15 IF NO INPUT ENTERED SA2 =3LEND BX6 X1-X2 MX0 18 BX6 X0*X6 ZR X6,CYP16 IF *END* MOVE 3,CYPJ,MSGL *CYCLE STILL PROCESSING.* MOVE 3,CYPJ,MSGK CYP15 RECALL EQ CYP14 * PROCESS *END* COMMAND. CYP16 MOVE 5,I,PARL DISPLAY COMMAND MOVE 5,I,PARK MOVE 4,BLNK,PARL+1 MOVE 4,BLNK,PARK+1 MESSAGE I,3 ENTER COMMAND IN JOB DAYFILE MOVE 3,BLNK,MSGL CLEAR ANY ERROR MESSAGE MOVE 3,BLNK,MSGK MX0 59 CLEAR HALF SECOND INTERVAL FLAG LX0 58 SA1 A0 BX6 X0*X1 SA6 A1+ RECALL EQ CYP11 CYP17 MOVE 3,CYPC,MSGL *NUMBER OF CYCLES TOO LARGE.* MOVE 3,CYPC,MSGK EQ CYP11 CYPA DIS 3,NOT ENOUGH ARGUMENTS. BSSZ 1 CYPB DIS 3,INCORRECT BIT NUMBER. BSSZ 1 CYPC DIS 3,NUMBER OF CYCLES TOO LARGE. BSSZ 1 CYPD DIS 3,TIME LIMIT UP. BSSZ 1 CYPE BSSZ 1 TIME INTERVAL CYPF BSSZ 1 NUMBER OF CYCLES CYPG BSSZ 1 REAL TIME CYPH BSSZ 1 REAL TIME COMPARE CYPI BSSZ 1 BIT NUMBER CYPJ DIS 3,CYCLE STILL PROCESSING. BSSZ 1 GOP SPACE 4,15 *** GO. * THIS COMMAND CAUSES THE CONTENTS OF THE HOLDING * REGISTERS TO BE TRANSFERRED TO THE ACTUAL STATUS * AND CONTROL REGISTERS OR INTERLOCK REGISTER. NO * BITS ARE CHANGED IN VALUE IN THE HOLDING REGISTERS * BY THIS COMMAND. ** GOP - TRANSFER HOLDING REGISTERS TO S/C REGISTERS. * * EXIT HOLDING REGISTERS TRANSFERRED TO PROPER STATUS AND * CONTROL REGISTER. * * USES X - 1, 6. * B - 7. * A - 1, 6. DATA 0 RETURN ADDRESS GOP BSS 0 SA1 CA NZ X1,GOP1 IF CHANNEL 36 NOT AVAILABLE * SEND CHANNEL 36 DATA TO *HFM*. SX6 B1 SET CHANNEL 36 FLAG IN PARAMETER WORD LX6 59-0 SA6 PW36 SYSTEM HFM,R,PW36,0 * SEND CHANNEL 16 DATA TO *HFM*. GOP1 SX6 B0+ CLEAR PARAMETER WORD SA6 PW16 SYSTEM HFM,R,PW16,0 SA1 GOP-1 GET RETURN ADDRESS SB7 X1+ JP B7 LIP SPACE 4,16 *** LINE,X,Y. * SET LINE X OF THE HOLDING REGISTER TO THE OCTAL * VALUE Y. Y MAY BE UP TO 60 BITS OF OCTAL VALUE. * X IS THE LINE NUMBER (0-3) FROM THE LEFT DISPLAY * SCREEN, LINE 0 AT THE TOP, AND LINE 3 AT THE BOTTOM. ** LIP - SET HOLDING REGISTER LINE TO OCTAL VALUE. * * EXIT SPECIFIED LINE SET TO OCTAL VALUE IN HOLDING REGISTER. * VALUE DISPLAYED ON *K* DISPLAY. * * USES X - 0, 1, 2, 6, 7. * B - 6, 7. * A - 0, 1, 2, 6. * * CALLS GPV, GOV, DYL. DATA 0 RETURN ADDRESS LIP BSS 0 SA2 I SB6 5 CHARACTER COUNTER LX2 30 MX0 -6 BX6 -X0*X2 SX7 X6-1R) ZR X7,LIP4 IF *)* SX7 X6-1R. ZR X7,LIP4 IF *.* * GET LINE NUMBER AND OCTAL VALUE. RJ GPV GET PARAMETER VALUE ZR X1,LIP2 IF ERROR SX7 X6-4 PL X7,LIP3 IF INCORRECT LINE NUMBER SX7 X1-1R) ZR X7,LIP4 IF *)* TERMINATOR SX7 X1-1R. ZR X7,LIP4 IF *.* TERMINATOR SA1 REGF SA0 UHLD ZR X1,LIP1 IF CHANNEL 16 REGISTER SA0 LHLD LIP1 SB7 X6 SA0 A0+B7 LINE ADDRESS RJ GOV GET OCTAL VALUE ZR X2,LIP2 IF ERROR NZ B4,LIP5 IF TOO MANY BITS * INSERT VALUE INTO HOLDING REGISTER. SA1 GOVA GET VALUE BX6 X1 SA6 A0 RJ DYL DISPLAY LINE LIP2 SA1 LIP-1 GET RETURN ADDRESS SB7 X1+ JP B7 LIP3 MOVE 3,LIPA,MSGL *INCORRECT LINE NUMBER.* MOVE 3,LIPA,MSGK EQ LIP2 LIP4 MOVE 3,LIPB,MSGL *NOT ENOUGH ARGUMENTS.* MOVE 3,LIPB,MSGK EQ LIP2 LIP5 MOVE 3,LIPC,MSGL *TOO MANY BITS SPECIFIED.* MOVE 3,LIPC,MSGK EQ LIP2 LIPA DIS 3,INCORRECT LINE NUMBER. BSSZ 1 LIPB DIS 3,NOT ENOUGH ARGUMENTS. BSSZ 1 LIPC DIS 3,TOO MANY BITS SPECIFIED. BSSZ 1 REP SPACE 4,20 *** READ. * READ THE ACTUAL CONTENTS OF THE S/C REGISTER (OR * INTERLOCK REGISTER) ON THE CURRENT CHANNEL INTO THE * HOLDING REGISTER. ** REP - READ CURRENT CONTENTS OF S/C OR INTERLOCK REGISTER. * * EXIT ACTUAL CONTENTS OF S/C REGISTER (OR INTERLOCK REGISTER) * ON THE CURRENT CHANNEL SET IN HOLDING REGISTER. * * USES X - 1, 7. * B - 6, 7. * A - 0, 1. * * CALLS DYL, RDR. DATA 0 RETURN ADDRESS REP BSS 0 SX7 UHLD SET HOLDING REGISTER ADDRESS SA1 REGF ZR X1,REP1 IF CHANNEL 16 SX7 LHLD SET CHANNEL 36 HOLDING REGISTER ADDRESS REP1 RJ RDR READ REGISTER CONTENTS SB6 3 REP2 SA1 RDRB SET LINE ADDRESS SA0 X1+B6 RJ DYL DISPLAY LINE SB6 B6-B1 PL B6,REP2 IF NOT END OF REGISTER SA1 REP-1 GET RETURN ADDRESS SB7 X1+ JP B7 RETURN SEP SPACE 4,15 *** SET,A,B,...,Z. * SET BITS A,B,...,Z IN THE HOLDING REGISTER, WHERE * A,B,...,Z ARE BIT NUMBERS (0-203). DECIMAL VALUES * ARE ASSUMED, BUT EACH MAY HAVE A POSTRADIX OF D OR B. * IF MORE THAN 30 BIT NUMBERS ARE ENTERED, ONLY THE * FIRST 30 WILL BE PROCESSED. ALL OTHERS WILL BE * IGNORED. ** SEP - SET BITS IN HOLDING REGISTERS. * * EXIT BITS SET IN HOLDING REGISTER. * BITS DISPLAYED ON *K* DISPLAY. * * USES X - 0, 1, 2, 6. * B - 6, 7. * A - 0, 1, 2, 6. * * CALLS GPV, CBV. DATA 0 RETURN ADDRESS SEP BSS 0 SA2 I SB6 B0+ LX2 24 SA0 B0 MX0 -6 BX6 -X0*X2 SX1 X6-1R) ZR X1,SEP4 IF *)* SX1 X6-1R. ZR X1,SEP4 IF *.* SB6 4 CHARACTER COUNTER * GET BIT NUMBERS. SEP1 RJ GPV GET PARAMETER VALUE ZR X1,SEP5 IF ERROR SA6 PARA+A0 SA0 A0+B1 CHECK FOR MAXIMUM NUMBER OF PARAMETERS SX0 A0 SX6 X1-1R) ZR X6,SEP3 IF *)* SX6 X1-1R. ZR X6,SEP3 IF *.* SX0 X0-MNOP ZR X0,SEP2 IF MAXIMUM NUMBER OF PARAMETERS EQ SEP1 SEP2 MOVE 3,SEPA,MSGL *MAXIMUM NUMBER OF ARGUMENTS.* MOVE 3,SEPA,MSGK SEP3 SB6 A0+ NUMBER OF BITS SPECIFIED SA0 UHLD SA1 REGF ZR X1,SEP4 IF CHANNEL 16 REGISTER SA0 LHLD SEP4 SX0 B0 SET SET BIT FLAG RJ CBV CHANGE BIT VALUES SEP5 SA1 SEP-1 GET RETURN ADDRESS SB7 X1+ JP B7 SEPA DIS 3,MAXIMUM NUMBER OF ARGUMENTS. BSSZ 1 STP SPACE 4,4 *** STOP. * THIS COMMAND CAUSES THE SIMULATOR TO END PROCESSING. ** STP - END SIMULATOR. DATA 0 RETURN ADDRESS STP BSS 0 MESSAGE STPA *END SIMULATOR.* WRITEF OT CAUSE DAYFILE TO PRINT ENDRUN STPA DIS 3, END SIMULATOR. TOP SPACE 4,18 *** +. * THIS COMMAND TOGGLES THE *K* DISPLAY BETWEEN THE * CHANNEL 16 AND CHANNEL 36 REGISTER DISPLAYS AND ALSO * CHANGES THE REGISTER CURRENTLY BEING WORKED ON IF * THE SIMULATOR IS BEING OPERATED ON A CYBER 170 WITH * TWO S/C REGISTERS. OTHERWISE, NO ACTION IS TAKEN. * THE CHANNEL 16 REGISTER IS ASSUMED WHEN THE SIMULATOR * BEGINS. THE REGISTER CURRENTLY DISPLAYED IS THE * HOLDING REGISTER WHICH THE OTHER COMMANDS AFFECT. ** TOP - TOGGLE REGISTER IN USE. * * EXIT REGISTER IN USE FLAG TOGGLED. * *K* DISPLAY CHANGED TO REFLECT REGISTER BEING USED. * * USES X - 0, 1, 2, 6, 7. * B - 7. * A - 1, 2, 6, 7. DATA 0 RETURN ADDRESS TOP BSS 0 MX0 42 SA2 K CLEAR LEFT SCREEN FIELD BX2 X0*X2 SA1 REGF ZR X1,TOP1 IF CHANNEL 16 IN USE * CHANGE TO CHANNEL 16 DISPLAY FROM CHANNEL 36. SX7 L16 SET CHANNEL 16 DISPLAY ADDRESS BX7 X2+X7 SA7 A2 CONSOLE K TOGGLE DISPLAY SX6 B0+ SET CHANNEL 16 REGISTER SA6 REGF EQ TOP2 * CHANGE TO CHANNEL 36 DISPLAY IF AVAILABLE. TOP1 SA1 CA NZ X1,TOP2 IF CHANNEL 36 NOT AVAILABLE SX7 L36 SET CHANNEL 36 DISPLAY ADDRESS BX7 X2+X7 SA7 A2 CONSOLE K TOGGLE DISPLAY SX6 B1+ SET CHANNEL 36 REGISTER SA6 REGF TOP2 SA1 TOP-1 GET RETURN ADDRESS SB7 X1+ JP B7 CBV TITLE SECONDARY SUBROUTINES. ** CBV - CHANGE BIT VALUES. * * ENTRY (A0) = REGISTER ADDRESS. * (X0) = SET/CLEAR BIT FLAG. * (B6) = NUMBER OF BITS SPECIFIED. * BIT NUMBERS UNPACKED INTO PARA. * * EXIT SPECIFIED BITS CHANGED IN VALUE. * CHANGED BITS DISPLAYED ON *K* DISPLAY. * * USES X - 1, 6, 7. * B - 6, 7. * A - 0, 1, 6, 7. * * CALLS DYL. CBV SUBR ENTRY/EXIT SX7 X0+ SAVE FLAG SA7 CBVC NZ B6,CBV1 IF BITS SPECIFIED MOVE 3,CBVA,MSGL *NO BITS SPECIFIED.* MOVE 3,CBVA,MSGK EQ CBVX * GET BIT NUMBER. CBV1 SX7 PARA ADDRESS OF FIRST PARAMETER SA7 CBVD SX6 A0+ SAVE REGISTER ADDRESS SA6 CBVE CBV2 SA1 X7+ BIT NUMBER SX7 X1-NBIT NG X7,CBV3 IF LEGAL BIT NUMBER MOVE 3,CBVB,MSGL *INCORRECT BIT NUMBER.* MOVE 3,CBVB,MSGK EQ CBVX * FIND CORRECT BIT AND SET/CLEAR IT. CBV3 SX6 60 SX7 X1 IX7 X7/X6 WORD NUMBER SX6 60 IX6 X7*X6 IX6 X1-X6 BIT ORDINAL IN WORD SB7 X7 SA0 A0+B7 WORD ADDRESS SA1 A0 SB7 X6+ MX6 59 LX6 B7 SET UP MASK BX7 X6*X1 CLEAR BIT SA1 CBVC NZ X1,CBV4 IF CLEAR BIT SX6 B1+ SET BIT LX6 B7 IX7 X6+X7 CBV4 SA7 A0 STORE BIT RJ DYL DISPLAY LINE SB6 B6-B1 SA1 CBVD SET NEXT PARAMETER ADDRESS SX7 X1+B1 SA7 A1 SA1 CBVE RESET REGISTER ADDRESS SA0 X1 NZ B6,CBV2 IF NOT END OF PARAMETERS EQ CBVX CBVA DIS 3,NO BITS SPECIFIED. BSSZ 1 CBVB DIS 3,INCORRECT BIT NUMBER. BSSZ 1 CBVC BSSZ 1 SET/CLEAR FLAG CBVD BSSZ 1 PARAMETER ADDRESS CBVE BSSZ 1 REGISTER ADDRESS CDC SPACE 4,8 ** CDC - CONVERT TEN BITS TO DISPLAY CODE. * * ENTRY (X1) = TEN BITS RIGHT JUSTIFIED. * * EXIT (X6) = DISPLAY CODED WORD. * * USES X - 0, 1, 4, 6, 7. * B - 7. CDC SUBR ENTRY/EXIT BX4 X4-X4 CLEAR ASSEMBLY MX0 -1 SB7 10 * CONVERT ONE BIT AT A TIME TO DISPLAY CODE. CDC1 BX7 -X0*X1 GET BIT LX4 -6 SX6 X7+1R0 CONVERT BIT TO DISPLAY CODE AX1 1 BX4 X6+X4 ADD TO ASSEMBLY SB7 B7-B1 NZ B7,CDC1 IF NOT TEN BITS LX4 -6 BX6 X4 EQ CDCX GOV SPACE 4,14 ** GOV - GET OCTAL VALUE. * * ENTRY (A2) = CHARACTER WORD ADDRESS. * (X2) = CHARACTER WORD, NEXT CHARACTER LEFT JUSTIFIED. * (B6) = CHARACTER COUNT. * * EXIT (B4) = NUMBER OF FULL CM WORDS OF VALUE. * (B7) = NUMBER OF BITS IN LAST WORD OF VALUE. * (X2) = 0 IF ERROR. * VALUE STORED IN GOVA - GOVA+3. * * USES X - 0, 2, 3, 4, 6, 7. * B - 4, 5, 6, 7. * A - 2, 6, 7. GOV SUBR ENTRY/EXIT BX6 X6-X6 CLEAR VALUE BUFFER SA6 GOVA SA6 A6+B1 SA6 A6+B1 SA6 A6+B1 MX0 -6 BX4 X4-X4 CLEAR ASSEMBLY MX0 -6 SB7 B0 DIGIT COUNTER SB4 B0+ WORD COUNTER EQ GOV2 * CHECK NEXT CHARACTER. GOV1 SB6 B6+B1 SB5 10 SB5 B6-B5 NZ B5,GOV2 IF NOT END OF WORD SA2 A2+B1 GET NEXT WORD SB6 B0 RESET COUNTER GOV2 LX2 6 BX6 -X0*X2 SX7 X6-1R0 NG X7,GOV5 IF ALPHABETIC CHARACTER SX7 X6-1R8 NG X7,GOV3 IF OCTAL NUMERIC SX7 X6-1R+ NG X7,GOV5 IF 8 OR 9 SX7 X6-1R ZR X7,GOV1 IF SPACE SX7 X6-1R# PL X7,GOV5 IF INCORRECT CHARACTER BX7 X4 SB5 B7+B4 ZR B5,GOVX IF DEFAULT VALUE SA7 GOVA+B4 SAVE VALUE LX3 57 SB5 B0 NG X3,GOV6 IF 3 BIT DIGIT LX3 1 SB5 B1 NG X3,GOV6 IF 2 BIT DIGIT SB5 B5+B1 EQ GOV6 * ASSEMBLE OCTAL VALUE. GOV3 SX6 X6-1R0 CONVERT TO BINARY LX4 3 BX4 X4+X6 ADD TO ASSEMBLY NZ B7,GOV4 IF NOT FIRST DIGIT OF WORD NZ B4,GOV4 IF NOT FIRST WORD SX3 X6+ SAVE FIRST DIGIT GOV4 SB7 B7+3 SB5 B7-60 NZ B5,GOV1 IF NOT A FULL WORD BX7 X4 SAVE VALUE SB7 B0 SA7 GOVA+B4 SB4 B4+B1 BX4 X4-X4 CLEAR ASSEMBLY EQ GOV1 GOV5 MOVE 3,GOVB,MSGL *INCORRECT CHARACTER.* MOVE 3,GOVB,MSGK SX2 B0 EQ GOVX * ADJUST NUMBER OF BITS IN VALUE. GOV6 NZ B7,GOV7 IF NOT EXACTLY A FULL LAST WORD SB7 60 SB4 B4-B1 GOV7 SB7 B7-B5 ADJUST NUMBER OF BITS EQ GOVX GOVA BSS 4 VALUE GOVB DIS 3,INCORRECT CHARACTER. BSSZ 1 GPV SPACE 4,17 ** GPV - GET PARAMETER VALUE. * * ENTRY (A2) = CHARACTER WORD ADDRESS. * (X2) = CHARACTER WORD, NEXT CHARACTER LEFT JUSTIFIED. * (B6) = CHARACTER COUNT. * * EXIT (X1) = SEPARATOR OR 0 IF ERROR. * (X2) = CHARACTER LINE. * (A2) = CHARACTER LINE ADDRESS. * (B6) = CHARACTER COUNT. * (X6) = PARAMETER BINARY VALUE. * * USES X - 0, 1, 2, 3, 5, 6, 7. * B - 4, 5, 6, 7. * A - 1, 2, 3, 5, 6. * * CALLS DXB. GPV SUBR ENTRY/EXIT SB4 B0+ BX5 X5-X5 CLEAR ASSEMBLY WORD MX0 -6 * CHECK NEXT CHARACTER. GPV1 LX2 6 BX6 -X0*X2 SX7 X6-1RB ZR X7,GPV3 IF POSTRADIX *B* SX7 X6-1RD ZR X7,GPV3 IF POSTRADIX *D* SX7 X6-1R0 NG X7,GPV7 IF ALPHABETIC CHARACTER SX7 X6-1R+ NG X7,GPV3 IF NUMERIC SX7 X6-1R ZR X7,GPV2 IF SPACE SX7 X6-1R# PL X7,GPV7 IF INCORRECT CHARACTER NZ B4,GPV4 IF NOT EMPTY STRING SA5 =1L0 SET DEFAULT VALUE EQ GPV5 GPV2 SB6 B6+B1 SB5 10 SB5 B6-B5 NZ B5,GPV1 IF NOT END OF WORD SA2 A2+B1 GET NEXT WORD SB6 B0 RESET COUNTER EQ GPV1 * ASSEMBLE PARAMETER. GPV3 LX5 6 ADD CHARACTER TO ASSEMBLY BX5 X6+X5 SB4 B4+1 EQ GPV2 GPV4 LX5 -6 LEFT JUSTIFY NUMBER SB4 B4-B1 NZ B4,GPV4 IF NOT LEFT JUSTIFIED GPV5 SA6 GPVA SAVE SEPARATOR BX6 X2 SAVE CHARACTER LINE SB7 B1 ASSUME DECIMAL SA6 GPVB RJ DXB DISPLAY CODE TO BINARY ZR X4,GPV6 IF NO ERROR MOVE 3,GPVC,MSGL *CONVERSION ERROR.* MOVE 3,GPVC,MSGK SX1 B0 EQ GPVX * SET EXIT CONDITIONS. GPV6 SA1 GPVA RESTORE SEPARATOR SA3 GPVB RESTORE CHARACTER LINE BX2 X3 SB6 B6+B1 SB5 B6-10 NZ B5,GPVX IF NOT END OF WORD SA2 A2+B1 GET NEXT WORD SB6 B0 RESET COUNTER EQ GPVX GPV7 MOVE 3,GPVD,MSGL *INCORRECT CHARACTER.* MOVE 3,GPVD,MSGK SX1 B0 EQ GPVX GPVA BSSZ 1 SEPARATOR GPVB BSSZ 1 CHARACTER LINE GPVC DIS 3,CONVERSION ERROR. BSSZ 1 GPVD DIS 3,INCORRECT CHARACTER. BSSZ 1 RDR SPACE 4,20 ** RDR - READ REGISTER CONTENTS. * * ENTRY (X7) = ADDRESS OF DATA BUFFER. * ACTUAL CONTENTS OF S/C REGISTER (OR INTERLOCK REGISTER) * READ INTO BUFFER. * * EXIT (RDRB) = ADDRESS OF DATA BUFFER. * * USES X - 0, 1, 2, 5, 6, 7. * B - 7. * A - 0, 1, 6, 7. * * CALLS SSR. RDR SUBR ENTRY/EXIT SA7 RDRB SAVE BUFFER ADDRESS SX6 B0+ SET READ FUNCTION SA6 RDRA RDR1 SA1 RDRB SET BUFFER ADDRESS SA0 X1+ SA1 REGF ZR X1,RDR2 IF CHANNEL 16 * READ CHANNEL 36 REGISTER CONTENTS. MX7 1 SET CHANNEL 36 FLAG LX6 12 MERGE IN FUNCTION REQUEST BX7 X6+X7 SA7 PW36 RJ SSR SEND SYSTEM REQUEST SA1 PW36 GET REPLY MX0 -12 BX6 -X0*X1 EQ RDR3 SET VALUE IN HOLDING REGISTER * READ CHANNEL 16 REGISTER CONTENTS. RDR2 LX6 12 SET FUNCTION REQUEST SA6 PW16 RJ SSR SEND SYSTEM REQUEST SA1 PW16 GET REPLY MX0 -12 BX6 -X0*X1 * SET VALUE IN HOLDING REGISTER. RDR3 SX7 5 SA1 RDRA GET BYTE NUMBER SX5 X1 IX7 X1/X7 WORD NUMBER SB7 X7 SA0 A0+B7 SET WORD ADDRESS SX1 5 IX7 X1*X7 IX1 X5-X7 BYTE ORDINAL IN WORD SX5 12 FORM SHIFT COUNT IX7 X1*X5 SB7 X7 SA1 A0 GET HOLDING WORD MX0 48 BX6 -X0*X6 LX0 B7 FORM MASK LX6 B7 BX7 X0*X1 BX7 X6+X7 INSERT VALUE SA7 A0 SA1 RDRA INCREMENT BYTE NUMBER SX6 X1+B1 SA6 A1 SX7 X6-17 NG X7,RDR1 IF NOT END OF REGISTER EQ RDRX RETURN RDRA CON 0 READ FUNCTION CODE RDRB CON 0 DATA BUFFER ADDRESS SSR SPACE 4,7 ** SSR - SEND SYSTEM REQUEST FOR CYCLE OR READ. * * EXIT SYSTEM REQUEST MADE. * * USES X - 1. * A - 1. * * MACROS SYSTEM. SSR SUBR ENTRY/EXIT SA1 REGF ZR X1,SSR1 IF CHANNEL 16 * SEND CHANNEL 36 CYCLE REQUEST. SYSTEM HFM,R,PW36,100B EQ SSRX RETURN * SEND CHANNEL 16 CYCLE REQUEST. SSR1 SYSTEM HFM,R,PW16,100B EQ SSRX RETURN TITLE DISPLAY SUBROUTINES. DCR SPACE 4,20 ** DCR - DISPLAY CONTENTS OF S/C REGISTER. * * EXIT ACTUAL CONTENTS OF S/C REGISTER (OR INTERLOCK REGISTER) * ON THE CURRENT CHANNEL DISPLAYED ON K-DISPLAY. * * USES X - 1, 2, 6. * B - 2, 3, 4, 6. * A - 2, 6. * * CALLS DYW. DCR3 SA1 DCRB RESTORE PARAMETER WORDS SA2 DCRB+1 BX6 X1 BX7 X2 SA6 PW16 SA7 PW36 DCR SUBR ENTRY/EXIT SA1 PW16 SAVE PARAMETER WORDS SA2 PW36 BX6 X1 BX7 X2 SA6 DCRB SA7 DCRB+1 SX7 DCRA SET BUFFER ADDRESS RJ RDR READ REGISTER CONTENTS SA2 DCRA BUFFER ADDRESS SB6 3 SB3 B0+ SB4 CH16-1 DISPLAY WORD ADDRESS - 1 SA1 REGF ZR X1,DCR1 IF CHANNEL 16 SB4 CH36-1 SET CHANNEL 36 DISPLAY WORD ADDRESS - 1 * DISPLAY CONTENTS ON LEFT SCREEN. DCR1 RJ DYW DISPLAY WORD SA2 A2+B1 GET NEXT WORD SB4 A7+ SAVE LAST ADDRESS SB6 B6-B1 ZR B6,DCR2 IF END OF TRANSFER SB3 B0+ EQ DCR1 DISPLAY NEXT WORD DCR2 SB6 B1 SET ONE LINE NG B3,DCR3 IF ENTIRE REGISTER DISPLAYED SB3 -B1 SET SHORT LINE FLAG SB4 B4+5 EQ DCR1 DISPLAY NEXT WORD DCRA BSS 4 S/C REGISTER BUFFER DCRB BSS 2 PARAMETER SAVE AREA DOC SPACE 4,12 ** DOC - DISPLAY OCTAL WORD. * * ENTRY (X2) = WORD TO DISPLAY. * (B4) = DISPLAY ADDRESS. * (B3) = 0 DISPLAY WHOLE LINE. * =-1 DISPLAY SHORTENED LINE. * * EXIT OCTAL VALUE DISPLAYED. * * USES X - 0, 1, 2, 3, 5, 6, 7. * B - 4, 5, 7. * A - 3, 7. DOC SUBR ENTRY/EXIT MX0 -12 MX5 -3 SB4 B4+4 SB5 5 ZR B3,DOC1 IF WHOLE LINE SB5 2 * DISPLAY WORD IN BYTES. DOC1 BX6 -X0*X2 GET BYTE AX2 12 SB7 4 SX1 B0+ CLEAR ASSEMBLY DOC2 BX7 -X5*X6 GET DIGIT SX7 X7+1R0 CONVERT TO DISPLAY CODE LX1 -6 BX1 X1+X7 ADD TO ASSEMBLY AX6 3 SB7 B7-B1 NZ B7,DOC2 IF NOT ENTIRE BYTE LX1 18 SA3 B4 GET DISPLAY WORD MX7 36 BX3 X7*X3 BX7 X1+X3 ADD TO DISPLAY WORD SA7 A3 SB4 B4-B1 SB5 B5-B1 NZ B5,DOC1 IF NOT ENTIRE LINE DISPLAYED EQ DOCX DYL SPACE 4,11 ** DYL - DISPLAY LINE IN HOLDING REGISTER. * * ENTRY (A0) = WORD ADDRESS. * * EXIT WORD DISPLAYED AS LINE ON *K* DISPLAY. * * USES X - 2, 5, 6, 7. * B - 3, 4. * A - 2. * * CALLS DYW, DOC. DYL SUBR ENTRY/EXIT SX7 A0-LHLD SX6 LL00 PL X7,DYL1 IF CHANNEL 36 REGISTER SX7 A0-UHLD SX6 UL00 * DISPLAY BINARY VALUE. DYL1 SX5 12 DISPLAY WORDS PER LINE IX5 X7*X5 IX6 X6+X5 STARTING DISPLAY ADDRESS SB4 X6-1 SA2 A0 HOLDING REGISTER WORD ADDRESS SB3 B0 SX7 X7-3 NZ X7,DYL2 IF FULL LINE SB3 -B1 SET SHORT LINE FLAG SB4 B4+5 DYL2 RJ DYW DISPLAY WORD * DISPLAY OCTAL VALUE. SX7 A0-LHLD SX6 LOC0 PL X7,DYL3 IF CHANNEL 36 REGISTER SX7 A0-UHLD SX6 UOC0 DYL3 SX5 5 DISPLAY WORDS PER LINE IX5 X7*X5 IX6 X6+X5 STARTING DISPLAY ADDRESS SB4 X6 SA2 A0 HOLDING REGISTER WORD ADDRESS SB3 B0 SX7 X7-3 NZ X7,DYL4 IF FULL LINE SB3 -B1 SET SHORT LINE FLAG DYL4 RJ DOC DISPLAY OCTAL WORD EQ DYLX DYW SPACE 4,15 ** DYW - DISPLAY WORD. * * ENTRY (X2) = WORD TO DISPLAY. * (B4) = DISPLAY ADDRESS - 1. * (B3) = 0 DISPLAY WHOLE LINE. * =-1 DISPLAY SHORTENED LINE. * * EXIT (A7) = LAST DISPLAY ADDRESS. * WORD DISPLAYED ON *K* DISPLAY. * * USES X - 0, 1, 2, 3, 5, 6, 7. * B - 3, 4. * A - 5, 6, 7. * * CALLS CDC. DYW SUBR ENTRY/EXIT ZR B3,DYW1 IF WHOLE WORD LX2 36 * DISPLAY BITS 59 - 54 OF FULL WORD FIRST TIME, * BITS 23 - 18 SECOND TIME, OR SHORT WORD FIRST TIME. DYW1 MX0 6 BX1 X0*X2 GET SIX BITS FOR FIRST WORD LX1 6 RJ CDC CONVERT TO DISPLAY CODE MX0 -36 BX6 -X0*X6 SA5 B4+B1 BX7 X0*X5 BX7 X6+X7 SA7 A5 SAVE FIRST WORD * DISPLAY BITS 53 - 45 OF FULL WORD FIRST TIME, * BITS 17 - 9 SECOND TIME, OR SHORT WORD FIRST TIME. LX2 6 MX0 9 BX1 X0*X2 GET NINE BITS FOR SECOND WORD LX1 9 RJ CDC CONVERT TO DISPLAY CODE MX0 36 LX0 -6 BX3 X0*X6 LX3 6 SX5 1R LX5 18 BX3 X3+X5 INSERT BLANK MX0 -18 BX6 -X0*X6 BX7 X3+X6 SA7 A7+B1 SAVE SECOND WORD * DISPLAY BITS 44 - 36 OF FULL WORD FIRST TIME, * BITS 8 - 0 SECOND TIME, OR SHORT WORD FIRST TIME. LX2 9 MX0 9 BX1 X0*X2 GET NINE BITS FOR THIRD WORD LX1 9 RJ CDC CONVERT TO DISPLAY CODE MX0 -54 BX6 -X0*X6 SX5 1R LX6 6 LEFT JUSTIFY BX7 X6+X5 INSERT BLANK SA7 A7+B1 SAVE THIRD WORD LX2 9 NZ B3,DYWX IF END OF WORD * DISPLAY BITS 35 - 26 OF WORD. MX0 10 BX1 X0*X2 GET TEN BITS FOR FOURTH WORD LX1 10 RJ CDC CONVERT TO DISPLAY CODE SA6 A7+B1 SAVE FOURTH WORD * DISPLAY BITS 25 - 24. LX2 10 MX0 2 BX1 X0*X2 GET TWO BITS FOR FIFTH WORD LX1 2 RJ CDC CONVERT TO DISPLAY CODE MX0 -12 BX6 -X0*X6 LX6 48 LEFT JUSTIFY SA5 A6+B1 MX0 -48 BX7 -X0*X5 SAVE LOWER FIFTH WORD BX7 X6+X7 SA7 A5 SAVE FIFTH WORD LX2 2 SB4 A7 SET LAST ADDRESS SB3 B1+ EQ DYW1 TITLE DISPLAY BUFFER LINE NUMBER TABLES. * LEFT SCREEN LINE NUMBER TABLE. BLNT BSS 0 LOC 0 BSS 6 LHDR BSS 1 LEFT SCREEN HEADER BSS 1 C16H BSS 1 HOLDING REGISTER HEADER BSS 3 UB00 BSS 1 BYTE 0 HEADER U04L BSS 1 BYTES 0-4 BINARY OC00 BSS 1 BYTES 0-4 OCTAL BSS 2 UB05 BSS 1 BYTE 5 HEADER U09L BSS 1 BYTES 5-9 BINARY OC05 BSS 1 BYTES 5-9 OCTAL BSS 2 UB10 BSS 1 BYTE 10 HEADER U14L BSS 1 BYTES 10-14 BINARY OC10 BSS 1 BYTES 10-14 OCTAL BSS 2 UB15 BSS 1 BYTE 15 HEADER U16L BSS 1 BYTES 15-16 BINARY OC15 BSS 1 BYTES 15-16 OCTAL BSS 2 CNAL BSS 1 CHANNEL 36 NOT AVAILABLE MESSAGE LINE BSS 1 PARM BSS 1 INPUT COMMAND LINE MSGE BSS 1 ERROR MESSAGE LINE BSS 2 ACTH BSS 1 S/C REGISTER HEADER BSS 1 AC16 BSS 1 CHANNEL NUMBER LINE W113 BSS 1 BYTES 4 - 0 S/C REGISTER W114 BSS 1 BYTES 9 - 5 S/C REGISTER W115 BSS 1 BYTES 14 - 10 S/C REGISTER W116 BSS 1 BYTES 16 - 15 S/C REGISTER ELNT EQU * ERRNG 48-ELNT IF TOO MANY DISPLAY LINES LOC *O ORG BLNT SPACE 4 * RIGHT SCREEN LINE NUMBER TABLE. BRNT BSS 0 LOC 0 BSS 6 RHDR BSS 1 RIGHT SCREEN HEADER BSS 1 PHDL BSS 1 COMMAND DESCRIPTION HEADER LINE BSS 1 AREL BSS 1 AREA COMMAND BSS 1 BYTL BSS 1 BYTE COMMAND BSS 1 CLRL BSS 1 CLEAR COMMAND BSS 1 CYCL BSS 1 CYCLE COMMAND BSS 1 ENDL BSS 1 END COMMAND BSS 1 LINL BSS 1 LINE COMMAND BSS 1 REAL BSS 1 READ COMMAND BSS 1 SETL BSS 1 SET COMMAND BSS 3 PLUL BSS 1 + COMMAND BSS 3 GOLL BSS 1 GO COMMAND BSS 1 STOL BSS 1 STOP COMMAND BSS 5 DECL BSS 1 DECIMAL BASE ASSUMED ON ARGUMENTS SECL BSS 1 EXCLUDING OCTAL VALUES VALL BSS 1 OCTAL VALUES LINE ERNT EQU * ERRNG 48-ERNT IF TOO MANY DISPLAY LINES LOC *O ORG BRNT TITLE DISPLAY BUFFER. * *K* DISPLAY LEFT SCREEN. L. EQU * L16 VFD 12/0,36/0,12/2 DISPLAY CONTROL WORD DSL 15,LHDR,(TEMPORARY HOLDING REGISTER CONTENTS) DSL 15,LHDR,(TEMPORARY HOLDING REGISTER CONTENTS) DSL 8,C16H,(CHANNEL 16 REGISTER - LINES 0-3) DSL 8,C16H,(CHANNEL 16 REGISTER - LINES 0-3) * BINARY DISPLAY OF CHANNEL 16 HOLDING REGISTER CONTENTS. DSL 0,UB00,(BITS 59- 0) DSL 55,UB00,(BYTE 00) UL00 EQU * DSL 0,U04L,(000000000000 000000000000 000000000000 ) DSL 39,U04L,(000000000000 000000000000) DSL 0,UB05,(BITS 119- 60) DSL 55,UB05,(BYTE 05) DSL 0,U09L,(000000000000 000000000000 000000000000 ) DSL 39,U09L,(000000000000 000000000000) DSL 0,UB10,(BITS 179-120) DSL 55,UB10,(BYTE 10) DSL 0,U14L,(000000000000 000000000000 000000000000 ) DSL 39,U14L,(000000000000 000000000000) DSL 0,UB15,(BITS 203-180) DSL 55,UB15,(BYTE 15) DSL 0,U16L,( ) DSL 39,U16L,(000000000000 000000000000) * OCTAL DISPLAY OF CHANNEL 16 HOLDING REGISTER CONTENTS. UOC0 EQU * DSL 2,OC00,( 0000) DSL 15,OC00,( 0000) DSL 28,OC00,( 0000) DSL 41,OC00,( 0000) DSL 54,OC00,( 0000) DSL 2,OC05,( 0000) DSL 15,OC05,( 0000) DSL 28,OC05,( 0000) DSL 41,OC05,( 0000) DSL 54,OC05,( 0000) DSL 2,OC10,( 0000) DSL 15,OC10,( 0000) DSL 28,OC10,( 0000) DSL 41,OC10,( 0000) DSL 54,OC10,( 0000) DSL 2,OC15,( ) DSL 15,OC15,( ) DSL 28,OC15,( ) DSL 41,OC15,( 0000) DSL 54,OC15,( 0000) * CHANNEL 36 NOT AVAILABLE MESSAGE AREA. CNAW EQU *+1 DSL 15,CNAL,( ) * INPUT COMMAND AND ERROR MESSAGE AREA. PARL EQU *+1 DSL 2,PARM,( ) DSL 48,PARM,( ) MSGL EQU *+1 DSL 10,MSGE,( ) DSL 18,ACTH,(ACTUAL S/C REGISTER CONTENTS) DSL 22,AC16,(CHANNEL 16 REGISTER) * BINARY DISPLAY OF CHANNEL 16 S/C REGISTER CONTENTS. CH16 EQU * DSL 0,W113,(000000000000 000000000000 000000000000 ) DSL 39,W113,(000000000000 000000000000) DSL 0,W114,(000000000000 000000000000 000000000000 ) DSL 39,W114,(000000000000 000000000000) DSL 0,W115,(000000000000 000000000000 000000000000 ) DSL 39,W115,(000000000000 000000000000) DSL 0,W116,( ) DSL 39,W116,(000000000000 000000000000) BSSZ 1 SPACE 4 M. EQU * L36 VFD 12/0,36/0,12/2 DISPLAY CONTROL WORD DSL 15,LHDR,(TEMPORARY HOLDING REGISTER CONTENTS) DSL 15,LHDR,(TEMPORARY HOLDING REGISTER CONTENTS) DSL 8,C16H,(CHANNEL 36 REGISTER - LINES 0-3) DSL 8,C16H,(CHANNEL 36 REGISTER - LINES 0-3) * BINARY DISPLAY OF CHANNEL 36 HOLDING REGISTER CONTENTS. DSL 0,UB00,(BITS 59- 0) DSL 55,UB00,(BYTE 00) LL00 EQU * DSL 0,U04L,(000000000000 000000000000 000000000000 ) DSL 39,U04L,(000000000000 000000000000) DSL 0,UB05,(BITS 119- 60) DSL 55,UB05,(BYTE 05) DSL 0,U09L,(000000000000 000000000000 000000000000 ) DSL 39,U09L,(000000000000 000000000000) DSL 0,UB10,(BITS 179-120) DSL 55,UB10,(BYTE 10) DSL 0,U14L,(000000000000 000000000000 000000000000 ) DSL 39,U14L,(000000000000 000000000000) DSL 0,UB15,(BITS 203-180) DSL 55,UB15,(BYTE 15) DSL 0,U16L,( ) DSL 39,U16L,(000000000000 000000000000) * OCTAL DISPLAY OF CHANNEL 36 HOLDING REGISTER CONTENTS. LOC0 EQU * DSL 2,OC00,( 0000) DSL 15,OC00,( 0000) DSL 28,OC00,( 0000) DSL 41,OC00,( 0000) DSL 54,OC00,( 0000) DSL 2,OC05,( 0000) DSL 15,OC05,( 0000) DSL 28,OC05,( 0000) DSL 41,OC05,( 0000) DSL 54,OC05,( 0000) DSL 2,OC10,( 0000) DSL 15,OC10,( 0000) DSL 28,OC10,( 0000) DSL 41,OC10,( 0000) DSL 54,OC10,( 0000) DSL 2,OC15,( ) DSL 15,OC15,( ) DSL 28,OC15,( ) DSL 41,OC15,( 0000) DSL 54,OC15,( 0000) * INPUT COMMAND AND ERROR MESSAGE AREA. PARK EQU *+1 DSL 2,PARM,( ) DSL 48,PARM,( ) MSGK EQU *+1 DSL 10,MSGE,( ) DSL 18,ACTH,(ACTUAL S/C REGISTER CONTENTS) DSL 22,AC16,(CHANNEL 36 REGISTER) * BINARY DISPLAY OF CHANNEL 36 S/C REGISTER CONTENTS. CH36 EQU * DSL 0,W113,(000000000000 000000000000 000000000000 ) DSL 39,W113,(000000000000 000000000000) DSL 0,W114,(000000000000 000000000000 000000000000 ) DSL 39,W114,(000000000000 000000000000) DSL 0,W115,(000000000000 000000000000 000000000000 ) DSL 39,W115,(000000000000 000000000000) DSL 0,W116,( ) DSL 39,W116,(000000000000 000000000000) BSSZ 1 SPACE 4 * *K* DISPLAY RIGHT SCREEN. R. EQU * R VFD 12/0,36/0,12/2 DISPLAY CONTROL WORD DSL 23,RHDR,(SIMULATOR COMMANDS) DSL 8,PHDL,(COMMAND) DSL 34,PHDL,(DESCRIPTION) DSL 0,AREL,(AREA,A,M,Y.) DSL 24,AREL,(SET M BITS FROM A TO OCTAL VALUE Y) DSL 0,BYTL,(BYTE,XX,YYYY.) DSL 24,BYTL,(SET BYTE XX TO OCTAL VALUE YYYY) DSL 0,CLRL,(CLEAR,A,B,...,Z.) DSL 24,CLRL,(CLEAR BITS A,B,...,Z) DSL 0,CYCL,(CYCLE,X,T,R.) DSL 24,CYCL,(SET BIT X EVERY 16*T MS. R TIMES) DSL 0,ENDL,(END.) DSL 24,ENDL,(END CYCLE COMMAND BEFORE R REACHED) DSL 0,LINL,(LINE,X,Y.) DSL 24,LINL,(SET LINE X TO OCTAL VALUE Y) DSL 0,REAL,(READ.) DSL 24,REAL,(READ S/C REGISTER INTO HOLDING REGISTER) DSL 0,SETL,(SET,A,B,...,Z.) DSL 24,SETL,(SET BITS A,B,...,Z) DSL 0,PLUL,(+.) DSL 24,PLUL,(CHANGE REGISTER BEING USED AND K DISPLAY) DSL 0,GOLL,(GO.) DSL 24,GOLL,(ENTER HOLDING REGISTERS IN S/C REGISTERS) DSL 0,STOL,(STOP.) DSL 24,STOL,(END THE SIMULATOR) DSL 0,DECL,(ALL BIT, BYTE, AND LINE NUMBERS ASSUMED ) DSL 40,DECL,(DECIMAL.) DSL 0,SECL,(TIME VALUES ASSUMED DECIMAL) DSL 0,VALL,(Y AND YYYY VALUES MUST BE OCTAL.) BSSZ 1 SPACE 4 * COMMON DECKS. *CALL COMCCIO *CALL COMCCOD *CALL COMCCPM *CALL COMCDXB *CALL COMCMVE *CALL COMCRDC *CALL COMCRDW *CALL COMCSYS USE LITERALS SPACE 4 * BUFFERS. IBUF EQU * FET INPUT BUFFER OBUF EQU IBUF+IBUFL OUTPUT BUFFER RFL= EQU OBUF+OBUFL+100B PRS TITLE PRESET. ** PRS - PRESET. * * EXIT (CA) = 1 IF CHANNEL 36 NOT AVAILABLE. * *K* DISPLAY INITIALIZED. * * USES X - 0, 1, 2, 6, 7. * A - 1, 2, 6. PRS SUBR ENTRY/EXIT * CHECK CYBER 170 BIT AND NUMBER OF PP-S. SYSTEM RSB,R,PRSE SA1 PRSD CMR WORD *MABL* LX1 59-43 LX2 X1,B1 PL X1,PRS0 IF CYBER 70 INTERLOCK REGISTER NG X2,PRS3 IF NOT CYBER 170 STATUS CONTROL REGISTER PRS0 SYSTEM RSB,R,PRSC SA1 PRSB CMR WORD *PPUL* AX1 24 MX0 -12 BX1 -X0*X1 NUMBER OF PP-S SX6 11 IX6 X1-X6 PL X6,PRS2 IF CHANNEL 36 AVAILABLE PRS1 SX6 B1+ SET CHANNEL 36 NOT AVAILABLE SA6 CA MOVE 3,PRSA,CNAW *CHANNEL 36 NOT AVAILABLE* * INITIALIZE *K* DISPLAY. PRS2 CONSOLE K INITIALIZE *K* DISPLAY EQ PRSX RETURN PRS3 MESSAGE PRSF,0,R * NO SCR ON MAINFRAME.* ABORT TERMINATE PROGRAM PRSA DIS 3,CHANNEL 36 NOT AVAILABLE BSSZ 1 PRSB VFD 1/1,59/0 PRSC VFD 24/1,18/PPUL,18/PRSB RSB CONTROL WORD PRSD VFD 1/1,59/0 PRSE VFD 24/1,18/MABL,18/PRSD RSB CONTROL WORD PRSF DATA C* NO SCR ON MAINFRAME.* SPACE 4 END