File COLLECT

Directory of image this file is from
This file as a plain text file

*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.



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search