File 2BY3

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

LT-ADR
	STC 1
	ADD XFIX
	STA 1		/STORE X-POSN
	ADA I
	10
	STC XFIX	/NEXT X-POSN
	XSK I 15	/ANOTHER CAL PT?
	JMP FILLX
/NOW FILL IN EACH OF THE 7 INTERVALS
/BETWEEN SUCCESSIVE CALIB. PTS. WITH 8
/LINEARLY INTERPOLATED POINTS.
	SET I 17
	3377
	SET I 10
	3400
	SET I 11
	-7
	SET I 6
	0		/HOLDS X-POSN
INTERX,	LDA I 10	/FORM DIFF TWEEN
	COM		/NEXT PAIR PTS
	ADA I 17	/MUST BE>0!!
	APO
	JMP ERROR
	AZE I
	JMP ERROR	/MUST BE>0!
	STC D
	ADD M10
	STC 12		/8 INTERIOR PTS
/1ST PT. 1/16 THRU INTERVAL, 2ND 3/16,
/...,8TH 15/16 THRU INTERVAL.
	ADD ONE
	STA
	XFIX		/NUM OF ABOVE/16
INTX1,	MUL
	D
	SCR 4		/DIV 16
	COM
	ADA 17		/INTERP. VOLT AD
	STC 1
	XSK I 6		/NEXT INT. X-POS
	ADD 6
	STA 1
	LDA I
	2
	ADM
	XFIX		/NEXT NUMERATOR
	XSK I 12	/ANOTHER INT.PT?
	JMP INTX1	/NEXT INT. PT.
	XSK I 11	/ANOTHER INTRVL?
	JMP INTERX	/NEXT INTERVAL
/NOW GO THRU AND FILL IN REMAINING
/VOLTAGE ADDRESSES: ENTRIES NOT YET SET
/=-1; FILL THEM WITH NEAREST (I.E.,
/LEFTMOST) DEFINED X-POSN. SINCE TOP OF
/VOLTAGE ARRAY=2777 REPRESENTS MAX VOLTS
/, WHICH IS LEFTMOST X-P0SN=0, MUST WORK
/DOWN THRU ARRAY
	SET I 17
	2777
	CLR
	STC XFIX	/RUNNING X-POSN
INTX2,	LDA 17
	APO I		/ALREADY FILLED?
	JMP .+4		/YES: SKIP
	LDA
	XFIX
	STA 17		/FILL WITH CUR X
	STC XFIX	/RESET CUR X
	ADD M1
	ADM
	17		/DECREMENT V-ADR
	SAE I
	2377		/LAST VOLT-AD?
	JMP INTX2
/DONE FILLING IN X-LOOKUP TABLE.
/NOW FILL IN Y-LOOKUP TABLE, CREATING
/MATRIX IN 2000-2377 IN TABLES LDF:
/Y-VOLTAGE V SHOULD CORRESPOND TO LINE
/NO. L IN (0,LINES-1) AT 2000+V.
/
/ASSUMES LOW VOLTAGE - LOW LINE NO.
	SET I 16
	2777		/AD-1 Y-AVGS
	SET I 10
	3000
	SET I 6		/HOLDS LN NO.
	0
	SET I 17
	3777		/AD-1 2000
	SET 15
	MLINES
	SNS 0
	JMP .+5
	SET I 1
	YLABEL-4000
	PROG1		/"Y-VOLTS:"
	JMP MESSAG	/IF SW 0 UP
/FILL VOLTAGE ADDRESSES FROM 1/2 LAST
/INTERVAL TO 1/2 NEXT INTERVAL WITH
/CURRENT LINE NO.
INTERY,	LDA I 16
	SNS 0
	JMP .+3
	PROG1
	JMP DECPUT	/TYPE IF SW 0 UP
	XSK I 15	/LAST INTERVAL?
	JMP .+4
	LDA I
	2377
	JMP FILLY-1	/FILL TO END
	LDA 16
	COM
	ADA I 10	/VOLT. DIFF.
	APO
	JMP ERROR	/MUST BE>0
	SCR 1		/VOLT.DIF./2
	AZE I
	JMP ERROR
	ADD C2000	/=ADR. TOP VOLT.
	ADA 16
	STC VSTOP	/FOR CURRENT LN
