Annotation of generator/src/out/cpu68k-3.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.