File WHOLREP1

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

*20
/NOT TOTALLY DEBUGGED YET!!!
/
/WHOLREP1 PROGRAM: LIKE PARTREP2
/PROGRAM IN DESIGN, WITH THE SAME INPUT
/PARAMETERS, BUT THE FOLLOWING DIFFEREN:
/(1) USES SOFTWARE DIFFERENTIATION
/INDPEPDNENTLY ON X AND Y SIGNALS, INDEP/CALIBRATED THRESHOLD PAIRS.
/(2) ALLOWS UP TO 12 SECONDS EXPOSURE
/DURATION (TOTAL) WITH POST-EXPOSURE
/GRAPHS IN 4 SECTIONS EACH, ADVANCED BY
/CTRL/C TELETYPE KEY.
/(3) ALLOWS INPUT FOR 8 CHARACTERS+CODE.
/
	LMODE
	SEGMNT 2
	*20
/
/SUBR SAMPLES SIGNALS IN SYNCHRONY WITH
/BIOMETRICS CHOPPING SIGNAL (TRIGGER 3)
/
SAMPLE,	PDP PMODE
	CLSA
	TAD M2
	SZA CLA
	JMP .-3		/WAIT FOR TRIG 3
	LINC LMODE
/SAMPLE & STORE SIGNALS
	ADD XSAMP
	STA I
XLAST,	0		/SAVE FOR DIFF.
	SAM 15
	STC XSAMP	/X
	ADD YSAMP
	STA I
YLAST,	0		/SAVE FOR DIFF.
	SAM 17
	STC YSAMP
	ADD DATLDF
	AZE I		/=0 IF INACTIVE
	JMP		/RETURN
	LDA
	0
	STC RJSAMP	/SAVE RJ
	JMP SETLDF	/SETS LDF & 17
	LDA I
XSAMP,	0
	STA I 17	/SAVE RECORD
	JMP SETLDF
	LDA I
YSAMP,	0
	STA I 17	/SAVE RECORD
RJSAMP,	HLT
/
	PMODE
M2,	-2
	LMODE
/
/SUBR CHECKS TO SEE WHETHER 17 AT END OF
/CURRENT LDF: IF SO, ADVANCES LDF
/ALWAYS EXECUTES CURRENT LDF.
/
SETLDF,	DJR
	XSK 17
	JMP DATLDF
	LDA I
	1
	ADM
	DATLDF
	JMP .+1		/USE UP DJR
DATLDF,	HLT		/PRESET LDF N
	CLR
	JMP		/RETURN
/
/SUBR DISPLAYS PT ON CHAN 2 CORRESPOND-
/ING TO EYE-POSN COORDINATES
/
DISPOS,	LDA
	XSAMP
	SCR 1
	COM
	ADA I
C4400,	4400
	STC 1
	ADD YSAMP
	SCR 1
	DIS 1
	JMP
/
/SUBR INCREMENTS TOTAL EXPOSURE TIMER,
/CHECKING FOR TIMEOUT (AT 4000 CYCLES)
/OR BUTTON-PRESS ENDING EXPOSURE.
/
CYCLE,	LDA I
	1
	ADM I
TOTDUR,	0
	APO
	JMP MOVE-1	/TIMEOUT
	SAM 13
	ADD RTHRES
	APO I		/RESP BUTTON?
	JMP
	LDA I
	-1		/YES:END CODE=-1
	JMP MOVE
/
/SUBR CHECKS FOR SACCADE: RETURNS WITH
/AC=0 (NO SACCADE), AC=1 (SACCADE LEFT),
/AC=2 (SACCADE RIGHT), AC=3 (SACCADE UP)
/OR AC=4 (SACCADE DOWN).
/
SACCAD,	LDA
	0
	STC RJSAC
	ADD XSAMP
	COM
	ADD XLAST
	APO I
	JMP CHRITE	/XSAMP<XLAST
	ADA I
DXL,	0		/LEFT THRESH.
	APO
	JMP SACL	/SACCADE LEFT!
	JMP CHUP	/NO HORIZ.SAC.
CHRITE,	COM
	ADA I
DXR,	0		/RIGHT THRESH.
	APO
	JMP SACR	/SACCADE RIGHT!
CHUP,	LDA
	YSAMP
	COM
	ADD YLAST
	APO I
	JMP CHDOWN	/YSAMP<YLAST
	ADA I
DYU,	0		/UP THRESH.
	APO
	JMP SACU	/SACCADE UP!
	JMP NOSAC	/NO VERT. SAC.
CHDOWN,	COM
	ADA I
DYD,	0		/DOWN THRESH.
	APO
	JMP SACD	/SACCADE DOWN!
