*20 /// COLLECT / /UP TO 12 CHANNEL DATA COLLECTOR. /LAYS DOWN 10 BIT DATA ON UNIT 2. /UNIT 2 MAY BE UP TO 1023(10) BN LONG. / /LODSYM NOT NEEDED. PBLOCKI ADDED. / /USED ONLY WITH RESPLUK & EKGLUK. /USE RESPCAL WITH RESP DATA BEFORE /USING COLLECT. /BE SURE TO ASSIGN 3 CHANNELS FOR EACH /OF THESE TWO PROGRAMS. OPR=500 / LMODE SEGMNT 5 *20 / /INITIAL QUESTIONS / D1, LIF 4 INTRACT CJ1 M1 /PROG COLLECT /PBLOCK: CJ1, T1 J1 T1, 0 J1, JMP D1 /CR JMP GTPBLK /NUM GTPBLK, STA I PBLK, 0 COM ADA I 7077 STC .+3 LDF 7 OPR 12 CPBL, 0 /QN7,DF7 = PBLOCK D2, LIF 4 INTRACT CJ2 M2 /BUFFER BLOCK: CJ2, T1 J2 J2, JMP D1 /CR JMP GTBBLK /NUM GTBBLK, STA I BLOCK, 0 D3, JMP SETPAR /SETUP PARAM JMP SETTAP /POSITION DATA TAPE LIF 4 INTRACT CJ3 M3 /SAM: CJ3, T3 J3 T3, SAMPL 0 J3, JMP D1 /CR JMP DOSAM /SAM JMP D3+2 /NUM /MOVED TO P102 OF PBLOCK. DATSEG, 1 /DATA TYPE 0 /CURRENT CHANNELS 0 /CURRENT CHANNELS DESSAM, 0 /NO. OF SAMPLES DESSEG, 0 /MAX NO. SEGMENTS 0 /SAMPLED SEGMENTS ENMFLG, 7777 /ENSAMBLE FLAG ENAM, 0 /ENSAMBLE NAME 0 SPCFLG, 0 /INDIVIDUAL FLAG SNAM, 0 /SPECTRA NAME 0 RAWFLG, 0 /RAW FLAG RNAM, 0 /RAW NAME 0 NUMCH, 0 /NUM DATA CHAN /READY TO SAMPLE / DOSAM, LDA I 1 JMP PULSE /START TAPE FY, JMP DELWAT /TAPE DELAY JMP CLKSET /SET CLK IOB IOF / JMP SAMBUF / FDONE, LDA I 2 JMP PULSE /STOP TAPE /RESET CLOCK IN CASE OPR 3 5100 1750 / /FIRST WRITE ONE FINAL BLOCK WITH /FIRST LOCATION =-0. LDF 7 CLR COM STA 2\P0 LDA TPBLK ADD ONE STA TPBLK JMP WRTHED /NOW UPDATE PBLOCK FOR ACTUAL NUMBER OF /SEGMENTS SAMPLED, RESTORE P0, & REWRITE /HEADER BLOCK. FIRST GET HEADER. LDA BLOCK JMP RDTHED LDA NSEG STA 2\P102+5 /SAMPLED SEGS STA 2\P20 /NUM SEG LDA 2\P102 /DATA TYPE STA 2\P0 LDA BLOCK JMP WRTHED /TYPE OUT NEXT AVAILABLE BUFFER BLOCK. SFLOAT TPBLK SETWRD 400 OUTPUT NXTBLK LIF 4 MESOUT MN /NEXT BUFFER BLOCK= JMP D1 / /SUBROUTINES FOR DATA COLLECTION / PULSE, SET 3 0 ATR CLR STC 5 SET I 6 -24 XSK I 5 JMP .-1 XSK I 6 JMP .-3 / ATR JMP 3 / / DELWAT, SET 3 0 IOB IOF / SET I 6 DEL, 0 / /.01 SEC WAIT LOOP / NOP XSK I 5 JMP .-2 / /TIMES DEL / XSK I 6 JMP .-4 JMP 3 / / / /TEST FOR TTY INPUT. /IF = 377, EXIT WITH 377 IN AC /OTHERWISE AC IS CLR. /IF = 240, PUT 240 IN LOCATION PFLG / KEYTST, LDA 0 STC KEYX IOB 6031 JMP KEYX IOB 6036 SAE I 240 JMP .+3 STC PFLG JMP KEYX SAE I 377 CLR KEYX, JMP PFLG, 0 / /PAUSE ROUTINE. /ENTER IF SPACE BAR (240) IS STRUCK. /EXIT IF ANY KEY IS STRUCK. PAUS, LDA 0 STC PAUSX STC PFLG IOB 6031 JMP .-2 IOB 6036 / PAUSX, JMP / /SET UP THE BUFFER TAPE / SETTAP, SET 3 0 LDF 7 LDA 2\P1 /CURRENT CHANNELS STC DATSEG+1 LDA 2\P2 /CURRENT CHANNELS STC DATSEG+2 /MOVE DATSEG BUFFER TO HEADER BLOCK SET I 5 DATSEG-1 SET I 6 2\P102-1 SET I 7 -20 LDA I 5 STA I 6 XSK I 7 JMP .-3 /WRITE HEADER BLOCK ONTO TAPE LDA BLOCK JMP WRTHED JMP 3 / WRTHED, SET 12 0 STC WBLK JMP SETXT LDA I 7400 TMA /QN7,DF7 (PBLOCK) WRC WBLK, 0 /1000 2 TAPE STD JMP .-1 LDA I 10 AXO JMP 12 / /ROUTINE TO READ IN THE HEADER BLOCK. RDTHED, SET 13 0 STC WBLK LDA I RDC STC WBLK-1 ADD WBLK JMP WRTHED LDA I WRC STC WBLK-1 JMP 13 / / /ROUTINE TO SET AXO AND TMA SETXT, LDA I 1031 /1030, 2 TAPE AXO /EXT MEMORY. EXT ADDRESS, NO PAUSE AND /EXT UNITS. LDA I 7400 /Q7, DF7 TMA JMP 0 /SET UP PARAMETERS FOR SAMPLING / SETPAR, SET 3 0 SET I 2 DATCH LDA I 2\P1 JMP CHSET LDA I JMP DSP STA 2 LDA 14 STC NUMCH LDA 2\P20 /NO. OF SEGMENTS STA DESSEG STC DESSEG+1 / LDA 2\P17 /NO. OF SAMPLES STC DESSAM / SFLOAT 2\P24 /TAPE DELAY NOP /FMUL NOP /HUN FIX FAC ISTOR1 DEL ADD DEL COM STC DEL / / GRAT, LDA 2\P26 STC CLRATE LDA 2\P27 STC CLTICS JMP SETFST JMP 3 / SETFST, SET I 10 /INITL SETUP 3777 SET I 11 -400 SET I 5 4000 SET I 16 TAPBUF SET I 17 TAPBUF STC TAPFLG STC NSEG LDA BLOCK STC CURBLK JMP 0 / /CHANNEL SETUP ROUTINE / CHSET, STC PWRD ADD 0 STC CHSETX STC 14 /CHANNEL CNTR SET I 4 7 /1ST CHANNEL-1 SET I 15 -2 /NO. OF WORDS LDA 2\P15 /INVERT WORD 1 BCK, STC INVCH SET I 12 -14 /BITS PER WORD LDA PWRD, 0 /WORD 1 OR 2 STC CHTST / /INVERT TEST / TS, LDA I NOP SRO I INVCH, 0 ADD ONE STC INVT / /CHANNEL TEST / XSK I 4 SRO I CHTST, 0 JMP GOTCH /GOT A CHANNEL XSK I 12 /WORD DONE? JMP TS /NO, REPEAT /WORD 1 DONE, SET UP TO DO WORD 2 LDA PWRD ADD ONE STC PWRD LDA 2\P16 /INVERT WORD 2 XSK I 15 /WORD 2 DONE? JMP BCK /NO, REPEAT CHSETX, JMP /YES, LEAVE / GOTCH, LDA 4 BSE I SAM STA 2 LDA I INVT, 0 STA I 2 /INCREMENT LOCATION IN SAMBUF XSK I 2 XSK I 2 XSK I 14 /INC CNTR JMP 0 / / /SET CLOCK / / CLKSET, OPR 3 CLRATE, 0 CLTICS, 0 JMP 0 TEM, 0 0 0 TEM1, 0 0 0 / /THE SAMPLER / SAMBUF, LDA 0 STC SAMX STC NSAM / / SN, JMP SAMTIM / DATCH, SAM /CH 0 NOP JMP BSTUF /CH1 SAM NOP JMP BSTUF /CH2 SAM NOP JMP BSTUF /CH3 SAM NOP JMP BSTUF /CH4 SAM NOP JMP BSTUF /CH5 SAM NOP JMP BSTUF /CH6 SAM NOP JMP BSTUF /CH7 SAM NOP JMP BSTUF /CH8 SAM NOP JMP BSTUF /CH9 SAM NOP JMP BSTUF /CH10 SAM NOP JMP BSTUF /CH11 SAM NOP JMP BSTUF JMP DSP DSP, LDA I ONE, 1 ADM I NSAM, 0 SAE DESSAM JMP SN LDA PFLG AZE /240? JMP PAUS /YES, PAUSE /CONTINUE CLR STC NSAM ADD ONE ADM I NSEG, 0 /SEGMENTS SAMPLED SAE DESSEG JMP SN / /SAMPLING /WAIT FOR TAPE BUFFER /AND RESET CLOCK / SAMDON, JMP SAMTIM LDA TAPFLG APO JMP SAMDON STD JMP .-1 / SAMX, JMP /LEAVE / / / /STUFF DATA INTO BUFFER / BSTUF, SET 15 0 CURBNK, LDF 6 STA I 10 XSK I 11 JMP 15 / /BUFFER OVERFLOW / SET I 11 -400 LDA CURBNK ROL 7 STA 17 ROL 3 STA I 17 LDA 10 BCL I 6000 BSE 17 BCL I 377 STA 17 CLR COM STC TAPFLG ADD 17 SAE I TEND JMP .+3 SET I 17 TAPBUF-1 XSK I 17 XSK 10 JMP 15 LDA CURBNK ADD ONE SAE I ENDBNK, LDF 10 JMP .+3 LDA I FSTBNK, LDF 6 STC CURBNK JMP 15 / / /THE CLOCK ROUTINE /USED ALSO TO PRIME /TAPE BUFFER OUTPUT / SAMTIM, SET 3 0 SW, TAPTST IOB 6131 JMP K CLR IOB 6135 JMP 3 / K, JMP KEYTST AZE I /377? JMP SW /NO, RETURN /RUB OUT STRUCK, THEREFORE ABORT SAMPLING. JMP FDONE / /TAPE BUFFERER / TAPTST=JMP . LDA 0 STC SX STD JMP SX / /CHECK IF MORE TAPE / LDA I TAPFLG, 0 /-0, MORE TAPE APO I JMP SX ADD 17 /PUT POINTER SAE 16 /PROCESS POINTER JMP TN TAPDON, CLR SET I 16 TAPBUF SET 17 16 STC TAPFLG JMP SX / TN, LDA 16 BCL I 777 BSE I 31 /XA, NP, UNIT 2 AXO LDA I CURBLK, 0 SAE I 1777 SKP JMP TAPDON ADD ONE STA TPBLK STC CURBLK LDA I 16 TMA XSK I 16 LDA 16 SAE I TEND JMP .+3 SET I 16 TAPBUF / WRI TPBLK, 0 SX, JMP / /TAPE BLOCK BUFFER AREA /RING BUFFER WHICH HOLDS /2 BANKS WORTH OF INFO / /FIRST WORD SETS AXO /SECOND WORD SETS TMA / / TAPBUF, 0 0 / 0 0 / 0 0 / 0 0 / 0 0 / 0 0 / 0 0 / 0 0 / 0 0 / 0 0 / 0 TEND, 0 / /MESSAGES AND DECISION TABLES / /OUTPUT MESSAGES M1, TEXT ZPROG COLLECTZ 4543 TEXT ZPBLOCK: Z M2, TEXT ZBUFFER BLOCK: Z M3, TEXT ZSAM Z 4543 TEXT Z: Z MN, TEXT ZNEXT BUFFER BLOCK=Z 4040 NXTBLK, 4040 4040 4543 / HUN, 7 3100 AAEND, 0 / / /PARAMETERS FOLLOW. NOLIST //PBLOCKI / /PARAMETER BLOCK ASSIGNMENTS. /SAME ASSIGNMENTS AS PBLOCK EXCEPT THAT /"P" PARAMETER LOCATIONS ARE GIVEN AS /INSTRUCTION FIELD ADRESSES INSTEAD OF /DATA FIELD. / NOLIST P0=1400 /DATA TYPE P1=1401 /CURRENT CHAN. P2=1402 /CURRENT CHAN. P3=1403 /DATA CHAN. P4=1404 /DATA CHAN. P5=1405 /CONTINGENCY CH P6=1406 /CONTINGENCY CH P7=1407 /TRUE CONTING. P10=1410 /FALSE CONTING. P11=1411 /CONTING. WIDTH P12=1412 /TRUE CONTING. P13=1413 /FALSE CONTING. P14=1414 /CONTING. WIDTH P15=1415 /CHAN INVERSION P16=1416 /CHAN INVERSION P17=1417 /NO.SAMP IN SEG P20=1420 /NO.SEG IN ENSM P21=1421 /NO. ENSEMBLES P22=1422 / P23=1423 /BASELINE PNTS P24=1424 /TAPE DELAY P25=1425 /ENSEMBL DELAY P26=1426 /CLOCK RATE P27=1427 /CLOCK TICS P30=1430 P31=1431 P32=1432 P33=1433 P34=1434 P35=1435 P36=1436 P37=1437 /TAPE SPEED UP P40=1440 /TAPE SPEED UP P41=1441 /TAPE SPEED UP / /FLOATING POINT VARIABLES / / P42=1442 /MULT FACTOR P43=1445 /UV PER VOLT P44=1450 /SEG. LENGTH P45=1453 /TEMP P46=1456 /BASELINE DELAY P47=1461 /CONTING WIDTH P50=1464 /BNDA1 MIN P51=1467 /BNDA1 MAX P52=1472 /BNDA2 MIN P53=1475 /BNDA2 MAX P54=1500 /BNDA3 MIN P55=1503 /BNDA3 MAX P56=1506 /BNDA4 MIN P57=1511 /BNDA4 MAX P60=1514 /BNDA5 MIN P61=1517 /BNDA5 MAX P62=1522 /BNDB1 MIN P63=1525 /BNDB1 MAX P64=1530 /BNDB2 MIN P65=1533 /BNDB2 MAX P66=1536 /BNDB3 MIN P67=1541 /BNDB3 MAX P70=1544 /BNDB4 MIN P71=1547 /BNDB4 MAX P72=1552 /BNDB5 MIN P73=1555 /BNDB5 MAX P74=1560 /PF MIN P75=1563 /PF MAX P76=1566 /TEMP P77=1571 /TRUE VOLTS P100=1574 /FALSE VOLTS P101=1577 /TEMP P102=1602 /V RMS P103=1605 /VRMS VAR / /FROM NOW ON DESCRIPTION IS FOUND OVER /THE DEFINED VARIABLE. / /AX,A1,A1CNT P104=1610 /AXVAR,A1VAR,A1CNTVAR P105=1613 /AY,A2,A1INT P106=1616 /AYVAR,A2VAR,A1INTVAR P107=1621 /BX,A3,A1MN P110=1624 /BXVAR,A3VAR,A1MNVAR P111=1627 /BY,A4,A2CNT P112=1632 /BYVAR,A4VAR,A2CNTVAR P113=1635 /CX,A5,A2INT P114=1640 /CXVAR,A5VAR,A2INTVAR P115=1643 /CY,B1,A2MN P116=1646 /CYVAR,B1VAR,A2MNVAR P117=1651 /DX,B2,A3CNT P120=1654 /DXVAR,B2VAR,A3CNTVAR P121=1657 /DY,B3,A3INT P122=1662 /DYVAR,B3VAR,A3INTVAR P123=1665 /EX,B4,A3MN P124=1670 /EXVAR,B4VAR,A3MNVAR P125=1673 /EY,B5,A4CNT P126=1676 /EYVAR,B5VAR,A4CNTVAR P127=1701 /FX,PF,A4INT P130=1704 /FXVAR,PFVAR,A4INTVAR P131=1707 /FY,DC,A4MN P132=1712 /FYVAR,DCVAR,A4MNVAR P133=1715 /GX,GX,A5CNT P134=1720 /GXVAR,GXVAR,A5CNTVAR P135=1723 /GY,GY,A5INT P136=1726 /GYVAR,GYVAR,A5INTVAR P137=1731 /HX,HX,A5MN P140=1734 /HXVAR,HXVAR,A5MNVAR P141=1737 /HY,HY,B1CNT P142=1742 /HYVAR,HYVAR,B1CNTVAR P143=1745 /IX,IX,B1INT P144=1750 /IXVAR,IXVAR,B1INTVAR P145=1753 /IY,IY,B1MN P146=1756 /IYVAR,IYVAR,B1MNVAR P147=1761 /JX,JX,PF P150=1764 /JXVAR,JXVAR,PFVAR P151=1767 /JY,JY,DC P152=1772 /JYVAR,JYVAR,DCVAR P153=1775 / / /COMMAND DECODER ASSIGNMENTS / / STOP=JMP 20 SCAN=JMP 21 STRSCN=JMP 21 INUNIT=JMP 22 STORIT=JMP 23 GETFIL=JMP 24 GETFST=JMP 24 GETNAM=JMP 25 GETNXT=JMP 25 DIRINI=JMP 26 DIRLST=JMP 27 ASSIGN=JMP 30 DEASS=JMP 31 OUTUNIT=JMP 32 LODBLK=JMP 33 RUNBLK=JMP 34 FIND=JMP 35 CALL=JMP 37 UNCALL=JMP 40 RUNPRG=JMP 41 INTRACT=JMP 42 MESOUT=JMP 43 DISK=JMP 44 TABSET=JMP 45 TABTYP=JMP 46 MISSNG=JMP 47 TABGET=JMP 50 TABPUT=JMP 51 TABZER=JMP 52 MAKDIL=JMP 53 TABINI=JMP 54 MGETNAM=JMP 55 MGETFIL=JMP 56 MSTORIT=JMP 57 /COMMAND LOCATIONS. FILNAM=2320 WORD1=2323 WORD2=2324 INBUF=2325 /COMMAND NUMBERS. YES=17 NO=20 SAMPL=21 TABLE=22 GO=23 NEXT=24 CU=25 CONT=26 ALL=27 AVG=30 A=31 B=32 C=33 D=34 E=35 F=36 G=37 H=40 II=41 J=42 PLOT=43 PRINT=44 T=45 / /EXEC3 ASSIGNMENTS / OPR=500 IOF=6002 ION=6001 EXC=1710 REXC=540 RLSW=514 RRSW=515 IOCALL=511 AWAKE=501 QUIT=505 PAUSE=507 IOCLR=502 SETCON=510 SETCLK=503 PLINE=524 READ=512 WRITE=532 SETDSK=513 /DEVICE ASSIGNMENTS / KBD=13 TLP=4 LPT=24 BPLT=30 PLT=25 CLK=2 SCOPE=26 /FLOATING POINT DEFINITIONS. / FAC=0 STARTE=740 FSUB=741 FMUL=742 FDIV=743 LOAD=744 STORE=745 SETWRD=746 INPUT=747 OUTPUT=750 ISTOR1=751 SQRT=752 DFLOAT=753 SFLOAT=754 FIX=755 FADD=756 ISTOR2=757 STARTF=760 FCOMP=761 FZER=762 FAPO=763 FAZE=764 RECIP=765 NEXTIN=766 SETIN=767 SETOUT=770 OUTBUF=771 PACFAC=772 SACFAC=773 FACAC=774 UNFIX=775 / / /PBLOCKI /JUNE 73 //PBLOCKI /PARAMETER BLOCK ASSIGNMENTS / / LIST ///END COLLECT. /APRIL 74 /FHD, JLC.