C -+-+-+-+-+ H A E N Y X . F T -+-+-+-+-+ C C MUST BE MAPPED INTO THE SAME LEVEL & OVERLAY WITH HAENYA ROUTINE C THERE ARE SOME TEMPORARY VARIABLES WHICH MAY NOT BE DESTROYED WHILE C SCANNING ONE DATA SET. ( T1,T2,T3,THRL,THRU) C TAKE CARE FOR CORRECT OVERLAY PLACEMENT. C C * OR 3-MAY-83 C * UP 15-NOV-83 C * UP 21-NOV-83 C * UP 19-DEC-83 C * UP 26-APR-84 C * UP 28-MAY-84 RIGHT/LEFT SACCADE SEPERATION C * UP 3-DEC-85 INCLUDES SCHMITT TRIGGER HANDLING REAL FUNCTION NYXYSM(ID,CH) C C RETURNS THE DATA POINTS FOR NYADD PLOT ROUTINE C INPUT PARAMETERS C INTEGER ID @ HOLDS THE INDEX TO THE DATA POINTS * ,CH @ HOLDS CHANNEL NUMBER (FROM 0 TO CHNLS+1) COMMON CNYA: REAL NORM (2,8) @ HOLDS FACTOR FOR ADDITION AND CONVERSION TO DEG. ( 1 TO 8 BUT CH IS 0 TO 7 SO CH+1!!) C C ALGORITHM USED: C NYXYSM:= .IF CH .EQ 2 .THEN NYTASM(ID) .ELIF C CH .LT CHNLS+STRIGS .THEN XYSAM(ID,CH) .ELIF C CH .EQ CHNLS+STRIGS .THEN XYSAM(ID,0)*NYSFAC+XYSAM(ID,1) .ELIF C CH .EQ CHNLS+STRIGS+1 .THEN NYXYSM(ID,CH-1,...)+XYSAM(ID,2)*TABLEF C .ELSE ID .FI C INCLUDE HAEBUF.FI INCLUDE HAEGSA.FI INCLUDE HAECNY.FI INCLUDE HABRK.FI REAL XYSAM,NYTASM INTEGER SACBEG,SACEND,NXTSAC,ERR,T1,T2,T3,J,K1 REAL THRL,THRU @ LOWER/UPPER THRESHOLD FOR DFIR FUNCTION DATA T1,T2,NXTSAC,THRL,THRU /3*1,2*0/ REAL COND EXTERNAL XYSAM,NYTASM,COND C C K1=CH+1 @ INDEX FOR CHANNEL# 1 ... 8 IF (CH.EQ.2) GOTO 101 @ SPECIAL HANDLING FOR TURN TABLE IF (CH.GE.CHNLS+STRIGS) GOTO 10 @ RESULT MUST BE COMPUTED NYXYSM=XYSAM(ID,CH)*NORM(K1) @ CONVERT TO DEGREES RETURN C C 10 CONTINUE GOTO (102,102,103), CH-CHNLS-STRIGS+1 C C 101 CONTINUE NYXYSM=NYTASM(ID)*NORM(K1) @ TABLE POSITION RETURN C C 102 CONTINUE IF (THRL.NE.THRU) GOTO 21 25 CONTINUE IF(.NOT.BREAK(6)) GOTO 22 @ SW 6 ASKS FOR TRIGGER THRESHOLD WRITE (TTO,1) @ ASK FOR THRESHOLD READ (TTI,2) THRL,THRU THRL=60. THRU=60. 22 THRL=COND(THRL.LT.0,THRL,-THRL) @ COMPUTE CORRECT SIGN THRU=COND(THRU.GE.0,THRU,-THRU) NXTSAC=MAX0(5,ID) T1=ID T2=T1 C 21 CONTINUE IF (ID.LT.T1) GOTO 25 @ TEST FOR NEW SCAN OF DATA POINTS IF (ID.GE.T2) GOTO 24 23 CONTINUE NYXYSM=(NYTASM(ID)-NYTASM(T1))*NORM(3) @ TURNTABLE POSITION AT THE END OF LAST SACCADE NYXYSM=XYSAM(ID,0)*NORM(1)+XYSAM(ID,1)*NORM(2) * +NYXYSM @ NYSTAGMUS+HEADPOSITION+TABLE GOTO 29 24 T3=NXTSAC @ HERE WE START SEARCHING FOR NEXT SACCADE CALL SACCAD (T3,ENDS*SAMRAT,THRL,THRU,SACBEG,SACEND,SACAMP, * NXTSAC,ERR) IF (ERR.NE.0) GOTO 23 C SEPERATION FOR LEFT/RIGHT TURNING IF (SACAMP.LE.0.AND.TABDIR.EQ.1HR) GOTO 24 @ WRONG DIRECTION IF (SACAMP.GE.0.AND.TABDIR.EQ.1HL) GOTO 24 @ WRONG DIRECTION T1=T2 @ SAVE THE END OF THE LAST BUT ONE SACCADE FOUND T2=SACEND @ THE END OF THE LAST SACCADE GOTO 23 29 CONTINUE NYXYSM=NYXYSM*NORM(K1) @ CONVERT TO DEGREES RETURN C C 103 CONTINUE NYXYSM=ID RETURN 1 FORMAT (' U/O SCHWELLENWERT (2F3.0) ',$) 2 FORMAT (2F3.0) END