C PROGRAM MILLER C*** PROGRAM TO PRESENT BINARY OPERATION C*** PROBLEMS AND MEASURE REACTION TIME. C COMMON IDSP,J1,IOP,J2,J3,IR,XM,ID,ISTIM,IRT DIMENSION IDSP(4),XM(4),ID(20),ISTIM(55),IRT(4,100) DIMENSION NDEV(2),NAME(4),IDEV(2),INAM(4) C IMS=-1984 I10=-1472 IX1= 200 IX0= 220 IX2= 240 IY = 0 LPT=-2032 NULL=-351 IBL=32*64 C 10 CONTINUE WRITE(1,91) CALL NAMES(NDEV,NAME,IDEV,INAM) IF(NDEV)12,11,12 11 NDEV=NULL 12 CONTINUE CALL IOPEN(IDEV,INAM) CALL OOPEN(NDEV,NAME) READ(1,93)ID DO 17 IB=1,4 DO 16 IT=1,100 IRT(IB,IT)=0 16 CONTINUE 17 CONTINUE C 18 CALL DISP9(IX1,IY,'BEGIN') IF(LSENS(2))19,19,18 19 CONTINUE CALL DISP9(IX1,IY,'BEGIN') IF(LSENS(2))19,19,20 C 20 CONTINUE DO 39 IB=1,4 CALL KWMEA(I10,0,0) READ(4,92)IOP IF(IOP-928)215,211,215 211 CONTINUE IOP=0 215 CONTINUE READ(4,92)ISTIM C*** BLANK FOR 1 SEC 21 IF(ICLCK(1)-100)21,21,22 C*** REST FOR 15 SEC 22 CALL DISP9(IX1,IY,' REST') IF(ICLCK(1)-1600)22,23,23 23 CONTINUE CALL KWMEA(I10,0,0) DO 37 IT=1,55 J1=LAND(ISTIM(IT),-64)+32 J2=ISTIM(IT)*64 I1=LRS(J1,6)-48 I2=LRS(J2,6)-48 I12=10*I1+I2+1 IR=0 IF(IOP)27,24,27 24 CONTINUE J1=ISTIM(IT) IF(I1)25,25,27 25 CONTINUE J1=LAND(J1,63)+IBL 27 CONTINUE C*** EVENT 2: SKIPS TO END OF BLOCK IF(LSENS(5))37,37,31 C*** BLANK 1 SEC BETWEEN TRIALS 31 CONTINUE IF(ICLCK(1)-100)31,31,32 C*** READY .5 SEC BETWEEN TRIALS 32 CALL DISP9(IX1,IY,'READY') IF(ICLCK(1)-150)32,33,33 C*** BLANK .5 SEC BEFOR TRIAL 33 CONTINUE IF(ICLCK(1)-200)33,34,34 34 CONTINUE C*** MEASURE TRIAL IN MILLESECONDS CALL KWMEA(IMS,0,0) C*** DISPLAY UNTIL SENSE LINE 1 GROUNDED 35 CONTINUE CALL DISP9(IX1,IY,J1) IF(LSENS(2))36,36,35 C*** SET IR=REACTION TIME[MS] 36 IR=ICLCK(1) C*** PUT CLOCK BACK TO 10 MS CALL KWMEA(I10,0,0) IRT(IB,I12)=IR C*** DO NEXT TRIAL IN BLOCK 37 CONTINUE C*** DO NEXT BLOCK 39 CONTINUE C C*** DONE FOR .5 SEC 40 CALL DISP9(IX1,IY,' DONE') IF(ICLCK(1)-50)40,41,41 C*** WRITE OUTPUT FILE 41 CONTINUE WRITE(3,91)INAM WRITE(3,93)ID WRITE(4,91)INAM WRITE(4,93)ID DO 45 J1=0,9 DO 44 J2=0,9 J3=J1*10+J2+1 IF(IRT(1,J3)+IRT(2,J3))43,44,43 43 CONTINUE C*** MED SETS IR=MEDIAN OF 4 BLOCKS CALL MED WRITE(4,94)J3-1,IR,(IRT(IB,J3),IB=1,4) WRITE(3,94)J3-1,IR,(IRT(IB,J3),IB=1,4) 44 CONTINUE 45 CONTINUE CALL OCLOSE GOTO 10 C 91 FORMAT(' FILE NAME:'3A2'.'A2) 92 FORMAT(A2) 93 FORMAT(' ID:'20A2) 94 FORMAT(I4'. '5I5) C C=============================== C C SUBROUTINE MED C SENTRY MED SMED, BLOCK 2 CONTINUE DO 63 IB=1,4 XM(IB)=IRT(IB,J3) IF(XM(IB))62,63,63 62 XM(IB)=XM(IB)+4096. 63 CONTINUE C C*** FROM HERE TO 69 IS JUST A SORT DO 67 IB=2,4 I1=IB-1 IF(XM(I1)-XM(IB))64,67,67 64 XK=XM(IB) XM(IB)=XM(I1) DO 65 L=2,I1 IF(XK-XM(IB-L))66,66,65 65 XM(IB-L+1)=XM(IB-L) C L=IB 66 XM(IB-L+1)=XK 67 CONTINUE C*** END OF SORT C 69 CONTINUE IR=(XM(2)+XM(3)+1.)/2. SRETRN MED END $