NOSAC,	CLR
RJSAC,	HLT		/RETURN
SACL,	LDA I
	1
	JMP RJSAC
SACR,	LDA I
	2
	JMP RJSAC
SACU,	LDA I
	3
	JMP RJSAC
SACD,	LDA I
	4
	JMP RJSAC
/
/END OF TRIAL:
/DISPLAY EACH SAMPLED SIGNAL ON CHANNEL
/2: SW 1,2,3,4 CONTROL DISPLAY OF X,DX,
/Y,DY SIGNALS UNTIL ALL DOWN. EACH GRAPH
/MAY TAKE SEVERAL SCOPE PASSES: SW 0 UP&
/DOWN EFFECTS TRANSITION. VERTICAL LINE
/MARKS END OF STIM EXPOSURE,BUTTON-PRESS
/OR EYEMOVEMENT.
/
TDONE,	LDA I
	2000
	STC POINT0	/CURRENT PLOT
	ADD LDF3
	STC LDF0	/CURRENT LDF
GRAPH,	SNS I 0
	JMP .-1
	SET I 1
	4777		/CHAN 2
	SET I 17
POINT0,	0
	LDA I
LDF0,	0
	STC DATLDF
GRX,	SNS 1		/SW 1 UP: X
	JMP GRDX
	LDA I
	CLR
	STC GROP	/NOT DIFFERENTAL
GRPT,	JMP SETLDF
	ADD XLAST
GROP,	HLT		/SET=CLR OR COM
	STC YLAST	/TEMP
	LDA I 17
	SAE I
	4000		/4000=END DISPLA
	SKP
	JMP VLINE
	SAE I
	5000		/5000=END GRAPH
	SKP
	JMP GRAPH
	STA
	XLAST
	ADD YLAST
	SCR 1
	DIS I 1
	JMP SETLDF	/SKIP INTER-
	LDA I 17	/LEAVED RECORD
	XSK 1		/END SCOPE?
	JMP GRPT
	SNS 0		/YES: REFRESH
	JMP GRAPH	/SW 0 UP&DOWN
	LDA
	17
	STC POINT0	/NEW PLOT
	ADD DATLDF
	STC LDF0
	JMP GRAPH
VLINE,	CLR
	DIS 1
	ADD C1
	SAE I
	40
	JMP .-4
	JMP GRPT
GRDX,	SNS 2		/SW 2 UP: DX
	JMP GRY
	LDA I
	COM
	JMP GRPT-1	/SET DIFF. MODE
GRY,	LDA I
	LDF 3		/IF Y OR DY PLOT
	SAE		/THEN MUST USE
	LDF0		/INTERLEAVED
	JMP .+3		/RECORD: ADVANCE
	JMP SETLDF	/PTR IF AT 1ST
	LDA I 17	/PART OF GRAPH
	SNS I 3		/SW 3 UP: Y
	JMP GRX+2
GRDY,	SNS I 4		/SW 4 UP: DY
	JMP GRDX+2
/
/GRAPHS SHOWN. NOW TYPE OUT SYMBOL FOR
/END-CODE: "/"=SUBJECT TERMINATED TRIAL
/WITH BUTTON-PRESS; "0"=TIMEOUT; "1","2"
/"3","4"=SACCADE LEFT,RIGHT,UP,DOWN.
/THEN TYPE SPACE & TOTAL DURATION,
/INCLUDING PREDUR BUT NOT POSTMASK TIME.
	LDA I
ENDCOD,	0
	ADD C260
	JMP TYPE
	ADD C240
	JMP TYPE
	ADD TOTDUR
	JMP DECPUT
/NOW ACCEPT TTY INPUT: 8 CHARS FOR RESPS
/+9TH CHAR FOR CODE. RUBOUT BEFORE FINAL
/LF RESTARTS IT.
/
RINPUT,	SET I 1
	-11
	SET I 11
	RBUFR-1
	LDA I
	275
	JMP TYPE	/"="
RIN,	KST
	JMP RIN
	IOB
	6036		/KRB
	SAE I
	377		/RUBOUT?
	SKP
	JMP RINPUT	/RESTART
	STA I
INCH,	0
	JMP TYPE	/ECHO
	ADD INCH
	BCL I
	7700		/STRIP TO 6 BITS
	STA I 11
	XSK I 1
	JMP RIN
	KST
	JMP .-1
	IOB
	6036
	SAE I
	212		/FINAL LF?
	JMP RINPUT	/NO: RESTART
