*20 / QUICK AND DIRTY SPIKE ANALYSIS / /SAVES -MSEC,SEC,AMPLITUDE AS MAX-MIN. /ZEROES WORD FOLLOWING DATA, AND TO END OF BLK. /IF LAST SPIKE FILLS BLK,THE WHOLE SPIKE IS ZEROED. / / /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. /XSL 13 IS DISABLE VOLTAGE WINDOW LINES. / 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 PDP PMODE JMS I PTYPE /TYPE:HEADER,DATE?,TBLK? 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 " / PTYPE, HEADER /ADDR.HEADER TYPEOUT 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 WAIT1 / *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 ALLBLK, 0 /TBLK+ADDBLK /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 / /TABLE OF CONSTANTS *360 LASTDF, 37 /REPLACED BY CORE MTBLK, 000 LASTBK, 777 TEMRY, 0 CORE, 37 /MEMORY SIZE XSL5FL, 0 /SENSE LINE 5 FLAG / / *400 JMP START 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 SET I FRACTN /ZERO FRACTN -5 CLR STC MSEC /ZERO MSEC STC SEC /ZERO SEC LDA I 0300 /FULL-SIZE CHAR,FAST SAM ESF PDP PMODE CLOCK, CLA /ZERO CLOCK,SET RATE 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 / /ROUTINE TO DISPLAY VOLTAGE WINDOW / XSK I 7 /7=DISP CTR JMP CHOICE SXL I 13 /XSL 13 HIGH? JMP CHOICE /YES. DONT DISPLAY. SET I 7 /NO. DISPLAY. -20 /DISP EVERY 20 PASSES SET I 4 320 /LEFT MARGIN LINE, LDA I 1200 /MAX VOLTAGE DIS I 4 XSK I 4 XSK I 4 COM /MIN VOLTAGE DIS I 4 XSK I 4 XSK I 4 LDA 4 ADA I -520 /-RIGHT MARGIN APO /FINISHED? JMP LINE /NO JMP CHOICE /YES.RETURN / 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 XSK DATSTO /END ON FULL DF? JMP ENDNF /NO. NOT FULL. IOB /YES. 6214 /CORRECT FOR DF INCR ROR 1 ADA I 640-1 /DECREMENT DF STC .+1 LDF /REPLACED ENDNF, IOB 6214 /READ DF ROR 1 ADA I -2 /BEGAN IN DF 2, SO -2 MUL I /...X4... 4 STC ADDBLK /+ NEW ONES: END1BK, LDA I -2376 ADD DATSTO /DATA PTR APO I /DATSTO 2377 SET I DATSTO /YES. ZERO LAST SPIKE. 2374 / /NOTE: IF DATA EXTEND TO LAST WORD IN BLK, /THE LAST 3-WORD SPIKE IS ZEROED. /THUS AT LEAST ONE ZERO FOLLOWS DATA. / CLR1BK, LDA I /ZERO TO END OF BLK 2377 STC ENDCLR LDA I /ADD ONE BLK 1 JMP ADDBLK-1 END2BK, LDA I -2776 ADD DATSTO APO I /DATSTO 2777 SET I DATSTO /YES. ZERO LAST SPIKE. 2774 CLR2BK, LDA I /CLR TO 2777 2777 STC ENDCLR LDA I 2 /ADD 2 BLKS JMP ADDBLK-1 END3BK, LDA I -3376 ADD DATSTO APO I /DATSTO 3377 SET I DATSTO /YES.DATSTO=3377 3374 /ZERO LAST SPIKE CLR3BK, LDA I /CLR TO END OF BLK 3377 STC ENDCLR LDA I 3 /ADD 3 BKS JMP ADDBLK-1 END4BK, XSK DATSTO /STOPPED ON FULL DF? JMP .+3 /NO SET I DATSTO /YES. ZERO LAST SPIKE. 3774 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 BCL I 7000 /TBLK ONLY STA ALLBLK /TBLK+ADDBLK JMP DECPRT JMP SPACE CLR STA I DATSTO LDA DATSTO SAE I /CLR TO END OF ENDCLR, 0000 /(REPLACED) JMP .-6 /DESIGNATED BLK. 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 STC ABORFL /CLR ABORT FLAG STC PDCTR /CLR PD.CTR. STC PVRCTR /CLR POVER CTR JMP LOOP STORE, IOB MONSET 0 /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 RESET 0 /RESET LATCH 0 JMP SRETRN INCRDF, CLR IOB 6214 /READ DF ROR 1 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, LDA /STOP DATA INTAKE SEC SXL 5 /REMOTE WRITE ENABLE HLT /SAFETY STOP CLR /NO. ZERO... STA I DATSTO /...TO END OF DF XSK DATSTO JMP .-2 IOB 6214 /READ DF ROR 1 STC LASTDF /DF TO LASTDF WRITE, LDF 2 /BEGIN WRITE,DF2 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 WRINCR, LDA MTBLK 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 .+5 /NO LDA I /YES -1 ADM /COUNTERACT 1S COMPL. MTBLK BCL I 7000 /TBLK ONLY SAE ALLBLK /LAST OF DATA WRITN? SKP /NO JMP WRITST /YES.STOP WRITING. SAE LASTBK /LAST BLK ALLOWED? SKP /NO JMP WRITST /YES.STOP WRITING. XSK 2 /4 BLKS (1 DF) WRITN? JMP WRINCR /NO CLR /YES.READ DF. IOB 6214 ROR 1 SAE /LAST DF WRITN? LASTDF JMP INCR04 /NO WRITST, JMP SPACE /YES.STOP WRITING JMP SPACE LDA /PRINT LAST MTBLK /...TBLK NUM, ADA I -1 JMP DECPRT JMP LFCR LDA CORE STC LASTDF /RESET LASTDF JMP START /..& 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 NUMTAB, 4136 /0 3641 2101 /1 0177 4523 /2 2151 4122 /3 2651 2414 /4 0477 5172 /5 0651 1506 /6 4225 4443 /7 6050 5126 /8 2651 5122 /9 3651 / DECPRT, BCL I 7000 PDP /...CONV. TO DECIMAL PMODE JMS I PDECPR LINC LMODE JMP 0 /RETURN TO CALL SPACE, LDA I 240 /TYPE A SPACE PDP PMODE TLS TSF JMP .-1 LINC LMODE JMP 0 LFCR, PDP /LINC LINEFEED- PMODE /CARRIAGE RETRN JMS I PLFCR LINC LMODE JMP 0 PLFCR, PCRLF /ADDR. OF HANDLER / 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 AENDIF, 0651 / / PMODE *2020 /TYPE HEADER ROUTINE HEADER, 0 JMS PCRLF CLA CLL TAD ADRMS1 /MSG.1:HEADING JMS TYPSTG /TYPE IT JMS PCRLF /CR-LF CLA CLL TAD ADRMS2 /MSG 2:DATE? JMS TYPSTG /TYPE IT JMS PCRLF /CR-LF JMS PCRLF /CR-LF CLA CLL TAD ADRMS3 /MSG.3:TBLK NUM? JMS TYPSTG /TYPE IT JMS I GETKBD /GET TBLK JMP I HEADER /EXIT ADRMS1, TYPMS1 ADRMS2, TYPMS2 /ADDRESS OF MESSAGES ADRMS3, TYPMS3 GETKBD, SICONV / / PCRLF, 0 /CR-LF ROUTINE CLA CLL TAD K15 /CR TLS TSF JMP .-1 CLA TAD K12 /LF TLS TSF JMP .-1 JMP I PCRLF K15, 15 K12, 12 / /DIGITAL 8-20-U /CHARACTER STRING TYPE-OUT /CALL WITH STRING ADDRESS IN /C(AC); ALL CODES MAY BE DEVELOPED /RETURN FOLLOWING THE JMS / PMODE / TYPSTG, 0 DCA TEMQ /STORE INITIAL ADDRESS DCA FLAG /CLEAR FLAG TSCC1, TAD I TEMQ /PICK UP DATA RTR /ROTATE 6 BITS RIGHT RTR RTR JMS TSCC2 /TYPE FIRST CHARACTER TAD I TEMQ /PICK UP DATA JMS TSCC2 /TYPE SECOND CHARACTER ISZ TEMQ /INCREMENT STORAGE ADDRESS JMP TSCC1 /GO BACK FOR MORE TSCC2, 0 AND K77 /MASK OFF 6 BITS DCA TEMR /SAVE CHARACTER TAD FLAG /TEST "SPECIAL" FLAG SZA CLA JMP TYPSP /SET: TYPE SPECIAL TAD TEMR /NO: REGULAR CHARACTER SNA /IS IT ZERO? JMP .+3 /YES: SET FLAG TYPAT, JMS PRINT /NO: PRINT IT JMP I TSCC2 /RETURN ISZ FLAG /SET "SPECIAL" FLAG JMP I TSCC2 /EXIT TYPSP, DCA FLAG /CLEAR "SPECIAL" FLAG TAD TEMR /TEST FOR "0" CIA SNA JMP TYPAT /0: TYPE "" IAC /TEST FOR 01 SNA CLA JMP I TYPSTG /YES: EXIT CODE TAD SKIPMA /ALTER INSTRUCTION DCA SWITCH /TO BE "SMA" TAD TEMR /TYPE CHARACTER JMS PRINT TAD SKIPPA /ALTER INSTRUCTION DCA SWITCH /TO BE "SPA" JMP I TSCC2 /RETURN PRINT, 0 TAD M40 /COMPARE WITH 40 SWITCH, SPA /OR SMA FOR SPECIAL CODES TAD C100 TAD C240 TLS TSF JMP .-1 CLA JMP I PRINT /CONSTANTS AND TEMPORARY REGISTERS TEMQ, 0 /CONTAINS STRING ADDRESS TEMR, 0 /CONTAINS 6 BIT CHARACTER FLAG, 0 /"SPECIAL" FLAG K77, 77 M40, -40 C100, 100 C240, 240 SKIPMA, SMA SKIPPA, SPA / *2200 / 28UASCII SICONV (MOD BY FH&SK) /SINGLE PRECISION DECIMAL INPUT FROM KEYBOARD /CALLING SEQUENCE: JMS SICONV /ACC IGNORED, RETURN WITH BINARY WORD IN ACC / PMODE / SICONV, 0 CLA CLL TAD SISET1+1 /INITIALIZE PROGRAM SWITCHES DCA SICTRL TAD SISET1+1 DCA SIXSW1 DCA SIHOLD DCA SINEG1 /CLEAR NEGATIVE SWITCH JMP SINPUT SIPROC, DCA SISAVE TAD SISAVE /STORE AND THE PROCESS CHARACTER TAD SIRBUT SNA /IS IT A "BACK-ARROW" (IE. ERASE) KEY JMP SICONV+1 /YES, REINITIALIZE TAD SIM260 SPA /IS IT LESS THAN 260 (IE. "0") JMP SICTRL /YES. TRANSFER TO SEE WHAT CHAR. IT IS TAD SIM271 SMA SZA CLA /IS IT GREATER THAN 271 (IE. "9")? JMP SICTRL /YES, TRANSFER TO SEE WHAT CHARACTER IT SIXSW1, CLA CLL /NO, FIRST CHARACTER WAS A DECIMAL DIGIT TAD .+4 /CLOSE SWITCH TO GO TO "SINMBR" NEXT DCA .-2 TAD SINMBR-1 /SET SWITCH TO SENSE TERMINATING CHAR. DCA SICTRL JMP SINMBR SICTRL, CLA CLL /CONTINUE CHECKING TAD SISAVE TAD SIMSPC SNA /IS IT A SPACE? JMP SISET1+1 /YES, SET SWITCH TO SENSE TERM. CHAR. TAD SIMPLS SNA /IS IT A "PLUS"? JMP SISET1+1 /YES, SET SW TO SENSE TERM. CHAR. TAD SIMMNS SNA CLA /IS IT A MINUS? JMP SISET1 /YES, SET NEGATIVE XSWITCH AND TERM SW. JMP SIEND /NO, IT WAS A TERMINATING CHAR. SINMBR, TAD SIHOLD /MULTIPLY CURRENT ASSEMBLED NUMBER BY 10 CLL RTL TAD SIHOLD RAL DCA SIHOLD TAD SISAVE /PICK UP CURRENT DIGIT AND SIMASK /MASK OFF THE HIGH ORDER BITD TAD SIHOLD /ADD TO ASSEMBLED NUMBER DCA SIHOLD /STORE BACK IN SIHOLD SINPUT, KSF /INPUT ROUTINE JMP .-1 KRB TLS JMP SIPROC /TERMINATING ROUTINE SIEND, CLA CLL TAD SINEG1 RAR /PUT NEGATIVE SWITCH INTO LINK TAD SIHOLD SZL /IS THE LINK "1"? CMA IAC /YES, NUMBER NEGATIVE. COMPLEMENT JMP I SICONV /RETURN. SISET1, ISZ SINEG1 /SET NEGATIVE SWITCH CLA CLL TAD SINMBR-1 /CLOSE SW TO TRANSFER TO TERM. DCA SICTRL JMP SINPUT /CONSTANTS AND VARIABLES SIMASK, 17 SIRBUT, -337 /CODE FOR ERASE SIM260, 57 /NUMBER USED TO GENERATE CODE "260" SIM271, -11 /NUMBER USED TO GENERATE CODE "271" SIMSPC, -240 /CODE FOR SPACE SIMPLS, -13 /NUMBER USED TO GENERATE CODE "253" (+) SIMMNS, -2 /NUMBER USED TO GENERATE CODE "255" (-) SISAVE, 0 /STORAGE LOCATIONS SIHOLD, 0 SINEG1, 0 / / /DIGITAL 8-22-U /UNSIGNED DECIMAL PRINT /CALL WITH NUMBER TO BE TYPED IN C(AC) /RETURN TO LOCATION FOLLOWING THE JMS OCDCPR, 0 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 JMP I OCDCPR /RETURN TO CALL ADDRZA, TAD TENPWR CNTRZA, -4 TENPWR, -1750 /ONE THOUSAND -0144 /ONE HUNDRED -0012 /TEN -0001 /ONE K260, 260 VALUE, 0 DIGIT, 0 CNTRZB, 0 / / PAGE / /TYPE OUT MESSAGE / TYPMS1, TEXT Z QUICK AND DIRTY SPIKE ANALYSIS (THREE WORDS/SPIKE) V.24.Z 0100 /TERMINATOR TYPMS2, TEXT ZDATE OF EXPERIMENT: Z 0001 TYPMS3, TEXT ZFIRST TBLK (IN DECIMAL)? Z 0100 /TERMINATOR / /END OF MESSAGES / LMODE SEGMNT 2 *20 LIF 0 JMP 20 /ALLOW START 20