LT-ADR STC 1 ADD XFIX STA 1 /STORE X-POSN ADA I 10 STC XFIX /NEXT X-POSN XSK I 15 /ANOTHER CAL PT? JMP FILLX /NOW FILL IN EACH OF THE 7 INTERVALS /BETWEEN SUCCESSIVE CALIB. PTS. WITH 8 /LINEARLY INTERPOLATED POINTS. SET I 17 3377 SET I 10 3400 SET I 11 -7 SET I 6 0 /HOLDS X-POSN INTERX, LDA I 10 /FORM DIFF TWEEN COM /NEXT PAIR PTS ADA I 17 /MUST BE>0!! APO JMP ERROR AZE I JMP ERROR /MUST BE>0! STC D ADD M10 STC 12 /8 INTERIOR PTS /1ST PT. 1/16 THRU INTERVAL, 2ND 3/16, /...,8TH 15/16 THRU INTERVAL. ADD ONE STA XFIX /NUM OF ABOVE/16 INTX1, MUL D SCR 4 /DIV 16 COM ADA 17 /INTERP. VOLT AD STC 1 XSK I 6 /NEXT INT. X-POS ADD 6 STA 1 LDA I 2 ADM XFIX /NEXT NUMERATOR XSK I 12 /ANOTHER INT.PT? JMP INTX1 /NEXT INT. PT. XSK I 11 /ANOTHER INTRVL? JMP INTERX /NEXT INTERVAL /NOW GO THRU AND FILL IN REMAINING /VOLTAGE ADDRESSES: ENTRIES NOT YET SET /=-1; FILL THEM WITH NEAREST (I.E., /LEFTMOST) DEFINED X-POSN. SINCE TOP OF /VOLTAGE ARRAY=2777 REPRESENTS MAX VOLTS /, WHICH IS LEFTMOST X-P0SN=0, MUST WORK /DOWN THRU ARRAY SET I 17 2777 CLR STC XFIX /RUNNING X-POSN INTX2, LDA 17 APO I /ALREADY FILLED? JMP .+4 /YES: SKIP LDA XFIX STA 17 /FILL WITH CUR X STC XFIX /RESET CUR X ADD M1 ADM 17 /DECREMENT V-ADR SAE I 2377 /LAST VOLT-AD? JMP INTX2 /DONE FILLING IN X-LOOKUP TABLE. /NOW FILL IN Y-LOOKUP TABLE, CREATING /MATRIX IN 2000-2377 IN TABLES LDF: /Y-VOLTAGE V SHOULD CORRESPOND TO LINE /NO. L IN (0,LINES-1) AT 2000+V. / /ASSUMES LOW VOLTAGE - LOW LINE NO. SET I 16 2777 /AD-1 Y-AVGS SET I 10 3000 SET I 6 /HOLDS LN NO. 0 SET I 17 3777 /AD-1 2000 SET 15 MLINES SNS 0 JMP .+5 SET I 1 YLABEL-4000 PROG1 /"Y-VOLTS:" JMP MESSAG /IF SW 0 UP /FILL VOLTAGE ADDRESSES FROM 1/2 LAST /INTERVAL TO 1/2 NEXT INTERVAL WITH /CURRENT LINE NO. INTERY, LDA I 16 SNS 0 JMP .+3 PROG1 JMP DECPUT /TYPE IF SW 0 UP XSK I 15 /LAST INTERVAL? JMP .+4 LDA I 2377 JMP FILLY-1 /FILL TO END LDA 16 COM ADA I 10 /VOLT. DIFF. APO JMP ERROR /MUST BE>0 SCR 1 /VOLT.DIF./2 AZE I JMP ERROR ADD C2000 /=ADR. TOP VOLT. ADA 16 STC VSTOP /FOR CURRENT LN FILLY, LDA 6 /CURRENT LN NO. STA I 17 /INTO NEXT V-AD LDA 17 SAE I VSTOP, 0 /LIMIT FOR CUR L JMP FILLY /KEEP GOING XSK I 6 /NEXT LINE NO. XSK 15 /DONE LAST ONE? JMP INTERY /DO NEXT ONE. / /END CALIBRATION SECTION. GO TO "VERIFY" / /"VERIFY" SECTION: PUTS WINDOW OF TEXT /WHEREVER SUBJECT FIXATES;USES CALIBR. /TEXT AND INHIBITS DATA STORAGE/OUTPUT. /PANEL KEY PROCEEDS TO "READ" TASK. SW /3 DOWN AT START SKIPS DIRECTLY TO "READ / VERIFY, SNS 3 JMP READ /SKIP VERIFY LDA I JMP STC STORE+1 /INHIBIT WRITING LDA I -5 /USE 5-CHAR STC MWIDE /WINDOW CENTERED ADD M2 /ON FIXATION PT. STC MLW ADD C4 /FIXING NON-0 JMP INIT /START DISPLAY / /THIS SECTION EXECUTES "READ" TASK. /CONTROL REACHES HERE ONLY FROM PANEL /INTERRUPT DURING "VERIFY" TASK. / READ, LDA I STA I 13 /DISINHIBIT STC STORE+1 /DATA WRITING STC 11 SET I 10 /INITIALIZE -144 /TIMERS 10,11 ADD POSN STC MLW ADD WIDTH COM STC MWIDE STC NPAGE /INIT NPAGE=0 ADD TEXBLK JMP NEWTEX /FETCH TEXT /WRITE PARAMETER HEADER BLOCK OUT AT /BEGINNING OF DATA FILE DATA SET I 13 2777 /START AT 3000 SET I 12 PGCODE-1 /PARAMETER ARRAY SET I 6 -13 LDA I 12 STA I 13 XSK I 6 JMP .-3 JMP RUNPAG /RUN 1ST PAGE / /CONTROL REACHES HERE WHEN TEXT-READING /COMPLETE. IF QBLK>=0, COMPREHENSION /TEST IS TO BE GIVEN. SIGNALLED BY AN /NPAGE=0 AFTER THE TWO 7777"S. IF NO /TEST, WRITE A THIRD 7777 AND QUIT. /BEFORE DOING EITHER, TYPE OUT TOTAL /READING TIME IN SECS.& TOTAL LINES READ / QUESTN, SET I 1 LABEL2-4000 PROG1 JMP MESSAG /"TIME" ADD 11 PROG1 JMP DECPUT /N SECS. PROG1 JMP MESSAG /" SECS FOR " ADD MLINES COM STC DLINES /TOTAL LINES ADD M1 /READ= ADD NPAGE /LINES*(NPAGE-1) MUL /-MLINES LINES ADD DLINES PROG1 JMP DECPUT /N LINES READ PROG1 JMP MESSAG /"LINES" /NOW DO QUESTIONS STC 10 /COUNT CORRECTS STC 11 /COUNT QUESTIONS ADD QBLK APO JMP FINISH /NO QUESTIONS JMP TEXTIN /FETCH QUESTIONS ADD C6001 STC PAGEPT ADD M20 STC DY /SINGLE SPACING STC PERDEF /ALL CHARS SHOWN ADD C360 STC YTOP /TOP DISPLAY STC YFIX /NO WRAP-UP JMP STORE /NPAGE=0 /ENCODE NEXT QUESTION. ANY NUMBER OF /TEXT LINES FOR DISPLAYING EACH QUESTION /AND ALTERNATIVE ANSWERS. FOLLOWING CR /AFTER LAST ALTERNATIVE SHOULD BE THE /CORRECT ANSWER RATHER THAN THE USUAL /. /A=LEFTMOST KEY, B=NEXT ON RIGHT,ETC. /AFTER CORRECT ANSWER (1 CHAR), HAVE /ANOTHER CR. THEN TEXT FOR NEXT QUESTION /ETC, WITH 0 AS USUAL = END FILE. / CLR NXQST, STC 6 /COUNT Q LINES SET 7 PAGEPT DTEXT SET I 3 LINADS+1777 /SETUP LINE ADRS SET I 4 LINCON+1777 /SETUP LINE CONT CODQST, JMP NXTCH /AS IN "SETPAG" LDH I 7 AZE I JMP FINISH /END FILE:DONE!! SAE I 57 /ANSWER OR TEXT? JMP EQUEST /=ANS.:END QUEST ADD C7000 STA I 4 /LINCON=ALL PER ADD 7 STA I 3 /LINE ADDR. JMP NXTCH LDH I 7 SAE I 43 JMP .-4 /FIND END OF LIN XSK I 6 /INC LINE COUNT JMP CODQST EQUEST, LDA 6 AZE I /NO.LINES>0? JMP ERROR COM STC MLINES /DISPLAY LINES IOB 6314 /CLEAR PANEL JMP SHPAGE /DISPLAY CLR IOB 6312 /READ PANEL AZE I JMP .-5 /NO RESP YET /HAVE RESP.I AC: COUNT ROTATIONS OF AC /UNTIL RESP BIT IN BIT 2 (LEFTMOST RESP) SET I 1 1 /COUNTS ROTS. SAE I 1000 SKP /NOY YET:ROTATE JMP .+4 XSK I 1 ROL 1 JMP .-6 /1 NOW HOLDS ASCII RESP CODE. 7 ENDS UP /AT LAST CR BEFORE ANSWER (IN SHPAGE) /COMPARE THEM; IF CORRECT, INCR. 10. /SAVE CORECT&OBTAINED RESPS IN LEFT HALF /AND RIGHT HALF OF NEXT DATA WORD. LDH I 7 SHD 4001 /RIGHT HALF 1 XSK I 10 /INC.NO.CORRECT XSK I 11 /" " QUESTIONS ROL 6 /CORRECT TO LH ADD 1 /OBTAINED LH JMP STORE DTEXT /NOW SKIP PAST CR AFTER ANSWER JMP NXTCH LDH I 7 SHD I 4300 JMP ERROR /NO FINAL CR LDA 7 STC PAGEPT /NEW PAGEPT JMP NXQST /DO NEXT ONE /NOW WRITE FINAL END-MARKER (7777) - /WILL BE THIRD IF NO QUESTIONS FINISH, LDA I 7777 JMP STORE /BEFORE QUITTING, MUST WRITE OUT LAST /DATA MBLK NOT YET BUFFERED OUT. ONLY /IF LAST END-MARKER TRIGGERED BUFFER, /WON"T NEED TO DO THIS. LDA 13 BSE I 7400 /WILL BE 7777 AZE I /IFF END MBLK JMP WDON