/
/NOW STORE DATA FROM TRIAL: 1ST WORD=
/DELAY, 2ND=SIDE, 3RD,...,10TH
/=RESPS, 11TH=CODE, 12TH=END CODE, 13TH=
/TOTAL DURATION
	LDA
	DELAY
	JMP NEXDAT
	LDA
	STONE
	JMP NEXDAT
	SET I 11
	RBUFR-1		/PUT INTO DATA
	SET I 1
	-11
	LDA I 11
	JMP NEXDAT
	XSK I 1
	JMP .-3
	LDA
	ENDCOD
	JMP NEXDAT
	LDA
	TOTDUR
	JMP NEXDAT
	JMP NEXTRL	/TRIAL OVER!
/HOLDS 9 DATA WORDS
/
RBUFR,	0
	0
	0
	0
	0
	0
	0
	0
	0
/
/SUBR BUFFER OUTPUT OF AC ONTO UNIT 1
/TAPE FILE VIA 12 PTR
/BUFFER=2000-2377
/
NEXDAT,	LDF 1
	STA I 12
	LDA
	12
	SAE I
	2377		/END BUFFER?
	JMP
/BUFFER FILLED: WRITE IT OUT ON NEXT
/BLOCK OF UNIT 1 FILE
WRITE,	LDA I
OUTBLK,	0
	SAE I
C1000,	1000
	SKP
ERROR2,	JMP ERROR	/TAPE FULL
	ADA I
C4000,	4000
	STC .+2
	WRC U
	0
	SET I 12
	3777		/RESET PTR
	LDA I
C1,	1
	ADM
	OUTBLK
	JMP
/
/EACH TRIAL BEGINS HERE
/
NEXTRL,	JMP CRLF	/CR,LF
/
/ENCODE NEXT TWO LINES OF STRING FILE
/AS DISPLAY AND MASK STRINGS.
	SET I 11
	BUFFER+5777	/AD-1/2 STR BUF
	JMP NEXCHR
	AZE I
	JMP ENDBLK	/00=END FILE
	SAE I
	57		/LINE BEGINS "/"
ERROR3,	JMP ERROR	/ILLEGAL LINE!
	JMP NEXCHR
	STH I 11	/CHAR INTO BUFR
	SAE I
	43		/43=END OF LINE
	JMP .-4
	LDA
	11
	STA I
ADMASK,	0		/SAVE AD-1/2 MSK
	JMP NEXCHR
	SAE I
	57
	JMP ERROR3
	JMP NEXCHR
	STH I 11
	SAE I
	43
	JMP .-4
/STRINGS IN BUFFER: TYPE TRIAL NO. & GO
/ENCODE 3RD LINE TO GET "DELAY" (0-3)
/AND "SIDE" (0-3) PARAMETERS FOR TRIAL
	JMP NEXCHR
	SAE I
	57
	JMP ERROR3
	JMP NEXCHR
	BCL I
	7774
	STC DTIME
	JMP NEXCHR
	BCL I
	7774
	STC SIDE
	JMP NEXCHR
	SAE I
	43
	JMP ERROR3
/PARAMETERS IN: TYPE TRIAL NO.&DELAY
	LDA I
	1
	ADM I
NTRIAL,	0
	JMP DECPUT	/TYPE TRIAL NO.
	LDA I
DTIME,	0
	ADD C260
	JMP TYPE
	ADD C240
	JMP TYPE
/
/WHENEVER SW 5 UP AT BEGINNING OF TRIAL,
/CALIBRATION ROUTINE RUN.  4 VELOCITY
/THRESHOLDS DETERMINED FOR SACCADES:
/WORK ON HORIZONTAL COMPONENTS WHEN SW 0
/DOWN & VERTICAL WHEN SW 0 UP.
/SW 1 MOVES FIXATION X LEFT & RIGHT,
/BELL RINGING WHEN APPROPRIATE VELOCITY
/THRESH. CROSSED (UP & DOWN IF SW 0 UP).
/ON CHAN 2 EACH PAIR OF THRESHOLDS
/SHOWN AS HORIZ LINES, WITH CONTINUOUS
/PLOT OF CORRESPONDING VELOCITY & POSIT.
/ANALOG KNOBS 0,4,1,5 SET THE THRESHS.
/FOR SACCADES LEFT,RIGHT,UP,DOWN.
/
	STC DATLDF	/DISABLE STORAGE
	SET I 4
	4000		/CHAN 2
	JMP SYNC0
	CLR
	STC BELFLG
