File HORCAL

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

*20
	LMODE
	*20
/STEP1: BEGINS WITH SW 5 DOWN. DISPLAYS
/CENTER PATTERN FOR CENTER ALIGNMENT
/AND ZEROING ON RIGHT-EYE CHANNEL.
/SW 5 UP WHEN ZEROED
START,	CLR
	ESF		/HALF-SIZE
	SNS I 5
	JMP .-1
CENTER,	JMP CLOCK	/MSEC CLOCK SUBR
	ADD YC		/VERT. COORD.
	SET I 1
XC,	370		/MIDDLE-LEAD 4
	DSC
	FIXPAT
	DSC
	FIXPAT+2	/SHOW "X"
	JMP DELAY	/REFRESH TIMING
	SNS 5		/DONE WHEN UP
	JMP CENTER
/THIS SECTION DISPLAYS LINEAR CALIBRATIN/PATTERN OF 8 EQUALLY SPACED "X"S,
/EXTENDING THE ENTIRE (TO THE DOT) RANGE
/OF A 57-CHAR LINE (DX=1). HOR. SIGNAL
/FROM RIGHT-EYE VIA A-D CHAN 17. EACH
/"X" SHOWN UNTIL EITHER (SW 0 UP) POS.
/PULSE IN A-D CHAN 14 OR (SW 0 DOWN)
/2 SEC. INTERVAL; THEN VALUE READ&STORED
/BEGINS WITH SW 4 UP
/
RECORD,	SNS 4
	JMP .-1
	SET I 10
	HVOLTS-1	/AD-1 STOR.TABLE
	SET I 11
	-10		/EIGHT POINTS
	LDA I
	-4		/LEAD ON H.C.
	STC X
	SET I 12
RDWELL,	-620		/2 SEC./POINT
	JMP CLOCK
	SET 1
	X
	ADD YC
	DSC
	FIXPAT
	DSC
	FIXPAT+2
	JMP DELAY
	SNS 0
	JMP TIMEIT	/DOWN:WAIT 2 SEC
	SAM 14		/UP:UNTIL +PULSE
	ADA I
	-300
	APO
	JMP RDWELL+1	/NO PULSE YET
RVOLT,	SAM 17		/A-D VOLTAGE
	STA I 10	/SAVE RAW VALUE
	XSK I 11	/ANOTHER POINT?
	SKP
	JMP PRINT	/DONE:PRINTOUT
	LDA
	X		/SETUP NEXT H.C.
	ADA I
	110		/72 POINTS
	JMP RDWELL-2
TIMEIT,	XSK I 12	/2 SECS. YET?
	JMP RDWELL+1
	JMP RVOLT
/SECTION PRINTS OUT 8 VALUES (L-R)
/AS SIGNED 3-DIGIT OCTAL INTEGERS
PRINT,	SET I 10
	HVOLTS-1
	SET I 11
	-10
	LDA I
C212,	212
	JMP TYPE
	LDA I
C215,	215
	JMP TYPE	/CR,LF
	LDA I
C240,	240
	JMP TYPE	/" "
	LDA I 10	/NEXT VALUE
	APO I		/PRINT "+"OR"-"
	JMP C255+2
	COM
	STC N		/SAVE ABS.VAL.
	LDA I
C255,	255		/PRINT "-"
	JMP C253+1
	STC N
	LDA I
C253,	253		/"+"
	JMP TYPE
	LDA I
N,	0
	SCR 6
	ADA I
C260,	260
	JMP TYPE	/1ST DIGIT
	LDA
	N
	ROR 3
	BCL I
	7770
	ADD C260
	JMP TYPE	/2ND DIGIT
	LDA
	N
	BCL I
	7770
	ADD C260
	JMP TYPE	/3RD DIGIT
	XSK I 11	/ANOTHER VALUE?
	JMP C240-1
