File TACHEYE

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

*20
/TACHEYE PROGRAM: RUNS TACH3A TRIALS
/IN EYE-MOVEMENT ENVIRONMENT
	LMODE
	*4020
/INPUT PARAMETERS TI,TD,TB,TM, AND TAPE-
/FILE BLOCK NO.
/
PARAMS,	HLT
	CLR
	IOB
	6046		/INITIALIZE TTY
	SET I 1
	LAB1-4000
	JMP MESSAG
	JMP GET
	STC TI
	SET I 1
	LAB2-4000
	JMP MESSAG
	JMP GET
	STC TD
	SET I 1
	LAB3-4000
	JMP MESSAG
	JMP GET
	STC TB
	SET I 1
	LAB4-4000
	JMP MESSAG
	JMP GET
	STC TM
	SET I 1
	LAB5-4000
	JMP MESSAG
	JMP GET
	BSE I
	7000		/SET MBLK=7
	STC TBLK
/INITIALIZE TAPE FILE
	LDF 3
	ADD TBLK
	STC .+2
	RDC U
	0
	SET I 4
	7377
/VERIFY FILE: STARTS WITH "*20,CR"?
	LDA I 4
	SAE I
	5262
	JMP ERR1
	LDA I 4
	SAE I
	6043
	JMP ERR1
/
/DISPLAY ADJUSTMENT PATTERN UNTIL TOP
/ROW KEY STRUCK ON PANEL
/
SETUP,	IOB
	6314
	LDA I
	376
	STC XFIX
	JMP SYNC0
	JMP SYNC
	JMP SHOFIX
	JMP SHOPAT
	IOB
	6311
	JMP .-5
/
/CALIBRATE "CRIT" FROM EYE-POSN DATA
/SAMPLED AFTER KEY-PRESSES: 1ST BOTTOM,
/THEN TOP PANEL.
/
CALIB,	IOB
	6306
	JMP SYNC0
	JMP SYNC
	JMP SHOCAL	/SHOW "X X"
	IOB
	6301
	JMP .-4
	SAM 15
	STC IL
	SET I 1
	LABCR-4000
	JMP MESSAG
	ADD IL
	JMP DECPUT
	IOB
	6316
	JMP SYNC0
	JMP SYNC
	JMP SHOCAL
	IOB
	6311
	JMP .-4
	SAM 15
	COM
	ADA I
IL,	0
	APO
	JMP ERR5	/PTS NOT ORDERED
	SCR 1
	STC CRIT
	ADD CRIT
	JMP DECPUT	/TYPE CRIT VALUE
	SNS 0
	JMP TRIAL-2	/START BLOCK
	JMP CALIB
/
/KEEPS TAKING CRITERION PAIRS UNTIL SW 0
/DOWN, AFTER WHICH
/CONTROL TRANFERS TO FIRST TRIAL OF BLOK
/
/SAMPLING SUBROUTINE: RETURNS CALL+2 IF
/SAMPLE POSN WITHIN CRIT OF INITIAL POSN
/-ELSE RETURNS CALL+1
/
CHECK,	SAM 15
	COM
	ADD I0
	APO I
	COM
	ADA I
CRIT,	100
	APO I
	XSK I
	JMP
/
SHOFIX,	DSC I
	0
	CLR
	ESF
	SET I 1
XFIX,	376
	DSC I
	1463
	DSC I
	6314
	DSC I
	0
	LDA I
	200
	ESF
	JMP
/
SHOPAT,	SET I 1
	344
	CLR
	DSC I
	4477
	DSC I
	7744
	SET I 1
	414
	DSC I
	4477
	DSC I
	7744
	JMP
/
/DISPLAYS PAIR OF XS FOR CALIB
/
SHOCAL,	LDA
	0
	STC SHOCRJ
	LDA I
XL,	0354
	STC XFIX
	JMP SHOFIX
	LDA I
XR,	404
	STC XFIX
	JMP SHOFIX
SHOCRJ,	HLT
/
/SUBR TYPES AC AS I5 DECIMAL INTEGER
/
DECPUT,	STC TEMP
	ADD
	STC DECRET	/SAVE R.J.
	ADD TEMP
	APO I
	JMP .+6		/>0: NO "-"
	COM
	STC TEMP
	LDA I
	255		/"-"
	JMP .+3
	LDA I
	240		/" "
	JMP TYPE
	SET I 2
	260		/COUNT DIGIT
	LDA I
