File RECOG

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

*20
/// PROGRAM RECOG.
	 
/PROGRAM RECOGNIZES AN EVENT ON THE
/SPECIFIED CHANNEL & DISPLAYS IT ON
/THE SCREEN WITH START OF EVENT AT
/SCREEN CENTRE (TIC MARK).
/PRESUMES INPUT ON CH10.
/SNS0=1: INVERT DATA
/ONE MAY MANIPULATE NEEDED DEVIATION
/OR NUM OF DEVIATED PTS IN ORDER TO
/DEFINE AN EVENT ONSET.	
/PROGRAM SAMPLES INDEFINITELY FOR AN EVENT.
/SEG LENGTH & SAMP\SEG SET UP CLOCK &
/DISPLAYED INTERVAL ONLY.
	 
/DOES NOT REQUIRE PBLOCK OR LODSYM.
	 
	LMODE
	SEGMNT 5
	*20
	 
BEG,	STARTF		/STD FPP
	JMP USROFF	/KILL USERS
	 
	 
//COMMAND SEQUENCE.
	 
	JMP SETUP	/INITIALIZE
	 
	JMP CLKSET	/CLK ON, SYS OFF
	 
	JMP GETONE	/FIND AN EVENT
	 
	JMP GETMOR	/FILL BUFFER
	 
	JMP UNWIND	/FILL DISP BFR
	 
	JMP DISPLY	/SHOW IT
	 
//END COMMAND SEQUENCE.
	 
	 
	 
/ROUTINE TO ASK FOR SAMPLING PARAMETERS &
/TO SETUP BETA REGISTERS & LOCATIONS.
SETUP,	SET 3
	0
	 
D1,	LIF 4
	INTRACT
	CJ1
	M1		/SEG LENGTH(MSEC):
CJ1,	T1
	J1
T1,	0
J1,	JMP BEG		/CR
	JMP .+1		/NUM
	STORE
	AT
	 
D2,	LIF 4
	INTRACT
	CJ2
	M2		/SAMP\SEG:
CJ2,	T1
	J2
J2,	JMP BEG		/CR
	JMP .+1
	STA
	BFSIZ
	SCR 1
	STC CURS
	ADD BFSIZ
	COM
	STC TOTPTS
	FDIV
	AT
	FDIV
	FP400
	RECIP
	FAC
	FADD
	FPHALF
	FIX
	FAC
	ISTOR1
	CLTIC
	 
D3,	LIF 4
	INTRACT
	CJ3
	M3		/DEVIATION MULT:
CJ3,	T1
	J3
J3,	JMP BEG		/CR
	JMP .+1		/NUM
	STC DEVMUL
	 
D4,	LIF 4
	INTRACT
	CJ4
	M4		/PNTS UP:
CJ4,	T1
	J4
J4,	JMP BEG		/CR
	JMP .+1
	COM
	STC PTSUP
	 
/SET LOCATIONS.
	LDA I
	JMP ERLAV
	STC AVFLG
	LDA I
	JMP ERLDEV
	STC DEVFLG
	 
/SET BETA REGISTERS.
	SET I 10
	-10		/ERLY CNTR
	SET I 6
	3777		/DF6 BFR PNTR
	SET I 2
PTSUP,	0		/NUM PTS UP
	JMP SET112	/BETA 11 & 12
	JMP SET145	/BETA 14 & 15
	LDF 6
	JMP 3		/EXIT
/END SETUP.
	 
	 
/ROUTINE TO SET UP CLOCK & STOP SYSTEM.
CLKSET,	SET 3
	0
	OPR 3
CLRAT,	1100
CLTIC,	0
	JMP USROFF
	IOB
	IOF
	JMP 3		/LEAVE
	 
USROFF,	OPR 2
	0
	JMP 0
	 
	 
/ROUTINE TO FIND AN EVENT.
GETONE,	SET 3
	0
	 
MORE,	JMP WATCLK	/WAIT CLK TIC
DATCH,	SAM 10
	SNS I 0		/SNS0=1, INVERT
	COM
	SCR 1		/9 BIT DATA
	STA I 6		/TO DF6 BFR
	STC TEM3
