100 ADRBUFF,ZBLOCK 6 /ADDRESS TRANSMISSION BUFFER 110 120 PAGE 130 EJECT 140 / STRING OUTPUT ROUTINE. 150 160 STROUT, .-. /STRING OUTPUT ROUTINE 170 CDF DFIELD /ENSURE OUR FIELD 180 STRLUP, TAD I STROUT /GET AN ARGUMENT 190 SNA /SKIP IF END OF ARGUMENTS 200 JMP I STROUT /RETURN IF NO MORE STRINGS 210 DCA STRPTR /STASH THE LATEST POINTER 220 ISZ STROUT /BUMP TO NEXT ARGUMENT FOR NEXT TIME 230 STRLOOP,TAD I STRPTR /GET A CHARACTER 240 SNA /END OF A STRING? 250 JMP STRLUP /YES, GO GET ANOTHER STRING 260 JMS TERMOUT /NO, SEND THIS CHARACTER 270 ISZ STRPTR /BUMP TO NEXT 280 JMP STRLOOP /GO DO ANOTHER CHARACTER 290 300 TERMOUT,.-. /TERMINAL OUTPUT ROUTINE 310 DCA TERMTMP /SAVE PASSED VALUE 320 TERMLUP,JMS INTEST /TEST FOR DC1/DC3 330 TAD TERMTMP /GET THE CHARACTER 340 RTSFIOT /FLAG UP? 350 JMP TERMLUP /NO, WAIT FOR IT 360 RTLSIOT /YES, OUTPUT IT 370 JMS INTEST /TEST FOR DC1/DC3 380 JMP I TERMOUT /RETURN 390 400 INTEST, .-. /TEST FOR DC1/DC3 INPUT 410 JMS INCHAR /TEST FOR A CHARACTER 420 JMP I INTEST /WASN'T ANY 430 TAD (-"S!300) /COMPARE TO <^S> 440 SZA CLA /SKIP IF IT MATCHES 450 JMP I INTEST /RETURN IF NOT 460 INWAIT, JMS INCHAR /TEST FOR A CHARACTER 470 JMP INWAIT /MUST WAIT FOR IT 480 TAD (-"Q!300) /COMPARE TO <^Q> 490 SZA CLA /SKIP IF IT MATCHES 500 JMP INWAIT /GO BACK AND WAIT FOR IT 510 JMP I INTEST /RETURN 520 530 INCHAR, .-. /GET AN INPUT CHARACTER 540 CLA /CLEAN UP 550 RKSFIOT /FLAG UP? 560 JMP I INCHAR /NO, JUST RETURN 570 RKRBIOT /YES, READ IT IN 580 AND [177] /JUST SEVEN-BIT 590 ISZ INCHAR /BUMP RETURN ADDRESS 600 JMP I INCHAR /TAKE SKIP RETURN 610 EJECT 620 / TERMINAL INITIALIZATION ROUTINE. 630 640 INITERM,.-. /INITIALIZE THE TERMINAL 650 CLA /CLEAN UP 660 RKIEIOT /PREVENT TERMINAL INTERRUPTS 670 RTLSIOT /SET OUTPUT FLAG 680 CDF PRGFLD /ENSURE MAIN FIELD 690 TAD I (SWMX) /GET /M-/X SWITCHES 700 RAR /X TO LINK 710 SZL CLA /SKIP IF NOT SET 720 DCA XZAP /ELSE ZAP THE LIST OUT 730 TAD I (SWY9) /GET /Y-/9 SWITCHES 740 AND (400) /JUST /1 SWITCH 750 SZA CLA /SKIP IF OFF 760 JMP LEAVIT /JUMP IF ON 770 TAD (NOP) /GET A NOP 780 CDF DFIELD /GOTO OUR FIELD 790 DCA I (SETZAP) /ZAP IT IN 800 LEAVIT, JMS I [STROUT] /SEND STRINGS TO TERMINAL 810 XZAP, BLAMEM /BLANK THE ALPHA SCREEN **** /X **** 0000 820 UNGMEM /UNBLANK THE GRAPHICS SCREEN 830 DSGMEM /DISPLAY THE GRAPHICS MEMORY 840 NDSPACE /NON-DESTRUCTIVE SPACE IN GRAPHICS ALPHA MODE 850 EGACLR /ENTER GRAPHICS ALPHA MODE, CLEAR SCREEN 860 0 /THIS ENDS THE LIST 870 CIF CDF PRGFLD /GOTO MAIN FIELD 880 JMP I INITERMINAL /RETURN 890 900 PAGE 910 EJECT 920 STRBUFF,ZBLOCK 201 /STRING BUFFER 930 940 / TERMINAL SEQUENCES. 950 960 / GOTO ALPHA MODE WITHOUT CHANGING POSITION (FROM VECTOR MODE). 970 980 ANOMOVE,US; 0 /JUST GOTO ALPHA MODE 990 1000 / BLANK ALPHA MEMORY. 1010 1020 BLAMEM, ESC; "[&177; "1&177; "/&177 /BLANK ALPHA MEMORY 1030 "V&177+40; 0 1040 1050 / CLEAR GRAPHICS MEMORY. 1060 1070 CLRMEM, ESC; "Y&37; 0 /CLEAR GRAPHICS MEMORY 1080 1090 / DISPLAY GRAPHICS MEMORY. 1100 1110 DSGMEM, ESC; "T&37; 0 /DISPLAY GRAPHICS MEMORY 1120 1130 / ENTER GRAPHICS ALPHA MODE, CLEAR GRAPHICS MEMORY. 1140 1150 EGACLR, ESC; "L&37; 0 /GRAPHICS ALPHA WITH CLEAR 1160 1170 / NON-DESTRUCTIVE CHARACTER IN GRAPHICS ALPHA MODE. 1180 1190 NDSPACE,ESC; "/&177; "2&177; "L&177+40 /SPACE JUST MOVES 1200 1210 / ENTER POINT PLOT MODE. 1220 1230 PPM, FS; 0 /ENTER POINT PLOT MODE 1240 EJECT