DD60 * /--- FILE TYPE = E * /--- BLOCK IDENT 00 000 86/04/15 10.50 IDENT CONSOLE,111B,CONSOLE ABS CONSOLE TTL PLATO TERMINAL EMULATOR FOR THE DD60 CONSOLE SPACE 4 ENTRY CONSOLE SYSCOM B1 SST ORG 111B DCPU EQU 72B CPU PRIORITY (SAME AS CONDEN) XTEXT TITLE GET SYSTEM TEXTS LIST F *CALL COMSSSD *CALL AIDTEXT *CALL PLAP501 *CALL SYSCON *CALL PLASRWX *CALL PARAMC *CALL PCFTEXT *CALL PLASMRC *CALL COMCMAC *CALL COMCDCM *CALL COMSPRD LIST F,X *CALL DTEXT LIST * * /--- BLOCK BUFFERS 00 000 84/12/10 12.47 BUFFERS TITLE CHARACTER AND POINT BUFFERS *** THE LOCATIONS AND LENGTHS ARE DEFINED IN DTEXT * ORG 111B KBUF BSSZ 1 KEYSET BUFFER LBUF BSSZ LBUFLNG FROM THE FORLDIS OVERLAY * /--- BLOCK HBUF 00 000 84/12/10 12.49 HBUF TITLE SPECIAL PLATO CHARACTER DEFINITIONS *** HBUF - HARDWARE CHARACTER MEMORY * * THE FOLLOWING DATA CODES WILL PLOT * THE PLATO SPECIAL CHARACTERS. * THE CODES ARE IN A PREDETERMINED * ORDER (SEE *CTAB*) LIST F,X *CALL DCHARS BASE O LIST * HBUF BSS 0 LOC 0 NN SET 0 MACREF PKEY$ MACRO PKEY,NAME MACREF PKEY NAME EQU NN/8D NN SET NN+8D ENDM COLN PKEY DATA 0 DATA 0 DATA 0 DATA 420 DATA 0 DATA 0 DATA 0 DATA 0 DOLR PKEY DATA 3100 DATA 4440 DATA 4440 DATA 17760 DATA 4440 DATA 4440 DATA 2300 DATA 0 DIV PKEY DATA 0 DATA 200 DATA 200 DATA 1240 DATA 200 DATA 200 DATA 0 DATA 0 LBKT PKEY DATA 0 DATA 0 DATA 0 DATA 0 DATA 17770 DATA 10010 DATA 10010 DATA 0 RBKT PKEY DATA 0 DATA 10010 DATA 10010 DATA 17770 DATA 0 DATA 0 DATA 0 DATA 0 PCT PKEY DATA 6060 DATA 11100 DATA 6200 DATA 400 DATA 1140 DATA 2220 DATA 4140 DATA 0 TIMS PKEY DATA 1000 DATA 1020 DATA 440 DATA 300 * /--- BLOCK HBUF 00 000 76/10/16 15.23 DATA 300 DATA 460 DATA 1020 DATA 0 ASSN PKEY DATA 200 DATA 500 DATA 1040 DATA 3560 DATA 500 DATA 500 DATA 500 DATA 0 TICK PKEY DATA 0 DATA 0 DATA 2000 DATA 34000 DATA 0 DATA 0 DATA 0 DATA 0 QUOT PKEY DATA 0 DATA 2000 DATA 36000 DATA 0 DATA 2000 DATA 34000 DATA 0 DATA 0 EXCL PKEY DATA 0 DATA 0 DATA 0 DATA 17560 DATA 0 DATA 0 DATA 0 DATA 0 SEMI PKEY DATA 0 DATA 0 DATA 4 DATA 470 DATA 0 DATA 0 DATA 0 DATA 0 LCRT PKEY DATA 0 DATA 200 DATA 500 DATA 1040 DATA 2020 DATA 0 DATA 0 DATA 0 RCRT PKEY DATA 0 DATA 0 DATA 2020 DATA 1040 DATA 500 DATA 200 DATA 0 DATA 0 UNDL PKEY DATA 4 DATA 4 DATA 4 DATA 4 DATA 4 DATA 4 DATA 4 DATA 0 QSMK PKEY DATA 0 DATA 6000 DATA 10000 DATA 10320 DATA 10400 DATA 7000 DATA 0 DATA 00 ARRW PKEY DATA 16034 DATA 11044 DATA 4510 DATA 2220 DATA 1040 DATA 500 DATA 200 DATA 0 NUMB PKEY DATA 1100 DATA 1100 DATA 7760 DATA 1100 DATA 1100 DATA 7760 DATA 1100 DATA 1100 TLDE PKEY DATA 4000 DATA 10000 DATA 10000 DATA 4000 DATA 2000 DATA 2000 DATA 4000 DATA 0 DOTS PKEY DATA 0 * /--- BLOCK HBUF 00 000 76/10/16 15.30 DATA 0 DATA 10000 DATA 0 DATA 0 DATA 10000 DATA 0 DATA 0 HAT PKEY DATA 0 DATA 10000 DATA 20000 DATA 40000 DATA 20000 DATA 10000 DATA 0 DATA 0 LSLT PKEY DATA 0 DATA 4000 DATA 4000 DATA 10000 DATA 10000 DATA 10000 DATA 20000 DATA 0 RSLT PKEY DATA 0 DATA 20000 DATA 10000 DATA 10000 DATA 10000 DATA 4000 DATA 4000 DATA 0 UARW PKEY DATA 0 DATA 400 DATA 1000 DATA 3760 DATA 1000 DATA 400 DATA 0 DATA 0 RARW PKEY DATA 200 DATA 200 DATA 200 DATA 200 DATA 1240 DATA 700 DATA 200 DATA 0 DARW PKEY DATA 0 DATA 100 DATA 40 DATA 3760 DATA 40 DATA 100 DATA 0 DATA 0 LARW PKEY DATA 200 DATA 700 DATA 1240 DATA 200 DATA 200 DATA 200 DATA 200 DATA 0 APRX PKEY DATA 100 DATA 200 DATA 200 DATA 100 DATA 40 DATA 40 DATA 100 DATA 0 SGMA PKEY DATA 10010 DATA 16070 DATA 11110 DATA 10610 DATA 10010 DATA 10010 DATA 10010 DATA 0 DLTA PKEY DATA 60 DATA 320 DATA 1420 DATA 6020 DATA 1420 DATA 320 DATA 60 DATA 0 LSCL PKEY DATA 300 DATA 140 DATA 20 DATA 20 DATA 20 DATA 140 DATA 300 * /--- BLOCK HBUF 00 000 76/10/16 15.32 DATA 0 USCL PKEY DATA 1400 DATA 3000 DATA 4000 DATA 4000 DATA 4000 DATA 3000 DATA 1400 DATA 0 LPAR PKEY DATA 400 DATA 17360 DATA 20010 DATA 20010 DATA 0 DATA 0 DATA 0 DATA 0 RPAR PKEY DATA 0 DATA 0 DATA 0 DATA 20010 DATA 20010 DATA 17360 DATA 400 DATA 0 AND PKEY DATA 0 DATA 60 DATA 1510 DATA 2210 DATA 2310 DATA 1450 DATA 20 DATA 10 NTEQ PKEY DATA 40 DATA 1300 DATA 1200 DATA 1600 DATA 1200 DATA 3200 DATA 5200 DATA 0 LINE PKEY DATA 0 DATA 0 DATA 0 DATA 37774 DATA 0 DATA 0 DATA 0 DATA 0 DEG PKEY DATA 0 DATA 03000 DATA 4400 DATA 10200 DATA 10200 DATA 4400 DATA 3000 DATA 0 DEFN PKEY DATA 1240 DATA 1240 DATA 1240 DATA 1240 DATA 1240 DATA 1240 DATA 1240 DATA 0 ALPH PKEY DATA 600 DATA 1100 DATA 2040 DATA 2040 DATA 1100 DATA 700 DATA 1040 DATA 0 BETA PKEY DATA 0 DATA 7770 DATA 10420 DATA 10420 DATA 10420 DATA 7340 DATA 0 DATA 0 SSGM PKEY DATA 0 DATA 0 DATA 1540 DATA 2220 DATA 4220 DATA 140 DATA 0 DATA 0 LMDA PKEY DATA 0 DATA 20 DATA 6040 DATA 1500 DATA 200 DATA 140 DATA 20 * /--- BLOCK HBUF 00 000 76/10/16 15.35 DATA 0 MU PKEY DATA 10 DATA 1760 DATA 10 DATA 10 DATA 10 DATA 1760 DATA 10 DATA 0 PI PKEY DATA 1000 DATA 1000 DATA 1760 DATA 1000 DATA 1760 DATA 1000 DATA 1000 DATA 0 RHO PKEY DATA 0 DATA 700 DATA 1104 DATA 1100 DATA 1100 DATA 600 DATA 0 DATA 0 SDLT PKEY DATA 0 DATA 140 DATA 220 DATA 220 DATA 340 DATA 200 DATA 200 DATA 100 OMGA PKEY DATA 740 DATA 1020 DATA 20 DATA 160 DATA 20 DATA 1020 DATA 740 DATA 0 LTEQ PKEY DATA 0 DATA 210 DATA 510 DATA 1050 DATA 10 DATA 10 DATA 0 DATA 0 GTEQ PKEY DATA 0 DATA 0 DATA 10 DATA 10 DATA 1050 DATA 510 DATA 210 DATA 0 THTA PKEY DATA 0 DATA 1740 DATA 2220 DATA 2220 DATA 2220 DATA 2220 DATA 1740 DATA 0 EACH PKEY DATA 740 DATA 1020 DATA 2310 DATA 2450 DATA 2750 DATA 1040 DATA 700 DATA 0 BKSL PKEY DATA 2000 DATA 1000 DATA 400 DATA 200 DATA 100 DATA 40 DATA 20 DATA 0 LOC *O BASE D LIST * * /--- BLOCK GOPLT 00 000 76/10/09 19.38 GOPDD SPACE 4 * FIRST TIME FLAG GOPDD DATA 1 PDD STARTS WHEN GOPDD = 0 PDDSTAT DATA 2 PDD STATUS WORD CONTYPE DATA -1 -1=NOT READY, 0=CC545, 1=CDC721 SCOPY BSSZ MDISMAX DISPLAY SCREEN COPY PDDBUF BSSZ MDISMAX+64D PDD COMMAND BUFFER SWK1 DATA 0,0,0 SYSTEM WORK WORDS SWK2 EQU SWK1+1 KB2A DATA 0,0 KEY BUFFER * /--- BLOCK ECS 00 000 76/10/09 19.00 ECS TITLE BUFFER OF ECS POINTER WORDS *** ECS POINTERS. SET UP AT INITIALIZATION. ECSPNT BSS 0 ECSADD BSSZ 1 POINTER TO KEY BUFFERS LDISADD BSSZ 1 POINTER TO L DISPLAY BUFFER BSSZ NDSPLOC-*+ECSPNT PAD AREA * /--- BLOCK MAIN LOOP 00 000 79/05/28 07.06 MNL TITLE SCREEN DISPLAY FORMATS * * * THERE ARE THREE CM BUFFERS ASSOCIATED WITH * THE CONSOLE DISPLAY. * * *LBUF* - CURRENT FORMATTED DISPLAY * FORMAT- * WORD 1 - 36/0 * 12/X-COORDINATE * 12/Y-COORDINATE * WORDS 2-8 - 6 BIT DISPLAY CODES * * *SCOPY* - CURRENT SCREEN DISPLAY * FORMAT- * WORD 1 - 36/0 * 12/X-COORDINATE * 12/Y-COORDINATE * WORDS 2-8 - 6 BIT DISPLAY CODES * * *PDDBUF* - COMMAND BUFFER TO PP/PDD * FORMAT- * WORD 1 - 36/0 * 12/X-COORDINATE * 12/Y-COORDINATE * WORDS 2-8 - 6 BIT DISPLAY CODES * OR * WORD 1 - 24/0 * 12/X-COORDINATE * 12/Y-COORDINATE * 12/ERASE TO EOL CODE(FEELF) * * CDC721 SYSTEM CONSOLE - * WORD BY WORD COMPARISON OF *LBUF* IS MADE * WITH *SCOPY*. * CHANGED WORDS ARE UPDATED IN *SCOPY*. * ONLY CHANGED LINES ARE WRITTEN TO *PDDBUF*. * CHANGED LINES ARE WRITTEN TO *PDDBUF* AS AN * ERASE TO END-OF-LINE FUNCTION(EELF) FOLLOWED * BY THE CONTENTS OF THE LINE IN *LBUF*. * BLANK LINES ARE NOT WRITTEN TO *PDDBUF*. * * CC545 CONSOLE - * CONTENTS OF THE FORMATTER SCREEN BUFFER IS * WRITTEN TO *LBUF*. * PP/PDD READS *LBUF*. * * DEFINES FOR CM DISPLAY BUFFERS * MLP TITLE MAIN EXECUTION LOOP *** MAIN EXECUTION LOOP * CHECK FOR KEYS AND BUFFER CHANGES * USE MAIN MLP RJ KBI CHECK FOR KEY INPUTS SA1 PDDBUF CHECK FOR PP/PDD READY ZR X1,MLP0 RECALL EQ MLP LOOP MLP0 SA1 LDISADD GET DISPLAY ADDRESS BX0 X1 SA0 SWK1 READ BUFFER COUNTER RE 3 AND BUFFER LENGTHS - RJ ECSPRTY SA1 A0 SA2 BUFCNT IX2 X1-X2 LOOK FOR CHANGE NZ X2,MLP1 IF NEW BUFFER RECALL SX6 2 SA6 PDDSTAT EQ MLP GO LOOK AGAIN * PROCESS NEW BUFFER MLP1 BX6 X1 RESET LOCAL BUFFER COUNTER SA6 A2 BUFCNT SX1 8 SET ECS ADDRESS TO REAL BUFFER SA2 SWK1+1 GET BUFFER LENGTH IX0 X0+X1 * /--- BLOCK MAIN LOOP 00 000 79/05/28 07.06 SB2 X2 BX6 X2 SET BUFFER LENGTH FOR PDD SA6 LBUF SA0 A6+B1 RE B2 - RJ ECSPRTY SA1 CONTYPE ZR X1,MLP2 IF CC545 CONSOLE * INITIALIZATIONS FOR READING THE DISPLAY BUFFER SA1 LBUF SB3 X1+LBUF B3=END OF *LBUF* SA3 LBUF FWA OF *LBUF* SA4 SCOPY FWA OF *SCOPY* SB4 WPL CM WORDS PER LINE SB6 PDDBUF COMMAND BUFFER FOR PP/PDD * INITIALIZATIONS FOR LINE BY LINE COMPARISON CB10 SB7 A3+WPL CHECK FOR END OF BUFFER SX0 B3-B7 NG X0,CB200 EXIT SB5 B0 INITIALIZE FLAG FOR BLANK LINE SX5 B0 INITIALIZE NON-ZERO LINE SA3 A3+B1 CAUSE SKIP ON X/Y COORDINATES SA4 A4+B1 CAUSE SKIP ON X/Y COORDINATES SB2 B1 SKIPPED ONE WORD * CB20 SB2 B2+B1 INCREMENT WORDS/LINE READ SX0 B4-B2 CHECK FOR END OF DISPLAY LINE NG X0,CB60 TRANSFER LINE TO *PDDBUF* SA3 A3+B1 PTR INTO *LBUF* ZR X3,CB30 CHECK FOR NON-ZERO WORD SB5 -B1 FLAG NON-ZERO LINE CB30 SA4 A4+B1 PTR INTO *SCOPY* BX4 X3-X4 CHECK FOR A CHANGE ZR X4,CB20 LOOP IF NO CHANGE SX5 -B1 THIS LINE CHANGED BX6 X3 UPDATE *SCOPY* FROM *LBUF* SA6 A4 EQ CB20 LOOP * CB60 ZR X5,CB10 NO CHANGE ON THIS LINE. LOOP. SA1 CONTYPE CHECK CONSOLE TYPE ZR X1,CB100 545 CONSOLE * LOAD ERASE TO END OF LINE FUNCTION TO *PDDBUF* SB7 A3-B4 GET X/Y FOR THIS LINE SA1 B7+B1 BX6 X1 LX6 12 SX0 FEELF BX6 X6+X0 SB6 B6+B1 B6=PTR INTO *PDDBUF* SA6 B6 STORE IT ZR B5,CB10 DONE IF LINE IS BLANK * TRANSFER THIS LINE TO *PDDBUFF*. CB100 SB7 A3-B4 SB7 B7+B1 CB110 SA1 B7 BX6 X1 SB6 B6+B1 POSITION IN *PDDBUF* SA6 B6 SX0 A3 TEST FOR END OF LINE SB7 B7+B1 SX5 B7 IX0 X0-X5 PL X0,CB110 TRANSFER NEXT WORD EQ CB10 GET NEXT LINE CB200 SX6 B6-PDDBUF STORE LENGTH OF *PDDBUF* SA6 PDDBUF MLP2 MX6 0 SA6 GOPDD LET PDD GO * /--- BLOCK MAIN LOOP 00 000 79/05/28 07.06 SA1 MLP3 BX6 X1 SA6 MLP2 PLANT JUMP MLP3 EQ MLP LOOP BUFCNT DATA -1 FORCE FIRST BUFFER READ * /--- BLOCK KBI 00 000 76/10/16 18.28 KBI TITLE KEYBOARD INPUT *** KBI - KEYBOARD INPUT * * PLUGS THE ENTERED KEY INTO PLATO * KEY BUFFER IN ECS. KBI SUBR SA2 KBUF GET POSSIBLE KEY PL X2,KBI --- EXIT MX3 1 BX2 -X3*X2 CLEAR UPPER BIT SET BY *PDD* SA0 KB2A SA4 ECSADD SX0 X4+LSTUD*2 + RE 2 - RJ ECSPRTY SA3 A0 SA4 A0+B1 MX5 -12 BX6 -X5*X3 PPU WORD COUNT BX0 -X5*X4 CP WORD COUNT SX5 B1 IX6 X6+X5 INCREMENT PP WORD COUNT * /--- BLOCK KBI 00 000 76/10/16 18.28 SB6 X6 SAVE BYTE COUNT SX5 3 BX6 X6*X5 MOD 4 BYTE COUNT LX6 2 *4 SB7 X6 SB7 B7+B7 SB7 B7+X6 *12 SB7 B7+12 MX5 -12 LX3 X3,B7 PUT APPROPRIATE BYTE IN LOWER BITS BX3 X5*X3 CLEAR LOWER BITS BX3 X3+X2 MERGE IN CHARACTER SB7 B7-60 AX6 X3,B7 RETURN KEYWORD TO ORIGINAL POSITION SX4 B6 SX3 7777B BX4 X3*X4 TAKE 12 BIT SUM BX6 X6*X5 IX6 X6+X4 RESTORE BYTE COUNT SA6 A0 SA4 ECSADD SX0 X4+LSTUD*2 + WE 1 - RJ ECSPRTY SX7 2 CLEAR KEY AND STATUS SA7 KBUF SA7 PDDSTAT EQ KBIX RETURN * /--- BLOCK DSYS 00 000 80/01/24 09.36 COMCSYS TITLE SYSTEM COMUNICATIONS *** COMUNICATED WITH SYSTEM AND MASTOR * * *CALL COMCSYS * /--- BLOCK ECSPRTY 00 000 80/09/02 23.16 ECSPRTY TITLE ECSPRTY - ECS ERROR ACTION *** ECS ERROR ACTION * * ISSUE MESSAGE AND ABORT ECSPRTY SUBR MESSAGE ECSMSG,0,R ABORT ECSMSG DIS ,* ++++ ECS ERROR ++++* * /--- BLOCK SETCM 00 000 76/10/09 17.18 SETCM TITLE SET RUNNING CM MEMORY *** SET UP RUNNING CM MEMORY.. * * SETCM SX6 CMEND+1+77B ROUND UP AX6 6 LX6 30+6 SA6 SWK1 SET UP REQUEST MEMORY CM,SWK1,RECALL * RECALL SWK1 EQ MLP EXIT TO MAIN LOOP CMEND BSS 0 * /--- BLOCK CONSOLE 00 000 80/01/18 04.30 CONSOLE TITLE INITIALIZATIONS *** SET PRIORITIES AND AFFILIATE WITH PLATO * * CONSOLE SB1 1 SET UNIVERSAL CONSTANT FOR B1=1 * * * SET QUEUE PRIORITIES * * SX1 DCPU CPU PRIORITY .NOSV2 IFGE OSLEV,562D NOS V2 SX2 IRSI PREVENT ROLLOUT .NOSV2 ELSE NOS V1 SX2 LSSS-1 EQUAL TO MASTOR .NOSV2 ENDIF LX2 30 BX6 X1+X2 SA6 SWK1+1 MASTOR SWK1,MS.PRI * * * AFFILIATE WITH PLATO * * SRDY1 BSS 0 SA1 =4L"LGC.PLAT" PLATO LOGIC IDENTIFIER BX6 X1 SA6 SWK1+1 MASTOR SWK1,MS.AFF MX0 -11 SA1 SWK1 CHEKC REPLY CODE AX1 12 BX1 -X0*X1 MASK OFF ERROR CODE ZR X1,SRDY3 IF SUCCESSFUL RECALL EQ SRDY1 TO TRY AGAIN * * * NOW READ IN ECS PARAMETERS * * SRDY2 RECALL SRDY3 SA0 SWK1 READ EM LOW CORE POINTER SX0 DSPINTP RE 1 ONE WORD POINTER - RJ ECSPRTY SA1 A0 GET POINTER PL X1,SRDY2 MX2 1 STRIP OK BIT BX0 -X2*X1 SA0 ECSPNT RE NDSPLOC NUMBER OF POINTER WORDS - RJ ECSPRTY * * * BRING UP DISPLAY DRIVER * * MX6 0 SA6 SWK1 CLEAR STATUS BIT SYSTEM PDD,,PDDSTAT RECALL PDDSTAT WAIT FOR PDD * SRDY9 SA1 CONTYPE WAIT TIL PDD SETS CONSOLE TYPE NG X1,SRDY9 * EQ SETCM GO SET CM MEMORY REQUIREMENTS END CONSOLE * /--- BLOCK PLT 00 000 82/11/02 10.52 IDENT PDD,PDD PERIPH SST RDS COMMENT DISPLAY DRIVER FOR CONSOLE TITLE DISPLAY DRIVER FOR X.CONSOLE LIST F SPACE 4 * GET SYSTEM PPU MACROS *CALL COMPMAC BASE MIXED LIST X *CALL COMDMAC LIST * BASE * *CALL COMSPIM *CALL COMSSSJ *CALL COMSCPS *CALL AIDTEXT *CALL SYSCON *CALL PCFTEXT *CALL DTEXT BASE MIXED .NOSV1 IFLT OSLEV,562D NOS V1 SPACE 4 ** DISPLA - DISPLAY DATA * * * DISPLA X,X,(TEXT) * ENTRY *X* = X-COORDINATE * *Y* = Y-COORDINATE * *TEXT* = DISPALY TEXT * IF COORDINATES NOT PRESENT DISPLAY AT PRESENT * SCREEN POSITION DISPLA MACRO X,Y,T LOCAL I,J,K QUAL K MICRO 1,,$T$ .1 MICCNT K I SET .1+1 I SET I/2 LDN K OAM J,CH QUAL * DIS RMT QUAL J BSS 0 IFNE X,,2 CON X I SET I+1 IFNE Y,,2 CON Y I SET I+1 DATA H$"K"$ K EQU I QUAL * DIS RMT ENDM .NOSV1 ENDIF * /--- BLOCK PLT 00 000 82/11/02 10.53 TITLE DIRECT CELL ASSIGNMENTS * * MACRO DRC,NAME,ARG NAME EQU DRC$ CON NAME QUAL IFC EQ,*ARG** DRC$ SET DRC$+1 ELSE 1 DRC$ SET ARG+DRC$ QUAL * ENDM *** DIRECT LOCATION ASSIGNMENTS DRC$ SET LA ORG PPFW UC DRC UPPER CASE CHARACTER FLAG SL DRC SHIFT LEVEL FOR KBI PROCESSING LC DRC LAST KEY PRESSED FN DRC 5 CM KEY BUFFER WORD XC DRC USED BY *COMDDIS* / *COMDSYS* YC DRC USED BY *COMDDIS* / *COMDSYS* .NOS23 IFLT OSLEV,617D NC DRC USED BY *COMDSYS* .NOS23 ELSE CT DRC CONSOLE TYPE (0=CC545, 1=721) .NOS23 ENDIF BF DRC PLATO BUFFER CONTROL (1/SEC) SPACE 3 ERRPL DRC$-IR TOO MANY DIRECT CELLS USED SPACE 4 *** ASSEMBLY CONSTANTS CH EQU CHDS DISPLAY CHANNEL NAME MICRO 1,, PDD USED BY *COMDDSP* SPACE 4 TITLE MAIN LOOP * /--- BLOCK PLT LOOP 00 000 84/08/01 07.50 SPACE 4 ORG PPFW PDD LJM PRS PRESET * MAIN LOOP MNL LDD CT GET CONSOLE TYPE ZJN MNL0 IF CC545 CONSOLE LJM MNL7210 IF CDC721 CONSOLE MNL0 FJM *,CH IF DATA NOT TAKEN, WAIT DCN CH+40 CFNC SLSF SELECT LEFT SCREEN, SMALL CHARS LDC LBUF RJM DLN DISPLAY CHARACTER BUFFER FJM *,CH IF DATA NOT TAKEN, WAIT DCN CH+40 RJM KBI KEYBOARD INPUT RJM DRS DISPLAY RIGHT SCREEN MNL1 DCN CH+40 RJM CEF CHECK ERROR FLAG AOD BF SBN 10D FOR 1/5 SEC PJN MNL3 IF TIME FOR NEW PLATO BUFFER LJM MNL LOOP MNL3 STD BF LDD RA SHN 6 ADC PDDSTAT SET RECALL BIT CWM FCW,ON FILE COMPLETE BIT MONITOR RCLM LJM MNL LOOP MNL721 TITLE MAIN LOOP FOR CDC721 CONSOLE * *** MNL721 - MAIN LOOP FOR CDC721 CONSOLE * * RIGHT SCREEN IS DISPLAYED ON ENTRY AND * ONLY UPDATED IN *KBI*. * LEFT SCREEN IS UPDATED WHENEVER *PDDBUF* * IS NON-ZERO. * MNL7210 DCN CH+40 CFNC SLSF SELECT LEFT SCREEN/SMALL CHARS CFNC CHSF CLEAR HIDDEN SCREEN RJM DRS DISPLAY RIGHT SCREEN CFNC THVF TRANSFER HIDDEN TO VISIBLE FJM *,CH DCN CH+40 MNL721 LDD RA SHN 6 ADC PDDSTAT SET RECALL BIT CWM FCW,ON FILE COMPLETE BIT MONITOR RCLM MNL7215 RJM CEF CHECK ERROR FLAG RJM KBI KEYBOARD INPUT LDD RA CHECK FOR DATA TO READ SHN 6 ADC PDDBUF CM BUFFER WORD COUNT CRD CM LDD CM+4 (CM+4)=0 IF NOTHING TO DO ZJN MNL7215 LOOP STD BF WORD COUNT OF *PDDBUF* DCN CH+40 CFNC SLSF SELECT LEFT SCREEN, SMALL CHARS LDC PDDBUF SET ADDRESS OF *PDDBUF* RJM DLS DISPLAY LEFT SCREEN CFNC THVF TRANSFER HIDDEN TO VISIBLE LDN ZERL READY FOR ANOTHER BUFFER CRD CM LDD RA SHN 6 ADC PDDBUF CWD CM LJM MNL721 LOOP * /--- BLOCK DLN 00 000 76/12/15 16.23 DLN TITLE DISPLAY LINE BUFFER *** DLN - DISPLAY LINE BUFFER * * ENTRY - (A) = CENTRAL ADDRESS OF BUFFER * AND WITH SCOPE MODE SET (CHAR OR POINT) DLN SUBR STM DLNA ADN 1 STM DLNB LDD RA SHN 6 ADC ** FWA BUFFER DLNA EQU *-1 CRD CM CHECK BUFFER WORD COUNT LDD CM+4 ZJN DLNX IF NO BUFFER STD T1 LDC 100 CENTRAL WORD COUNT FOR CRM STD T2 LDN 0 STARTING ADDRESS IN BUFFER STD T3 DLN1 LDD RA SHN 6 ADD T3 ADC ** + 1 STARTING ADDRESS OF BUFFER DLNB EQU *-1 CRM CBUF,T2 LDC 100 RAD T3 INCREMENT BUFFER ADDRESS LDD T1 ADC -100 CHECK BUFFER EMPTY YET MJN DLN2 IF LAST OF BUFFER STD T1 LDC 500 WORD COUNT FOR OAM UJN DLN3 DLN2 LDN 0 STD T2 FLAG END OF BUFFER LDD T1 SHN 2 4*CENTRAL COUNT ADD T1 5*CENTRAL COUNT=PP COUNT NJN DLN3 IF NOT ZERO WORD COUNT LJM DLNX EXIT IF ZERO DLN3 OAM CBUF,CH OUTPUT DATA LDD T2 NJN DLN1 IF MORE IN BUFFER LJM DLNX CHS TITLE CLEAR HIDDEN SCREEN * *** CHS - CLEAR HIDDEN SCREEN. * * ENTRY - RIGHT OR LEFT SCREEN ALREADY SELECTED. * * EXIT - CHANNEL 10 IS ACTIVE. * * CALLS - NONE. * * MACRO - CFNC CHS SUBR ACN CH+40 LDC LOWERY INITALIZE Y COORDINATE STM CHSXY+1 CHS1 LDN 2 SEND X/Y COORDINATES OAM CHSXY,CH CFNC EELF ERASE TO EOL LDN YINC INCREMENT Y COORDINATE RAM CHSXY+1 SBM UPPERY CHECK FOR MORE LINES TO CLEAR MJP CHS1 UJN CHSX EXIT CHSXY DATA 6000B 721 X COORDINATE/LEFTMOST BSSZ 1 721 Y COORDINATE LOWERY EQU 7214B 721 Y COORDINATE/BOTTOM UPPERY DATA 7764B 721 UPPERMOST Y COORDINATE DLS TITLE DISPLAY CDC721 LEFT SCREEN *** DLS - DISPLAY LEFT SCREEN * * ENTRY - ( A ) = CENTRAL ADDRESS OF BUFFER * LEFT OR RIGHT SCREEN HAS BEEN SELECTED. * * CALLS - NONE * * /--- BLOCK DLN 00 000 76/12/15 16.23 * MACROS- NONE DLS SUBR ACN CH+40 ADN 1 SKIP PAST WORD COUNT STM DLSA FWA OF THE BUFFER LDN 0 STD T2 DLS10 LDD BF TOTAL WORDS LEFT IN THE BUFFER ZJN DLSX MJN DLSX I'7M A COWARD STD T1 WORDS TO READ ADC -100 MJN DLS50 LESS THAN 100 WORDS TO READ LDC 100 STD T1 READ 100 WORDS * READ FROM THE BUFFER DLS50 LDD RA SHN 6 ADD T2 ADC ** DLSA EQU *-1 CRM CBUF,T1 LDD T1 INCREMENT STARTING CM ADDRESS RAD T2 FOR THE NEXT READ LDD BF DECREMENT WD COUNT IN CM BUFFER SBD T1 STD BF * OUTPUT FROM *CBUF* LDC CBUF-1 STD T3 LDD T1 SHN 2 4*CM WORDS ADD T1 5*CM WORDS=PP WORDS STD T1 T1=PP WORDS READ DLS100 FJM *,CH SOD T1 T1=WORDS LEFT TO READ PJN DLS110 LJM DLS10 LOOP * CHECK FOR ERASE TO END OF LINE FUNCTION. * OUTPUT *EELF* IF ONE IS FOUND. DLS110 AOD T3 INCREMENT POINTER INTO *CBUF* LDI T3 GET NEXT BYTE FROM *CBUF* LMC FEELF CHECK FOR CLEAR SCREEN FUNCTION NJN DLS150 LDD T3 CHECK PREVIOUS BYTE FOR SBN 1 Y-COORDINATE STD T4 LDI T4 LPC 7000B ADC -7000B NJN DLS150 CFNC THVF TRANSFER HIDDEN TO VISIBLE 1ST DCN CH+40 CFNC EELF ISSUE ERASE TO EOL FUNCTION LJM DLS100 LOOP DLS150 LDD T3 STM DLSB LDN 1 OAM **,CH DLSB EQU *-1 LJM DLS100 LOOP * /--- BLOCK KBI 00 000 84/08/01 07.53 KBI TITLE KEYBOARD ENTRY ROUTINE *** KBI - KEYBOARD INPUT * KBI1 LMD LC KBI2 STD LC SET LAST CHARACTER KBI SUBR LDN ZERL CLEAR KEY BUFFER WORD CRD FN DCN CH+40 CFNC SKIF SELECT KEYBOARD INPUT IAN CH DCN CH+40 ZJN KBI2 IF NO CHARACTER LMD LC ZJN KBI1 IF SAME AS LAST KEY LMD LC STD LC SET LAST KEY ADD SL 0 IF SHIFT LEV 0, 63 IF LEVEL 1 STD FN+4 LDM CHRT,FN+4 READ PLATO EQUIVALENT OF CHARACTER LMD UC TOGLE BY 40 IF UPPER CASE CHAR SHN 1 FOR PARITY BIT STD FN+4 PLATO KEY CODE SHN 5 PJN *+3 LJM PRB PROCESS RIGHT BLANK SHN 1 PJN *+3 LJM PLB PROCESS LEFT BLANK SHN 1 PJN *+3 LJM PSYS PROCESS SYSTEM (SWITCH TO DSD) SHN 2 ONE UNUSED BIT PJN *+3 LJM KBIX PROCESS NOP * /--- BLOCK KBI 00 000 84/08/01 07.54 KBI3 BSS 0 LDC 4000 STD FN LDD RA SHN 6 ADC KBUF KEYBOARD BUFFER ADDRESS IN CM CWD FN WRITE CHARACTER ADC PDDSTAT-KBUF RECALL CP WORD ADDRESS CWM FCW,ON FILE COMPLETE BIT MONITOR RCLM LDC 200 STD LC CLEAR KEY LDC 50D*50D 50D*20 MILLISECONDS STD BF FORCE CONSOLE TO RESPONED * UPDATE RIGHT SCREEN FOR CDC721 IF FUNCTION * OR UPPER CASE IS SELECTED. LDD CT GET CONSOLE TYPE ZJN KBI4 IF CC545 LDD SL CHECK FOR FUNCTION SELECTED ADD UC OR UPPER CASE SELECTED ZJN KBI4 NEITHER SELECTED LDN 0 STD UC CLEAR UPPER CASE STD SL CLEAR FUNCTION SETTING LJM CH721 UPDATE RIGHT SCREEN FOR 721 KBI4 LDN 0 STD UC STD SL LJM KBIX DONT UPDATE RIGHT DISPLAY PRB LDN 63 STD SL SET TO FUNCTIONS LJM CH721 UPDATE RIGHT SCREEN FOR 721 PLB LDN 40 LMD UC FLIP CASES STD UC ZJN PLB1 LJM CH721 UPDATE RIGHT SCREEN FOR 721 PLB1 STD SL LJM CH721 UPDATE RIGHT SCREEN FOR 721 PSYS LDD UC ZJN PSYS1 IF IN LOWER CASE DCN CH+40 DROP DISPLAY RJM DDS LJM DPP DROP PPU, CONTROL PT. AND EXIT PSYS1 DCN CH+40 RJM HDC HOLD DISPLAY LDD CT GET CONSOLE TYPE ZJN PSYS2 IF CC545 CONSOLE DCN CH+40 CFNC SLSF SELECT LEFT SCREEN RJM CHS CLEAR HIDDEN SCREEN LDD RA SHN 6 ADC LBUF CRD CM LDD CM+4 STD BF LDC LBUF REPLOT THE SCREEN RJM DLS CFNC THVF TRANSFER HIDDEN TO VISIBLE PSYS2 LDN 1R* PRESET TO * STD LC LDN 0 STD UC STD SL CH721 LDD CT CHECK FOR 721 CONSOLE ZJN CH7219 IF CC545 CONSOLE DCN CH+40 CFNC SRSF SELECT RIGHT SCREEN,SMALL CHARS RJM CHS CLEAR HIDDEN SCREEN RJM DRS DISPLAY RIGHT SCREEN FJM *,CH WAIT CFNC THVF TRANSFER HIDDEN TO VISIBLE FJM *,CH * /--- BLOCK KBI 00 000 84/08/01 07.54 DCN CH+40 DISCONNECT CHANNEL CH7219 LJM KBIX EXIT FCW VFD 60/1 STATUS BIT * /--- BLOCK DRS 00 000 84/08/01 08.00 DRS TITLE DISPLAY RIGHT SCREEN *** DRS - DISPLAY RIGHT SCREEN * DRS SUBR DCN CH+40 CFNC SRSF SELECT RIGHT SCREEN,SMALL CHARS LDD CT GET CONSOLE TYPE NJP DRS10 DISPLA 6000,7670,( 0 1 2 3 4 5 6 7 8 , 9 LB = RB) DISPLA 6024,7620,( Q W E R T Y U I ,O P + -) DISPLA 6000,7550,( ERAS A S D F G H J ,K L * /) DISPLA 6024,7500,( NEXT Z X C V B N M ,, . ( DISPLA ,,( ) DISPLA ,,) LDD SL NJN DRS1 IF FUNCTION DISPLA 6000,7704,(LCRT RCRT LBKT RBKT DOLR PCT UNDL TICK) DISPLA 6610,7704,( FCTN SHFT) UJN DRS2 TRY FOR SHIFT DRS1 BSS 0 DISPLA 6430,7704,( SUP SUB TERM TAB COPY SHFT) DISPLA 6644,7634,(MICRO BOX) DISPLA 6050,7564,( ASGN DIV HELP , EDIT LAB) DISPLA 6144,7514,(ESCAPE) DISPLA 6334,7514,( BACK MUL SCLN DATA STOP) DRS2 LDD UC ZJN DRS3 DISPLA 6730,7704,( SHFT) DISPLA 6730,7704,( SHFT) DRS3 LJM DRSX EXIT * /--- BLOCK DRS 00 000 84/08/22 11.24 .NOS23 IFGE OSLEV,617D DRS10 LDD SL NJN DRS20 IF FUNCTION DISPLA 6230,7702,( ) UJN DRS30 DRS20 DISPLA 6230,7702,(FUNCTION KEYBOARD EQUIVALENTS),HF DRS30 LDD UC NJN DRS40 DISPLA 6000,7714,(NORMAL KEYBOARD EQUIVALENTS),HF DISPLA 6400,7714,(SHIFTED KEYBOARD EQUIVALENTS) UJN DRS50 DRS40 DISPLA 6000,7714,(NORMAL KEYBOARD EQUIVALENTS) DISPLA 6400,7714,(SHIFTED KEYBOARD EQUIVALENTS),HF DRS50 LDD SL NJP DRS200 IF FUNCTION DISPLA 6000,7656,( SHIFT = FORWARD TAB) DISPLA 6000,7632,( FUNCTION = BACKWARD TAB) DISPLA 6000,7606,( ERASE = BACK ARROW) DISPLA 6000,7562,( NEXT = NEXT / RETURN) DISPLA 6000,7512,( + = + / DOWN) DISPLA 6000,7466,( - = - / UP) DISPLA 6000,7442,( ( = ( / FWD DISPLA 6000,7416,( )) DISPLA ,,( = )) DISPLA ,,( / BKW ) DISPLA 6000,7362,( * = * / SQUARE) * DISPLA 6400,7656,( LESS THAN = 0) DISPLA 6400,7632,( GREATER THAN = 1) DISPLA 6400,7606,( LEFT BRACKET = 2) DISPLA 6400,7562,( RIGHT BRACKET = 3) DISPLA 6400,7536,( DOLLAR SIGN = 4) DISPLA 6400,7512,( PERCENT SIGN = 5) DISPLA 6400,7466,( UNDERLINE = 6) DISPLA 6400,7442,( SINGLE QUOTE = 7) LJM DRSX DRS200 DISPLA 6000,7656,( ASSIGNMENT = A) DISPLA 6000,7632,( BACK = B) DISPLA 6000,7606,( COPY = FORWARD TAB) DISPLA 6000,7562,( DATA = FWD) DISPLA 6000,7536,( DIVIDE = D) DISPLA 6000,7512,( EDIT = * / SQUARE) DISPLA 6000,7466,( HELP = H) DISPLA 6000,7442,( LAB = /) DISPLA 6000,7416,( MICRO = + / DOWN) * DISPLA 6416,7656,( MULTIPLY = M) DISPLA 6416,7632,( SEMICOLON = ,) DISPLA 6416,7606,( SQUARE = UP) DISPLA 6416,7562,( STOP = )) DISPLA 6416,7536,( SUBSCRIPT = 8) DISPLA 6416,7512,( SUPERSCRIPT = 7) DISPLA 6416,7466,( TAB = BACKWARD TAB) DISPLA 6416,7442,( TERM = 9) * DISPLA 6240,7372,( DROP DISPLAY = X) DISPLA 6240,7360,( HOLD DISPLAY = BACKWARD TAB-X) LJM DRSX .NOS23 ENDIF * /--- BLOCK CEF 00 000 84/08/01 08.00 TITLE CHECK AND PROCESS ERROR FLAG *** CEF - CHECK ERROR FLAG * CEF SUBR PAUSE LDD CM+1 CHECK ERROR FLAG ZJN CEFX IF OK DCN CH+40 RJM DDS DROP DISPALY DPP MONITOR DCPM DROP CONTORL POINT DPP1 MONITOR DPPM DROP PPU LJM PPR IDLE * /--- BLOCK KEY EQUS 00 000 76/12/17 22.00 DD60 TITLE PLATO KEY EQUIVALENCES *** TABLE OF PLATO EQUIVALENCES OF DD60 KEYS * CHRT BSS 0 DATA 0 NO ENTRY FOR ZERO DATA 101 A DATA 102 B DATA 103 C DATA 104 D DATA 105 E DATA 106 F DATA 107 G DATA 110 H DATA 111 I DATA 112 J DATA 113 K DATA 114 L DATA 115 M DATA 116 N DATA 117 O DATA 120 P DATA 121 Q DATA 122 R DATA 123 S DATA 124 T DATA 125 U DATA 126 V DATA 127 W DATA 130 X DATA 131 Y DATA 132 Z DATA 000 0 DATA 001 1 DATA 002 2 DATA 003 3 DATA 004 4 DATA 005 5 DATA 006 6 DATA 007 7 DATA 010 8 DATA 011 9 DATA 016 + DATA 017 - DATA 050 * DATA 135 / DATA 051 ( DATA 173 ) DATA 4000 L-BLANK = FCTN DATA 133 = DATA 2000 R-BLANK = SHIFT DATA 137 , DATA 136 . DATA 026 CR = NEXT DATA 023 BKSP = ERASE DATA 100 SPACE * /--- BLOCK SHIFT 1 00 000 84/08/01 08.03 SHIFT1 TITLE PLATO FUNCTION EQUIVALENCES ** SHIFT LEVEL 1 EQUIVALENCES DATA 0 NO ENTRY FOR ZERO DATA 015 A = ASSIGN DATA 030 B = BACK DATA 200 C = NOP DATA 013 D = DIVIDE DATA 200 E = NOP DATA 200 F = NOP DATA 200 G = NOP DATA 025 H = HELP DATA 200 I = NOP DATA 200 J = NOP DATA 200 K = NOP DATA 200 L = NOP DATA 012 M = MULTIPLY DATA 200 N = NOP DATA 200 O = NOP DATA 200 P = NOP DATA 200 Q = NOP DATA 200 R = NOP DATA 200 S = NOP DATA 200 T = NOP DATA 200 U = NOP DATA 200 V = NOP DATA 200 W = NOP DATA 1000 X = ESCAPE DATA 200 Y = NOP DATA 200 Z = NOP DATA 200 0 = NOP DATA 200 1 = NOP DATA 200 2 = NOP DATA 200 3 = NOP DATA 200 4 = NOP DATA 200 5 = NOP DATA 200 6 = NOP DATA 020 7 = SUP DATA 021 8 = SUB DATA 062 9 = TERM DATA 024 + = MICRO DATA 034 - = BOX DATA 027 * = EDIT DATA 035 / = LAB DATA 031 ( = DATA DATA 032 ) = STOP DATA 014 L-BLANK = TAB DATA 033 (=) = COPY DATA 2000 R-BLANK = SHFT DATA 134 , = ; DATA 200 . = NOP DATA 026 CR = NEXT DATA 023 BKSP = ERASE DATA 200 SPACE = NOP * /--- BLOCK COM DECKS 00 000 84/08/01 08.12 SPACE 4 LIST X *CALL COMDDSP *CALL COMDDIS *CALL COMDSYS SPACE 4 .NOSV2 IFGE OSLEV,562D NOS V2 DIS HERE FOR *DISPLA* MACRO IN *COMDSYS* .NOSV2 ENDIF * /--- BLOCK INITIAL 00 000 84/08/01 08.12 * THE FOLLOWING SPACE IS USED FOR A CENTRAL * BUFFER AFTER BEING EXECUTED CBUF BSS 0 .NOS23 IFGE OSLEV,617D DIMB DUMP INST MOD BUFFER .NOS23 ENDIF PRS PAUSE LDD CM+1 GET ERROR FLAG ZJN *+3 IF NO ERROR LJM DPP LDD CP .NOSV2 IFGE OSLEV,562D NOS V2 ADN JOTW JOB ORIGIN TYPE WORD CRD CM LDD CM+3 .NOSV2 ELSE NOS V1 ADN JNMW CRD CM LDD CM+3 LPN 77 .NOSV2 ENDIF LMN SYOT CHECK IF SYSTEM ORIGIN ZJN PRS1 IF SYOT LDN PPET SET ERROR FLAG STD CM+1 MONITOR CEFM LJM DPP1 PRS1 RJM RDS ASK FOR THE DISPLAY NICELY LDN 0 RESET DISPLAY PAUSE STD T1 PRS2 LDM PSSI,T1 PLANT NEW INSTRUCTIONS STM PSS+1,T1 AOD T1 SBN ILTH NJN PRS2 LDC 6000 STD XC SET INITIAL X LDN 0 STD UC CLEAR UPPER SHIFT STD SL AND SHIFT LEVEL STD LC PRESET LAST CHARACTER TO ZERO STD BF CLEAR PLATO BUFFER CONTROL .NOS23 IFGE OSLEV,617D * SET CONSOLE TYPE FLAG. LDN DSEQ SFA EST ADK EQAE CRD CM LDD CM+2 STD CT LDN ZERL CRD CM LDD CT SET CONSOLE TYPE STD CM+4 LDD RA SHN 6 ADC CONTYPE CWD CM LDD CT ZJP MNL EXIT IF CC545 MDIN SRMT MODIFY CODE FOR 721 CONSOLE .NOS23 ENDIF LJM MNL MAIN LOOP PSSI RJM CEF CHECK ERROR FLAG LJM /COMDDSP/PSSX ILTH EQU *-PSSI BSS 500+CBUF-* SBUF BSS 10*5 PBUF BSS 0 CBUFL1 EQU 200*2+4 CBCML EQU CBUFL1/5 CM WORD COUNT END