AVFLG,	0		/JMP ERLAV OR NOP
DEVFLG,	0		/JMP ERLDEV OR NOP
	 
	JMP GPASAV	/GET PAST AV VAL
	JMP GPSDEV	/GET PAST DEV VAL
	JMP GCRDEV	/GET CRNT DEVN
	LDA
	PSDEV		/AVG PAST 8 DEV
	 
	AZE I		/ZERO CASE PROTECT
	ADD KP1
	 
	MUL I
DEVMUL,	0
	COM
	ADD CRDEV
	APO		/CRDEV GRTR AVDEV?
	JMP NOTYET	/NO
	XSK I 2		/NUM IN A ROW?
	JMP NOTYET+2	/UP BUT NOT IN ROW
	JMP 3		/WOW, GOTONE, LEAVE
	 
NOTYET,	SET 2
	PTSUP
	JMP DEPAV	/STORE CRNT VAL
	JMP DEPDEV	/STORE CRNT DEVN
	JMP MORE	/RECYCLE
	 
/ROUTINE TO WAIT FOR 8(10) PTS BEFORE
/PROCEDING.
ERLAV,	JMP DEPAV	/DEPOSIT CURNT VAL
	XSK I 10
	JMP MORE	/NOT DUN
	SET I 10	/DUN 8
	-10
	LDA I
	NOP
	STC AVFLG
	JMP MORE
	 
/ROUTINE TO WAIT FOR 8(10) DEVIATIONS
/BEFORE PROCEDING.
ERLDEV,	JMP GPASAV	/PAST AVG VAL
	JMP GCRDEV	/CRNT DEVN
	JMP DEPDEV	/DEPOSIT CRDEV
	JMP DEPAV	/DEPOSIT CURNT VAL
	XSK I 10
	JMP MORE	/NOT DUN
	LDA I		/DUN 8
	NOP
	STC DEVFLG
	JMP MORE
	 
/ROUTINE TO STORE CURRENT VALUE IN
/DF5 RING BUFFER. (1400-1407)
DEPAV,	SET 13
	0
	LDA
	TEM3
	STA I 11
	XSK I 12
	JMP 13
	JMP SET112	/BFR FULL
	JMP 13
	 
SET112,	SET I 11
	1377
	SET I 12
	-10
	JMP 0
	 
/ROUTINE TO STORE CURRENT DEVIATION IN
/DF5 RING BUFFER. (1410-1417)
DEPDEV,	SET 13
	0
	LDA
	CRDEV
	STA I 14
	XSK I 15
	JMP 13
	JMP SET145	/BFR FULL
	JMP 13
	 
SET145,	SET I 14
	1407
	SET I 15
	-10
	JMP 0
	 
/ROUTINE TO GET THE CURRENT DEVIATION.
GCRDEV,	LDA I
TEM3,	0
	COM
	ADD PASAV
	APO
	COM
	STA I
CRDEV,	0
	JMP 0
	 
/ROUTINE TO GET THE PAST AVERAGE VALUE.
GPASAV,	SET 13
	0
	LDA
	11
	STC BTEM
	ADD 12
	STC BTEM+1
	JMP SET112
	CLR
	ADA I 11
	XSK I 12
	JMP .-2
	SCR 3		/DIV BY 8
	STA I
PASAV,	0
	SET 11
	BTEM
	SET 12
	BTEM+1
	JMP 13
AT,	
BTEM,	0
	0
	0
	0
	 
/ROUTINE TO GET PAST DEVIATION.
GPSDEV,	SET 13
	0
	LDA
	14
	STC BTEM
	ADD 15
	STC BTEM+1
	JMP SET145
	CLR
	ADA I 14
	XSK I 15
	JMP .-2
	SCR 3		/DIV BY 8
	STA I
PSDEV,	0		/AVG DEV LAST 8 PTS
	SET 14
	BTEM
	SET 15
	BTEM+1
	JMP 13
	 
	 