CALIBR,	SAM 0
	APO
	COM
	STC DXL		/LEFT VEL.THRESH
	SAM 4
	APO
	COM
	STC DXR		/RIGHT
	SAM 1
	APO
	COM
	STC DYU		/UP
	SAM 5
	APO
	COM
	STC DYD		/DOWN
	SNS 5
	JMP READY	/START TRIAL
	SET I 3
	-40
	SET I 2
	4000		/CHAN 2
	SNS I 0		/HOR OR VERT?
	JMP CVERT
	LDA
	XLAST
	COM
	ADD XSAMP
	DIS I 4
	LDA
	DXL
	DIS 2
	LDA
	DXR
	COM
	DIS I 2
	XSK I 3
	JMP .-10
	LDA
	Y0
	STC Y
	RSW
	BCL I
	7700
	SNS 1
	COM
	ADD XFIX0
	STC XFIX
	ADD C2000
	STA
	DYU		/DISABLE VERT.
	STC DYD		/THRESHOLDS
	JMP TRIGR
CVERT,	LDA
	YLAST
	COM
	ADD YSAMP
	DIS I 4
	LDA
	DYU
	DIS 2
	LDA
	DYD
	COM
	DIS I 2
	XSK I 3
	JMP .-10
	RSW
	BCL I
	7700
	SNS 1
	COM
	ADD Y0
	STC Y
	ADD C2000
	STA
	DXL		/TEMP. DISABLE
	STC DXR		/HORIZ. THRESHS.
TRIGR,	JMP SHOFIX	/"X" AT (XFIX,Y)
	JMP SAMPLE
	JMP DISPOS
/
/IN ORDER TO PREVENT DISPLAY BLINKING
/DURING BELL, MUST KEEP REFRESHING WHILE
/WAITING FOR TTY FLAG: HENCE CHECK FOR
/NEW EVENT ONLY IF BELFLG=0
/
	LDA I
BELFLG,	0
	AZE
	JMP CHKFLG	/TTY IN PROGR
	JMP SACCAD	/CHECK MOVEMENT
	AZE
	JMP BELL	/EYEMOVEMENT!!
	SAM 13
	ADD RTHRES
	APO I		/BUTTON PRESS?
	JMP CALIBR
BELL,	LDA I
	207
	IOB
	6046		/TLS
	STC BELFLG	/SET FLAG>0
CHKFLG,	IOB
	6041		/TSF
	JMP CALIBR
	JMP CALIBR-2	/CLEAR FLAG
/
/SUBR STARTS 100 KHZ CLOCK TICKING
/EVERY MSEC FOR INTERRUPTS AND ENABLES
/EVENTS ON TRIGGER 3 (CHOPPER SYNC)
/
	PMODE
C2100,	2100
	LMODE
SYNC0,	CLR
	IOB
	6132		/CLLR
	LDA I
MSECS,	0
	MUL I
	144
	PDP PMODE
	CIA
	CLAB
	CLSA
	CLA
	TAD C2100
	CLLR
	CLSA
	SMA CLA
	JMP .-2		/WAIT 1ST TICK
	IAC
	CLEN		/TRIGGER 3
	LINC LMODE
	JMP		/RJ
/
/CONTROL ARRIVES HERE BEFORE STARTING
/
READY,	LDA I
XFIX0,	376		/FIXATION H.C.
	STC XFIX
	LDA I
Y0,	4000		/AC 0=1 FOR TONE
	STC Y
	ADD DTIME
	ADA I
	ADTIME		/AD DELAY TIMES
	STC 1
	LDA 1
	STC DELAY
	LDA I
SIDE,	0
	ADA I
	ADTONE
	STC 1
	LDA 1
	STC STONE
/FIRST PHASE: NO RECORDING OR SACCADE
/CHECKING DURING DISPLAY OF FIXATION "X"
/AND OPTIONAL PREMASK (PRMASK=1). ENDS
/WITH S BUTTON-PRESS
/
	JMP SYNC0
P1,	JMP SYNC
	JMP SAMPLE
	JMP SHOFIX
	SET 11
	ADMASK
	CLR
	SAE I
PRMASK,	0
	JMP DISPLA
	JMP DISPOS
	SAM 13
	ADA I
RTHRES,	500		/CHECK FOR RESP
	APO I
	JMP P1
/CONTINUE ABOVE UNTIL BUTTON BACK OPEN.
/
P1B,	JMP SYNC
	JMP SAMPLE
	JMP SHOFIX
	SET 11
	ADMASK
	CLR
	SAE
	PRMASK
	JMP DISPLA
	JMP DISPOS
	SAM 13
	ADA I
	200
	APO
	JMP P1B		/WAIT FOR IT
	CLR
	STC TOTDUR	/CLEAR TOTAL DUR
	LDA I
LDF3,	LDF 3
	STC DATLDF	/ENABLE STORAGE
	SET I 17
