100 XTEMP, .-. /MODEM "X" TEMPORARY 110 XLIST OFF > 120 XLIST ON 130 XLIST OFF 140 IFNZRO MODEM < 150 XLIST ON 160 VALID, -1 /MODEM VALIDITY INDICATOR 170 YPOS1, .-. /MODEM "Y" FIRST POSITION 180 YPOS2, .-. /MODEM "Y" SECOND POSITION 190 XLIST OFF > 200 XLIST ON 210 EJECT 220 PAGE /AT 0200 230 240 START, JMP I (INITIALIZE) /HERE FOR DEFAULT START 250 260 XLIST OFF 270 IFNZRO SAC < 280 XLIST ON 290 NEXT, JMS I [LOCATE] /FIND NEXT BEGIN, END, OR BLINK 300 XLIST OFF 310 IFNZRO BLKTST < 320 XLIST ON 330 ZAPADR, JMP BLNKTST /CHECK FOR BLINKS FIRST 340 XLIST OFF > 350 XLIST ON 360 CHKBEG, TAD CURVAL /GET LATEST POINT 370 XLIST OFF 380 IFNZRO OKN < 390 XLIST ON 400 SPA /SLOW PHASE? 410 JMP NEXT /YES, IGNORE IT 420 XLIST OFF > 430 XLIST ON 440 AND [BEGIN] /JUST BEGIN BIT 450 SNA CLA /SKIP IF BEGIN FOUND 460 JMP ENDTEST /JUMP IF NOT 470 MOVE; CURBEG;OLDBEG /SAVE PREVIOUS BEGIN POINTER 480 MOVE; CURPTR;CURBEG /GET LATEST BEGIN POINTER 490 MOVE; BEGINX;OLBEGX /SAVE PREVIOUS BEGIN VALUES 500 JMS I [GETVAL] /GET LATEST X VALUE 510 DCA BEGINX /SAVE IT 520 NL0001 /SET Y OFFSET 530 JMS I [GETVAL] /GET LATEST Y VALUE 540 DCA BEGINY /SAVE IT 550 STA /SET 560 DCA BGSW /BEGIN SWITCH 570 JMP NEXT /KEEP GOING 580 590 ENDTEST,TAD CURVAL /GET LATEST VALUE 600 XLIST OFF 610 IFNZRO OKN < 620 XLIST ON 630 SPA /SLOW PHASE? 640 JMP NEXT /YES, IGNORE IT 650 XLIST OFF > 660 XLIST ON 670 AND [END] /JUST END BIT 680 SNA CLA /SKIP IF END FOUND 690 JMP NEXT /JUMP IF NOT 700 TAD BGSW /GET BEGIN SWITCH 710 SNA CLA /SKIP IF SET 720 JMP NEXT /END WITHOUT BEGIN! 730 DCA BGSW /CLEAR SWITCH FOR NEXT TIME 740 MOVE; CUREND;OLDEND /SAVE PREVIOUS END POINTER 750 MOVE; CURPTR;CUREND /GET LATEST END POINTER 760 MOVE; ENDX; OLENDX /SAVE PREVIOUS END VALUES 770 JMS I [GETVAL] /GET X VALUE 780 DCA ENDX /SAVE AS LATEST X END VALUE 790 NL0001 /SET Y OFFSET 800 JMS I [GETVAL] /GET Y VALUE 810 DCA ENDY /SAVE AS LATEST Y END VALUE 820 EJECT 830 SKP /FIRST TIME? 840 JMP I (PRTIT) /NO, PRINT IT 850 DCA .-2 /WILL NEXT TIME 860 JMP NEXT /BUT NOT THIS TIME 870 XLIST OFF 880 IFNZRO BLKTST < 890 XLIST ON 900 910 BLNKTST,TAD CURVAL /GET LATEST VALUE 920 AND [BLINK] /JUST BLINK BIT 930 SNA CLA /SKIP IF A BLINK 940 JMP CHKBEGIN /JUMP IF NOT A BLINK 950 TAD CURVAL /GET LATEST AGAIN 960 AND [BEGIN] /IS IT A BEGINNING? 970 SNA CLA /SKIP IF SO 980 JMPBLND,JMP BLEND /JUMP IF NOT 990 TAD JMPBLND /GET ZAP INSTRUCTION 1000 BLNKXT, DCA ZAPADR /ZAP IT IN 1010 JMP NEXT /GO GET ANOTHER ONE 1020 1030 BLEND, TAD CURVAL /GET LATEST VALUE 1040 AND [END] /IS IT AN END? 1050 SNA CLA /SKIP IF SO 1060 JMP NEXT /JUMP IF NOT 1070 TAD (JMP BLNKTST)/GET RESTORE VALUE 1080 JMP BLNKXT /CONTINUE THERE 1090 XLIST OFF > 1100 XLIST ON 1110 1120 PAGE 1130 EJECT 1140 PRTIT, TAD BEGINX /GET LATEST BEGIN X VALUE 1150 JMS I [EVLPRT] /GO PRINT IT 1160 TAD BEGINY /GET LATEST BEGIN Y VALUE 1170 JMS I [EVLPRT] /GO PRINT IT 1180 TAD ENDX /GET LATEST END X VALUE 1190 JMS I [EVLPRT] /GO PRINT IT 1200 TAD ENDY /GET LATEST END Y VALUE 1210 JMS I [EVLPRT] /GO PRINT IT 1220 PRTIME; CUREND;CURBEG /PRINT MOVEMENT TIME 1230 JMS I [TABPRT] /TAB OVER 1240 PRTIME; CURBEG;OLDEND /PRINT INTER-MOVEMENT TIME 1250 XLIST OFF 1260 IFNZRO BLKPRT < 1270 XLIST ON 1280 JMS I [TABPRT] /TAB OVER 1290 TAD CURVAL /GET LATEST VALUE 1300 AND [BLINK] /JUST BLINK BIT 1310 CLL RTL;RTL /MOVE TO AC[11] 1320 TAD ["0&77] /MAKE IT ASCII DIGIT 1330 JMS I [P6CH] /GO PRINT IT 1340 XLIST OFF > 1350 XLIST ON 1360 JMS I [P6CH] /GO PRINT ,