100 NOLITE, TAD MDWORD /GET LATEST MODEM WORD 110 AND L400 /ANYTHING THERE? 120 SNA CLA /SKIP IF PRESENT 130 JMP NOMODEM /JUMP IF NOT 140 TAD MDWORD /GET MODEM WORD AGAIN 150 AND [377] /JUST THE CHARACTER BITS 160 DCA MTEMP /SAVE IT FOR OTHERS 170 TAD MTEMP /GET IT BACK 180 JMP I MODNXT /GOTO WHOMEVER 190 200 SCNDONE,DCA I (SCNZAP) /MAKE IT NOT COME HERE AGAIN! 210 JMP I (INITIALIZE) /START ALL OVER AGAIN 220 230 ATEMP, .-. /ADDRESS TEMPORARY 240 CURPTR, ZBLOCK 2 /CURRENT POINTER 250 260 PAGE 270 EJECT 280 GOT210, /210 WAS FOUND! 290 GOT220, /220 WAS FOUND! 300 GOT204, DCA LIGHT /LIGHT IS OFF 310 DCA INTENS /LIGHT IS OBVIOUSLY NOT BRIGHT! 320 JMS MODNXT /GET NEXT CHARACTER 330 TAD (-202) /IS IT 202? 340 SZA CLA /SKIP IF IT IS 350 JMP GOTBAD /JUMP IF ANYTHING ELSE 360 GOT202, /202 WAS FOUND! 370 GOT242, NL4000 /FUDGE TO PREVENT 380 DCA MTEMP /INVALIDATION 390 EOMIN, CLA /CLEAN UP JUST IN CASE 400 DCA SUCCESS /PROCLAIM FAILURE 410 GOODIN, STA /INVALIDATE 420 DCA XPOS1 /FIRST "X" 430 STA /INVALIDATE 440 DCA YPOS1 /FIRST "Y" 450 STA /INVALIDATE 460 DCA XPOS2 /SECOND "X" 470 STA /INVALIDATE 480 DCA YPOS2 /SECOND "Y" 490 DCA POS3SW /INVALIDATE THIRD POSITION INDICATOR 500 DCA LIGHT /TURN LIGHT OFF 510 DCA INTENS /LIGHT IS OBVIOUSLY DIMLY OFF! 520 DCA BAR /BAR IS UP 530 TAD MTEMP /GET LATEST CHARACTER 540 TAD (-320) /COMPARE TO SYNC VALUE 550 SNA /SKIP IF NOT A MATCH 560 JMP GOTSYNC /JUMP IF IT DID MATCH 570 TAD (320) /RESTORE THE CHARACTER 580 AND (4300) /JUST POSSIBLE BITS 590 SNA CLA /SKIP IF NOT A FIRST "X" VALUE 600 JMP GOTFX /JUMP IF FIRST "X" FOUND 610 GOTBAD, CLA /CLEAN UP JUST IN CASE! 620 TAD MTEMP /GET THE CHARACTER CODE 630 AND (377) /JUST CHARACTER BITS 640 DCA VALID /SAVE AS (USUALLY) INVALID INDICATOR 650 JMS MODNXT /GET ANOTHER CHARACTER 660 JMP EOMIN /TRY AGAIN 670 680 GOTSYNC,JMS MODNXT /GET THE NEXT ONE 690 TAD (-320) /IS IT ALSO A SYNC CHARACTER? 700 SNA /SKIP IF NOT 710 JMP GOTSYNC /DO IT AGAIN UNTIL IT ISN'T! 720 TAD (320) /RESTORE THE CHARACTER 730 DCA TM1 /SAVE AS FIRST TIME CHARACTER 740 JMS MODNXT /GET ANOTHER 750 DCA TM2 /SAVE AS SECOND TIME CHARACTER 760 JMS MODNXT /GET ANOTHER 770 DCA TM3 /SAVE AS THIRD TIME CHARACTER 780 EJECT 790 ASCHAR, JMS MODNXT /GET NEXT CHARACTER 800 SNA /SKIP IF NOT END OF THE MESSAGE 810 JMP GOTEOM /JUMP IF IT IS 820 AND (200) /CHECK BAD BIT 830 SZA CLA /SKIP IF OFF 840 JMP GOTBAD /BARF 850 JMP ASCHAR /THROW AWAY AND GET ANOTHER 860 870 GOTEOM, JMS MODNXT /GET NEXT 880 JMP EOMIN /CONTINUE THERE 890 900 GOTFX, TAD MTEMP /GET THE CHARACTER 910 DCA XTEMP /SAVE IT 920 GETFY, JMS MODNXT /GET ANOTHER CHARACTER 930 / AND (300) /JUST RANGE BITS 940 / SZA CLA /SKIP IF VALID 950 / JMP GOTBAD /BARF 960 / TAD MTEMP /GET THE CHARACTER 970 TAD (-24) /COMPARE TO LIMIT 980 SMA CLA /SKIP IF OK 990 JMP GOTBAD /BARF 1000 TAD MTEMP /GET THE CHARACTER 1010 DCA YPOS1 /USE AS FIRST "Y" POSITION 1020 TAD XTEMP /GET PREVIOUS POSITION 1030 DCA XPOS1 /USE AS FIRST "X" POSITION 1040 ISZ LIGHT /LIGHT IS ON 1050 ISZ INTENS /LIGHT IS BRIGHT NOW! 1060 ISZ BAR /BAR IS DOWN NOW 1070 GETSX, JMS I (CHK4) /CHECK FOR 300, 242, 210, 220 1080 SZA CLA /SKIP IF OK 1090 JMP GOTBAD /BARF 1100 TAD MTEMP /GET THE CHARACTER 1110 AND (77) /JUST POSITION BITS 1120 DCA XTEMP /SAVE FOR LATER 1130 EJECT