C2000,	2000
/
/NOW START SAMPLING & CHECKING FOR
/SACCADES, KEEPING (OPTIONAL) PREMASK
/ON FOR  TOTAL OF PREDUR CYCLES.
/
	ADD DELAY
	APO I
	CLR
	ADA I
PREDUR,	0
	COM
	STC 5
P2,	JMP SYNC
	JMP SAMPLE
	JMP SHOFIX
	SET 11
	ADMASK
	CLR
	SAE
	PRMASK
	JMP DISPLA
	JMP DISPOS
	JMP SACCAD
	AZE
	JMP MOVE
/CYCLE SUBR INCREMENTS TOTAL TIME &
/STOPS DISPLA IF TOTDUR=4000 OR IF
/RESP OCCURS.
	JMP CYCLE
	XSK I 5
	JMP P2
/
/IF DELAY < 0: ISSUE SIGNAL & FINISH
/FOREPERIOD
/IF DELAY >= 0: GO TO STIMULUS ONSET
/
	LDA I
DELAY,	0
	APO I
	JMP DISP
	STC 5
	JMP SIGNAL	/ISSUE SIGNAL
P2B,	JMP SYNC	/& FINISH PREMSK
	JMP SAMPLE
	JMP SHOFIX
	SET 11
	ADMASK
	CLR
	SAE
	PRMASK
	JMP DISPLA
	JMP DISPOS
	JMP SACCAD
	AZE
	JMP MOVE	/SACCADE!
	JMP CYCLE
	XSK I 16	/SIGNAL OVER?
	JMP .+3
	CLR
	ATR		/SPEAKER OFF
	XSK I 5
	JMP P2B
/
/ARRVIVES HERE AT END OF FOREPERIOD:
/IF DELAY<0: SHOW STIM UNTIL TOTDUR=4000
/OR BUTTON-PRESS MADE (OR EYEMOVEMENT
/OCCURS). IF DELAY>=0: SHOW
/STIM FOR DELAY CYCLES, THEN ISSUE
/SIGNAL & DO ABOVE.
/
DISP,	LDA
	DELAY
	APO
	JMP P4
	AZE I
	JMP P4-1
	COM
	STC 5
P3,	JMP SYNC
	JMP SAMPLE
	JMP SHOFIX
	SET I 11
	BUFFER+5777
	JMP DISPLA
	JMP DISPOS
	JMP SACCAD
	AZE
	JMP MOVE
	JMP CYCLE
	XSK I 5
	JMP P3
/NOW ISSUE SIGNAL & CONTINUE STIMULUS
/DISPLAY UNTIL TOTDUR=4000 OR RESP MADE.
	JMP SIGNAL
P4,	JMP SYNC
	JMP SAMPLE
	JMP SHOFIX
	SET I 11
	BUFFER+5777
	JMP DISPLA
	JMP DISPOS
	JMP SACCAD
	AZE
	JMP MOVE
	JMP CYCLE
	XSK I 16
	JMP .+3
	CLR
	ATR
	JMP P4
/ARRIVES HERE EARLY ON SACCADE OR SELF-
/TERMINATION OR TIMEOUT
/
	CLR		/HERE ON TIMEOUT
MOVE,	STC ENDCOD	/SAVE END CODE
	ATR		/SPEAKER OFF
	JMP SETLDF
	LDA I
	4000		/INSERT PAIR OF
	STA I 17	/4000"S TO MARK
	JMP SETLDF
	LDA I
	4000		/END OF STIM DIS
	STA I 17
	LDA I
PTMASK,	0
	AZE I
	JMP TDONE	/NO POSTMASK
	COM
	STC 5
P5,	JMP SYNC
	JMP SAMPLE
	JMP SHOFIX
	SET 11
	ADMASK
	JMP DISPLA
	JMP DISPOS
	XSK I 5
	JMP P5
	JMP SETLDF
	LDA I
C5000,	5000
	STA I 17	/PAIR OF 5000"S
	JMP SETLDF
	LDA I
	5000
	STA I 17	/MARK END OF FIL
	JMP TDONE	/TRIAL OVER!
/
/SUBR ISSUE SIGNAL: IF SIDE>0, TYPES IT
/AS ASCII CHAR: IF=0 TURNS SPEAKER ON
/FOR BRIEF INTERVAL, PRODUCING BUZZ FOR
/25 CYCLES
/
SIGNAL,	LDA
	0
	STC SIGRET	/RJ
	LDA I
STONE,	0
	AZE I
	JMP SPEAKR
	IOB
	6046		/TLS
	JMP SIGRET
SPEAKR,	ADD C1
	ATR		/RELAY CLOSED
	SET I 16
	-31		/25 CYCLE BUZZ
