100 JMP I [MAIN] /KEEP GOING 110 EJECT 120 DRWCURS,.-. /DRAW A CURSOR ROUTINE 130 TAD OLCURSOR /GET CURSOR VALUE 140 TAD L4 /ADJUST IT 150 MQL DVI;[14] /DIVIDE BY 12 TO GET ADDRESS 160 TAD [TAD L4000] /GET CORRECT TAD INSTRUCTION 170 DCA DRWLINE /STORE FOR LATER 180 MQA /GET ADDRESS 190 DCA TEMP /SET IT UP 200 TAD (-310) /SETUP 210 DCA CNT /CURSOR COUNT 220 DRWLINE,TAD L4000+.-. /GET THE RIGHT BIT 230 MQL /SET IT UP 240 DRWLUP, JMS I [DINSRT] /DRAW A CURSOR POINT 250 TAD TEMP /GET THE POINTER 260 TAD [20] /UPDATE IT 270 DCA TEMP /STASH IT BACK 280 ISZ CNT /DONE ALL YET? 290 JMP DRWLUP /NO, GO BACK 300 JMP I DRWCURSOR /YES, RETURN 310 320 INITIAL,CAF /CLEAN UP 330 SWAB /USE MODE "B" FROM NOW ON 340 JMS I [SYSIO] /CALL I/O ROUTINES 350 0000 /INTO BUFFLD 0000 360 BUFFLD+UNIT /40 PAGES 370 LBLK, 0000 /BLOCK 0000-0037 380 CDF BUFFLD /GOTO BUFFER FIELD 390 TAD I LBLK /GET LIMITING BLOCK 400 DCA HIBLK /SAVE IT FOR COMPARISONS LATER 410 CDF 00 /BACK TO FIELD 0 420 TAD (MANFRZ) /SETUP THE 430 DCA DONE /END-OF-DATA EXIT 440 TAD [-BUFLEN] /SETUP THE 450 DCA BLKLIM /INITIAL BUFFER CHECK 460 DCA I (OLDBLK) /INITIALLY 0-37 IS RESIDENT 470 JMS I [CLRSCREEN] /CLEAN THE SCREEN 480 DCA CURSW /NO PRIOR CURSOR 490 TAD I (SWAL) /GET /A-/L SWITCHES 500 SCNZAP, SMA CLA /SKIP IF WE SCAN THE DATA 510 JMP I [MAIN] /NOW START IT UP! 520 TAD (SCNDONE) /SETUP THE 530 DCA DONE /SCAN EXIT 540 JMP I (NOMODEM) /FIRST SCAN THE DISK BEFORE STARTING 550 EJECT 560 GETA2D, .-. /A-D INPUT ROUTINE 570 ADLM /CHANNEL IN AC 580 ADST /START CONVERSION 590 ADSK /DONE YET? 600 JMP .-1 /NO, WAIT 610 ADRB /YES, READ IT IN 620 JMP I GETA2D /RETURN 630 640 CLRSCRE,.-. /SCREEN CLEAR ROUTINE 650 STA /-1 660 DCA XR3 /SETUP CLEAR POINTER 670 TAD (-6200) /SETUP THE 680 DCA CNT /CLEAR COUNT 690 CDF DSPFLD /GOTO DISPLAY FIELD 700 DCA I XR3 /CLEAR A WORD 710 ISZ CNT /DONE YET? 720 JMP .-2 /NO, GO BACK 730 CDF ADRFLD /GOTO BUFFER FIELD 740 DCA I (0) /CLEAR THE CLEARING LIST 750 CDF 00 /BACK TO FIELD 0 760 JMP I CLRSCREEN /RETURN 770 780 PAGE 790 EJECT 800 NOMODEM,DLD; CURPTR /GET CURRENT POINTER 810 DAD; D4 /UPDATE TO NEXT 820 DST; CURPTR /STORE IT BACK 830 LOAD; CURPTR /GET LATEST DATA WORDS 840 CLA /THROW X-WORD AWAY 850 TAD I (ADDR) /GET ADDRESS 860 DCA ATEMP /SAVE IT 870 ISZ I (ADDR) /BUMP TO Y-WORD 880 NL5777 /EVERYTHING THAT WE WANT 890 AND YWORD /RETAIN OTHER Y-WORD BITS 900 JMS I [STORE] /NOW WE ARE CLEANED OUT 910 ISZ I (ADDR) /BUMP TO TIME WORD 920 ISZ I (ADDR) /BUMP TO MODEM WORD 930 NL3777 /SET MODEM MASK 940 AND MDWORD /STRIP SLOW-PHASE BIT 950 DCA MDWORD /STASH IT 960 TAD MDWORD /GET IT BACK 970 JMS I [STORE] /STORE IN BUFFER 980 TAD ATEMP /RESTORE THE 990 DCA I (ADDR) /ADDRESS 1000 NL0001 /SETUP LIGHT MASK 1010 AND LIGHT /FIND OUT IF LIGHT IS ON 1020 AND INTENS /AND IF IT IS BRIGHT! 1030 SNA CLA /SKIP IF SO 1040 JMP NOLITE /JUMP IF NOT 1050 ISZ I (ADDR) /BUMP TO Y-WORD 1060 NL5777 /SETUP MASK 1070 AND YWORD /RETAIN OTHER Y-WORD BITS 1080 TAD L2000 /FORCE ON LIGHT-ON BIT 1090 JMS I [STORE] /STORE IT BACK 1100 TAD XPOS2 /GET SECOND X 1110 CMA /INVERT FOR TEST 1120 SNA CLA /SKIP IF IN SECOND X REGION 1130 JMP NOLITE /JUMP IF NOT 1140 TAD POS3SW /GET THIRD POSITION INDICATOR 1150 SZA CLA /SKIP IF NOT IN THIRD POSITION 1160 JMP NOLITE /JUMP IF SO 1170 ISZ I (ADDR) /BUMP TO 1180 ISZ I (ADDR) /MODEM WORD 1190 NL3777 /SETUP MODEM WORD MASK 1200 AND MDWORD /GET OTHER BITS 1210 RAL /MOVE OURS TO LINK 1220 STL RAR /FORCE IT ON 1230 JMS I [STORE] /STORE IT BACK 1240 EJECT