*20 / QUICK AND DIRTY SPIKE ANALYSIS / /PROCEDURE: / INITIALIZATION: / I/O PRESET / START 20 (IF DATA HAVE BEEN SAVED,LS 0020). / PRINTS LF,CR, AND ASKS FOR FIRST / TBLK (IN DECIMAL) FROM TTY. / / REINITIALIZE TRIAL: / START 400 (ZEROS ALL DATA SINCE LAST WRITE. / / 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 2 READS LSW TO WIMAX,RSW TO WIVAL /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:641X,642X / STORE 0 / VALLEY 2:SPIKE PASSES CRITERIA. / ABORT 3:SPIKE DOES NOT PASS CRITERIA. / THRESHOLD 4 / SEGMNT 0 *20 LDF 2 JMP LFCR /CARRIAGE RETURN LDA I TYPMS1 /ADDRESS OF MESSAGE PDP PMODE JMS I PTYPQ1 /ASK FOR FIRST TBLK JMS I PTBLK /GET ANSWER LINC LMODE STC MTBLK /STORE FIRST TBLK JMP LFCR JMP START WIMIN, 2 /NO. OF SAMS MIN. WIMAX, 10 /NO. OF SAMS MAX WIVAL, 12 /NO.SAMS PEAK TO VALLEY WIDISP, 20 /WIDTH OF DISPLAY PCRIT, 20 /PKOVR CRITERION VLCRIT, 5 /VALLEY " / PTYPQ1, TYPSTG /ADDR.TYPE HANDLER PTBLK, SICONV /ADDR.DEC-OCT.IN PDECPR, OCDCPR /ADDR.OCT-DEC.PRINT / START, LDA CORE STC LASTDF /LAST DF AT END OF CORE LDA WIVAL ADD WIMIN STC VALWID /TEMPO DSPLY BRITN VALLEY 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 2 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 RELAY0 / *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 " " MONSET=6420 /SET MONO&LATCH RESET=6430 /RESET LATCH / *340 BRIHOR, 0 /BRIGHTEN CONSTANTS BRIVER, 0 BRIEND, 0 VALHOR, 0 /VALLEY BRITN HOR VALVRT, 0 VLBRFL, 0 /VALLEY BRIGHTEN FLAG *360 LASTDF, 37 /REPLACED BY CORE MTBLK, 000 LASTBK, 777 TEMRY, 0 CORE, 37 /MEMORY SIZE / / *400 JMP START 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 K310 / INTERVALS CIA CLAB CLA TAD K0100 /AC BIT 5 SET CLLR /GENERATE CLR CTR CLSA CLA TAD K0300 /AC BITS 4,5 SET CLEN CLA TAD K2100 /100 KHZ RATE CLLR JMP .+5 K310, 24 K0100, 100 K0300, 300 K2100, 2100 LINC LMODE / /END OF SET-UP ROUTINES. INITIALIZE DISP / 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+3 STC BRIEND 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 DSPSEC, LDA /DISPLAY SECONDS SEC ADD SEC ADA I NUMTAB-1 STC 2 /PTR TO NUMBER TABLE SET I 1 100 /HOR=100; VERT=0 DSC I 2 DSC I 2 /DISPLAY SECS WIDADJ, SNS 2 /WIDTH ADJUST JMP LOOP CLR LSW /LEFT SW.=WIMAX STC WIMAX RSW /RIGHT SW.=WIVAL STC WIVAL JMP LOOP BRITN, SET 11 /BRIGHTEN WINDOW BRIHOR /HOR SET 12 /VERT BRIVER LDA BRIEND STC ENDDIS / /MAIN PROGRAM / LOOP, IOB 6131 /SKIP ON CLOCK FLAG SKP JMP TIME SNS 1 /PERMIT DISP IF... JMP DISP / SNS1 NOT ENABLED LDA /IN A SPIKE? PDCTR AZE JMP LOOP /YES. DONT DISPLAY. DISP, LDA I 12 /NO. DISPLAY. 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 CHOICE /NO. RETURN. / /SPECIAL BRIGHTENING SUBROUTINES / BRISAM, SET I 11 /YES.BRITN CURRENT SAM 220+40 /HOR LDA SAMPLE /VERT SCR 2 DIS I 11 /DISP CURRENT SAM BRIVAL, LDA VLBRFL /VALLEY BRIGHTEN FLAG SET? AZE I /HAS VALLEY DISPLAYED? JMP .+4 /NO. BRITN VALLEY MAX. CLR /YES. CLEAR STC VLBRFL JMP BRICAL /AND INITIALIZE. LDA I VALWID, 0000 /(REPLACED) MUL I 10 ADA I 220+40+60-20 /HOR STC 11 LDA VALWID ADA I DISPT+2 STA 12 STC VLBRFL /SET VALLEY BRIGHTEN FLAG JMP CHOICE 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 1 JMP RETRN1 SAM 11 /INITIATE SAM JMP ONE /TO CH.1 RETRN1, SNS I 4 JMP HALTCP /HALT COMPUTER SXL I 1 /XSL 1 LOW? JMP LOOP /NO. / / /SUBROUTINES / / ENDTRI, CLR /CALC BLKS USED IOB 6214 /READ DF ROR 1 ADA I -2 /BEGAN IN DF2, SO -2 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 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) XSK DATSTO JMP WAIT1 JMP INCRDF /+1 TO DF JMP WAIT1 / & WAIT FOR XSL 1 / / ONE, SAM 1 STC SAMPLE LDA PDCTR AZE /PD CTR > 0 ? JMP PEAK1 /YES SAM 11 /THRESHOLD A-D 1 STA D1+3 / " TO DISPT. COM ADD SAMPLE / > THRESHOLD ? APO I JMP PKINL /YES JMP RETRN1 /NO PKINL, CLR STC D1+2 /CLR STORE DISP.PLS. IOB MONSET 4 /SET MONO 4 (THRESHOLD) SET I DISPTR /BETA 10 D1+4 /DISP TBL PTR LDA SAMPLE STA DISPTR LDA I 1 STC PDCTR /+1 TO PDCTR IOB RESET 4 /RESET LATCH 4 NOP /HRDWR BUG FIX JMP INCRTN PEAK1, LDA SAMPLE 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 SAE WIVAL /PVRCTR=WIVAL? JMP .+4 /NO. LDA /YES.BRITN VALLEY. PDCTR STC VALWID 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 /WIMIN>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 VLCRIT APO I /REACH CRITN? JMP INCRTN /NO. LDA /YES. VALLEY FOUND. PVRCTR /(PVRCTR>VALLEY WIDTH?) COM ADD WIVAL /NUM.SAMS PKOVR TO VALLEY APO /TOO WIDE? JMP ABORT /YES. LDA PREVSM /LOWEST POINT COM ADD PKSMSV /PK-VALLEY=AMPL. STC SAVAMP /SAVE AMPLITUDE. IOB MONSET 2 /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 RESET 2 LDA I 1 STC STOFLG /SET STORE FLAG INCRTN, LDA SAMPLE STC PREVSM /SAVE SAM JMP RETRN1 /RETURN ABORT, IOB /SET MONO 3 (ABORT) MONSET 3 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 RESET 3 /RESET LATCH 3 JMP LOOP CLEAR, CLR STC STOFLG /CLR STORE FLAG STC HFPKFL /CLR HALF PEAK FLAG ST54