TEMP,	0
	ADA I
	-1750		/THOUSANDS
	APO
	JMP .+3
	XSK I 2		/INCR. DIGIT
	JMP .-5
	AZE I		/-0?
	JMP .-3
	ADA I
	1750		/RESTORE
	STC TEMP
	ADD 2
	JMP TYPE	/THOUSANDS DIGIT
	LDA
	TEMP
	SET I 2
	260
	ADA I
	-144		/HUNDREDS
	APO
	JMP .+3
	XSK I 2
	JMP .-5
	AZE I
	JMP .-3
	ADA I
	144
	STC TEMP
	ADD 2
	JMP TYPE	/HUNDREDS DIGIT
	LDA
	TEMP
	SET I 2
C260,	260
	ADA I
	-12		/TENS
	APO
	JMP .+3
	XSK I 2
	JMP .-5
	AZE I
	JMP .-3
	ADA I
	12
	STC TEMP
	ADD 2
	JMP TYPE	/TENS DIGIT
	LDA
	TEMP
	ADD C260
	JMP TYPE	/UNITS DIGIT
DECRET,	HLT		/R.J.
/
SYNC0,	PDP PMODE
	CLA
	CLEN
	CLLR
	TAD RATE
	CLLR
	CLA
	TAD RATE+1
	CLAB
	CLSA
	CLA
	CLSA
	SMA CLA
	JMP .-2
	LINC LMODE
	JMP
	PMODE
RATE,	3100
	-62
	LMODE
/
/EACH TRIAL STARTS HERE
/ENCODE NEXT TWO LINES OF FILE: DISPLAY
/AND MASK STRINGS INTO BUFFER&UP
/
	SET I 17	/INITIALIZE DATA
	2000		/ARRAY IN LDF 7
TRIAL,	SET I 7
ADBUFR,	BUFFER-4000
	JMP NXCHAR
	SAE I
	57		/LINE BEGINS "/"
	JMP ERR2
	JMP NXCHAR
	STH I 7
	SAE I
	43		/ENDS WITH CR
	JMP .-4
	LDA
	7
	STC ADMASK	/AD-1/2 MASK
	JMP NXCHAR
	SAE I
	57
	JMP ERR2
	JMP NXCHAR
	STH I 7
	SAE I
	43
	JMP .-4
	SET I 1
	LABCR-4000	/CR,LF
	JMP MESSAG
/STRINGS IN BUFFER. DISPLAY FIX DOTS
/UNTIL 4-KEY PANEL STRUCK. IF SW 1 UP,
/DISPLAY MASK STRING AS PRE-MASK.
/
AGAIN,	IOB
	6304
	JMP SYNC0	/START CLOCK
	LDA I
X0,	376
	STC XFIX
	ADD ADMASK
	STC STRING
	JMP SYNC
	JMP SHOFIX
	SNS I 1
	JMP DISPLA
	IOB
	6301
	JMP .-6
/SAMPLE INITIAL EYE-POSN, I0
	SAM 15
	STA I
I0,	0
	APO I
	COM		/ /I0/<BOUND?
	ADA I
BOUND,	400
	APO
	JMP ERR4	/NO: ERROR
	LDA I		/INIT SACTIM=-1
	-1		/FOR NO MOVEMENT
	STC SACTIM
/DISPLAY FIXATION ANOTHER "TI" CYCLES;
	LDA I
TI,	0
	AZE I
	JMP TD-1	/SKIP IF 0
	COM
	STC 5
	JMP SYNC
	JMP SHOFIX
	XSK I 5
	JMP .-3
/DISPLAY STRING ON FOR "TD" CYCLES,
/UNLESS S LEAVES FIXATION REGION DURING
/DISPLAY. IF SO, SW 4 UP: CONTINUE
/DISPLAY UNTIL TIMEOUT; SW 4 DOWN: GO
/DIRECTLY TO POST-DISPLAY ROUTINE.
	LDA I
TD,	0
	COM
	STC 5
	ADD ADBUFR
	STC STRING
	JMP SYNC
	JMP CHECK
	JMP SACCAD	/LEFT FIXATION
	JMP SHOFIX
	JMP DISPLA
	XSK I 5
	JMP .-6
	JMP BLANK	/DISPLAY DONE!
