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