2 * Soft386 386/486 CPU Emulation Library
5 * Copyright (C) 2013 Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 /* INCLUDES *******************************************************************/
24 // #define WIN32_NO_STATUS
25 // #define _INC_WINDOWS
35 /* PUBLIC VARIABLES ***********************************************************/
37 SOFT386_OPCODE_HANDLER_PROC
38 Soft386ExtendedHandlers
[SOFT386_NUM_OPCODE_HANDLERS
] =
40 NULL
, // TODO: NOT IMPLEMENTED
41 NULL
, // TODO: NOT IMPLEMENTED
42 NULL
, // TODO: NOT IMPLEMENTED
43 NULL
, // TODO: NOT IMPLEMENTED
44 NULL
, // TODO: NOT IMPLEMENTED
45 NULL
, // TODO: NOT IMPLEMENTED
46 NULL
, // TODO: NOT IMPLEMENTED
47 NULL
, // TODO: NOT IMPLEMENTED
48 NULL
, // TODO: NOT IMPLEMENTED
49 NULL
, // TODO: NOT IMPLEMENTED
50 NULL
, // TODO: NOT IMPLEMENTED
51 NULL
, // TODO: NOT IMPLEMENTED
52 NULL
, // TODO: NOT IMPLEMENTED
53 NULL
, // TODO: NOT IMPLEMENTED
54 NULL
, // TODO: NOT IMPLEMENTED
55 NULL
, // TODO: NOT IMPLEMENTED
56 NULL
, // TODO: NOT IMPLEMENTED
57 NULL
, // TODO: NOT IMPLEMENTED
58 NULL
, // TODO: NOT IMPLEMENTED
59 NULL
, // TODO: NOT IMPLEMENTED
60 NULL
, // TODO: NOT IMPLEMENTED
61 NULL
, // TODO: NOT IMPLEMENTED
62 NULL
, // TODO: NOT IMPLEMENTED
63 NULL
, // TODO: NOT IMPLEMENTED
64 NULL
, // TODO: NOT IMPLEMENTED
65 NULL
, // TODO: NOT IMPLEMENTED
66 NULL
, // TODO: NOT IMPLEMENTED
67 NULL
, // TODO: NOT IMPLEMENTED
68 NULL
, // TODO: NOT IMPLEMENTED
69 NULL
, // TODO: NOT IMPLEMENTED
70 NULL
, // TODO: NOT IMPLEMENTED
71 NULL
, // TODO: NOT IMPLEMENTED
72 NULL
, // TODO: NOT IMPLEMENTED
73 NULL
, // TODO: NOT IMPLEMENTED
74 NULL
, // TODO: NOT IMPLEMENTED
75 NULL
, // TODO: NOT IMPLEMENTED
76 NULL
, // TODO: NOT IMPLEMENTED
77 NULL
, // TODO: NOT IMPLEMENTED
78 NULL
, // TODO: NOT IMPLEMENTED
79 NULL
, // TODO: NOT IMPLEMENTED
80 NULL
, // TODO: NOT IMPLEMENTED
81 NULL
, // TODO: NOT IMPLEMENTED
82 NULL
, // TODO: NOT IMPLEMENTED
83 NULL
, // TODO: NOT IMPLEMENTED
84 NULL
, // TODO: NOT IMPLEMENTED
85 NULL
, // TODO: NOT IMPLEMENTED
86 NULL
, // TODO: NOT IMPLEMENTED
87 NULL
, // TODO: NOT IMPLEMENTED
88 NULL
, // TODO: NOT IMPLEMENTED
89 NULL
, // TODO: NOT IMPLEMENTED
90 NULL
, // TODO: NOT IMPLEMENTED
91 NULL
, // TODO: NOT IMPLEMENTED
92 NULL
, // TODO: NOT IMPLEMENTED
93 NULL
, // TODO: NOT IMPLEMENTED
94 NULL
, // TODO: NOT IMPLEMENTED
95 NULL
, // TODO: NOT IMPLEMENTED
96 NULL
, // TODO: NOT IMPLEMENTED
97 NULL
, // TODO: NOT IMPLEMENTED
98 NULL
, // TODO: NOT IMPLEMENTED
99 NULL
, // TODO: NOT IMPLEMENTED
100 NULL
, // TODO: NOT IMPLEMENTED
101 NULL
, // TODO: NOT IMPLEMENTED
102 NULL
, // TODO: NOT IMPLEMENTED
103 NULL
, // TODO: NOT IMPLEMENTED
104 NULL
, // TODO: NOT IMPLEMENTED
105 NULL
, // TODO: NOT IMPLEMENTED
106 NULL
, // TODO: NOT IMPLEMENTED
107 NULL
, // TODO: NOT IMPLEMENTED
108 NULL
, // TODO: NOT IMPLEMENTED
109 NULL
, // TODO: NOT IMPLEMENTED
110 NULL
, // TODO: NOT IMPLEMENTED
111 NULL
, // TODO: NOT IMPLEMENTED
112 NULL
, // TODO: NOT IMPLEMENTED
113 NULL
, // TODO: NOT IMPLEMENTED
114 NULL
, // TODO: NOT IMPLEMENTED
115 NULL
, // TODO: NOT IMPLEMENTED
116 NULL
, // TODO: NOT IMPLEMENTED
117 NULL
, // TODO: NOT IMPLEMENTED
118 NULL
, // TODO: NOT IMPLEMENTED
119 NULL
, // TODO: NOT IMPLEMENTED
120 NULL
, // TODO: NOT IMPLEMENTED
121 NULL
, // TODO: NOT IMPLEMENTED
122 NULL
, // TODO: NOT IMPLEMENTED
123 NULL
, // TODO: NOT IMPLEMENTED
124 NULL
, // TODO: NOT IMPLEMENTED
125 NULL
, // TODO: NOT IMPLEMENTED
126 NULL
, // TODO: NOT IMPLEMENTED
127 NULL
, // TODO: NOT IMPLEMENTED
128 NULL
, // TODO: NOT IMPLEMENTED
129 NULL
, // TODO: NOT IMPLEMENTED
130 NULL
, // TODO: NOT IMPLEMENTED
131 NULL
, // TODO: NOT IMPLEMENTED
132 NULL
, // TODO: NOT IMPLEMENTED
133 NULL
, // TODO: NOT IMPLEMENTED
134 NULL
, // TODO: NOT IMPLEMENTED
135 NULL
, // TODO: NOT IMPLEMENTED
136 NULL
, // TODO: NOT IMPLEMENTED
137 NULL
, // TODO: NOT IMPLEMENTED
138 NULL
, // TODO: NOT IMPLEMENTED
139 NULL
, // TODO: NOT IMPLEMENTED
140 NULL
, // TODO: NOT IMPLEMENTED
141 NULL
, // TODO: NOT IMPLEMENTED
142 NULL
, // TODO: NOT IMPLEMENTED
143 NULL
, // TODO: NOT IMPLEMENTED
144 NULL
, // TODO: NOT IMPLEMENTED
145 NULL
, // TODO: NOT IMPLEMENTED
146 NULL
, // TODO: NOT IMPLEMENTED
147 NULL
, // TODO: NOT IMPLEMENTED
148 NULL
, // TODO: NOT IMPLEMENTED
149 NULL
, // TODO: NOT IMPLEMENTED
150 NULL
, // TODO: NOT IMPLEMENTED
151 NULL
, // TODO: NOT IMPLEMENTED
152 NULL
, // TODO: NOT IMPLEMENTED
153 NULL
, // TODO: NOT IMPLEMENTED
154 NULL
, // TODO: NOT IMPLEMENTED
155 NULL
, // TODO: NOT IMPLEMENTED
156 NULL
, // TODO: NOT IMPLEMENTED
157 NULL
, // TODO: NOT IMPLEMENTED
158 NULL
, // TODO: NOT IMPLEMENTED
159 NULL
, // TODO: NOT IMPLEMENTED
160 NULL
, // TODO: NOT IMPLEMENTED
161 NULL
, // TODO: NOT IMPLEMENTED
162 NULL
, // TODO: NOT IMPLEMENTED
163 NULL
, // TODO: NOT IMPLEMENTED
164 NULL
, // TODO: NOT IMPLEMENTED
165 NULL
, // TODO: NOT IMPLEMENTED
166 NULL
, // TODO: NOT IMPLEMENTED
167 NULL
, // TODO: NOT IMPLEMENTED
168 NULL
, // TODO: NOT IMPLEMENTED
169 NULL
, // TODO: NOT IMPLEMENTED
170 NULL
, // TODO: NOT IMPLEMENTED
171 NULL
, // TODO: NOT IMPLEMENTED
172 NULL
, // TODO: NOT IMPLEMENTED
173 NULL
, // TODO: NOT IMPLEMENTED
174 NULL
, // TODO: NOT IMPLEMENTED
175 NULL
, // TODO: NOT IMPLEMENTED
176 NULL
, // TODO: NOT IMPLEMENTED
177 NULL
, // TODO: NOT IMPLEMENTED
178 NULL
, // TODO: NOT IMPLEMENTED
179 NULL
, // TODO: NOT IMPLEMENTED
180 NULL
, // TODO: NOT IMPLEMENTED
181 NULL
, // TODO: NOT IMPLEMENTED
182 NULL
, // TODO: NOT IMPLEMENTED
183 NULL
, // TODO: NOT IMPLEMENTED
184 NULL
, // TODO: NOT IMPLEMENTED
185 NULL
, // TODO: NOT IMPLEMENTED
186 NULL
, // TODO: NOT IMPLEMENTED
187 NULL
, // TODO: NOT IMPLEMENTED
188 NULL
, // TODO: NOT IMPLEMENTED
189 NULL
, // TODO: NOT IMPLEMENTED
190 NULL
, // TODO: NOT IMPLEMENTED
191 NULL
, // TODO: NOT IMPLEMENTED
192 NULL
, // TODO: NOT IMPLEMENTED
193 NULL
, // TODO: NOT IMPLEMENTED
194 NULL
, // TODO: NOT IMPLEMENTED
195 NULL
, // TODO: NOT IMPLEMENTED
196 NULL
, // TODO: NOT IMPLEMENTED
197 NULL
, // TODO: NOT IMPLEMENTED
198 NULL
, // TODO: NOT IMPLEMENTED
199 NULL
, // TODO: NOT IMPLEMENTED
200 NULL
, // TODO: NOT IMPLEMENTED
201 NULL
, // TODO: NOT IMPLEMENTED
202 NULL
, // TODO: NOT IMPLEMENTED
203 NULL
, // TODO: NOT IMPLEMENTED
204 NULL
, // TODO: NOT IMPLEMENTED
205 NULL
, // TODO: NOT IMPLEMENTED
206 NULL
, // TODO: NOT IMPLEMENTED
207 NULL
, // TODO: NOT IMPLEMENTED
208 NULL
, // TODO: NOT IMPLEMENTED
209 NULL
, // TODO: NOT IMPLEMENTED
210 NULL
, // TODO: NOT IMPLEMENTED
211 NULL
, // TODO: NOT IMPLEMENTED
212 NULL
, // TODO: NOT IMPLEMENTED
213 NULL
, // TODO: NOT IMPLEMENTED
214 NULL
, // TODO: NOT IMPLEMENTED
215 NULL
, // TODO: NOT IMPLEMENTED
216 NULL
, // TODO: NOT IMPLEMENTED
217 NULL
, // TODO: NOT IMPLEMENTED
218 NULL
, // TODO: NOT IMPLEMENTED
219 NULL
, // TODO: NOT IMPLEMENTED
220 NULL
, // TODO: NOT IMPLEMENTED
221 NULL
, // TODO: NOT IMPLEMENTED
222 NULL
, // TODO: NOT IMPLEMENTED
223 NULL
, // TODO: NOT IMPLEMENTED
224 NULL
, // TODO: NOT IMPLEMENTED
225 NULL
, // TODO: NOT IMPLEMENTED
226 NULL
, // TODO: NOT IMPLEMENTED
227 NULL
, // TODO: NOT IMPLEMENTED
228 NULL
, // TODO: NOT IMPLEMENTED
229 NULL
, // TODO: NOT IMPLEMENTED
230 NULL
, // TODO: NOT IMPLEMENTED
231 NULL
, // TODO: NOT IMPLEMENTED
232 NULL
, // TODO: NOT IMPLEMENTED
233 NULL
, // TODO: NOT IMPLEMENTED
234 NULL
, // TODO: NOT IMPLEMENTED
235 NULL
, // TODO: NOT IMPLEMENTED
236 NULL
, // TODO: NOT IMPLEMENTED
237 NULL
, // TODO: NOT IMPLEMENTED
238 NULL
, // TODO: NOT IMPLEMENTED
239 NULL
, // TODO: NOT IMPLEMENTED
240 NULL
, // TODO: NOT IMPLEMENTED
241 NULL
, // TODO: NOT IMPLEMENTED
242 NULL
, // TODO: NOT IMPLEMENTED
243 NULL
, // TODO: NOT IMPLEMENTED
244 NULL
, // TODO: NOT IMPLEMENTED
245 NULL
, // TODO: NOT IMPLEMENTED
246 NULL
, // TODO: NOT IMPLEMENTED
247 NULL
, // TODO: NOT IMPLEMENTED
248 NULL
, // TODO: NOT IMPLEMENTED
249 NULL
, // TODO: NOT IMPLEMENTED
250 NULL
, // TODO: NOT IMPLEMENTED
251 NULL
, // TODO: NOT IMPLEMENTED
252 NULL
, // TODO: NOT IMPLEMENTED
253 NULL
, // TODO: NOT IMPLEMENTED
254 NULL
, // TODO: NOT IMPLEMENTED
255 NULL
, // TODO: NOT IMPLEMENTED
256 NULL
, // TODO: NOT IMPLEMENTED
257 NULL
, // TODO: NOT IMPLEMENTED
258 NULL
, // TODO: NOT IMPLEMENTED
259 NULL
, // TODO: NOT IMPLEMENTED
260 NULL
, // TODO: NOT IMPLEMENTED
261 NULL
, // TODO: NOT IMPLEMENTED
262 NULL
, // TODO: NOT IMPLEMENTED
263 NULL
, // TODO: NOT IMPLEMENTED
264 NULL
, // TODO: NOT IMPLEMENTED
265 NULL
, // TODO: NOT IMPLEMENTED
266 NULL
, // TODO: NOT IMPLEMENTED
267 NULL
, // TODO: NOT IMPLEMENTED
268 NULL
, // TODO: NOT IMPLEMENTED
269 NULL
, // TODO: NOT IMPLEMENTED
270 NULL
, // TODO: NOT IMPLEMENTED
271 NULL
, // TODO: NOT IMPLEMENTED
272 NULL
, // TODO: NOT IMPLEMENTED
273 NULL
, // TODO: NOT IMPLEMENTED
274 NULL
, // TODO: NOT IMPLEMENTED
275 NULL
, // TODO: NOT IMPLEMENTED
276 NULL
, // TODO: NOT IMPLEMENTED
277 NULL
, // TODO: NOT IMPLEMENTED
278 NULL
, // TODO: NOT IMPLEMENTED
279 NULL
, // TODO: NOT IMPLEMENTED
280 NULL
, // TODO: NOT IMPLEMENTED
281 NULL
, // TODO: NOT IMPLEMENTED
282 NULL
, // TODO: NOT IMPLEMENTED
283 NULL
, // TODO: NOT IMPLEMENTED
284 NULL
, // TODO: NOT IMPLEMENTED
285 NULL
, // TODO: NOT IMPLEMENTED
286 NULL
, // TODO: NOT IMPLEMENTED
287 NULL
, // TODO: NOT IMPLEMENTED
288 NULL
, // TODO: NOT IMPLEMENTED
289 NULL
, // TODO: NOT IMPLEMENTED
290 NULL
, // TODO: NOT IMPLEMENTED
291 NULL
, // TODO: NOT IMPLEMENTED
292 NULL
, // TODO: NOT IMPLEMENTED
293 NULL
, // TODO: NOT IMPLEMENTED
294 NULL
, // TODO: NOT IMPLEMENTED
295 NULL
, // TODO: NOT IMPLEMENTED
298 /* PUBLIC FUNCTIONS ***********************************************************/
300 SOFT386_OPCODE_HANDLER(Soft386OpcodeExtended
)
304 /* Fetch the second operation code */
305 if (!Soft386FetchByte(State
, &SecondOpcode
))
307 /* Exception occurred */
311 if (Soft386ExtendedHandlers
[SecondOpcode
] != NULL
)
313 /* Call the extended opcode handler */
314 return Soft386ExtendedHandlers
[SecondOpcode
](State
, SecondOpcode
);
318 /* This is not a valid opcode */
319 Soft386Exception(State
, SOFT386_EXCEPTION_UD
);