SIGRET,	HLT		/RJ
/
/SUBR INPUTS NEXT (6-BIT) CHAR FROM
/STRING FILE, BUFFERED VIA 6 INTO
/2400-2777
/
NEXCHR,	DJR
	LDF 1
	LDA
	6
	SAE I
	6777		/END BUFFER?
	JMP ROOM
/END OF STRING FILE BUFFER: READ IN NEXT
/TBLK FROM STRING FILE & RESET PTR 6.
	LDA I
	1
	ADM I
STBLK,	0
	STC .+2
	RDC
	0
	SET I 6
	6377
	JMP .+1		/USE UP DJR
ROOM,	LDH I 6
	JMP
/
/SECTION HANDLES END OF BLOCK: WRITES
/OUT FINAL BUFFER CONTENTS & TYPES MESG.
/
ENDBLK,	CLR
	JMP NEXDAT	/FINAL 0 IN DATA
	JMP WRITE	/OUTPUT BUFFER
	SET I 11
	FINLAB+5777
	JMP MESSAG	/E-O-F MESSAGE
	ADD OUTBLK
	ADA I
	-1
	JMP DECPUT	/TYPE LAST TBLK
END,	HLT
	JMP START
/
/PROGRAM (AND EACH BLOCK) BEGINS HERE
/INPUT FOLLOWING PARAMETERS
/
/"SESSID" - SESSION ID NO.
/"SUBJID" - SUBJECT ID NO.
/"INPUT FILE": STARTING TBLK UNIT 0
/           FOR DISPLAY STRINGS
/"OUTPUT" - STARTING TBLK UNIT 1 FILE
/           FOR DATA OUTPUT
/"MSECS " - NUMBER MSECS/TIME UNIT
/"PREDUR" - CYCLES BEFORE STIM ONSET
/"PRMASK" - 0=NO PREMASK, ELSE PREMASK
/"PTMASK" - NUMBER OF "MSEC" UNITS OF
/           MASK STRING AFTER DISPLAY
/
START,	SET I 12	/PTR TO DATA
	3777
	LDA I
PROGID,	300		/1ST DATA WORD
	JMP NEXDAT
	SET I 11	/SET PTR TO
	PARAMS+5777	/PARAMETER LABEL
	JMP MESSAG	/TYPE PAR. LABEL
	JMP GET		/DEC. INPUT TTY
	JMP NEXDAT
	JMP MESSAG
	JMP GET
	JMP NEXDAT
	JMP MESSAG
	JMP GET
	ADD C5000
	STA
	STBLK		/STRINGS FILE
	JMP NEXDAT
/VERIFY THAT STRING FILE IS VALID DIAL
/SOURCE FILE: 1ST WD=5262, 2ND=6043.
	LDF 1
	LDA
	STBLK
	STC .+2
	RDC
	0
	SET I 6
	6377		/AD-1 S FILE BUF
	LDA I 6
	SAE I
	5262
ERROR4,	JMP ERROR	/NOT DIAL FILE
	LDA I 6
	SAE I
	6043
	JMP ERROR4
/INPUT FILE VALID & LOADED
	JMP MESSAG
	JMP GET
	STC OUTBLK	/DATA FILE
	JMP MESSAG
	JMP GET
	STA
	MSECS
	JMP NEXDAT
	JMP MESSAG
	JMP GET
	STA
	PREDUR
	JMP MESSAG
	JMP GET
	STA
	PRMASK		/0=NO PREMASK
	JMP NEXDAT
	JMP MESSAG
	JMP GET
	STA
	PTMASK		/CYCLES POSTMASK
	JMP NEXDAT
	JMP MESSAG
/INPUT 4 DELAYS
	SET I 3
	ADTIME-1
	SET I 2
	260
	SET I 1
	-4
GETEM,	LDA I
	240
	JMP TYPE
	ADD 2
	JMP TYPE
	JMP GET
	STA I 3
	JMP NEXDAT
	XSK I 2
	XSK I 1
	JMP GETEM
/INPUT 4 SIDE CUES: O=BUZZ-TONE, >0=
/TETETYPE SOUND: REALLY ONLY TWO CUES
	JMP MESSAG
	SET I 2
	260
	SET I 1
	-4
GETEM2,	LDA I
	240
	JMP TYPE
	ADD 2
	JMP TYPE
	JMP GET
	STA I 3
	JMP NEXDAT
	XSK I 2
	XSK I 1
	JMP GETEM2