FILLY,	LDA
	6		/CURRENT LN NO.
	STA I 17	/INTO NEXT V-AD
	LDA
	17
	SAE I
VSTOP,	0		/LIMIT FOR CUR L
	JMP FILLY	/KEEP GOING
	XSK I 6		/NEXT LINE NO.
	XSK 15		/DONE LAST ONE?
	JMP INTERY	/DO NEXT ONE.
/
/END CALIBRATION SECTION. GO TO "VERIFY"
/
/"VERIFY" SECTION: PUTS WINDOW OF TEXT
/WHEREVER SUBJECT FIXATES;USES CALIBR.
/TEXT AND INHIBITS DATA STORAGE/OUTPUT.
/PANEL KEY PROCEEDS TO "READ" TASK. SW
/3 DOWN AT START SKIPS DIRECTLY TO "READ
/
VERIFY,	SNS 3
	JMP READ	/SKIP VERIFY
	LDA I
	JMP
	STC STORE+1	/INHIBIT WRITING
	LDA I
	-5		/USE 5-CHAR
	STC MWIDE	/WINDOW CENTERED
	ADD M2		/ON FIXATION PT.
	STC MLW
	ADD C4		/FIXING NON-0
	JMP INIT	/START DISPLAY
/
/THIS SECTION EXECUTES "READ" TASK. 
/CONTROL REACHES HERE ONLY FROM PANEL
/INTERRUPT DURING "VERIFY" TASK.
/
READ,	LDA I
	STA I 13	/DISINHIBIT
	STC STORE+1	/DATA WRITING
	STC 11
	SET I 10	/INITIALIZE
	-144		/TIMERS 10,11
	ADD POSN
	STC MLW
	ADD WIDTH
	COM
	STC MWIDE
	STC NPAGE	/INIT NPAGE=0
	ADD TEXBLK
	JMP NEWTEX	/FETCH TEXT
/WRITE PARAMETER HEADER BLOCK OUT AT
/BEGINNING OF DATA FILE
	DATA
	SET I 13
	2777		/START AT 3000
	SET I 12
	PGCODE-1	/PARAMETER ARRAY
	SET I 6
	-13
	LDA I 12
	STA I 13
	XSK I 6
	JMP .-3
	JMP RUNPAG	/RUN 1ST PAGE
/
/CONTROL REACHES HERE WHEN TEXT-READING
/COMPLETE. IF QBLK>=0, COMPREHENSION
/TEST IS TO BE GIVEN. SIGNALLED BY AN
/NPAGE=0 AFTER THE TWO 7777"S. IF NO
/TEST, WRITE A THIRD 7777 AND QUIT.
/BEFORE DOING EITHER, TYPE OUT TOTAL
/READING TIME IN SECS.& TOTAL LINES READ
/
QUESTN,	SET I 1
	LABEL2-4000
	PROG1
	JMP MESSAG	/"TIME"
	ADD 11
	PROG1
	JMP DECPUT	/N SECS.
	PROG1
	JMP MESSAG	/" SECS FOR "
	ADD MLINES
	COM
	STC DLINES	/TOTAL LINES
	ADD M1		/READ=
	ADD NPAGE	/LINES*(NPAGE-1)
	MUL		/-MLINES
	LINES
	ADD DLINES
	PROG1
	JMP DECPUT	/N LINES READ
	PROG1
	JMP MESSAG	/"LINES"
/NOW DO QUESTIONS
	STC 10		/COUNT CORRECTS
	STC 11		/COUNT QUESTIONS
	ADD QBLK
	APO
	JMP FINISH	/NO QUESTIONS
	JMP TEXTIN	/FETCH QUESTIONS
	ADD C6001
	STC PAGEPT
	ADD M20
	STC DY		/SINGLE SPACING
	STC PERDEF	/ALL CHARS SHOWN
	ADD C360
	STC YTOP	/TOP DISPLAY
	STC YFIX	/NO WRAP-UP
	JMP STORE	/NPAGE=0