/ROUTINE TO WAIT FOR CLOCK TIC.
WATCLK,	SET 13
	0
	PDP
	PMODE
	6131
	JMP .-1
	CLA
	6135
	LINC
	LMODE
	JMP 13		/LEAVE
	 
/ROUTINE TO FINISH FILLING UP DF6 RING
/BUFFER.
GETMOR,	SET 3
	0
	 
	LDA
	TOTPTS
	SCR 1
	STC 4		/HALF NUM PTS CNTR
BKMR,	JMP WATCLK
	SAM 10
	SNS I 0		/SNS0=1, INVERT
	COM
	SCR 1		/9 BITS
	STA I 6
	XSK I 4
	JMP BKMR
	JMP 3		/LEAVE
	 
	 
/ROUTINE TO UNWRAP DF6 6 PUT IN DF7.
UNWIND,	SET 3
	0
	LDA
	6
	ADD TOTPTS
	SAGE
	2000
	ADD KP2000
	STC 6
	SET I 7
	3777
	SET I 10
TOTPTS,	0		/- TOTAL PTS
	LDF 6
	LDA I 6
	LDF 7
	STA I 7
	XSK I 10
	JMP .-5
	JMP 3		/LEAVE
	 
	 
/ROUTINE TO DISPLAY CURVE.
DISPLY,	SET 3
	0
	 
	OPR 3		/START SYSTEM
	5100
	1750
	 
	OPR 11		/START DISPLAY
	26
	0
	5
	DISBUF
	JMP .-5
	 
BK,	JMP POTSW	/CHK SW
	OPR 7
	SNS 5		/SNS5=1=LEAVE
	JMP BK
	JMP USROFF
	JMP BEG
	 
POTSW,	RSW
	BSE I
	3760
	STC SCALE
	SAM 0
	ADD KM777
	STC POT
	JMP 0
	 
/DISPLAY BUFFER.
DISBUF,	-0		/CURVE
	2		/PNT PLOT
	0		/X
POT,	0		/Y
	LDF 7
	2000
BFSIZ,	0		/PNTS
CURS,	0		/CURSOR
SCALE,	0		/SCALE
	1		/SEG DATA
	1		/SEG SCOPE
	0		/CURS RETURN
	4001		/END TASK
	4000		/END JOB
	 
/CONSTANTS & BUFFERS.
FPHALF,	0
KP2000,	2000
	0
KP2,	2
KM777,	-777
KP1,	1
KM1,	-1
FP400,	11
	3100
	0
	 
	 
/MESSAGES.
M1,	TEXT %PROG RECOG%
	4543
	TEXT %SEG LENGTH (MSEC):%
M2,	TEXT %SAMP\SEG:%
M3,	TEXT %DEVIATION MULT :%
M4,	TEXT %PTS UP: %
	 
	 
/// SAGE
	SAGE=JMP .
	STC SAGEX+1	/SAVE AC
	ADD 1
	STC SAGEX+3	/SAVE BETA 1
	SET 1
	0
	ADD 1
	STA
	SAGEX+2		/ORIG RTRN JUMP
	BCL I
	6000
	STC 1
/NOW COMPARE VALUES.
	LDA 1
	COM
	ADD SAGEX+1
	AZE I
	JMP .+7		/EQUAL
	APO I		/NOT EQUAL
	JMP .+5		/GRTR
	CLR		/LESS
/NOW SET UP RETURN JUMPS.
	ADD SAGEX+2
	ADD KP1
	JMP .+4
	CLR
	ADD SAGEX+2
	ADD KP2
	STC SAGEX
	SET 1		/RESTORE BETA 1
	SAGEX+3
	ADD SAGEX+1	/RESTORE AC
SAGEX,	0		/LEAVE, RTRN JUMP
	0		/AC
	0		/ORIG RTRN JMP
	0		/BETA 1
/END SAGE.
AAEND,	0		/END PROGRAM
/           PARAMS
	NOLIST
	OPR=0500
	INTRACT=6042
	IOF=6002
/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
	LIST
	 
///END RECOG.
/SEPT 73., F.H.D.



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