/PARAMETERS & CONDITION WORDS IN AND
/OUTPUT HEADER WRITTEN.
/TYPE MESSAGE "SW 5 UP FOR
/CALIB.", THEN HALT AND START BLOCK
	JMP MESSAG
	HLT
	STC NTRIAL
	JMP NEXTRL
/
/STORAGE FOR CONDITION WORDS: 4 DELAYS
/& 4 TONES (REALLY 2 DIFF.)
/
ADTIME,	0
	0
	0
	0
ADTONE,	0
	0
	0
	0
/CONTROL ARRIVES HERE ON ERRORS: TYPE
/"ERROR!" AND LEAVE ERROR ADDR IN AC
/
ERROR,	SET 1
	0		/ERROR ADDR
	SET I 11
	ERRLAB+5777	/AD-1/2 LDF
	JMP MESSAG
	ADD 1
	HLT
	JMP START
/
/SUBR "WAITS FOR NEXT CLOCK TICK, 
/GENERATES TIMING ERROR IF PRESENT ON
/ENTRY
/
SYNC,	PDP PMODE
	CLA
	CLSA
	SPA CLA
	JMP E1		/TIMING ERROR
	CLSA
	SMA CLA
	JMP .-2
	LINC LMODE
	JMP		/RJ
	PMODE
E1,	LINC LMODE
ERROR1,	JMP ERROR
/
/SUBR REFRESHES FIXATION "X" AT (XFIX,Y)
/USING 1/2-SIZE GRID
/
SHOFIX,	DSC I
	0		/PRIOR TO ESF
	CLR
	ESF
	SET I 1
XFIX,	376
	LDA
	Y
	DSC I
	1463
	DSC I
	6314
	JMP
/
/SUBR REFRESHES PACKED ASCII STRING
/VIA PTR 11, LDF 5, USING FULL-SIZE GRID
/
DISPLA,	LDA
	0
	STC RJDISP
	DSC I
	0		/PRIOR TO ESF
	LDF 1
	SET I 1
X0,	104
	LDA I
	200
	ESF
	LDH I 11
	SHD I
	4300		/43=CR=END STRNG
RJDISP,	HLT
	ROL 1
	ADA I
ADPWS,	PATRN+1776	/AD-2 PWS LDF
	STC 2
	LDA I
Y,	4000		/AC 0=1 FOR TONE
	DSC 2
	DSC I 2
	LDA I
DX,	4
	ADM
	1
	JMP RJDISP-3
/
/SUBR TYPES AC
/
TYPE,	PDP PMODE
	TLS
	TSF
	JMP .-1
	CLA
	LINC LMODE
	JMP
/
/SUBR TYPES CR.LF + PACKED ASCII MESSAGE
/POINTED BY 11, LDF 1
/
MESSAG,	LDA
	0
	STC RJMESG
	LDF 1
	LDH I 11
	AZE I
RJMESG,	HLT		/RETURN:00=END
	SAE I
	43		/CRLF?
	JMP .+3
	JMP CRLF
	JMP RJMESG-2
	ADA I
	-37		/ADD 100 OR 200
	APO		/FOR 8-BIT CODE
	ADD C100
	ADA I
	237
	JMP TYPE
	JMP RJMESG-2
C100,	100
/
/SUBR TYPES AC AS SIGNED DECIMAL INTEGER
/WITH (I5,1X) FORMAT. LEAD 0"S BLANKED
/
DECPUT,	STC NUM
	ADD
	STC RJDCPT
	STC ZERO	/LEADING-0 FLAG
	LDA I
NUM,	0
	APO
	JMP .+4
	LDA I
C240,	240
	JMP .+5
	COM
	STC NUM
	LDA I
	255
	JMP TYPE	/" " OR "-" SIGN
	STC 7		/COUNTS DIGITS
	ADD NUM
	ADA I
	-1750		/THOUSANDS
	APO
	JMP .+3
	XSK I 7
	JMP .-5
	AZE I		/-0?
	JMP .-3
	ADA I
	1750		/RESTORE
	STC NUM
	ADD 7
	ADM I
ZERO,	0		/TOTAL DIGIT SUM
	AZE I
	JMP .+5		/LEADING ZERO
	LDA I
	260
	ADD 7
	SKP
	ADD C240
	JMP TYPE
	STC 7
	ADD NUM
	ADA I
	-144		/HUNDREDS
	APO
	JMP .+3
	XSK I 7
	JMP .-5
	AZE I
	JMP .-3
	ADA I
	144
	STC NUM
	ADD 7
	ADM
	ZERO
	AZE I
	JMP .+5
	LDA I
	260
	ADD 7
	SKP
	ADD C240
	JMP TYPE
	STC 7
	ADD NUM
	ADA I
	-12		/TENS
	APO
	JMP .+3
	XSK I 7
	JMP .-5
	AZE I
	JMP .-3
	ADA I
	12
	STC NUM
	ADD 7
	ADD ZERO
	AZE I
	JMP .+5
	LDA I
