// 1 bits for the PC5 factor // 1 bits for the PC4 factor // 1 bits for the PC3 factor // 1 bits for the PC2 factor // 1 bits for the PD4 factor // 1 bits for the PD5 factor // 1 bits for the PD6 factor // 1 bits for the PD7 factor // total of 8 bits in the state address typedef struct FSM_State_s { unsigned PC5 : 1; unsigned PC4 : 1; unsigned PC3 : 1; unsigned PC2 : 1; unsigned PD4 : 1; unsigned PD5 : 1; unsigned PD6 : 1; unsigned PD7 : 1; } FSM_State_t; typedef unsigned int PTRType; typedef struct stateEntry_s { PTRType next; FSM_State_t state; } stateEntry_t; //----------| PC5 |---------- #define off 0 #define on 1 //----------| PC4 |---------- #define off 0 #define on 1 //----------| PC3 |---------- #define off 0 #define on 1 //----------| PC2 |---------- #define off 0 #define on 1 //----------| PD4 |---------- #define off 0 #define on 1 //----------| PD5 |---------- #define off 0 #define on 1 //----------| PD6 |---------- #define off 0 #define on 1 //----------| PD7 |---------- #define off 0 #define on 1 //------------ // PC5 , PC4 , PC3 , PC2 , PD4 , PD5 , PD6 , PD7 , stateEntry_t stateTable[] = { { 0, { off , off , off , off , off , off , off , off , }} /* index: 0 */ { 0, { on , off , off , off , off , off , off , off , }} /* index: 1 */ { 0, { off , on , off , off , off , off , off , off , }} /* index: 2 */ { 0, { on , on , off , off , off , off , off , off , }} /* index: 3 */ { 0, { off , off , on , off , off , off , off , off , }} /* index: 4 */ { 0, { on , off , on , off , off , off , off , off , }} /* index: 5 */ { 0, { off , on , on , off , off , off , off , off , }} /* index: 6 */ { 0, { on , on , on , off , off , off , off , off , }} /* index: 7 */ { 0, { off , off , off , on , off , off , off , off , }} /* index: 8 */ { 0, { on , off , off , on , off , off , off , off , }} /* index: 9 */ { 0, { off , on , off , on , off , off , off , off , }} /* index: 10 */ { 0, { on , on , off , on , off , off , off , off , }} /* index: 11 */ { 0, { off , off , on , on , off , off , off , off , }} /* index: 12 */ { 0, { on , off , on , on , off , off , off , off , }} /* index: 13 */ { 0, { off , on , on , on , off , off , off , off , }} /* index: 14 */ { 0, { on , on , on , on , off , off , off , off , }} /* index: 15 */ { 0, { off , off , off , off , on , off , off , off , }} /* index: 16 */ { 0, { on , off , off , off , on , off , off , off , }} /* index: 17 */ { 0, { off , on , off , off , on , off , off , off , }} /* index: 18 */ { 0, { on , on , off , off , on , off , off , off , }} /* index: 19 */ { 0, { off , off , on , off , on , off , off , off , }} /* index: 20 */ { 0, { on , off , on , off , on , off , off , off , }} /* index: 21 */ { 0, { off , on , on , off , on , off , off , off , }} /* index: 22 */ { 0, { on , on , on , off , on , off , off , off , }} /* index: 23 */ { 0, { off , off , off , on , on , off , off , off , }} /* index: 24 */ { 0, { on , off , off , on , on , off , off , off , }} /* index: 25 */ { 0, { off , on , off , on , on , off , off , off , }} /* index: 26 */ { 0, { on , on , off , on , on , off , off , off , }} /* index: 27 */ { 0, { off , off , on , on , on , off , off , off , }} /* index: 28 */ { 0, { on , off , on , on , on , off , off , off , }} /* index: 29 */ { 0, { off , on , on , on , on , off , off , off , }} /* index: 30 */ { 0, { on , on , on , on , on , off , off , off , }} /* index: 31 */ { 0, { off , off , off , off , off , on , off , off , }} /* index: 32 */ { 0, { on , off , off , off , off , on , off , off , }} /* index: 33 */ { 0, { off , on , off , off , off , on , off , off , }} /* index: 34 */ { 0, { on , on , off , off , off , on , off , off , }} /* index: 35 */ { 0, { off , off , on , off , off , on , off , off , }} /* index: 36 */ { 0, { on , off , on , off , off , on , off , off , }} /* index: 37 */ { 0, { off , on , on , off , off , on , off , off , }} /* index: 38 */ { 0, { on , on , on , off , off , on , off , off , }} /* index: 39 */ { 0, { off , off , off , on , off , on , off , off , }} /* index: 40 */ { 0, { on , off , off , on , off , on , off , off , }} /* index: 41 */ { 0, { off , on , off , on , off , on , off , off , }} /* index: 42 */ { 0, { on , on , off , on , off , on , off , off , }} /* index: 43 */ { 0, { off , off , on , on , off , on , off , off , }} /* index: 44 */ { 0, { on , off , on , on , off , on , off , off , }} /* index: 45 */ { 0, { off , on , on , on , off , on , off , off , }} /* index: 46 */ { 0, { on , on , on , on , off , on , off , off , }} /* index: 47 */ { 0, { off , off , off , off , on , on , off , off , }} /* index: 48 */ { 0, { on , off , off , off , on , on , off , off , }} /* index: 49 */ { 0, { off , on , off , off , on , on , off , off , }} /* index: 50 */ { 0, { on , on , off , off , on , on , off , off , }} /* index: 51 */ { 0, { off , off , on , off , on , on , off , off , }} /* index: 52 */ { 0, { on , off , on , off , on , on , off , off , }} /* index: 53 */ { 0, { off , on , on , off , on , on , off , off , }} /* index: 54 */ { 0, { on , on , on , off , on , on , off , off , }} /* index: 55 */ { 0, { off , off , off , on , on , on , off , off , }} /* index: 56 */ { 0, { on , off , off , on , on , on , off , off , }} /* index: 57 */ { 0, { off , on , off , on , on , on , off , off , }} /* index: 58 */ { 0, { on , on , off , on , on , on , off , off , }} /* index: 59 */ { 0, { off , off , on , on , on , on , off , off , }} /* index: 60 */ { 0, { on , off , on , on , on , on , off , off , }} /* index: 61 */ { 0, { off , on , on , on , on , on , off , off , }} /* index: 62 */ { 0, { on , on , on , on , on , on , off , off , }} /* index: 63 */ { 0, { off , off , off , off , off , off , on , off , }} /* index: 64 */ { 0, { on , off , off , off , off , off , on , off , }} /* index: 65 */ { 0, { off , on , off , off , off , off , on , off , }} /* index: 66 */ { 0, { on , on , off , off , off , off , on , off , }} /* index: 67 */ { 0, { off , off , on , off , off , off , on , off , }} /* index: 68 */ { 0, { on , off , on , off , off , off , on , off , }} /* index: 69 */ { 0, { off , on , on , off , off , off , on , off , }} /* index: 70 */ { 0, { on , on , on , off , off , off , on , off , }} /* index: 71 */ { 0, { off , off , off , on , off , off , on , off , }} /* index: 72 */ { 0, { on , off , off , on , off , off , on , off , }} /* index: 73 */ { 0, { off , on , off , on , off , off , on , off , }} /* index: 74 */ { 0, { on , on , off , on , off , off , on , off , }} /* index: 75 */ { 0, { off , off , on , on , off , off , on , off , }} /* index: 76 */ { 0, { on , off , on , on , off , off , on , off , }} /* index: 77 */ { 0, { off , on , on , on , off , off , on , off , }} /* index: 78 */ { 0, { on , on , on , on , off , off , on , off , }} /* index: 79 */ { 0, { off , off , off , off , on , off , on , off , }} /* index: 80 */ { 0, { on , off , off , off , on , off , on , off , }} /* index: 81 */ { 0, { off , on , off , off , on , off , on , off , }} /* index: 82 */ { 0, { on , on , off , off , on , off , on , off , }} /* index: 83 */ { 0, { off , off , on , off , on , off , on , off , }} /* index: 84 */ { 0, { on , off , on , off , on , off , on , off , }} /* index: 85 */ { 0, { off , on , on , off , on , off , on , off , }} /* index: 86 */ { 0, { on , on , on , off , on , off , on , off , }} /* index: 87 */ { 0, { off , off , off , on , on , off , on , off , }} /* index: 88 */ { 0, { on , off , off , on , on , off , on , off , }} /* index: 89 */ { 0, { off , on , off , on , on , off , on , off , }} /* index: 90 */ { 0, { on , on , off , on , on , off , on , off , }} /* index: 91 */ { 0, { off , off , on , on , on , off , on , off , }} /* index: 92 */ { 0, { on , off , on , on , on , off , on , off , }} /* index: 93 */ { 0, { off , on , on , on , on , off , on , off , }} /* index: 94 */ { 0, { on , on , on , on , on , off , on , off , }} /* index: 95 */ { 0, { off , off , off , off , off , on , on , off , }} /* index: 96 */ { 0, { on , off , off , off , off , on , on , off , }} /* index: 97 */ { 0, { off , on , off , off , off , on , on , off , }} /* index: 98 */ { 0, { on , on , off , off , off , on , on , off , }} /* index: 99 */ { 0, { off , off , on , off , off , on , on , off , }} /* index: 100 */ { 0, { on , off , on , off , off , on , on , off , }} /* index: 101 */ { 0, { off , on , on , off , off , on , on , off , }} /* index: 102 */ { 0, { on , on , on , off , off , on , on , off , }} /* index: 103 */ { 0, { off , off , off , on , off , on , on , off , }} /* index: 104 */ { 0, { on , off , off , on , off , on , on , off , }} /* index: 105 */ { 0, { off , on , off , on , off , on , on , off , }} /* index: 106 */ { 0, { on , on , off , on , off , on , on , off , }} /* index: 107 */ { 0, { off , off , on , on , off , on , on , off , }} /* index: 108 */ { 0, { on , off , on , on , off , on , on , off , }} /* index: 109 */ { 0, { off , on , on , on , off , on , on , off , }} /* index: 110 */ { 0, { on , on , on , on , off , on , on , off , }} /* index: 111 */ { 0, { off , off , off , off , on , on , on , off , }} /* index: 112 */ { 0, { on , off , off , off , on , on , on , off , }} /* index: 113 */ { 0, { off , on , off , off , on , on , on , off , }} /* index: 114 */ { 0, { on , on , off , off , on , on , on , off , }} /* index: 115 */ { 0, { off , off , on , off , on , on , on , off , }} /* index: 116 */ { 0, { on , off , on , off , on , on , on , off , }} /* index: 117 */ { 0, { off , on , on , off , on , on , on , off , }} /* index: 118 */ { 0, { on , on , on , off , on , on , on , off , }} /* index: 119 */ { 0, { off , off , off , on , on , on , on , off , }} /* index: 120 */ { 0, { on , off , off , on , on , on , on , off , }} /* index: 121 */ { 0, { off , on , off , on , on , on , on , off , }} /* index: 122 */ { 0, { on , on , off , on , on , on , on , off , }} /* index: 123 */ { 0, { off , off , on , on , on , on , on , off , }} /* index: 124 */ { 0, { on , off , on , on , on , on , on , off , }} /* index: 125 */ { 0, { off , on , on , on , on , on , on , off , }} /* index: 126 */ { 0, { on , on , on , on , on , on , on , off , }} /* index: 127 */ { 0, { off , off , off , off , off , off , off , on , }} /* index: 128 */ { 0, { on , off , off , off , off , off , off , on , }} /* index: 129 */ { 0, { off , on , off , off , off , off , off , on , }} /* index: 130 */ { 0, { on , on , off , off , off , off , off , on , }} /* index: 131 */ { 0, { off , off , on , off , off , off , off , on , }} /* index: 132 */ { 0, { on , off , on , off , off , off , off , on , }} /* index: 133 */ { 0, { off , on , on , off , off , off , off , on , }} /* index: 134 */ { 0, { on , on , on , off , off , off , off , on , }} /* index: 135 */ { 0, { off , off , off , on , off , off , off , on , }} /* index: 136 */ { 0, { on , off , off , on , off , off , off , on , }} /* index: 137 */ { 0, { off , on , off , on , off , off , off , on , }} /* index: 138 */ { 0, { on , on , off , on , off , off , off , on , }} /* index: 139 */ { 0, { off , off , on , on , off , off , off , on , }} /* index: 140 */ { 0, { on , off , on , on , off , off , off , on , }} /* index: 141 */ { 0, { off , on , on , on , off , off , off , on , }} /* index: 142 */ { 0, { on , on , on , on , off , off , off , on , }} /* index: 143 */ { 0, { off , off , off , off , on , off , off , on , }} /* index: 144 */ { 0, { on , off , off , off , on , off , off , on , }} /* index: 145 */ { 0, { off , on , off , off , on , off , off , on , }} /* index: 146 */ { 0, { on , on , off , off , on , off , off , on , }} /* index: 147 */ { 0, { off , off , on , off , on , off , off , on , }} /* index: 148 */ { 0, { on , off , on , off , on , off , off , on , }} /* index: 149 */ { 0, { off , on , on , off , on , off , off , on , }} /* index: 150 */ { 0, { on , on , on , off , on , off , off , on , }} /* index: 151 */ { 0, { off , off , off , on , on , off , off , on , }} /* index: 152 */ { 0, { on , off , off , on , on , off , off , on , }} /* index: 153 */ { 0, { off , on , off , on , on , off , off , on , }} /* index: 154 */ { 0, { on , on , off , on , on , off , off , on , }} /* index: 155 */ { 0, { off , off , on , on , on , off , off , on , }} /* index: 156 */ { 0, { on , off , on , on , on , off , off , on , }} /* index: 157 */ { 0, { off , on , on , on , on , off , off , on , }} /* index: 158 */ { 0, { on , on , on , on , on , off , off , on , }} /* index: 159 */ { 0, { off , off , off , off , off , on , off , on , }} /* index: 160 */ { 0, { on , off , off , off , off , on , off , on , }} /* index: 161 */ { 0, { off , on , off , off , off , on , off , on , }} /* index: 162 */ { 0, { on , on , off , off , off , on , off , on , }} /* index: 163 */ { 0, { off , off , on , off , off , on , off , on , }} /* index: 164 */ { 0, { on , off , on , off , off , on , off , on , }} /* index: 165 */ { 0, { off , on , on , off , off , on , off , on , }} /* index: 166 */ { 0, { on , on , on , off , off , on , off , on , }} /* index: 167 */ { 0, { off , off , off , on , off , on , off , on , }} /* index: 168 */ { 0, { on , off , off , on , off , on , off , on , }} /* index: 169 */ { 0, { off , on , off , on , off , on , off , on , }} /* index: 170 */ { 0, { on , on , off , on , off , on , off , on , }} /* index: 171 */ { 0, { off , off , on , on , off , on , off , on , }} /* index: 172 */ { 0, { on , off , on , on , off , on , off , on , }} /* index: 173 */ { 0, { off , on , on , on , off , on , off , on , }} /* index: 174 */ { 0, { on , on , on , on , off , on , off , on , }} /* index: 175 */ { 0, { off , off , off , off , on , on , off , on , }} /* index: 176 */ { 0, { on , off , off , off , on , on , off , on , }} /* index: 177 */ { 0, { off , on , off , off , on , on , off , on , }} /* index: 178 */ { 0, { on , on , off , off , on , on , off , on , }} /* index: 179 */ { 0, { off , off , on , off , on , on , off , on , }} /* index: 180 */ { 0, { on , off , on , off , on , on , off , on , }} /* index: 181 */ { 0, { off , on , on , off , on , on , off , on , }} /* index: 182 */ { 0, { on , on , on , off , on , on , off , on , }} /* index: 183 */ { 0, { off , off , off , on , on , on , off , on , }} /* index: 184 */ { 0, { on , off , off , on , on , on , off , on , }} /* index: 185 */ { 0, { off , on , off , on , on , on , off , on , }} /* index: 186 */ { 0, { on , on , off , on , on , on , off , on , }} /* index: 187 */ { 0, { off , off , on , on , on , on , off , on , }} /* index: 188 */ { 0, { on , off , on , on , on , on , off , on , }} /* index: 189 */ { 0, { off , on , on , on , on , on , off , on , }} /* index: 190 */ { 0, { on , on , on , on , on , on , off , on , }} /* index: 191 */ { 0, { off , off , off , off , off , off , on , on , }} /* index: 192 */ { 0, { on , off , off , off , off , off , on , on , }} /* index: 193 */ { 0, { off , on , off , off , off , off , on , on , }} /* index: 194 */ { 0, { on , on , off , off , off , off , on , on , }} /* index: 195 */ { 0, { off , off , on , off , off , off , on , on , }} /* index: 196 */ { 0, { on , off , on , off , off , off , on , on , }} /* index: 197 */ { 0, { off , on , on , off , off , off , on , on , }} /* index: 198 */ { 0, { on , on , on , off , off , off , on , on , }} /* index: 199 */ { 0, { off , off , off , on , off , off , on , on , }} /* index: 200 */ { 0, { on , off , off , on , off , off , on , on , }} /* index: 201 */ { 0, { off , on , off , on , off , off , on , on , }} /* index: 202 */ { 0, { on , on , off , on , off , off , on , on , }} /* index: 203 */ { 0, { off , off , on , on , off , off , on , on , }} /* index: 204 */ { 0, { on , off , on , on , off , off , on , on , }} /* index: 205 */ { 0, { off , on , on , on , off , off , on , on , }} /* index: 206 */ { 0, { on , on , on , on , off , off , on , on , }} /* index: 207 */ { 0, { off , off , off , off , on , off , on , on , }} /* index: 208 */ { 0, { on , off , off , off , on , off , on , on , }} /* index: 209 */ { 0, { off , on , off , off , on , off , on , on , }} /* index: 210 */ { 0, { on , on , off , off , on , off , on , on , }} /* index: 211 */ { 0, { off , off , on , off , on , off , on , on , }} /* index: 212 */ { 0, { on , off , on , off , on , off , on , on , }} /* index: 213 */ { 0, { off , on , on , off , on , off , on , on , }} /* index: 214 */ { 0, { on , on , on , off , on , off , on , on , }} /* index: 215 */ { 0, { off , off , off , on , on , off , on , on , }} /* index: 216 */ { 0, { on , off , off , on , on , off , on , on , }} /* index: 217 */ { 0, { off , on , off , on , on , off , on , on , }} /* index: 218 */ { 0, { on , on , off , on , on , off , on , on , }} /* index: 219 */ { 0, { off , off , on , on , on , off , on , on , }} /* index: 220 */ { 0, { on , off , on , on , on , off , on , on , }} /* index: 221 */ { 0, { off , on , on , on , on , off , on , on , }} /* index: 222 */ { 0, { on , on , on , on , on , off , on , on , }} /* index: 223 */ { 0, { off , off , off , off , off , on , on , on , }} /* index: 224 */ { 0, { on , off , off , off , off , on , on , on , }} /* index: 225 */ { 0, { off , on , off , off , off , on , on , on , }} /* index: 226 */ { 0, { on , on , off , off , off , on , on , on , }} /* index: 227 */ { 0, { off , off , on , off , off , on , on , on , }} /* index: 228 */ { 0, { on , off , on , off , off , on , on , on , }} /* index: 229 */ { 0, { off , on , on , off , off , on , on , on , }} /* index: 230 */ { 0, { on , on , on , off , off , on , on , on , }} /* index: 231 */ { 0, { off , off , off , on , off , on , on , on , }} /* index: 232 */ { 0, { on , off , off , on , off , on , on , on , }} /* index: 233 */ { 0, { off , on , off , on , off , on , on , on , }} /* index: 234 */ { 0, { on , on , off , on , off , on , on , on , }} /* index: 235 */ { 0, { off , off , on , on , off , on , on , on , }} /* index: 236 */ { 0, { on , off , on , on , off , on , on , on , }} /* index: 237 */ { 0, { off , on , on , on , off , on , on , on , }} /* index: 238 */ { 0, { on , on , on , on , off , on , on , on , }} /* index: 239 */ { 0, { off , off , off , off , on , on , on , on , }} /* index: 240 */ { 0, { on , off , off , off , on , on , on , on , }} /* index: 241 */ { 0, { off , on , off , off , on , on , on , on , }} /* index: 242 */ { 0, { on , on , off , off , on , on , on , on , }} /* index: 243 */ { 0, { off , off , on , off , on , on , on , on , }} /* index: 244 */ { 0, { on , off , on , off , on , on , on , on , }} /* index: 245 */ { 0, { off , on , on , off , on , on , on , on , }} /* index: 246 */ { 0, { on , on , on , off , on , on , on , on , }} /* index: 247 */ { 0, { off , off , off , on , on , on , on , on , }} /* index: 248 */ { 0, { on , off , off , on , on , on , on , on , }} /* index: 249 */ { 0, { off , on , off , on , on , on , on , on , }} /* index: 250 */ { 0, { on , on , off , on , on , on , on , on , }} /* index: 251 */ { 0, { off , off , on , on , on , on , on , on , }} /* index: 252 */ { 0, { on , off , on , on , on , on , on , on , }} /* index: 253 */ { 0, { off , on , on , on , on , on , on , on , }} /* index: 254 */ { 0, { on , on , on , on , on , on , on , on , }} /* index: 255 */ };