1 | Sequencer extensions to MIDAS-VII Rev 2 1988-11-07
|
---|
2 | --------------------------------- ----- ----------
|
---|
3 |
|
---|
4 |
|
---|
5 | struct seqent { /* sequence table entry -- 14 bytes per entry */
|
---|
6 |
|
---|
7 | unsigned short seqtime; /* time */
|
---|
8 | unsigned short seqact1; /* action 1 */
|
---|
9 | unsigned short seqdat1; /* action 1 data */
|
---|
10 | unsigned short seqact2; /* action 2 */
|
---|
11 | unsigned short seqdat2; /* action 2 data */
|
---|
12 | unsigned short seqact3; /* action 3 */
|
---|
13 | unsigned short seqdat3; /* action 3 data */
|
---|
14 | };
|
---|
15 |
|
---|
16 | #define NSLINES 1000 /* sequence table size */
|
---|
17 |
|
---|
18 | #define SQ_MACT 0x00FF /* action mask */
|
---|
19 | #define SQ_MOBJ 0xFF00 /* object mask */
|
---|
20 | #define SQ_MTYP 0xFF00 /* data type mask */
|
---|
21 | #define SQ_MVAL 0x00FF /* data value mask */
|
---|
22 |
|
---|
23 | #define SQ_CKEY 0x0001 /* Key closure */
|
---|
24 | #define SQ_RKEY 0x0002 /* Key release */
|
---|
25 | #define SQ_TKEY 0x0003 /* Key transient */
|
---|
26 | #define SQ_IKEY 0x0004 /* If key active*/
|
---|
27 |
|
---|
28 | #define SQ_STRG 0x0005 /* Trigger on */
|
---|
29 | #define SQ_CTRG 0x0006 /* Trigger off */
|
---|
30 | #define SQ_TTRG 0x0007 /* Trigger toggle */
|
---|
31 | #define SQ_ITRG 0x0008 /* If trigger active */
|
---|
32 |
|
---|
33 | #define SQ_SREG 0x0009 /* Set register */
|
---|
34 | #define SQ_IREQ 0x000A /* If register = */
|
---|
35 | #define SQ_IRLT 0x000B /* If register < */
|
---|
36 | #define SQ_IRGT 0x000C /* If register > */
|
---|
37 |
|
---|
38 | #define SQ_ISTM 0x000D /* If stimulus */
|
---|
39 | #define SQ_JUMP 0x000E /* Jump to */
|
---|
40 | #define SQ_STOP 0x000F /* Stop */
|
---|
41 |
|
---|
42 | #define SQ_REG 0x0000 /* register */
|
---|
43 | #define SQ_VAL 0x0100 /* value */
|
---|
44 | #define SQ_VLT 0x0200 /* voltage */
|
---|
45 | #define SQ_RND 0x0300 /* random */
|
---|
46 | |
---|
47 |
|
---|
48 | Kc nnn n nn SQ_CKEY 0x0001
|
---|
49 |
|
---|
50 | action SQ_CKEY Key closure
|
---|
51 | data key number (port, channel, key)
|
---|
52 |
|
---|
53 |
|
---|
54 | Kr nnn n nn SQ_RKEY 0x0002
|
---|
55 |
|
---|
56 | action SQ_RKEY Key release
|
---|
57 | data key number (port, channel, key)
|
---|
58 |
|
---|
59 |
|
---|
60 | Kt nnn n nn SQ_TKEY 0x0003
|
---|
61 |
|
---|
62 | action SQ_TKEY Key transient (closure / release)
|
---|
63 | data key number (port, channel, key)
|
---|
64 |
|
---|
65 |
|
---|
66 | If nnn n nn SQ_IKEY 0x0004
|
---|
67 |
|
---|
68 | action SQ_IKEY If key active
|
---|
69 | data key number (port, channel, key)
|
---|
70 |
|
---|
71 |
|
---|
72 | Trig on nn SQ_STRG 0x0005
|
---|
73 |
|
---|
74 | action SQ_STRG Trigger on
|
---|
75 | data trigger number
|
---|
76 |
|
---|
77 |
|
---|
78 | Trig off nn SQ_CTRG 0x0006
|
---|
79 |
|
---|
80 | action SQ_CTRG Trigger off
|
---|
81 | data trigger number
|
---|
82 |
|
---|
83 |
|
---|
84 | Trig tgl nn SQ_TTRG 0x0007
|
---|
85 |
|
---|
86 | action SQ_TTRG Toggle trigger (opposite state)
|
---|
87 | data trigger number
|
---|
88 |
|
---|
89 |
|
---|
90 | If trig nn SQ_ITRG 0x0008
|
---|
91 |
|
---|
92 | action SQ_ITRG If trigger active
|
---|
93 | data trigger number
|
---|
94 |
|
---|
95 | |
---|
96 |
|
---|
97 | Set Rnn=xxx SQ_SREG 0x0009
|
---|
98 |
|
---|
99 | action SQ_SREG Set register value
|
---|
100 | SQ_MOBJ register number
|
---|
101 |
|
---|
102 | data
|
---|
103 | Rnn SQ_REG register number
|
---|
104 | nn SQ_VAL value
|
---|
105 | Vn SQ_VLT voltage port
|
---|
106 | ?n SQ_RND scale
|
---|
107 |
|
---|
108 |
|
---|
109 | If Rnn=xxx SQ_IREQ 0x000A
|
---|
110 |
|
---|
111 | action SQ_IREQ Compare register -- equal to
|
---|
112 | SQ_MOBJ register number
|
---|
113 |
|
---|
114 | data
|
---|
115 | Rnn SQ_REG register number
|
---|
116 | nn SQ_VAL value
|
---|
117 | Vn SQ_VLT voltage port
|
---|
118 | ?n SQ_RND scale
|
---|
119 |
|
---|
120 |
|
---|
121 | If Rnn<xxx SQ_IRLT 0x000B
|
---|
122 |
|
---|
123 | action SQ_IRLT Compare register -- less than
|
---|
124 | SQ_MOBJ register number
|
---|
125 |
|
---|
126 | data
|
---|
127 | Rnn SQ_REG register number
|
---|
128 | nn SQ_VAL value
|
---|
129 | Vn SQ_VLT voltage port
|
---|
130 | ?n SQ_RND scale
|
---|
131 |
|
---|
132 |
|
---|
133 | If Rnn>xxx SQ_IRGT 0x000C
|
---|
134 |
|
---|
135 | action SQ_IRGT Compare register -- greater than
|
---|
136 | SQ_MOBJ register number
|
---|
137 |
|
---|
138 | data
|
---|
139 | Rnn SQ_REG register number
|
---|
140 | nn SQ_VAL value
|
---|
141 | Vn SQ_VLT voltage port
|
---|
142 | ?n SQ_RND scale
|
---|
143 |
|
---|
144 | |
---|
145 |
|
---|
146 | If stim act SQ_ISTM 0x000D
|
---|
147 |
|
---|
148 | action SQ_ISTM If sequence stimulus active
|
---|
149 | data -unused-
|
---|
150 |
|
---|
151 |
|
---|
152 | Jump to nnn SQ_JUMP 0x000E
|
---|
153 |
|
---|
154 | action SQ_JUMP Jump to sequence line
|
---|
155 | data line number 0..999
|
---|
156 |
|
---|
157 |
|
---|
158 | Stop SQ_STOP 0x000F
|
---|
159 |
|
---|
160 | action SQ_STOP Stop sequence
|
---|
161 | data -unused-
|
---|
162 |
|
---|