|
|
1.1 root 1: #include "config.h"
2: #include "amiga.h"
3: #include "options.h"
4: #include <stdlib.h>
5: #include "memory.h"
6: #include "custom.h"
7: #include "newcpu.h"
8: #include "cputbl.h"
9: void op_1000(UWORD opcode)
10: {
11: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
12: ULONG dstreg = (opcode & 3584) >> 9;
13: {{ BYTE src = regs.d[srcreg];
14: { regs.v = regs.c = 0;
15: regs.z = ((BYTE)(src)) == 0;
16: regs.n = ((BYTE)(src)) < 0;
17: regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
18: }}}}
19: void op_1010(UWORD opcode)
20: {
21: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
22: ULONG dstreg = (opcode & 3584) >> 9;
23: {{ CPTR srca = regs.a[srcreg];
24: BYTE src = get_byte(srca);
25: { regs.v = regs.c = 0;
26: regs.z = ((BYTE)(src)) == 0;
27: regs.n = ((BYTE)(src)) < 0;
28: regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
29: }}}}
30: void op_1018(UWORD opcode)
31: {
32: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
33: ULONG dstreg = (opcode & 3584) >> 9;
34: {{ CPTR srca = regs.a[srcreg];
35: BYTE src = get_byte(srca);
36: { regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
37: { regs.v = regs.c = 0;
38: regs.z = ((BYTE)(src)) == 0;
39: regs.n = ((BYTE)(src)) < 0;
40: regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
41: }}}}}
42: void op_1020(UWORD opcode)
43: {
44: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
45: ULONG dstreg = (opcode & 3584) >> 9;
46: {{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
47: { CPTR srca = regs.a[srcreg];
48: BYTE src = get_byte(srca);
49: { regs.v = regs.c = 0;
50: regs.z = ((BYTE)(src)) == 0;
51: regs.n = ((BYTE)(src)) < 0;
52: regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
53: }}}}}
54: void op_1028(UWORD opcode)
55: {
56: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
57: ULONG dstreg = (opcode & 3584) >> 9;
58: {{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
59: BYTE src = get_byte(srca);
60: { regs.v = regs.c = 0;
61: regs.z = ((BYTE)(src)) == 0;
62: regs.n = ((BYTE)(src)) < 0;
63: regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
64: }}}}
65: void op_1030(UWORD opcode)
66: {
67: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
68: ULONG dstreg = (opcode & 3584) >> 9;
69: {{ CPTR srca = regs.a[srcreg];
70: UWORD srcdp = nextiword();
71: srca += (LONG)(BYTE)(srcdp & 0xFF);
72: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
73: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
74: srca += srcdpr;
75: { BYTE src = get_byte(srca);
76: { regs.v = regs.c = 0;
77: regs.z = ((BYTE)(src)) == 0;
78: regs.n = ((BYTE)(src)) < 0;
79: regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
80: }}}}}}
81: void op_1038(UWORD opcode)
82: {
83: ULONG dstreg = (opcode & 3584) >> 9;
84: {{ CPTR srca = (LONG)(WORD)nextiword();
85: BYTE src = get_byte(srca);
86: { regs.v = regs.c = 0;
87: regs.z = ((BYTE)(src)) == 0;
88: regs.n = ((BYTE)(src)) < 0;
89: regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
90: }}}}
91: void op_1039(UWORD opcode)
92: {
93: ULONG dstreg = (opcode & 3584) >> 9;
94: {{ CPTR srca = nextilong();
95: BYTE src = get_byte(srca);
96: { regs.v = regs.c = 0;
97: regs.z = ((BYTE)(src)) == 0;
98: regs.n = ((BYTE)(src)) < 0;
99: regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
100: }}}}
101: void op_103a(UWORD opcode)
102: {
103: ULONG dstreg = (opcode & 3584) >> 9;
104: {{ CPTR srca = m68k_getpc();
105: srca += (LONG)(WORD)nextiword();
106: { BYTE src = get_byte(srca);
107: { regs.v = regs.c = 0;
108: regs.z = ((BYTE)(src)) == 0;
109: regs.n = ((BYTE)(src)) < 0;
110: regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
111: }}}}}
112: void op_103b(UWORD opcode)
113: {
114: ULONG dstreg = (opcode & 3584) >> 9;
115: {{ CPTR srca = m68k_getpc();
116: UWORD srcdp = nextiword();
117: srca += (LONG)(BYTE)(srcdp & 0xFF);
118: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
119: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
120: srca += srcdpr;
121: { BYTE src = get_byte(srca);
122: { regs.v = regs.c = 0;
123: regs.z = ((BYTE)(src)) == 0;
124: regs.n = ((BYTE)(src)) < 0;
125: regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
126: }}}}}}
127: void op_103c(UWORD opcode)
128: {
129: ULONG dstreg = (opcode & 3584) >> 9;
130: {{ BYTE src = nextiword();
131: { regs.v = regs.c = 0;
132: regs.z = ((BYTE)(src)) == 0;
133: regs.n = ((BYTE)(src)) < 0;
134: regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
135: }}}}
136: void op_1080(UWORD opcode)
137: {
138: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
139: ULONG dstreg = (opcode & 3584) >> 9;
140: {{ BYTE src = regs.d[srcreg];
141: { CPTR dsta = regs.a[dstreg];
142: regs.v = regs.c = 0;
143: regs.z = ((BYTE)(src)) == 0;
144: regs.n = ((BYTE)(src)) < 0;
145: put_byte(dsta,src);
146: }}}}
147: void op_1090(UWORD opcode)
148: {
149: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
150: ULONG dstreg = (opcode & 3584) >> 9;
151: {{ CPTR srca = regs.a[srcreg];
152: BYTE src = get_byte(srca);
153: { CPTR dsta = regs.a[dstreg];
154: regs.v = regs.c = 0;
155: regs.z = ((BYTE)(src)) == 0;
156: regs.n = ((BYTE)(src)) < 0;
157: put_byte(dsta,src);
158: }}}}
159: void op_1098(UWORD opcode)
160: {
161: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
162: ULONG dstreg = (opcode & 3584) >> 9;
163: {{ CPTR srca = regs.a[srcreg];
164: BYTE src = get_byte(srca);
165: { regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
166: { CPTR dsta = regs.a[dstreg];
167: regs.v = regs.c = 0;
168: regs.z = ((BYTE)(src)) == 0;
169: regs.n = ((BYTE)(src)) < 0;
170: put_byte(dsta,src);
171: }}}}}
172: void op_10a0(UWORD opcode)
173: {
174: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
175: ULONG dstreg = (opcode & 3584) >> 9;
176: {{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
177: { CPTR srca = regs.a[srcreg];
178: BYTE src = get_byte(srca);
179: { CPTR dsta = regs.a[dstreg];
180: regs.v = regs.c = 0;
181: regs.z = ((BYTE)(src)) == 0;
182: regs.n = ((BYTE)(src)) < 0;
183: put_byte(dsta,src);
184: }}}}}
185: void op_10a8(UWORD opcode)
186: {
187: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
188: ULONG dstreg = (opcode & 3584) >> 9;
189: {{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
190: BYTE src = get_byte(srca);
191: { CPTR dsta = regs.a[dstreg];
192: regs.v = regs.c = 0;
193: regs.z = ((BYTE)(src)) == 0;
194: regs.n = ((BYTE)(src)) < 0;
195: put_byte(dsta,src);
196: }}}}
197: void op_10b0(UWORD opcode)
198: {
199: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
200: ULONG dstreg = (opcode & 3584) >> 9;
201: {{ CPTR srca = regs.a[srcreg];
202: UWORD srcdp = nextiword();
203: srca += (LONG)(BYTE)(srcdp & 0xFF);
204: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
205: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
206: srca += srcdpr;
207: { BYTE src = get_byte(srca);
208: { CPTR dsta = regs.a[dstreg];
209: regs.v = regs.c = 0;
210: regs.z = ((BYTE)(src)) == 0;
211: regs.n = ((BYTE)(src)) < 0;
212: put_byte(dsta,src);
213: }}}}}}
214: void op_10b8(UWORD opcode)
215: {
216: ULONG dstreg = (opcode & 3584) >> 9;
217: {{ CPTR srca = (LONG)(WORD)nextiword();
218: BYTE src = get_byte(srca);
219: { CPTR dsta = regs.a[dstreg];
220: regs.v = regs.c = 0;
221: regs.z = ((BYTE)(src)) == 0;
222: regs.n = ((BYTE)(src)) < 0;
223: put_byte(dsta,src);
224: }}}}
225: void op_10b9(UWORD opcode)
226: {
227: ULONG dstreg = (opcode & 3584) >> 9;
228: {{ CPTR srca = nextilong();
229: BYTE src = get_byte(srca);
230: { CPTR dsta = regs.a[dstreg];
231: regs.v = regs.c = 0;
232: regs.z = ((BYTE)(src)) == 0;
233: regs.n = ((BYTE)(src)) < 0;
234: put_byte(dsta,src);
235: }}}}
236: void op_10ba(UWORD opcode)
237: {
238: ULONG dstreg = (opcode & 3584) >> 9;
239: {{ CPTR srca = m68k_getpc();
240: srca += (LONG)(WORD)nextiword();
241: { BYTE src = get_byte(srca);
242: { CPTR dsta = regs.a[dstreg];
243: regs.v = regs.c = 0;
244: regs.z = ((BYTE)(src)) == 0;
245: regs.n = ((BYTE)(src)) < 0;
246: put_byte(dsta,src);
247: }}}}}
248: void op_10bb(UWORD opcode)
249: {
250: ULONG dstreg = (opcode & 3584) >> 9;
251: {{ CPTR srca = m68k_getpc();
252: UWORD srcdp = nextiword();
253: srca += (LONG)(BYTE)(srcdp & 0xFF);
254: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
255: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
256: srca += srcdpr;
257: { BYTE src = get_byte(srca);
258: { CPTR dsta = regs.a[dstreg];
259: regs.v = regs.c = 0;
260: regs.z = ((BYTE)(src)) == 0;
261: regs.n = ((BYTE)(src)) < 0;
262: put_byte(dsta,src);
263: }}}}}}
264: void op_10bc(UWORD opcode)
265: {
266: ULONG dstreg = (opcode & 3584) >> 9;
267: {{ BYTE src = nextiword();
268: { CPTR dsta = regs.a[dstreg];
269: regs.v = regs.c = 0;
270: regs.z = ((BYTE)(src)) == 0;
271: regs.n = ((BYTE)(src)) < 0;
272: put_byte(dsta,src);
273: }}}}
274: void op_10c0(UWORD opcode)
275: {
276: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
277: ULONG dstreg = (opcode & 3584) >> 9;
278: {{ BYTE src = regs.d[srcreg];
279: { CPTR dsta = regs.a[dstreg];
280: { regs.a[dstreg] += (dstreg == 7) ? 2 : 1;
281: regs.v = regs.c = 0;
282: regs.z = ((BYTE)(src)) == 0;
283: regs.n = ((BYTE)(src)) < 0;
284: put_byte(dsta,src);
285: }}}}}
286: void op_10d0(UWORD opcode)
287: {
288: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
289: ULONG dstreg = (opcode & 3584) >> 9;
290: {{ CPTR srca = regs.a[srcreg];
291: BYTE src = get_byte(srca);
292: { CPTR dsta = regs.a[dstreg];
293: { regs.a[dstreg] += (dstreg == 7) ? 2 : 1;
294: regs.v = regs.c = 0;
295: regs.z = ((BYTE)(src)) == 0;
296: regs.n = ((BYTE)(src)) < 0;
297: put_byte(dsta,src);
298: }}}}}
299: void op_10d8(UWORD opcode)
300: {
301: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
302: ULONG dstreg = (opcode & 3584) >> 9;
303: {{ CPTR srca = regs.a[srcreg];
304: BYTE src = get_byte(srca);
305: { regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
306: { CPTR dsta = regs.a[dstreg];
307: { regs.a[dstreg] += (dstreg == 7) ? 2 : 1;
308: regs.v = regs.c = 0;
309: regs.z = ((BYTE)(src)) == 0;
310: regs.n = ((BYTE)(src)) < 0;
311: put_byte(dsta,src);
312: }}}}}}
313: void op_10e0(UWORD opcode)
314: {
315: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
316: ULONG dstreg = (opcode & 3584) >> 9;
317: {{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
318: { CPTR srca = regs.a[srcreg];
319: BYTE src = get_byte(srca);
320: { CPTR dsta = regs.a[dstreg];
321: { regs.a[dstreg] += (dstreg == 7) ? 2 : 1;
322: regs.v = regs.c = 0;
323: regs.z = ((BYTE)(src)) == 0;
324: regs.n = ((BYTE)(src)) < 0;
325: put_byte(dsta,src);
326: }}}}}}
327: void op_10e8(UWORD opcode)
328: {
329: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
330: ULONG dstreg = (opcode & 3584) >> 9;
331: {{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
332: BYTE src = get_byte(srca);
333: { CPTR dsta = regs.a[dstreg];
334: { regs.a[dstreg] += (dstreg == 7) ? 2 : 1;
335: regs.v = regs.c = 0;
336: regs.z = ((BYTE)(src)) == 0;
337: regs.n = ((BYTE)(src)) < 0;
338: put_byte(dsta,src);
339: }}}}}
340: void op_10f0(UWORD opcode)
341: {
342: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
343: ULONG dstreg = (opcode & 3584) >> 9;
344: {{ CPTR srca = regs.a[srcreg];
345: UWORD srcdp = nextiword();
346: srca += (LONG)(BYTE)(srcdp & 0xFF);
347: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
348: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
349: srca += srcdpr;
350: { BYTE src = get_byte(srca);
351: { CPTR dsta = regs.a[dstreg];
352: { regs.a[dstreg] += (dstreg == 7) ? 2 : 1;
353: regs.v = regs.c = 0;
354: regs.z = ((BYTE)(src)) == 0;
355: regs.n = ((BYTE)(src)) < 0;
356: put_byte(dsta,src);
357: }}}}}}}
358: void op_10f8(UWORD opcode)
359: {
360: ULONG dstreg = (opcode & 3584) >> 9;
361: {{ CPTR srca = (LONG)(WORD)nextiword();
362: BYTE src = get_byte(srca);
363: { CPTR dsta = regs.a[dstreg];
364: { regs.a[dstreg] += (dstreg == 7) ? 2 : 1;
365: regs.v = regs.c = 0;
366: regs.z = ((BYTE)(src)) == 0;
367: regs.n = ((BYTE)(src)) < 0;
368: put_byte(dsta,src);
369: }}}}}
370: void op_10f9(UWORD opcode)
371: {
372: ULONG dstreg = (opcode & 3584) >> 9;
373: {{ CPTR srca = nextilong();
374: BYTE src = get_byte(srca);
375: { CPTR dsta = regs.a[dstreg];
376: { regs.a[dstreg] += (dstreg == 7) ? 2 : 1;
377: regs.v = regs.c = 0;
378: regs.z = ((BYTE)(src)) == 0;
379: regs.n = ((BYTE)(src)) < 0;
380: put_byte(dsta,src);
381: }}}}}
382: void op_10fa(UWORD opcode)
383: {
384: ULONG dstreg = (opcode & 3584) >> 9;
385: {{ CPTR srca = m68k_getpc();
386: srca += (LONG)(WORD)nextiword();
387: { BYTE src = get_byte(srca);
388: { CPTR dsta = regs.a[dstreg];
389: { regs.a[dstreg] += (dstreg == 7) ? 2 : 1;
390: regs.v = regs.c = 0;
391: regs.z = ((BYTE)(src)) == 0;
392: regs.n = ((BYTE)(src)) < 0;
393: put_byte(dsta,src);
394: }}}}}}
395: void op_10fb(UWORD opcode)
396: {
397: ULONG dstreg = (opcode & 3584) >> 9;
398: {{ CPTR srca = m68k_getpc();
399: UWORD srcdp = nextiword();
400: srca += (LONG)(BYTE)(srcdp & 0xFF);
401: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
402: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
403: srca += srcdpr;
404: { BYTE src = get_byte(srca);
405: { CPTR dsta = regs.a[dstreg];
406: { regs.a[dstreg] += (dstreg == 7) ? 2 : 1;
407: regs.v = regs.c = 0;
408: regs.z = ((BYTE)(src)) == 0;
409: regs.n = ((BYTE)(src)) < 0;
410: put_byte(dsta,src);
411: }}}}}}}
412: void op_10fc(UWORD opcode)
413: {
414: ULONG dstreg = (opcode & 3584) >> 9;
415: {{ BYTE src = nextiword();
416: { CPTR dsta = regs.a[dstreg];
417: { regs.a[dstreg] += (dstreg == 7) ? 2 : 1;
418: regs.v = regs.c = 0;
419: regs.z = ((BYTE)(src)) == 0;
420: regs.n = ((BYTE)(src)) < 0;
421: put_byte(dsta,src);
422: }}}}}
423: void op_1100(UWORD opcode)
424: {
425: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
426: ULONG dstreg = (opcode & 3584) >> 9;
427: {{ BYTE src = regs.d[srcreg];
428: { regs.a[dstreg] -= (dstreg == 7) ? 2 : 1;
429: { CPTR dsta = regs.a[dstreg];
430: regs.v = regs.c = 0;
431: regs.z = ((BYTE)(src)) == 0;
432: regs.n = ((BYTE)(src)) < 0;
433: put_byte(dsta,src);
434: }}}}}
435: void op_1110(UWORD opcode)
436: {
437: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
438: ULONG dstreg = (opcode & 3584) >> 9;
439: {{ CPTR srca = regs.a[srcreg];
440: BYTE src = get_byte(srca);
441: { regs.a[dstreg] -= (dstreg == 7) ? 2 : 1;
442: { CPTR dsta = regs.a[dstreg];
443: regs.v = regs.c = 0;
444: regs.z = ((BYTE)(src)) == 0;
445: regs.n = ((BYTE)(src)) < 0;
446: put_byte(dsta,src);
447: }}}}}
448: void op_1118(UWORD opcode)
449: {
450: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
451: ULONG dstreg = (opcode & 3584) >> 9;
452: {{ CPTR srca = regs.a[srcreg];
453: BYTE src = get_byte(srca);
454: { regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
455: { regs.a[dstreg] -= (dstreg == 7) ? 2 : 1;
456: { CPTR dsta = regs.a[dstreg];
457: regs.v = regs.c = 0;
458: regs.z = ((BYTE)(src)) == 0;
459: regs.n = ((BYTE)(src)) < 0;
460: put_byte(dsta,src);
461: }}}}}}
462: void op_1120(UWORD opcode)
463: {
464: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
465: ULONG dstreg = (opcode & 3584) >> 9;
466: {{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
467: { CPTR srca = regs.a[srcreg];
468: BYTE src = get_byte(srca);
469: { regs.a[dstreg] -= (dstreg == 7) ? 2 : 1;
470: { CPTR dsta = regs.a[dstreg];
471: regs.v = regs.c = 0;
472: regs.z = ((BYTE)(src)) == 0;
473: regs.n = ((BYTE)(src)) < 0;
474: put_byte(dsta,src);
475: }}}}}}
476: void op_1128(UWORD opcode)
477: {
478: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
479: ULONG dstreg = (opcode & 3584) >> 9;
480: {{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
481: BYTE src = get_byte(srca);
482: { regs.a[dstreg] -= (dstreg == 7) ? 2 : 1;
483: { CPTR dsta = regs.a[dstreg];
484: regs.v = regs.c = 0;
485: regs.z = ((BYTE)(src)) == 0;
486: regs.n = ((BYTE)(src)) < 0;
487: put_byte(dsta,src);
488: }}}}}
489: void op_1130(UWORD opcode)
490: {
491: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
492: ULONG dstreg = (opcode & 3584) >> 9;
493: {{ CPTR srca = regs.a[srcreg];
494: UWORD srcdp = nextiword();
495: srca += (LONG)(BYTE)(srcdp & 0xFF);
496: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
497: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
498: srca += srcdpr;
499: { BYTE src = get_byte(srca);
500: { regs.a[dstreg] -= (dstreg == 7) ? 2 : 1;
501: { CPTR dsta = regs.a[dstreg];
502: regs.v = regs.c = 0;
503: regs.z = ((BYTE)(src)) == 0;
504: regs.n = ((BYTE)(src)) < 0;
505: put_byte(dsta,src);
506: }}}}}}}
507: void op_1138(UWORD opcode)
508: {
509: ULONG dstreg = (opcode & 3584) >> 9;
510: {{ CPTR srca = (LONG)(WORD)nextiword();
511: BYTE src = get_byte(srca);
512: { regs.a[dstreg] -= (dstreg == 7) ? 2 : 1;
513: { CPTR dsta = regs.a[dstreg];
514: regs.v = regs.c = 0;
515: regs.z = ((BYTE)(src)) == 0;
516: regs.n = ((BYTE)(src)) < 0;
517: put_byte(dsta,src);
518: }}}}}
519: void op_1139(UWORD opcode)
520: {
521: ULONG dstreg = (opcode & 3584) >> 9;
522: {{ CPTR srca = nextilong();
523: BYTE src = get_byte(srca);
524: { regs.a[dstreg] -= (dstreg == 7) ? 2 : 1;
525: { CPTR dsta = regs.a[dstreg];
526: regs.v = regs.c = 0;
527: regs.z = ((BYTE)(src)) == 0;
528: regs.n = ((BYTE)(src)) < 0;
529: put_byte(dsta,src);
530: }}}}}
531: void op_113a(UWORD opcode)
532: {
533: ULONG dstreg = (opcode & 3584) >> 9;
534: {{ CPTR srca = m68k_getpc();
535: srca += (LONG)(WORD)nextiword();
536: { BYTE src = get_byte(srca);
537: { regs.a[dstreg] -= (dstreg == 7) ? 2 : 1;
538: { CPTR dsta = regs.a[dstreg];
539: regs.v = regs.c = 0;
540: regs.z = ((BYTE)(src)) == 0;
541: regs.n = ((BYTE)(src)) < 0;
542: put_byte(dsta,src);
543: }}}}}}
544: void op_113b(UWORD opcode)
545: {
546: ULONG dstreg = (opcode & 3584) >> 9;
547: {{ CPTR srca = m68k_getpc();
548: UWORD srcdp = nextiword();
549: srca += (LONG)(BYTE)(srcdp & 0xFF);
550: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
551: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
552: srca += srcdpr;
553: { BYTE src = get_byte(srca);
554: { regs.a[dstreg] -= (dstreg == 7) ? 2 : 1;
555: { CPTR dsta = regs.a[dstreg];
556: regs.v = regs.c = 0;
557: regs.z = ((BYTE)(src)) == 0;
558: regs.n = ((BYTE)(src)) < 0;
559: put_byte(dsta,src);
560: }}}}}}}
561: void op_113c(UWORD opcode)
562: {
563: ULONG dstreg = (opcode & 3584) >> 9;
564: {{ BYTE src = nextiword();
565: { regs.a[dstreg] -= (dstreg == 7) ? 2 : 1;
566: { CPTR dsta = regs.a[dstreg];
567: regs.v = regs.c = 0;
568: regs.z = ((BYTE)(src)) == 0;
569: regs.n = ((BYTE)(src)) < 0;
570: put_byte(dsta,src);
571: }}}}}
572: void op_1140(UWORD opcode)
573: {
574: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
575: ULONG dstreg = (opcode & 3584) >> 9;
576: {{ BYTE src = regs.d[srcreg];
577: { CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
578: regs.v = regs.c = 0;
579: regs.z = ((BYTE)(src)) == 0;
580: regs.n = ((BYTE)(src)) < 0;
581: put_byte(dsta,src);
582: }}}}
583: void op_1150(UWORD opcode)
584: {
585: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
586: ULONG dstreg = (opcode & 3584) >> 9;
587: {{ CPTR srca = regs.a[srcreg];
588: BYTE src = get_byte(srca);
589: { CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
590: regs.v = regs.c = 0;
591: regs.z = ((BYTE)(src)) == 0;
592: regs.n = ((BYTE)(src)) < 0;
593: put_byte(dsta,src);
594: }}}}
595: void op_1158(UWORD opcode)
596: {
597: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
598: ULONG dstreg = (opcode & 3584) >> 9;
599: {{ CPTR srca = regs.a[srcreg];
600: BYTE src = get_byte(srca);
601: { regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
602: { CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
603: regs.v = regs.c = 0;
604: regs.z = ((BYTE)(src)) == 0;
605: regs.n = ((BYTE)(src)) < 0;
606: put_byte(dsta,src);
607: }}}}}
608: void op_1160(UWORD opcode)
609: {
610: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
611: ULONG dstreg = (opcode & 3584) >> 9;
612: {{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
613: { CPTR srca = regs.a[srcreg];
614: BYTE src = get_byte(srca);
615: { CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
616: regs.v = regs.c = 0;
617: regs.z = ((BYTE)(src)) == 0;
618: regs.n = ((BYTE)(src)) < 0;
619: put_byte(dsta,src);
620: }}}}}
621: void op_1168(UWORD opcode)
622: {
623: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
624: ULONG dstreg = (opcode & 3584) >> 9;
625: {{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
626: BYTE src = get_byte(srca);
627: { CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
628: regs.v = regs.c = 0;
629: regs.z = ((BYTE)(src)) == 0;
630: regs.n = ((BYTE)(src)) < 0;
631: put_byte(dsta,src);
632: }}}}
633: void op_1170(UWORD opcode)
634: {
635: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
636: ULONG dstreg = (opcode & 3584) >> 9;
637: {{ CPTR srca = regs.a[srcreg];
638: UWORD srcdp = nextiword();
639: srca += (LONG)(BYTE)(srcdp & 0xFF);
640: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
641: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
642: srca += srcdpr;
643: { BYTE src = get_byte(srca);
644: { CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
645: regs.v = regs.c = 0;
646: regs.z = ((BYTE)(src)) == 0;
647: regs.n = ((BYTE)(src)) < 0;
648: put_byte(dsta,src);
649: }}}}}}
650: void op_1178(UWORD opcode)
651: {
652: ULONG dstreg = (opcode & 3584) >> 9;
653: {{ CPTR srca = (LONG)(WORD)nextiword();
654: BYTE src = get_byte(srca);
655: { CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
656: regs.v = regs.c = 0;
657: regs.z = ((BYTE)(src)) == 0;
658: regs.n = ((BYTE)(src)) < 0;
659: put_byte(dsta,src);
660: }}}}
661: void op_1179(UWORD opcode)
662: {
663: ULONG dstreg = (opcode & 3584) >> 9;
664: {{ CPTR srca = nextilong();
665: BYTE src = get_byte(srca);
666: { CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
667: regs.v = regs.c = 0;
668: regs.z = ((BYTE)(src)) == 0;
669: regs.n = ((BYTE)(src)) < 0;
670: put_byte(dsta,src);
671: }}}}
672: void op_117a(UWORD opcode)
673: {
674: ULONG dstreg = (opcode & 3584) >> 9;
675: {{ CPTR srca = m68k_getpc();
676: srca += (LONG)(WORD)nextiword();
677: { BYTE src = get_byte(srca);
678: { CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
679: regs.v = regs.c = 0;
680: regs.z = ((BYTE)(src)) == 0;
681: regs.n = ((BYTE)(src)) < 0;
682: put_byte(dsta,src);
683: }}}}}
684: void op_117b(UWORD opcode)
685: {
686: ULONG dstreg = (opcode & 3584) >> 9;
687: {{ CPTR srca = m68k_getpc();
688: UWORD srcdp = nextiword();
689: srca += (LONG)(BYTE)(srcdp & 0xFF);
690: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
691: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
692: srca += srcdpr;
693: { BYTE src = get_byte(srca);
694: { CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
695: regs.v = regs.c = 0;
696: regs.z = ((BYTE)(src)) == 0;
697: regs.n = ((BYTE)(src)) < 0;
698: put_byte(dsta,src);
699: }}}}}}
700: void op_117c(UWORD opcode)
701: {
702: ULONG dstreg = (opcode & 3584) >> 9;
703: {{ BYTE src = nextiword();
704: { CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
705: regs.v = regs.c = 0;
706: regs.z = ((BYTE)(src)) == 0;
707: regs.n = ((BYTE)(src)) < 0;
708: put_byte(dsta,src);
709: }}}}
710: void op_1180(UWORD opcode)
711: {
712: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
713: ULONG dstreg = (opcode & 3584) >> 9;
714: {{ BYTE src = regs.d[srcreg];
715: { CPTR dsta = regs.a[dstreg];
716: UWORD dstdp = nextiword();
717: dsta += (LONG)(BYTE)(dstdp & 0xFF);
718: { ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
719: if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
720: dsta += dstdpr;
721: regs.v = regs.c = 0;
722: regs.z = ((BYTE)(src)) == 0;
723: regs.n = ((BYTE)(src)) < 0;
724: put_byte(dsta,src);
725: }}}}}
726: void op_1190(UWORD opcode)
727: {
728: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
729: ULONG dstreg = (opcode & 3584) >> 9;
730: {{ CPTR srca = regs.a[srcreg];
731: BYTE src = get_byte(srca);
732: { CPTR dsta = regs.a[dstreg];
733: UWORD dstdp = nextiword();
734: dsta += (LONG)(BYTE)(dstdp & 0xFF);
735: { ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
736: if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
737: dsta += dstdpr;
738: regs.v = regs.c = 0;
739: regs.z = ((BYTE)(src)) == 0;
740: regs.n = ((BYTE)(src)) < 0;
741: put_byte(dsta,src);
742: }}}}}
743: void op_1198(UWORD opcode)
744: {
745: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
746: ULONG dstreg = (opcode & 3584) >> 9;
747: {{ CPTR srca = regs.a[srcreg];
748: BYTE src = get_byte(srca);
749: { regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
750: { CPTR dsta = regs.a[dstreg];
751: UWORD dstdp = nextiword();
752: dsta += (LONG)(BYTE)(dstdp & 0xFF);
753: { ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
754: if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
755: dsta += dstdpr;
756: regs.v = regs.c = 0;
757: regs.z = ((BYTE)(src)) == 0;
758: regs.n = ((BYTE)(src)) < 0;
759: put_byte(dsta,src);
760: }}}}}}
761: void op_11a0(UWORD opcode)
762: {
763: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
764: ULONG dstreg = (opcode & 3584) >> 9;
765: {{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
766: { CPTR srca = regs.a[srcreg];
767: BYTE src = get_byte(srca);
768: { CPTR dsta = regs.a[dstreg];
769: UWORD dstdp = nextiword();
770: dsta += (LONG)(BYTE)(dstdp & 0xFF);
771: { ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
772: if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
773: dsta += dstdpr;
774: regs.v = regs.c = 0;
775: regs.z = ((BYTE)(src)) == 0;
776: regs.n = ((BYTE)(src)) < 0;
777: put_byte(dsta,src);
778: }}}}}}
779: void op_11a8(UWORD opcode)
780: {
781: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
782: ULONG dstreg = (opcode & 3584) >> 9;
783: {{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
784: BYTE src = get_byte(srca);
785: { CPTR dsta = regs.a[dstreg];
786: UWORD dstdp = nextiword();
787: dsta += (LONG)(BYTE)(dstdp & 0xFF);
788: { ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
789: if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
790: dsta += dstdpr;
791: regs.v = regs.c = 0;
792: regs.z = ((BYTE)(src)) == 0;
793: regs.n = ((BYTE)(src)) < 0;
794: put_byte(dsta,src);
795: }}}}}
796: void op_11b0(UWORD opcode)
797: {
798: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
799: ULONG dstreg = (opcode & 3584) >> 9;
800: {{ CPTR srca = regs.a[srcreg];
801: UWORD srcdp = nextiword();
802: srca += (LONG)(BYTE)(srcdp & 0xFF);
803: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
804: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
805: srca += srcdpr;
806: { BYTE src = get_byte(srca);
807: { CPTR dsta = regs.a[dstreg];
808: UWORD dstdp = nextiword();
809: dsta += (LONG)(BYTE)(dstdp & 0xFF);
810: { ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
811: if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
812: dsta += dstdpr;
813: regs.v = regs.c = 0;
814: regs.z = ((BYTE)(src)) == 0;
815: regs.n = ((BYTE)(src)) < 0;
816: put_byte(dsta,src);
817: }}}}}}}
818: void op_11b8(UWORD opcode)
819: {
820: ULONG dstreg = (opcode & 3584) >> 9;
821: {{ CPTR srca = (LONG)(WORD)nextiword();
822: BYTE src = get_byte(srca);
823: { CPTR dsta = regs.a[dstreg];
824: UWORD dstdp = nextiword();
825: dsta += (LONG)(BYTE)(dstdp & 0xFF);
826: { ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
827: if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
828: dsta += dstdpr;
829: regs.v = regs.c = 0;
830: regs.z = ((BYTE)(src)) == 0;
831: regs.n = ((BYTE)(src)) < 0;
832: put_byte(dsta,src);
833: }}}}}
834: void op_11b9(UWORD opcode)
835: {
836: ULONG dstreg = (opcode & 3584) >> 9;
837: {{ CPTR srca = nextilong();
838: BYTE src = get_byte(srca);
839: { CPTR dsta = regs.a[dstreg];
840: UWORD dstdp = nextiword();
841: dsta += (LONG)(BYTE)(dstdp & 0xFF);
842: { ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
843: if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
844: dsta += dstdpr;
845: regs.v = regs.c = 0;
846: regs.z = ((BYTE)(src)) == 0;
847: regs.n = ((BYTE)(src)) < 0;
848: put_byte(dsta,src);
849: }}}}}
850: void op_11ba(UWORD opcode)
851: {
852: ULONG dstreg = (opcode & 3584) >> 9;
853: {{ CPTR srca = m68k_getpc();
854: srca += (LONG)(WORD)nextiword();
855: { BYTE src = get_byte(srca);
856: { CPTR dsta = regs.a[dstreg];
857: UWORD dstdp = nextiword();
858: dsta += (LONG)(BYTE)(dstdp & 0xFF);
859: { ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
860: if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
861: dsta += dstdpr;
862: regs.v = regs.c = 0;
863: regs.z = ((BYTE)(src)) == 0;
864: regs.n = ((BYTE)(src)) < 0;
865: put_byte(dsta,src);
866: }}}}}}
867: void op_11bb(UWORD opcode)
868: {
869: ULONG dstreg = (opcode & 3584) >> 9;
870: {{ CPTR srca = m68k_getpc();
871: UWORD srcdp = nextiword();
872: srca += (LONG)(BYTE)(srcdp & 0xFF);
873: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
874: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
875: srca += srcdpr;
876: { BYTE src = get_byte(srca);
877: { CPTR dsta = regs.a[dstreg];
878: UWORD dstdp = nextiword();
879: dsta += (LONG)(BYTE)(dstdp & 0xFF);
880: { ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
881: if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
882: dsta += dstdpr;
883: regs.v = regs.c = 0;
884: regs.z = ((BYTE)(src)) == 0;
885: regs.n = ((BYTE)(src)) < 0;
886: put_byte(dsta,src);
887: }}}}}}}
888: void op_11bc(UWORD opcode)
889: {
890: ULONG dstreg = (opcode & 3584) >> 9;
891: {{ BYTE src = nextiword();
892: { CPTR dsta = regs.a[dstreg];
893: UWORD dstdp = nextiword();
894: dsta += (LONG)(BYTE)(dstdp & 0xFF);
895: { ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
896: if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
897: dsta += dstdpr;
898: regs.v = regs.c = 0;
899: regs.z = ((BYTE)(src)) == 0;
900: regs.n = ((BYTE)(src)) < 0;
901: put_byte(dsta,src);
902: }}}}}
903: void op_11c0(UWORD opcode)
904: {
905: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
906: {{ BYTE src = regs.d[srcreg];
907: { CPTR dsta = (LONG)(WORD)nextiword();
908: regs.v = regs.c = 0;
909: regs.z = ((BYTE)(src)) == 0;
910: regs.n = ((BYTE)(src)) < 0;
911: put_byte(dsta,src);
912: }}}}
913: void op_11d0(UWORD opcode)
914: {
915: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
916: {{ CPTR srca = regs.a[srcreg];
917: BYTE src = get_byte(srca);
918: { CPTR dsta = (LONG)(WORD)nextiword();
919: regs.v = regs.c = 0;
920: regs.z = ((BYTE)(src)) == 0;
921: regs.n = ((BYTE)(src)) < 0;
922: put_byte(dsta,src);
923: }}}}
924: void op_11d8(UWORD opcode)
925: {
926: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
927: {{ CPTR srca = regs.a[srcreg];
928: BYTE src = get_byte(srca);
929: { regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
930: { CPTR dsta = (LONG)(WORD)nextiword();
931: regs.v = regs.c = 0;
932: regs.z = ((BYTE)(src)) == 0;
933: regs.n = ((BYTE)(src)) < 0;
934: put_byte(dsta,src);
935: }}}}}
936: void op_11e0(UWORD opcode)
937: {
938: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
939: {{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
940: { CPTR srca = regs.a[srcreg];
941: BYTE src = get_byte(srca);
942: { CPTR dsta = (LONG)(WORD)nextiword();
943: regs.v = regs.c = 0;
944: regs.z = ((BYTE)(src)) == 0;
945: regs.n = ((BYTE)(src)) < 0;
946: put_byte(dsta,src);
947: }}}}}
948: void op_11e8(UWORD opcode)
949: {
950: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
951: {{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
952: BYTE src = get_byte(srca);
953: { CPTR dsta = (LONG)(WORD)nextiword();
954: regs.v = regs.c = 0;
955: regs.z = ((BYTE)(src)) == 0;
956: regs.n = ((BYTE)(src)) < 0;
957: put_byte(dsta,src);
958: }}}}
959: void op_11f0(UWORD opcode)
960: {
961: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
962: {{ CPTR srca = regs.a[srcreg];
963: UWORD srcdp = nextiword();
964: srca += (LONG)(BYTE)(srcdp & 0xFF);
965: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
966: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
967: srca += srcdpr;
968: { BYTE src = get_byte(srca);
969: { CPTR dsta = (LONG)(WORD)nextiword();
970: regs.v = regs.c = 0;
971: regs.z = ((BYTE)(src)) == 0;
972: regs.n = ((BYTE)(src)) < 0;
973: put_byte(dsta,src);
974: }}}}}}
975: void op_11f8(UWORD opcode)
976: {
977: {{ CPTR srca = (LONG)(WORD)nextiword();
978: BYTE src = get_byte(srca);
979: { CPTR dsta = (LONG)(WORD)nextiword();
980: regs.v = regs.c = 0;
981: regs.z = ((BYTE)(src)) == 0;
982: regs.n = ((BYTE)(src)) < 0;
983: put_byte(dsta,src);
984: }}}}
985: void op_11f9(UWORD opcode)
986: {
987: {{ CPTR srca = nextilong();
988: BYTE src = get_byte(srca);
989: { CPTR dsta = (LONG)(WORD)nextiword();
990: regs.v = regs.c = 0;
991: regs.z = ((BYTE)(src)) == 0;
992: regs.n = ((BYTE)(src)) < 0;
993: put_byte(dsta,src);
994: }}}}
995: void op_11fa(UWORD opcode)
996: {
997: {{ CPTR srca = m68k_getpc();
998: srca += (LONG)(WORD)nextiword();
999: { BYTE src = get_byte(srca);
1000: { CPTR dsta = (LONG)(WORD)nextiword();
1001: regs.v = regs.c = 0;
1002: regs.z = ((BYTE)(src)) == 0;
1003: regs.n = ((BYTE)(src)) < 0;
1004: put_byte(dsta,src);
1005: }}}}}
1006: void op_11fb(UWORD opcode)
1007: {
1008: {{ CPTR srca = m68k_getpc();
1009: UWORD srcdp = nextiword();
1010: srca += (LONG)(BYTE)(srcdp & 0xFF);
1011: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
1012: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
1013: srca += srcdpr;
1014: { BYTE src = get_byte(srca);
1015: { CPTR dsta = (LONG)(WORD)nextiword();
1016: regs.v = regs.c = 0;
1017: regs.z = ((BYTE)(src)) == 0;
1018: regs.n = ((BYTE)(src)) < 0;
1019: put_byte(dsta,src);
1020: }}}}}}
1021: void op_11fc(UWORD opcode)
1022: {
1023: {{ BYTE src = nextiword();
1024: { CPTR dsta = (LONG)(WORD)nextiword();
1025: regs.v = regs.c = 0;
1026: regs.z = ((BYTE)(src)) == 0;
1027: regs.n = ((BYTE)(src)) < 0;
1028: put_byte(dsta,src);
1029: }}}}
1030: void op_13c0(UWORD opcode)
1031: {
1032: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
1033: {{ BYTE src = regs.d[srcreg];
1034: { CPTR dsta = nextilong();
1035: regs.v = regs.c = 0;
1036: regs.z = ((BYTE)(src)) == 0;
1037: regs.n = ((BYTE)(src)) < 0;
1038: put_byte(dsta,src);
1039: }}}}
1040: void op_13d0(UWORD opcode)
1041: {
1042: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
1043: {{ CPTR srca = regs.a[srcreg];
1044: BYTE src = get_byte(srca);
1045: { CPTR dsta = nextilong();
1046: regs.v = regs.c = 0;
1047: regs.z = ((BYTE)(src)) == 0;
1048: regs.n = ((BYTE)(src)) < 0;
1049: put_byte(dsta,src);
1050: }}}}
1051: void op_13d8(UWORD opcode)
1052: {
1053: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
1054: {{ CPTR srca = regs.a[srcreg];
1055: BYTE src = get_byte(srca);
1056: { regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
1057: { CPTR dsta = nextilong();
1058: regs.v = regs.c = 0;
1059: regs.z = ((BYTE)(src)) == 0;
1060: regs.n = ((BYTE)(src)) < 0;
1061: put_byte(dsta,src);
1062: }}}}}
1063: void op_13e0(UWORD opcode)
1064: {
1065: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
1066: {{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
1067: { CPTR srca = regs.a[srcreg];
1068: BYTE src = get_byte(srca);
1069: { CPTR dsta = nextilong();
1070: regs.v = regs.c = 0;
1071: regs.z = ((BYTE)(src)) == 0;
1072: regs.n = ((BYTE)(src)) < 0;
1073: put_byte(dsta,src);
1074: }}}}}
1075: void op_13e8(UWORD opcode)
1076: {
1077: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
1078: {{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
1079: BYTE src = get_byte(srca);
1080: { CPTR dsta = nextilong();
1081: regs.v = regs.c = 0;
1082: regs.z = ((BYTE)(src)) == 0;
1083: regs.n = ((BYTE)(src)) < 0;
1084: put_byte(dsta,src);
1085: }}}}
1086: void op_13f0(UWORD opcode)
1087: {
1088: ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
1089: {{ CPTR srca = regs.a[srcreg];
1090: UWORD srcdp = nextiword();
1091: srca += (LONG)(BYTE)(srcdp & 0xFF);
1092: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
1093: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
1094: srca += srcdpr;
1095: { BYTE src = get_byte(srca);
1096: { CPTR dsta = nextilong();
1097: regs.v = regs.c = 0;
1098: regs.z = ((BYTE)(src)) == 0;
1099: regs.n = ((BYTE)(src)) < 0;
1100: put_byte(dsta,src);
1101: }}}}}}
1102: void op_13f8(UWORD opcode)
1103: {
1104: {{ CPTR srca = (LONG)(WORD)nextiword();
1105: BYTE src = get_byte(srca);
1106: { CPTR dsta = nextilong();
1107: regs.v = regs.c = 0;
1108: regs.z = ((BYTE)(src)) == 0;
1109: regs.n = ((BYTE)(src)) < 0;
1110: put_byte(dsta,src);
1111: }}}}
1112: void op_13f9(UWORD opcode)
1113: {
1114: {{ CPTR srca = nextilong();
1115: BYTE src = get_byte(srca);
1116: { CPTR dsta = nextilong();
1117: regs.v = regs.c = 0;
1118: regs.z = ((BYTE)(src)) == 0;
1119: regs.n = ((BYTE)(src)) < 0;
1120: put_byte(dsta,src);
1121: }}}}
1122: void op_13fa(UWORD opcode)
1123: {
1124: {{ CPTR srca = m68k_getpc();
1125: srca += (LONG)(WORD)nextiword();
1126: { BYTE src = get_byte(srca);
1127: { CPTR dsta = nextilong();
1128: regs.v = regs.c = 0;
1129: regs.z = ((BYTE)(src)) == 0;
1130: regs.n = ((BYTE)(src)) < 0;
1131: put_byte(dsta,src);
1132: }}}}}
1133: void op_13fb(UWORD opcode)
1134: {
1135: {{ CPTR srca = m68k_getpc();
1136: UWORD srcdp = nextiword();
1137: srca += (LONG)(BYTE)(srcdp & 0xFF);
1138: { ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
1139: if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
1140: srca += srcdpr;
1141: { BYTE src = get_byte(srca);
1142: { CPTR dsta = nextilong();
1143: regs.v = regs.c = 0;
1144: regs.z = ((BYTE)(src)) == 0;
1145: regs.n = ((BYTE)(src)) < 0;
1146: put_byte(dsta,src);
1147: }}}}}}
1148: void op_13fc(UWORD opcode)
1149: {
1150: {{ BYTE src = nextiword();
1151: { CPTR dsta = nextilong();
1152: regs.v = regs.c = 0;
1153: regs.z = ((BYTE)(src)) == 0;
1154: regs.n = ((BYTE)(src)) < 0;
1155: put_byte(dsta,src);
1156: }}}}
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.