Directory of image this file is from
This file as a plain text file
*20
/INTERRUPT HANDLER FOR EYETACH1 PROGRAM.
/POSSIBLE INTERUPTS: EVENT TRIGGERS 1 OR
/2=SACCADE; EVENT TRIGGER 3=RESPONSE OR
/S/E SIGNAL; CLOCK OVERFLOW=TIME INCREM.
/
LMODE
*40
0
CLR
IOB
6135 /CLSA
AZE I
ERROR1, HLT /ILLEGAL INTER.
STA I
EVENTS, 0 /SAVE CLSA BITS
BCL I
7727 /EVENT 1 OR 2?
AZE I
JMP CH3 /NO
/EYEMOVEMENT HAS OCCURRED: SET PHASE
/TEMRINATION CODE="M" AND END PHASE IF
/CWD1 BIT 3=0 OR END TRIAL IF=1
LDA I
315 /"M"
STA I 14 /SAVE TERM CODE
LDA
CWD1 /PHASE CONTROL 1
ENDPHS, ROL 3
APO
JMP STOP /=1: END TRIAL
LDA
TIMER
STA I 14 /SAVE PHASE TIME
JMP NEXPHS /GO TO NEXT PHAS
/
CH3, ADD EVENTS
BCL I
7775
AZE I /EVENT 3/CLOCK?
JMP TIME /CLOCK OVERFLOW
/SUBJ OR EXP SIGNAL HAS OCCURRED THRU
/TRIGGER 3: SAVE PHASE TERM. CODE="S"
/AND END PHASE (CWD1 BIT 4=0) OR TRIAL=1
LDA I
323 /"S"
STA I 14
LDA
CWD1
ROL 1
JMP ENDPHS
/EITHER "M" OR "S" EVENT HAS OCCURRED
/AND TRIAL IS TO END IMMEDIATELY.
STOP, LDA
TIMER
STA I 14 /SAVE PHASE TIME
LDA
PHASES
COM
ADD PHASE /=-NO PHASE LEFT
AZE I
JMP FINISH /LAST PHASE
/FILL DATA FOR REMAINING PHASES WITH
/"*" TERM. CODE AND 0000 DURATION
STC 1
LDA I
252 /"*"
STA I 14
CLR
STA I 14
XSK I 1
JMP .-6
JMP FINISH
/ARRIVES HERE ON CLOCK OVERFLOW INTER.:
/INCREMENT TICK COUNTER (5) AND IF
/"MSECS" TICKS, SAMPLE A-D CHANNELS,
/INCREMENT PHASE TIMER & CHECK FOR
/PHASE TIMEOUT
/
TIME, XSK I 5
JMP RUN /CONTINUE PHASE
XSK 17 /ROOM LEFT FOR
SKP /SIGNAL STORAGE?
JMP MSECS-1 /NO:SKIP IT
LDA
CDW1 /SAMPLE&STORE IF
APO I /CWD1 BIT 0=1
JMP MSECS-1 /NO SAMPLE
/SAMPLE X (AD15), Y (AD17), AND
/D(X+Y)/DT (AD10) IF SW 1,2,3 UP
SNS 1
JMP .+4
LDF 6 /X SAVED 15000
STA 17 /-15777
SNS 2
JMP .+4
SAM 17
LDF 7 /Y SAVED 16000
STA I 16 /-16777
SNS 3
JMP .+4
SAM 10
LDF 7 /D(X+Y)/DT 17000
STA 17 /-17777
XSK I 17
NOP
LDA I
MSECS, 5
COM /RESET TICK
STC 5 /COUNTER
ADD C1
ADM I /INCR.PHASE TIME
TIMER, 0 /=TIMEOUT ? (2ND
SAE 15 /PHASE CONTR WD)
JMP RUN /CONTINUE PHASE
/TIMEOUT HAS OCCURRED: SAVE PHASE TERM.
/CODE=" " AND END PHASE ONLY IF CWD1
/BIT 5=1, ELSE IGNORE
LDA
CWD1
ROL 5
APO I
JMP RUN /CONTINUE PHASE
LDA I
240 /" "
STA I 14
JMP ENDPHS+3 /GO TO NEXT PHAS
/
/END OF TRIAL: TURN T-SCOPE OFF, TYPE
/(TERM. CODE, TIME) FOR EACH PHASE
/AND TRANSFER DATA TO OUTPUT FILE VIA
/BUFFER (12) 14000-14377
/
FINISH, CLR
ATR /T-SCOPE OFF
IOB
CLLR /CLOCK OFF
ADD PHASES
JMP NEXDAT
LDA
PHASES
JMP DECPUT
ADD PHASES
COM
STC 1
SET I 15
TRDATA-1 /DATA ARRAY
DATOUT, LDA I 15
JMP NEXDAT
LDA 15
JMP TYPE /TERM. CODE
LDA I 15
JMP NEXDAT
LDA 15
JMP DECPUT /DURATION
XSK I 1
JMP DATOUT
/TYPE FINAL "W" ONLY IF SIGNAL STORAGE
/FILLED DURING TRIAL
XSK 17
JMP .+4
LDA I
327 /"W"
JMP TYPE
/DISPLAY EACH SAMPLED SIGNAL ON CHANNEL
/2 OF VR12 FOR "SHOW" SECS OR UNTIL SW
/0 DOWN, WHICHEVER LONGER. EACH GRAPH
/HAS VERTICAL LINES MARKING PHASE
/BOUNDARIES: SHORT LINE=TIMEOUT, MEDIUM
/LINE=S/E SIGNAL, LONG=EYEMOVEMENT
/
GRAPHS, LDA I
SHOW, 0 /SEC/GRAPH
AZE I
JMP NEXTRL /NO GRAPHS
SET I 1
-3 /UP TO 3 GRAPHS
GRAPH1, LDA
17
STA I
END13, 0 /END GRAPHS 1&3
ADD C1000
STC END2 /END GRAPH 2
SNS 1
JMP GRAPH2
LDF 6
ADD END13
STC ENDGRP
ADD C2777
STC POINT0
JMP GRAPH /SHOW GRAPH
GRAPH2, LDF 7
SNS 2
JMP GRAPH3
LDF 6
LDA I
3777
STC POINT0
ADD END2
STC ENDGRP
JMP GRAPH /SHOW GRAPH
GRAPH3, SNS 3
JMP NEXTRL
LDA I
2777
STC POINT0
ADD END13
STC ENDGRP
JMP GRAPH
JMP NEXTRL
/
/SUBR SHOW GRAPH: MUST ENTER AC=0
/
GRAPH, ADD
STC RJGRP
IOB
6132 /CLLR
IOB
6134 /CLEN
COM
IOB
6133 /CLAB
LDA I
5100 /100 HZ CLOCK
IOB
6132 /CLLR
SET I 17
POINT0, 0
SET I 10
5777 /CHAN 2
LDA I 17
SCR 1 /SCALE
DIS I 10
LDA
17
SAE I
ENDGRP, 0
JMP .-7
/FULL GRAPH REFRESHED: SHOW VERT. LINES
/AT PHASE BOUNDARIES
SET I 14
TRDATA-1
SET I 15
CONTRL-1
LDA
PHASES
COM
STC 2
SET I 10
4000
PLINE, LDA I 14
STC TCODE
LDA I 14
STC TIMER
LDA I 15
XSK I 15
APO I /PHASE SAMPLED?
JMP NXLINE /NO:SKIP IT
LDA
TIMER
ADM
10 /H.C. OF LINE
/HEIGHT OF LINE IS 100 (" "), 200 ("S")
/OR 300 ("M")
LDA I
TCODE, 0
SAE I
240
JMP .+4
SET I 3
-100
JMP LINE
SAE I
323
JMP .+4
SET I 3
-200
JMP LINE
SET I 3
-300
LINE, CLR
DIS 10
ADD C1
XSK I 3
JMP .-3
NXLINE, XSK I 2
JMP PLINE
/REFRESH OF GRAPH & LINES COMPLETE:
/CHECK TO SEE IF DISPLAY TIME UP
SNS I 0
JMP POINT0-1 /SW 0 OVERRIDE
IOB
6137 /CLCA
COM
ADA I
SHOW, 0 /SHOW MUST>0!
APO I
JMP POINT0-1 /ANOTHER REFRESH
RJGRP, HLT /RJ
/
/END GRAPH SUBROUTINE
/
/SUBR BUFFER OUTPUT OF AC ONTO UNIT 1
/TAPE FILE (ONLY IF SW 4=1) VIA 12 PTR
/BUFFER=14000-14377
/
NEXDAT, SNS 4
JMP
LDF 6
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
1
ADM I
OUTBLK, 0
SAE I
1000
SKP
ERROR5, HLT /TAPE FULL
ADD C4000 /MBLK=4
STC .+2
WRC U
0
SET I 12
3777 /RESET PTR
JMP
/
/EACH TRIAL BEGINS HERE
/
NEXTRL, JMP CRLF
ADD C1
ADM I
NTRIAL, 0 /INCR TRIAL NO.
JMP DECPUT /& TYPE IT
SET I 17
3000 /INITIALIZE PTRS
SET I 16 /FOR SIGNAL
3777 /STORAGE
SET I 15 /FOR PHASE CONTR
CONTRL-1 /WORDS
SET I 14 /AND TRIAL DATA
TRDATA-1 /ARRAY
/READ IN "PHASES" AND 2*PHASES CONTROL
/WORDS FROM 14400-14777, BUFFERED FROM
/UNIT 0 TAPE FILE
JMP NEXWRD /SUBR FETCHES IT
AZE I
JMP ENDBLK /PHASES=0:END
ROL 1
COM
STC 1
JMP NEXWRD
STA I 15
XSK I 1
JMP .-3
SET I 15
CONTRL-1 /RESET PTR
/SW 5 UP: RUN CALIBRATION BEFORE TRIAL
/
CALIBR, IOB
6135 /CLSA
CLR
IOB
6132 /CLLR
LDA I
C24, 24
IOB
6134 /CLEN
CWAIT, SNS 5
JMP READY
CLR
IOB
6135 /CLSA
AZE I
JMP CWAIT
LDA I
207
JMP TYPE /RING BELL
JMP CWAIT
/
READY, LDA I
2100
IOB
6132 /CLLR:START 100
LDA I /KHZ CLOCK
7634 /TICKING EVERY
IOB /MSEC
6133 /CLAB
LDA I
40 /DISABLE TTY
ESF /INTERRUPT
CLR
IOB
6135 /CLSA
APO I
JMP .-4 /WAIT 1ST TICK
LDA
MSECS /TICKS/UNIT TIME
COM
STC 5 /INITIALIZE CTR
STC PHASE /& PHASE NO.
/SECTION HANDLES TRANSITION TO NEW PHASE
/
NEXPHS, LDA I
PHASE, 0
SAE
PHASES
SKP
JMP FINISH /LAST PHASE:DONE
ADD C1
STC PHASE /NEW PHASE NO.
STC TIMER /CLEAR PHASE TMR
LDA I 15
STA I /GET 1ST
CWD1, 0 /PHASE CONTRL WD
/PHASE CONTROL WORDS FORMAT: 1ST WORD
/(=CWD1): BIT 0: SAMPLE AD"S ONLY IF=1;
/BIT 1: DETECT SACCADES ONLY IF=1; BIT 2
/DETECT S/E SIGNAL ONLY IF=1; BIT 3: IF
/BIT 1=1 END PHASE (=0) OR TRIAL (=1) ON
/DETECTION OF SACCADE; BIT 4: IF BIT 2=1
/END PHASE (=0) OR TRIAL (=1) ON S/E
/SIGNAL DETECTION; BIT 5: END PHASE ON
/TIMEOUT IF=1. BITS 6,7,8: DISPLAY
/T-SCOPE CHANNELS 1,2,3 IF=1.
/WORD 2: TIME UNITS TO TIMEOUT
BCL I
7707 /BITS 6-8: TURN
ATR /ON T-SCOPE
SET I 1
300 /SETUP CLEN BITS
LDA 15
ROL 1
APO I /BIT 1:DETECT
JMP .+5 /EYEMOVEMENTS?
LDA I /YES: ACTIVATE
74 /TRIGGERS 1&2
ADM
1
LDA 15
ROL 2 /BIT 2: DETECT
APO I /S/E SIGNAL?
JMP .+4 /YES: ACTIVATE
LDA I /TRIGGER 3
3
SKP
CLR
ADD 1
IOB
6134 /CLEN
RUN, IOB
6001 /ION
JMP . /PHASE BEGINS
/
/SUBR INPUTS NEXT CONTROL WORD FROM TAPE
/FILE UNIT 0: BUFFERED VIA 13 INTO 14400
/-14777
/
NEXWRD, DJR
LDF 6
LDA I 13 /NEXT WORD
STC BACK+1
ADD 13
SAE I
2777 /END BUFFER?
JMP BACK /NO:RETURN
/END BUFFER:READ-IN NEXT TAPE BLOCK
JMP .+1 /USE UP DJR
READ, LDA I
1
ADM I
INBLK, 0
SAE I
1000
SKP
ERROR3, HLT /END OF TAPE
ADD C5000 /SET MBLK=5
STC .+2
RDC
0 /READ BLOCK
SET I 13
2377 /RESET PTR
BACK, LDA I
0 /SAVED C(13)
JMP /RETURN
/
/SECTION HANDLES END OF BLOCK: WRITES
/OUT FINAL BUFFER CONTENTS & TYPES MESG.
/
ENDBLK, CLR
JMP NEXDAT /FINAL 0 IN DATA
JMP WRITE /OUTPUT BUFFER
JMP CRLF
SET I 11
ENDLAB-4000
JMP MESSAG /E-O-F MESSAGE
ADD OUTBLK
JMP DECPUT /TYPE LAST TBLK
HLT
JMP START
/
/PROGRAM (AND EACH BLOCK) BEGINS HERE
/INPUT FOLLOWING PARAMETERS
/
/"SESSID" - SESSION ID NO.
/"SUBJID" - SUBJECT ID NO.
/"DESIGN" - STARTING TBLK UNIT 0 FILE
/ FOR CONTROL WORDS INPUT
/"OUTPUT" - STARTING TBLK UNIT 1 FILE
/ FOR DATA OUTPUT
/"MSECS " - NUMBER MSECS/TIME UNIT
/"LUMIN1" - LUMINANCE T-SCOPE CHAN 1
/"DISTC1" - VIEWING DISTANCE " "
/"LUMIN2" - CHANNEL 2
/"DISTC2" - " "
/"LUMIN3" - CHANNEL 3
/"DISTC3" - " "
/"GRAPHS" - NO. SECS/100 EACH SIGNAL
/ GRAPH DISPLAYED AFTER TRIAL
/
/NOTE: LUMIN1,2,3 & DISTC1,2,3 FOR
/BOOKEEPING PURPOSES ONLY
/
SET I 12 /PTR TO DATA
3777
LDF 6
LDA I
PROGID, 100 /IST DATA WD=
STA I 12
SET I 11 /SET PTR TO
PARAMS-1 /PARAMETER LABEL
JMP MESSAG /TYPE PAR. LABEL
JMP GET /DEC. INPUT TTY
STA I 12
JMP MESSAG
JMP GET
STA I 12
JMP MESSAG
JMP GET
STA I 12
STA
INBLK /INPUT FILE
/VERIFY THAT INPUT FILE IS PROPERLY
/FORMATTED: IST WORD=7777
ADD C5000 /MBLK=5
STC .+2
RDC
0
SET I 13 /INITIALIZE PTR
2377
LDA I 13
SAE I
7777
ERROR4, HLT /NOT VALID FILE!
JMP MESSAG
JMP GET
STA I 12
STC OUTBLK /DATA FILE
JMP MESSAG
JMP GET
STA I 12
STC MSECS
SET I 1
-7
JMP MESSAG
JMP GET
STA I 12
XSK I 1
JMP .-4
STC SHOW
/PARAMETERS IN AND HEADER WRITTEN ON
/OUTPUT FILE. TYPE MESSAGE "SW 5 UP FOR
/CALIBRATION", THEN HALT AND START BLOCK
JMP MESSAG
HLT
STC NTRIAL
JMP NEXTRL
/
/SUBR TYPES AC
/
TYPE, PDP PMODE
TLS
TSF
JMP .-1
CLA
LINC LMODE
JMP
/
/SUBR TYPES CR.LF + PACKED ASCII MESSAGE
/POINTED BY 11
/
MESSAG, LDA
0
STC RJMESG
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
/
/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
ADD NUM
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
/