SUBROUTINE KEYRUN C KEY TIMING FOR JENNY FLOOK COMMON IG,IM,IR,L1,MS,ICHR,ITIM,TIME,SGM DIMENSION IDEV(2),INAM(4),NDEV(2),NNAM(4) DIMENSION IG(40),MS(75),ICHR(75),ITIM(75),TIME(75),SGM(75) C SOPDEF CLLR 6132 SOPDEF CLCA 6137 SOPDEF CLEN 6134 SOPDEF CLSA 6135 C 1 CONTINUE IRB=1888 IPT=-1120 IST=-1376 IBL=-2016 C C C*** RUN SUBJECT AND COLLECT RAW DATA C 35 CONTINUE WRITE(1,91) 'ENTER ','MODEL ','SENTEN','CE: ' READ(1,95)MS C*** FIND LAST BLANK AND MARK IT AS ZERO DO 37 I=1,75 IF(MS(I)-IBL)36,37,36 36 L=I 37 CONTINUE C*** MS(L) IS LAST NON BLANK CHAR. IM=L+1 C*** IM IS LENGTH OF MODEL SENTENCE MS(IM)=0 WRITE(3,92)IM,-224,(MS(K),K=1,IM),IRB 38 READ(1,94)NT IF(NT-40)39,39,35 39 CONTINUE WRITE(1,91)' PUSH ','RETURN',' TO ST','ART: ' READ (1,95)IG WRITE(1,95) C CALL KWMEAS(2048,0,0) SCLLR SCLEN SCLSA STAD (4100 SCLLR STAD (7700 SCLLR SCLSA /CLEAR STATUS SCLA DO 49 L=1,NT I=0 40 I=I+1 IF(I-75)43,43,41 41 I=75 43 CONTINUE C WAIT UNTIL KRS SW,KSF SJMP W C IT=ICLCK(1) SCLCA SDCA \IT SCLSA SSPA CLA SDCA \IT STAD (4100 SCLLR STAD (7700 SCLLR SCLA CALL IPTIM(I,L,IT) C K=KRB SKRB SAND (177 SDCA \K C TLS=K (IFF BIT-0 IN RSR) SOSR SRAL SCLA STAD \K SSNL STLS SCLA 44 CONTINUE C*** CONVERT TO A1 FORMAT CALL IPCHR(I,L,K*64+32) C*** 13 IS 'RETURN' ; 125 IS 'ALTMODE' IF(K-13)45,47,45 45 IF(K-125)40,46,40 46 IF(I-1)49,49,40 47 CONTINUE C*** 'RETURN': WAIT,LINE FEED, IPCHR(0) SWT,TSF SJMP WT SOSR SRAL /CLR LINK IFF OSR(0)=0 SCLA STAD (212 /PUT OUT A LINE FEED SSNL STLS SCLA CALL IPCHR(I,L,0) I=I+1 DO 48 K=I,75 CALL IPCHR(K,L,IBL) 48 CALL IPTIM(K,L,0) 49 CONTINUE WRITE(1,91)' TAKE',' FIVE,',' HONEY' WRITE(1,95) L1=L-1 C*** L1 SENTENCES ACTUALLY TYPED IN C 60 CONTINUE C*** MARK CORRECTLY TYPED SENTENCES IR=0 DO 65 L=1,L1 IGL=IST C*** TEST FOR SENTENCE EQUALITY AND NO CLOCK OVERFLOW DO 63 I=1,IM IF(I-1)62,62,61 61 IF(IGTIM(I,L))62,64,62 62 IF(IGCHR(I,L)-MS(I))64,63,64 63 CONTINUE IGL=IPT IR=IR+1 64 IG(L)=IGL 65 CONTINUE WRITE(3,99)L1,IR C*** END OF FIRST PASS OF VALIDATION RETURN C C======================= C C SUBROUTINE KEYCUT C SENTRY KEYCU SKEYCU, BLOCK 2 C C*** CALCULATE MEANS AND STANDARD DEVIATIONS OF CORRECTLY TYPED SENTENCES CONTINUE IRB=1888 IPT=-1120 IST=-1376 IBL=-2016 ICE=224 C 67 READ(1,96)CUT WRITE(3,963)CUT IF(CUT)77,67,675 675 WRITE(3,97) C IR1=IR-1 IF(IR1)75,75,676 676 CONTINUE RI=1./FLOAT(IR) R1I=1./FLOAT(IR1) DO 69 I=2,IM SD=0 SD2=0 DO 688 L=1,L1 IF(IG(L)-IPT)688,678,688 678 DT=IGTIM(I,L) IF(DT)681,681,682 681 DT=DT+4096. 682 SD=SD+DT SD2=SD2+DT*DT 688 CONTINUE DUR=SD*RI VAR=(SD2-SD*DUR)*R1I SGM(I)=SQRT(VAR) TIME(I)=DUR 69 CONTINUE C C*** NOW, TEST FOR DATA OUT OF RANGE DO 74 I=2,IM DUR=TIME(I) SD=SGM(I) SD2=DUR+CUT*SD 691 CONTINUE WRITE(3,90)I,MS(I),DUR,SD,SD2 IF(SD)74,74,70 70 CONTINUE DO 73 L=1,L1 IF(IG(L)-IPT)73,71,73 71 CONTINUE IF(FLOAT(IGTIM(I,L))-SD2)73,72,72 72 IG(L)=ICE IR=IR-1 73 CONTINUE 74 CONTINUE C*** AFTER CUTTING OFF BAD SENTENCES 75 CONTINUE SRETRN KEYCUT C 77 CONTINUE DO 79 L=1,L1 IF(IG(L)-ICE)79,78,79 78 IG(L)=IPT IR=IR+1 79 CONTINUE CUT=-CUT GOTO 675 C C 90 FORMAT(I4'. ['A1'] '3F9.3) 91 FORMAT(12A6) 92 FORMAT(I3,A1' ['76A1) 94 FORMAT(' NUMBER OF TRIALS='I3) 95 FORMAT(75A1) 96 FORMAT(' CUT AT:'F5.0) 963 FORMAT(' CUT AT:'F5.2) 97 FORMAT(' I MEAN S.D. CUTPOINT') 99 FORMAT(' OUT OF'I4' LINES,'I4' WERE CORRECTLY TYPED.') END $