*20 / QUICK AND DIRTY SPIKE ANALYSIS / /PROCEDURE: / INITIALIZATION: / I/O PRESET / START 20 (IF DATA HAVE BEEN SAVED,LS 0020). / PRINTS LF,CR, AND FIRST TBLK. / / START SAMPLING: / CONTINUE / XSL 1 HIGH: ENABLES, GOES TO WAIT LOOP / XSL 0 HIGH: ZEROES CLOCK, STARTS SAMPLING. / / STOP SAMPLING: / XSL 1 LOW: ZEROES REST OF CURRENT DF,AND / PRINTS EXPECTED FIRST TBLK (IN / DECIMAL) FOR NEXT SAMPLING. / XSL 5 HIGH: WRITES ON TAPE. ONLY WORKS / FROM XSL 1 WAIT LOOP. / / /SNS 0 IS DISABLE STORAGE /SNS 1 IS ENABLE CH 1 /SNS 4 IS HALT COMPUTER / (WITH SECONDS IN AC) /SNS 5 IS WRITE. ONLY WORKS FROM XSL 1 WAIT LOOP. / HALTS COMPUTER. PRESS CONTINUE TO WRITE. / /INPUT DATA IN AD 11 /AD 1 IS AD 11 THRESHOLD / /INTENSIFY PULSES FR0M LATCHES & MONOS:637X,640X / STORE 0 / VALLEY 2:SPIKE PASSES CRITERIA. / ABORT 3:SPIKE DOES NOT PASS CRITERIA. / THRESHOLD 4 / SEGMNT 0 *20 LDF 1 JMP LFCR /CARRIAGE RETURN JMP AAFTBK-1 WIMIN, 3 /NO. OF SAMS MIN. WIMAX, 7 /NO. OF SAMS MAX WIVAL, 15 /NO. OF SAMS TO VALLEY WIDISP, 20 /WIDTH OF DISPLAY LDA I AAFTBK, 1 /FIRST TAPEBLOCK (OCTAL) STC MTBLK LDA CORE STC LASTDF /LAST DF AT END OF CORE JMP CLDFS / *40 /INTERUPT HANDLER / NOP /REPLACED IOB /INTERUPT OFF IOF SAM 11 /INITIALIZE FIRST SAM IOB 6374 /THRESHOLD LATCH IOB RMF /RESTORE MEM FLD JMP CHOICE / CLDFS, SET I 2 2000 CLR /CLR DATA FIELD 1 STA 2 XSK I 2 JMP .-3 IOB 6214 /READ DF ROR 1 SAE LASTDF /LAST DF? SKP /NO JMP .+6 /YES ADA I 641 /GENERATE NEW DF STC .+1 LDF /REPLACED JMP CLDFS LDF 1 SET I 2 T1-1 /CLEAR TABLES... CLR STA I 2 LDA 2 SAE I 350 /...TO LOC 350 JMP .-6 SET I DATSTO /DATA STORAGE POINTER 3777 BLKPRT, LDA /NUM OF FIRST... MTBLK /TBLK TYPED JMP DECPRT JMP SPACE LDF 1 LDA XSL5FL /FLAG 5 SET? AZE I JMP MESSG1 /NO. INQUIRE IF TBLK OK. CLR /YES.CLEAR IT & GO. STC XSL5FL CHECK5, SXL I 5 /SNS,XSL 5 HIGH? JMP MESSG2 /YES.DSPLY "CLEAR SNS 5" SNS I 5 /SNS 5 STILL SET? JMP MESSG2 DELAY5, SET I 2 /DELAY FOR SWITCH BOUNCE -100 /400 MSEC XSK I 1 JMP .-1 XSK I 2 JMP .-3 JMP 400 / *140 /T1 (TABLE OF FLAGS AND SAVE REGISTERS) SAMPLE, 0 /CURRENT SAM PREVSM, 0 /PREVIOUS SAMPLE PDCTR, 0 /PEAK DETECT COUNTER STOFLG, 0 /STORE FLAG ABORFL, 0 /ABORT FLAG HFPKFL, 0 /HALF-PEAK FLAG (HALF DECAY POINT) PVRCTR, 0 /PEAK-OVER COUNTER SAVSEC, 0 /SAVE TIME (SEC) SAVMS, 0 /SAVE TIME (MSEC) SAVAMP, 0 /SAVE AMPLITUDE PKSMSV, 0 /SAVE PEAK SAMPLE XSL5FL, 0 /EXT.SNS LINE 5 FLAG /REUSABLE BETA REGISTERS=1-7 /DEDICATED " " : DISPTR=10 DISHOR=11 DISVERT=12 BRICTR=13 FRACTN=14 MSEC=15 SEC=16 DATSTO=17 T1=140 /TABLE 1 DISPT=160 /DISPLAY TABLE D1=160 /CH.1 " " / *340 BRIHOR, 0 /BRIGHTEN CONSTANTS BRIVER, 0 BRIEND, 0 VALHOR, 0 /VALLEY BRITN HOR VALVRT, 0 VLBRFL, 0 /VALLEY BRIGHTEN FLAG SAVEDF, 0 /SAVE OLD DATA FIELD *360 PCRIT, 20 LASTDF, 37 /REPLACED BY CORE MTBLK, 000 LASTBK, 777 TEMRY, 0 CORE, 37 /MEMORY SIZE *400 /BRIGHTEN DATA WINDOW CALCULATIONS / BRICAL, LDA WIMIN /HOR:INCR BY MUL I /...MIN WIDTH 10 /10 SCREEN UNITS/POINT ADA I 40+60+220-20 /4 PTS+6 SPACES + MARGIN STC BRIHOR LDA /VERT WIMIN /BRIGHT FROM WIMIN... ADA I DISPT+2 STC BRIVER LDA WIMAX /...TO WIMAX ADA I DISPT+2 STC BRIEND BRVLCA, LDA /CALC WIVAL BRITN DISPLAY WIVAL MUL I 10 /10 SCREEN UNITSPER POINT ADA I 40+60+220-20 /START OF DATA DISP (CORR.) STC VALHOR /HOR LDA WIVAL ADA I DISPT+2 STC VALVRT /VERT RELAY0, LDA I 0040 ATR /RELAY 0 ON WAIT1, SXL 1 /XSL 1 HIGH? JMP MESSG3 /NO.DSPLY "READY XSL 1" JMP DELAY /YES SNS I 4 JMP HALTCP /HALT COMPUTER SNS I 5 JMP STOPDA /STOP DATA & WRITE SXL 5 /XSL 5 SET (HIGH)? JMP WAIT1 /NO LDA I /YES. 1 STC XSL5FL /SET FLAG JMP STOPDA /STOP DATA AND WRITE. DELAY, SET I 2 /DUR.OF DELAY LOOP -20 XSK I 1 /DELAY LOOP JMP .-1 /...FOR RELAY BOUNCE XSK I 2 JMP .-3 SXL 1 /XSL 1 STILL HIGH? JMP WAIT1 /NO. FALSE ALARM WAIT0, SXL 0 /YES. IS XSL 0 HIGH? JMP MESSG4 /NO.WAIT & DISPL RELAY1, LDA I 60 /RELAY 1 ON (0 LEFT ON) ATR CLR STC FRACTN /ZERO TIME STC MSEC STC SEC CLOCK, LDA I 0300 /FULL-SIZE CHAR,FAST SAM ESF PDP PMODE CLA CLLR CLEN TAD K0024 / INTERVALS CIA CLAB CLA TAD K0100 /AC BIT 5 SET CLLR /GENERATE CLR CTR CLSA CLA TAD K0260 /OFLOW & INTERUPT 1 CLEN CLA TAD K2100 /100 KHZ RATE CLLR JMP .+5 K0024, 24 /20(10) X RATE INTVLS. K0100, 100 K0260, 0260 K2100, 2100 LINC LMODE / /END OF SET-UP ROUTINES. INITIALIZE DISP / CURINL, SET I 11 /HOR 220 /MARGIN XSK I 13 /CTR=0? JMP BRITN /NO. DISP WINDOW SET I 13 /YES. DISP ALL BRIFAC, -14 / (BRITN FACTOR) SET I 12 /VERT DISPT LDA WIDISP ADA I DISPT+3 STC ENDDIS JMP LOOP BRITN, SET 11 /HOR BRIHOR SET 12 /VERT BRIVER LDA BRIEND STC ENDDIS / /FOREGROUND PROGRAM / LOOP, IOB /INTERUPT OFF IOF IOB 6131 /SKIP ON CLOCK FLAG SKP JMP TIME SNS 1 JMP DISP LDA /IN A SPIKE? PDCTR AZE JMP LOOP /YES. DONT DISPLAY. DISP, IOB /NO.DISPLAY. ION /INTERRUPT ON LDA I 12 SCR 2 /SAM/4 DIS I 11 LDA I 7 /SPACES ADM 11 LDA 12 SAE I DISPT+3 JMP .+6 LDA /SPACES 11 ADA I 60 STC 11 LDA /END DISPLAY? 12 COM ADA I ENDDIS, 210 /(REPLACED) APO I JMP LOOP /NO. RETURN. / /SPECIAL BRIGHTENING ROUTINES / BRISAM, SET I 11 /YES.BRITN CURRENT SAM 220+40 /HOR SAM 11 SCR 2 DIS I 11 /DISP CURRENT SAM BRIVAL, LDA /YES. VLBRFL /VALLEY BRIGHTEN FLAG SET? AZE I /HAS VALLEY DISPLAYED? JMP .+4 /NO. BRITN VALLEY MAX. CLR /YES. CLEAR STC VLBRFL JMP CURINL /AND INITIALIZE. LDA VALHOR /INITIALIZE FOR ... STC 11 /...VALLEY BRIGHTEN. LDA VALVRT STA 12 STC VLBRFL /SET VALLEY BRIGHTEN FLAG JMP LOOP / /TIMEKEEPING ROUTINE / TIME, IOB 6135 /CLEAR CLOK FLAG XSK I FRACTN /INCR FRACTN CTR JMP CHOICE SET I FRACTN -5 /-1/FRACTION OF MSEC TIMEMS, XSK I MSEC /INCR.MSEC CTR. LDA MSEC SAE I 1750 / =1000(10)MSEC? JMP CHOICE /NO SET I MSEC /YES.RESET MSEC CTR 0 LDA I 1 /INCR. SEC CTR. ADM SEC CHOICE, SNS I 1 JMP ONE /TO BACKGR.PROG. SAM 11 /SAM... STC D1+3 /TO THRESH.DISPLAY. IOB 6404 /THRESH.LATCH OFF RETRN1, SNS I 4 JMP HALTCP /HALT COMPUTER SXL I 1 /XSL 1 LOW? JMP LOOP /NO. / / /SUBROUTINES / / ENDTRI, LDA /CALC BLKS USED SAVEDF /OLD DF... MUL I /...X4... 4 STC ADDBLK /+ NEW ONES: END1BK, LDA I -2370 ADD DATSTO /DATA PTR APO I /DATSTO < 2370? JMP END2BK /NO LDA I /YES.ZERO TO END OF BLK 2377 STC ENDCLR LDA I /ADD ONE BLK 1 JMP ADDBLK-1 END2BK, LDA I -2770 ADD DATSTO APO I /DATSTO < 2770? JMP END3BK /NO LDA I /YES.CLR TO 2777 2777 STC ENDCLR LDA I 2 /ADD 2 BLKS JMP ADDBLK-1 END3BK, LDA I -3370 ADD DATSTO APO I /DATSTO < 3370? JMP END4BK /NO LDA I /YES.CLR TO END OF BLK 3377 STC ENDCLR LDA I 3 /ADD 3 BKS JMP ADDBLK-1 END4BK, LDA I /CLR TO END OF DF 3777 STC ENDCLR JMP INCRDF LDA I 4 /ADD 4 BLKS ADA I ADDBLK, 0000 /REPLACED ADD MTBLK /+ OLD TBLK JMP DECPRT JMP SPACE CLR STA I DATSTO LDA DATSTO SAE I /CLR TO END OF ENDCLR, 0000 /(REPLACED) JMP .-6 /DESIGNATED BLK. LDA I 40 ATR /RELAY 1 OFF (0 LEFT ON) JMP WAIT1 / & WAIT FOR XSL 1 / /BACKGROUND PROGRAM / ONE, LDA PDCTR AZE /PD CTR > 0 ? JMP PEAK1 /YES PKINL, CLR STC D1+2 /CLR STORE DISP.PLS. IOB 6404 /RESET LATCH 4(THRESHOLD) SET I DISPTR /BETA 10 D1+5 /DISP TBL PTR SAM 11 STA SAMPLE STA DISPTR STC D1+3 /THRESH. DISPLAY LDA I 1 STC PDCTR /+1 TO PDCTR JMP INCRTN PEAK1, SAM 11 /SAMPLE SAMPLE /STORE & STA I DISPTR /...TO DISP TABLE LDA I /+1 TO PEAK DETECT COUNTER 1 ADM PDCTR SAE /DISPLAY TABLE FULL? WIDISP /(PDCTR=DISP WIDTH MAX?) SKP JMP CLEAR /YES. CLEAR. LDA ABORFL /ABORT FLAG SET? AZE JMP LOOP /YES POVER1, LDA /NO PVRCTR /POVER CTR>0? AZE /(OVER PEAK?) JMP WIDTH1 /YES LDA /NO SAMPLE ADD PCRIT /CRITN PEAKOVER COM / -SAM... ADD PREVSM /FROM PREV. SAM APO /REACH CRITN? JMP INCRTN /NO. LDA SEC /SAVE TIME & SAM STC SAVSEC /SEC. LDA MSEC STC SAVMS /MSEC. LDA PREVSM /PEAK SAM... STC PKSMSV /SAVED WIDTH1, LDA I 1 ADM PVRCTR /+1 TO POVER CTR LDA HFPKFL /HALF-PEAK FLAG SET? AZE JMP VALLEY /YES. LDA /NO. PKSMSV /PEAK SAM SCR 1 /DIV. BY 2... COM ADD SAMPLE />SAM?(I.E., BELOW APO I /HALF-DECAY POINT?) JMP INCRTN /NO. LDA /YES.CHECK WIDTH PDCTR /WIMIN1>PDCTR? COM ADD WIMIN /I.E., TOO NARROW? ADA I 1 /COUNTERACT NEG 0 APO I JMP ABORT /YES.NARROW.CLEAR. LDA /NO. PDCTR /PD CTR > WIMAX? COM ADD WIMAX ADA I 1 /COUNTERACT -0 APO /(TOO WIDE?) JMP ABORT /YES. CLEAR LDA I /NO. 1 STC HFPKFL /SET HALF PEAK FLAG JMP INCRTN VALLEY, LDA STOFLG /STORE FLAG SET? AZE JMP INCRTN /YES LDA /NO. SAMPLE COM /-SAM ADD PREVSM /+PREVIOUS SAM ADD PCRIT APO I /REACH CRITN? JMP INCRTN /NO. LDA /YES. VALLEY FOUND. PDCTR /(PDCTR>VALLEY WIDTH?) COM ADD WIVAL /NUMBER OF SAMS TO VALLEY APO /TOO WIDE? JMP ABORT /YES. LDA PREVSM /LOWEST POINT COM ADD PKSMSV /PK-VALLEY=AMPL. STC SAVAMP /SAVE AMPLITUDE. IOB 6372 /SET MONO & LATCH 2 SNS 0 /SNS 0 DISABLE STORE JMP STORE SRETRN, LDA I 1200 SNS I 0 /(IF SNS 5 SET... COM /...INVERT FLAG) STC D1+2 /DISP.STORE FLAG IOB /RESET LATCH 2 6402 LDA I 1 STC STOFLG /SET STORE FLAG INCRTN, LDA SAMPLE STC PREVSM /SAVE SAM JMP LOOP /RETURN ABORT, IOB /SET LATCH 3 (ABORT) 6373 NOP /KLUGE HRDWR BUG LDA I -1100 /ABORT DISP INDICATOR... STA I DISPTR /AT NEXT SAM LDA I 1 STC ABORFL /SET ABORT FLAG IOB 6403 /RESET LATCH 3 JMP LOOP CLEAR, CLR STC STOFLG /CLR STORE FLAG STC HFPKFL /CLR HALF PEAK FLAG STC ABORFL /CLR ABORT FLAG STC PDCTR /CLR PD.CTR. STC PVRCTR /CLR POVER CTR JMP CURINL / /END OF BACKGROUND PROGRAM /BEGIN SUBROUTINES / STORE, IOB 6370 /SET MONO & LATCH 0 LDA SAVMS COM STA I DATSTO /STORE -MSEC XSK DATSTO /END OF DF? SKP JMP INCRDF /YES. LDA /NO. SAVSEC STA I DATSTO /STORES SECONDS XSK DATSTO SKP JMP INCRDF LDA SAVAMP STA I DATSTO /STORE AMPLITUDE XSK DATSTO SKP JMP INCRDF IOB 6400 /RESET LATCH 0 JMP SRETRN INCRDF, CLR IOB 6214 /READ DF ROR 1 STA SAVEDF /SAVE CURRENT DF SAE LASTDF /LAST DF? SKP /NO JMP WRITE /YES.WRITE ON TAPE. ADA I 641 /INCR. DF STC .+1 LDF /REPLACED JMP 0 /RETURN TO CALL HALTCP, CLR ATR /RELAYS OFF LDA SEC /SEC.CTR. TO AC HLT LDA I 0040 /RELAY 0 ON ATR JMP LOOP /RESTART STOPDA, CLR ATR /RELAYS OFF LDA SEC SXL 5 /REMOTE WRITE ENABLE HLT /SAFETY STOP CLR IOB 6214 /READ DF ROR 1 ADA I -1 /PREVIOUS DF STC LASTDF /DF TO LASTDF WRITE, LDF 1 /BEGIN WRITE,DF1 CLR ATR /RELAYS OFF LDA I 207 /RING TTY BELL PDP PMODE TLS TSF JMP .-1 LINC LMODE WRITMO, SET I 2 /COUNTER OF DFS -4 LDA MTBLK BCL I /CUT M OFF MTBLK 7000 ADA I 4000 /M=4 STA MTBLK /SAVE NEW MTBLK INCR, STC .+2 WRC 10 /WRITE ON UNIT 1 4000 /REPLACED LDA I 1001 /INCR M AND T BLKS ADM MTBLK XSK I 2 /4 MBLKS WRITN? JMP INCR /NO LDA I /YES -1 ADM /COUNTERACT 1S COMPL. MTBLK BCL I 7000 /TBLK ONLY COM ADA LASTBK /LAST TBLK ALLOWED APO /PAST LAST TBLK? JMP .+10 /YES. PRINT TBLK CLR /READ DF. IOB 6214 ROR 1 SAE /LAST DF WRITN? LASTDF JMP INCR04 /NO JMP SPACE /YES.SPACES AND... JMP SPACE LDA /PRINT LAST MTBLK /...TBLK NUM, ADA I -1 JMP DECPRT JMP LFCR LDA CORE STC LASTDF /RESET LASTDF JMP BLKPRT /..& START AGAIN INCR04, ADA I 641 /INCR. DF STC .+1 LDF /REPLACED JMP WRITMO / /DISPLAY MESSAGES / MESSG1, SET I 4 /DSPLY "TBLK OK?" -1700 /CTR FOR TIME LAPSE SET I 2 /PTR TBLKOK-1 SET I 3 -8 /NUM. OF CHARS JMP DISCHR /DSPLY CHARS XSK I 4 /CTR=0? JMP MESSG1+2 /NO HLT /YES.SAFETY STOP JMP CHECK5 MESSG2, SET I 2 /DSPLY "CLEAR SNS 5" CLRSNS-1 /PTR SET I 3 -13 /NUM. OF CHARS. JMP DISCHR JMP CHECK5 MESSG3, SET I 2 /DSPLY "READY XSL 1" READY-1 /POINTER SET I 3 /NUM.OF CHARS. -13 JMP DISCHR JMP WAIT1+3 MESSG4, SET I 2 /DSPLY "READY" READY-1 SET I 3 -5 /NUM.OF CHARS. JMP DISCHR JMP WAIT0 DISCHR, SET I 1 /HOR 200 LDA I /VERT 0005 DSC I 2 /2 IS PTR FROM CALL DSC I 2 XSK I 1 XSK I 1 DJR XSK I 3 /CTR FROM CALL JMP .-6 JMP 0 /RETURN / *1600 DECPRT, BCL I 7000 PDP /...CONV. TO DECIMAL PMODE /DIGITAL 8-22-U /UNSIGNED DECIMAL PRINT /CALL WITH NUMBER TO BE TYPED IN C(AC) /RETURN TO LOCATION FOLLOWING THE JMS DCA VALUE /SAVE INPUT DCA DIGIT /CLEAR TAD CNTRZA DCA CNTRZB /SET COUNTER TO FOUR TAD ADDRZA DCA ARROW /SET TABLE POINTER SKP DCA VALUE /SAVE CLL TAD VALUE ARROW, TAD TENPWR /SUBTRACT POWER OF TEN SZL ISZ DIGIT /DEVELOP BCD DIGIT SZL JMP ARROW-3 /LOOP CLA /HAVE BCD DIGIT TAD DIGIT /GET DIGIT TAD K260 /MAKE IT ASCII TSF /OR TAD DIGIT JMP .-1 / JMS TDIGIT(SEE 8-19-U) TLS /TYPE DIGIT CLA DCA DIGIT /CLEAR ISZ ARROW /UPDATE POINTER ISZ CNTRZB /DONE ALL FOUR? JMP ARROW-1 /NO: CONTINUE TSF JMP .-1 /WAIT FOR FLAG LINC LMODE JMP 0 /RETURN TO CALL PMODE ADDRZA, TAD TENPWR CNTRZA, -4 TENPWR, -1750 /ONE THOUSAND -0144 /ONE HUNDRED -0012 /TEN -0001 /ONE K260, 260 VALUE, 0 DIGIT, 0 CNTRZB, 0 LMODE SPACE, LDA I 240 /TYPE A SPACE PDP PMODE TLS TSF JMP .-1 LINC LMODE JMP 0 LFCR, LDA I 215 /CARRIAGE RETURN PDP PMODE TLS TSF JMP .-1 LINC LMODE LDA I 212 /LINEFEED PDP PMODE TLS TSF JMP .-1 LINC LMODE JMP 0 / READY, 4477 /R 3146 4577 /E 4145 4477 /A 7744 4177 /D 3641 0770 /Y 7007 0000 /SPACE 0000 1463 /X 6314 5121 /S 4621 0177 /L 0301 0000 /SPACE 0000 2101 /1 0177 TBLKOK, 4040 /T (TAPE TBLK OK?) 4077 5177 /B 2651 0177 /L 0301 1077 /K 4324 0000 /SPACE 0000 4177 /O 7741 1077 /K 4324 4020 /? 2055 CLRSNS, 4136 /C (CLEAR SNS 5) 2241 0177 /L 0301 4577 /E 4145 4477 /A 7744 4477 /R 3146 0000 /SPACE 0000 5121 /S 4651 3077 /N 7706 5121 /S 4651 0000 /SPACE 0000 5172 /5 0651 / / SEGMNT 2 *20 LIF 0 JMP 20 /ALLOW START 20 / / ION=6001 IOF=6002 RMF=6244