/
/CONTROL ARRIVES HERE ON EYE-MOVEMENT
/DURING DISPLAY INTERVAL. SW 4 UP=CONT
/DISPLAY FOR TD DURATION; DOWN=TERMINATE
/DISPLAY & GO TO PAUSE INTERVAL.
/
SACCAD,	LDA
	5
	ADD TD
	STC SACTIM	/SAVE TIME
	SNS 4
	JMP BLANK
	JMP SYNC
	JMP SHOFIX
	JMP DISPLA
	XSK I 5
	JMP .-4
/PAUSE "TB" CYCLES
/
BLANK,	LDA I
TB,	0
	AZE I
	JMP TM-1
	COM
	STC 5
	JMP SYNC
	JMP SHOFIX
	XSK I 5
	JMP .-3
/MASK STRING ON "TM" CYCLES
	LDA I
TM,	0
	AZE I
	JMP WAIT2	/0=NO MASK
	COM
	STC 5
	LDA I
ADMASK,	0
	STC STRING
	JMP SYNC
	JMP DISPLA
	JMP SHOFIX
	XSK I 5
	JMP .-4
/WAIT FOR 10-PANEL STRUCK FOR END TRIAL
WAIT2,	IOB
	6314
	IOB
	6311
	JMP .-2
/
/TRIAL OVER: TYPE TIME OF
/MOVEMENT, "SACTIM", (=-1 STORED IF NO
/MOVEMENT, BUT NOT TYPED OUT HERE (SO
/S CAN DISTINGUISH TRIALS ON WHICH
/PREMATURE MOVEMENTS OCCURRED.))
/
	LDA I
SACTIM,	0
	LDF 7
	STA I 17	/SAVE DATA
	APO I
	JMP DECPUT
	JMP TRIAL
/
ERR1,	SET I 1
	ELAB1-4000
	JMP MESSAG
	JMP PARAMS	/RESTART BLOCK
ERR2,	SET I 1
	ELAB2-4000
	JMP ERR1+2	/ " "
ERR3,	SET I 1
	ELAB3-4000
	JMP ERR1+2	/RESTART BLOCK
ERR4,	LDA I
	207		/RING BELL TWICE
	JMP TYPE	/IF OFF-CENTER
	JMP TYPE	/THEN TYPE MESG.
	SET I 1
	ELAB4-4000
	JMP MESSAG
	JMP AGAIN	/GET NEW I0
ERR5,	SET I 1
	ELAB5-4000
	JMP MESSAG
	JMP CALIB	/REDO CALIBR.
/
ELAB1,	TEXT "NOT A FILE!"
ELAB2,	TEXT "FILE ERROR!"
ELAB3,	TEXT "TIMING ERROR!"
ELAB4,	TEXT "OFF-CENTER!"
ELAB5,	TEXT "OUT OF ORDER!"
/
LAB1,	TEXT "TI CYCLES"
LAB2,	TEXT "TD CYCLES"
LAB3,	TEXT "TB CYCLES"
LAB4,	TEXT "TM CYCLES"
LAB5,	TEXT "TAPE FILE"
LABCR,	0
/
/SUBR TYPES OUT CR+ PACKED ASCII MESSAGE
/POINTED BY 1.
/
MESSAG,	LDA
	0
	STC MESRET
	LDA I
C215,	215
	JMP TYPE
	LDA I
C212,	212
	JMP TYPE
	LDH I 1
	AZE I
MESRET,	HLT		/RETURN
	ADA I
	-37		/ADD 100 OR 200
	APO		/FOR 8-BIT CODE
	ADD C100
	ADA I
	237
	JMP TYPE
	JMP MESRET-2
C100,	100
/
TYPE,	PDP PMODE
	TSF
	JMP .-1
	TLS
	LINC LMODE
	JMP
/
/SUBR ACCEPTS UNSIGNED 4-DIGIT OCTAL
/NUMBER FROM TTY - RUBOUT RESTARTS IT
/
GET,	LDA
	0
	STC GETRET
ENTRY,	STC NUM
	LDA I
	275
	JMP TYPE	/INITIAL "="
	SET I 2
	-4
NEXDIG,	KST
	JMP .-1
	IOB
	6036
	SAE I
	377
	JMP .+3
	CLR
	JMP ENTRY	/RESTART
	JMP TYPE
	ADA I
	-260
	STC
	LDA I
NUM,	0
	ROL 3
	ADD
	STC NUM
	XSK I 2
	JMP NEXDIG
	ADD NUM
