100 XLIST OFF 110 IFNZRO VTIN < 120 XLIST ON 130 VTKEY, KCC /CLEAR INACTIVE KEYBOARD FLAG 140 XLIST OFF > 150 IFZERO VTIN < 160 XLIST ON 170 VTKEY, DKCC /CLEAR INACTIVE KEYBOARD FLAG 180 XLIST OFF > 190 XLIST ON 200 TSTTTY, CIF 00 /WILL BE IN FIELD 0 210 TSF /TTY: FLAG UP? 220 JMP I (KINT) /NO, TRY KEYBOARD 230 TCF /CLEAR OUTPUT FLAG 240 JMP I (INTRET) /CONTINUE THERE 250 260 MODE, CHRFLD+5^101 /OUTPUT MODE 270 EJECT 280 MODCHK, .-. /CHECK MODE ROUTINE 290 CDF CODFLD /MAKE SURE OF FIELD 300 TAD MODE /GET CURRENT MODE PAIR 310 DCA Q /SAVE IT 320 TAD Q /GET IT BACK 330 TAD I MODCHK /COMPARE IT 340 AND (77) /JUST SIX-BIT 350 SNA CLA /SKIP IF DIFFERENT 360 JMP MODXIT /JUMP IF OK 370 TAD Q /GET AGAIN 380 BSW /TRY OTHER HALF 390 TAD I MODCHK /COMPARE IT 400 AND (77) /JUST SIX-BIT 410 SNA CLA /SKIP IF DIFFERENT 420 JMP MODXIT /JUMP IF OK 430 TAD Q /GET A PAIR 440 AND (7700) /SELECT ANY HALF 450 CIA /INVERT 460 TAD I MODCHK /ADD ON ARGUMENT 470 CIA /RE-INVERT 480 CIF CODFLD /PREVENT INTERRUPTS 490 DCA MODE /STORE NEW MODE 500 MODXIT, ISZ MODCHK /BUMP PAST ARGUMENT 510 JMP I MODCHK /RETURN 520 530 DOMODE, .-. /SETUP CURRENT MODE 540 NL0004 /GET FIELD-HALF BIT MASK 550 AND MODE /GET FIELD-HALF BIT 560 RTR /MOVE IT 570 RTR /TO AC[0] 580 DPLA /LOAD NEW BUFFER ADDRESS 590 TAD MODE /GET THE FIELD 600 DPGO /START IT UP 610 JMP I DOMODE /RETURN 620 630 PAGE 640 EJECT 650 OI, IAC /CURSOR MODE IS 600 660 OB, IAC /BOLD MODE IS 400 670 OA, IAC /BLINK MODE IS 200 680 BSW /*100 690 CLL RAL /*200 700 OEN, CDF CODFLD /GOTO OUR FIELD 710 DCA I (VMODE) /STORE IT THERE 720 JMP OEXIT /FINISH UP 730 740 OC, JMS CLRCHR /CLEAR CHARACTER BUFFER 750 OD, CDF CODFLD /GOTO CODE FIELD 760 JMS I (CLRBUF) /CLEAR GRAPHICS BUFFER 770 SKP /DON'T CLEAR CHARACTERS 780 OE, JMS CLRCHR /CLEAR CHARACTERS 790 JMP OEXIT /FINISH UP 800 810 OO, IAC /SET 820 OF, DCA CURSW /OR CLEAR CURSOR SWITCH 830 JMP OEXIT /FINISH UP 840 850 CLRADR, .-. /TEMPORARY 860 CLRCNT, .-. /TEMPORARY 870 CHRTMP, .-. /TEMPORARY 880 POCOMAG,OCOMAGN&177 /**** RELOCATE **** 890 PDOWAIT,DOWAIT&177 /**** RELOCATE **** 900 910 CLRCHR, .-. /CLEAR CHARACTER BUFFER ROUTINE 920 CDF CHRFLD /SELECT CHARACTER'S FIELD 930 TAD (-2400) /SETUP 940 DCA CLRCNT /COUNT 950 NL4000 /SETUP THE 960 DCA CLRADR /INITIALIZING ADDRESS 970 TAD (EOS) /GET CHARACTER 980 DCA I CLRADR /CLEAR LOCATION 990 ISZ CLRADR /BUMP TO NEXT 1000 ISZ CLRCNT /DONE ALL YET? 1010 JMP .-4 /NO, GO BACK 1020 CIF CDF CODFLD /SELECT FIELD NOW TO DISABLE INTERRUPTS 1030 NL4000 /RESET THE 1040 DCA I (VTPTR) /POINTER 1050 CURSW, CIF CDF 00 /0 IF OFF, 1 IF ON 1060 TAD CURSW /GET CURSOR SWITCH 1070 SZA CLA /SKIP IF OFF 1080 JMP I CLRCHR /JUMP IF ON 1090 TAD (GRFLD+3^101) /GET DOUBLE GRAPHICS MODE 1100 DCA I (MODE) /STORE NEW MODE 1110 JMP I CLRCHR /RETURN 1120 EJECT 1130 / SPECIAL CHARACTER TABLE. 1140 1150 SPCIAL, -177; IGNORE /IGNORE 'S 1160 -176; IGNORE /IGNORE 1170 -175; IGNORE /IGNORE 1180 -140; IGNORE /IGNORE 1190 -137; CNTLU / RESTARTS 1200 -35; HOME / CHARACTER 1210 -15; IGNORE /IGNORE 1220 -12; LF / IS 1230 -11; TAB /SIMULATE 'S 1240 -7; BELL / 1250 SPCND, INITBAK/0 /THIS ENDS THE LIST 1260 1270 OW, TAD (GRFLD+3^101) /GET DOUBLE GRAPHICS MODE 1280 CIF CDF CODFLD /PREVENT INTERRUPTS 1290 DCA I (MODE) /SAVE NEW MODE 1300 CIF CDF 00 /BACK TO FIELD 0 1310 JMS I PDOWAIT /WAIT FOR A CHARACTER 1320 CLA /THROW IT AWAY