/ENCODE NEXT QUESTION. ANY NUMBER OF
/TEXT LINES FOR DISPLAYING EACH QUESTION
/AND ALTERNATIVE ANSWERS. FOLLOWING CR
/AFTER LAST ALTERNATIVE SHOULD BE THE
/CORRECT ANSWER RATHER THAN THE USUAL /.
/A=LEFTMOST KEY, B=NEXT ON RIGHT,ETC.
/AFTER CORRECT ANSWER (1 CHAR), HAVE
/ANOTHER CR. THEN TEXT FOR NEXT QUESTION
/ETC, WITH 0 AS USUAL = END FILE.
/
	CLR
NXQST,	STC 6		/COUNT Q LINES
	SET 7
	PAGEPT
	DTEXT
	SET I 3
	LINADS+1777	/SETUP LINE ADRS
	SET I 4
	LINCON+1777	/SETUP LINE CONT
CODQST,	JMP NXTCH	/AS IN "SETPAG"
	LDH I 7
	AZE I
	JMP FINISH	/END FILE:DONE!!
	SAE I
	57		/ANSWER OR TEXT?
	JMP EQUEST	/=ANS.:END QUEST
	ADD C7000
	STA I 4		/LINCON=ALL PER
	ADD 7
	STA I 3		/LINE ADDR.
	JMP NXTCH
	LDH I 7
	SAE I
	43
	JMP .-4		/FIND END OF LIN
	XSK I 6		/INC LINE COUNT
	JMP CODQST
EQUEST,	LDA
	6		
	AZE I		/NO.LINES>0?
	JMP ERROR
	COM
	STC MLINES	/DISPLAY LINES
	IOB
	6314		/CLEAR PANEL
	JMP SHPAGE	/DISPLAY 
	CLR
	IOB
	6312		/READ PANEL
	AZE I
	JMP .-5		/NO RESP YET
/HAVE RESP.I AC: COUNT ROTATIONS OF AC
/UNTIL RESP BIT IN BIT 2 (LEFTMOST RESP)
	SET I 1
	1		/COUNTS ROTS.
	SAE I
	1000
	SKP		/NOY YET:ROTATE
	JMP .+4
	XSK I 1
	ROL 1
	JMP .-6
/1 NOW HOLDS ASCII RESP CODE. 7 ENDS UP
/AT LAST CR BEFORE ANSWER (IN SHPAGE)
/COMPARE THEM; IF CORRECT, INCR. 10.
/SAVE CORECT&OBTAINED RESPS IN LEFT HALF
/AND RIGHT HALF OF NEXT DATA WORD.
	LDH I 7
	SHD 
	4001		/RIGHT HALF 1
	XSK I 10	/INC.NO.CORRECT
	XSK I 11	/" " QUESTIONS
	ROL 6		/CORRECT TO LH
	ADD 1		/OBTAINED LH
	JMP STORE
	DTEXT
/NOW SKIP PAST CR AFTER ANSWER
	JMP NXTCH
	LDH I 7
	SHD I
	4300
	JMP ERROR	/NO FINAL CR
	LDA
	7
	STC PAGEPT	/NEW PAGEPT
	JMP NXQST	/DO NEXT ONE
/NOW WRITE FINAL END-MARKER (7777) -
/WILL BE THIRD IF NO QUESTIONS
FINISH,	LDA I
	7777
	JMP STORE
/BEFORE QUITTING, MUST WRITE OUT LAST
/DATA MBLK NOT YET BUFFERED OUT. ONLY
/IF LAST END-MARKER TRIGGERED BUFFER,
/WON"T NEED TO DO THIS.
	LDA
	13
	BSE I
	7400		/WILL BE 7777
	AZE I		/IFF END MBLK
	JMP WDON



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