*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 /