/SECTION FILLS IN 256-ELEMENT LOOKUP
/ARRAY: ELEMENT J HOLDS THE HORIZ. CHAR.
/POS. (0,56) CORRESPONDING TO A TRANFORM
/VOLTAGE=J. VOLTS TRANSFORMED BY ADDING
/400 AND THEN DIVIDING BY 4: (0,255)
	SET I 11
	-400
	SET I 17
	2000		/LDF
	LDA I
	-1		/SET ALL=-1
	STA 17
	XSK I 17
	XSK I 11
	JMP .-3
	SET I 11	/FILL OBSERVED
	-10		/CALIB. VALUES
	SET I 10
	HVOLTS-1
	CLR
INT1,	STC XCH		/XCH=CHAR. POSN.
	LDA I 10	/NEXT CALIB.VAL.
	ADD C1000
	SCR 2		/TRANFORM IT
	BSE I
	2000		/LDF ADDR.
	STA 10		/RESET HVOLT TAB
	STC 17
	ADD XCH		/SET XCH INTO
	STA 17		/VOLTAGE ADDR.
	ADA I
C10,	10		/XCH NEXT CAL.PT
	XSK I 11
	JMP INT1
/NOW FILL EACH OF THE SEVEN INTERVALS
/BETWEEN SUCCESSIVE CALIBRATION POINTS
/WITH 8 LINEARLY INTERPOLATED POINTS
	SET I 7
	HVOLTS-1
	SET I 10
	HVOLTS
	SET I 11
	-7
	SET I 6
	0		/6 HOLDS XCH
INT2,	LDA I 10	/RIGHT END-PT.
	COM
	ADA I 7		/LEFT END-PT.
	STC D		/VOLT. DIFF.
	SET I 12
	-10		/8 INTERIOR PTS.
/1ST PT. 1/16 THRU INTERVAL, 2ND 3/16,
/ETC.,...,8TH 15/16 THRU INTERVAL
	LDA I
	1		/NUMERATOR=1,3
	STA		/5,...,15
	NUM
	MUL I
D,	0
	SCR 4		/DIV 16
	COM
	ADA 7		/=INTERPOLATED
	STC 17		/VOLTAGE ADDRESS
	XSK I 6		/NEXT INTER.XCH
	ADD 6
	STA 17
	LDA I
	2
	ADM I
NUM,	0		/NEXT NUMERATOR
	XSK I 12	/ANOTHER PT.?
	JMP D-1
	XSK I 11	/ANOTHER INTERV?
	JMP INT2
/NOW GO THRU AND FILL IN REMAINING
/VOLTAGE ADDRESSES: ENTRIES NOT YET SET
/HAVE VALUE=-1; FILL THEM WITH NEAREST
/(I.E., LEFTMOST) DEFINED CHAR POSN.
	SET I 17
	2377		/TOP ENTRY
	CLR
	STC XCH		/START XCH=0
INT3,	LDA 17
	APO I		/ALREADY FILLED?
	JMP XCH+2	/>0: YES
	LDA I		/<0:NO, FILL IT
XCH,	0		/W/ CURRENT XCH
	STA 17
	STC XCH		/=CURRENT XCH
	LDA I
	-1 
	ADM
	17		/NEXT ENTRY ADDR
	XSK 17		/LAST ENTRY=2000
	JMP INT3
/DONE FILLING IN TABLE.
	ADD C1000
/POINT OF FIXATION.  USES CRUDE TABLE
/LOOKUP TO ESTIMATE POINT EVERY 200 MSEC
/IF LEFT OF LEFTMOST POINT, PUTS IT
/AT LEFTMOST POINT (AND SAME FOR RIGHT)
STEP3,	SNS 3
	JMP .-1
	SAM 10
	STC HFIX	/OBS. VOLTS
	ADD HVOLTS	/LEFTMOST VALUE
	COM
	ADD HFIX
	APO I
	JMP LEFT	/AT LEFTMOST
	ADD HVOLTS	/RESTORE HFIX
	COM
	ADD HVOLTS+12	/RIGHTMOST VALUE
	APO I
	JMP RIGHT	/AT RIGHTMOST
