Directory of image this file is from
This file as a plain text file
*20 PMODE *20 /PARAMETERS OF OPERATION: MEASURED /IN NUMBERS OF REFRESH CYCLES: WHEN /REFRESH(=-RFRESH)=144 (1 MSEC), /TIMES ARE MEASURED IN MSECS. / PAUSE, 764 /NOW=1/2 SEC. /LENGTH OF INTERTRIAL INTERVAL: FIXATION /DOTS ON THROUGHOUT EXPT EXCEPT HERE. /MEASURED FROM OFFSET OF POSTMASK. / AFTER, 764 /NOW=1/2 SEC. /POSTMASK: DISPLAYED AFTER CHAR DISPLAY /UNTIL S RESPONDS (10-KEY PANEL) AND /THEN FOR ADDITIONAL "AFTER" COUNTS / /TO CHANGE POSTMASK PATTERN WORDS, PUT /DESIRED ONES (NOW 7777 7777) INTO /LOCATIONS PATRN-2 AND PATRN-1 / BEFORE, 144 /NOW=1/10 SEC. /PREMASK (USUALLY BLANK) ON (WITH FIXATN /ION DOTS UNTIL S HITS "READY" AND THEN /FOR ADDITIONAL "BEFORE" COUNTS. / /TO CHANGE PREMASK FROM BLANK, FILL /LOCATIONS PATRN+100 & PATRN+101 WITH /DESIRED PATTERN WORDS FOR PREMASK / M50,-50 K7, 7 TEMP, 0 R1, 0 R2, 0 R3, 0 INDEX6, 0 RNDM3, 0 RNDM2, 0 ADTIMS, TIME1 /AD TIME CONDS. ADCHRS, CHAR1 /AD CHAR CODES RNDM1, RNDM SH1, 0 SH2, 0 SH3, 0 SHUFEL, SHUFL RMNDR, RMNDRX TIMER, 0 DX, 24 /POSN SPACING CHAR, 0 IRX, IR RNX, RN NTRIAL, 0 TIME, 0 TRTYPE, 0 KEY, 0 CHARS, 12 /NO. CHARS/COND POSNS, 5 /NO. DISP POSNS TIMES, 3 /NO. TIME CONDS ADSDIF, RESP1-CHAR1 C40, 40 /SUBR TYPES OUT AC (LESS THAN 100) /AS 2 DIGIT DECIMAL NUMBER PLUS SPACE DECPUT, 0 DCA 0 TAD C260 DCA TIMER TAD 0 TAD MD10 SPA JMP .+3 ISZ TIMER JMP .-4 TAD C272 DCA 0 TAD TIMER JMS TYPE TAD 0 JMS TYPE TAD C240 JMS TYPE JMP I DECPUT C240, 240 MD10, -12 C260, 260 C272, 272 /SUBR TYPES CHAR FROM AC TYPE, 0 TLS TSF JMP .-1 CLA JMP I TYPE /SUBR GIVES CR+LF CRLF, 0 TAD C212 JMS TYPE TAD C215 JMS TYPE JMP I CRLF C212, 212 C215, 215 /SUBR STARTS CLOCK AT 1OO KHZ RATE CLOCK, 0 CLA CLLR TAD C2100 CLLR CLA JMP I CLOCK C2100, 2100 /SUBR PAUSES UNTIL RFRESH SECS*10^-5 DELAY, 0 CLCA CIA TAD RFRESH SPA SNA CLA JMP I DELAY /DONE WAITING JMP DELAY+1 /KEEP WAITING RFRESH, 144 /REFRESH RATE /SUBR DISPLA SHOWS FIXATION POINTS /AND KEY CHAR IN KEY POSN /CHAR=40 IS THE PREMASK CODE: /(NORMALLY BLANK:NO PREMASK) /CHAR=0 IS THE POSTMASK CODE (NORMALLY /=7777S:FULL POSTMASK) DISPLA, 0 JMS CLOCK /START CLOCK LINC LMODE SNS I 0 ADD C200 /CHAR SIZE: SW 0 ESF /1/2-SIZE CHARS SET I 1 X0, 374 /FIXATION CENTER LDA I 20 /LINE ABOVE CHAR SNS I 0 ROL 1 /DOUBLE IF FULL ADD VERCO DSC I FIXAT1, 400 /LEFT FIX.N PW DSC I FIXAT2, 4 /RIGHT FIXN. PW SET 1 X0 LDA I -20 /LINE BELOW CHAR SNS I 0 ROL 1 /DOUBLE IF FULL ADD VERCO DSC I FIXAT3, 1000 DSC I FIXAT4, 10 LDA DX MUL I KEYPOS, 0 ADD IHORCO STC 1 ADD CHAR ROL 1 ADA I LMODE /CORE MAP: MAINLINE PROGRAM IN LIF 0. /TELETYPE I/O SUBROUTINES IN LIF 1 UP TO /2777. 2-BLOCK DATA BUFFER IN LDF 1 3000 /TO 3777. 3-BLOCK TEXT BUFFER IN LDF 2 /4000-5377. DISPLAY PATTERN WORDS IN LDF /2 5400-5577. DISPLAY CONTROL CONSTANTS /IN LDF 2 5600-5777. EYE-POSITION LOOKUP /TABLES IN LDF 3: Y TABLES 6000-6377; /X-TABLES 6400-6777. CALIBRATION WORK /AREA ABOVE TABLES IN LDF 3. DATA=LDF 1 DTEXT=LDF 2 TABLES=LDF 3 PROG0=LIF 0 PROG1=LIF 1 YSAMP=LSW XSAMP=RSW /FOR DEBUGGING, XSAMP=RSW/SAM 4, YSAMP= /LSW/SAM 0; FOR EXPTS, XSAMP=SAM 17, /YSAMP=SAM 16 / /JOB PARAMETERS STORED HERE: ARE WRITTEN /OUT AS HEADER ON DATA FILES SEGMNT 0 *20 PGCODE, 1111 /PROGRAM CODE SUBSES, 0 /SUBJ.-SESS. ID TEXTAP, 0 /SOURCE TAPE ID TEXBLK, 0 /1ST TEXT TBLK DATBLK, 0 /1ST DATA TBLK TOPLIN, 0 /TOP LINE NO. LINES, 0 /DISPLAY LINES SPACIN, 0 /LINE SPACING WIDTH, 0 /WINDOW WIDTH POSN, 0 /REL. WINDOW POS QBLK, -1 /QUESTION BLOCK NPAGE, 0 /DISPLAY PAGE NO / PMODE MDT, -144 /10 MSEC/SAMPLE C3000, 3000 LMODE / /BEGINNING OF EACH JOB, PROGRAM ACCEPTS /INPUTS FOR ABOVE PARAMETERS, EXCEPT FOR /"PGCODE" AND "NPAGE", WHICH ARE AUTOM- /ATICALLY SET. / /"SUBSES": ID FOR SUBJECT AND SESSION /"TEXTAP": TAPE ID FOR SOURCE AND QUEST. /"TEXBLK": STARTING TBLK FOR TEXT SOURCE /"DATBLK": " " " DATA OUTPUT (UNIT 1) /"TOPLIN": LINE NO. FOR UPPER DISPLAY / LINE: 0=TOP,...,37=BOTTOM /"LINES" : NO. LINES DISPLAYED PER PAGE /"SPACIN": 1=SINGLE SPACING,2=DOUBLE,ETC /"WIDTH" : WINDOW WIDTH IN CHARS /"POSN" : POSITION OF LEFT WINDOW EDGE / W/R/T FIXATION PT: -N MEANS / N TO LEFT,+N N TO RIGHT /"QBLK" : QUESTION TBLK:<0=NO QUESTIONS / /THIS SECTION HANDLES INTERRUPTS. /TWO POSSIBLE INTERRUPTS: ON RESP.PANEL, /SUBJECT SIGNALS END OF PAGE/END VERIFY. /CLOCK OVERFLOW INTERRUPT SIGNALS TIME /TO RESAMPLE X AND Y SIGNALS AND PERFORM /THE NECESSARY UPDATING. *40 0 /INTERRUPT PC STC ACSAVE /SAVE AC /INTERRUPT LINK&MQ AREN"T SAVED! /HOWEVER, SUBROUTINE PC=0000 MUST BE /SAVED AND RESTORED. EACH CLOCK INTER- /RUPT IS COUNTED BY 10&11. ADD STC SAVE0 IOB 6135 /CLSA APO I /<0:CLOCK OFLOW JMP PANEL /CHECK PANEL INT XSK I 10 /ANOTHER SECOND? JMP .+5 XSK I 11 /INCR SECONDS NOP /MAX=1023 SECS. SET I 10 -144 /100 SAMPLES/SEC /SAMPLE Y AND X SIGNALS (A-D 16 & 17) /COMPUTE TABLE LOOKUP FOR EACH OF THEM TABLES /LDF FOR LOOKUP YSAMP /GET Y-VOLTAGE ADD C1000 SCR 2 /INTO (0,377) ADD C2000 /INTO VOLT-ADDR. STC 16 /Y-POINTER XSAMP /GET X-VOLTAGE ADD C1000 SCR 2 ADD C2400 /X VOLT-ADDR. STC 17 /X-POINTER /NOW COMPARE X-POS WITH LAST ONE="XFIX" /IF DIFFERENCE IS LESS THAN OR EQUAL TO /"XCRIT" CHAR POSNS, NO CHANGE IS JUDGED LDA I XFIX, 0 COM ADA 17 APO I COM /GET -ABS.VAL. ADA I /OF X-DIFF AND XCRIT, 4 /COMPARE WITH STC D /X-MOVE CRITERIA /"FIXING"=0 IF SUBJECT LAST IN FIXATION /MODE,NOT=0 IF IN MOVEMENT MODE SAE I FIXING, 0 JMP MOVING ADD D />0:NO X CHANGE APO JMP SACCAD /NO LONGER FIXIN /X POSITION HAS NOT CHANGED: CHECK Y /POSITION FOR PERSISTING FIXATION LDA I YFIX, 0 /Y FIX. POS. SAE 16 JMP SACCAD /Y HAS CHANGED! /FIXATION PERSISTS: INCREMENT FIXATION /TIMER (REGISTER 14) ONLY UP TO 777 LDA 14 SAE I 777 XSK I 14 /NOW RETURN TO DISPLAY IN PROGRESS. RESTOR, LDA C40, 40 BSE I 6000 /FORM RETURN JMP STC RETURN /JUMP INTSR. SET I 0 SAVE0, 0 /RESTORE SUBR PC DJR /HOLD PC ON EXIT LDA I ACSAVE, 0 /RESTORE AC IOB 6244 /RMF IOB C6001, 6001 /ION RETURN, HLT /RETURN JUMP / /CONTROL ARRIVES HERE WHENEVER CHANGE IN /X OR Y DEFINES END OF FIXATION. /ZERO SACCADE-TIMER (REGISTER 15), SET /"FIXING" NON-ZERO (MOVEMENT MODE), /SAVE (XFIX,YFIX) AS DATA, AND THEN /REDEFINE XFIX AND YFIX AND RETURN. SACCAD, SET I 15 0 /INIT SACCADE TM ADD C215 /WILL BE >0 STC FIXING /NON-ZERO=MOVING ADD XFIX ROL 6 ADD YFIX /(XFIX,YFIX) JMP STORE /SUBR STORES WD TABLES /LDF FOR LOOKUP /INCREMENT SACCADE TIMER TO MAX OF 7 MORMOV, LDA 15 SAE I 7 XSK I 15 LDA 16 STC YFIX /UPDATE Y LDA 17 STC XFIX /UPDATE X JMP RESTOR /RETURN / /CONTROL REACHES HERE WHENEVER SUBJECT /IN "MOVEMENT" PHASE ("FIXING" NOT 0) /STAYS IN "MOVEMENT" UNTIL TWO SUCCESSIV /X AND Y SAMPLES WITHIN FIXATION CRITERI / MOVING, LDA I D, 0 /<0:STILL MOVING APO JMP MORMOV /STILL MOVING LDA YFIX /X STOPPED:CHECK SAE 16 /Y POSN. JMP MORMOV /Y CHANGED /END OF MOVEMENT: NEW FIXATION BEGINS. /STORE DURATIONS OF LAST FIXATION AND OF /SUCCEEDING SACCADE AS NEXT DATA WORD: /BITS 0-2 SACCADE+BITS 3-11 FIXATION. /THEN SETUP NEW DISPLAY CONTROLS. LDA 15 /SACCADE DURATIO ROR 3 /INTO BITS 0-2 ADD 14 /FIXATION DURAT. JMP STORE /SAVE WORD TABLES /LOOKUP LDF CLR STC FIXING /FIXATION MODE SET I 14 /INIT FIX TIMER 1 LDA 17 STC XFIX /NEW XFIX /WHEN NEW FIXATION POINT ESTABLISHED, /CURRENT DISPLAY NOT COMPLETED, BUT /RATHER RESTARTED AT "YFIX" LINE. /NOW RESET LINE CONTROLS IN TEXT LDF. DTEXT SET I 4 LINCON+1777 SET 6 MLINES ADD C7000 /EACH LINE SET STA I 4 /TO ALL PERIPH. XSK I 6 JMP .-2 LDA YFIX ADD ADLIN2 /=AD-1 WINDOW STC 4 /LINE ADD XFIX ADA I MLW, 0 /NO. CHARS TO COM /LEFT OF WINDOW APO I /TOO FAR LEFT? JMP NOROOM /TOO FAR LEFT STA I 4 /=CONTROL WORD LDA I MWIDE, -10 /-WINDOW WIDTH STC MWIDTH JMP DISPLA /EXIT TO DISPLAY NOROOM, ADD MWIDE /DECREASE WINDOW STC MWIDTH COM STA I 4 /CONTROL WORD=-0 JMP DISPLA / /CONTROL REACHES HERE WHENEVER INTERRUPT /OCCURS FROM RESPONSE PANEL. /THIS SIGNALS END OF PAGE, AND TWO END- /MARKERS (7777) ARE STORED IN DATA FILE. /THEN THE NEXT PAGE (IF ANY) IS RUN. /IF DURING "VERIFY", THIS SIGNALS /PROCEED TO "READ" TASK. / PANEL, IOB 6311 /PANEL FLAG? JMP RESTOR /NO:SPURIOUS IOB 6314 /CLEAR FLAG LDA TBLK SAE /IN "VERIFY" IF CALBLK /TBLK=CALBLK SKP JMP READ LDA I 7777 JMP STORE LDA I 7777 JMP STORE /NOW CHECK IF THERE"S MORE OF TEXT. LDA I DLINES, 0 ADD MLINES /LAST PAGE DONE AZE /IF MLINES<LINES JMP QUESTN /DO QUESTIONS /STILL MIGHT BE END OF TEXT: FETCH NEXT /PAGE TO SEE. LDA I ENDPAG, 0 /PTR END CURR PG STC PAGEPT JMP SETPAG /GET NEXT PAGE ADD MLINES /0 LINES:DONE AZE I JMP QUESTN /DONE!DO QUESTNS JMP RUNPAG /DO NEXT PAGE / /SUBR STORES AC VIA 13 INTO DATA BUFFER; /WHENEVER END OF MBLK REACHED, ITS /WRITTEN OUT VIA THE "NO PAUSE" AXO OPT. / STORE, DATA /DTA LDF STA I 13 /=JMP IF INHIBIT LDA 13 BSE I 7400 /WILL BE 7777 AZE /IFF END MBLK JMP /NOT END:RETURN /END MBLK: WRITE IT UNIT 1 & INCR DATBLK STD /HAVE TIMING ERR JMP ERROR /IF IN PROGRESS WRITE, ADD 13 /CONVERT TO ABS. BCL I /ADDR.BEGIN.MBLK 377 /=3000 OR 3400 TMA LDA I 30 /ENABLE EX AD & AXO /NO PAUSE OPTION LDA DATBLK STC .+2 WRC U /START WRITING 0 ADD /SAVE RET JMP STC STORET XSK 13 /IF LAST MBLK OF JMP .+3 /BUFFER, RESET SET I 13 /13 TO AD-1 1ST 2777 /BUFFER MBLK ADD ONE ADM DATBLK /INCR.FOR NEXT SAE I 1000 STORET, HLT /R.J. JMP ERROR /NO WRITE-AROUND / /SUBROUTINE DISPLAYS PAGE OF TEXT = /"MLINES" OF TEXT, USING THE ARRAY OF /TEXT-LINE POINTERS AND LINE CONTROL /WORD ARRAYS. CONTROL=0 MEANS LINE NOT /SHOWN, BUT ITS LEFT AND RIGHT MARGINS /ARE MARKED. CONTROL<0 (EVEN -0) MEANS /(UP TO) -CONTROL CHARS SHOWN LEFT OF /WINDOW (IF ANY), FOLLOWED BY WINDOW /AND THEN (IF ANY) REMAINING CHARS IN /PERIPHERAL DISPLAY CONDITION. /ALWAYS BEGINS DISPLAYING LINE NO. L, /WHERE L=MIN(YFIX,-1-MLINES) / SHPAGE, LDA 0 STC PGEXIT /SETUP RETURN DTEXT /TEXT,PWS,CONTRL ADD MLINES ADD YFIX APO I JMP TOOLOW /BEGIN BOTTOM LN AZE I /-0: " " " JMP TOOLOW LDA YFIX /BEGIN "YFIX" LN JMP TOOLOW+4 TOOLOW, LDA I 1 ADD MLINES COM C4000, STC /TEMP SET I 6 MLINES, -10 /-LINES TO SHOW ADD /STARTING LINE ADD ADLIN1 /=LINADS-1 STC 3 /AD-1 ST. LIN AD C2000, ADD ADD ADLIN2 /=LINCON-1 STC 4 /AD-1 ST.LIN.CON ADD MUL DY ADD YTOP STC Y /STARTING Y V.C. NXLINE, SET I 1 M2, -2 /STARTING H.C. LDA I 3 AZE I /LINAD=0:GO TO JMP WRAPUP /TOP OF DISPLAY STC 7 /AD-1/2 LINE TXT LDA I 4 /LINE C-WORD APO JMP SHOLIN /<0: SHOW LINE ADD Y /=0: SHOW MARGNS DSC I 7777 /LEFT MARGIN SET I 1 772 DSC I 7777 /RIGHT MARGIN CHNXLN, LDA I DY, -40 /LINE SPACING ADM Y /Y FOR NEXT LINE XSK I 6 /ANOTHER LINE? JMP NXLINE PGEXIT, HLT /RETURN /