C260,	260
	ADD 7
	SKP
	ADD C240
	JMP TYPE
	ADD C260
	ADD NUM
	JMP TYPE
	ADD C240
	JMP TYPE
RJDCPT,	HLT
/
/SUBR TYPES CR.LF
/
CRLF,	LDA
	0
	STC RJCRLF
	LDA I
	212
	JMP TYPE
	LDA I
	215
	JMP TYPE
RJCRLF,	HLT
/
/SUBR ACCEPTS SIGNED DECIMAL INTEGER
/FROM TTY. FORMAT: OPTIONAL LEADING
/BLANKS, OPTIONAL "-", 1-4 DECIMAL
/DIGITS, LINE FEED. ILLEGAL CHAR OR
/RUBOUT RESTARTS. TYPES "=" FIRST.
/ECHOES & RETURNS N IN AC.
/
GET,	LDA
	0
	STC RJGET
	LIF 0		/EXECUTED IN
	JMP 20		/LIF 0
RJGET,	HLT		/MAINLINE RJ
/
	SEGMNT 0
	*20
	STC NUM1
	SET I 7
	-5		/MAX 4 DIGITS
	STC SIGN	/SIGN FLAG
	LDA I
C275,	275
	JMP TYPE1	/JMP TYPE IN LIF
	JMP INCHAR	/GET & ECHO CHAR
	SAE I
	240
	SKP
	JMP .-4		/SKIP LEAD BLANK
	SAE I
	255		/="-"?
	JMP .+3
	STC SIGN	/SET SIGN FLAG
NEXDIG,	JMP INCHAR
	ADA I
	-257		/DIGIT?
	APO
	JMP ENTERR	/ILLEGAL CHAR
	ADA I
	-12
	APO I		/DIGIT?
	JMP ENTERR
	XSK I 7		/TOO MANY DIGITS
	SKP
	JMP ENTERR	/TOO MANY!
	ADA I
	11		/RESTORE DIGIT
	AZE I
	CLR		/-0 TO +0
	STC DIGIT
	ADD NUM1
	MUL I
	12		/DEC.SHITF LEFT
	ADA I
DIGIT,	0
	STC NUM1
	JMP NEXDIG
ENTERR,	LDA I		/ENTRY ERROR:
	277
	JMP TYPE1	/"?"
	JMP 23		/RESTART INPUT
/
/SUBR ACCEPTS TTY CHAR, CHECKS FOR LF
/TERMINATOR, ECHOES NON-LF & RETURNS AC
/
INCHAR,	LDA
	0
	STC DONE-1	/SAVE RJ
	PDP PMODE
	KSF
	JMP .-1
	KRB
	LINC LMODE
	SAE I
	212
	SKP
	JMP DONE	/LF=ENTRY IN
	STA
	DIGIT
	JMP TYPE1	/ECHO
	ADD DIGIT
	HLT		/RJ:DIGIT IN AC
DONE,	LDA I
SIGN,	0		/CHECK FOR -
	AZE
	JMP .+4
	ADD NUM1
	LIF 2		/RETURN TO LIF 2
	JMP RJGET
	LDA I
NUM1,	0
	COM
	JMP .-5
/
/END LIF 0 PART OF GET SUBR
/
TYPE1,	PDP PMODE
	TLS
	TSF
	JMP .-1
	CLA
	LINC
	LMODE
	JMP
/
/FOLLWOING STUFF IN LDF 1
/
	SEGMNT 1
	*1002
/PARAMETER INPUT LABELS
/
PARAMS,	4343		/2CR,LF
	TEXT "SESSID"
	0043
	TEXT "SUBJID"
	0043
	TEXT "INPUT FILE"
	0043
	TEXT "OUTPUT"
	0043
	TEXT "MSECS "
	0043
	TEXT "PREDUR"
	0043
	TEXT "PRMASK"
	0043
	TEXT "PTMASK"
	0043
	TEXT "ENTER 4 DELAYS"
	4300
	TEXT "ENTER 4 SIDE"
	4300
	TEXT "SW 5 UP FOR CALIB."
	4300
/
FINLAB,	4343
	TEXT "END OF BLOCK:LAST TBLK="
/
ERRLAB,	4343
	TEXT "ERROR!"
	4300
/
/BUFFER STORAGE FOR PACKED ASCII DISPLAY
/AND MASK STRINGS.
/
BUFFER,	0
	*.+37
/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