GE-115 Emulator
An Emulator of the General Electrics GE-115 computer
msl-timings.c
Go to the documentation of this file.
1 #include "msl-timings.h"
2 #include "msl-comments.h"
3 
4 #define MSL_STATES_INCLUDED_BY_MSL_TIMINGS
5 #include "msl-states.c"
6 #undef MSL_STATES_INCLUDED_BY_MSL_TIMINGS
7 
8 
9 struct msl_timing_state msl_timings[0xff] = {
10  /* 00 */ {state_00},
11  /* 01 */ { },
12  /* 02 */ { },
13  /* 03 */ { },
14  /* 04 */ { },
15  /* 05 */ { },
16  /* 06 */ { },
17  /* 07 */ { },
18  /* 08 */ {state_08},
19  /* 09 */ { },
20  /* 0a */ { },
21  /* 0b */ { },
22  /* 0c */ { },
23  /* 0d */ { },
24  /* 0e */ { },
25  /* 0f */ { },
26  /* 10 */ { },
27  /* 11 */ { },
28  /* 12 */ { },
29  /* 13 */ { },
30  /* 14 */ { },
31  /* 15 */ { },
32  /* 16 */ { },
33  /* 17 */ { },
34  /* 18 */ { },
35  /* 19 */ { },
36  /* 1a */ { },
37  /* 1b */ { },
38  /* 1c */ { },
39  /* 1d */ { },
40  /* 1e */ { },
41  /* 1f */ { },
42  /* 20 */ { },
43  /* 21 */ { },
44  /* 22 */ { },
45  /* 23 */ { },
46  /* 24 */ { },
47  /* 25 */ { },
48  /* 26 */ { },
49  /* 27 */ { },
50  /* 28 */ { },
51  /* 29 */ { },
52  /* 2a */ { },
53  /* 2b */ { },
54  /* 2c */ { },
55  /* 2d */ { },
56  /* 2e */ { },
57  /* 2f */ { },
58  /* 30 */ { },
59  /* 31 */ { },
60  /* 32 */ { },
61  /* 33 */ { },
62  /* 34 */ { },
63  /* 35 */ { },
64  /* 36 */ { },
65  /* 37 */ { },
66  /* 38 */ { },
67  /* 39 */ { },
68  /* 3a */ { },
69  /* 3b */ { },
70  /* 3c */ { },
71  /* 3d */ { },
72  /* 3e */ { },
73  /* 3f */ { },
74  /* 40 */ { },
75  /* 41 */ { },
76  /* 42 */ { },
77  /* 43 */ { },
78  /* 44 */ { },
79  /* 45 */ { },
80  /* 46 */ { },
81  /* 47 */ { },
82  /* 48 */ { },
83  /* 49 */ { },
84  /* 4a */ { },
85  /* 4b */ { },
86  /* 4c */ { },
87  /* 4d */ { },
88  /* 4e */ { },
89  /* 4f */ { },
90  /* 50 */ { },
91  /* 51 */ { },
92  /* 52 */ { },
93  /* 53 */ { },
94  /* 54 */ { },
95  /* 55 */ { },
96  /* 56 */ { },
97  /* 57 */ { },
98  /* 58 */ { },
99  /* 59 */ { },
100  /* 5a */ { },
101  /* 5b */ { },
102  /* 5c */ { },
103  /* 5d */ { },
104  /* 5e */ { },
105  /* 5f */ { },
106  /* 60 */ { },
107  /* 61 */ { },
108  /* 62 */ { },
109  /* 63 */ { },
110  /* 64 */ {state_64_65},
111  /* 65 */ {state_64_65},
112  /* 66 */ { },
113  /* 67 */ { },
114  /* 68 */ { },
115  /* 69 */ { },
116  /* 6a */ { },
117  /* 6b */ { },
118  /* 6c */ { },
119  /* 6d */ { },
120  /* 6e */ { },
121  /* 6f */ { },
122  /* 70 */ { },
123  /* 71 */ { },
124  /* 72 */ { },
125  /* 73 */ { },
126  /* 74 */ { },
127  /* 75 */ { },
128  /* 76 */ { },
129  /* 77 */ { },
130  /* 78 */ { },
131  /* 79 */ { },
132  /* 7a */ { },
133  /* 7b */ { },
134  /* 7c */ { },
135  /* 7d */ { },
136  /* 7e */ { },
137  /* 7f */ { },
138  /* 80 */ {state_80},
139  /* 81 */ { },
140  /* 82 */ { },
141  /* 83 */ { },
142  /* 84 */ { },
143  /* 85 */ { },
144  /* 86 */ { },
145  /* 87 */ { },
146  /* 88 */ { },
147  /* 89 */ { },
148  /* 8a */ { },
149  /* 8b */ { },
150  /* 8c */ { },
151  /* 8d */ { },
152  /* 8e */ { },
153  /* 8f */ { },
154  /* 90 */ { },
155  /* 91 */ { },
156  /* 92 */ { },
157  /* 93 */ { },
158  /* 94 */ { },
159  /* 95 */ { },
160  /* 96 */ { },
161  /* 97 */ { },
162  /* 98 */ { },
163  /* 99 */ { },
164  /* 9a */ { },
165  /* 9b */ { },
166  /* 9c */ { },
167  /* 9d */ { },
168  /* 9e */ { },
169  /* 9f */ { },
170  /* a0 */ { },
171  /* a1 */ { },
172  /* a2 */ { },
173  /* a3 */ { },
174  /* a4 */ { },
175  /* a5 */ { },
176  /* a6 */ { },
177  /* a7 */ { },
178  /* a8 */ {state_a8},
179  /* a9 */ {state_a9},
180  /* aa */ {state_aa},
181  /* ab */ {state_ab},
182  /* ac */ { },
183  /* ad */ { },
184  /* ae */ { },
185  /* af */ { },
186  /* b0 */ { },
187  /* b1 */ {state_b1},
188  /* b2 */ { },
189  /* b3 */ { },
190  /* b4 */ { },
191  /* b5 */ { },
192  /* b6 */ { },
193  /* b7 */ { },
194  /* b8 */ {state_b8},
195  /* b9 */ {state_b9},
196  /* ba */ { },
197  /* bb */ { },
198  /* bc */ { },
199  /* bd */ { },
200  /* be */ { },
201  /* bf */ { },
202  /* c0 */ { },
203  /* c1 */ { },
204  /* c2 */ { },
205  /* c3 */ { },
206  /* c4 */ { },
207  /* c5 */ { },
208  /* c6 */ { },
209  /* c7 */ { },
210  /* c8 */ {state_c8},
211  /* c9 */ { },
212  /* ca */ {state_ca},
213  /* cb */ { },
214  /* cc */ {state_cc},
215  /* cd */ { },
216  /* ce */ { },
217  /* cf */ { },
218  /* d0 */ { },
219  /* d1 */ { },
220  /* d2 */ { },
221  /* d3 */ { },
222  /* d4 */ { },
223  /* d5 */ { },
224  /* d6 */ { },
225  /* d7 */ { },
226  /* d8 */ {state_d8},
227  /* d9 */ {state_d9},
228  /* da */ {state_da},
229  /* db */ {state_db},
230  /* dc */ {state_dc},
231  /* dd */ { },
232  /* de */ { },
233  /* df */ { },
234  /* e0 */ {state_E0},
235  /* e1 */ { },
236  /* e2 */ {state_E2_E3},
237  /* e3 */ {state_E2_E3},
238  /* e4 */ {state_E4},
239  /* e5 */ {state_E5},
240  /* e6 */ {state_E6},
241  /* e7 */ {state_E7},
242  /* e8 */ { },
243  /* e9 */ { },
244  /* ea */ {state_ea},
245  /* eb */ {state_eb},
246  /* ec */ { },
247  /* ed */ { },
248  /* ee */ { },
249  /* ef */ { },
250  /* f0 */ { },
251  /* f1 */ { },
252  /* f2 */ { },
253  /* f3 */ { },
254  /* f4 */ { },
255  /* f5 */ { },
256  /* f6 */ { },
257  /* f7 */ { },
258  /* f8 */ { },
259  /* f9 */ { },
260  /* fa */ { },
261  /* fb */ { },
262  /* fc */ { },
263  /* fd */ { },
264  /* fe */ { },
265 };
266 
269  const char * comment;
270 };
271 
272 struct msl_command_comment comments[] = {
273 #define X(command , comment) { command , #command " - " comment },
275 #undef X
276 };
277 
279  for (int i = 0; i < sizeof(comments)/sizeof(struct msl_command_comment); i++) {
280  if (comments[i].command == command) {
281  return comments[i].comment;
282  }
283  }
284  return "[no comment]";
285 }
#define ENUMERATE_COMMANDS_COMMENTS
Definition: msl-comments.h:1
static const struct msl_timing_chart state_E7[]
Definition: msl-states.c:222
static const struct msl_timing_chart state_cc[]
Definition: msl-states.c:553
static const struct msl_timing_chart state_db[]
Definition: msl-states.c:488
static const struct msl_timing_chart state_80[]
Definition: msl-states.c:63
static const struct msl_timing_chart state_d8[]
Definition: msl-states.c:447
static const struct msl_timing_chart state_E2_E3[]
Definition: msl-states.c:103
static const struct msl_timing_chart state_ea[]
Definition: msl-states.c:771
static const struct msl_timing_chart state_E6[]
Definition: msl-states.c:173
static const struct msl_timing_chart state_c8[]
Definition: msl-states.c:424
static const struct msl_timing_chart state_ca[]
Definition: msl-states.c:583
static const struct msl_timing_chart state_08[]
Definition: msl-states.c:356
static const struct msl_timing_chart state_da[]
Definition: msl-states.c:477
static const struct msl_timing_chart state_aa[]
Definition: msl-states.c:627
static const struct msl_timing_chart state_E5[]
Definition: msl-states.c:197
static const struct msl_timing_chart state_E0[]
Definition: msl-states.c:128
static const struct msl_timing_chart state_d9[]
Definition: msl-states.c:464
static const struct msl_timing_chart state_ab[]
Definition: msl-states.c:652
static const struct msl_timing_chart state_a9[]
Definition: msl-states.c:608
static const struct msl_timing_chart state_E4[]
Definition: msl-states.c:146
static const struct msl_timing_chart state_64_65[]
Definition: msl-states.c:293
static const struct msl_timing_chart state_00[]
Definition: msl-states.c:329
static const struct msl_timing_chart state_b8[]
Definition: msl-states.c:681
static const struct msl_timing_chart state_a8[]
Definition: msl-states.c:595
static const struct msl_timing_chart state_b9[]
Definition: msl-states.c:746
static const struct msl_timing_chart state_dc[]
Definition: msl-states.c:516
static const struct msl_timing_chart state_b1[]
Definition: msl-states.c:700
static const struct msl_timing_chart state_eb[]
Definition: msl-states.c:799
struct msl_timing_state msl_timings[0xff]
Timing chart definitions.
Definition: msl-timings.c:9
const char * msl_comment_for_command(msl_command_cb command)
Definition: msl-timings.c:278
struct msl_command_comment comments[]
Definition: msl-timings.c:272
void(* msl_command_cb)(struct ge *)
Definition: msl-timings.h:6
msl_command_cb command
Definition: msl-timings.c:268
const char * comment
Definition: msl-timings.c:269
Timing chart.
Definition: msl-timings.h:52