[3ae31e9] | 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 |
|
---|