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