100 XWORD, .-. /LATEST X-WORD 110 XYFACTO,.-. /X-Y POSITION FACTOR 120 VALID, -1 /MODEM VALIDITY INDICATOR 130 YPOS1, .-. /MODEM "Y" FIRST POSITION 140 YPOS2, .-. /MODEM "Y" SECOND POSITION 150 YWORD, .-. /LATEST Y-WORD 160 EJECT 170 PAGE /START HERE 180 190 START, JMP I (INITIALIZE) /GO SETUP INITIAL STUFF 200 210 MANFRZ, NL0001 /FORCE A FROZEN 220 DCA FREZSW /SCREEN 230 MAIN, JMS I [TSTCHR] /GET A CONTROL KEYBOARD CHARACTER (IF ANY) 240 TAD FREZSW /IS DISPLAY FROZEN? 250 SZA CLA /SKIP IF NOT 260 JMP I (FROZEN) /JUMP IF SO 270 DLD; POS /GET CURRENT POSITION 280 DAD; DIRECT /UPDATE 290 DAD; M4 /PROTECT THE DATA HEADER AREA 300 SPA /UNDERFLOW? 310 JMP MAIN /YES, IGNORE ATTEMPTS TO BACKUP BEFORE ZERO 320 DAD; D4 /REMOVE DATA HEADER OFFSET 330 DST; POS /NO, STORE NEW VALUE 340 DST; DSPWRK /CREATE TEMPORARY COPY 350 DCM /INVERT 360 DST; MDSPBASE /SAVE FOR RELATIVE CALCULATIONS LATER 370 AGAIN, STA /-1 380 DCA XR3 /SETUP CLEANUP POINTER 390 FASTCLE,CDF ADRFLD /GOTO BUFFER FIELD 400 TAD I XR3 /GET AN ADDRESS 410 SNA /END OF LIST? 420 JMP FASTDONE /YES 430 CMA /NO, INVERT FOR USE 440 DCA TEMP /STASH IT 450 CDF DSPFLD /GOTO DISPLAY FIELD 460 DCA I TEMP /CLEAR A WORD 470 JMP FASTCLEAR /GO DO ANOTHER ONE 480 EJECT 490 FASTDON,CDF 00 /BACK TO FIELD 0 500 SKP /DON'T CLEAR AGAIN! 510 BIGCLEA,JMS I [CLRSCREEN] /CLEAR THE HARD WAY 520 TAD (-265)/DSPCNT /SETUP THE 530 DCA DCOUNT /DISPLAY COUNTER 540 STA /-1 550 TAD [1]/DIVNDX /COMPARE TO SCALING FACTOR 560 SNA CLA /SKIP IF NOT ONE-TO-ONE 570 TAD (FOO-FOOBAR) /MAKE IT STORE THE ADDRESSES 580 TAD (FOOBAR) /GET INSTRUCTION EITHER WAY 590 DCA I (INST) /STORE IN-LINE 600 STA /SETUP THE 610 DCA XR2 /ADDRESS STORE POINTER 620 DDZ; OLDTIME /CLEAR PREVIOUS SPIKE TIME NOW 630 DATLUP, DLD; DSPWRK /GET LATEST POSITION 640 DAD; MDSPBASE /SUBTRACT THE BASE 650 DVI; L4/DIVNDX /DIVIDE BY SCALING FACTOR*4 660 DAD; D4 /ADJUST FOR RESERVED POINTS 670 DST; TAILTMP /SAVE HORIZONTAL POSITION 680 CLA DVI;[14] /DIVIDE BY 12 690 TAD [TAD L4000] /MAKE INTO TAD INSTRUCTION 700 DCA I [ORINST] /STORE IN-LINE 710 MQA /GET RELATIVE ADDRESS 720 DCA DSPADR /STASH IT 730 NL0006 /GET "X" DISPLAY VERTICAL POSITION 740 DCA XYFACTOR /SETUP FOR DISPLAY 750 LOAD; DSPWRK /GET X-VALUE 760 JMS I (DODISP) /DISPLAY IT 770 JMS I (DOBEND) /PROCESS BEGINNING OR END 780 TAD L40 /GET "Y" DISPLAY VERTICAL POSITION 790 DCA XYFACTOR /SETUP FOR DISPLAY 800 TAD YWORD /GET Y-VALUE 810 JMS I (DODISP) /DISPLAY IT 820 JMS I (DOBEND) /PROCESS BEGINNING OR END 830 NL2000 /SETUP LIGHT MASK 840 AND YWORD /IS LIGHT ON? 850 SZA CLA /SKIP IF NOT 860 JMS I (DOLITE) /INDICATE ON DISPLAY 870 TAD TMWORD /GET SPIKE WORD 880 SPA CLA /SKIP IF NO SPIKE HERE 890 JMS I (DOSPIKE) /GO PROCESS THE SPIKE 900 EJECT 910 NOSPIKE,DLD; DSPWRK /GET CURRENT DISPLAY POINTER 920 DAD; D4 /BUMP TO NEXT 930 DST; DSPWRK /UPDATE 940 ISZ DCOUNT /DONE ALL YET? 950 JMP DATLUP /NO, GO BACK 960 CAM /CLEAN UP 970 DCA CURSW /ELIMINATE OLD CURSOR 980 CDF ADRFLD /GOTO BUFFER FIELD 990 DCA I XR2 /DELIMIT THE CLEARING ADDRESS LIST 1000 CDF 00 /BACK TO FIELD 0 1010 TAD (DSPFLD+2) /GET DISPLAY FIELD AND GRAPHICS MODE 1020 DPGO /STARTUP THE DISPLAY 1030 DPLA /AT LOCATION 0000 1040 TAD FREZSW /FROZEN RE-CYCLE? 1050 SZA CLA /SKIP IF NOT 1060 JMP MAIN /JUMP IF SO 1070 LAS /GET DELAY SWITCHES 1080 DCA CNT /STASH DELAY VAUE 1090 WASTLP, DLD; POS /LOAD CURRENT POSITION 1100 DLD; POS /DO IT AGAIN 1110 DLD; POS /DO IT AGAIN 1120 DLD; POS /DO IT AGAIN 1130 ISZ CNT /WASTE 1140 JMP WASTLP /SOME TIME