|
|
1.1 root 1: /*****************************************************************************/
2: /* Generator - Sega Genesis emulation - (c) James Ponder 1997-1998 */
3: /*****************************************************************************/
4: /* */
5: /* cpu68k-1.c */
6: /* */
7: /*****************************************************************************/
8:
9: #include "generator.h"
10: #include "cpu68k.h"
11: #include "mem68k.h"
12: #include "reg68k.h"
13:
14: #include "cpu68k-inline.h"
15:
16: #include <stdio.h>
17:
18: void cpu_op_222a(t_ipc *ipc) /* MOVE */ {
19: /* mask f1f8, bits 1000, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
20: int srcreg = (ipc->opcode >> 0) & 7;
21: uint8 srcdata = DATAREG(srcreg);
22: int dstreg = (ipc->opcode >> 9) & 7;
23: uint8 outdata = srcdata;
24:
25: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
26: PC+= 2;
27: }
28:
29: void cpu_op_222b(t_ipc *ipc) /* MOVE */ {
30: /* mask f1f8, bits 1000, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
31: int srcreg = (ipc->opcode >> 0) & 7;
32: uint8 srcdata = DATAREG(srcreg);
33: int dstreg = (ipc->opcode >> 9) & 7;
34: uint8 outdata = srcdata;
35:
36: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
37:
38: VFLAG = 0;
39: CFLAG = 0;
40: NFLAG = ((sint8)outdata) < 0;
41: ZFLAG = !outdata;
42: PC+= 2;
43: }
44:
45: void cpu_op_223a(t_ipc *ipc) /* MOVE */ {
46: /* mask f1f8, bits 1080, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
47: int srcreg = (ipc->opcode >> 0) & 7;
48: uint8 srcdata = DATAREG(srcreg);
49: int dstreg = (ipc->opcode >> 9) & 7;
50: uint32 dstaddr = ADDRREG(dstreg);
51: uint8 outdata = srcdata;
52:
53: storebyte(dstaddr, outdata);
54: PC+= 2;
55: }
56:
57: void cpu_op_223b(t_ipc *ipc) /* MOVE */ {
58: /* mask f1f8, bits 1080, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
59: int srcreg = (ipc->opcode >> 0) & 7;
60: uint8 srcdata = DATAREG(srcreg);
61: int dstreg = (ipc->opcode >> 9) & 7;
62: uint32 dstaddr = ADDRREG(dstreg);
63: uint8 outdata = srcdata;
64:
65: storebyte(dstaddr, outdata);
66:
67: VFLAG = 0;
68: CFLAG = 0;
69: NFLAG = ((sint8)outdata) < 0;
70: ZFLAG = !outdata;
71: PC+= 2;
72: }
73:
74: void cpu_op_224a(t_ipc *ipc) /* MOVE */ {
75: /* mask f1f8, bits 10c0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
76: int srcreg = (ipc->opcode >> 0) & 7;
77: uint8 srcdata = DATAREG(srcreg);
78: int dstreg = (ipc->opcode >> 9) & 7;
79: uint32 dstaddr = ADDRREG(dstreg);
80: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
81: uint8 outdata = srcdata;
82:
83: storebyte(dstaddr, outdata);
84: PC+= 2;
85: }
86:
87: void cpu_op_224b(t_ipc *ipc) /* MOVE */ {
88: /* mask f1f8, bits 10c0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
89: int srcreg = (ipc->opcode >> 0) & 7;
90: uint8 srcdata = DATAREG(srcreg);
91: int dstreg = (ipc->opcode >> 9) & 7;
92: uint32 dstaddr = ADDRREG(dstreg);
93: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
94: uint8 outdata = srcdata;
95:
96: storebyte(dstaddr, outdata);
97:
98: VFLAG = 0;
99: CFLAG = 0;
100: NFLAG = ((sint8)outdata) < 0;
101: ZFLAG = !outdata;
102: PC+= 2;
103: }
104:
105: void cpu_op_225a(t_ipc *ipc) /* MOVE */ {
106: /* mask f1f8, bits 1100, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
107: int srcreg = (ipc->opcode >> 0) & 7;
108: uint8 srcdata = DATAREG(srcreg);
109: int dstreg = (ipc->opcode >> 9) & 7;
110: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
111: uint8 outdata = srcdata;
112:
113: storebyte(dstaddr, outdata);
114: PC+= 2;
115: }
116:
117: void cpu_op_225b(t_ipc *ipc) /* MOVE */ {
118: /* mask f1f8, bits 1100, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
119: int srcreg = (ipc->opcode >> 0) & 7;
120: uint8 srcdata = DATAREG(srcreg);
121: int dstreg = (ipc->opcode >> 9) & 7;
122: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
123: uint8 outdata = srcdata;
124:
125: storebyte(dstaddr, outdata);
126:
127: VFLAG = 0;
128: CFLAG = 0;
129: NFLAG = ((sint8)outdata) < 0;
130: ZFLAG = !outdata;
131: PC+= 2;
132: }
133:
134: void cpu_op_226a(t_ipc *ipc) /* MOVE */ {
135: /* mask f1f8, bits 1140, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
136: int srcreg = (ipc->opcode >> 0) & 7;
137: uint8 srcdata = DATAREG(srcreg);
138: int dstreg = (ipc->opcode >> 9) & 7;
139: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
140: uint8 outdata = srcdata;
141:
142: storebyte(dstaddr, outdata);
143: PC+= 4;
144: }
145:
146: void cpu_op_226b(t_ipc *ipc) /* MOVE */ {
147: /* mask f1f8, bits 1140, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
148: int srcreg = (ipc->opcode >> 0) & 7;
149: uint8 srcdata = DATAREG(srcreg);
150: int dstreg = (ipc->opcode >> 9) & 7;
151: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
152: uint8 outdata = srcdata;
153:
154: storebyte(dstaddr, outdata);
155:
156: VFLAG = 0;
157: CFLAG = 0;
158: NFLAG = ((sint8)outdata) < 0;
159: ZFLAG = !outdata;
160: PC+= 4;
161: }
162:
163: void cpu_op_227a(t_ipc *ipc) /* MOVE */ {
164: /* mask f1f8, bits 1180, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
165: int srcreg = (ipc->opcode >> 0) & 7;
166: uint8 srcdata = DATAREG(srcreg);
167: int dstreg = (ipc->opcode >> 9) & 7;
168: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
169: uint8 outdata = srcdata;
170:
171: storebyte(dstaddr, outdata);
172: PC+= 4;
173: }
174:
175: void cpu_op_227b(t_ipc *ipc) /* MOVE */ {
176: /* mask f1f8, bits 1180, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
177: int srcreg = (ipc->opcode >> 0) & 7;
178: uint8 srcdata = DATAREG(srcreg);
179: int dstreg = (ipc->opcode >> 9) & 7;
180: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
181: uint8 outdata = srcdata;
182:
183: storebyte(dstaddr, outdata);
184:
185: VFLAG = 0;
186: CFLAG = 0;
187: NFLAG = ((sint8)outdata) < 0;
188: ZFLAG = !outdata;
189: PC+= 4;
190: }
191:
192: void cpu_op_228a(t_ipc *ipc) /* MOVE */ {
193: /* mask fff8, bits 11c0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
194: int srcreg = (ipc->opcode >> 0) & 7;
195: uint8 srcdata = DATAREG(srcreg);
196: uint32 dstaddr = ipc->dst;
197: uint8 outdata = srcdata;
198:
199: storebyte(dstaddr, outdata);
200: PC+= 4;
201: }
202:
203: void cpu_op_228b(t_ipc *ipc) /* MOVE */ {
204: /* mask fff8, bits 11c0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
205: int srcreg = (ipc->opcode >> 0) & 7;
206: uint8 srcdata = DATAREG(srcreg);
207: uint32 dstaddr = ipc->dst;
208: uint8 outdata = srcdata;
209:
210: storebyte(dstaddr, outdata);
211:
212: VFLAG = 0;
213: CFLAG = 0;
214: NFLAG = ((sint8)outdata) < 0;
215: ZFLAG = !outdata;
216: PC+= 4;
217: }
218:
219: void cpu_op_229a(t_ipc *ipc) /* MOVE */ {
220: /* mask fff8, bits 13c0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
221: int srcreg = (ipc->opcode >> 0) & 7;
222: uint8 srcdata = DATAREG(srcreg);
223: uint32 dstaddr = ipc->dst;
224: uint8 outdata = srcdata;
225:
226: storebyte(dstaddr, outdata);
227: PC+= 6;
228: }
229:
230: void cpu_op_229b(t_ipc *ipc) /* MOVE */ {
231: /* mask fff8, bits 13c0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 0, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
232: int srcreg = (ipc->opcode >> 0) & 7;
233: uint8 srcdata = DATAREG(srcreg);
234: uint32 dstaddr = ipc->dst;
235: uint8 outdata = srcdata;
236:
237: storebyte(dstaddr, outdata);
238:
239: VFLAG = 0;
240: CFLAG = 0;
241: NFLAG = ((sint8)outdata) < 0;
242: ZFLAG = !outdata;
243: PC+= 6;
244: }
245:
246: void cpu_op_230a(t_ipc *ipc) /* MOVE */ {
247: /* mask f1f8, bits 1008, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
248: int srcreg = (ipc->opcode >> 0) & 7;
249: uint8 srcdata = ADDRREG(srcreg);
250: int dstreg = (ipc->opcode >> 9) & 7;
251: uint8 outdata = srcdata;
252:
253: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
254: PC+= 2;
255: }
256:
257: void cpu_op_230b(t_ipc *ipc) /* MOVE */ {
258: /* mask f1f8, bits 1008, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
259: int srcreg = (ipc->opcode >> 0) & 7;
260: uint8 srcdata = ADDRREG(srcreg);
261: int dstreg = (ipc->opcode >> 9) & 7;
262: uint8 outdata = srcdata;
263:
264: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
265:
266: VFLAG = 0;
267: CFLAG = 0;
268: NFLAG = ((sint8)outdata) < 0;
269: ZFLAG = !outdata;
270: PC+= 2;
271: }
272:
273: void cpu_op_231a(t_ipc *ipc) /* MOVE */ {
274: /* mask f1f8, bits 1088, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
275: int srcreg = (ipc->opcode >> 0) & 7;
276: uint8 srcdata = ADDRREG(srcreg);
277: int dstreg = (ipc->opcode >> 9) & 7;
278: uint32 dstaddr = ADDRREG(dstreg);
279: uint8 outdata = srcdata;
280:
281: storebyte(dstaddr, outdata);
282: PC+= 2;
283: }
284:
285: void cpu_op_231b(t_ipc *ipc) /* MOVE */ {
286: /* mask f1f8, bits 1088, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
287: int srcreg = (ipc->opcode >> 0) & 7;
288: uint8 srcdata = ADDRREG(srcreg);
289: int dstreg = (ipc->opcode >> 9) & 7;
290: uint32 dstaddr = ADDRREG(dstreg);
291: uint8 outdata = srcdata;
292:
293: storebyte(dstaddr, outdata);
294:
295: VFLAG = 0;
296: CFLAG = 0;
297: NFLAG = ((sint8)outdata) < 0;
298: ZFLAG = !outdata;
299: PC+= 2;
300: }
301:
302: void cpu_op_232a(t_ipc *ipc) /* MOVE */ {
303: /* mask f1f8, bits 10c8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
304: int srcreg = (ipc->opcode >> 0) & 7;
305: uint8 srcdata = ADDRREG(srcreg);
306: int dstreg = (ipc->opcode >> 9) & 7;
307: uint32 dstaddr = ADDRREG(dstreg);
308: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
309: uint8 outdata = srcdata;
310:
311: storebyte(dstaddr, outdata);
312: PC+= 2;
313: }
314:
315: void cpu_op_232b(t_ipc *ipc) /* MOVE */ {
316: /* mask f1f8, bits 10c8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
317: int srcreg = (ipc->opcode >> 0) & 7;
318: uint8 srcdata = ADDRREG(srcreg);
319: int dstreg = (ipc->opcode >> 9) & 7;
320: uint32 dstaddr = ADDRREG(dstreg);
321: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
322: uint8 outdata = srcdata;
323:
324: storebyte(dstaddr, outdata);
325:
326: VFLAG = 0;
327: CFLAG = 0;
328: NFLAG = ((sint8)outdata) < 0;
329: ZFLAG = !outdata;
330: PC+= 2;
331: }
332:
333: void cpu_op_233a(t_ipc *ipc) /* MOVE */ {
334: /* mask f1f8, bits 1108, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
335: int srcreg = (ipc->opcode >> 0) & 7;
336: uint8 srcdata = ADDRREG(srcreg);
337: int dstreg = (ipc->opcode >> 9) & 7;
338: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
339: uint8 outdata = srcdata;
340:
341: storebyte(dstaddr, outdata);
342: PC+= 2;
343: }
344:
345: void cpu_op_233b(t_ipc *ipc) /* MOVE */ {
346: /* mask f1f8, bits 1108, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
347: int srcreg = (ipc->opcode >> 0) & 7;
348: uint8 srcdata = ADDRREG(srcreg);
349: int dstreg = (ipc->opcode >> 9) & 7;
350: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
351: uint8 outdata = srcdata;
352:
353: storebyte(dstaddr, outdata);
354:
355: VFLAG = 0;
356: CFLAG = 0;
357: NFLAG = ((sint8)outdata) < 0;
358: ZFLAG = !outdata;
359: PC+= 2;
360: }
361:
362: void cpu_op_234a(t_ipc *ipc) /* MOVE */ {
363: /* mask f1f8, bits 1148, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
364: int srcreg = (ipc->opcode >> 0) & 7;
365: uint8 srcdata = ADDRREG(srcreg);
366: int dstreg = (ipc->opcode >> 9) & 7;
367: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
368: uint8 outdata = srcdata;
369:
370: storebyte(dstaddr, outdata);
371: PC+= 4;
372: }
373:
374: void cpu_op_234b(t_ipc *ipc) /* MOVE */ {
375: /* mask f1f8, bits 1148, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
376: int srcreg = (ipc->opcode >> 0) & 7;
377: uint8 srcdata = ADDRREG(srcreg);
378: int dstreg = (ipc->opcode >> 9) & 7;
379: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
380: uint8 outdata = srcdata;
381:
382: storebyte(dstaddr, outdata);
383:
384: VFLAG = 0;
385: CFLAG = 0;
386: NFLAG = ((sint8)outdata) < 0;
387: ZFLAG = !outdata;
388: PC+= 4;
389: }
390:
391: void cpu_op_235a(t_ipc *ipc) /* MOVE */ {
392: /* mask f1f8, bits 1188, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
393: int srcreg = (ipc->opcode >> 0) & 7;
394: uint8 srcdata = ADDRREG(srcreg);
395: int dstreg = (ipc->opcode >> 9) & 7;
396: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
397: uint8 outdata = srcdata;
398:
399: storebyte(dstaddr, outdata);
400: PC+= 4;
401: }
402:
403: void cpu_op_235b(t_ipc *ipc) /* MOVE */ {
404: /* mask f1f8, bits 1188, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
405: int srcreg = (ipc->opcode >> 0) & 7;
406: uint8 srcdata = ADDRREG(srcreg);
407: int dstreg = (ipc->opcode >> 9) & 7;
408: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
409: uint8 outdata = srcdata;
410:
411: storebyte(dstaddr, outdata);
412:
413: VFLAG = 0;
414: CFLAG = 0;
415: NFLAG = ((sint8)outdata) < 0;
416: ZFLAG = !outdata;
417: PC+= 4;
418: }
419:
420: void cpu_op_236a(t_ipc *ipc) /* MOVE */ {
421: /* mask fff8, bits 11c8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
422: int srcreg = (ipc->opcode >> 0) & 7;
423: uint8 srcdata = ADDRREG(srcreg);
424: uint32 dstaddr = ipc->dst;
425: uint8 outdata = srcdata;
426:
427: storebyte(dstaddr, outdata);
428: PC+= 4;
429: }
430:
431: void cpu_op_236b(t_ipc *ipc) /* MOVE */ {
432: /* mask fff8, bits 11c8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
433: int srcreg = (ipc->opcode >> 0) & 7;
434: uint8 srcdata = ADDRREG(srcreg);
435: uint32 dstaddr = ipc->dst;
436: uint8 outdata = srcdata;
437:
438: storebyte(dstaddr, outdata);
439:
440: VFLAG = 0;
441: CFLAG = 0;
442: NFLAG = ((sint8)outdata) < 0;
443: ZFLAG = !outdata;
444: PC+= 4;
445: }
446:
447: void cpu_op_237a(t_ipc *ipc) /* MOVE */ {
448: /* mask fff8, bits 13c8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
449: int srcreg = (ipc->opcode >> 0) & 7;
450: uint8 srcdata = ADDRREG(srcreg);
451: uint32 dstaddr = ipc->dst;
452: uint8 outdata = srcdata;
453:
454: storebyte(dstaddr, outdata);
455: PC+= 6;
456: }
457:
458: void cpu_op_237b(t_ipc *ipc) /* MOVE */ {
459: /* mask fff8, bits 13c8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 1, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
460: int srcreg = (ipc->opcode >> 0) & 7;
461: uint8 srcdata = ADDRREG(srcreg);
462: uint32 dstaddr = ipc->dst;
463: uint8 outdata = srcdata;
464:
465: storebyte(dstaddr, outdata);
466:
467: VFLAG = 0;
468: CFLAG = 0;
469: NFLAG = ((sint8)outdata) < 0;
470: ZFLAG = !outdata;
471: PC+= 6;
472: }
473:
474: void cpu_op_238a(t_ipc *ipc) /* MOVE */ {
475: /* mask f1f8, bits 1010, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
476: int srcreg = (ipc->opcode >> 0) & 7;
477: uint32 srcaddr = ADDRREG(srcreg);
478: uint8 srcdata = fetchbyte(srcaddr);
479: int dstreg = (ipc->opcode >> 9) & 7;
480: uint8 outdata = srcdata;
481:
482: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
483: PC+= 2;
484: }
485:
486: void cpu_op_238b(t_ipc *ipc) /* MOVE */ {
487: /* mask f1f8, bits 1010, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
488: int srcreg = (ipc->opcode >> 0) & 7;
489: uint32 srcaddr = ADDRREG(srcreg);
490: uint8 srcdata = fetchbyte(srcaddr);
491: int dstreg = (ipc->opcode >> 9) & 7;
492: uint8 outdata = srcdata;
493:
494: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
495:
496: VFLAG = 0;
497: CFLAG = 0;
498: NFLAG = ((sint8)outdata) < 0;
499: ZFLAG = !outdata;
500: PC+= 2;
501: }
502:
503: void cpu_op_239a(t_ipc *ipc) /* MOVE */ {
504: /* mask f1f8, bits 1090, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
505: int srcreg = (ipc->opcode >> 0) & 7;
506: uint32 srcaddr = ADDRREG(srcreg);
507: uint8 srcdata = fetchbyte(srcaddr);
508: int dstreg = (ipc->opcode >> 9) & 7;
509: uint32 dstaddr = ADDRREG(dstreg);
510: uint8 outdata = srcdata;
511:
512: storebyte(dstaddr, outdata);
513: PC+= 2;
514: }
515:
516: void cpu_op_239b(t_ipc *ipc) /* MOVE */ {
517: /* mask f1f8, bits 1090, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
518: int srcreg = (ipc->opcode >> 0) & 7;
519: uint32 srcaddr = ADDRREG(srcreg);
520: uint8 srcdata = fetchbyte(srcaddr);
521: int dstreg = (ipc->opcode >> 9) & 7;
522: uint32 dstaddr = ADDRREG(dstreg);
523: uint8 outdata = srcdata;
524:
525: storebyte(dstaddr, outdata);
526:
527: VFLAG = 0;
528: CFLAG = 0;
529: NFLAG = ((sint8)outdata) < 0;
530: ZFLAG = !outdata;
531: PC+= 2;
532: }
533:
534: void cpu_op_240a(t_ipc *ipc) /* MOVE */ {
535: /* mask f1f8, bits 10d0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
536: int srcreg = (ipc->opcode >> 0) & 7;
537: uint32 srcaddr = ADDRREG(srcreg);
538: uint8 srcdata = fetchbyte(srcaddr);
539: int dstreg = (ipc->opcode >> 9) & 7;
540: uint32 dstaddr = ADDRREG(dstreg);
541: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
542: uint8 outdata = srcdata;
543:
544: storebyte(dstaddr, outdata);
545: PC+= 2;
546: }
547:
548: void cpu_op_240b(t_ipc *ipc) /* MOVE */ {
549: /* mask f1f8, bits 10d0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
550: int srcreg = (ipc->opcode >> 0) & 7;
551: uint32 srcaddr = ADDRREG(srcreg);
552: uint8 srcdata = fetchbyte(srcaddr);
553: int dstreg = (ipc->opcode >> 9) & 7;
554: uint32 dstaddr = ADDRREG(dstreg);
555: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
556: uint8 outdata = srcdata;
557:
558: storebyte(dstaddr, outdata);
559:
560: VFLAG = 0;
561: CFLAG = 0;
562: NFLAG = ((sint8)outdata) < 0;
563: ZFLAG = !outdata;
564: PC+= 2;
565: }
566:
567: void cpu_op_241a(t_ipc *ipc) /* MOVE */ {
568: /* mask f1f8, bits 1110, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
569: int srcreg = (ipc->opcode >> 0) & 7;
570: uint32 srcaddr = ADDRREG(srcreg);
571: uint8 srcdata = fetchbyte(srcaddr);
572: int dstreg = (ipc->opcode >> 9) & 7;
573: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
574: uint8 outdata = srcdata;
575:
576: storebyte(dstaddr, outdata);
577: PC+= 2;
578: }
579:
580: void cpu_op_241b(t_ipc *ipc) /* MOVE */ {
581: /* mask f1f8, bits 1110, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
582: int srcreg = (ipc->opcode >> 0) & 7;
583: uint32 srcaddr = ADDRREG(srcreg);
584: uint8 srcdata = fetchbyte(srcaddr);
585: int dstreg = (ipc->opcode >> 9) & 7;
586: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
587: uint8 outdata = srcdata;
588:
589: storebyte(dstaddr, outdata);
590:
591: VFLAG = 0;
592: CFLAG = 0;
593: NFLAG = ((sint8)outdata) < 0;
594: ZFLAG = !outdata;
595: PC+= 2;
596: }
597:
598: void cpu_op_242a(t_ipc *ipc) /* MOVE */ {
599: /* mask f1f8, bits 1150, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
600: int srcreg = (ipc->opcode >> 0) & 7;
601: uint32 srcaddr = ADDRREG(srcreg);
602: uint8 srcdata = fetchbyte(srcaddr);
603: int dstreg = (ipc->opcode >> 9) & 7;
604: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
605: uint8 outdata = srcdata;
606:
607: storebyte(dstaddr, outdata);
608: PC+= 4;
609: }
610:
611: void cpu_op_242b(t_ipc *ipc) /* MOVE */ {
612: /* mask f1f8, bits 1150, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
613: int srcreg = (ipc->opcode >> 0) & 7;
614: uint32 srcaddr = ADDRREG(srcreg);
615: uint8 srcdata = fetchbyte(srcaddr);
616: int dstreg = (ipc->opcode >> 9) & 7;
617: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
618: uint8 outdata = srcdata;
619:
620: storebyte(dstaddr, outdata);
621:
622: VFLAG = 0;
623: CFLAG = 0;
624: NFLAG = ((sint8)outdata) < 0;
625: ZFLAG = !outdata;
626: PC+= 4;
627: }
628:
629: void cpu_op_243a(t_ipc *ipc) /* MOVE */ {
630: /* mask f1f8, bits 1190, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
631: int srcreg = (ipc->opcode >> 0) & 7;
632: uint32 srcaddr = ADDRREG(srcreg);
633: uint8 srcdata = fetchbyte(srcaddr);
634: int dstreg = (ipc->opcode >> 9) & 7;
635: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
636: uint8 outdata = srcdata;
637:
638: storebyte(dstaddr, outdata);
639: PC+= 4;
640: }
641:
642: void cpu_op_243b(t_ipc *ipc) /* MOVE */ {
643: /* mask f1f8, bits 1190, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
644: int srcreg = (ipc->opcode >> 0) & 7;
645: uint32 srcaddr = ADDRREG(srcreg);
646: uint8 srcdata = fetchbyte(srcaddr);
647: int dstreg = (ipc->opcode >> 9) & 7;
648: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
649: uint8 outdata = srcdata;
650:
651: storebyte(dstaddr, outdata);
652:
653: VFLAG = 0;
654: CFLAG = 0;
655: NFLAG = ((sint8)outdata) < 0;
656: ZFLAG = !outdata;
657: PC+= 4;
658: }
659:
660: void cpu_op_244a(t_ipc *ipc) /* MOVE */ {
661: /* mask fff8, bits 11d0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
662: int srcreg = (ipc->opcode >> 0) & 7;
663: uint32 srcaddr = ADDRREG(srcreg);
664: uint8 srcdata = fetchbyte(srcaddr);
665: uint32 dstaddr = ipc->dst;
666: uint8 outdata = srcdata;
667:
668: storebyte(dstaddr, outdata);
669: PC+= 4;
670: }
671:
672: void cpu_op_244b(t_ipc *ipc) /* MOVE */ {
673: /* mask fff8, bits 11d0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
674: int srcreg = (ipc->opcode >> 0) & 7;
675: uint32 srcaddr = ADDRREG(srcreg);
676: uint8 srcdata = fetchbyte(srcaddr);
677: uint32 dstaddr = ipc->dst;
678: uint8 outdata = srcdata;
679:
680: storebyte(dstaddr, outdata);
681:
682: VFLAG = 0;
683: CFLAG = 0;
684: NFLAG = ((sint8)outdata) < 0;
685: ZFLAG = !outdata;
686: PC+= 4;
687: }
688:
689: void cpu_op_245a(t_ipc *ipc) /* MOVE */ {
690: /* mask fff8, bits 13d0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
691: int srcreg = (ipc->opcode >> 0) & 7;
692: uint32 srcaddr = ADDRREG(srcreg);
693: uint8 srcdata = fetchbyte(srcaddr);
694: uint32 dstaddr = ipc->dst;
695: uint8 outdata = srcdata;
696:
697: storebyte(dstaddr, outdata);
698: PC+= 6;
699: }
700:
701: void cpu_op_245b(t_ipc *ipc) /* MOVE */ {
702: /* mask fff8, bits 13d0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 2, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
703: int srcreg = (ipc->opcode >> 0) & 7;
704: uint32 srcaddr = ADDRREG(srcreg);
705: uint8 srcdata = fetchbyte(srcaddr);
706: uint32 dstaddr = ipc->dst;
707: uint8 outdata = srcdata;
708:
709: storebyte(dstaddr, outdata);
710:
711: VFLAG = 0;
712: CFLAG = 0;
713: NFLAG = ((sint8)outdata) < 0;
714: ZFLAG = !outdata;
715: PC+= 6;
716: }
717:
718: void cpu_op_246a(t_ipc *ipc) /* MOVE */ {
719: /* mask f1f8, bits 1018, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
720: int srcreg = (ipc->opcode >> 0) & 7;
721: uint32 srcaddr = ADDRREG(srcreg);
722: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
723: uint8 srcdata = fetchbyte(srcaddr);
724: int dstreg = (ipc->opcode >> 9) & 7;
725: uint8 outdata = srcdata;
726:
727: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
728: PC+= 2;
729: }
730:
731: void cpu_op_246b(t_ipc *ipc) /* MOVE */ {
732: /* mask f1f8, bits 1018, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
733: int srcreg = (ipc->opcode >> 0) & 7;
734: uint32 srcaddr = ADDRREG(srcreg);
735: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
736: uint8 srcdata = fetchbyte(srcaddr);
737: int dstreg = (ipc->opcode >> 9) & 7;
738: uint8 outdata = srcdata;
739:
740: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
741:
742: VFLAG = 0;
743: CFLAG = 0;
744: NFLAG = ((sint8)outdata) < 0;
745: ZFLAG = !outdata;
746: PC+= 2;
747: }
748:
749: void cpu_op_247a(t_ipc *ipc) /* MOVE */ {
750: /* mask f1f8, bits 1098, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
751: int srcreg = (ipc->opcode >> 0) & 7;
752: uint32 srcaddr = ADDRREG(srcreg);
753: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
754: uint8 srcdata = fetchbyte(srcaddr);
755: int dstreg = (ipc->opcode >> 9) & 7;
756: uint32 dstaddr = ADDRREG(dstreg);
757: uint8 outdata = srcdata;
758:
759: storebyte(dstaddr, outdata);
760: PC+= 2;
761: }
762:
763: void cpu_op_247b(t_ipc *ipc) /* MOVE */ {
764: /* mask f1f8, bits 1098, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
765: int srcreg = (ipc->opcode >> 0) & 7;
766: uint32 srcaddr = ADDRREG(srcreg);
767: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
768: uint8 srcdata = fetchbyte(srcaddr);
769: int dstreg = (ipc->opcode >> 9) & 7;
770: uint32 dstaddr = ADDRREG(dstreg);
771: uint8 outdata = srcdata;
772:
773: storebyte(dstaddr, outdata);
774:
775: VFLAG = 0;
776: CFLAG = 0;
777: NFLAG = ((sint8)outdata) < 0;
778: ZFLAG = !outdata;
779: PC+= 2;
780: }
781:
782: void cpu_op_248a(t_ipc *ipc) /* MOVE */ {
783: /* mask f1f8, bits 10d8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
784: int srcreg = (ipc->opcode >> 0) & 7;
785: uint32 srcaddr = ADDRREG(srcreg);
786: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
787: uint8 srcdata = fetchbyte(srcaddr);
788: int dstreg = (ipc->opcode >> 9) & 7;
789: uint32 dstaddr = ADDRREG(dstreg);
790: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
791: uint8 outdata = srcdata;
792:
793: storebyte(dstaddr, outdata);
794: PC+= 2;
795: }
796:
797: void cpu_op_248b(t_ipc *ipc) /* MOVE */ {
798: /* mask f1f8, bits 10d8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
799: int srcreg = (ipc->opcode >> 0) & 7;
800: uint32 srcaddr = ADDRREG(srcreg);
801: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
802: uint8 srcdata = fetchbyte(srcaddr);
803: int dstreg = (ipc->opcode >> 9) & 7;
804: uint32 dstaddr = ADDRREG(dstreg);
805: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
806: uint8 outdata = srcdata;
807:
808: storebyte(dstaddr, outdata);
809:
810: VFLAG = 0;
811: CFLAG = 0;
812: NFLAG = ((sint8)outdata) < 0;
813: ZFLAG = !outdata;
814: PC+= 2;
815: }
816:
817: void cpu_op_249a(t_ipc *ipc) /* MOVE */ {
818: /* mask f1f8, bits 1118, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
819: int srcreg = (ipc->opcode >> 0) & 7;
820: uint32 srcaddr = ADDRREG(srcreg);
821: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
822: uint8 srcdata = fetchbyte(srcaddr);
823: int dstreg = (ipc->opcode >> 9) & 7;
824: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
825: uint8 outdata = srcdata;
826:
827: storebyte(dstaddr, outdata);
828: PC+= 2;
829: }
830:
831: void cpu_op_249b(t_ipc *ipc) /* MOVE */ {
832: /* mask f1f8, bits 1118, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
833: int srcreg = (ipc->opcode >> 0) & 7;
834: uint32 srcaddr = ADDRREG(srcreg);
835: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
836: uint8 srcdata = fetchbyte(srcaddr);
837: int dstreg = (ipc->opcode >> 9) & 7;
838: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
839: uint8 outdata = srcdata;
840:
841: storebyte(dstaddr, outdata);
842:
843: VFLAG = 0;
844: CFLAG = 0;
845: NFLAG = ((sint8)outdata) < 0;
846: ZFLAG = !outdata;
847: PC+= 2;
848: }
849:
850: void cpu_op_250a(t_ipc *ipc) /* MOVE */ {
851: /* mask f1f8, bits 1158, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
852: int srcreg = (ipc->opcode >> 0) & 7;
853: uint32 srcaddr = ADDRREG(srcreg);
854: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
855: uint8 srcdata = fetchbyte(srcaddr);
856: int dstreg = (ipc->opcode >> 9) & 7;
857: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
858: uint8 outdata = srcdata;
859:
860: storebyte(dstaddr, outdata);
861: PC+= 4;
862: }
863:
864: void cpu_op_250b(t_ipc *ipc) /* MOVE */ {
865: /* mask f1f8, bits 1158, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
866: int srcreg = (ipc->opcode >> 0) & 7;
867: uint32 srcaddr = ADDRREG(srcreg);
868: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
869: uint8 srcdata = fetchbyte(srcaddr);
870: int dstreg = (ipc->opcode >> 9) & 7;
871: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
872: uint8 outdata = srcdata;
873:
874: storebyte(dstaddr, outdata);
875:
876: VFLAG = 0;
877: CFLAG = 0;
878: NFLAG = ((sint8)outdata) < 0;
879: ZFLAG = !outdata;
880: PC+= 4;
881: }
882:
883: void cpu_op_251a(t_ipc *ipc) /* MOVE */ {
884: /* mask f1f8, bits 1198, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
885: int srcreg = (ipc->opcode >> 0) & 7;
886: uint32 srcaddr = ADDRREG(srcreg);
887: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
888: uint8 srcdata = fetchbyte(srcaddr);
889: int dstreg = (ipc->opcode >> 9) & 7;
890: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
891: uint8 outdata = srcdata;
892:
893: storebyte(dstaddr, outdata);
894: PC+= 4;
895: }
896:
897: void cpu_op_251b(t_ipc *ipc) /* MOVE */ {
898: /* mask f1f8, bits 1198, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
899: int srcreg = (ipc->opcode >> 0) & 7;
900: uint32 srcaddr = ADDRREG(srcreg);
901: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
902: uint8 srcdata = fetchbyte(srcaddr);
903: int dstreg = (ipc->opcode >> 9) & 7;
904: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
905: uint8 outdata = srcdata;
906:
907: storebyte(dstaddr, outdata);
908:
909: VFLAG = 0;
910: CFLAG = 0;
911: NFLAG = ((sint8)outdata) < 0;
912: ZFLAG = !outdata;
913: PC+= 4;
914: }
915:
916: void cpu_op_252a(t_ipc *ipc) /* MOVE */ {
917: /* mask fff8, bits 11d8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
918: int srcreg = (ipc->opcode >> 0) & 7;
919: uint32 srcaddr = ADDRREG(srcreg);
920: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
921: uint8 srcdata = fetchbyte(srcaddr);
922: uint32 dstaddr = ipc->dst;
923: uint8 outdata = srcdata;
924:
925: storebyte(dstaddr, outdata);
926: PC+= 4;
927: }
928:
929: void cpu_op_252b(t_ipc *ipc) /* MOVE */ {
930: /* mask fff8, bits 11d8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
931: int srcreg = (ipc->opcode >> 0) & 7;
932: uint32 srcaddr = ADDRREG(srcreg);
933: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
934: uint8 srcdata = fetchbyte(srcaddr);
935: uint32 dstaddr = ipc->dst;
936: uint8 outdata = srcdata;
937:
938: storebyte(dstaddr, outdata);
939:
940: VFLAG = 0;
941: CFLAG = 0;
942: NFLAG = ((sint8)outdata) < 0;
943: ZFLAG = !outdata;
944: PC+= 4;
945: }
946:
947: void cpu_op_253a(t_ipc *ipc) /* MOVE */ {
948: /* mask fff8, bits 13d8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
949: int srcreg = (ipc->opcode >> 0) & 7;
950: uint32 srcaddr = ADDRREG(srcreg);
951: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
952: uint8 srcdata = fetchbyte(srcaddr);
953: uint32 dstaddr = ipc->dst;
954: uint8 outdata = srcdata;
955:
956: storebyte(dstaddr, outdata);
957: PC+= 6;
958: }
959:
960: void cpu_op_253b(t_ipc *ipc) /* MOVE */ {
961: /* mask fff8, bits 13d8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 3, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
962: int srcreg = (ipc->opcode >> 0) & 7;
963: uint32 srcaddr = ADDRREG(srcreg);
964: uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
965: uint8 srcdata = fetchbyte(srcaddr);
966: uint32 dstaddr = ipc->dst;
967: uint8 outdata = srcdata;
968:
969: storebyte(dstaddr, outdata);
970:
971: VFLAG = 0;
972: CFLAG = 0;
973: NFLAG = ((sint8)outdata) < 0;
974: ZFLAG = !outdata;
975: PC+= 6;
976: }
977:
978: void cpu_op_254a(t_ipc *ipc) /* MOVE */ {
979: /* mask f1f8, bits 1020, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
980: int srcreg = (ipc->opcode >> 0) & 7;
981: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
982: uint8 srcdata = fetchbyte(srcaddr);
983: int dstreg = (ipc->opcode >> 9) & 7;
984: uint8 outdata = srcdata;
985:
986: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
987: PC+= 2;
988: }
989:
990: void cpu_op_254b(t_ipc *ipc) /* MOVE */ {
991: /* mask f1f8, bits 1020, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
992: int srcreg = (ipc->opcode >> 0) & 7;
993: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
994: uint8 srcdata = fetchbyte(srcaddr);
995: int dstreg = (ipc->opcode >> 9) & 7;
996: uint8 outdata = srcdata;
997:
998: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
999:
1000: VFLAG = 0;
1001: CFLAG = 0;
1002: NFLAG = ((sint8)outdata) < 0;
1003: ZFLAG = !outdata;
1004: PC+= 2;
1005: }
1006:
1007: void cpu_op_255a(t_ipc *ipc) /* MOVE */ {
1008: /* mask f1f8, bits 10a0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1009: int srcreg = (ipc->opcode >> 0) & 7;
1010: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
1011: uint8 srcdata = fetchbyte(srcaddr);
1012: int dstreg = (ipc->opcode >> 9) & 7;
1013: uint32 dstaddr = ADDRREG(dstreg);
1014: uint8 outdata = srcdata;
1015:
1016: storebyte(dstaddr, outdata);
1017: PC+= 2;
1018: }
1019:
1020: void cpu_op_255b(t_ipc *ipc) /* MOVE */ {
1021: /* mask f1f8, bits 10a0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1022: int srcreg = (ipc->opcode >> 0) & 7;
1023: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
1024: uint8 srcdata = fetchbyte(srcaddr);
1025: int dstreg = (ipc->opcode >> 9) & 7;
1026: uint32 dstaddr = ADDRREG(dstreg);
1027: uint8 outdata = srcdata;
1028:
1029: storebyte(dstaddr, outdata);
1030:
1031: VFLAG = 0;
1032: CFLAG = 0;
1033: NFLAG = ((sint8)outdata) < 0;
1034: ZFLAG = !outdata;
1035: PC+= 2;
1036: }
1037:
1038: void cpu_op_256a(t_ipc *ipc) /* MOVE */ {
1039: /* mask f1f8, bits 10e0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1040: int srcreg = (ipc->opcode >> 0) & 7;
1041: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
1042: uint8 srcdata = fetchbyte(srcaddr);
1043: int dstreg = (ipc->opcode >> 9) & 7;
1044: uint32 dstaddr = ADDRREG(dstreg);
1045: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
1046: uint8 outdata = srcdata;
1047:
1048: storebyte(dstaddr, outdata);
1049: PC+= 2;
1050: }
1051:
1052: void cpu_op_256b(t_ipc *ipc) /* MOVE */ {
1053: /* mask f1f8, bits 10e0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1054: int srcreg = (ipc->opcode >> 0) & 7;
1055: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
1056: uint8 srcdata = fetchbyte(srcaddr);
1057: int dstreg = (ipc->opcode >> 9) & 7;
1058: uint32 dstaddr = ADDRREG(dstreg);
1059: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
1060: uint8 outdata = srcdata;
1061:
1062: storebyte(dstaddr, outdata);
1063:
1064: VFLAG = 0;
1065: CFLAG = 0;
1066: NFLAG = ((sint8)outdata) < 0;
1067: ZFLAG = !outdata;
1068: PC+= 2;
1069: }
1070:
1071: void cpu_op_257a(t_ipc *ipc) /* MOVE */ {
1072: /* mask f1f8, bits 1120, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1073: int srcreg = (ipc->opcode >> 0) & 7;
1074: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
1075: uint8 srcdata = fetchbyte(srcaddr);
1076: int dstreg = (ipc->opcode >> 9) & 7;
1077: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
1078: uint8 outdata = srcdata;
1079:
1080: storebyte(dstaddr, outdata);
1081: PC+= 2;
1082: }
1083:
1084: void cpu_op_257b(t_ipc *ipc) /* MOVE */ {
1085: /* mask f1f8, bits 1120, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1086: int srcreg = (ipc->opcode >> 0) & 7;
1087: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
1088: uint8 srcdata = fetchbyte(srcaddr);
1089: int dstreg = (ipc->opcode >> 9) & 7;
1090: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
1091: uint8 outdata = srcdata;
1092:
1093: storebyte(dstaddr, outdata);
1094:
1095: VFLAG = 0;
1096: CFLAG = 0;
1097: NFLAG = ((sint8)outdata) < 0;
1098: ZFLAG = !outdata;
1099: PC+= 2;
1100: }
1101:
1102: void cpu_op_258a(t_ipc *ipc) /* MOVE */ {
1103: /* mask f1f8, bits 1160, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1104: int srcreg = (ipc->opcode >> 0) & 7;
1105: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
1106: uint8 srcdata = fetchbyte(srcaddr);
1107: int dstreg = (ipc->opcode >> 9) & 7;
1108: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1109: uint8 outdata = srcdata;
1110:
1111: storebyte(dstaddr, outdata);
1112: PC+= 4;
1113: }
1114:
1115: void cpu_op_258b(t_ipc *ipc) /* MOVE */ {
1116: /* mask f1f8, bits 1160, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1117: int srcreg = (ipc->opcode >> 0) & 7;
1118: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
1119: uint8 srcdata = fetchbyte(srcaddr);
1120: int dstreg = (ipc->opcode >> 9) & 7;
1121: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1122: uint8 outdata = srcdata;
1123:
1124: storebyte(dstaddr, outdata);
1125:
1126: VFLAG = 0;
1127: CFLAG = 0;
1128: NFLAG = ((sint8)outdata) < 0;
1129: ZFLAG = !outdata;
1130: PC+= 4;
1131: }
1132:
1133: void cpu_op_259a(t_ipc *ipc) /* MOVE */ {
1134: /* mask f1f8, bits 11a0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1135: int srcreg = (ipc->opcode >> 0) & 7;
1136: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
1137: uint8 srcdata = fetchbyte(srcaddr);
1138: int dstreg = (ipc->opcode >> 9) & 7;
1139: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1140: uint8 outdata = srcdata;
1141:
1142: storebyte(dstaddr, outdata);
1143: PC+= 4;
1144: }
1145:
1146: void cpu_op_259b(t_ipc *ipc) /* MOVE */ {
1147: /* mask f1f8, bits 11a0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1148: int srcreg = (ipc->opcode >> 0) & 7;
1149: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
1150: uint8 srcdata = fetchbyte(srcaddr);
1151: int dstreg = (ipc->opcode >> 9) & 7;
1152: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1153: uint8 outdata = srcdata;
1154:
1155: storebyte(dstaddr, outdata);
1156:
1157: VFLAG = 0;
1158: CFLAG = 0;
1159: NFLAG = ((sint8)outdata) < 0;
1160: ZFLAG = !outdata;
1161: PC+= 4;
1162: }
1163:
1164: void cpu_op_260a(t_ipc *ipc) /* MOVE */ {
1165: /* mask fff8, bits 11e0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1166: int srcreg = (ipc->opcode >> 0) & 7;
1167: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
1168: uint8 srcdata = fetchbyte(srcaddr);
1169: uint32 dstaddr = ipc->dst;
1170: uint8 outdata = srcdata;
1171:
1172: storebyte(dstaddr, outdata);
1173: PC+= 4;
1174: }
1175:
1176: void cpu_op_260b(t_ipc *ipc) /* MOVE */ {
1177: /* mask fff8, bits 11e0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1178: int srcreg = (ipc->opcode >> 0) & 7;
1179: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
1180: uint8 srcdata = fetchbyte(srcaddr);
1181: uint32 dstaddr = ipc->dst;
1182: uint8 outdata = srcdata;
1183:
1184: storebyte(dstaddr, outdata);
1185:
1186: VFLAG = 0;
1187: CFLAG = 0;
1188: NFLAG = ((sint8)outdata) < 0;
1189: ZFLAG = !outdata;
1190: PC+= 4;
1191: }
1192:
1193: void cpu_op_261a(t_ipc *ipc) /* MOVE */ {
1194: /* mask fff8, bits 13e0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1195: int srcreg = (ipc->opcode >> 0) & 7;
1196: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
1197: uint8 srcdata = fetchbyte(srcaddr);
1198: uint32 dstaddr = ipc->dst;
1199: uint8 outdata = srcdata;
1200:
1201: storebyte(dstaddr, outdata);
1202: PC+= 6;
1203: }
1204:
1205: void cpu_op_261b(t_ipc *ipc) /* MOVE */ {
1206: /* mask fff8, bits 13e0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 4, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1207: int srcreg = (ipc->opcode >> 0) & 7;
1208: uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
1209: uint8 srcdata = fetchbyte(srcaddr);
1210: uint32 dstaddr = ipc->dst;
1211: uint8 outdata = srcdata;
1212:
1213: storebyte(dstaddr, outdata);
1214:
1215: VFLAG = 0;
1216: CFLAG = 0;
1217: NFLAG = ((sint8)outdata) < 0;
1218: ZFLAG = !outdata;
1219: PC+= 6;
1220: }
1221:
1222: void cpu_op_262a(t_ipc *ipc) /* MOVE */ {
1223: /* mask f1f8, bits 1028, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1224: int srcreg = (ipc->opcode >> 0) & 7;
1225: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1226: uint8 srcdata = fetchbyte(srcaddr);
1227: int dstreg = (ipc->opcode >> 9) & 7;
1228: uint8 outdata = srcdata;
1229:
1230: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
1231: PC+= 4;
1232: }
1233:
1234: void cpu_op_262b(t_ipc *ipc) /* MOVE */ {
1235: /* mask f1f8, bits 1028, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1236: int srcreg = (ipc->opcode >> 0) & 7;
1237: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1238: uint8 srcdata = fetchbyte(srcaddr);
1239: int dstreg = (ipc->opcode >> 9) & 7;
1240: uint8 outdata = srcdata;
1241:
1242: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
1243:
1244: VFLAG = 0;
1245: CFLAG = 0;
1246: NFLAG = ((sint8)outdata) < 0;
1247: ZFLAG = !outdata;
1248: PC+= 4;
1249: }
1250:
1251: void cpu_op_263a(t_ipc *ipc) /* MOVE */ {
1252: /* mask f1f8, bits 10a8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1253: int srcreg = (ipc->opcode >> 0) & 7;
1254: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1255: uint8 srcdata = fetchbyte(srcaddr);
1256: int dstreg = (ipc->opcode >> 9) & 7;
1257: uint32 dstaddr = ADDRREG(dstreg);
1258: uint8 outdata = srcdata;
1259:
1260: storebyte(dstaddr, outdata);
1261: PC+= 4;
1262: }
1263:
1264: void cpu_op_263b(t_ipc *ipc) /* MOVE */ {
1265: /* mask f1f8, bits 10a8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1266: int srcreg = (ipc->opcode >> 0) & 7;
1267: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1268: uint8 srcdata = fetchbyte(srcaddr);
1269: int dstreg = (ipc->opcode >> 9) & 7;
1270: uint32 dstaddr = ADDRREG(dstreg);
1271: uint8 outdata = srcdata;
1272:
1273: storebyte(dstaddr, outdata);
1274:
1275: VFLAG = 0;
1276: CFLAG = 0;
1277: NFLAG = ((sint8)outdata) < 0;
1278: ZFLAG = !outdata;
1279: PC+= 4;
1280: }
1281:
1282: void cpu_op_264a(t_ipc *ipc) /* MOVE */ {
1283: /* mask f1f8, bits 10e8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1284: int srcreg = (ipc->opcode >> 0) & 7;
1285: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1286: uint8 srcdata = fetchbyte(srcaddr);
1287: int dstreg = (ipc->opcode >> 9) & 7;
1288: uint32 dstaddr = ADDRREG(dstreg);
1289: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
1290: uint8 outdata = srcdata;
1291:
1292: storebyte(dstaddr, outdata);
1293: PC+= 4;
1294: }
1295:
1296: void cpu_op_264b(t_ipc *ipc) /* MOVE */ {
1297: /* mask f1f8, bits 10e8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1298: int srcreg = (ipc->opcode >> 0) & 7;
1299: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1300: uint8 srcdata = fetchbyte(srcaddr);
1301: int dstreg = (ipc->opcode >> 9) & 7;
1302: uint32 dstaddr = ADDRREG(dstreg);
1303: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
1304: uint8 outdata = srcdata;
1305:
1306: storebyte(dstaddr, outdata);
1307:
1308: VFLAG = 0;
1309: CFLAG = 0;
1310: NFLAG = ((sint8)outdata) < 0;
1311: ZFLAG = !outdata;
1312: PC+= 4;
1313: }
1314:
1315: void cpu_op_265a(t_ipc *ipc) /* MOVE */ {
1316: /* mask f1f8, bits 1128, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1317: int srcreg = (ipc->opcode >> 0) & 7;
1318: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1319: uint8 srcdata = fetchbyte(srcaddr);
1320: int dstreg = (ipc->opcode >> 9) & 7;
1321: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
1322: uint8 outdata = srcdata;
1323:
1324: storebyte(dstaddr, outdata);
1325: PC+= 4;
1326: }
1327:
1328: void cpu_op_265b(t_ipc *ipc) /* MOVE */ {
1329: /* mask f1f8, bits 1128, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1330: int srcreg = (ipc->opcode >> 0) & 7;
1331: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1332: uint8 srcdata = fetchbyte(srcaddr);
1333: int dstreg = (ipc->opcode >> 9) & 7;
1334: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
1335: uint8 outdata = srcdata;
1336:
1337: storebyte(dstaddr, outdata);
1338:
1339: VFLAG = 0;
1340: CFLAG = 0;
1341: NFLAG = ((sint8)outdata) < 0;
1342: ZFLAG = !outdata;
1343: PC+= 4;
1344: }
1345:
1346: void cpu_op_266a(t_ipc *ipc) /* MOVE */ {
1347: /* mask f1f8, bits 1168, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1348: int srcreg = (ipc->opcode >> 0) & 7;
1349: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1350: uint8 srcdata = fetchbyte(srcaddr);
1351: int dstreg = (ipc->opcode >> 9) & 7;
1352: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1353: uint8 outdata = srcdata;
1354:
1355: storebyte(dstaddr, outdata);
1356: PC+= 6;
1357: }
1358:
1359: void cpu_op_266b(t_ipc *ipc) /* MOVE */ {
1360: /* mask f1f8, bits 1168, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1361: int srcreg = (ipc->opcode >> 0) & 7;
1362: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1363: uint8 srcdata = fetchbyte(srcaddr);
1364: int dstreg = (ipc->opcode >> 9) & 7;
1365: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1366: uint8 outdata = srcdata;
1367:
1368: storebyte(dstaddr, outdata);
1369:
1370: VFLAG = 0;
1371: CFLAG = 0;
1372: NFLAG = ((sint8)outdata) < 0;
1373: ZFLAG = !outdata;
1374: PC+= 6;
1375: }
1376:
1377: void cpu_op_267a(t_ipc *ipc) /* MOVE */ {
1378: /* mask f1f8, bits 11a8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1379: int srcreg = (ipc->opcode >> 0) & 7;
1380: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1381: uint8 srcdata = fetchbyte(srcaddr);
1382: int dstreg = (ipc->opcode >> 9) & 7;
1383: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1384: uint8 outdata = srcdata;
1385:
1386: storebyte(dstaddr, outdata);
1387: PC+= 6;
1388: }
1389:
1390: void cpu_op_267b(t_ipc *ipc) /* MOVE */ {
1391: /* mask f1f8, bits 11a8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1392: int srcreg = (ipc->opcode >> 0) & 7;
1393: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1394: uint8 srcdata = fetchbyte(srcaddr);
1395: int dstreg = (ipc->opcode >> 9) & 7;
1396: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1397: uint8 outdata = srcdata;
1398:
1399: storebyte(dstaddr, outdata);
1400:
1401: VFLAG = 0;
1402: CFLAG = 0;
1403: NFLAG = ((sint8)outdata) < 0;
1404: ZFLAG = !outdata;
1405: PC+= 6;
1406: }
1407:
1408: void cpu_op_268a(t_ipc *ipc) /* MOVE */ {
1409: /* mask fff8, bits 11e8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1410: int srcreg = (ipc->opcode >> 0) & 7;
1411: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1412: uint8 srcdata = fetchbyte(srcaddr);
1413: uint32 dstaddr = ipc->dst;
1414: uint8 outdata = srcdata;
1415:
1416: storebyte(dstaddr, outdata);
1417: PC+= 6;
1418: }
1419:
1420: void cpu_op_268b(t_ipc *ipc) /* MOVE */ {
1421: /* mask fff8, bits 11e8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1422: int srcreg = (ipc->opcode >> 0) & 7;
1423: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1424: uint8 srcdata = fetchbyte(srcaddr);
1425: uint32 dstaddr = ipc->dst;
1426: uint8 outdata = srcdata;
1427:
1428: storebyte(dstaddr, outdata);
1429:
1430: VFLAG = 0;
1431: CFLAG = 0;
1432: NFLAG = ((sint8)outdata) < 0;
1433: ZFLAG = !outdata;
1434: PC+= 6;
1435: }
1436:
1437: void cpu_op_269a(t_ipc *ipc) /* MOVE */ {
1438: /* mask fff8, bits 13e8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1439: int srcreg = (ipc->opcode >> 0) & 7;
1440: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1441: uint8 srcdata = fetchbyte(srcaddr);
1442: uint32 dstaddr = ipc->dst;
1443: uint8 outdata = srcdata;
1444:
1445: storebyte(dstaddr, outdata);
1446: PC+= 8;
1447: }
1448:
1449: void cpu_op_269b(t_ipc *ipc) /* MOVE */ {
1450: /* mask fff8, bits 13e8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 5, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1451: int srcreg = (ipc->opcode >> 0) & 7;
1452: uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
1453: uint8 srcdata = fetchbyte(srcaddr);
1454: uint32 dstaddr = ipc->dst;
1455: uint8 outdata = srcdata;
1456:
1457: storebyte(dstaddr, outdata);
1458:
1459: VFLAG = 0;
1460: CFLAG = 0;
1461: NFLAG = ((sint8)outdata) < 0;
1462: ZFLAG = !outdata;
1463: PC+= 8;
1464: }
1465:
1466: void cpu_op_270a(t_ipc *ipc) /* MOVE */ {
1467: /* mask f1f8, bits 1030, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1468: int srcreg = (ipc->opcode >> 0) & 7;
1469: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1470: uint8 srcdata = fetchbyte(srcaddr);
1471: int dstreg = (ipc->opcode >> 9) & 7;
1472: uint8 outdata = srcdata;
1473:
1474: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
1475: PC+= 4;
1476: }
1477:
1478: void cpu_op_270b(t_ipc *ipc) /* MOVE */ {
1479: /* mask f1f8, bits 1030, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1480: int srcreg = (ipc->opcode >> 0) & 7;
1481: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1482: uint8 srcdata = fetchbyte(srcaddr);
1483: int dstreg = (ipc->opcode >> 9) & 7;
1484: uint8 outdata = srcdata;
1485:
1486: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
1487:
1488: VFLAG = 0;
1489: CFLAG = 0;
1490: NFLAG = ((sint8)outdata) < 0;
1491: ZFLAG = !outdata;
1492: PC+= 4;
1493: }
1494:
1495: void cpu_op_271a(t_ipc *ipc) /* MOVE */ {
1496: /* mask f1f8, bits 10b0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1497: int srcreg = (ipc->opcode >> 0) & 7;
1498: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1499: uint8 srcdata = fetchbyte(srcaddr);
1500: int dstreg = (ipc->opcode >> 9) & 7;
1501: uint32 dstaddr = ADDRREG(dstreg);
1502: uint8 outdata = srcdata;
1503:
1504: storebyte(dstaddr, outdata);
1505: PC+= 4;
1506: }
1507:
1508: void cpu_op_271b(t_ipc *ipc) /* MOVE */ {
1509: /* mask f1f8, bits 10b0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1510: int srcreg = (ipc->opcode >> 0) & 7;
1511: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1512: uint8 srcdata = fetchbyte(srcaddr);
1513: int dstreg = (ipc->opcode >> 9) & 7;
1514: uint32 dstaddr = ADDRREG(dstreg);
1515: uint8 outdata = srcdata;
1516:
1517: storebyte(dstaddr, outdata);
1518:
1519: VFLAG = 0;
1520: CFLAG = 0;
1521: NFLAG = ((sint8)outdata) < 0;
1522: ZFLAG = !outdata;
1523: PC+= 4;
1524: }
1525:
1526: void cpu_op_272a(t_ipc *ipc) /* MOVE */ {
1527: /* mask f1f8, bits 10f0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1528: int srcreg = (ipc->opcode >> 0) & 7;
1529: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1530: uint8 srcdata = fetchbyte(srcaddr);
1531: int dstreg = (ipc->opcode >> 9) & 7;
1532: uint32 dstaddr = ADDRREG(dstreg);
1533: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
1534: uint8 outdata = srcdata;
1535:
1536: storebyte(dstaddr, outdata);
1537: PC+= 4;
1538: }
1539:
1540: void cpu_op_272b(t_ipc *ipc) /* MOVE */ {
1541: /* mask f1f8, bits 10f0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1542: int srcreg = (ipc->opcode >> 0) & 7;
1543: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1544: uint8 srcdata = fetchbyte(srcaddr);
1545: int dstreg = (ipc->opcode >> 9) & 7;
1546: uint32 dstaddr = ADDRREG(dstreg);
1547: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
1548: uint8 outdata = srcdata;
1549:
1550: storebyte(dstaddr, outdata);
1551:
1552: VFLAG = 0;
1553: CFLAG = 0;
1554: NFLAG = ((sint8)outdata) < 0;
1555: ZFLAG = !outdata;
1556: PC+= 4;
1557: }
1558:
1559: void cpu_op_273a(t_ipc *ipc) /* MOVE */ {
1560: /* mask f1f8, bits 1130, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1561: int srcreg = (ipc->opcode >> 0) & 7;
1562: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1563: uint8 srcdata = fetchbyte(srcaddr);
1564: int dstreg = (ipc->opcode >> 9) & 7;
1565: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
1566: uint8 outdata = srcdata;
1567:
1568: storebyte(dstaddr, outdata);
1569: PC+= 4;
1570: }
1571:
1572: void cpu_op_273b(t_ipc *ipc) /* MOVE */ {
1573: /* mask f1f8, bits 1130, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1574: int srcreg = (ipc->opcode >> 0) & 7;
1575: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1576: uint8 srcdata = fetchbyte(srcaddr);
1577: int dstreg = (ipc->opcode >> 9) & 7;
1578: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
1579: uint8 outdata = srcdata;
1580:
1581: storebyte(dstaddr, outdata);
1582:
1583: VFLAG = 0;
1584: CFLAG = 0;
1585: NFLAG = ((sint8)outdata) < 0;
1586: ZFLAG = !outdata;
1587: PC+= 4;
1588: }
1589:
1590: void cpu_op_274a(t_ipc *ipc) /* MOVE */ {
1591: /* mask f1f8, bits 1170, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1592: int srcreg = (ipc->opcode >> 0) & 7;
1593: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1594: uint8 srcdata = fetchbyte(srcaddr);
1595: int dstreg = (ipc->opcode >> 9) & 7;
1596: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1597: uint8 outdata = srcdata;
1598:
1599: storebyte(dstaddr, outdata);
1600: PC+= 6;
1601: }
1602:
1603: void cpu_op_274b(t_ipc *ipc) /* MOVE */ {
1604: /* mask f1f8, bits 1170, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1605: int srcreg = (ipc->opcode >> 0) & 7;
1606: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1607: uint8 srcdata = fetchbyte(srcaddr);
1608: int dstreg = (ipc->opcode >> 9) & 7;
1609: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1610: uint8 outdata = srcdata;
1611:
1612: storebyte(dstaddr, outdata);
1613:
1614: VFLAG = 0;
1615: CFLAG = 0;
1616: NFLAG = ((sint8)outdata) < 0;
1617: ZFLAG = !outdata;
1618: PC+= 6;
1619: }
1620:
1621: void cpu_op_275a(t_ipc *ipc) /* MOVE */ {
1622: /* mask f1f8, bits 11b0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1623: int srcreg = (ipc->opcode >> 0) & 7;
1624: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1625: uint8 srcdata = fetchbyte(srcaddr);
1626: int dstreg = (ipc->opcode >> 9) & 7;
1627: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1628: uint8 outdata = srcdata;
1629:
1630: storebyte(dstaddr, outdata);
1631: PC+= 6;
1632: }
1633:
1634: void cpu_op_275b(t_ipc *ipc) /* MOVE */ {
1635: /* mask f1f8, bits 11b0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1636: int srcreg = (ipc->opcode >> 0) & 7;
1637: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1638: uint8 srcdata = fetchbyte(srcaddr);
1639: int dstreg = (ipc->opcode >> 9) & 7;
1640: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1641: uint8 outdata = srcdata;
1642:
1643: storebyte(dstaddr, outdata);
1644:
1645: VFLAG = 0;
1646: CFLAG = 0;
1647: NFLAG = ((sint8)outdata) < 0;
1648: ZFLAG = !outdata;
1649: PC+= 6;
1650: }
1651:
1652: void cpu_op_276a(t_ipc *ipc) /* MOVE */ {
1653: /* mask fff8, bits 11f0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1654: int srcreg = (ipc->opcode >> 0) & 7;
1655: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1656: uint8 srcdata = fetchbyte(srcaddr);
1657: uint32 dstaddr = ipc->dst;
1658: uint8 outdata = srcdata;
1659:
1660: storebyte(dstaddr, outdata);
1661: PC+= 6;
1662: }
1663:
1664: void cpu_op_276b(t_ipc *ipc) /* MOVE */ {
1665: /* mask fff8, bits 11f0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1666: int srcreg = (ipc->opcode >> 0) & 7;
1667: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1668: uint8 srcdata = fetchbyte(srcaddr);
1669: uint32 dstaddr = ipc->dst;
1670: uint8 outdata = srcdata;
1671:
1672: storebyte(dstaddr, outdata);
1673:
1674: VFLAG = 0;
1675: CFLAG = 0;
1676: NFLAG = ((sint8)outdata) < 0;
1677: ZFLAG = !outdata;
1678: PC+= 6;
1679: }
1680:
1681: void cpu_op_277a(t_ipc *ipc) /* MOVE */ {
1682: /* mask fff8, bits 13f0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1683: int srcreg = (ipc->opcode >> 0) & 7;
1684: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1685: uint8 srcdata = fetchbyte(srcaddr);
1686: uint32 dstaddr = ipc->dst;
1687: uint8 outdata = srcdata;
1688:
1689: storebyte(dstaddr, outdata);
1690: PC+= 8;
1691: }
1692:
1693: void cpu_op_277b(t_ipc *ipc) /* MOVE */ {
1694: /* mask fff8, bits 13f0, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 6, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1695: int srcreg = (ipc->opcode >> 0) & 7;
1696: uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
1697: uint8 srcdata = fetchbyte(srcaddr);
1698: uint32 dstaddr = ipc->dst;
1699: uint8 outdata = srcdata;
1700:
1701: storebyte(dstaddr, outdata);
1702:
1703: VFLAG = 0;
1704: CFLAG = 0;
1705: NFLAG = ((sint8)outdata) < 0;
1706: ZFLAG = !outdata;
1707: PC+= 8;
1708: }
1709:
1710: void cpu_op_278a(t_ipc *ipc) /* MOVE */ {
1711: /* mask f1ff, bits 1038, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1712: uint32 srcaddr = ipc->src;
1713: uint8 srcdata = fetchbyte(srcaddr);
1714: int dstreg = (ipc->opcode >> 9) & 7;
1715: uint8 outdata = srcdata;
1716:
1717: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
1718: PC+= 4;
1719: }
1720:
1721: void cpu_op_278b(t_ipc *ipc) /* MOVE */ {
1722: /* mask f1ff, bits 1038, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1723: uint32 srcaddr = ipc->src;
1724: uint8 srcdata = fetchbyte(srcaddr);
1725: int dstreg = (ipc->opcode >> 9) & 7;
1726: uint8 outdata = srcdata;
1727:
1728: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
1729:
1730: VFLAG = 0;
1731: CFLAG = 0;
1732: NFLAG = ((sint8)outdata) < 0;
1733: ZFLAG = !outdata;
1734: PC+= 4;
1735: }
1736:
1737: void cpu_op_279a(t_ipc *ipc) /* MOVE */ {
1738: /* mask f1ff, bits 10b8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1739: uint32 srcaddr = ipc->src;
1740: uint8 srcdata = fetchbyte(srcaddr);
1741: int dstreg = (ipc->opcode >> 9) & 7;
1742: uint32 dstaddr = ADDRREG(dstreg);
1743: uint8 outdata = srcdata;
1744:
1745: storebyte(dstaddr, outdata);
1746: PC+= 4;
1747: }
1748:
1749: void cpu_op_279b(t_ipc *ipc) /* MOVE */ {
1750: /* mask f1ff, bits 10b8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1751: uint32 srcaddr = ipc->src;
1752: uint8 srcdata = fetchbyte(srcaddr);
1753: int dstreg = (ipc->opcode >> 9) & 7;
1754: uint32 dstaddr = ADDRREG(dstreg);
1755: uint8 outdata = srcdata;
1756:
1757: storebyte(dstaddr, outdata);
1758:
1759: VFLAG = 0;
1760: CFLAG = 0;
1761: NFLAG = ((sint8)outdata) < 0;
1762: ZFLAG = !outdata;
1763: PC+= 4;
1764: }
1765:
1766: void cpu_op_280a(t_ipc *ipc) /* MOVE */ {
1767: /* mask f1ff, bits 10f8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1768: uint32 srcaddr = ipc->src;
1769: uint8 srcdata = fetchbyte(srcaddr);
1770: int dstreg = (ipc->opcode >> 9) & 7;
1771: uint32 dstaddr = ADDRREG(dstreg);
1772: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
1773: uint8 outdata = srcdata;
1774:
1775: storebyte(dstaddr, outdata);
1776: PC+= 4;
1777: }
1778:
1779: void cpu_op_280b(t_ipc *ipc) /* MOVE */ {
1780: /* mask f1ff, bits 10f8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1781: uint32 srcaddr = ipc->src;
1782: uint8 srcdata = fetchbyte(srcaddr);
1783: int dstreg = (ipc->opcode >> 9) & 7;
1784: uint32 dstaddr = ADDRREG(dstreg);
1785: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
1786: uint8 outdata = srcdata;
1787:
1788: storebyte(dstaddr, outdata);
1789:
1790: VFLAG = 0;
1791: CFLAG = 0;
1792: NFLAG = ((sint8)outdata) < 0;
1793: ZFLAG = !outdata;
1794: PC+= 4;
1795: }
1796:
1797: void cpu_op_281a(t_ipc *ipc) /* MOVE */ {
1798: /* mask f1ff, bits 1138, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1799: uint32 srcaddr = ipc->src;
1800: uint8 srcdata = fetchbyte(srcaddr);
1801: int dstreg = (ipc->opcode >> 9) & 7;
1802: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
1803: uint8 outdata = srcdata;
1804:
1805: storebyte(dstaddr, outdata);
1806: PC+= 4;
1807: }
1808:
1809: void cpu_op_281b(t_ipc *ipc) /* MOVE */ {
1810: /* mask f1ff, bits 1138, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
1811: uint32 srcaddr = ipc->src;
1812: uint8 srcdata = fetchbyte(srcaddr);
1813: int dstreg = (ipc->opcode >> 9) & 7;
1814: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
1815: uint8 outdata = srcdata;
1816:
1817: storebyte(dstaddr, outdata);
1818:
1819: VFLAG = 0;
1820: CFLAG = 0;
1821: NFLAG = ((sint8)outdata) < 0;
1822: ZFLAG = !outdata;
1823: PC+= 4;
1824: }
1825:
1826: void cpu_op_282a(t_ipc *ipc) /* MOVE */ {
1827: /* mask f1ff, bits 1178, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1828: uint32 srcaddr = ipc->src;
1829: uint8 srcdata = fetchbyte(srcaddr);
1830: int dstreg = (ipc->opcode >> 9) & 7;
1831: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1832: uint8 outdata = srcdata;
1833:
1834: storebyte(dstaddr, outdata);
1835: PC+= 6;
1836: }
1837:
1838: void cpu_op_282b(t_ipc *ipc) /* MOVE */ {
1839: /* mask f1ff, bits 1178, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
1840: uint32 srcaddr = ipc->src;
1841: uint8 srcdata = fetchbyte(srcaddr);
1842: int dstreg = (ipc->opcode >> 9) & 7;
1843: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
1844: uint8 outdata = srcdata;
1845:
1846: storebyte(dstaddr, outdata);
1847:
1848: VFLAG = 0;
1849: CFLAG = 0;
1850: NFLAG = ((sint8)outdata) < 0;
1851: ZFLAG = !outdata;
1852: PC+= 6;
1853: }
1854:
1855: void cpu_op_283a(t_ipc *ipc) /* MOVE */ {
1856: /* mask f1ff, bits 11b8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1857: uint32 srcaddr = ipc->src;
1858: uint8 srcdata = fetchbyte(srcaddr);
1859: int dstreg = (ipc->opcode >> 9) & 7;
1860: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1861: uint8 outdata = srcdata;
1862:
1863: storebyte(dstaddr, outdata);
1864: PC+= 6;
1865: }
1866:
1867: void cpu_op_283b(t_ipc *ipc) /* MOVE */ {
1868: /* mask f1ff, bits 11b8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
1869: uint32 srcaddr = ipc->src;
1870: uint8 srcdata = fetchbyte(srcaddr);
1871: int dstreg = (ipc->opcode >> 9) & 7;
1872: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
1873: uint8 outdata = srcdata;
1874:
1875: storebyte(dstaddr, outdata);
1876:
1877: VFLAG = 0;
1878: CFLAG = 0;
1879: NFLAG = ((sint8)outdata) < 0;
1880: ZFLAG = !outdata;
1881: PC+= 6;
1882: }
1883:
1884: void cpu_op_284a(t_ipc *ipc) /* MOVE */ {
1885: /* mask ffff, bits 11f8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1886: uint32 srcaddr = ipc->src;
1887: uint8 srcdata = fetchbyte(srcaddr);
1888: uint32 dstaddr = ipc->dst;
1889: uint8 outdata = srcdata;
1890:
1891: storebyte(dstaddr, outdata);
1892: PC+= 6;
1893: }
1894:
1895: void cpu_op_284b(t_ipc *ipc) /* MOVE */ {
1896: /* mask ffff, bits 11f8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
1897: uint32 srcaddr = ipc->src;
1898: uint8 srcdata = fetchbyte(srcaddr);
1899: uint32 dstaddr = ipc->dst;
1900: uint8 outdata = srcdata;
1901:
1902: storebyte(dstaddr, outdata);
1903:
1904: VFLAG = 0;
1905: CFLAG = 0;
1906: NFLAG = ((sint8)outdata) < 0;
1907: ZFLAG = !outdata;
1908: PC+= 6;
1909: }
1910:
1911: void cpu_op_285a(t_ipc *ipc) /* MOVE */ {
1912: /* mask ffff, bits 13f8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1913: uint32 srcaddr = ipc->src;
1914: uint8 srcdata = fetchbyte(srcaddr);
1915: uint32 dstaddr = ipc->dst;
1916: uint8 outdata = srcdata;
1917:
1918: storebyte(dstaddr, outdata);
1919: PC+= 8;
1920: }
1921:
1922: void cpu_op_285b(t_ipc *ipc) /* MOVE */ {
1923: /* mask ffff, bits 13f8, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 7, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
1924: uint32 srcaddr = ipc->src;
1925: uint8 srcdata = fetchbyte(srcaddr);
1926: uint32 dstaddr = ipc->dst;
1927: uint8 outdata = srcdata;
1928:
1929: storebyte(dstaddr, outdata);
1930:
1931: VFLAG = 0;
1932: CFLAG = 0;
1933: NFLAG = ((sint8)outdata) < 0;
1934: ZFLAG = !outdata;
1935: PC+= 8;
1936: }
1937:
1938: void cpu_op_286a(t_ipc *ipc) /* MOVE */ {
1939: /* mask f1ff, bits 1039, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1940: uint32 srcaddr = ipc->src;
1941: uint8 srcdata = fetchbyte(srcaddr);
1942: int dstreg = (ipc->opcode >> 9) & 7;
1943: uint8 outdata = srcdata;
1944:
1945: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
1946: PC+= 6;
1947: }
1948:
1949: void cpu_op_286b(t_ipc *ipc) /* MOVE */ {
1950: /* mask f1ff, bits 1039, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
1951: uint32 srcaddr = ipc->src;
1952: uint8 srcdata = fetchbyte(srcaddr);
1953: int dstreg = (ipc->opcode >> 9) & 7;
1954: uint8 outdata = srcdata;
1955:
1956: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
1957:
1958: VFLAG = 0;
1959: CFLAG = 0;
1960: NFLAG = ((sint8)outdata) < 0;
1961: ZFLAG = !outdata;
1962: PC+= 6;
1963: }
1964:
1965: void cpu_op_287a(t_ipc *ipc) /* MOVE */ {
1966: /* mask f1ff, bits 10b9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1967: uint32 srcaddr = ipc->src;
1968: uint8 srcdata = fetchbyte(srcaddr);
1969: int dstreg = (ipc->opcode >> 9) & 7;
1970: uint32 dstaddr = ADDRREG(dstreg);
1971: uint8 outdata = srcdata;
1972:
1973: storebyte(dstaddr, outdata);
1974: PC+= 6;
1975: }
1976:
1977: void cpu_op_287b(t_ipc *ipc) /* MOVE */ {
1978: /* mask f1ff, bits 10b9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
1979: uint32 srcaddr = ipc->src;
1980: uint8 srcdata = fetchbyte(srcaddr);
1981: int dstreg = (ipc->opcode >> 9) & 7;
1982: uint32 dstaddr = ADDRREG(dstreg);
1983: uint8 outdata = srcdata;
1984:
1985: storebyte(dstaddr, outdata);
1986:
1987: VFLAG = 0;
1988: CFLAG = 0;
1989: NFLAG = ((sint8)outdata) < 0;
1990: ZFLAG = !outdata;
1991: PC+= 6;
1992: }
1993:
1994: void cpu_op_288a(t_ipc *ipc) /* MOVE */ {
1995: /* mask f1ff, bits 10f9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
1996: uint32 srcaddr = ipc->src;
1997: uint8 srcdata = fetchbyte(srcaddr);
1998: int dstreg = (ipc->opcode >> 9) & 7;
1999: uint32 dstaddr = ADDRREG(dstreg);
2000: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
2001: uint8 outdata = srcdata;
2002:
2003: storebyte(dstaddr, outdata);
2004: PC+= 6;
2005: }
2006:
2007: void cpu_op_288b(t_ipc *ipc) /* MOVE */ {
2008: /* mask f1ff, bits 10f9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
2009: uint32 srcaddr = ipc->src;
2010: uint8 srcdata = fetchbyte(srcaddr);
2011: int dstreg = (ipc->opcode >> 9) & 7;
2012: uint32 dstaddr = ADDRREG(dstreg);
2013: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
2014: uint8 outdata = srcdata;
2015:
2016: storebyte(dstaddr, outdata);
2017:
2018: VFLAG = 0;
2019: CFLAG = 0;
2020: NFLAG = ((sint8)outdata) < 0;
2021: ZFLAG = !outdata;
2022: PC+= 6;
2023: }
2024:
2025: void cpu_op_289a(t_ipc *ipc) /* MOVE */ {
2026: /* mask f1ff, bits 1139, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2027: uint32 srcaddr = ipc->src;
2028: uint8 srcdata = fetchbyte(srcaddr);
2029: int dstreg = (ipc->opcode >> 9) & 7;
2030: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
2031: uint8 outdata = srcdata;
2032:
2033: storebyte(dstaddr, outdata);
2034: PC+= 6;
2035: }
2036:
2037: void cpu_op_289b(t_ipc *ipc) /* MOVE */ {
2038: /* mask f1ff, bits 1139, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2039: uint32 srcaddr = ipc->src;
2040: uint8 srcdata = fetchbyte(srcaddr);
2041: int dstreg = (ipc->opcode >> 9) & 7;
2042: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
2043: uint8 outdata = srcdata;
2044:
2045: storebyte(dstaddr, outdata);
2046:
2047: VFLAG = 0;
2048: CFLAG = 0;
2049: NFLAG = ((sint8)outdata) < 0;
2050: ZFLAG = !outdata;
2051: PC+= 6;
2052: }
2053:
2054: void cpu_op_290a(t_ipc *ipc) /* MOVE */ {
2055: /* mask f1ff, bits 1179, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2056: uint32 srcaddr = ipc->src;
2057: uint8 srcdata = fetchbyte(srcaddr);
2058: int dstreg = (ipc->opcode >> 9) & 7;
2059: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2060: uint8 outdata = srcdata;
2061:
2062: storebyte(dstaddr, outdata);
2063: PC+= 8;
2064: }
2065:
2066: void cpu_op_290b(t_ipc *ipc) /* MOVE */ {
2067: /* mask f1ff, bits 1179, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2068: uint32 srcaddr = ipc->src;
2069: uint8 srcdata = fetchbyte(srcaddr);
2070: int dstreg = (ipc->opcode >> 9) & 7;
2071: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2072: uint8 outdata = srcdata;
2073:
2074: storebyte(dstaddr, outdata);
2075:
2076: VFLAG = 0;
2077: CFLAG = 0;
2078: NFLAG = ((sint8)outdata) < 0;
2079: ZFLAG = !outdata;
2080: PC+= 8;
2081: }
2082:
2083: void cpu_op_291a(t_ipc *ipc) /* MOVE */ {
2084: /* mask f1ff, bits 11b9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2085: uint32 srcaddr = ipc->src;
2086: uint8 srcdata = fetchbyte(srcaddr);
2087: int dstreg = (ipc->opcode >> 9) & 7;
2088: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2089: uint8 outdata = srcdata;
2090:
2091: storebyte(dstaddr, outdata);
2092: PC+= 8;
2093: }
2094:
2095: void cpu_op_291b(t_ipc *ipc) /* MOVE */ {
2096: /* mask f1ff, bits 11b9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2097: uint32 srcaddr = ipc->src;
2098: uint8 srcdata = fetchbyte(srcaddr);
2099: int dstreg = (ipc->opcode >> 9) & 7;
2100: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2101: uint8 outdata = srcdata;
2102:
2103: storebyte(dstaddr, outdata);
2104:
2105: VFLAG = 0;
2106: CFLAG = 0;
2107: NFLAG = ((sint8)outdata) < 0;
2108: ZFLAG = !outdata;
2109: PC+= 8;
2110: }
2111:
2112: void cpu_op_292a(t_ipc *ipc) /* MOVE */ {
2113: /* mask ffff, bits 11f9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2114: uint32 srcaddr = ipc->src;
2115: uint8 srcdata = fetchbyte(srcaddr);
2116: uint32 dstaddr = ipc->dst;
2117: uint8 outdata = srcdata;
2118:
2119: storebyte(dstaddr, outdata);
2120: PC+= 8;
2121: }
2122:
2123: void cpu_op_292b(t_ipc *ipc) /* MOVE */ {
2124: /* mask ffff, bits 11f9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2125: uint32 srcaddr = ipc->src;
2126: uint8 srcdata = fetchbyte(srcaddr);
2127: uint32 dstaddr = ipc->dst;
2128: uint8 outdata = srcdata;
2129:
2130: storebyte(dstaddr, outdata);
2131:
2132: VFLAG = 0;
2133: CFLAG = 0;
2134: NFLAG = ((sint8)outdata) < 0;
2135: ZFLAG = !outdata;
2136: PC+= 8;
2137: }
2138:
2139: void cpu_op_293a(t_ipc *ipc) /* MOVE */ {
2140: /* mask ffff, bits 13f9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2141: uint32 srcaddr = ipc->src;
2142: uint8 srcdata = fetchbyte(srcaddr);
2143: uint32 dstaddr = ipc->dst;
2144: uint8 outdata = srcdata;
2145:
2146: storebyte(dstaddr, outdata);
2147: PC+= 10;
2148: }
2149:
2150: void cpu_op_293b(t_ipc *ipc) /* MOVE */ {
2151: /* mask ffff, bits 13f9, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 8, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2152: uint32 srcaddr = ipc->src;
2153: uint8 srcdata = fetchbyte(srcaddr);
2154: uint32 dstaddr = ipc->dst;
2155: uint8 outdata = srcdata;
2156:
2157: storebyte(dstaddr, outdata);
2158:
2159: VFLAG = 0;
2160: CFLAG = 0;
2161: NFLAG = ((sint8)outdata) < 0;
2162: ZFLAG = !outdata;
2163: PC+= 10;
2164: }
2165:
2166: void cpu_op_294a(t_ipc *ipc) /* MOVE */ {
2167: /* mask f1ff, bits 103a, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
2168: uint32 srcaddr = ipc->src;
2169: uint8 srcdata = fetchbyte(srcaddr);
2170: int dstreg = (ipc->opcode >> 9) & 7;
2171: uint8 outdata = srcdata;
2172:
2173: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
2174: PC+= 4;
2175: }
2176:
2177: void cpu_op_294b(t_ipc *ipc) /* MOVE */ {
2178: /* mask f1ff, bits 103a, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
2179: uint32 srcaddr = ipc->src;
2180: uint8 srcdata = fetchbyte(srcaddr);
2181: int dstreg = (ipc->opcode >> 9) & 7;
2182: uint8 outdata = srcdata;
2183:
2184: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
2185:
2186: VFLAG = 0;
2187: CFLAG = 0;
2188: NFLAG = ((sint8)outdata) < 0;
2189: ZFLAG = !outdata;
2190: PC+= 4;
2191: }
2192:
2193: void cpu_op_295a(t_ipc *ipc) /* MOVE */ {
2194: /* mask f1ff, bits 10ba, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
2195: uint32 srcaddr = ipc->src;
2196: uint8 srcdata = fetchbyte(srcaddr);
2197: int dstreg = (ipc->opcode >> 9) & 7;
2198: uint32 dstaddr = ADDRREG(dstreg);
2199: uint8 outdata = srcdata;
2200:
2201: storebyte(dstaddr, outdata);
2202: PC+= 4;
2203: }
2204:
2205: void cpu_op_295b(t_ipc *ipc) /* MOVE */ {
2206: /* mask f1ff, bits 10ba, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
2207: uint32 srcaddr = ipc->src;
2208: uint8 srcdata = fetchbyte(srcaddr);
2209: int dstreg = (ipc->opcode >> 9) & 7;
2210: uint32 dstaddr = ADDRREG(dstreg);
2211: uint8 outdata = srcdata;
2212:
2213: storebyte(dstaddr, outdata);
2214:
2215: VFLAG = 0;
2216: CFLAG = 0;
2217: NFLAG = ((sint8)outdata) < 0;
2218: ZFLAG = !outdata;
2219: PC+= 4;
2220: }
2221:
2222: void cpu_op_296a(t_ipc *ipc) /* MOVE */ {
2223: /* mask f1ff, bits 10fa, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
2224: uint32 srcaddr = ipc->src;
2225: uint8 srcdata = fetchbyte(srcaddr);
2226: int dstreg = (ipc->opcode >> 9) & 7;
2227: uint32 dstaddr = ADDRREG(dstreg);
2228: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
2229: uint8 outdata = srcdata;
2230:
2231: storebyte(dstaddr, outdata);
2232: PC+= 4;
2233: }
2234:
2235: void cpu_op_296b(t_ipc *ipc) /* MOVE */ {
2236: /* mask f1ff, bits 10fa, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
2237: uint32 srcaddr = ipc->src;
2238: uint8 srcdata = fetchbyte(srcaddr);
2239: int dstreg = (ipc->opcode >> 9) & 7;
2240: uint32 dstaddr = ADDRREG(dstreg);
2241: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
2242: uint8 outdata = srcdata;
2243:
2244: storebyte(dstaddr, outdata);
2245:
2246: VFLAG = 0;
2247: CFLAG = 0;
2248: NFLAG = ((sint8)outdata) < 0;
2249: ZFLAG = !outdata;
2250: PC+= 4;
2251: }
2252:
2253: void cpu_op_297a(t_ipc *ipc) /* MOVE */ {
2254: /* mask f1ff, bits 113a, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2255: uint32 srcaddr = ipc->src;
2256: uint8 srcdata = fetchbyte(srcaddr);
2257: int dstreg = (ipc->opcode >> 9) & 7;
2258: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
2259: uint8 outdata = srcdata;
2260:
2261: storebyte(dstaddr, outdata);
2262: PC+= 4;
2263: }
2264:
2265: void cpu_op_297b(t_ipc *ipc) /* MOVE */ {
2266: /* mask f1ff, bits 113a, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2267: uint32 srcaddr = ipc->src;
2268: uint8 srcdata = fetchbyte(srcaddr);
2269: int dstreg = (ipc->opcode >> 9) & 7;
2270: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
2271: uint8 outdata = srcdata;
2272:
2273: storebyte(dstaddr, outdata);
2274:
2275: VFLAG = 0;
2276: CFLAG = 0;
2277: NFLAG = ((sint8)outdata) < 0;
2278: ZFLAG = !outdata;
2279: PC+= 4;
2280: }
2281:
2282: void cpu_op_298a(t_ipc *ipc) /* MOVE */ {
2283: /* mask f1ff, bits 117a, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2284: uint32 srcaddr = ipc->src;
2285: uint8 srcdata = fetchbyte(srcaddr);
2286: int dstreg = (ipc->opcode >> 9) & 7;
2287: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2288: uint8 outdata = srcdata;
2289:
2290: storebyte(dstaddr, outdata);
2291: PC+= 6;
2292: }
2293:
2294: void cpu_op_298b(t_ipc *ipc) /* MOVE */ {
2295: /* mask f1ff, bits 117a, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2296: uint32 srcaddr = ipc->src;
2297: uint8 srcdata = fetchbyte(srcaddr);
2298: int dstreg = (ipc->opcode >> 9) & 7;
2299: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2300: uint8 outdata = srcdata;
2301:
2302: storebyte(dstaddr, outdata);
2303:
2304: VFLAG = 0;
2305: CFLAG = 0;
2306: NFLAG = ((sint8)outdata) < 0;
2307: ZFLAG = !outdata;
2308: PC+= 6;
2309: }
2310:
2311: void cpu_op_299a(t_ipc *ipc) /* MOVE */ {
2312: /* mask f1ff, bits 11ba, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2313: uint32 srcaddr = ipc->src;
2314: uint8 srcdata = fetchbyte(srcaddr);
2315: int dstreg = (ipc->opcode >> 9) & 7;
2316: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2317: uint8 outdata = srcdata;
2318:
2319: storebyte(dstaddr, outdata);
2320: PC+= 6;
2321: }
2322:
2323: void cpu_op_299b(t_ipc *ipc) /* MOVE */ {
2324: /* mask f1ff, bits 11ba, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2325: uint32 srcaddr = ipc->src;
2326: uint8 srcdata = fetchbyte(srcaddr);
2327: int dstreg = (ipc->opcode >> 9) & 7;
2328: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2329: uint8 outdata = srcdata;
2330:
2331: storebyte(dstaddr, outdata);
2332:
2333: VFLAG = 0;
2334: CFLAG = 0;
2335: NFLAG = ((sint8)outdata) < 0;
2336: ZFLAG = !outdata;
2337: PC+= 6;
2338: }
2339:
2340: void cpu_op_300a(t_ipc *ipc) /* MOVE */ {
2341: /* mask ffff, bits 11fa, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2342: uint32 srcaddr = ipc->src;
2343: uint8 srcdata = fetchbyte(srcaddr);
2344: uint32 dstaddr = ipc->dst;
2345: uint8 outdata = srcdata;
2346:
2347: storebyte(dstaddr, outdata);
2348: PC+= 6;
2349: }
2350:
2351: void cpu_op_300b(t_ipc *ipc) /* MOVE */ {
2352: /* mask ffff, bits 11fa, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2353: uint32 srcaddr = ipc->src;
2354: uint8 srcdata = fetchbyte(srcaddr);
2355: uint32 dstaddr = ipc->dst;
2356: uint8 outdata = srcdata;
2357:
2358: storebyte(dstaddr, outdata);
2359:
2360: VFLAG = 0;
2361: CFLAG = 0;
2362: NFLAG = ((sint8)outdata) < 0;
2363: ZFLAG = !outdata;
2364: PC+= 6;
2365: }
2366:
2367: void cpu_op_301a(t_ipc *ipc) /* MOVE */ {
2368: /* mask ffff, bits 13fa, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2369: uint32 srcaddr = ipc->src;
2370: uint8 srcdata = fetchbyte(srcaddr);
2371: uint32 dstaddr = ipc->dst;
2372: uint8 outdata = srcdata;
2373:
2374: storebyte(dstaddr, outdata);
2375: PC+= 8;
2376: }
2377:
2378: void cpu_op_301b(t_ipc *ipc) /* MOVE */ {
2379: /* mask ffff, bits 13fa, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 9, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2380: uint32 srcaddr = ipc->src;
2381: uint8 srcdata = fetchbyte(srcaddr);
2382: uint32 dstaddr = ipc->dst;
2383: uint8 outdata = srcdata;
2384:
2385: storebyte(dstaddr, outdata);
2386:
2387: VFLAG = 0;
2388: CFLAG = 0;
2389: NFLAG = ((sint8)outdata) < 0;
2390: ZFLAG = !outdata;
2391: PC+= 8;
2392: }
2393:
2394: void cpu_op_302a(t_ipc *ipc) /* MOVE */ {
2395: /* mask f1ff, bits 103b, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
2396: uint32 srcaddr = idxval_src(ipc);
2397: uint8 srcdata = fetchbyte(srcaddr);
2398: int dstreg = (ipc->opcode >> 9) & 7;
2399: uint8 outdata = srcdata;
2400:
2401: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
2402: PC+= 4;
2403: }
2404:
2405: void cpu_op_302b(t_ipc *ipc) /* MOVE */ {
2406: /* mask f1ff, bits 103b, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
2407: uint32 srcaddr = idxval_src(ipc);
2408: uint8 srcdata = fetchbyte(srcaddr);
2409: int dstreg = (ipc->opcode >> 9) & 7;
2410: uint8 outdata = srcdata;
2411:
2412: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
2413:
2414: VFLAG = 0;
2415: CFLAG = 0;
2416: NFLAG = ((sint8)outdata) < 0;
2417: ZFLAG = !outdata;
2418: PC+= 4;
2419: }
2420:
2421: void cpu_op_303a(t_ipc *ipc) /* MOVE */ {
2422: /* mask f1ff, bits 10bb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
2423: uint32 srcaddr = idxval_src(ipc);
2424: uint8 srcdata = fetchbyte(srcaddr);
2425: int dstreg = (ipc->opcode >> 9) & 7;
2426: uint32 dstaddr = ADDRREG(dstreg);
2427: uint8 outdata = srcdata;
2428:
2429: storebyte(dstaddr, outdata);
2430: PC+= 4;
2431: }
2432:
2433: void cpu_op_303b(t_ipc *ipc) /* MOVE */ {
2434: /* mask f1ff, bits 10bb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
2435: uint32 srcaddr = idxval_src(ipc);
2436: uint8 srcdata = fetchbyte(srcaddr);
2437: int dstreg = (ipc->opcode >> 9) & 7;
2438: uint32 dstaddr = ADDRREG(dstreg);
2439: uint8 outdata = srcdata;
2440:
2441: storebyte(dstaddr, outdata);
2442:
2443: VFLAG = 0;
2444: CFLAG = 0;
2445: NFLAG = ((sint8)outdata) < 0;
2446: ZFLAG = !outdata;
2447: PC+= 4;
2448: }
2449:
2450: void cpu_op_304a(t_ipc *ipc) /* MOVE */ {
2451: /* mask f1ff, bits 10fb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
2452: uint32 srcaddr = idxval_src(ipc);
2453: uint8 srcdata = fetchbyte(srcaddr);
2454: int dstreg = (ipc->opcode >> 9) & 7;
2455: uint32 dstaddr = ADDRREG(dstreg);
2456: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
2457: uint8 outdata = srcdata;
2458:
2459: storebyte(dstaddr, outdata);
2460: PC+= 4;
2461: }
2462:
2463: void cpu_op_304b(t_ipc *ipc) /* MOVE */ {
2464: /* mask f1ff, bits 10fb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
2465: uint32 srcaddr = idxval_src(ipc);
2466: uint8 srcdata = fetchbyte(srcaddr);
2467: int dstreg = (ipc->opcode >> 9) & 7;
2468: uint32 dstaddr = ADDRREG(dstreg);
2469: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
2470: uint8 outdata = srcdata;
2471:
2472: storebyte(dstaddr, outdata);
2473:
2474: VFLAG = 0;
2475: CFLAG = 0;
2476: NFLAG = ((sint8)outdata) < 0;
2477: ZFLAG = !outdata;
2478: PC+= 4;
2479: }
2480:
2481: void cpu_op_305a(t_ipc *ipc) /* MOVE */ {
2482: /* mask f1ff, bits 113b, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2483: uint32 srcaddr = idxval_src(ipc);
2484: uint8 srcdata = fetchbyte(srcaddr);
2485: int dstreg = (ipc->opcode >> 9) & 7;
2486: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
2487: uint8 outdata = srcdata;
2488:
2489: storebyte(dstaddr, outdata);
2490: PC+= 4;
2491: }
2492:
2493: void cpu_op_305b(t_ipc *ipc) /* MOVE */ {
2494: /* mask f1ff, bits 113b, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2495: uint32 srcaddr = idxval_src(ipc);
2496: uint8 srcdata = fetchbyte(srcaddr);
2497: int dstreg = (ipc->opcode >> 9) & 7;
2498: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
2499: uint8 outdata = srcdata;
2500:
2501: storebyte(dstaddr, outdata);
2502:
2503: VFLAG = 0;
2504: CFLAG = 0;
2505: NFLAG = ((sint8)outdata) < 0;
2506: ZFLAG = !outdata;
2507: PC+= 4;
2508: }
2509:
2510: void cpu_op_306a(t_ipc *ipc) /* MOVE */ {
2511: /* mask f1ff, bits 117b, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2512: uint32 srcaddr = idxval_src(ipc);
2513: uint8 srcdata = fetchbyte(srcaddr);
2514: int dstreg = (ipc->opcode >> 9) & 7;
2515: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2516: uint8 outdata = srcdata;
2517:
2518: storebyte(dstaddr, outdata);
2519: PC+= 6;
2520: }
2521:
2522: void cpu_op_306b(t_ipc *ipc) /* MOVE */ {
2523: /* mask f1ff, bits 117b, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2524: uint32 srcaddr = idxval_src(ipc);
2525: uint8 srcdata = fetchbyte(srcaddr);
2526: int dstreg = (ipc->opcode >> 9) & 7;
2527: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2528: uint8 outdata = srcdata;
2529:
2530: storebyte(dstaddr, outdata);
2531:
2532: VFLAG = 0;
2533: CFLAG = 0;
2534: NFLAG = ((sint8)outdata) < 0;
2535: ZFLAG = !outdata;
2536: PC+= 6;
2537: }
2538:
2539: void cpu_op_307a(t_ipc *ipc) /* MOVE */ {
2540: /* mask f1ff, bits 11bb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2541: uint32 srcaddr = idxval_src(ipc);
2542: uint8 srcdata = fetchbyte(srcaddr);
2543: int dstreg = (ipc->opcode >> 9) & 7;
2544: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2545: uint8 outdata = srcdata;
2546:
2547: storebyte(dstaddr, outdata);
2548: PC+= 6;
2549: }
2550:
2551: void cpu_op_307b(t_ipc *ipc) /* MOVE */ {
2552: /* mask f1ff, bits 11bb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2553: uint32 srcaddr = idxval_src(ipc);
2554: uint8 srcdata = fetchbyte(srcaddr);
2555: int dstreg = (ipc->opcode >> 9) & 7;
2556: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2557: uint8 outdata = srcdata;
2558:
2559: storebyte(dstaddr, outdata);
2560:
2561: VFLAG = 0;
2562: CFLAG = 0;
2563: NFLAG = ((sint8)outdata) < 0;
2564: ZFLAG = !outdata;
2565: PC+= 6;
2566: }
2567:
2568: void cpu_op_308a(t_ipc *ipc) /* MOVE */ {
2569: /* mask ffff, bits 11fb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2570: uint32 srcaddr = idxval_src(ipc);
2571: uint8 srcdata = fetchbyte(srcaddr);
2572: uint32 dstaddr = ipc->dst;
2573: uint8 outdata = srcdata;
2574:
2575: storebyte(dstaddr, outdata);
2576: PC+= 6;
2577: }
2578:
2579: void cpu_op_308b(t_ipc *ipc) /* MOVE */ {
2580: /* mask ffff, bits 11fb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2581: uint32 srcaddr = idxval_src(ipc);
2582: uint8 srcdata = fetchbyte(srcaddr);
2583: uint32 dstaddr = ipc->dst;
2584: uint8 outdata = srcdata;
2585:
2586: storebyte(dstaddr, outdata);
2587:
2588: VFLAG = 0;
2589: CFLAG = 0;
2590: NFLAG = ((sint8)outdata) < 0;
2591: ZFLAG = !outdata;
2592: PC+= 6;
2593: }
2594:
2595: void cpu_op_309a(t_ipc *ipc) /* MOVE */ {
2596: /* mask ffff, bits 13fb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2597: uint32 srcaddr = idxval_src(ipc);
2598: uint8 srcdata = fetchbyte(srcaddr);
2599: uint32 dstaddr = ipc->dst;
2600: uint8 outdata = srcdata;
2601:
2602: storebyte(dstaddr, outdata);
2603: PC+= 8;
2604: }
2605:
2606: void cpu_op_309b(t_ipc *ipc) /* MOVE */ {
2607: /* mask ffff, bits 13fb, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 10, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2608: uint32 srcaddr = idxval_src(ipc);
2609: uint8 srcdata = fetchbyte(srcaddr);
2610: uint32 dstaddr = ipc->dst;
2611: uint8 outdata = srcdata;
2612:
2613: storebyte(dstaddr, outdata);
2614:
2615: VFLAG = 0;
2616: CFLAG = 0;
2617: NFLAG = ((sint8)outdata) < 0;
2618: ZFLAG = !outdata;
2619: PC+= 8;
2620: }
2621:
2622: void cpu_op_310a(t_ipc *ipc) /* MOVE */ {
2623: /* mask f1ff, bits 103c, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
2624: uint8 srcdata = ipc->src;
2625: int dstreg = (ipc->opcode >> 9) & 7;
2626: uint8 outdata = srcdata;
2627:
2628: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
2629: PC+= 4;
2630: }
2631:
2632: void cpu_op_310b(t_ipc *ipc) /* MOVE */ {
2633: /* mask f1ff, bits 103c, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
2634: uint8 srcdata = ipc->src;
2635: int dstreg = (ipc->opcode >> 9) & 7;
2636: uint8 outdata = srcdata;
2637:
2638: DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
2639:
2640: VFLAG = 0;
2641: CFLAG = 0;
2642: NFLAG = ((sint8)outdata) < 0;
2643: ZFLAG = !outdata;
2644: PC+= 4;
2645: }
2646:
2647: void cpu_op_311a(t_ipc *ipc) /* MOVE */ {
2648: /* mask f1ff, bits 10bc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
2649: uint8 srcdata = ipc->src;
2650: int dstreg = (ipc->opcode >> 9) & 7;
2651: uint32 dstaddr = ADDRREG(dstreg);
2652: uint8 outdata = srcdata;
2653:
2654: storebyte(dstaddr, outdata);
2655: PC+= 4;
2656: }
2657:
2658: void cpu_op_311b(t_ipc *ipc) /* MOVE */ {
2659: /* mask f1ff, bits 10bc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 2, sbitpos 0, dbitpos 9, immvalue 0 */
2660: uint8 srcdata = ipc->src;
2661: int dstreg = (ipc->opcode >> 9) & 7;
2662: uint32 dstaddr = ADDRREG(dstreg);
2663: uint8 outdata = srcdata;
2664:
2665: storebyte(dstaddr, outdata);
2666:
2667: VFLAG = 0;
2668: CFLAG = 0;
2669: NFLAG = ((sint8)outdata) < 0;
2670: ZFLAG = !outdata;
2671: PC+= 4;
2672: }
2673:
2674: void cpu_op_312a(t_ipc *ipc) /* MOVE */ {
2675: /* mask f1ff, bits 10fc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
2676: uint8 srcdata = ipc->src;
2677: int dstreg = (ipc->opcode >> 9) & 7;
2678: uint32 dstaddr = ADDRREG(dstreg);
2679: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
2680: uint8 outdata = srcdata;
2681:
2682: storebyte(dstaddr, outdata);
2683: PC+= 4;
2684: }
2685:
2686: void cpu_op_312b(t_ipc *ipc) /* MOVE */ {
2687: /* mask f1ff, bits 10fc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
2688: uint8 srcdata = ipc->src;
2689: int dstreg = (ipc->opcode >> 9) & 7;
2690: uint32 dstaddr = ADDRREG(dstreg);
2691: uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
2692: uint8 outdata = srcdata;
2693:
2694: storebyte(dstaddr, outdata);
2695:
2696: VFLAG = 0;
2697: CFLAG = 0;
2698: NFLAG = ((sint8)outdata) < 0;
2699: ZFLAG = !outdata;
2700: PC+= 4;
2701: }
2702:
2703: void cpu_op_313a(t_ipc *ipc) /* MOVE */ {
2704: /* mask f1ff, bits 113c, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2705: uint8 srcdata = ipc->src;
2706: int dstreg = (ipc->opcode >> 9) & 7;
2707: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
2708: uint8 outdata = srcdata;
2709:
2710: storebyte(dstaddr, outdata);
2711: PC+= 4;
2712: }
2713:
2714: void cpu_op_313b(t_ipc *ipc) /* MOVE */ {
2715: /* mask f1ff, bits 113c, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 4, sbitpos 0, dbitpos 9, immvalue 0 */
2716: uint8 srcdata = ipc->src;
2717: int dstreg = (ipc->opcode >> 9) & 7;
2718: uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
2719: uint8 outdata = srcdata;
2720:
2721: storebyte(dstaddr, outdata);
2722:
2723: VFLAG = 0;
2724: CFLAG = 0;
2725: NFLAG = ((sint8)outdata) < 0;
2726: ZFLAG = !outdata;
2727: PC+= 4;
2728: }
2729:
2730: void cpu_op_314a(t_ipc *ipc) /* MOVE */ {
2731: /* mask f1ff, bits 117c, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2732: uint8 srcdata = ipc->src;
2733: int dstreg = (ipc->opcode >> 9) & 7;
2734: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2735: uint8 outdata = srcdata;
2736:
2737: storebyte(dstaddr, outdata);
2738: PC+= 6;
2739: }
2740:
2741: void cpu_op_314b(t_ipc *ipc) /* MOVE */ {
2742: /* mask f1ff, bits 117c, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 5, sbitpos 0, dbitpos 9, immvalue 0 */
2743: uint8 srcdata = ipc->src;
2744: int dstreg = (ipc->opcode >> 9) & 7;
2745: uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
2746: uint8 outdata = srcdata;
2747:
2748: storebyte(dstaddr, outdata);
2749:
2750: VFLAG = 0;
2751: CFLAG = 0;
2752: NFLAG = ((sint8)outdata) < 0;
2753: ZFLAG = !outdata;
2754: PC+= 6;
2755: }
2756:
2757: void cpu_op_315a(t_ipc *ipc) /* MOVE */ {
2758: /* mask f1ff, bits 11bc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2759: uint8 srcdata = ipc->src;
2760: int dstreg = (ipc->opcode >> 9) & 7;
2761: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2762: uint8 outdata = srcdata;
2763:
2764: storebyte(dstaddr, outdata);
2765: PC+= 6;
2766: }
2767:
2768: void cpu_op_315b(t_ipc *ipc) /* MOVE */ {
2769: /* mask f1ff, bits 11bc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 6, sbitpos 0, dbitpos 9, immvalue 0 */
2770: uint8 srcdata = ipc->src;
2771: int dstreg = (ipc->opcode >> 9) & 7;
2772: uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
2773: uint8 outdata = srcdata;
2774:
2775: storebyte(dstaddr, outdata);
2776:
2777: VFLAG = 0;
2778: CFLAG = 0;
2779: NFLAG = ((sint8)outdata) < 0;
2780: ZFLAG = !outdata;
2781: PC+= 6;
2782: }
2783:
2784: void cpu_op_316a(t_ipc *ipc) /* MOVE */ {
2785: /* mask ffff, bits 11fc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2786: uint8 srcdata = ipc->src;
2787: uint32 dstaddr = ipc->dst;
2788: uint8 outdata = srcdata;
2789:
2790: storebyte(dstaddr, outdata);
2791: PC+= 6;
2792: }
2793:
2794: void cpu_op_316b(t_ipc *ipc) /* MOVE */ {
2795: /* mask ffff, bits 11fc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 7, sbitpos 0, dbitpos 9, immvalue 0 */
2796: uint8 srcdata = ipc->src;
2797: uint32 dstaddr = ipc->dst;
2798: uint8 outdata = srcdata;
2799:
2800: storebyte(dstaddr, outdata);
2801:
2802: VFLAG = 0;
2803: CFLAG = 0;
2804: NFLAG = ((sint8)outdata) < 0;
2805: ZFLAG = !outdata;
2806: PC+= 6;
2807: }
2808:
2809: void cpu_op_317a(t_ipc *ipc) /* MOVE */ {
2810: /* mask ffff, bits 13fc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2811: uint8 srcdata = ipc->src;
2812: uint32 dstaddr = ipc->dst;
2813: uint8 outdata = srcdata;
2814:
2815: storebyte(dstaddr, outdata);
2816: PC+= 8;
2817: }
2818:
2819: void cpu_op_317b(t_ipc *ipc) /* MOVE */ {
2820: /* mask ffff, bits 13fc, mnemonic 21, priv 0, endblk 0, imm_notzero 0, used 0 set -2, size 1, stype 11, dtype 8, sbitpos 0, dbitpos 9, immvalue 0 */
2821: uint8 srcdata = ipc->src;
2822: uint32 dstaddr = ipc->dst;
2823: uint8 outdata = srcdata;
2824:
2825: storebyte(dstaddr, outdata);
2826:
2827: VFLAG = 0;
2828: CFLAG = 0;
2829: NFLAG = ((sint8)outdata) < 0;
2830: ZFLAG = !outdata;
2831: PC+= 8;
2832: }
2833:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.