GETRET,	HLT		/RETURN
/
/SUBR NXCHAR: PULLS NEXT 6-BIT ASCII CH
/OFF BUFFERED TAPE FILE, UNIT 1
/BUFFER IN LDF 3, 7400-7777
/
NXCHAR,	DJR
	LDF 3
	LDA
	4
	AZE		/7777=END BUFFER
	JMP ROOM
	LDA I
	1
	ADM I
TBLK,	0		/NEXT FILE TBLK
	STC .+2
	RDC U
	0
	SET I 4
	7377		/RESET POINTER
	JMP ROOM	/USE UP DJR
ROOM,	LDH I 4
	AZE
	JMP		/RETURN
/REACHED END OF FILE: TYPE MESSAGE AND
/HALT. PRESS CONTINUE (WITH PUNCH ON)
/FOR I5 OUTPUT OF TRIAL-BY-TRIAL
/MOVEMENT TIMES.
	SET I 1
	ENDLAB-4000
	JMP MESSAG
	SET I 1
	LABCR-4000
	JMP MESSAG
	HLT
	LDA
	17
	COM
	STC 16
	SET I 17
	2000
	LDF 7
	LDA I 17
	JMP DECPUT
	SET I 1
	LABCR-4000
	JMP MESSAG
	XSK I 16
	JMP .-6
	HLT
	JMP PARAMS	/RESTART
ENDLAB,	TEXT "END OF FILE"
/
/SUBR DISPLA: DISPLAYS STRING OF ASCII
/PACKED AS HALF-WORDS STARTING AT 
/"STRING" & PROCEEDING UNTIL CR (=43)
/
DISPLA,	LDA
	0
	STC DISRJ
	SET I 7
STRING,	0		/AD-1/2 CH STR
	SET I 1
D0,	130
	LDH I 7
	SHD I
	4300		/43=END STRING
DISRJ,	HLT		/RETURN
	ROL 1
	ADA I
	PATRN-2
	STC 2		/ASCII-PATTERN
	LDA I
Y0,	0
	DSC 2
	DSC I 2
	LDA I
DX,	4
	ADM
	1
	JMP D0+1
/
/SUBR SYNC: WAITS FOR NEXT CLOCK TICK -
/ERROR IF OCCURRED PRIOR TO ENTRY
/
	PMODE
	PAGE
	LMODE
/
SYNC,	PDP PMODE
	CLA
	CLSA
	SPA CLA
	JMP E3		/ERROR
	CLSA
	SMA CLA
	JMP .-2
	LINC LMODE
	JMP
	PMODE
E3,	LINC LMODE
	JMP ERR3
/
/PACKED ASCII CHARACTER BUFFER FOR
/DISPLAY AND MASK STRINGS
/
BUFFER,	0
/
	*.+100
/PATTERN WORDS FOR CHAR DISPL.
PATRN,	4477		/A
	7744
	5177		/B
	2651
	4136		/C
	2241
	4177		/D
	3641
	4577		/E
	4145
	4477		/F
	4044
	4136		/G
	2645
	1077		/H
	7710
	7741		/I
	0041
	4142		/J
	4076
	1077		/K
	4324
	177		/L
	301
	3077		/M
	7730
	3077		/N
	7706
	4177		/O
	7741
	4477		/P
	3044
	4276		/Q
	376
	4477		/R
	3146
	5121		/S
	4651
	4040		/T
	4077
	177		/U
	7701
	176		/V
	7402
	677		/W
	7701
	1463		/X
	6314
	770		/Y
	7007
	4543		/Z
	6151
	4177		/[
	0000
	2040		/\
	0410
	0		/]
	7741
	2000		/^
	2077
	3410		/BACK ARROW
	1010
	0		/SPACE
	0
	7500		/!
	0
	6006		/"
	60
	3614		/NUMBER SIGN
	1436
	7721		/DOLLAR SIGN
	4677
	1446		/%
	6130
	5166		/&
	0523
	500		/APOSTROPHY
	6
	4163		/(
	0
	0		/)
	6341
	2050		/*
	50
	404		/+
	437
	605		/,
	0
	404		/-
	404
	1		/.
	0
	601		//
	4030
	4136		/0
	3641
	2101		/1
	177
	4523		/2
	2151
	4122		/3
	2651
	2414		/4
	477
	5172		/5
	651
	1506		/6
	4225
	4443		/7
	6050
	5126		/8
	2651
	5120		/9
	3651
	4200		/:
	0
	2601		/;
	0
	2410		/<
	0042
	1212		/=
	1212
	4200		/>
	1024
	4020		/?
	2055



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