Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | C \ e-+-+-+-+-+ H A E N Y X . F T -+-+-+-+-+\r |
2 | C\r | |
3 | C MUST BE MAPPED INTO THE SAME LEVEL & OVERLAY WITH HAENYA ROUTINE\r | |
4 | C THERE ARE SOME TEMPORARY VARIABLES WHICH MAY NOT BE DESTROYED WHILE\r | |
5 | C SCANNING ONE DATA SET. ( T1,T2,T3,THRL,THRU)\r | |
6 | C TAKE CARE FOR CORRECT OVERLAY PLACEMENT.\r | |
7 | C\r | |
8 | C * OR 3-MAY-83\r | |
9 | C * UP 15-NOV-83\r | |
10 | C * UP 21-NOV-83\r | |
11 | C * UP 19-DEC-83\r | |
12 | C * UP 26-APR-84\r | |
13 | C * UP 28-MAY-84 RIGHT/LEFT SACCADE SEPERATION\r | |
14 | C * UP 3-DEC-85 INCLUDES SCHMITT TRIGGER HANDLING\r | |
15 | REAL FUNCTION NYXYSM(ID,CH)\r | |
16 | C\r | |
17 | C RETURNS THE DATA POINTS FOR NYADD PLOT ROUTINE\r | |
18 | C INPUT PARAMETERS\r | |
19 | C\r | |
20 | INTEGER ID @ HOLDS THE INDEX TO THE DATA POINTS\r | |
21 | * ,CH @ HOLDS CHANNEL NUMBER (FROM 0 TO CHNLS+1)\r | |
22 | 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!!)\r | |
23 | C\r | |
24 | C ALGORITHM USED:\r | |
25 | C NYXYSM:= .IF CH .EQ 2 .THEN NYTASM(ID) .ELIF\r | |
26 | C CH .LT CHNLS+STRIGS .THEN XYSAM(ID,CH) .ELIF\r | |
27 | C CH .EQ CHNLS+STRIGS .THEN XYSAM(ID,0)*NYSFAC+XYSAM(ID,1) .ELIF\r | |
28 | C CH .EQ CHNLS+STRIGS+1 .THEN NYXYSM(ID,CH-1,...)+XYSAM(ID,2)*TABLEF\r | |
29 | C .ELSE ID .FI\r | |
30 | C\r | |
31 | INCLUDE HAEBUF.FI\r | |
32 | INCLUDE HAEGSA.FI\r | |
33 | INCLUDE HAECNY.FI\r | |
34 | INCLUDE HABRK.FI\r | |
35 | \f REAL XYSAM,NYTASM\r | |
36 | INTEGER SACBEG,SACEND,NXTSAC,ERR,T1,T2,T3,J,K1\r | |
37 | REAL THRL,THRU @ LOWER/UPPER THRESHOLD FOR DFIR FUNCTION\r | |
38 | DATA T1,T2,NXTSAC,THRL,THRU /3*1,2*0/\r | |
39 | REAL COND\r | |
40 | EXTERNAL XYSAM,NYTASM,COND\r | |
41 | C\r | |
42 | \fC\r | |
43 | K1=CH+1 @ INDEX FOR CHANNEL# 1 ... 8\r | |
44 | IF (CH.EQ.2) GOTO 101 @ SPECIAL HANDLING FOR TURN TABLE\r | |
45 | IF (CH.GE.CHNLS+STRIGS) GOTO 10 @ RESULT MUST BE COMPUTED\r | |
46 | NYXYSM=XYSAM(ID,CH)*NORM(K1) @ CONVERT TO DEGREES\r | |
47 | RETURN\r | |
48 | C\r | |
49 | C\r | |
50 | 10 CONTINUE\r | |
51 | GOTO (102,102,103), CH-CHNLS-STRIGS+1\r | |
52 | C\r | |
53 | C\r | |
54 | 101 CONTINUE\r | |
55 | NYXYSM=NYTASM(ID)*NORM(K1) @ TABLE POSITION\r | |
56 | RETURN\r | |
57 | C\r | |
58 | C\r | |
59 | 102 CONTINUE\r | |
60 | IF (THRL.NE.THRU) GOTO 21\r | |
61 | 25 CONTINUE\r | |
62 | IF(.NOT.BREAK(6)) GOTO 22 @ SW 6 ASKS FOR TRIGGER THRESHOLD\r | |
63 | WRITE (TTO,1) @ ASK FOR THRESHOLD\r | |
64 | READ (TTI,2) THRL,THRU\r | |
65 | THRL=60.\r | |
66 | THRU=60.\r | |
67 | 22 THRL=COND(THRL.LT.0,THRL,-THRL) @ COMPUTE CORRECT SIGN\r | |
68 | THRU=COND(THRU.GE.0,THRU,-THRU)\r | |
69 | NXTSAC=MAX0(5,ID)\r | |
70 | T1=ID\r | |
71 | T2=T1\r | |
72 | C\r | |
73 | 21 CONTINUE\r | |
74 | IF (ID.LT.T1) GOTO 25 @ TEST FOR NEW SCAN OF DATA POINTS\r | |
75 | IF (ID.GE.T2) GOTO 24\r | |
76 | 23 CONTINUE\r | |
77 | NYXYSM=(NYTASM(ID)-NYTASM(T1))*NORM(3) @ TURNTABLE POSITION AT THE END OF LAST SACCADE\r | |
78 | NYXYSM=XYSAM(ID,0)*NORM(1)+XYSAM(ID,1)*NORM(2)\r | |
79 | * +NYXYSM @ NYSTAGMUS+HEADPOSITION+TABLE\r | |
80 | GOTO 29\r | |
81 | 24 T3=NXTSAC @ HERE WE START SEARCHING FOR NEXT SACCADE\r | |
82 | CALL SACCAD (T3,ENDS*SAMRAT,THRL,THRU,SACBEG,SACEND,SACAMP,\r | |
83 | * NXTSAC,ERR)\r | |
84 | IF (ERR.NE.0) GOTO 23\r | |
85 | C SEPERATION FOR LEFT/RIGHT TURNING\r | |
86 | IF (SACAMP.LE.0.AND.TABDIR.EQ.1HR) GOTO 24 @ WRONG DIRECTION\r | |
87 | IF (SACAMP.GE.0.AND.TABDIR.EQ.1HL) GOTO 24 @ WRONG DIRECTION\r | |
88 | T1=T2 @ SAVE THE END OF THE LAST BUT ONE SACCADE FOUND\r | |
89 | T2=SACEND @ THE END OF THE LAST SACCADE\r | |
90 | GOTO 23\r | |
91 | 29 CONTINUE\r | |
92 | NYXYSM=NYXYSM*NORM(K1) @ CONVERT TO DEGREES\r | |
93 | RETURN\r | |
94 | C\r | |
95 | C\r | |
96 | 103 CONTINUE\r | |
97 | NYXYSM=ID\r | |
98 | RETURN\r | |
99 | 1 FORMAT (' U/O SCHWELLENWERT (2F3.0) ',$)\r | |
100 | 2 FORMAT (2F3.0)\r | |
101 | END\r | |
102 | \1a\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 |