/NOT AN EXTREME VALUE: FIND PAIR OF
/POINT-VALUES BETWEEN WHICH HFIX LIES
	SET I 10
	HVOLTS
LOOP,	LDA I 10	/NEXT POINT-VALU
	COM
	ADA I
HFIX,	0
	APO
	JMP LOOP	/RIGHT OF CUR.PT
/BETWEEN CURRENT POINT-VALUE AND
/PRECEDING (TO LEFT) POINT-VALUE
/INTERPOLATE TO NEAREST QUARTER VALUE
	LDA
	10
	ADA I
	-1
	STC 7		/AD PRECEDING PT
	ADA 10
	COM
	ADA 7		/=1/4 VOLT SPAN
	ADA I
	2		/BETWEEN POINTS
	SCR 2
	COM
	STC HQUART	/SAVE -1/4 SPAN
	LDA I
	-HVOLTS
	ADD 7		/POINTS FROM LEF
	MUL
	DPOINT
	ADA		/H.C.OF POINT
X0,	0		/PRECEDING HFIX
	STC XFIX
LOOP2,	ADD HFIX
	COM
	ADA 7
	ADA I
HQUART,	0
	APO I
	SKP		/STILL NOT THERE
	JMP SPOT	/HAVE NEAREST 
	STC N
	ADD XFIX
	ADA I
C12,	12		/QUARTER SPACING
	STC XFIX
	ADD N
	JMP HQUART-1	/TRY NEXT QUARTE
/IF HERE, PUT XFIX AT LEFTMOST POINT
LEFT,	LDA
	XLEFT
	STC XFIX
	JMP SPOT
/IF HERE, PUT XFIX AT RIGHTMOST POINT
RIGHT,	LDA
	DPOINT
	MUL I
	5
	ADD X0
	STC XFIX
SPOT,	LDA I
	-14		/CENTER BAR
	ADD XFIX	/AT XFIX
	STC XFIX
/NOW DISPLAY BAR AND 11 "X"S ONCE EVERY
/10 MSECS FOR 200 MSECS, THEN RESAMPLE
	SET I 13
DTFIX,	-24		/20 10-MSEC CYCS
SHOW,	JMP CLOCK
	SET I 1
XFIX,	0
	LDA
	Y
	SET I 11
	-7		/SHOW BAR
	DSC I
	7777
	XSK I 11
	JMP .-3
	SET 1
	XLEFT
	SET I 11
	-13		/11 POINTS
	DSC I
FIXPAT,	1463
	DSC I
	6314
	LDA
	1
	ADA I
DX,	40		/DPOINT-10
	STC 1		/H.C. NEXT POINT
	ADD Y
	XSK I 11	/ANOTHER POINT?
	JMP FIXPAT-1
/DONE WITH DISPLAY. WAIT FOR 10 MSEC
/TIMEOUT, THEN REPEAT UP TO 200 MSECS
	JMP DELAY
	XSK I 13	/ANOTHER CYCLE?
	JMP SHOW	/ANOTHER CYCLE
	JMP STEP3	/NEXT SAMPLE
/
/END OF MAINLINE PROGRAM
/
/SUBR STARTS MSEC CLOCK
CLOCK,	PDP
	PMODE
	CLA
	CLLR
	TAD C2100
	CLLR
	CLA
	LINC
	LMODE
	JMP
/
/SUBR WAITS FOR 10-MSEC TIMEOUT
DELAY,	PDP
	PMODE
	CLCA
	TAD MWAIT
	SPA CLA
	JMP .-3
	CLLR
	LINC
	LMODE
	JMP
/
	PMODE
C4100,	4100
MWAIT,	-12
	LMODE
/
/SUBR TYPES OUT AC
TYPE,	PDP
	PMODE
	TLS
	TSF
	JMP .-1
	LINC
	LMODE
	JMP
/
/STORAGE TABLE FOR 11 VOLTAGE VALUES
HVOLTS,	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0



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