100 DOSPIKE,.-. /PROCESS A SPIKE ROUTINE 110 DLD; OLDTIME /GET PREVIOUS SPIKE TIME 120 DCM /INVERT 130 DAD; DSPWRK /GET INTER-SPIKE TIME 140 SZA CLA /SKIP IF POSSIBLE 150 JMP TULONG /JUMP IF TOO FAR APART 160 MUY; (620) /*400 TO MICROSECONDS 170 DST; DBLTMP /SAVE IT 180 CAM /CLEAN UP 190 TAD OLTIME /GET PREVIOUS LOW-ORDER TIME 200 CIA /INVERT 210 TAD TMWORD /GET INTER-SPIKE LOW-ORDER 220 ASR; 14 /MAKE DOUBLE-PRECISION 230 DAD; DBLTMP /NOW HAVE COMPOSITE INTERVAL 240 DST; DBLTMP /SAVE IT 250 AND [7740] /TOO BIG? 260 SZA CLA /SKIP IF NOT 270 JMP TULONG /JUMP IF SO 280 TAD DBLTMP+1 /RESTORE THE VALUE 290 TAD (TABLE) /FORM TABLE ADDRESS 300 DCA TEMP /STASH IT 310 TAD I TEMP /GET THE SHIFT FACTOR 320 DCA SHFT1 /STORE IT 330 TAD SHFT1 /GET IT BACK 340 DCA SHFT2 /STORE IT AGAIN 350 TAD DBLTMP+1 /RESTORE TIME AGAIN 360 LSR; SHFT1, .-. /SCALE IT DOWN 370 MQA /THIS WILL DEFINITELY WORK! 380 DCA TEMP /SAVE DENOMINATOR 390 DLD; MILLION /GET 1000000 400 LSR; SHFT2, .-. /SCALE IT 410 DVI; TEMP /DIVIDE BY TIME 420 SZL CLA /SKIP IF NO OVERFLOW 430 HLT /BARF! 440 MQA /GET RESULT 7-625 450 TAD (-7) /0-618 460 CLL RTL /0-2472 470 MQL DVI;L40 /DIVIDE 0-2472/32 480 CLA MQA /GET QUOTIENT 490 CIA /INVERT 500 EJECT 510 TULONG, TAD (307) /MAKE IT 199 TO 123 520 CLL RTL /*4 530 RTL /*20 FOR ROW ADDRESS 540 JMS I [DSPLA] /DISPLAY THE SPIKE 550 TAD TMWORD /GET TIME WORD 560 DCA OLTIME /SAVE FOR NEXT TIME 570 DLD; DSPWRK /GET CURRENT SPIKE TIME 580 DST; OLDTIME /STORE FOR NEXT TIME 590 JMP I DOSPIKE /RETURN 600 610 MILLION,1100; 364 /10^6 620 EJECT 630 TABLE, 0 /0 0 0 0 0 640 1 /0 0 0 0 1 650 2 /0 0 0 1 0 660 2 /0 0 0 1 1 670 3 /0 0 1 0 0 680 3 /0 0 1 0 1 690 3 /0 0 1 1 0 700 3 /0 0 1 1 1 710 4 /0 1 0 0 0 720 4 /0 1 0 0 1 730 4 /0 1 0 1 0 740 4 /0 1 0 1 1 750 4 /0 1 1 0 0 760 4 /0 1 1 0 1 770 4 /0 1 1 1 0 780 4 /0 1 1 1 1 790 5 /1 0 0 0 0 800 5 /1 0 0 0 1 810 5 /1 0 0 1 0 820 5 /1 0 0 1 1 830 5 /1 0 1 0 0 840 5 /1 0 1 0 1 850 5 /1 0 1 1 0 860 5 /1 0 1 1 1 870 5 /1 1 0 0 0 880 5 /1 1 0 0 1 890 5 /1 1 0 1 0 900 5 /1 1 0 1 1 910 5 /1 1 1 0 0 920 5 /1 1 1 0 1 930 5 /1 1 1 1 0 940 5 /1 1 1 1 1 950 960 PAGE 970 EJECT 980 FROZEN, TAD EDSW /ARE WE ALLOWED TO EDIT? 990 SNA CLA /SKIP IF SO 1000 JMP I [MAIN] /FORGET IT 1010 STA /-1 1020 TAD [1]/DIVNDX /ARE WE ONE-TO-ONE? 1030 SZA CLA /SKIP IF SO 1040 JMP NOTONE /JUMP IF NOT 1050 TAD (CURNOB) /GET CURSOR CHANNEL NUMBER 1060 JMS I [GETA2D] /GET THE A-D VALUE 1070 TAD L1000 /MAKE UNSIGNED 1080 CLL RTL /*4 1090 MQL DVI;(26) /%22 1100 CLA MQA /GET QUOTIENT 1110 TAD (-264) /GREATER THAN 180? 1120 SMA /SKIP IF NOT 1130 CLA /MAKE IT 180 1140 TAD (264) /RESTORE VALUE 1150 DCA NEWCURSOR /SAVE IT 1160 TAD CURSW /GET CURSOR SWITCH 1170 SNA CLA /SKIP IF ALREADY PRESENT 1180 JMP USENEW /JUMP IF NOT 1190 TAD NEWCURSOR /GET NEW VALUE 1200 CIA /INVERT FOR TESTING 1210 TAD OLCURSOR /COMPARE TO PREVIOUS 1220 SNA CLA /SKIP IF DIFFERENT 1230 NOTONE, JMP I [MAIN] /JUMP IF EQUAL 1240 REFRESH,DLD; POS /GET ORIGINAL POSITION 1250 DST; DSPWRK /RESET WORKING COPY 1260 JMP I (AGAIN) /DRAW IT AGAIN 1270 1280 USENEW, ISZ CURSW /INDICATE A CURSOR PRESENT 1290 TAD NEWCURSOR /GET THE VALUE 1300 DCA OLCURSOR /USE AS OLD VALUE FOR NEXT TIME 1310 STA /BACKUP THE 1320 TAD XR2 /CLEAR POINTER 1330 DCA XR2 /IN CASE OF IT USAGE 1340 JMS I [DRWCURSOR] /DRAW IT IN 1350 CDF ADRFLD /GOTO BUFFER FIELD 1360 DCA I XR2 /DELIMIT THE LIST 1370 CDF 00 /BACK TO FIELD 0