Annotation of generator/src/out/cpu68k-4.c, revision 1.1.1.2

1.1       root        1: /*****************************************************************************/
                      2: /*     Generator - Sega Genesis emulation - (c) James Ponder 1997-1998       */
                      3: /*****************************************************************************/
                      4: /*                                                                           */
                      5: /* cpu68k-4.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_534a(t_ipc *ipc) /* NEGX */ {
                     19:   /* mask fff8, bits 4000, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                     20:   int srcreg = (ipc->opcode >> 0) & 7;
                     21:   uint8 srcdata = DATAREG(srcreg);
                     22:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                     23: 
                     24:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
                     25:   PC+= 2;
                     26: }
                     27: 
                     28: void cpu_op_534b(t_ipc *ipc) /* NEGX */ {
                     29:   /* mask fff8, bits 4000, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                     30:   int srcreg = (ipc->opcode >> 0) & 7;
                     31:   uint8 srcdata = DATAREG(srcreg);
                     32:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                     33: 
                     34:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
                     35: 
                     36:   VFLAG = ((sint8)srcdata < 0) && ((sint8)outdata < 0);
                     37:   XFLAG = CFLAG = ((sint8)srcdata < 0) || ((sint8)outdata < 0);
                     38:   NFLAG = ((sint8)outdata) < 0;
                     39:   if (outdata) ZFLAG = 0;
                     40:   PC+= 2;
                     41: }
                     42: 
                     43: void cpu_op_535a(t_ipc *ipc) /* NEGX */ {
                     44:   /* mask fff8, bits 4010, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                     45:   int srcreg = (ipc->opcode >> 0) & 7;
                     46:   uint32 srcaddr = ADDRREG(srcreg);
                     47:   uint8 srcdata = fetchbyte(srcaddr);
                     48:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                     49: 
                     50:   storebyte(srcaddr, outdata);
                     51:   PC+= 2;
                     52: }
                     53: 
                     54: void cpu_op_535b(t_ipc *ipc) /* NEGX */ {
                     55:   /* mask fff8, bits 4010, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                     56:   int srcreg = (ipc->opcode >> 0) & 7;
                     57:   uint32 srcaddr = ADDRREG(srcreg);
                     58:   uint8 srcdata = fetchbyte(srcaddr);
                     59:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                     60: 
                     61:   storebyte(srcaddr, outdata);
                     62: 
                     63:   VFLAG = ((sint8)srcdata < 0) && ((sint8)outdata < 0);
                     64:   XFLAG = CFLAG = ((sint8)srcdata < 0) || ((sint8)outdata < 0);
                     65:   NFLAG = ((sint8)outdata) < 0;
                     66:   if (outdata) ZFLAG = 0;
                     67:   PC+= 2;
                     68: }
                     69: 
                     70: void cpu_op_536a(t_ipc *ipc) /* NEGX */ {
                     71:   /* mask fff8, bits 4018, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                     72:   int srcreg = (ipc->opcode >> 0) & 7;
                     73:   uint32 srcaddr = ADDRREG(srcreg);
                     74:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                     75:   uint8 srcdata = fetchbyte(srcaddr);
                     76:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                     77: 
                     78:   storebyte(srcaddr, outdata);
                     79:   PC+= 2;
                     80: }
                     81: 
                     82: void cpu_op_536b(t_ipc *ipc) /* NEGX */ {
                     83:   /* mask fff8, bits 4018, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                     84:   int srcreg = (ipc->opcode >> 0) & 7;
                     85:   uint32 srcaddr = ADDRREG(srcreg);
                     86:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                     87:   uint8 srcdata = fetchbyte(srcaddr);
                     88:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                     89: 
                     90:   storebyte(srcaddr, outdata);
                     91: 
                     92:   VFLAG = ((sint8)srcdata < 0) && ((sint8)outdata < 0);
                     93:   XFLAG = CFLAG = ((sint8)srcdata < 0) || ((sint8)outdata < 0);
                     94:   NFLAG = ((sint8)outdata) < 0;
                     95:   if (outdata) ZFLAG = 0;
                     96:   PC+= 2;
                     97: }
                     98: 
                     99: void cpu_op_537a(t_ipc *ipc) /* NEGX */ {
                    100:   /* mask fff8, bits 4020, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    101:   int srcreg = (ipc->opcode >> 0) & 7;
                    102:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                    103:   uint8 srcdata = fetchbyte(srcaddr);
                    104:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                    105: 
                    106:   storebyte(srcaddr, outdata);
                    107:   PC+= 2;
                    108: }
                    109: 
                    110: void cpu_op_537b(t_ipc *ipc) /* NEGX */ {
                    111:   /* mask fff8, bits 4020, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    112:   int srcreg = (ipc->opcode >> 0) & 7;
                    113:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                    114:   uint8 srcdata = fetchbyte(srcaddr);
                    115:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                    116: 
                    117:   storebyte(srcaddr, outdata);
                    118: 
                    119:   VFLAG = ((sint8)srcdata < 0) && ((sint8)outdata < 0);
                    120:   XFLAG = CFLAG = ((sint8)srcdata < 0) || ((sint8)outdata < 0);
                    121:   NFLAG = ((sint8)outdata) < 0;
                    122:   if (outdata) ZFLAG = 0;
                    123:   PC+= 2;
                    124: }
                    125: 
                    126: void cpu_op_538a(t_ipc *ipc) /* NEGX */ {
                    127:   /* mask fff8, bits 4028, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    128:   int srcreg = (ipc->opcode >> 0) & 7;
                    129:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                    130:   uint8 srcdata = fetchbyte(srcaddr);
                    131:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                    132: 
                    133:   storebyte(srcaddr, outdata);
                    134:   PC+= 4;
                    135: }
                    136: 
                    137: void cpu_op_538b(t_ipc *ipc) /* NEGX */ {
                    138:   /* mask fff8, bits 4028, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    139:   int srcreg = (ipc->opcode >> 0) & 7;
                    140:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                    141:   uint8 srcdata = fetchbyte(srcaddr);
                    142:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                    143: 
                    144:   storebyte(srcaddr, outdata);
                    145: 
                    146:   VFLAG = ((sint8)srcdata < 0) && ((sint8)outdata < 0);
                    147:   XFLAG = CFLAG = ((sint8)srcdata < 0) || ((sint8)outdata < 0);
                    148:   NFLAG = ((sint8)outdata) < 0;
                    149:   if (outdata) ZFLAG = 0;
                    150:   PC+= 4;
                    151: }
                    152: 
                    153: void cpu_op_539a(t_ipc *ipc) /* NEGX */ {
                    154:   /* mask fff8, bits 4030, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    155:   int srcreg = (ipc->opcode >> 0) & 7;
                    156:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                    157:   uint8 srcdata = fetchbyte(srcaddr);
                    158:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                    159: 
                    160:   storebyte(srcaddr, outdata);
                    161:   PC+= 4;
                    162: }
                    163: 
                    164: void cpu_op_539b(t_ipc *ipc) /* NEGX */ {
                    165:   /* mask fff8, bits 4030, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    166:   int srcreg = (ipc->opcode >> 0) & 7;
                    167:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                    168:   uint8 srcdata = fetchbyte(srcaddr);
                    169:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                    170: 
                    171:   storebyte(srcaddr, outdata);
                    172: 
                    173:   VFLAG = ((sint8)srcdata < 0) && ((sint8)outdata < 0);
                    174:   XFLAG = CFLAG = ((sint8)srcdata < 0) || ((sint8)outdata < 0);
                    175:   NFLAG = ((sint8)outdata) < 0;
                    176:   if (outdata) ZFLAG = 0;
                    177:   PC+= 4;
                    178: }
                    179: 
                    180: void cpu_op_540a(t_ipc *ipc) /* NEGX */ {
                    181:   /* mask ffff, bits 4038, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    182:   uint32 srcaddr = ipc->src;
                    183:   uint8 srcdata = fetchbyte(srcaddr);
                    184:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                    185: 
                    186:   storebyte(srcaddr, outdata);
                    187:   PC+= 4;
                    188: }
                    189: 
                    190: void cpu_op_540b(t_ipc *ipc) /* NEGX */ {
                    191:   /* mask ffff, bits 4038, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    192:   uint32 srcaddr = ipc->src;
                    193:   uint8 srcdata = fetchbyte(srcaddr);
                    194:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                    195: 
                    196:   storebyte(srcaddr, outdata);
                    197: 
                    198:   VFLAG = ((sint8)srcdata < 0) && ((sint8)outdata < 0);
                    199:   XFLAG = CFLAG = ((sint8)srcdata < 0) || ((sint8)outdata < 0);
                    200:   NFLAG = ((sint8)outdata) < 0;
                    201:   if (outdata) ZFLAG = 0;
                    202:   PC+= 4;
                    203: }
                    204: 
                    205: void cpu_op_541a(t_ipc *ipc) /* NEGX */ {
                    206:   /* mask ffff, bits 4039, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    207:   uint32 srcaddr = ipc->src;
                    208:   uint8 srcdata = fetchbyte(srcaddr);
                    209:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                    210: 
                    211:   storebyte(srcaddr, outdata);
                    212:   PC+= 6;
                    213: }
                    214: 
                    215: void cpu_op_541b(t_ipc *ipc) /* NEGX */ {
                    216:   /* mask ffff, bits 4039, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    217:   uint32 srcaddr = ipc->src;
                    218:   uint8 srcdata = fetchbyte(srcaddr);
                    219:   uint8 outdata = 0 - (sint8)srcdata - XFLAG;
                    220: 
                    221:   storebyte(srcaddr, outdata);
                    222: 
                    223:   VFLAG = ((sint8)srcdata < 0) && ((sint8)outdata < 0);
                    224:   XFLAG = CFLAG = ((sint8)srcdata < 0) || ((sint8)outdata < 0);
                    225:   NFLAG = ((sint8)outdata) < 0;
                    226:   if (outdata) ZFLAG = 0;
                    227:   PC+= 6;
                    228: }
                    229: 
                    230: void cpu_op_542a(t_ipc *ipc) /* NEGX */ {
                    231:   /* mask fff8, bits 4040, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    232:   int srcreg = (ipc->opcode >> 0) & 7;
                    233:   uint16 srcdata = DATAREG(srcreg);
                    234:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    235: 
                    236:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xffff) | outdata;
                    237:   PC+= 2;
                    238: }
                    239: 
                    240: void cpu_op_542b(t_ipc *ipc) /* NEGX */ {
                    241:   /* mask fff8, bits 4040, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    242:   int srcreg = (ipc->opcode >> 0) & 7;
                    243:   uint16 srcdata = DATAREG(srcreg);
                    244:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    245: 
                    246:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xffff) | outdata;
                    247: 
                    248:   VFLAG = ((sint16)srcdata < 0) && ((sint16)outdata < 0);
                    249:   XFLAG = CFLAG = ((sint16)srcdata < 0) || ((sint16)outdata < 0);
                    250:   NFLAG = ((sint16)outdata) < 0;
                    251:   if (outdata) ZFLAG = 0;
                    252:   PC+= 2;
                    253: }
                    254: 
                    255: void cpu_op_543a(t_ipc *ipc) /* NEGX */ {
                    256:   /* mask fff8, bits 4050, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    257:   int srcreg = (ipc->opcode >> 0) & 7;
                    258:   uint32 srcaddr = ADDRREG(srcreg);
                    259:   uint16 srcdata = fetchword(srcaddr);
                    260:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    261: 
                    262:   storeword(srcaddr, outdata);
                    263:   PC+= 2;
                    264: }
                    265: 
                    266: void cpu_op_543b(t_ipc *ipc) /* NEGX */ {
                    267:   /* mask fff8, bits 4050, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    268:   int srcreg = (ipc->opcode >> 0) & 7;
                    269:   uint32 srcaddr = ADDRREG(srcreg);
                    270:   uint16 srcdata = fetchword(srcaddr);
                    271:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    272: 
                    273:   storeword(srcaddr, outdata);
                    274: 
                    275:   VFLAG = ((sint16)srcdata < 0) && ((sint16)outdata < 0);
                    276:   XFLAG = CFLAG = ((sint16)srcdata < 0) || ((sint16)outdata < 0);
                    277:   NFLAG = ((sint16)outdata) < 0;
                    278:   if (outdata) ZFLAG = 0;
                    279:   PC+= 2;
                    280: }
                    281: 
                    282: void cpu_op_544a(t_ipc *ipc) /* NEGX */ {
                    283:   /* mask fff8, bits 4058, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    284:   int srcreg = (ipc->opcode >> 0) & 7;
                    285:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                    286:   uint16 srcdata = fetchword(srcaddr);
                    287:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    288: 
                    289:   storeword(srcaddr, outdata);
                    290:   PC+= 2;
                    291: }
                    292: 
                    293: void cpu_op_544b(t_ipc *ipc) /* NEGX */ {
                    294:   /* mask fff8, bits 4058, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    295:   int srcreg = (ipc->opcode >> 0) & 7;
                    296:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                    297:   uint16 srcdata = fetchword(srcaddr);
                    298:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    299: 
                    300:   storeword(srcaddr, outdata);
                    301: 
                    302:   VFLAG = ((sint16)srcdata < 0) && ((sint16)outdata < 0);
                    303:   XFLAG = CFLAG = ((sint16)srcdata < 0) || ((sint16)outdata < 0);
                    304:   NFLAG = ((sint16)outdata) < 0;
                    305:   if (outdata) ZFLAG = 0;
                    306:   PC+= 2;
                    307: }
                    308: 
                    309: void cpu_op_545a(t_ipc *ipc) /* NEGX */ {
                    310:   /* mask fff8, bits 4060, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    311:   int srcreg = (ipc->opcode >> 0) & 7;
                    312:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                    313:   uint16 srcdata = fetchword(srcaddr);
                    314:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    315: 
                    316:   storeword(srcaddr, outdata);
                    317:   PC+= 2;
                    318: }
                    319: 
                    320: void cpu_op_545b(t_ipc *ipc) /* NEGX */ {
                    321:   /* mask fff8, bits 4060, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    322:   int srcreg = (ipc->opcode >> 0) & 7;
                    323:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                    324:   uint16 srcdata = fetchword(srcaddr);
                    325:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    326: 
                    327:   storeword(srcaddr, outdata);
                    328: 
                    329:   VFLAG = ((sint16)srcdata < 0) && ((sint16)outdata < 0);
                    330:   XFLAG = CFLAG = ((sint16)srcdata < 0) || ((sint16)outdata < 0);
                    331:   NFLAG = ((sint16)outdata) < 0;
                    332:   if (outdata) ZFLAG = 0;
                    333:   PC+= 2;
                    334: }
                    335: 
                    336: void cpu_op_546a(t_ipc *ipc) /* NEGX */ {
                    337:   /* mask fff8, bits 4068, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    338:   int srcreg = (ipc->opcode >> 0) & 7;
                    339:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                    340:   uint16 srcdata = fetchword(srcaddr);
                    341:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    342: 
                    343:   storeword(srcaddr, outdata);
                    344:   PC+= 4;
                    345: }
                    346: 
                    347: void cpu_op_546b(t_ipc *ipc) /* NEGX */ {
                    348:   /* mask fff8, bits 4068, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    349:   int srcreg = (ipc->opcode >> 0) & 7;
                    350:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                    351:   uint16 srcdata = fetchword(srcaddr);
                    352:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    353: 
                    354:   storeword(srcaddr, outdata);
                    355: 
                    356:   VFLAG = ((sint16)srcdata < 0) && ((sint16)outdata < 0);
                    357:   XFLAG = CFLAG = ((sint16)srcdata < 0) || ((sint16)outdata < 0);
                    358:   NFLAG = ((sint16)outdata) < 0;
                    359:   if (outdata) ZFLAG = 0;
                    360:   PC+= 4;
                    361: }
                    362: 
                    363: void cpu_op_547a(t_ipc *ipc) /* NEGX */ {
                    364:   /* mask fff8, bits 4070, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    365:   int srcreg = (ipc->opcode >> 0) & 7;
                    366:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                    367:   uint16 srcdata = fetchword(srcaddr);
                    368:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    369: 
                    370:   storeword(srcaddr, outdata);
                    371:   PC+= 4;
                    372: }
                    373: 
                    374: void cpu_op_547b(t_ipc *ipc) /* NEGX */ {
                    375:   /* mask fff8, bits 4070, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    376:   int srcreg = (ipc->opcode >> 0) & 7;
                    377:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                    378:   uint16 srcdata = fetchword(srcaddr);
                    379:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    380: 
                    381:   storeword(srcaddr, outdata);
                    382: 
                    383:   VFLAG = ((sint16)srcdata < 0) && ((sint16)outdata < 0);
                    384:   XFLAG = CFLAG = ((sint16)srcdata < 0) || ((sint16)outdata < 0);
                    385:   NFLAG = ((sint16)outdata) < 0;
                    386:   if (outdata) ZFLAG = 0;
                    387:   PC+= 4;
                    388: }
                    389: 
                    390: void cpu_op_548a(t_ipc *ipc) /* NEGX */ {
                    391:   /* mask ffff, bits 4078, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    392:   uint32 srcaddr = ipc->src;
                    393:   uint16 srcdata = fetchword(srcaddr);
                    394:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    395: 
                    396:   storeword(srcaddr, outdata);
                    397:   PC+= 4;
                    398: }
                    399: 
                    400: void cpu_op_548b(t_ipc *ipc) /* NEGX */ {
                    401:   /* mask ffff, bits 4078, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    402:   uint32 srcaddr = ipc->src;
                    403:   uint16 srcdata = fetchword(srcaddr);
                    404:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    405: 
                    406:   storeword(srcaddr, outdata);
                    407: 
                    408:   VFLAG = ((sint16)srcdata < 0) && ((sint16)outdata < 0);
                    409:   XFLAG = CFLAG = ((sint16)srcdata < 0) || ((sint16)outdata < 0);
                    410:   NFLAG = ((sint16)outdata) < 0;
                    411:   if (outdata) ZFLAG = 0;
                    412:   PC+= 4;
                    413: }
                    414: 
                    415: void cpu_op_549a(t_ipc *ipc) /* NEGX */ {
                    416:   /* mask ffff, bits 4079, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    417:   uint32 srcaddr = ipc->src;
                    418:   uint16 srcdata = fetchword(srcaddr);
                    419:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    420: 
                    421:   storeword(srcaddr, outdata);
                    422:   PC+= 6;
                    423: }
                    424: 
                    425: void cpu_op_549b(t_ipc *ipc) /* NEGX */ {
                    426:   /* mask ffff, bits 4079, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    427:   uint32 srcaddr = ipc->src;
                    428:   uint16 srcdata = fetchword(srcaddr);
                    429:   uint16 outdata = 0 - (sint16)srcdata - XFLAG;
                    430: 
                    431:   storeword(srcaddr, outdata);
                    432: 
                    433:   VFLAG = ((sint16)srcdata < 0) && ((sint16)outdata < 0);
                    434:   XFLAG = CFLAG = ((sint16)srcdata < 0) || ((sint16)outdata < 0);
                    435:   NFLAG = ((sint16)outdata) < 0;
                    436:   if (outdata) ZFLAG = 0;
                    437:   PC+= 6;
                    438: }
                    439: 
                    440: void cpu_op_550a(t_ipc *ipc) /* NEGX */ {
                    441:   /* mask fff8, bits 4080, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    442:   int srcreg = (ipc->opcode >> 0) & 7;
                    443:   uint32 srcdata = DATAREG(srcreg);
                    444:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    445: 
                    446:   DATAREG(srcreg) = outdata;
                    447:   PC+= 2;
                    448: }
                    449: 
                    450: void cpu_op_550b(t_ipc *ipc) /* NEGX */ {
                    451:   /* mask fff8, bits 4080, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    452:   int srcreg = (ipc->opcode >> 0) & 7;
                    453:   uint32 srcdata = DATAREG(srcreg);
                    454:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    455: 
                    456:   DATAREG(srcreg) = outdata;
                    457: 
                    458:   VFLAG = ((sint32)srcdata < 0) && ((sint32)outdata < 0);
                    459:   XFLAG = CFLAG = ((sint32)srcdata < 0) || ((sint32)outdata < 0);
                    460:   NFLAG = ((sint32)outdata) < 0;
                    461:   if (outdata) ZFLAG = 0;
                    462:   PC+= 2;
                    463: }
                    464: 
                    465: void cpu_op_551a(t_ipc *ipc) /* NEGX */ {
                    466:   /* mask fff8, bits 4090, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    467:   int srcreg = (ipc->opcode >> 0) & 7;
                    468:   uint32 srcaddr = ADDRREG(srcreg);
                    469:   uint32 srcdata = fetchlong(srcaddr);
                    470:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    471: 
                    472:   storelong(srcaddr, outdata);
                    473:   PC+= 2;
                    474: }
                    475: 
                    476: void cpu_op_551b(t_ipc *ipc) /* NEGX */ {
                    477:   /* mask fff8, bits 4090, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    478:   int srcreg = (ipc->opcode >> 0) & 7;
                    479:   uint32 srcaddr = ADDRREG(srcreg);
                    480:   uint32 srcdata = fetchlong(srcaddr);
                    481:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    482: 
                    483:   storelong(srcaddr, outdata);
                    484: 
                    485:   VFLAG = ((sint32)srcdata < 0) && ((sint32)outdata < 0);
                    486:   XFLAG = CFLAG = ((sint32)srcdata < 0) || ((sint32)outdata < 0);
                    487:   NFLAG = ((sint32)outdata) < 0;
                    488:   if (outdata) ZFLAG = 0;
                    489:   PC+= 2;
                    490: }
                    491: 
                    492: void cpu_op_552a(t_ipc *ipc) /* NEGX */ {
                    493:   /* mask fff8, bits 4098, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    494:   int srcreg = (ipc->opcode >> 0) & 7;
                    495:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
                    496:   uint32 srcdata = fetchlong(srcaddr);
                    497:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    498: 
                    499:   storelong(srcaddr, outdata);
                    500:   PC+= 2;
                    501: }
                    502: 
                    503: void cpu_op_552b(t_ipc *ipc) /* NEGX */ {
                    504:   /* mask fff8, bits 4098, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    505:   int srcreg = (ipc->opcode >> 0) & 7;
                    506:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
                    507:   uint32 srcdata = fetchlong(srcaddr);
                    508:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    509: 
                    510:   storelong(srcaddr, outdata);
                    511: 
                    512:   VFLAG = ((sint32)srcdata < 0) && ((sint32)outdata < 0);
                    513:   XFLAG = CFLAG = ((sint32)srcdata < 0) || ((sint32)outdata < 0);
                    514:   NFLAG = ((sint32)outdata) < 0;
                    515:   if (outdata) ZFLAG = 0;
                    516:   PC+= 2;
                    517: }
                    518: 
                    519: void cpu_op_553a(t_ipc *ipc) /* NEGX */ {
                    520:   /* mask fff8, bits 40a0, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    521:   int srcreg = (ipc->opcode >> 0) & 7;
                    522:   uint32 srcaddr = ADDRREG(srcreg)-=4;
                    523:   uint32 srcdata = fetchlong(srcaddr);
                    524:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    525: 
                    526:   storelong(srcaddr, outdata);
                    527:   PC+= 2;
                    528: }
                    529: 
                    530: void cpu_op_553b(t_ipc *ipc) /* NEGX */ {
                    531:   /* mask fff8, bits 40a0, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    532:   int srcreg = (ipc->opcode >> 0) & 7;
                    533:   uint32 srcaddr = ADDRREG(srcreg)-=4;
                    534:   uint32 srcdata = fetchlong(srcaddr);
                    535:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    536: 
                    537:   storelong(srcaddr, outdata);
                    538: 
                    539:   VFLAG = ((sint32)srcdata < 0) && ((sint32)outdata < 0);
                    540:   XFLAG = CFLAG = ((sint32)srcdata < 0) || ((sint32)outdata < 0);
                    541:   NFLAG = ((sint32)outdata) < 0;
                    542:   if (outdata) ZFLAG = 0;
                    543:   PC+= 2;
                    544: }
                    545: 
                    546: void cpu_op_554a(t_ipc *ipc) /* NEGX */ {
                    547:   /* mask fff8, bits 40a8, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    548:   int srcreg = (ipc->opcode >> 0) & 7;
                    549:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                    550:   uint32 srcdata = fetchlong(srcaddr);
                    551:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    552: 
                    553:   storelong(srcaddr, outdata);
                    554:   PC+= 4;
                    555: }
                    556: 
                    557: void cpu_op_554b(t_ipc *ipc) /* NEGX */ {
                    558:   /* mask fff8, bits 40a8, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    559:   int srcreg = (ipc->opcode >> 0) & 7;
                    560:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                    561:   uint32 srcdata = fetchlong(srcaddr);
                    562:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    563: 
                    564:   storelong(srcaddr, outdata);
                    565: 
                    566:   VFLAG = ((sint32)srcdata < 0) && ((sint32)outdata < 0);
                    567:   XFLAG = CFLAG = ((sint32)srcdata < 0) || ((sint32)outdata < 0);
                    568:   NFLAG = ((sint32)outdata) < 0;
                    569:   if (outdata) ZFLAG = 0;
                    570:   PC+= 4;
                    571: }
                    572: 
                    573: void cpu_op_555a(t_ipc *ipc) /* NEGX */ {
                    574:   /* mask fff8, bits 40b0, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    575:   int srcreg = (ipc->opcode >> 0) & 7;
                    576:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                    577:   uint32 srcdata = fetchlong(srcaddr);
                    578:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    579: 
                    580:   storelong(srcaddr, outdata);
                    581:   PC+= 4;
                    582: }
                    583: 
                    584: void cpu_op_555b(t_ipc *ipc) /* NEGX */ {
                    585:   /* mask fff8, bits 40b0, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    586:   int srcreg = (ipc->opcode >> 0) & 7;
                    587:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                    588:   uint32 srcdata = fetchlong(srcaddr);
                    589:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    590: 
                    591:   storelong(srcaddr, outdata);
                    592: 
                    593:   VFLAG = ((sint32)srcdata < 0) && ((sint32)outdata < 0);
                    594:   XFLAG = CFLAG = ((sint32)srcdata < 0) || ((sint32)outdata < 0);
                    595:   NFLAG = ((sint32)outdata) < 0;
                    596:   if (outdata) ZFLAG = 0;
                    597:   PC+= 4;
                    598: }
                    599: 
                    600: void cpu_op_556a(t_ipc *ipc) /* NEGX */ {
                    601:   /* mask ffff, bits 40b8, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    602:   uint32 srcaddr = ipc->src;
                    603:   uint32 srcdata = fetchlong(srcaddr);
                    604:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    605: 
                    606:   storelong(srcaddr, outdata);
                    607:   PC+= 4;
                    608: }
                    609: 
                    610: void cpu_op_556b(t_ipc *ipc) /* NEGX */ {
                    611:   /* mask ffff, bits 40b8, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    612:   uint32 srcaddr = ipc->src;
                    613:   uint32 srcdata = fetchlong(srcaddr);
                    614:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    615: 
                    616:   storelong(srcaddr, outdata);
                    617: 
                    618:   VFLAG = ((sint32)srcdata < 0) && ((sint32)outdata < 0);
                    619:   XFLAG = CFLAG = ((sint32)srcdata < 0) || ((sint32)outdata < 0);
                    620:   NFLAG = ((sint32)outdata) < 0;
                    621:   if (outdata) ZFLAG = 0;
                    622:   PC+= 4;
                    623: }
                    624: 
                    625: void cpu_op_557a(t_ipc *ipc) /* NEGX */ {
                    626:   /* mask ffff, bits 40b9, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    627:   uint32 srcaddr = ipc->src;
                    628:   uint32 srcdata = fetchlong(srcaddr);
                    629:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    630: 
                    631:   storelong(srcaddr, outdata);
                    632:   PC+= 6;
                    633: }
                    634: 
                    635: void cpu_op_557b(t_ipc *ipc) /* NEGX */ {
                    636:   /* mask ffff, bits 40b9, mnemonic 32, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    637:   uint32 srcaddr = ipc->src;
                    638:   uint32 srcdata = fetchlong(srcaddr);
                    639:   uint32 outdata = 0 - (sint32)srcdata - XFLAG;
                    640: 
                    641:   storelong(srcaddr, outdata);
                    642: 
                    643:   VFLAG = ((sint32)srcdata < 0) && ((sint32)outdata < 0);
                    644:   XFLAG = CFLAG = ((sint32)srcdata < 0) || ((sint32)outdata < 0);
                    645:   NFLAG = ((sint32)outdata) < 0;
                    646:   if (outdata) ZFLAG = 0;
                    647:   PC+= 6;
                    648: }
                    649: 
                    650: void cpu_op_558a(t_ipc *ipc) /* CLR */ {
                    651:   /* mask fff8, bits 4200, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    652:   int srcreg = (ipc->opcode >> 0) & 7;
                    653:   uint8 srcdata = DATAREG(srcreg);
                    654:   uint8 outdata = 0;
                    655: 
                    656:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
                    657:   PC+= 2;
                    658: }
                    659: 
                    660: void cpu_op_558b(t_ipc *ipc) /* CLR */ {
                    661:   /* mask fff8, bits 4200, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    662:   int srcreg = (ipc->opcode >> 0) & 7;
                    663:   uint8 srcdata = DATAREG(srcreg);
                    664:   uint8 outdata = 0;
                    665: 
                    666:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
                    667: 
                    668:   VFLAG = 0;
                    669:   CFLAG = 0;
                    670:   NFLAG = 0;
                    671:   ZFLAG = 1;
                    672:   PC+= 2;
                    673: }
                    674: 
                    675: void cpu_op_559a(t_ipc *ipc) /* CLR */ {
                    676:   /* mask fff8, bits 4210, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    677:   int srcreg = (ipc->opcode >> 0) & 7;
                    678:   uint32 srcaddr = ADDRREG(srcreg);
                    679:   uint8 srcdata = fetchbyte(srcaddr);
                    680:   uint8 outdata = 0;
                    681: 
                    682:   storebyte(srcaddr, outdata);
                    683:   PC+= 2;
                    684: }
                    685: 
                    686: void cpu_op_559b(t_ipc *ipc) /* CLR */ {
                    687:   /* mask fff8, bits 4210, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    688:   int srcreg = (ipc->opcode >> 0) & 7;
                    689:   uint32 srcaddr = ADDRREG(srcreg);
                    690:   uint8 srcdata = fetchbyte(srcaddr);
                    691:   uint8 outdata = 0;
                    692: 
                    693:   storebyte(srcaddr, outdata);
                    694: 
                    695:   VFLAG = 0;
                    696:   CFLAG = 0;
                    697:   NFLAG = 0;
                    698:   ZFLAG = 1;
                    699:   PC+= 2;
                    700: }
                    701: 
                    702: void cpu_op_560a(t_ipc *ipc) /* CLR */ {
                    703:   /* mask fff8, bits 4218, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    704:   int srcreg = (ipc->opcode >> 0) & 7;
                    705:   uint32 srcaddr = ADDRREG(srcreg);
                    706:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                    707:   uint8 srcdata = fetchbyte(srcaddr);
                    708:   uint8 outdata = 0;
                    709: 
                    710:   storebyte(srcaddr, outdata);
                    711:   PC+= 2;
                    712: }
                    713: 
                    714: void cpu_op_560b(t_ipc *ipc) /* CLR */ {
                    715:   /* mask fff8, bits 4218, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    716:   int srcreg = (ipc->opcode >> 0) & 7;
                    717:   uint32 srcaddr = ADDRREG(srcreg);
                    718:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                    719:   uint8 srcdata = fetchbyte(srcaddr);
                    720:   uint8 outdata = 0;
                    721: 
                    722:   storebyte(srcaddr, outdata);
                    723: 
                    724:   VFLAG = 0;
                    725:   CFLAG = 0;
                    726:   NFLAG = 0;
                    727:   ZFLAG = 1;
                    728:   PC+= 2;
                    729: }
                    730: 
                    731: void cpu_op_561a(t_ipc *ipc) /* CLR */ {
                    732:   /* mask fff8, bits 4220, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    733:   int srcreg = (ipc->opcode >> 0) & 7;
                    734:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                    735:   uint8 srcdata = fetchbyte(srcaddr);
                    736:   uint8 outdata = 0;
                    737: 
                    738:   storebyte(srcaddr, outdata);
                    739:   PC+= 2;
                    740: }
                    741: 
                    742: void cpu_op_561b(t_ipc *ipc) /* CLR */ {
                    743:   /* mask fff8, bits 4220, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    744:   int srcreg = (ipc->opcode >> 0) & 7;
                    745:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                    746:   uint8 srcdata = fetchbyte(srcaddr);
                    747:   uint8 outdata = 0;
                    748: 
                    749:   storebyte(srcaddr, outdata);
                    750: 
                    751:   VFLAG = 0;
                    752:   CFLAG = 0;
                    753:   NFLAG = 0;
                    754:   ZFLAG = 1;
                    755:   PC+= 2;
                    756: }
                    757: 
                    758: void cpu_op_562a(t_ipc *ipc) /* CLR */ {
                    759:   /* mask fff8, bits 4228, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    760:   int srcreg = (ipc->opcode >> 0) & 7;
                    761:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                    762:   uint8 srcdata = fetchbyte(srcaddr);
                    763:   uint8 outdata = 0;
                    764: 
                    765:   storebyte(srcaddr, outdata);
                    766:   PC+= 4;
                    767: }
                    768: 
                    769: void cpu_op_562b(t_ipc *ipc) /* CLR */ {
                    770:   /* mask fff8, bits 4228, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    771:   int srcreg = (ipc->opcode >> 0) & 7;
                    772:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                    773:   uint8 srcdata = fetchbyte(srcaddr);
                    774:   uint8 outdata = 0;
                    775: 
                    776:   storebyte(srcaddr, outdata);
                    777: 
                    778:   VFLAG = 0;
                    779:   CFLAG = 0;
                    780:   NFLAG = 0;
                    781:   ZFLAG = 1;
                    782:   PC+= 4;
                    783: }
                    784: 
                    785: void cpu_op_563a(t_ipc *ipc) /* CLR */ {
                    786:   /* mask fff8, bits 4230, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    787:   int srcreg = (ipc->opcode >> 0) & 7;
                    788:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                    789:   uint8 srcdata = fetchbyte(srcaddr);
                    790:   uint8 outdata = 0;
                    791: 
                    792:   storebyte(srcaddr, outdata);
                    793:   PC+= 4;
                    794: }
                    795: 
                    796: void cpu_op_563b(t_ipc *ipc) /* CLR */ {
                    797:   /* mask fff8, bits 4230, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    798:   int srcreg = (ipc->opcode >> 0) & 7;
                    799:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                    800:   uint8 srcdata = fetchbyte(srcaddr);
                    801:   uint8 outdata = 0;
                    802: 
                    803:   storebyte(srcaddr, outdata);
                    804: 
                    805:   VFLAG = 0;
                    806:   CFLAG = 0;
                    807:   NFLAG = 0;
                    808:   ZFLAG = 1;
                    809:   PC+= 4;
                    810: }
                    811: 
                    812: void cpu_op_564a(t_ipc *ipc) /* CLR */ {
                    813:   /* mask ffff, bits 4238, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    814:   uint32 srcaddr = ipc->src;
                    815:   uint8 srcdata = fetchbyte(srcaddr);
                    816:   uint8 outdata = 0;
                    817: 
                    818:   storebyte(srcaddr, outdata);
                    819:   PC+= 4;
                    820: }
                    821: 
                    822: void cpu_op_564b(t_ipc *ipc) /* CLR */ {
                    823:   /* mask ffff, bits 4238, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    824:   uint32 srcaddr = ipc->src;
                    825:   uint8 srcdata = fetchbyte(srcaddr);
                    826:   uint8 outdata = 0;
                    827: 
                    828:   storebyte(srcaddr, outdata);
                    829: 
                    830:   VFLAG = 0;
                    831:   CFLAG = 0;
                    832:   NFLAG = 0;
                    833:   ZFLAG = 1;
                    834:   PC+= 4;
                    835: }
                    836: 
                    837: void cpu_op_565a(t_ipc *ipc) /* CLR */ {
                    838:   /* mask ffff, bits 4239, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    839:   uint32 srcaddr = ipc->src;
                    840:   uint8 srcdata = fetchbyte(srcaddr);
                    841:   uint8 outdata = 0;
                    842: 
                    843:   storebyte(srcaddr, outdata);
                    844:   PC+= 6;
                    845: }
                    846: 
                    847: void cpu_op_565b(t_ipc *ipc) /* CLR */ {
                    848:   /* mask ffff, bits 4239, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    849:   uint32 srcaddr = ipc->src;
                    850:   uint8 srcdata = fetchbyte(srcaddr);
                    851:   uint8 outdata = 0;
                    852: 
                    853:   storebyte(srcaddr, outdata);
                    854: 
                    855:   VFLAG = 0;
                    856:   CFLAG = 0;
                    857:   NFLAG = 0;
                    858:   ZFLAG = 1;
                    859:   PC+= 6;
                    860: }
                    861: 
                    862: void cpu_op_566a(t_ipc *ipc) /* CLR */ {
                    863:   /* mask fff8, bits 4240, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    864:   int srcreg = (ipc->opcode >> 0) & 7;
                    865:   uint16 srcdata = DATAREG(srcreg);
                    866:   uint16 outdata = 0;
                    867: 
                    868:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xffff) | outdata;
                    869:   PC+= 2;
                    870: }
                    871: 
                    872: void cpu_op_566b(t_ipc *ipc) /* CLR */ {
                    873:   /* mask fff8, bits 4240, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    874:   int srcreg = (ipc->opcode >> 0) & 7;
                    875:   uint16 srcdata = DATAREG(srcreg);
                    876:   uint16 outdata = 0;
                    877: 
                    878:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xffff) | outdata;
                    879: 
                    880:   VFLAG = 0;
                    881:   CFLAG = 0;
                    882:   NFLAG = 0;
                    883:   ZFLAG = 1;
                    884:   PC+= 2;
                    885: }
                    886: 
                    887: void cpu_op_567a(t_ipc *ipc) /* CLR */ {
                    888:   /* mask fff8, bits 4250, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    889:   int srcreg = (ipc->opcode >> 0) & 7;
                    890:   uint32 srcaddr = ADDRREG(srcreg);
                    891:   uint16 srcdata = fetchword(srcaddr);
                    892:   uint16 outdata = 0;
                    893: 
                    894:   storeword(srcaddr, outdata);
                    895:   PC+= 2;
                    896: }
                    897: 
                    898: void cpu_op_567b(t_ipc *ipc) /* CLR */ {
                    899:   /* mask fff8, bits 4250, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    900:   int srcreg = (ipc->opcode >> 0) & 7;
                    901:   uint32 srcaddr = ADDRREG(srcreg);
                    902:   uint16 srcdata = fetchword(srcaddr);
                    903:   uint16 outdata = 0;
                    904: 
                    905:   storeword(srcaddr, outdata);
                    906: 
                    907:   VFLAG = 0;
                    908:   CFLAG = 0;
                    909:   NFLAG = 0;
                    910:   ZFLAG = 1;
                    911:   PC+= 2;
                    912: }
                    913: 
                    914: void cpu_op_568a(t_ipc *ipc) /* CLR */ {
                    915:   /* mask fff8, bits 4258, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    916:   int srcreg = (ipc->opcode >> 0) & 7;
                    917:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                    918:   uint16 srcdata = fetchword(srcaddr);
                    919:   uint16 outdata = 0;
                    920: 
                    921:   storeword(srcaddr, outdata);
                    922:   PC+= 2;
                    923: }
                    924: 
                    925: void cpu_op_568b(t_ipc *ipc) /* CLR */ {
                    926:   /* mask fff8, bits 4258, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    927:   int srcreg = (ipc->opcode >> 0) & 7;
                    928:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                    929:   uint16 srcdata = fetchword(srcaddr);
                    930:   uint16 outdata = 0;
                    931: 
                    932:   storeword(srcaddr, outdata);
                    933: 
                    934:   VFLAG = 0;
                    935:   CFLAG = 0;
                    936:   NFLAG = 0;
                    937:   ZFLAG = 1;
                    938:   PC+= 2;
                    939: }
                    940: 
                    941: void cpu_op_569a(t_ipc *ipc) /* CLR */ {
                    942:   /* mask fff8, bits 4260, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    943:   int srcreg = (ipc->opcode >> 0) & 7;
                    944:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                    945:   uint16 srcdata = fetchword(srcaddr);
                    946:   uint16 outdata = 0;
                    947: 
                    948:   storeword(srcaddr, outdata);
                    949:   PC+= 2;
                    950: }
                    951: 
                    952: void cpu_op_569b(t_ipc *ipc) /* CLR */ {
                    953:   /* mask fff8, bits 4260, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    954:   int srcreg = (ipc->opcode >> 0) & 7;
                    955:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                    956:   uint16 srcdata = fetchword(srcaddr);
                    957:   uint16 outdata = 0;
                    958: 
                    959:   storeword(srcaddr, outdata);
                    960: 
                    961:   VFLAG = 0;
                    962:   CFLAG = 0;
                    963:   NFLAG = 0;
                    964:   ZFLAG = 1;
                    965:   PC+= 2;
                    966: }
                    967: 
                    968: void cpu_op_570a(t_ipc *ipc) /* CLR */ {
                    969:   /* mask fff8, bits 4268, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    970:   int srcreg = (ipc->opcode >> 0) & 7;
                    971:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                    972:   uint16 srcdata = fetchword(srcaddr);
                    973:   uint16 outdata = 0;
                    974: 
                    975:   storeword(srcaddr, outdata);
                    976:   PC+= 4;
                    977: }
                    978: 
                    979: void cpu_op_570b(t_ipc *ipc) /* CLR */ {
                    980:   /* mask fff8, bits 4268, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    981:   int srcreg = (ipc->opcode >> 0) & 7;
                    982:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                    983:   uint16 srcdata = fetchword(srcaddr);
                    984:   uint16 outdata = 0;
                    985: 
                    986:   storeword(srcaddr, outdata);
                    987: 
                    988:   VFLAG = 0;
                    989:   CFLAG = 0;
                    990:   NFLAG = 0;
                    991:   ZFLAG = 1;
                    992:   PC+= 4;
                    993: }
                    994: 
                    995: void cpu_op_571a(t_ipc *ipc) /* CLR */ {
                    996:   /* mask fff8, bits 4270, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                    997:   int srcreg = (ipc->opcode >> 0) & 7;
                    998:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                    999:   uint16 srcdata = fetchword(srcaddr);
                   1000:   uint16 outdata = 0;
                   1001: 
                   1002:   storeword(srcaddr, outdata);
                   1003:   PC+= 4;
                   1004: }
                   1005: 
                   1006: void cpu_op_571b(t_ipc *ipc) /* CLR */ {
                   1007:   /* mask fff8, bits 4270, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1008:   int srcreg = (ipc->opcode >> 0) & 7;
                   1009:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   1010:   uint16 srcdata = fetchword(srcaddr);
                   1011:   uint16 outdata = 0;
                   1012: 
                   1013:   storeword(srcaddr, outdata);
                   1014: 
                   1015:   VFLAG = 0;
                   1016:   CFLAG = 0;
                   1017:   NFLAG = 0;
                   1018:   ZFLAG = 1;
                   1019:   PC+= 4;
                   1020: }
                   1021: 
                   1022: void cpu_op_572a(t_ipc *ipc) /* CLR */ {
                   1023:   /* mask ffff, bits 4278, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1024:   uint32 srcaddr = ipc->src;
                   1025:   uint16 srcdata = fetchword(srcaddr);
                   1026:   uint16 outdata = 0;
                   1027: 
                   1028:   storeword(srcaddr, outdata);
                   1029:   PC+= 4;
                   1030: }
                   1031: 
                   1032: void cpu_op_572b(t_ipc *ipc) /* CLR */ {
                   1033:   /* mask ffff, bits 4278, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1034:   uint32 srcaddr = ipc->src;
                   1035:   uint16 srcdata = fetchword(srcaddr);
                   1036:   uint16 outdata = 0;
                   1037: 
                   1038:   storeword(srcaddr, outdata);
                   1039: 
                   1040:   VFLAG = 0;
                   1041:   CFLAG = 0;
                   1042:   NFLAG = 0;
                   1043:   ZFLAG = 1;
                   1044:   PC+= 4;
                   1045: }
                   1046: 
                   1047: void cpu_op_573a(t_ipc *ipc) /* CLR */ {
                   1048:   /* mask ffff, bits 4279, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1049:   uint32 srcaddr = ipc->src;
                   1050:   uint16 srcdata = fetchword(srcaddr);
                   1051:   uint16 outdata = 0;
                   1052: 
                   1053:   storeword(srcaddr, outdata);
                   1054:   PC+= 6;
                   1055: }
                   1056: 
                   1057: void cpu_op_573b(t_ipc *ipc) /* CLR */ {
                   1058:   /* mask ffff, bits 4279, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 2, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1059:   uint32 srcaddr = ipc->src;
                   1060:   uint16 srcdata = fetchword(srcaddr);
                   1061:   uint16 outdata = 0;
                   1062: 
                   1063:   storeword(srcaddr, outdata);
                   1064: 
                   1065:   VFLAG = 0;
                   1066:   CFLAG = 0;
                   1067:   NFLAG = 0;
                   1068:   ZFLAG = 1;
                   1069:   PC+= 6;
                   1070: }
                   1071: 
                   1072: void cpu_op_574a(t_ipc *ipc) /* CLR */ {
                   1073:   /* mask fff8, bits 4280, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1074:   int srcreg = (ipc->opcode >> 0) & 7;
                   1075:   uint32 srcdata = DATAREG(srcreg);
                   1076:   uint32 outdata = 0;
                   1077: 
                   1078:   DATAREG(srcreg) = outdata;
                   1079:   PC+= 2;
                   1080: }
                   1081: 
                   1082: void cpu_op_574b(t_ipc *ipc) /* CLR */ {
                   1083:   /* mask fff8, bits 4280, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1084:   int srcreg = (ipc->opcode >> 0) & 7;
                   1085:   uint32 srcdata = DATAREG(srcreg);
                   1086:   uint32 outdata = 0;
                   1087: 
                   1088:   DATAREG(srcreg) = outdata;
                   1089: 
                   1090:   VFLAG = 0;
                   1091:   CFLAG = 0;
                   1092:   NFLAG = 0;
                   1093:   ZFLAG = 1;
                   1094:   PC+= 2;
                   1095: }
                   1096: 
                   1097: void cpu_op_575a(t_ipc *ipc) /* CLR */ {
                   1098:   /* mask fff8, bits 4290, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1099:   int srcreg = (ipc->opcode >> 0) & 7;
                   1100:   uint32 srcaddr = ADDRREG(srcreg);
                   1101:   uint32 srcdata = fetchlong(srcaddr);
                   1102:   uint32 outdata = 0;
                   1103: 
                   1104:   storelong(srcaddr, outdata);
                   1105:   PC+= 2;
                   1106: }
                   1107: 
                   1108: void cpu_op_575b(t_ipc *ipc) /* CLR */ {
                   1109:   /* mask fff8, bits 4290, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1110:   int srcreg = (ipc->opcode >> 0) & 7;
                   1111:   uint32 srcaddr = ADDRREG(srcreg);
                   1112:   uint32 srcdata = fetchlong(srcaddr);
                   1113:   uint32 outdata = 0;
                   1114: 
                   1115:   storelong(srcaddr, outdata);
                   1116: 
                   1117:   VFLAG = 0;
                   1118:   CFLAG = 0;
                   1119:   NFLAG = 0;
                   1120:   ZFLAG = 1;
                   1121:   PC+= 2;
                   1122: }
                   1123: 
                   1124: void cpu_op_576a(t_ipc *ipc) /* CLR */ {
                   1125:   /* mask fff8, bits 4298, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1126:   int srcreg = (ipc->opcode >> 0) & 7;
                   1127:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
                   1128:   uint32 srcdata = fetchlong(srcaddr);
                   1129:   uint32 outdata = 0;
                   1130: 
                   1131:   storelong(srcaddr, outdata);
                   1132:   PC+= 2;
                   1133: }
                   1134: 
                   1135: void cpu_op_576b(t_ipc *ipc) /* CLR */ {
                   1136:   /* mask fff8, bits 4298, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1137:   int srcreg = (ipc->opcode >> 0) & 7;
                   1138:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
                   1139:   uint32 srcdata = fetchlong(srcaddr);
                   1140:   uint32 outdata = 0;
                   1141: 
                   1142:   storelong(srcaddr, outdata);
                   1143: 
                   1144:   VFLAG = 0;
                   1145:   CFLAG = 0;
                   1146:   NFLAG = 0;
                   1147:   ZFLAG = 1;
                   1148:   PC+= 2;
                   1149: }
                   1150: 
                   1151: void cpu_op_577a(t_ipc *ipc) /* CLR */ {
                   1152:   /* mask fff8, bits 42a0, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1153:   int srcreg = (ipc->opcode >> 0) & 7;
                   1154:   uint32 srcaddr = ADDRREG(srcreg)-=4;
                   1155:   uint32 srcdata = fetchlong(srcaddr);
                   1156:   uint32 outdata = 0;
                   1157: 
                   1158:   storelong(srcaddr, outdata);
                   1159:   PC+= 2;
                   1160: }
                   1161: 
                   1162: void cpu_op_577b(t_ipc *ipc) /* CLR */ {
                   1163:   /* mask fff8, bits 42a0, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1164:   int srcreg = (ipc->opcode >> 0) & 7;
                   1165:   uint32 srcaddr = ADDRREG(srcreg)-=4;
                   1166:   uint32 srcdata = fetchlong(srcaddr);
                   1167:   uint32 outdata = 0;
                   1168: 
                   1169:   storelong(srcaddr, outdata);
                   1170: 
                   1171:   VFLAG = 0;
                   1172:   CFLAG = 0;
                   1173:   NFLAG = 0;
                   1174:   ZFLAG = 1;
                   1175:   PC+= 2;
                   1176: }
                   1177: 
                   1178: void cpu_op_578a(t_ipc *ipc) /* CLR */ {
                   1179:   /* mask fff8, bits 42a8, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1180:   int srcreg = (ipc->opcode >> 0) & 7;
                   1181:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   1182:   uint32 srcdata = fetchlong(srcaddr);
                   1183:   uint32 outdata = 0;
                   1184: 
                   1185:   storelong(srcaddr, outdata);
                   1186:   PC+= 4;
                   1187: }
                   1188: 
                   1189: void cpu_op_578b(t_ipc *ipc) /* CLR */ {
                   1190:   /* mask fff8, bits 42a8, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1191:   int srcreg = (ipc->opcode >> 0) & 7;
                   1192:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   1193:   uint32 srcdata = fetchlong(srcaddr);
                   1194:   uint32 outdata = 0;
                   1195: 
                   1196:   storelong(srcaddr, outdata);
                   1197: 
                   1198:   VFLAG = 0;
                   1199:   CFLAG = 0;
                   1200:   NFLAG = 0;
                   1201:   ZFLAG = 1;
                   1202:   PC+= 4;
                   1203: }
                   1204: 
                   1205: void cpu_op_579a(t_ipc *ipc) /* CLR */ {
                   1206:   /* mask fff8, bits 42b0, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1207:   int srcreg = (ipc->opcode >> 0) & 7;
                   1208:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   1209:   uint32 srcdata = fetchlong(srcaddr);
                   1210:   uint32 outdata = 0;
                   1211: 
                   1212:   storelong(srcaddr, outdata);
                   1213:   PC+= 4;
                   1214: }
                   1215: 
                   1216: void cpu_op_579b(t_ipc *ipc) /* CLR */ {
                   1217:   /* mask fff8, bits 42b0, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1218:   int srcreg = (ipc->opcode >> 0) & 7;
                   1219:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   1220:   uint32 srcdata = fetchlong(srcaddr);
                   1221:   uint32 outdata = 0;
                   1222: 
                   1223:   storelong(srcaddr, outdata);
                   1224: 
                   1225:   VFLAG = 0;
                   1226:   CFLAG = 0;
                   1227:   NFLAG = 0;
                   1228:   ZFLAG = 1;
                   1229:   PC+= 4;
                   1230: }
                   1231: 
                   1232: void cpu_op_580a(t_ipc *ipc) /* CLR */ {
                   1233:   /* mask ffff, bits 42b8, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1234:   uint32 srcaddr = ipc->src;
                   1235:   uint32 srcdata = fetchlong(srcaddr);
                   1236:   uint32 outdata = 0;
                   1237: 
                   1238:   storelong(srcaddr, outdata);
                   1239:   PC+= 4;
                   1240: }
                   1241: 
                   1242: void cpu_op_580b(t_ipc *ipc) /* CLR */ {
                   1243:   /* mask ffff, bits 42b8, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1244:   uint32 srcaddr = ipc->src;
                   1245:   uint32 srcdata = fetchlong(srcaddr);
                   1246:   uint32 outdata = 0;
                   1247: 
                   1248:   storelong(srcaddr, outdata);
                   1249: 
                   1250:   VFLAG = 0;
                   1251:   CFLAG = 0;
                   1252:   NFLAG = 0;
                   1253:   ZFLAG = 1;
                   1254:   PC+= 4;
                   1255: }
                   1256: 
                   1257: void cpu_op_581a(t_ipc *ipc) /* CLR */ {
                   1258:   /* mask ffff, bits 42b9, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1259:   uint32 srcaddr = ipc->src;
                   1260:   uint32 srcdata = fetchlong(srcaddr);
                   1261:   uint32 outdata = 0;
                   1262: 
                   1263:   storelong(srcaddr, outdata);
                   1264:   PC+= 6;
                   1265: }
                   1266: 
                   1267: void cpu_op_581b(t_ipc *ipc) /* CLR */ {
                   1268:   /* mask ffff, bits 42b9, mnemonic 33, priv 0, endblk 0, imm_notzero 0, used -2     set -1, size 3, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1269:   uint32 srcaddr = ipc->src;
                   1270:   uint32 srcdata = fetchlong(srcaddr);
                   1271:   uint32 outdata = 0;
                   1272: 
                   1273:   storelong(srcaddr, outdata);
                   1274: 
                   1275:   VFLAG = 0;
                   1276:   CFLAG = 0;
                   1277:   NFLAG = 0;
                   1278:   ZFLAG = 1;
                   1279:   PC+= 6;
                   1280: }
                   1281: 
                   1282: void cpu_op_582a(t_ipc *ipc) /* NEG */ {
                   1283:   /* mask fff8, bits 4400, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1284:   int srcreg = (ipc->opcode >> 0) & 7;
                   1285:   uint8 srcdata = DATAREG(srcreg);
                   1286:   uint8 outdata = 0 - (sint8)srcdata;
                   1287: 
                   1288:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
                   1289:   PC+= 2;
                   1290: }
                   1291: 
                   1292: void cpu_op_582b(t_ipc *ipc) /* NEG */ {
                   1293:   /* mask fff8, bits 4400, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1294:   int srcreg = (ipc->opcode >> 0) & 7;
                   1295:   uint8 srcdata = DATAREG(srcreg);
                   1296:   uint8 outdata = 0 - (sint8)srcdata;
                   1297: 
                   1298:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
                   1299: 
                   1300:   VFLAG = (srcdata == (1u<<7));
                   1301:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1302:   NFLAG = ((sint8)outdata) < 0;
                   1303:   ZFLAG = !outdata;
                   1304:   PC+= 2;
                   1305: }
                   1306: 
                   1307: void cpu_op_583a(t_ipc *ipc) /* NEG */ {
                   1308:   /* mask fff8, bits 4410, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1309:   int srcreg = (ipc->opcode >> 0) & 7;
                   1310:   uint32 srcaddr = ADDRREG(srcreg);
                   1311:   uint8 srcdata = fetchbyte(srcaddr);
                   1312:   uint8 outdata = 0 - (sint8)srcdata;
                   1313: 
                   1314:   storebyte(srcaddr, outdata);
                   1315:   PC+= 2;
                   1316: }
                   1317: 
                   1318: void cpu_op_583b(t_ipc *ipc) /* NEG */ {
                   1319:   /* mask fff8, bits 4410, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1320:   int srcreg = (ipc->opcode >> 0) & 7;
                   1321:   uint32 srcaddr = ADDRREG(srcreg);
                   1322:   uint8 srcdata = fetchbyte(srcaddr);
                   1323:   uint8 outdata = 0 - (sint8)srcdata;
                   1324: 
                   1325:   storebyte(srcaddr, outdata);
                   1326: 
                   1327:   VFLAG = (srcdata == (1u<<7));
                   1328:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1329:   NFLAG = ((sint8)outdata) < 0;
                   1330:   ZFLAG = !outdata;
                   1331:   PC+= 2;
                   1332: }
                   1333: 
                   1334: void cpu_op_584a(t_ipc *ipc) /* NEG */ {
                   1335:   /* mask fff8, bits 4418, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1336:   int srcreg = (ipc->opcode >> 0) & 7;
                   1337:   uint32 srcaddr = ADDRREG(srcreg);
                   1338:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                   1339:   uint8 srcdata = fetchbyte(srcaddr);
                   1340:   uint8 outdata = 0 - (sint8)srcdata;
                   1341: 
                   1342:   storebyte(srcaddr, outdata);
                   1343:   PC+= 2;
                   1344: }
                   1345: 
                   1346: void cpu_op_584b(t_ipc *ipc) /* NEG */ {
                   1347:   /* mask fff8, bits 4418, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1348:   int srcreg = (ipc->opcode >> 0) & 7;
                   1349:   uint32 srcaddr = ADDRREG(srcreg);
                   1350:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                   1351:   uint8 srcdata = fetchbyte(srcaddr);
                   1352:   uint8 outdata = 0 - (sint8)srcdata;
                   1353: 
                   1354:   storebyte(srcaddr, outdata);
                   1355: 
                   1356:   VFLAG = (srcdata == (1u<<7));
                   1357:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1358:   NFLAG = ((sint8)outdata) < 0;
                   1359:   ZFLAG = !outdata;
                   1360:   PC+= 2;
                   1361: }
                   1362: 
                   1363: void cpu_op_585a(t_ipc *ipc) /* NEG */ {
                   1364:   /* mask fff8, bits 4420, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1365:   int srcreg = (ipc->opcode >> 0) & 7;
                   1366:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                   1367:   uint8 srcdata = fetchbyte(srcaddr);
                   1368:   uint8 outdata = 0 - (sint8)srcdata;
                   1369: 
                   1370:   storebyte(srcaddr, outdata);
                   1371:   PC+= 2;
                   1372: }
                   1373: 
                   1374: void cpu_op_585b(t_ipc *ipc) /* NEG */ {
                   1375:   /* mask fff8, bits 4420, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1376:   int srcreg = (ipc->opcode >> 0) & 7;
                   1377:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                   1378:   uint8 srcdata = fetchbyte(srcaddr);
                   1379:   uint8 outdata = 0 - (sint8)srcdata;
                   1380: 
                   1381:   storebyte(srcaddr, outdata);
                   1382: 
                   1383:   VFLAG = (srcdata == (1u<<7));
                   1384:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1385:   NFLAG = ((sint8)outdata) < 0;
                   1386:   ZFLAG = !outdata;
                   1387:   PC+= 2;
                   1388: }
                   1389: 
                   1390: void cpu_op_586a(t_ipc *ipc) /* NEG */ {
                   1391:   /* mask fff8, bits 4428, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1392:   int srcreg = (ipc->opcode >> 0) & 7;
                   1393:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   1394:   uint8 srcdata = fetchbyte(srcaddr);
                   1395:   uint8 outdata = 0 - (sint8)srcdata;
                   1396: 
                   1397:   storebyte(srcaddr, outdata);
                   1398:   PC+= 4;
                   1399: }
                   1400: 
                   1401: void cpu_op_586b(t_ipc *ipc) /* NEG */ {
                   1402:   /* mask fff8, bits 4428, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1403:   int srcreg = (ipc->opcode >> 0) & 7;
                   1404:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   1405:   uint8 srcdata = fetchbyte(srcaddr);
                   1406:   uint8 outdata = 0 - (sint8)srcdata;
                   1407: 
                   1408:   storebyte(srcaddr, outdata);
                   1409: 
                   1410:   VFLAG = (srcdata == (1u<<7));
                   1411:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1412:   NFLAG = ((sint8)outdata) < 0;
                   1413:   ZFLAG = !outdata;
                   1414:   PC+= 4;
                   1415: }
                   1416: 
                   1417: void cpu_op_587a(t_ipc *ipc) /* NEG */ {
                   1418:   /* mask fff8, bits 4430, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1419:   int srcreg = (ipc->opcode >> 0) & 7;
                   1420:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   1421:   uint8 srcdata = fetchbyte(srcaddr);
                   1422:   uint8 outdata = 0 - (sint8)srcdata;
                   1423: 
                   1424:   storebyte(srcaddr, outdata);
                   1425:   PC+= 4;
                   1426: }
                   1427: 
                   1428: void cpu_op_587b(t_ipc *ipc) /* NEG */ {
                   1429:   /* mask fff8, bits 4430, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1430:   int srcreg = (ipc->opcode >> 0) & 7;
                   1431:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   1432:   uint8 srcdata = fetchbyte(srcaddr);
                   1433:   uint8 outdata = 0 - (sint8)srcdata;
                   1434: 
                   1435:   storebyte(srcaddr, outdata);
                   1436: 
                   1437:   VFLAG = (srcdata == (1u<<7));
                   1438:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1439:   NFLAG = ((sint8)outdata) < 0;
                   1440:   ZFLAG = !outdata;
                   1441:   PC+= 4;
                   1442: }
                   1443: 
                   1444: void cpu_op_588a(t_ipc *ipc) /* NEG */ {
                   1445:   /* mask ffff, bits 4438, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1446:   uint32 srcaddr = ipc->src;
                   1447:   uint8 srcdata = fetchbyte(srcaddr);
                   1448:   uint8 outdata = 0 - (sint8)srcdata;
                   1449: 
                   1450:   storebyte(srcaddr, outdata);
                   1451:   PC+= 4;
                   1452: }
                   1453: 
                   1454: void cpu_op_588b(t_ipc *ipc) /* NEG */ {
                   1455:   /* mask ffff, bits 4438, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1456:   uint32 srcaddr = ipc->src;
                   1457:   uint8 srcdata = fetchbyte(srcaddr);
                   1458:   uint8 outdata = 0 - (sint8)srcdata;
                   1459: 
                   1460:   storebyte(srcaddr, outdata);
                   1461: 
                   1462:   VFLAG = (srcdata == (1u<<7));
                   1463:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1464:   NFLAG = ((sint8)outdata) < 0;
                   1465:   ZFLAG = !outdata;
                   1466:   PC+= 4;
                   1467: }
                   1468: 
                   1469: void cpu_op_589a(t_ipc *ipc) /* NEG */ {
                   1470:   /* mask ffff, bits 4439, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1471:   uint32 srcaddr = ipc->src;
                   1472:   uint8 srcdata = fetchbyte(srcaddr);
                   1473:   uint8 outdata = 0 - (sint8)srcdata;
                   1474: 
                   1475:   storebyte(srcaddr, outdata);
                   1476:   PC+= 6;
                   1477: }
                   1478: 
                   1479: void cpu_op_589b(t_ipc *ipc) /* NEG */ {
                   1480:   /* mask ffff, bits 4439, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1481:   uint32 srcaddr = ipc->src;
                   1482:   uint8 srcdata = fetchbyte(srcaddr);
                   1483:   uint8 outdata = 0 - (sint8)srcdata;
                   1484: 
                   1485:   storebyte(srcaddr, outdata);
                   1486: 
                   1487:   VFLAG = (srcdata == (1u<<7));
                   1488:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1489:   NFLAG = ((sint8)outdata) < 0;
                   1490:   ZFLAG = !outdata;
                   1491:   PC+= 6;
                   1492: }
                   1493: 
                   1494: void cpu_op_590a(t_ipc *ipc) /* NEG */ {
                   1495:   /* mask fff8, bits 4440, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1496:   int srcreg = (ipc->opcode >> 0) & 7;
                   1497:   uint16 srcdata = DATAREG(srcreg);
                   1498:   uint16 outdata = 0 - (sint16)srcdata;
                   1499: 
                   1500:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xffff) | outdata;
                   1501:   PC+= 2;
                   1502: }
                   1503: 
                   1504: void cpu_op_590b(t_ipc *ipc) /* NEG */ {
                   1505:   /* mask fff8, bits 4440, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1506:   int srcreg = (ipc->opcode >> 0) & 7;
                   1507:   uint16 srcdata = DATAREG(srcreg);
                   1508:   uint16 outdata = 0 - (sint16)srcdata;
                   1509: 
                   1510:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xffff) | outdata;
                   1511: 
                   1512:   VFLAG = (srcdata == (1u<<15));
                   1513:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1514:   NFLAG = ((sint16)outdata) < 0;
                   1515:   ZFLAG = !outdata;
                   1516:   PC+= 2;
                   1517: }
                   1518: 
                   1519: void cpu_op_591a(t_ipc *ipc) /* NEG */ {
                   1520:   /* mask fff8, bits 4450, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1521:   int srcreg = (ipc->opcode >> 0) & 7;
                   1522:   uint32 srcaddr = ADDRREG(srcreg);
                   1523:   uint16 srcdata = fetchword(srcaddr);
                   1524:   uint16 outdata = 0 - (sint16)srcdata;
                   1525: 
                   1526:   storeword(srcaddr, outdata);
                   1527:   PC+= 2;
                   1528: }
                   1529: 
                   1530: void cpu_op_591b(t_ipc *ipc) /* NEG */ {
                   1531:   /* mask fff8, bits 4450, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1532:   int srcreg = (ipc->opcode >> 0) & 7;
                   1533:   uint32 srcaddr = ADDRREG(srcreg);
                   1534:   uint16 srcdata = fetchword(srcaddr);
                   1535:   uint16 outdata = 0 - (sint16)srcdata;
                   1536: 
                   1537:   storeword(srcaddr, outdata);
                   1538: 
                   1539:   VFLAG = (srcdata == (1u<<15));
                   1540:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1541:   NFLAG = ((sint16)outdata) < 0;
                   1542:   ZFLAG = !outdata;
                   1543:   PC+= 2;
                   1544: }
                   1545: 
                   1546: void cpu_op_592a(t_ipc *ipc) /* NEG */ {
                   1547:   /* mask fff8, bits 4458, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1548:   int srcreg = (ipc->opcode >> 0) & 7;
                   1549:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                   1550:   uint16 srcdata = fetchword(srcaddr);
                   1551:   uint16 outdata = 0 - (sint16)srcdata;
                   1552: 
                   1553:   storeword(srcaddr, outdata);
                   1554:   PC+= 2;
                   1555: }
                   1556: 
                   1557: void cpu_op_592b(t_ipc *ipc) /* NEG */ {
                   1558:   /* mask fff8, bits 4458, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1559:   int srcreg = (ipc->opcode >> 0) & 7;
                   1560:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                   1561:   uint16 srcdata = fetchword(srcaddr);
                   1562:   uint16 outdata = 0 - (sint16)srcdata;
                   1563: 
                   1564:   storeword(srcaddr, outdata);
                   1565: 
                   1566:   VFLAG = (srcdata == (1u<<15));
                   1567:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1568:   NFLAG = ((sint16)outdata) < 0;
                   1569:   ZFLAG = !outdata;
                   1570:   PC+= 2;
                   1571: }
                   1572: 
                   1573: void cpu_op_593a(t_ipc *ipc) /* NEG */ {
                   1574:   /* mask fff8, bits 4460, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1575:   int srcreg = (ipc->opcode >> 0) & 7;
                   1576:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                   1577:   uint16 srcdata = fetchword(srcaddr);
                   1578:   uint16 outdata = 0 - (sint16)srcdata;
                   1579: 
                   1580:   storeword(srcaddr, outdata);
                   1581:   PC+= 2;
                   1582: }
                   1583: 
                   1584: void cpu_op_593b(t_ipc *ipc) /* NEG */ {
                   1585:   /* mask fff8, bits 4460, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1586:   int srcreg = (ipc->opcode >> 0) & 7;
                   1587:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                   1588:   uint16 srcdata = fetchword(srcaddr);
                   1589:   uint16 outdata = 0 - (sint16)srcdata;
                   1590: 
                   1591:   storeword(srcaddr, outdata);
                   1592: 
                   1593:   VFLAG = (srcdata == (1u<<15));
                   1594:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1595:   NFLAG = ((sint16)outdata) < 0;
                   1596:   ZFLAG = !outdata;
                   1597:   PC+= 2;
                   1598: }
                   1599: 
                   1600: void cpu_op_594a(t_ipc *ipc) /* NEG */ {
                   1601:   /* mask fff8, bits 4468, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1602:   int srcreg = (ipc->opcode >> 0) & 7;
                   1603:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   1604:   uint16 srcdata = fetchword(srcaddr);
                   1605:   uint16 outdata = 0 - (sint16)srcdata;
                   1606: 
                   1607:   storeword(srcaddr, outdata);
                   1608:   PC+= 4;
                   1609: }
                   1610: 
                   1611: void cpu_op_594b(t_ipc *ipc) /* NEG */ {
                   1612:   /* mask fff8, bits 4468, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1613:   int srcreg = (ipc->opcode >> 0) & 7;
                   1614:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   1615:   uint16 srcdata = fetchword(srcaddr);
                   1616:   uint16 outdata = 0 - (sint16)srcdata;
                   1617: 
                   1618:   storeword(srcaddr, outdata);
                   1619: 
                   1620:   VFLAG = (srcdata == (1u<<15));
                   1621:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1622:   NFLAG = ((sint16)outdata) < 0;
                   1623:   ZFLAG = !outdata;
                   1624:   PC+= 4;
                   1625: }
                   1626: 
                   1627: void cpu_op_595a(t_ipc *ipc) /* NEG */ {
                   1628:   /* mask fff8, bits 4470, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1629:   int srcreg = (ipc->opcode >> 0) & 7;
                   1630:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   1631:   uint16 srcdata = fetchword(srcaddr);
                   1632:   uint16 outdata = 0 - (sint16)srcdata;
                   1633: 
                   1634:   storeword(srcaddr, outdata);
                   1635:   PC+= 4;
                   1636: }
                   1637: 
                   1638: void cpu_op_595b(t_ipc *ipc) /* NEG */ {
                   1639:   /* mask fff8, bits 4470, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1640:   int srcreg = (ipc->opcode >> 0) & 7;
                   1641:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   1642:   uint16 srcdata = fetchword(srcaddr);
                   1643:   uint16 outdata = 0 - (sint16)srcdata;
                   1644: 
                   1645:   storeword(srcaddr, outdata);
                   1646: 
                   1647:   VFLAG = (srcdata == (1u<<15));
                   1648:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1649:   NFLAG = ((sint16)outdata) < 0;
                   1650:   ZFLAG = !outdata;
                   1651:   PC+= 4;
                   1652: }
                   1653: 
                   1654: void cpu_op_596a(t_ipc *ipc) /* NEG */ {
                   1655:   /* mask ffff, bits 4478, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1656:   uint32 srcaddr = ipc->src;
                   1657:   uint16 srcdata = fetchword(srcaddr);
                   1658:   uint16 outdata = 0 - (sint16)srcdata;
                   1659: 
                   1660:   storeword(srcaddr, outdata);
                   1661:   PC+= 4;
                   1662: }
                   1663: 
                   1664: void cpu_op_596b(t_ipc *ipc) /* NEG */ {
                   1665:   /* mask ffff, bits 4478, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1666:   uint32 srcaddr = ipc->src;
                   1667:   uint16 srcdata = fetchword(srcaddr);
                   1668:   uint16 outdata = 0 - (sint16)srcdata;
                   1669: 
                   1670:   storeword(srcaddr, outdata);
                   1671: 
                   1672:   VFLAG = (srcdata == (1u<<15));
                   1673:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1674:   NFLAG = ((sint16)outdata) < 0;
                   1675:   ZFLAG = !outdata;
                   1676:   PC+= 4;
                   1677: }
                   1678: 
                   1679: void cpu_op_597a(t_ipc *ipc) /* NEG */ {
                   1680:   /* mask ffff, bits 4479, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1681:   uint32 srcaddr = ipc->src;
                   1682:   uint16 srcdata = fetchword(srcaddr);
                   1683:   uint16 outdata = 0 - (sint16)srcdata;
                   1684: 
                   1685:   storeword(srcaddr, outdata);
                   1686:   PC+= 6;
                   1687: }
                   1688: 
                   1689: void cpu_op_597b(t_ipc *ipc) /* NEG */ {
                   1690:   /* mask ffff, bits 4479, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1691:   uint32 srcaddr = ipc->src;
                   1692:   uint16 srcdata = fetchword(srcaddr);
                   1693:   uint16 outdata = 0 - (sint16)srcdata;
                   1694: 
                   1695:   storeword(srcaddr, outdata);
                   1696: 
                   1697:   VFLAG = (srcdata == (1u<<15));
                   1698:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1699:   NFLAG = ((sint16)outdata) < 0;
                   1700:   ZFLAG = !outdata;
                   1701:   PC+= 6;
                   1702: }
                   1703: 
                   1704: void cpu_op_598a(t_ipc *ipc) /* NEG */ {
                   1705:   /* mask fff8, bits 4480, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1706:   int srcreg = (ipc->opcode >> 0) & 7;
                   1707:   uint32 srcdata = DATAREG(srcreg);
                   1708:   uint32 outdata = 0 - (sint32)srcdata;
                   1709: 
                   1710:   DATAREG(srcreg) = outdata;
                   1711:   PC+= 2;
                   1712: }
                   1713: 
                   1714: void cpu_op_598b(t_ipc *ipc) /* NEG */ {
                   1715:   /* mask fff8, bits 4480, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1716:   int srcreg = (ipc->opcode >> 0) & 7;
                   1717:   uint32 srcdata = DATAREG(srcreg);
                   1718:   uint32 outdata = 0 - (sint32)srcdata;
                   1719: 
                   1720:   DATAREG(srcreg) = outdata;
                   1721: 
                   1722:   VFLAG = (srcdata == (1u<<31));
                   1723:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1724:   NFLAG = ((sint32)outdata) < 0;
                   1725:   ZFLAG = !outdata;
                   1726:   PC+= 2;
                   1727: }
                   1728: 
                   1729: void cpu_op_599a(t_ipc *ipc) /* NEG */ {
                   1730:   /* mask fff8, bits 4490, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1731:   int srcreg = (ipc->opcode >> 0) & 7;
                   1732:   uint32 srcaddr = ADDRREG(srcreg);
                   1733:   uint32 srcdata = fetchlong(srcaddr);
                   1734:   uint32 outdata = 0 - (sint32)srcdata;
                   1735: 
                   1736:   storelong(srcaddr, outdata);
                   1737:   PC+= 2;
                   1738: }
                   1739: 
                   1740: void cpu_op_599b(t_ipc *ipc) /* NEG */ {
                   1741:   /* mask fff8, bits 4490, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1742:   int srcreg = (ipc->opcode >> 0) & 7;
                   1743:   uint32 srcaddr = ADDRREG(srcreg);
                   1744:   uint32 srcdata = fetchlong(srcaddr);
                   1745:   uint32 outdata = 0 - (sint32)srcdata;
                   1746: 
                   1747:   storelong(srcaddr, outdata);
                   1748: 
                   1749:   VFLAG = (srcdata == (1u<<31));
                   1750:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1751:   NFLAG = ((sint32)outdata) < 0;
                   1752:   ZFLAG = !outdata;
                   1753:   PC+= 2;
                   1754: }
                   1755: 
                   1756: void cpu_op_600a(t_ipc *ipc) /* NEG */ {
                   1757:   /* mask fff8, bits 4498, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1758:   int srcreg = (ipc->opcode >> 0) & 7;
                   1759:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
                   1760:   uint32 srcdata = fetchlong(srcaddr);
                   1761:   uint32 outdata = 0 - (sint32)srcdata;
                   1762: 
                   1763:   storelong(srcaddr, outdata);
                   1764:   PC+= 2;
                   1765: }
                   1766: 
                   1767: void cpu_op_600b(t_ipc *ipc) /* NEG */ {
                   1768:   /* mask fff8, bits 4498, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1769:   int srcreg = (ipc->opcode >> 0) & 7;
                   1770:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
                   1771:   uint32 srcdata = fetchlong(srcaddr);
                   1772:   uint32 outdata = 0 - (sint32)srcdata;
                   1773: 
                   1774:   storelong(srcaddr, outdata);
                   1775: 
                   1776:   VFLAG = (srcdata == (1u<<31));
                   1777:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1778:   NFLAG = ((sint32)outdata) < 0;
                   1779:   ZFLAG = !outdata;
                   1780:   PC+= 2;
                   1781: }
                   1782: 
                   1783: void cpu_op_601a(t_ipc *ipc) /* NEG */ {
                   1784:   /* mask fff8, bits 44a0, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1785:   int srcreg = (ipc->opcode >> 0) & 7;
                   1786:   uint32 srcaddr = ADDRREG(srcreg)-=4;
                   1787:   uint32 srcdata = fetchlong(srcaddr);
                   1788:   uint32 outdata = 0 - (sint32)srcdata;
                   1789: 
                   1790:   storelong(srcaddr, outdata);
                   1791:   PC+= 2;
                   1792: }
                   1793: 
                   1794: void cpu_op_601b(t_ipc *ipc) /* NEG */ {
                   1795:   /* mask fff8, bits 44a0, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1796:   int srcreg = (ipc->opcode >> 0) & 7;
                   1797:   uint32 srcaddr = ADDRREG(srcreg)-=4;
                   1798:   uint32 srcdata = fetchlong(srcaddr);
                   1799:   uint32 outdata = 0 - (sint32)srcdata;
                   1800: 
                   1801:   storelong(srcaddr, outdata);
                   1802: 
                   1803:   VFLAG = (srcdata == (1u<<31));
                   1804:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1805:   NFLAG = ((sint32)outdata) < 0;
                   1806:   ZFLAG = !outdata;
                   1807:   PC+= 2;
                   1808: }
                   1809: 
                   1810: void cpu_op_602a(t_ipc *ipc) /* NEG */ {
                   1811:   /* mask fff8, bits 44a8, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1812:   int srcreg = (ipc->opcode >> 0) & 7;
                   1813:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   1814:   uint32 srcdata = fetchlong(srcaddr);
                   1815:   uint32 outdata = 0 - (sint32)srcdata;
                   1816: 
                   1817:   storelong(srcaddr, outdata);
                   1818:   PC+= 4;
                   1819: }
                   1820: 
                   1821: void cpu_op_602b(t_ipc *ipc) /* NEG */ {
                   1822:   /* mask fff8, bits 44a8, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1823:   int srcreg = (ipc->opcode >> 0) & 7;
                   1824:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   1825:   uint32 srcdata = fetchlong(srcaddr);
                   1826:   uint32 outdata = 0 - (sint32)srcdata;
                   1827: 
                   1828:   storelong(srcaddr, outdata);
                   1829: 
                   1830:   VFLAG = (srcdata == (1u<<31));
                   1831:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1832:   NFLAG = ((sint32)outdata) < 0;
                   1833:   ZFLAG = !outdata;
                   1834:   PC+= 4;
                   1835: }
                   1836: 
                   1837: void cpu_op_603a(t_ipc *ipc) /* NEG */ {
                   1838:   /* mask fff8, bits 44b0, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1839:   int srcreg = (ipc->opcode >> 0) & 7;
                   1840:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   1841:   uint32 srcdata = fetchlong(srcaddr);
                   1842:   uint32 outdata = 0 - (sint32)srcdata;
                   1843: 
                   1844:   storelong(srcaddr, outdata);
                   1845:   PC+= 4;
                   1846: }
                   1847: 
                   1848: void cpu_op_603b(t_ipc *ipc) /* NEG */ {
                   1849:   /* mask fff8, bits 44b0, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1850:   int srcreg = (ipc->opcode >> 0) & 7;
                   1851:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   1852:   uint32 srcdata = fetchlong(srcaddr);
                   1853:   uint32 outdata = 0 - (sint32)srcdata;
                   1854: 
                   1855:   storelong(srcaddr, outdata);
                   1856: 
                   1857:   VFLAG = (srcdata == (1u<<31));
                   1858:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1859:   NFLAG = ((sint32)outdata) < 0;
                   1860:   ZFLAG = !outdata;
                   1861:   PC+= 4;
                   1862: }
                   1863: 
                   1864: void cpu_op_604a(t_ipc *ipc) /* NEG */ {
                   1865:   /* mask ffff, bits 44b8, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1866:   uint32 srcaddr = ipc->src;
                   1867:   uint32 srcdata = fetchlong(srcaddr);
                   1868:   uint32 outdata = 0 - (sint32)srcdata;
                   1869: 
                   1870:   storelong(srcaddr, outdata);
                   1871:   PC+= 4;
                   1872: }
                   1873: 
                   1874: void cpu_op_604b(t_ipc *ipc) /* NEG */ {
                   1875:   /* mask ffff, bits 44b8, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1876:   uint32 srcaddr = ipc->src;
                   1877:   uint32 srcdata = fetchlong(srcaddr);
                   1878:   uint32 outdata = 0 - (sint32)srcdata;
                   1879: 
                   1880:   storelong(srcaddr, outdata);
                   1881: 
                   1882:   VFLAG = (srcdata == (1u<<31));
                   1883:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1884:   NFLAG = ((sint32)outdata) < 0;
                   1885:   ZFLAG = !outdata;
                   1886:   PC+= 4;
                   1887: }
                   1888: 
                   1889: void cpu_op_605a(t_ipc *ipc) /* NEG */ {
                   1890:   /* mask ffff, bits 44b9, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1891:   uint32 srcaddr = ipc->src;
                   1892:   uint32 srcdata = fetchlong(srcaddr);
                   1893:   uint32 outdata = 0 - (sint32)srcdata;
                   1894: 
                   1895:   storelong(srcaddr, outdata);
                   1896:   PC+= 6;
                   1897: }
                   1898: 
                   1899: void cpu_op_605b(t_ipc *ipc) /* NEG */ {
                   1900:   /* mask ffff, bits 44b9, mnemonic 31, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1901:   uint32 srcaddr = ipc->src;
                   1902:   uint32 srcdata = fetchlong(srcaddr);
                   1903:   uint32 outdata = 0 - (sint32)srcdata;
                   1904: 
                   1905:   storelong(srcaddr, outdata);
                   1906: 
                   1907:   VFLAG = (srcdata == (1u<<31));
                   1908:   XFLAG = CFLAG = srcdata ? 1 : 0;
                   1909:   NFLAG = ((sint32)outdata) < 0;
                   1910:   ZFLAG = !outdata;
                   1911:   PC+= 6;
                   1912: }
                   1913: 
                   1914: void cpu_op_606a(t_ipc *ipc) /* NOT */ {
                   1915:   /* mask fff8, bits 4600, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1916:   int srcreg = (ipc->opcode >> 0) & 7;
                   1917:   uint8 srcdata = DATAREG(srcreg);
                   1918:   uint8 outdata = ~srcdata;
                   1919: 
                   1920:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
                   1921:   PC+= 2;
                   1922: }
                   1923: 
                   1924: void cpu_op_606b(t_ipc *ipc) /* NOT */ {
                   1925:   /* mask fff8, bits 4600, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1926:   int srcreg = (ipc->opcode >> 0) & 7;
                   1927:   uint8 srcdata = DATAREG(srcreg);
                   1928:   uint8 outdata = ~srcdata;
                   1929: 
                   1930:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
                   1931: 
                   1932:   VFLAG = 0;
                   1933:   CFLAG = 0;
                   1934:   NFLAG = ((sint8)outdata) < 0;
                   1935:   ZFLAG = !outdata;
                   1936:   PC+= 2;
                   1937: }
                   1938: 
                   1939: void cpu_op_607a(t_ipc *ipc) /* NOT */ {
                   1940:   /* mask fff8, bits 4610, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1941:   int srcreg = (ipc->opcode >> 0) & 7;
                   1942:   uint32 srcaddr = ADDRREG(srcreg);
                   1943:   uint8 srcdata = fetchbyte(srcaddr);
                   1944:   uint8 outdata = ~srcdata;
                   1945: 
                   1946:   storebyte(srcaddr, outdata);
                   1947:   PC+= 2;
                   1948: }
                   1949: 
                   1950: void cpu_op_607b(t_ipc *ipc) /* NOT */ {
                   1951:   /* mask fff8, bits 4610, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1952:   int srcreg = (ipc->opcode >> 0) & 7;
                   1953:   uint32 srcaddr = ADDRREG(srcreg);
                   1954:   uint8 srcdata = fetchbyte(srcaddr);
                   1955:   uint8 outdata = ~srcdata;
                   1956: 
                   1957:   storebyte(srcaddr, outdata);
                   1958: 
                   1959:   VFLAG = 0;
                   1960:   CFLAG = 0;
                   1961:   NFLAG = ((sint8)outdata) < 0;
                   1962:   ZFLAG = !outdata;
                   1963:   PC+= 2;
                   1964: }
                   1965: 
                   1966: void cpu_op_608a(t_ipc *ipc) /* NOT */ {
                   1967:   /* mask fff8, bits 4618, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1968:   int srcreg = (ipc->opcode >> 0) & 7;
                   1969:   uint32 srcaddr = ADDRREG(srcreg);
                   1970:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                   1971:   uint8 srcdata = fetchbyte(srcaddr);
                   1972:   uint8 outdata = ~srcdata;
                   1973: 
                   1974:   storebyte(srcaddr, outdata);
                   1975:   PC+= 2;
                   1976: }
                   1977: 
                   1978: void cpu_op_608b(t_ipc *ipc) /* NOT */ {
                   1979:   /* mask fff8, bits 4618, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1980:   int srcreg = (ipc->opcode >> 0) & 7;
                   1981:   uint32 srcaddr = ADDRREG(srcreg);
                   1982:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                   1983:   uint8 srcdata = fetchbyte(srcaddr);
                   1984:   uint8 outdata = ~srcdata;
                   1985: 
                   1986:   storebyte(srcaddr, outdata);
                   1987: 
                   1988:   VFLAG = 0;
                   1989:   CFLAG = 0;
                   1990:   NFLAG = ((sint8)outdata) < 0;
                   1991:   ZFLAG = !outdata;
                   1992:   PC+= 2;
                   1993: }
                   1994: 
                   1995: void cpu_op_609a(t_ipc *ipc) /* NOT */ {
                   1996:   /* mask fff8, bits 4620, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   1997:   int srcreg = (ipc->opcode >> 0) & 7;
                   1998:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                   1999:   uint8 srcdata = fetchbyte(srcaddr);
                   2000:   uint8 outdata = ~srcdata;
                   2001: 
                   2002:   storebyte(srcaddr, outdata);
                   2003:   PC+= 2;
                   2004: }
                   2005: 
                   2006: void cpu_op_609b(t_ipc *ipc) /* NOT */ {
                   2007:   /* mask fff8, bits 4620, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2008:   int srcreg = (ipc->opcode >> 0) & 7;
                   2009:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                   2010:   uint8 srcdata = fetchbyte(srcaddr);
                   2011:   uint8 outdata = ~srcdata;
                   2012: 
                   2013:   storebyte(srcaddr, outdata);
                   2014: 
                   2015:   VFLAG = 0;
                   2016:   CFLAG = 0;
                   2017:   NFLAG = ((sint8)outdata) < 0;
                   2018:   ZFLAG = !outdata;
                   2019:   PC+= 2;
                   2020: }
                   2021: 
                   2022: void cpu_op_610a(t_ipc *ipc) /* NOT */ {
                   2023:   /* mask fff8, bits 4628, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2024:   int srcreg = (ipc->opcode >> 0) & 7;
                   2025:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   2026:   uint8 srcdata = fetchbyte(srcaddr);
                   2027:   uint8 outdata = ~srcdata;
                   2028: 
                   2029:   storebyte(srcaddr, outdata);
                   2030:   PC+= 4;
                   2031: }
                   2032: 
                   2033: void cpu_op_610b(t_ipc *ipc) /* NOT */ {
                   2034:   /* mask fff8, bits 4628, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2035:   int srcreg = (ipc->opcode >> 0) & 7;
                   2036:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   2037:   uint8 srcdata = fetchbyte(srcaddr);
                   2038:   uint8 outdata = ~srcdata;
                   2039: 
                   2040:   storebyte(srcaddr, outdata);
                   2041: 
                   2042:   VFLAG = 0;
                   2043:   CFLAG = 0;
                   2044:   NFLAG = ((sint8)outdata) < 0;
                   2045:   ZFLAG = !outdata;
                   2046:   PC+= 4;
                   2047: }
                   2048: 
                   2049: void cpu_op_611a(t_ipc *ipc) /* NOT */ {
                   2050:   /* mask fff8, bits 4630, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2051:   int srcreg = (ipc->opcode >> 0) & 7;
                   2052:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   2053:   uint8 srcdata = fetchbyte(srcaddr);
                   2054:   uint8 outdata = ~srcdata;
                   2055: 
                   2056:   storebyte(srcaddr, outdata);
                   2057:   PC+= 4;
                   2058: }
                   2059: 
                   2060: void cpu_op_611b(t_ipc *ipc) /* NOT */ {
                   2061:   /* mask fff8, bits 4630, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2062:   int srcreg = (ipc->opcode >> 0) & 7;
                   2063:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   2064:   uint8 srcdata = fetchbyte(srcaddr);
                   2065:   uint8 outdata = ~srcdata;
                   2066: 
                   2067:   storebyte(srcaddr, outdata);
                   2068: 
                   2069:   VFLAG = 0;
                   2070:   CFLAG = 0;
                   2071:   NFLAG = ((sint8)outdata) < 0;
                   2072:   ZFLAG = !outdata;
                   2073:   PC+= 4;
                   2074: }
                   2075: 
                   2076: void cpu_op_612a(t_ipc *ipc) /* NOT */ {
                   2077:   /* mask ffff, bits 4638, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2078:   uint32 srcaddr = ipc->src;
                   2079:   uint8 srcdata = fetchbyte(srcaddr);
                   2080:   uint8 outdata = ~srcdata;
                   2081: 
                   2082:   storebyte(srcaddr, outdata);
                   2083:   PC+= 4;
                   2084: }
                   2085: 
                   2086: void cpu_op_612b(t_ipc *ipc) /* NOT */ {
                   2087:   /* mask ffff, bits 4638, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2088:   uint32 srcaddr = ipc->src;
                   2089:   uint8 srcdata = fetchbyte(srcaddr);
                   2090:   uint8 outdata = ~srcdata;
                   2091: 
                   2092:   storebyte(srcaddr, outdata);
                   2093: 
                   2094:   VFLAG = 0;
                   2095:   CFLAG = 0;
                   2096:   NFLAG = ((sint8)outdata) < 0;
                   2097:   ZFLAG = !outdata;
                   2098:   PC+= 4;
                   2099: }
                   2100: 
                   2101: void cpu_op_613a(t_ipc *ipc) /* NOT */ {
                   2102:   /* mask ffff, bits 4639, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2103:   uint32 srcaddr = ipc->src;
                   2104:   uint8 srcdata = fetchbyte(srcaddr);
                   2105:   uint8 outdata = ~srcdata;
                   2106: 
                   2107:   storebyte(srcaddr, outdata);
                   2108:   PC+= 6;
                   2109: }
                   2110: 
                   2111: void cpu_op_613b(t_ipc *ipc) /* NOT */ {
                   2112:   /* mask ffff, bits 4639, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2113:   uint32 srcaddr = ipc->src;
                   2114:   uint8 srcdata = fetchbyte(srcaddr);
                   2115:   uint8 outdata = ~srcdata;
                   2116: 
                   2117:   storebyte(srcaddr, outdata);
                   2118: 
                   2119:   VFLAG = 0;
                   2120:   CFLAG = 0;
                   2121:   NFLAG = ((sint8)outdata) < 0;
                   2122:   ZFLAG = !outdata;
                   2123:   PC+= 6;
                   2124: }
                   2125: 
                   2126: void cpu_op_614a(t_ipc *ipc) /* NOT */ {
                   2127:   /* mask fff8, bits 4640, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2128:   int srcreg = (ipc->opcode >> 0) & 7;
                   2129:   uint16 srcdata = DATAREG(srcreg);
                   2130:   uint16 outdata = ~srcdata;
                   2131: 
                   2132:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xffff) | outdata;
                   2133:   PC+= 2;
                   2134: }
                   2135: 
                   2136: void cpu_op_614b(t_ipc *ipc) /* NOT */ {
                   2137:   /* mask fff8, bits 4640, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2138:   int srcreg = (ipc->opcode >> 0) & 7;
                   2139:   uint16 srcdata = DATAREG(srcreg);
                   2140:   uint16 outdata = ~srcdata;
                   2141: 
                   2142:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xffff) | outdata;
                   2143: 
                   2144:   VFLAG = 0;
                   2145:   CFLAG = 0;
                   2146:   NFLAG = ((sint16)outdata) < 0;
                   2147:   ZFLAG = !outdata;
                   2148:   PC+= 2;
                   2149: }
                   2150: 
                   2151: void cpu_op_615a(t_ipc *ipc) /* NOT */ {
                   2152:   /* mask fff8, bits 4650, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2153:   int srcreg = (ipc->opcode >> 0) & 7;
                   2154:   uint32 srcaddr = ADDRREG(srcreg);
                   2155:   uint16 srcdata = fetchword(srcaddr);
                   2156:   uint16 outdata = ~srcdata;
                   2157: 
                   2158:   storeword(srcaddr, outdata);
                   2159:   PC+= 2;
                   2160: }
                   2161: 
                   2162: void cpu_op_615b(t_ipc *ipc) /* NOT */ {
                   2163:   /* mask fff8, bits 4650, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2164:   int srcreg = (ipc->opcode >> 0) & 7;
                   2165:   uint32 srcaddr = ADDRREG(srcreg);
                   2166:   uint16 srcdata = fetchword(srcaddr);
                   2167:   uint16 outdata = ~srcdata;
                   2168: 
                   2169:   storeword(srcaddr, outdata);
                   2170: 
                   2171:   VFLAG = 0;
                   2172:   CFLAG = 0;
                   2173:   NFLAG = ((sint16)outdata) < 0;
                   2174:   ZFLAG = !outdata;
                   2175:   PC+= 2;
                   2176: }
                   2177: 
                   2178: void cpu_op_616a(t_ipc *ipc) /* NOT */ {
                   2179:   /* mask fff8, bits 4658, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2180:   int srcreg = (ipc->opcode >> 0) & 7;
                   2181:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                   2182:   uint16 srcdata = fetchword(srcaddr);
                   2183:   uint16 outdata = ~srcdata;
                   2184: 
                   2185:   storeword(srcaddr, outdata);
                   2186:   PC+= 2;
                   2187: }
                   2188: 
                   2189: void cpu_op_616b(t_ipc *ipc) /* NOT */ {
                   2190:   /* mask fff8, bits 4658, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2191:   int srcreg = (ipc->opcode >> 0) & 7;
                   2192:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                   2193:   uint16 srcdata = fetchword(srcaddr);
                   2194:   uint16 outdata = ~srcdata;
                   2195: 
                   2196:   storeword(srcaddr, outdata);
                   2197: 
                   2198:   VFLAG = 0;
                   2199:   CFLAG = 0;
                   2200:   NFLAG = ((sint16)outdata) < 0;
                   2201:   ZFLAG = !outdata;
                   2202:   PC+= 2;
                   2203: }
                   2204: 
                   2205: void cpu_op_617a(t_ipc *ipc) /* NOT */ {
                   2206:   /* mask fff8, bits 4660, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2207:   int srcreg = (ipc->opcode >> 0) & 7;
                   2208:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                   2209:   uint16 srcdata = fetchword(srcaddr);
                   2210:   uint16 outdata = ~srcdata;
                   2211: 
                   2212:   storeword(srcaddr, outdata);
                   2213:   PC+= 2;
                   2214: }
                   2215: 
                   2216: void cpu_op_617b(t_ipc *ipc) /* NOT */ {
                   2217:   /* mask fff8, bits 4660, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2218:   int srcreg = (ipc->opcode >> 0) & 7;
                   2219:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                   2220:   uint16 srcdata = fetchword(srcaddr);
                   2221:   uint16 outdata = ~srcdata;
                   2222: 
                   2223:   storeword(srcaddr, outdata);
                   2224: 
                   2225:   VFLAG = 0;
                   2226:   CFLAG = 0;
                   2227:   NFLAG = ((sint16)outdata) < 0;
                   2228:   ZFLAG = !outdata;
                   2229:   PC+= 2;
                   2230: }
                   2231: 
                   2232: void cpu_op_618a(t_ipc *ipc) /* NOT */ {
                   2233:   /* mask fff8, bits 4668, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2234:   int srcreg = (ipc->opcode >> 0) & 7;
                   2235:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   2236:   uint16 srcdata = fetchword(srcaddr);
                   2237:   uint16 outdata = ~srcdata;
                   2238: 
                   2239:   storeword(srcaddr, outdata);
                   2240:   PC+= 4;
                   2241: }
                   2242: 
                   2243: void cpu_op_618b(t_ipc *ipc) /* NOT */ {
                   2244:   /* mask fff8, bits 4668, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2245:   int srcreg = (ipc->opcode >> 0) & 7;
                   2246:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   2247:   uint16 srcdata = fetchword(srcaddr);
                   2248:   uint16 outdata = ~srcdata;
                   2249: 
                   2250:   storeword(srcaddr, outdata);
                   2251: 
                   2252:   VFLAG = 0;
                   2253:   CFLAG = 0;
                   2254:   NFLAG = ((sint16)outdata) < 0;
                   2255:   ZFLAG = !outdata;
                   2256:   PC+= 4;
                   2257: }
                   2258: 
                   2259: void cpu_op_619a(t_ipc *ipc) /* NOT */ {
                   2260:   /* mask fff8, bits 4670, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2261:   int srcreg = (ipc->opcode >> 0) & 7;
                   2262:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   2263:   uint16 srcdata = fetchword(srcaddr);
                   2264:   uint16 outdata = ~srcdata;
                   2265: 
                   2266:   storeword(srcaddr, outdata);
                   2267:   PC+= 4;
                   2268: }
                   2269: 
                   2270: void cpu_op_619b(t_ipc *ipc) /* NOT */ {
                   2271:   /* mask fff8, bits 4670, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2272:   int srcreg = (ipc->opcode >> 0) & 7;
                   2273:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   2274:   uint16 srcdata = fetchword(srcaddr);
                   2275:   uint16 outdata = ~srcdata;
                   2276: 
                   2277:   storeword(srcaddr, outdata);
                   2278: 
                   2279:   VFLAG = 0;
                   2280:   CFLAG = 0;
                   2281:   NFLAG = ((sint16)outdata) < 0;
                   2282:   ZFLAG = !outdata;
                   2283:   PC+= 4;
                   2284: }
                   2285: 
                   2286: void cpu_op_620a(t_ipc *ipc) /* NOT */ {
                   2287:   /* mask ffff, bits 4678, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2288:   uint32 srcaddr = ipc->src;
                   2289:   uint16 srcdata = fetchword(srcaddr);
                   2290:   uint16 outdata = ~srcdata;
                   2291: 
                   2292:   storeword(srcaddr, outdata);
                   2293:   PC+= 4;
                   2294: }
                   2295: 
                   2296: void cpu_op_620b(t_ipc *ipc) /* NOT */ {
                   2297:   /* mask ffff, bits 4678, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2298:   uint32 srcaddr = ipc->src;
                   2299:   uint16 srcdata = fetchword(srcaddr);
                   2300:   uint16 outdata = ~srcdata;
                   2301: 
                   2302:   storeword(srcaddr, outdata);
                   2303: 
                   2304:   VFLAG = 0;
                   2305:   CFLAG = 0;
                   2306:   NFLAG = ((sint16)outdata) < 0;
                   2307:   ZFLAG = !outdata;
                   2308:   PC+= 4;
                   2309: }
                   2310: 
                   2311: void cpu_op_621a(t_ipc *ipc) /* NOT */ {
                   2312:   /* mask ffff, bits 4679, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2313:   uint32 srcaddr = ipc->src;
                   2314:   uint16 srcdata = fetchword(srcaddr);
                   2315:   uint16 outdata = ~srcdata;
                   2316: 
                   2317:   storeword(srcaddr, outdata);
                   2318:   PC+= 6;
                   2319: }
                   2320: 
                   2321: void cpu_op_621b(t_ipc *ipc) /* NOT */ {
                   2322:   /* mask ffff, bits 4679, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2323:   uint32 srcaddr = ipc->src;
                   2324:   uint16 srcdata = fetchword(srcaddr);
                   2325:   uint16 outdata = ~srcdata;
                   2326: 
                   2327:   storeword(srcaddr, outdata);
                   2328: 
                   2329:   VFLAG = 0;
                   2330:   CFLAG = 0;
                   2331:   NFLAG = ((sint16)outdata) < 0;
                   2332:   ZFLAG = !outdata;
                   2333:   PC+= 6;
                   2334: }
                   2335: 
                   2336: void cpu_op_622a(t_ipc *ipc) /* NOT */ {
                   2337:   /* mask fff8, bits 4680, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2338:   int srcreg = (ipc->opcode >> 0) & 7;
                   2339:   uint32 srcdata = DATAREG(srcreg);
                   2340:   uint32 outdata = ~srcdata;
                   2341: 
                   2342:   DATAREG(srcreg) = outdata;
                   2343:   PC+= 2;
                   2344: }
                   2345: 
                   2346: void cpu_op_622b(t_ipc *ipc) /* NOT */ {
                   2347:   /* mask fff8, bits 4680, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2348:   int srcreg = (ipc->opcode >> 0) & 7;
                   2349:   uint32 srcdata = DATAREG(srcreg);
                   2350:   uint32 outdata = ~srcdata;
                   2351: 
                   2352:   DATAREG(srcreg) = outdata;
                   2353: 
                   2354:   VFLAG = 0;
                   2355:   CFLAG = 0;
                   2356:   NFLAG = ((sint32)outdata) < 0;
                   2357:   ZFLAG = !outdata;
                   2358:   PC+= 2;
                   2359: }
                   2360: 
                   2361: void cpu_op_623a(t_ipc *ipc) /* NOT */ {
                   2362:   /* mask fff8, bits 4690, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2363:   int srcreg = (ipc->opcode >> 0) & 7;
                   2364:   uint32 srcaddr = ADDRREG(srcreg);
                   2365:   uint32 srcdata = fetchlong(srcaddr);
                   2366:   uint32 outdata = ~srcdata;
                   2367: 
                   2368:   storelong(srcaddr, outdata);
                   2369:   PC+= 2;
                   2370: }
                   2371: 
                   2372: void cpu_op_623b(t_ipc *ipc) /* NOT */ {
                   2373:   /* mask fff8, bits 4690, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2374:   int srcreg = (ipc->opcode >> 0) & 7;
                   2375:   uint32 srcaddr = ADDRREG(srcreg);
                   2376:   uint32 srcdata = fetchlong(srcaddr);
                   2377:   uint32 outdata = ~srcdata;
                   2378: 
                   2379:   storelong(srcaddr, outdata);
                   2380: 
                   2381:   VFLAG = 0;
                   2382:   CFLAG = 0;
                   2383:   NFLAG = ((sint32)outdata) < 0;
                   2384:   ZFLAG = !outdata;
                   2385:   PC+= 2;
                   2386: }
                   2387: 
                   2388: void cpu_op_624a(t_ipc *ipc) /* NOT */ {
                   2389:   /* mask fff8, bits 4698, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2390:   int srcreg = (ipc->opcode >> 0) & 7;
                   2391:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
                   2392:   uint32 srcdata = fetchlong(srcaddr);
                   2393:   uint32 outdata = ~srcdata;
                   2394: 
                   2395:   storelong(srcaddr, outdata);
                   2396:   PC+= 2;
                   2397: }
                   2398: 
                   2399: void cpu_op_624b(t_ipc *ipc) /* NOT */ {
                   2400:   /* mask fff8, bits 4698, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2401:   int srcreg = (ipc->opcode >> 0) & 7;
                   2402:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
                   2403:   uint32 srcdata = fetchlong(srcaddr);
                   2404:   uint32 outdata = ~srcdata;
                   2405: 
                   2406:   storelong(srcaddr, outdata);
                   2407: 
                   2408:   VFLAG = 0;
                   2409:   CFLAG = 0;
                   2410:   NFLAG = ((sint32)outdata) < 0;
                   2411:   ZFLAG = !outdata;
                   2412:   PC+= 2;
                   2413: }
                   2414: 
                   2415: void cpu_op_625a(t_ipc *ipc) /* NOT */ {
                   2416:   /* mask fff8, bits 46a0, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2417:   int srcreg = (ipc->opcode >> 0) & 7;
                   2418:   uint32 srcaddr = ADDRREG(srcreg)-=4;
                   2419:   uint32 srcdata = fetchlong(srcaddr);
                   2420:   uint32 outdata = ~srcdata;
                   2421: 
                   2422:   storelong(srcaddr, outdata);
                   2423:   PC+= 2;
                   2424: }
                   2425: 
                   2426: void cpu_op_625b(t_ipc *ipc) /* NOT */ {
                   2427:   /* mask fff8, bits 46a0, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2428:   int srcreg = (ipc->opcode >> 0) & 7;
                   2429:   uint32 srcaddr = ADDRREG(srcreg)-=4;
                   2430:   uint32 srcdata = fetchlong(srcaddr);
                   2431:   uint32 outdata = ~srcdata;
                   2432: 
                   2433:   storelong(srcaddr, outdata);
                   2434: 
                   2435:   VFLAG = 0;
                   2436:   CFLAG = 0;
                   2437:   NFLAG = ((sint32)outdata) < 0;
                   2438:   ZFLAG = !outdata;
                   2439:   PC+= 2;
                   2440: }
                   2441: 
                   2442: void cpu_op_626a(t_ipc *ipc) /* NOT */ {
                   2443:   /* mask fff8, bits 46a8, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2444:   int srcreg = (ipc->opcode >> 0) & 7;
                   2445:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   2446:   uint32 srcdata = fetchlong(srcaddr);
                   2447:   uint32 outdata = ~srcdata;
                   2448: 
                   2449:   storelong(srcaddr, outdata);
                   2450:   PC+= 4;
                   2451: }
                   2452: 
                   2453: void cpu_op_626b(t_ipc *ipc) /* NOT */ {
                   2454:   /* mask fff8, bits 46a8, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2455:   int srcreg = (ipc->opcode >> 0) & 7;
                   2456:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   2457:   uint32 srcdata = fetchlong(srcaddr);
                   2458:   uint32 outdata = ~srcdata;
                   2459: 
                   2460:   storelong(srcaddr, outdata);
                   2461: 
                   2462:   VFLAG = 0;
                   2463:   CFLAG = 0;
                   2464:   NFLAG = ((sint32)outdata) < 0;
                   2465:   ZFLAG = !outdata;
                   2466:   PC+= 4;
                   2467: }
                   2468: 
                   2469: void cpu_op_627a(t_ipc *ipc) /* NOT */ {
                   2470:   /* mask fff8, bits 46b0, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2471:   int srcreg = (ipc->opcode >> 0) & 7;
                   2472:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   2473:   uint32 srcdata = fetchlong(srcaddr);
                   2474:   uint32 outdata = ~srcdata;
                   2475: 
                   2476:   storelong(srcaddr, outdata);
                   2477:   PC+= 4;
                   2478: }
                   2479: 
                   2480: void cpu_op_627b(t_ipc *ipc) /* NOT */ {
                   2481:   /* mask fff8, bits 46b0, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2482:   int srcreg = (ipc->opcode >> 0) & 7;
                   2483:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   2484:   uint32 srcdata = fetchlong(srcaddr);
                   2485:   uint32 outdata = ~srcdata;
                   2486: 
                   2487:   storelong(srcaddr, outdata);
                   2488: 
                   2489:   VFLAG = 0;
                   2490:   CFLAG = 0;
                   2491:   NFLAG = ((sint32)outdata) < 0;
                   2492:   ZFLAG = !outdata;
                   2493:   PC+= 4;
                   2494: }
                   2495: 
                   2496: void cpu_op_628a(t_ipc *ipc) /* NOT */ {
                   2497:   /* mask ffff, bits 46b8, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2498:   uint32 srcaddr = ipc->src;
                   2499:   uint32 srcdata = fetchlong(srcaddr);
                   2500:   uint32 outdata = ~srcdata;
                   2501: 
                   2502:   storelong(srcaddr, outdata);
                   2503:   PC+= 4;
                   2504: }
                   2505: 
                   2506: void cpu_op_628b(t_ipc *ipc) /* NOT */ {
                   2507:   /* mask ffff, bits 46b8, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2508:   uint32 srcaddr = ipc->src;
                   2509:   uint32 srcdata = fetchlong(srcaddr);
                   2510:   uint32 outdata = ~srcdata;
                   2511: 
                   2512:   storelong(srcaddr, outdata);
                   2513: 
                   2514:   VFLAG = 0;
                   2515:   CFLAG = 0;
                   2516:   NFLAG = ((sint32)outdata) < 0;
                   2517:   ZFLAG = !outdata;
                   2518:   PC+= 4;
                   2519: }
                   2520: 
                   2521: void cpu_op_629a(t_ipc *ipc) /* NOT */ {
                   2522:   /* mask ffff, bits 46b9, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2523:   uint32 srcaddr = ipc->src;
                   2524:   uint32 srcdata = fetchlong(srcaddr);
                   2525:   uint32 outdata = ~srcdata;
                   2526: 
                   2527:   storelong(srcaddr, outdata);
                   2528:   PC+= 6;
                   2529: }
                   2530: 
                   2531: void cpu_op_629b(t_ipc *ipc) /* NOT */ {
                   2532:   /* mask ffff, bits 46b9, mnemonic 34, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2533:   uint32 srcaddr = ipc->src;
                   2534:   uint32 srcdata = fetchlong(srcaddr);
                   2535:   uint32 outdata = ~srcdata;
                   2536: 
                   2537:   storelong(srcaddr, outdata);
                   2538: 
                   2539:   VFLAG = 0;
                   2540:   CFLAG = 0;
                   2541:   NFLAG = ((sint32)outdata) < 0;
                   2542:   ZFLAG = !outdata;
                   2543:   PC+= 6;
                   2544: }
                   2545: 
                   2546: void cpu_op_630a(t_ipc *ipc) /* MOVEFSR */ {
                   2547:   /* mask fff8, bits 40c0, mnemonic 25, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2548:   int srcreg = (ipc->opcode >> 0) & 7;
                   2549:   uint16 outdata;
                   2550: 
                   2551:   outdata = SR;
                   2552:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xffff) | outdata;
                   2553:   PC+= 2;
                   2554: }
                   2555: 
                   2556: void cpu_op_631a(t_ipc *ipc) /* MOVEFSR */ {
                   2557:   /* mask fff8, bits 40d0, mnemonic 25, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 2, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2558:   int srcreg = (ipc->opcode >> 0) & 7;
                   2559:   uint32 srcaddr = ADDRREG(srcreg);
                   2560:   uint16 outdata;
                   2561: 
                   2562:   outdata = SR;
                   2563:   storeword(srcaddr, outdata);
                   2564:   PC+= 2;
                   2565: }
                   2566: 
                   2567: void cpu_op_632a(t_ipc *ipc) /* MOVEFSR */ {
                   2568:   /* mask fff8, bits 40d8, mnemonic 25, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 2, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2569:   int srcreg = (ipc->opcode >> 0) & 7;
                   2570:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                   2571:   uint16 outdata;
                   2572: 
                   2573:   outdata = SR;
                   2574:   storeword(srcaddr, outdata);
                   2575:   PC+= 2;
                   2576: }
                   2577: 
                   2578: void cpu_op_633a(t_ipc *ipc) /* MOVEFSR */ {
                   2579:   /* mask fff8, bits 40e0, mnemonic 25, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 2, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2580:   int srcreg = (ipc->opcode >> 0) & 7;
                   2581:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                   2582:   uint16 outdata;
                   2583: 
                   2584:   outdata = SR;
                   2585:   storeword(srcaddr, outdata);
                   2586:   PC+= 2;
                   2587: }
                   2588: 
                   2589: void cpu_op_634a(t_ipc *ipc) /* MOVEFSR */ {
                   2590:   /* mask fff8, bits 40e8, mnemonic 25, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 2, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2591:   int srcreg = (ipc->opcode >> 0) & 7;
                   2592:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   2593:   uint16 outdata;
                   2594: 
                   2595:   outdata = SR;
                   2596:   storeword(srcaddr, outdata);
                   2597:   PC+= 4;
                   2598: }
                   2599: 
                   2600: void cpu_op_635a(t_ipc *ipc) /* MOVEFSR */ {
                   2601:   /* mask fff8, bits 40f0, mnemonic 25, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 2, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2602:   int srcreg = (ipc->opcode >> 0) & 7;
                   2603:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   2604:   uint16 outdata;
                   2605: 
                   2606:   outdata = SR;
                   2607:   storeword(srcaddr, outdata);
                   2608:   PC+= 4;
                   2609: }
                   2610: 
                   2611: void cpu_op_636a(t_ipc *ipc) /* MOVEFSR */ {
                   2612:   /* mask ffff, bits 40f8, mnemonic 25, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 2, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2613:   uint32 srcaddr = ipc->src;
                   2614:   uint16 outdata;
                   2615: 
                   2616:   outdata = SR;
                   2617:   storeword(srcaddr, outdata);
                   2618:   PC+= 4;
                   2619: }
                   2620: 
                   2621: void cpu_op_637a(t_ipc *ipc) /* MOVEFSR */ {
                   2622:   /* mask ffff, bits 40f9, mnemonic 25, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 2, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2623:   uint32 srcaddr = ipc->src;
                   2624:   uint16 outdata;
                   2625: 
                   2626:   outdata = SR;
                   2627:   storeword(srcaddr, outdata);
                   2628:   PC+= 6;
                   2629: }
                   2630: 
                   2631: void cpu_op_638a(t_ipc *ipc) /* MOVETSR */ {
                   2632:   /* mask fff8, bits 44c0, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2633:   int srcreg = (ipc->opcode >> 0) & 7;
                   2634:   uint8 srcdata = DATAREG(srcreg);
                   2635:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2636: 
                   2637:   SR = (SR & ~0xFF) | srcdata;
                   2638:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2639:     /* mode change, swap SP and A7 */
                   2640:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2641:   }
                   2642:   PC+= 2;
                   2643: }
                   2644: 
                   2645: void cpu_op_638b(t_ipc *ipc) /* MOVETSR */ {
                   2646:   /* mask fff8, bits 44c0, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2647:   int srcreg = (ipc->opcode >> 0) & 7;
                   2648:   uint8 srcdata = DATAREG(srcreg);
                   2649:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2650: 
                   2651:   SR = (SR & ~0xFF) | srcdata;
                   2652:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2653:     /* mode change, swap SP and A7 */
                   2654:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2655:   }
                   2656:   PC+= 2;
                   2657: }
                   2658: 
                   2659: void cpu_op_639a(t_ipc *ipc) /* MOVETSR */ {
                   2660:   /* mask fff8, bits 44d0, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2661:   int srcreg = (ipc->opcode >> 0) & 7;
                   2662:   uint32 srcaddr = ADDRREG(srcreg);
                   2663:   uint8 srcdata = fetchbyte(srcaddr);
                   2664:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2665: 
                   2666:   SR = (SR & ~0xFF) | srcdata;
                   2667:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2668:     /* mode change, swap SP and A7 */
                   2669:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2670:   }
                   2671:   PC+= 2;
                   2672: }
                   2673: 
                   2674: void cpu_op_639b(t_ipc *ipc) /* MOVETSR */ {
                   2675:   /* mask fff8, bits 44d0, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2676:   int srcreg = (ipc->opcode >> 0) & 7;
                   2677:   uint32 srcaddr = ADDRREG(srcreg);
                   2678:   uint8 srcdata = fetchbyte(srcaddr);
                   2679:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2680: 
                   2681:   SR = (SR & ~0xFF) | srcdata;
                   2682:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2683:     /* mode change, swap SP and A7 */
                   2684:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2685:   }
                   2686:   PC+= 2;
                   2687: }
                   2688: 
                   2689: void cpu_op_640a(t_ipc *ipc) /* MOVETSR */ {
                   2690:   /* mask fff8, bits 44d8, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2691:   int srcreg = (ipc->opcode >> 0) & 7;
                   2692:   uint32 srcaddr = ADDRREG(srcreg);
                   2693:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                   2694:   uint8 srcdata = fetchbyte(srcaddr);
                   2695:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2696: 
                   2697:   SR = (SR & ~0xFF) | srcdata;
                   2698:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2699:     /* mode change, swap SP and A7 */
                   2700:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2701:   }
                   2702:   PC+= 2;
                   2703: }
                   2704: 
                   2705: void cpu_op_640b(t_ipc *ipc) /* MOVETSR */ {
                   2706:   /* mask fff8, bits 44d8, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2707:   int srcreg = (ipc->opcode >> 0) & 7;
                   2708:   uint32 srcaddr = ADDRREG(srcreg);
                   2709:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                   2710:   uint8 srcdata = fetchbyte(srcaddr);
                   2711:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2712: 
                   2713:   SR = (SR & ~0xFF) | srcdata;
                   2714:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2715:     /* mode change, swap SP and A7 */
                   2716:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2717:   }
                   2718:   PC+= 2;
                   2719: }
                   2720: 
                   2721: void cpu_op_641a(t_ipc *ipc) /* MOVETSR */ {
                   2722:   /* mask fff8, bits 44e0, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2723:   int srcreg = (ipc->opcode >> 0) & 7;
                   2724:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                   2725:   uint8 srcdata = fetchbyte(srcaddr);
                   2726:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2727: 
                   2728:   SR = (SR & ~0xFF) | srcdata;
                   2729:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2730:     /* mode change, swap SP and A7 */
                   2731:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2732:   }
                   2733:   PC+= 2;
                   2734: }
                   2735: 
                   2736: void cpu_op_641b(t_ipc *ipc) /* MOVETSR */ {
                   2737:   /* mask fff8, bits 44e0, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2738:   int srcreg = (ipc->opcode >> 0) & 7;
                   2739:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                   2740:   uint8 srcdata = fetchbyte(srcaddr);
                   2741:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2742: 
                   2743:   SR = (SR & ~0xFF) | srcdata;
                   2744:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2745:     /* mode change, swap SP and A7 */
                   2746:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2747:   }
                   2748:   PC+= 2;
                   2749: }
                   2750: 
                   2751: void cpu_op_642a(t_ipc *ipc) /* MOVETSR */ {
                   2752:   /* mask fff8, bits 44e8, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2753:   int srcreg = (ipc->opcode >> 0) & 7;
                   2754:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   2755:   uint8 srcdata = fetchbyte(srcaddr);
                   2756:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2757: 
                   2758:   SR = (SR & ~0xFF) | srcdata;
                   2759:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2760:     /* mode change, swap SP and A7 */
                   2761:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2762:   }
                   2763:   PC+= 4;
                   2764: }
                   2765: 
                   2766: void cpu_op_642b(t_ipc *ipc) /* MOVETSR */ {
                   2767:   /* mask fff8, bits 44e8, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2768:   int srcreg = (ipc->opcode >> 0) & 7;
                   2769:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   2770:   uint8 srcdata = fetchbyte(srcaddr);
                   2771:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2772: 
                   2773:   SR = (SR & ~0xFF) | srcdata;
                   2774:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2775:     /* mode change, swap SP and A7 */
                   2776:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2777:   }
                   2778:   PC+= 4;
                   2779: }
                   2780: 
                   2781: void cpu_op_643a(t_ipc *ipc) /* MOVETSR */ {
                   2782:   /* mask fff8, bits 44f0, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2783:   int srcreg = (ipc->opcode >> 0) & 7;
                   2784:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   2785:   uint8 srcdata = fetchbyte(srcaddr);
                   2786:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2787: 
                   2788:   SR = (SR & ~0xFF) | srcdata;
                   2789:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2790:     /* mode change, swap SP and A7 */
                   2791:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2792:   }
                   2793:   PC+= 4;
                   2794: }
                   2795: 
                   2796: void cpu_op_643b(t_ipc *ipc) /* MOVETSR */ {
                   2797:   /* mask fff8, bits 44f0, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2798:   int srcreg = (ipc->opcode >> 0) & 7;
                   2799:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   2800:   uint8 srcdata = fetchbyte(srcaddr);
                   2801:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2802: 
                   2803:   SR = (SR & ~0xFF) | srcdata;
                   2804:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2805:     /* mode change, swap SP and A7 */
                   2806:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2807:   }
                   2808:   PC+= 4;
                   2809: }
                   2810: 
                   2811: void cpu_op_644a(t_ipc *ipc) /* MOVETSR */ {
                   2812:   /* mask ffff, bits 44f8, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2813:   uint32 srcaddr = ipc->src;
                   2814:   uint8 srcdata = fetchbyte(srcaddr);
                   2815:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2816: 
                   2817:   SR = (SR & ~0xFF) | srcdata;
                   2818:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2819:     /* mode change, swap SP and A7 */
                   2820:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2821:   }
                   2822:   PC+= 4;
                   2823: }
                   2824: 
                   2825: void cpu_op_644b(t_ipc *ipc) /* MOVETSR */ {
                   2826:   /* mask ffff, bits 44f8, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2827:   uint32 srcaddr = ipc->src;
                   2828:   uint8 srcdata = fetchbyte(srcaddr);
                   2829:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2830: 
                   2831:   SR = (SR & ~0xFF) | srcdata;
                   2832:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2833:     /* mode change, swap SP and A7 */
                   2834:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2835:   }
                   2836:   PC+= 4;
                   2837: }
                   2838: 
                   2839: void cpu_op_645a(t_ipc *ipc) /* MOVETSR */ {
                   2840:   /* mask ffff, bits 44f9, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2841:   uint32 srcaddr = ipc->src;
                   2842:   uint8 srcdata = fetchbyte(srcaddr);
                   2843:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2844: 
                   2845:   SR = (SR & ~0xFF) | srcdata;
                   2846:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2847:     /* mode change, swap SP and A7 */
                   2848:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2849:   }
                   2850:   PC+= 6;
                   2851: }
                   2852: 
                   2853: void cpu_op_645b(t_ipc *ipc) /* MOVETSR */ {
                   2854:   /* mask ffff, bits 44f9, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2855:   uint32 srcaddr = ipc->src;
                   2856:   uint8 srcdata = fetchbyte(srcaddr);
                   2857:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2858: 
                   2859:   SR = (SR & ~0xFF) | srcdata;
                   2860:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2861:     /* mode change, swap SP and A7 */
                   2862:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2863:   }
                   2864:   PC+= 6;
                   2865: }
                   2866: 
                   2867: void cpu_op_646a(t_ipc *ipc) /* MOVETSR */ {
                   2868:   /* mask ffff, bits 44fa, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 9, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2869:   uint32 srcaddr = ipc->src;
                   2870:   uint8 srcdata = fetchbyte(srcaddr);
                   2871:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2872: 
                   2873:   SR = (SR & ~0xFF) | srcdata;
                   2874:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2875:     /* mode change, swap SP and A7 */
                   2876:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2877:   }
                   2878:   PC+= 4;
                   2879: }
                   2880: 
                   2881: void cpu_op_646b(t_ipc *ipc) /* MOVETSR */ {
                   2882:   /* mask ffff, bits 44fa, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 9, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2883:   uint32 srcaddr = ipc->src;
                   2884:   uint8 srcdata = fetchbyte(srcaddr);
                   2885:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2886: 
                   2887:   SR = (SR & ~0xFF) | srcdata;
                   2888:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2889:     /* mode change, swap SP and A7 */
                   2890:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2891:   }
                   2892:   PC+= 4;
                   2893: }
                   2894: 
                   2895: void cpu_op_647a(t_ipc *ipc) /* MOVETSR */ {
                   2896:   /* mask ffff, bits 44fb, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 10, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2897:   uint32 srcaddr = idxval_src(ipc);
                   2898:   uint8 srcdata = fetchbyte(srcaddr);
                   2899:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2900: 
                   2901:   SR = (SR & ~0xFF) | srcdata;
                   2902:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2903:     /* mode change, swap SP and A7 */
                   2904:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2905:   }
                   2906:   PC+= 4;
                   2907: }
                   2908: 
                   2909: void cpu_op_647b(t_ipc *ipc) /* MOVETSR */ {
                   2910:   /* mask ffff, bits 44fb, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 10, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2911:   uint32 srcaddr = idxval_src(ipc);
                   2912:   uint8 srcdata = fetchbyte(srcaddr);
                   2913:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2914: 
                   2915:   SR = (SR & ~0xFF) | srcdata;
                   2916:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2917:     /* mode change, swap SP and A7 */
                   2918:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2919:   }
                   2920:   PC+= 4;
                   2921: }
                   2922: 
                   2923: void cpu_op_648a(t_ipc *ipc) /* MOVETSR */ {
                   2924:   /* mask ffff, bits 44fc, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 11, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2925:   uint8 srcdata = ipc->src;
                   2926:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2927: 
                   2928:   SR = (SR & ~0xFF) | srcdata;
                   2929:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2930:     /* mode change, swap SP and A7 */
                   2931:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2932:   }
                   2933:   PC+= 4;
                   2934: }
                   2935: 
                   2936: void cpu_op_648b(t_ipc *ipc) /* MOVETSR */ {
                   2937:   /* mask ffff, bits 44fc, mnemonic 26, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 11, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2938:   uint8 srcdata = ipc->src;
                   2939:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2940: 
                   2941:   SR = (SR & ~0xFF) | srcdata;
                   2942:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2943:     /* mode change, swap SP and A7 */
                   2944:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2945:   }
                   2946:   PC+= 4;
                   2947: }
                   2948: 
                   2949: void cpu_op_649a(t_ipc *ipc) /* MOVETSR */ {
                   2950:   /* mask fff8, bits 46c0, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2951:   int srcreg = (ipc->opcode >> 0) & 7;
                   2952:   uint16 srcdata = DATAREG(srcreg);
                   2953:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2954: 
                   2955:   if (!SFLAG)
1.1.1.2 ! root     2956:     reg68k_internal_vector(V_PRIVILEGE, PC+2);
1.1       root     2957: 
                   2958:   SR = srcdata;
                   2959:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2960:     /* mode change, swap SP and A7 */
                   2961:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2962:   }
                   2963:   PC+= 2;
                   2964: }
                   2965: 
                   2966: void cpu_op_649b(t_ipc *ipc) /* MOVETSR */ {
                   2967:   /* mask fff8, bits 46c0, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2968:   int srcreg = (ipc->opcode >> 0) & 7;
                   2969:   uint16 srcdata = DATAREG(srcreg);
                   2970:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2971: 
                   2972:   if (!SFLAG)
1.1.1.2 ! root     2973:     reg68k_internal_vector(V_PRIVILEGE, PC+2);
1.1       root     2974: 
                   2975:   SR = srcdata;
                   2976:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2977:     /* mode change, swap SP and A7 */
                   2978:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2979:   }
                   2980:   PC+= 2;
                   2981: }
                   2982: 
                   2983: void cpu_op_650a(t_ipc *ipc) /* MOVETSR */ {
                   2984:   /* mask fff8, bits 46d0, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   2985:   int srcreg = (ipc->opcode >> 0) & 7;
                   2986:   uint32 srcaddr = ADDRREG(srcreg);
                   2987:   uint16 srcdata = fetchword(srcaddr);
                   2988:   unsigned int sr = reg68k_sr.sr_struct.s;
                   2989: 
                   2990:   if (!SFLAG)
1.1.1.2 ! root     2991:     reg68k_internal_vector(V_PRIVILEGE, PC+2);
1.1       root     2992: 
                   2993:   SR = srcdata;
                   2994:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   2995:     /* mode change, swap SP and A7 */
                   2996:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   2997:   }
                   2998:   PC+= 2;
                   2999: }
                   3000: 
                   3001: void cpu_op_650b(t_ipc *ipc) /* MOVETSR */ {
                   3002:   /* mask fff8, bits 46d0, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3003:   int srcreg = (ipc->opcode >> 0) & 7;
                   3004:   uint32 srcaddr = ADDRREG(srcreg);
                   3005:   uint16 srcdata = fetchword(srcaddr);
                   3006:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3007: 
                   3008:   if (!SFLAG)
1.1.1.2 ! root     3009:     reg68k_internal_vector(V_PRIVILEGE, PC+2);
1.1       root     3010: 
                   3011:   SR = srcdata;
                   3012:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3013:     /* mode change, swap SP and A7 */
                   3014:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3015:   }
                   3016:   PC+= 2;
                   3017: }
                   3018: 
                   3019: void cpu_op_651a(t_ipc *ipc) /* MOVETSR */ {
                   3020:   /* mask fff8, bits 46d8, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3021:   int srcreg = (ipc->opcode >> 0) & 7;
                   3022:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                   3023:   uint16 srcdata = fetchword(srcaddr);
                   3024:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3025: 
                   3026:   if (!SFLAG)
1.1.1.2 ! root     3027:     reg68k_internal_vector(V_PRIVILEGE, PC+2);
1.1       root     3028: 
                   3029:   SR = srcdata;
                   3030:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3031:     /* mode change, swap SP and A7 */
                   3032:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3033:   }
                   3034:   PC+= 2;
                   3035: }
                   3036: 
                   3037: void cpu_op_651b(t_ipc *ipc) /* MOVETSR */ {
                   3038:   /* mask fff8, bits 46d8, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3039:   int srcreg = (ipc->opcode >> 0) & 7;
                   3040:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                   3041:   uint16 srcdata = fetchword(srcaddr);
                   3042:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3043: 
                   3044:   if (!SFLAG)
1.1.1.2 ! root     3045:     reg68k_internal_vector(V_PRIVILEGE, PC+2);
1.1       root     3046: 
                   3047:   SR = srcdata;
                   3048:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3049:     /* mode change, swap SP and A7 */
                   3050:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3051:   }
                   3052:   PC+= 2;
                   3053: }
                   3054: 
                   3055: void cpu_op_652a(t_ipc *ipc) /* MOVETSR */ {
                   3056:   /* mask fff8, bits 46e0, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3057:   int srcreg = (ipc->opcode >> 0) & 7;
                   3058:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                   3059:   uint16 srcdata = fetchword(srcaddr);
                   3060:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3061: 
                   3062:   if (!SFLAG)
1.1.1.2 ! root     3063:     reg68k_internal_vector(V_PRIVILEGE, PC+2);
1.1       root     3064: 
                   3065:   SR = srcdata;
                   3066:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3067:     /* mode change, swap SP and A7 */
                   3068:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3069:   }
                   3070:   PC+= 2;
                   3071: }
                   3072: 
                   3073: void cpu_op_652b(t_ipc *ipc) /* MOVETSR */ {
                   3074:   /* mask fff8, bits 46e0, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3075:   int srcreg = (ipc->opcode >> 0) & 7;
                   3076:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                   3077:   uint16 srcdata = fetchword(srcaddr);
                   3078:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3079: 
                   3080:   if (!SFLAG)
1.1.1.2 ! root     3081:     reg68k_internal_vector(V_PRIVILEGE, PC+2);
1.1       root     3082: 
                   3083:   SR = srcdata;
                   3084:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3085:     /* mode change, swap SP and A7 */
                   3086:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3087:   }
                   3088:   PC+= 2;
                   3089: }
                   3090: 
                   3091: void cpu_op_653a(t_ipc *ipc) /* MOVETSR */ {
                   3092:   /* mask fff8, bits 46e8, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3093:   int srcreg = (ipc->opcode >> 0) & 7;
                   3094:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   3095:   uint16 srcdata = fetchword(srcaddr);
                   3096:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3097: 
                   3098:   if (!SFLAG)
1.1.1.2 ! root     3099:     reg68k_internal_vector(V_PRIVILEGE, PC+4);
1.1       root     3100: 
                   3101:   SR = srcdata;
                   3102:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3103:     /* mode change, swap SP and A7 */
                   3104:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3105:   }
                   3106:   PC+= 4;
                   3107: }
                   3108: 
                   3109: void cpu_op_653b(t_ipc *ipc) /* MOVETSR */ {
                   3110:   /* mask fff8, bits 46e8, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3111:   int srcreg = (ipc->opcode >> 0) & 7;
                   3112:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   3113:   uint16 srcdata = fetchword(srcaddr);
                   3114:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3115: 
                   3116:   if (!SFLAG)
1.1.1.2 ! root     3117:     reg68k_internal_vector(V_PRIVILEGE, PC+4);
1.1       root     3118: 
                   3119:   SR = srcdata;
                   3120:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3121:     /* mode change, swap SP and A7 */
                   3122:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3123:   }
                   3124:   PC+= 4;
                   3125: }
                   3126: 
                   3127: void cpu_op_654a(t_ipc *ipc) /* MOVETSR */ {
                   3128:   /* mask fff8, bits 46f0, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3129:   int srcreg = (ipc->opcode >> 0) & 7;
                   3130:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   3131:   uint16 srcdata = fetchword(srcaddr);
                   3132:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3133: 
                   3134:   if (!SFLAG)
1.1.1.2 ! root     3135:     reg68k_internal_vector(V_PRIVILEGE, PC+4);
1.1       root     3136: 
                   3137:   SR = srcdata;
                   3138:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3139:     /* mode change, swap SP and A7 */
                   3140:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3141:   }
                   3142:   PC+= 4;
                   3143: }
                   3144: 
                   3145: void cpu_op_654b(t_ipc *ipc) /* MOVETSR */ {
                   3146:   /* mask fff8, bits 46f0, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3147:   int srcreg = (ipc->opcode >> 0) & 7;
                   3148:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   3149:   uint16 srcdata = fetchword(srcaddr);
                   3150:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3151: 
                   3152:   if (!SFLAG)
1.1.1.2 ! root     3153:     reg68k_internal_vector(V_PRIVILEGE, PC+4);
1.1       root     3154: 
                   3155:   SR = srcdata;
                   3156:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3157:     /* mode change, swap SP and A7 */
                   3158:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3159:   }
                   3160:   PC+= 4;
                   3161: }
                   3162: 
                   3163: void cpu_op_655a(t_ipc *ipc) /* MOVETSR */ {
                   3164:   /* mask ffff, bits 46f8, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3165:   uint32 srcaddr = ipc->src;
                   3166:   uint16 srcdata = fetchword(srcaddr);
                   3167:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3168: 
                   3169:   if (!SFLAG)
1.1.1.2 ! root     3170:     reg68k_internal_vector(V_PRIVILEGE, PC+4);
1.1       root     3171: 
                   3172:   SR = srcdata;
                   3173:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3174:     /* mode change, swap SP and A7 */
                   3175:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3176:   }
                   3177:   PC+= 4;
                   3178: }
                   3179: 
                   3180: void cpu_op_655b(t_ipc *ipc) /* MOVETSR */ {
                   3181:   /* mask ffff, bits 46f8, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3182:   uint32 srcaddr = ipc->src;
                   3183:   uint16 srcdata = fetchword(srcaddr);
                   3184:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3185: 
                   3186:   if (!SFLAG)
1.1.1.2 ! root     3187:     reg68k_internal_vector(V_PRIVILEGE, PC+4);
1.1       root     3188: 
                   3189:   SR = srcdata;
                   3190:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3191:     /* mode change, swap SP and A7 */
                   3192:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3193:   }
                   3194:   PC+= 4;
                   3195: }
                   3196: 
                   3197: void cpu_op_656a(t_ipc *ipc) /* MOVETSR */ {
                   3198:   /* mask ffff, bits 46f9, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3199:   uint32 srcaddr = ipc->src;
                   3200:   uint16 srcdata = fetchword(srcaddr);
                   3201:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3202: 
                   3203:   if (!SFLAG)
1.1.1.2 ! root     3204:     reg68k_internal_vector(V_PRIVILEGE, PC+6);
1.1       root     3205: 
                   3206:   SR = srcdata;
                   3207:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3208:     /* mode change, swap SP and A7 */
                   3209:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3210:   }
                   3211:   PC+= 6;
                   3212: }
                   3213: 
                   3214: void cpu_op_656b(t_ipc *ipc) /* MOVETSR */ {
                   3215:   /* mask ffff, bits 46f9, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3216:   uint32 srcaddr = ipc->src;
                   3217:   uint16 srcdata = fetchword(srcaddr);
                   3218:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3219: 
                   3220:   if (!SFLAG)
1.1.1.2 ! root     3221:     reg68k_internal_vector(V_PRIVILEGE, PC+6);
1.1       root     3222: 
                   3223:   SR = srcdata;
                   3224:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3225:     /* mode change, swap SP and A7 */
                   3226:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3227:   }
                   3228:   PC+= 6;
                   3229: }
                   3230: 
                   3231: void cpu_op_657a(t_ipc *ipc) /* MOVETSR */ {
                   3232:   /* mask ffff, bits 46fa, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 9, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3233:   uint32 srcaddr = ipc->src;
                   3234:   uint16 srcdata = fetchword(srcaddr);
                   3235:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3236: 
                   3237:   if (!SFLAG)
1.1.1.2 ! root     3238:     reg68k_internal_vector(V_PRIVILEGE, PC+4);
1.1       root     3239: 
                   3240:   SR = srcdata;
                   3241:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3242:     /* mode change, swap SP and A7 */
                   3243:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3244:   }
                   3245:   PC+= 4;
                   3246: }
                   3247: 
                   3248: void cpu_op_657b(t_ipc *ipc) /* MOVETSR */ {
                   3249:   /* mask ffff, bits 46fa, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 9, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3250:   uint32 srcaddr = ipc->src;
                   3251:   uint16 srcdata = fetchword(srcaddr);
                   3252:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3253: 
                   3254:   if (!SFLAG)
1.1.1.2 ! root     3255:     reg68k_internal_vector(V_PRIVILEGE, PC+4);
1.1       root     3256: 
                   3257:   SR = srcdata;
                   3258:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3259:     /* mode change, swap SP and A7 */
                   3260:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3261:   }
                   3262:   PC+= 4;
                   3263: }
                   3264: 
                   3265: void cpu_op_658a(t_ipc *ipc) /* MOVETSR */ {
                   3266:   /* mask ffff, bits 46fb, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 10, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3267:   uint32 srcaddr = idxval_src(ipc);
                   3268:   uint16 srcdata = fetchword(srcaddr);
                   3269:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3270: 
                   3271:   if (!SFLAG)
1.1.1.2 ! root     3272:     reg68k_internal_vector(V_PRIVILEGE, PC+4);
1.1       root     3273: 
                   3274:   SR = srcdata;
                   3275:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3276:     /* mode change, swap SP and A7 */
                   3277:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3278:   }
                   3279:   PC+= 4;
                   3280: }
                   3281: 
                   3282: void cpu_op_658b(t_ipc *ipc) /* MOVETSR */ {
                   3283:   /* mask ffff, bits 46fb, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 10, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3284:   uint32 srcaddr = idxval_src(ipc);
                   3285:   uint16 srcdata = fetchword(srcaddr);
                   3286:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3287: 
                   3288:   if (!SFLAG)
1.1.1.2 ! root     3289:     reg68k_internal_vector(V_PRIVILEGE, PC+4);
1.1       root     3290: 
                   3291:   SR = srcdata;
                   3292:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3293:     /* mode change, swap SP and A7 */
                   3294:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3295:   }
                   3296:   PC+= 4;
                   3297: }
                   3298: 
                   3299: void cpu_op_659a(t_ipc *ipc) /* MOVETSR */ {
                   3300:   /* mask ffff, bits 46fc, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3301:   uint16 srcdata = ipc->src;
                   3302:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3303: 
                   3304:   if (!SFLAG)
1.1.1.2 ! root     3305:     reg68k_internal_vector(V_PRIVILEGE, PC+4);
1.1       root     3306: 
                   3307:   SR = srcdata;
                   3308:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3309:     /* mode change, swap SP and A7 */
                   3310:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3311:   }
                   3312:   PC+= 4;
                   3313: }
                   3314: 
                   3315: void cpu_op_659b(t_ipc *ipc) /* MOVETSR */ {
                   3316:   /* mask ffff, bits 46fc, mnemonic 26, priv -1, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3317:   uint16 srcdata = ipc->src;
                   3318:   unsigned int sr = reg68k_sr.sr_struct.s;
                   3319: 
                   3320:   if (!SFLAG)
1.1.1.2 ! root     3321:     reg68k_internal_vector(V_PRIVILEGE, PC+4);
1.1       root     3322: 
                   3323:   SR = srcdata;
                   3324:   if (sr != (uint8)reg68k_sr.sr_struct.s) {
                   3325:     /* mode change, swap SP and A7 */
                   3326:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   3327:   }
                   3328:   PC+= 4;
                   3329: }
                   3330: 
                   3331: void cpu_op_660a(t_ipc *ipc) /* NBCD */ {
                   3332:   /* mask fff8, bits 4800, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3333:   int srcreg = (ipc->opcode >> 0) & 7;
                   3334:   uint8 srcdata = DATAREG(srcreg);
                   3335:   uint8 outdata;
                   3336: 
                   3337:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3338:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3339: 
                   3340:   if ((sint8)outdata_low < 0) {
                   3341:     outdata_low+=10; outdata_high--;
                   3342:   }
                   3343:   if ((sint8)outdata_high < 0) {
                   3344:     outdata_high+=10;
                   3345:   } else {
                   3346:   }
                   3347:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3348:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
                   3349:   PC+= 2;
                   3350: }
                   3351: 
                   3352: void cpu_op_660b(t_ipc *ipc) /* NBCD */ {
                   3353:   /* mask fff8, bits 4800, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3354:   int srcreg = (ipc->opcode >> 0) & 7;
                   3355:   uint8 srcdata = DATAREG(srcreg);
                   3356:   uint8 outdata;
                   3357: 
                   3358:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3359:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3360: 
                   3361:   if ((sint8)outdata_low < 0) {
                   3362:     outdata_low+=10; outdata_high--;
                   3363:   }
                   3364:   if ((sint8)outdata_high < 0) {
                   3365:     outdata_high+=10;
                   3366:     CFLAG = 1;
                   3367:     XFLAG = 1;
                   3368:   } else {
                   3369:     CFLAG = 0;
                   3370:     XFLAG = 0;
                   3371:   }
                   3372:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3373:   if (outdata) ZFLAG = 0;
                   3374:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
                   3375:   PC+= 2;
                   3376: }
                   3377: 
                   3378: void cpu_op_661a(t_ipc *ipc) /* NBCD */ {
                   3379:   /* mask fff8, bits 4810, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3380:   int srcreg = (ipc->opcode >> 0) & 7;
                   3381:   uint32 srcaddr = ADDRREG(srcreg);
                   3382:   uint8 srcdata = fetchbyte(srcaddr);
                   3383:   uint8 outdata;
                   3384: 
                   3385:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3386:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3387: 
                   3388:   if ((sint8)outdata_low < 0) {
                   3389:     outdata_low+=10; outdata_high--;
                   3390:   }
                   3391:   if ((sint8)outdata_high < 0) {
                   3392:     outdata_high+=10;
                   3393:   } else {
                   3394:   }
                   3395:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3396:   storebyte(srcaddr, outdata);
                   3397:   PC+= 2;
                   3398: }
                   3399: 
                   3400: void cpu_op_661b(t_ipc *ipc) /* NBCD */ {
                   3401:   /* mask fff8, bits 4810, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3402:   int srcreg = (ipc->opcode >> 0) & 7;
                   3403:   uint32 srcaddr = ADDRREG(srcreg);
                   3404:   uint8 srcdata = fetchbyte(srcaddr);
                   3405:   uint8 outdata;
                   3406: 
                   3407:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3408:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3409: 
                   3410:   if ((sint8)outdata_low < 0) {
                   3411:     outdata_low+=10; outdata_high--;
                   3412:   }
                   3413:   if ((sint8)outdata_high < 0) {
                   3414:     outdata_high+=10;
                   3415:     CFLAG = 1;
                   3416:     XFLAG = 1;
                   3417:   } else {
                   3418:     CFLAG = 0;
                   3419:     XFLAG = 0;
                   3420:   }
                   3421:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3422:   if (outdata) ZFLAG = 0;
                   3423:   storebyte(srcaddr, outdata);
                   3424:   PC+= 2;
                   3425: }
                   3426: 
                   3427: void cpu_op_662a(t_ipc *ipc) /* NBCD */ {
                   3428:   /* mask fff8, bits 4818, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3429:   int srcreg = (ipc->opcode >> 0) & 7;
                   3430:   uint32 srcaddr = ADDRREG(srcreg);
                   3431:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                   3432:   uint8 srcdata = fetchbyte(srcaddr);
                   3433:   uint8 outdata;
                   3434: 
                   3435:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3436:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3437: 
                   3438:   if ((sint8)outdata_low < 0) {
                   3439:     outdata_low+=10; outdata_high--;
                   3440:   }
                   3441:   if ((sint8)outdata_high < 0) {
                   3442:     outdata_high+=10;
                   3443:   } else {
                   3444:   }
                   3445:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3446:   storebyte(srcaddr, outdata);
                   3447:   PC+= 2;
                   3448: }
                   3449: 
                   3450: void cpu_op_662b(t_ipc *ipc) /* NBCD */ {
                   3451:   /* mask fff8, bits 4818, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3452:   int srcreg = (ipc->opcode >> 0) & 7;
                   3453:   uint32 srcaddr = ADDRREG(srcreg);
                   3454:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                   3455:   uint8 srcdata = fetchbyte(srcaddr);
                   3456:   uint8 outdata;
                   3457: 
                   3458:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3459:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3460: 
                   3461:   if ((sint8)outdata_low < 0) {
                   3462:     outdata_low+=10; outdata_high--;
                   3463:   }
                   3464:   if ((sint8)outdata_high < 0) {
                   3465:     outdata_high+=10;
                   3466:     CFLAG = 1;
                   3467:     XFLAG = 1;
                   3468:   } else {
                   3469:     CFLAG = 0;
                   3470:     XFLAG = 0;
                   3471:   }
                   3472:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3473:   if (outdata) ZFLAG = 0;
                   3474:   storebyte(srcaddr, outdata);
                   3475:   PC+= 2;
                   3476: }
                   3477: 
                   3478: void cpu_op_663a(t_ipc *ipc) /* NBCD */ {
                   3479:   /* mask fff8, bits 4820, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3480:   int srcreg = (ipc->opcode >> 0) & 7;
                   3481:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                   3482:   uint8 srcdata = fetchbyte(srcaddr);
                   3483:   uint8 outdata;
                   3484: 
                   3485:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3486:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3487: 
                   3488:   if ((sint8)outdata_low < 0) {
                   3489:     outdata_low+=10; outdata_high--;
                   3490:   }
                   3491:   if ((sint8)outdata_high < 0) {
                   3492:     outdata_high+=10;
                   3493:   } else {
                   3494:   }
                   3495:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3496:   storebyte(srcaddr, outdata);
                   3497:   PC+= 2;
                   3498: }
                   3499: 
                   3500: void cpu_op_663b(t_ipc *ipc) /* NBCD */ {
                   3501:   /* mask fff8, bits 4820, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3502:   int srcreg = (ipc->opcode >> 0) & 7;
                   3503:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                   3504:   uint8 srcdata = fetchbyte(srcaddr);
                   3505:   uint8 outdata;
                   3506: 
                   3507:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3508:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3509: 
                   3510:   if ((sint8)outdata_low < 0) {
                   3511:     outdata_low+=10; outdata_high--;
                   3512:   }
                   3513:   if ((sint8)outdata_high < 0) {
                   3514:     outdata_high+=10;
                   3515:     CFLAG = 1;
                   3516:     XFLAG = 1;
                   3517:   } else {
                   3518:     CFLAG = 0;
                   3519:     XFLAG = 0;
                   3520:   }
                   3521:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3522:   if (outdata) ZFLAG = 0;
                   3523:   storebyte(srcaddr, outdata);
                   3524:   PC+= 2;
                   3525: }
                   3526: 
                   3527: void cpu_op_664a(t_ipc *ipc) /* NBCD */ {
                   3528:   /* mask fff8, bits 4828, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3529:   int srcreg = (ipc->opcode >> 0) & 7;
                   3530:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   3531:   uint8 srcdata = fetchbyte(srcaddr);
                   3532:   uint8 outdata;
                   3533: 
                   3534:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3535:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3536: 
                   3537:   if ((sint8)outdata_low < 0) {
                   3538:     outdata_low+=10; outdata_high--;
                   3539:   }
                   3540:   if ((sint8)outdata_high < 0) {
                   3541:     outdata_high+=10;
                   3542:   } else {
                   3543:   }
                   3544:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3545:   storebyte(srcaddr, outdata);
                   3546:   PC+= 4;
                   3547: }
                   3548: 
                   3549: void cpu_op_664b(t_ipc *ipc) /* NBCD */ {
                   3550:   /* mask fff8, bits 4828, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3551:   int srcreg = (ipc->opcode >> 0) & 7;
                   3552:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   3553:   uint8 srcdata = fetchbyte(srcaddr);
                   3554:   uint8 outdata;
                   3555: 
                   3556:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3557:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3558: 
                   3559:   if ((sint8)outdata_low < 0) {
                   3560:     outdata_low+=10; outdata_high--;
                   3561:   }
                   3562:   if ((sint8)outdata_high < 0) {
                   3563:     outdata_high+=10;
                   3564:     CFLAG = 1;
                   3565:     XFLAG = 1;
                   3566:   } else {
                   3567:     CFLAG = 0;
                   3568:     XFLAG = 0;
                   3569:   }
                   3570:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3571:   if (outdata) ZFLAG = 0;
                   3572:   storebyte(srcaddr, outdata);
                   3573:   PC+= 4;
                   3574: }
                   3575: 
                   3576: void cpu_op_665a(t_ipc *ipc) /* NBCD */ {
                   3577:   /* mask fff8, bits 4830, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3578:   int srcreg = (ipc->opcode >> 0) & 7;
                   3579:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   3580:   uint8 srcdata = fetchbyte(srcaddr);
                   3581:   uint8 outdata;
                   3582: 
                   3583:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3584:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3585: 
                   3586:   if ((sint8)outdata_low < 0) {
                   3587:     outdata_low+=10; outdata_high--;
                   3588:   }
                   3589:   if ((sint8)outdata_high < 0) {
                   3590:     outdata_high+=10;
                   3591:   } else {
                   3592:   }
                   3593:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3594:   storebyte(srcaddr, outdata);
                   3595:   PC+= 4;
                   3596: }
                   3597: 
                   3598: void cpu_op_665b(t_ipc *ipc) /* NBCD */ {
                   3599:   /* mask fff8, bits 4830, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3600:   int srcreg = (ipc->opcode >> 0) & 7;
                   3601:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   3602:   uint8 srcdata = fetchbyte(srcaddr);
                   3603:   uint8 outdata;
                   3604: 
                   3605:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3606:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3607: 
                   3608:   if ((sint8)outdata_low < 0) {
                   3609:     outdata_low+=10; outdata_high--;
                   3610:   }
                   3611:   if ((sint8)outdata_high < 0) {
                   3612:     outdata_high+=10;
                   3613:     CFLAG = 1;
                   3614:     XFLAG = 1;
                   3615:   } else {
                   3616:     CFLAG = 0;
                   3617:     XFLAG = 0;
                   3618:   }
                   3619:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3620:   if (outdata) ZFLAG = 0;
                   3621:   storebyte(srcaddr, outdata);
                   3622:   PC+= 4;
                   3623: }
                   3624: 
                   3625: void cpu_op_666a(t_ipc *ipc) /* NBCD */ {
                   3626:   /* mask ffff, bits 4838, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3627:   uint32 srcaddr = ipc->src;
                   3628:   uint8 srcdata = fetchbyte(srcaddr);
                   3629:   uint8 outdata;
                   3630: 
                   3631:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3632:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3633: 
                   3634:   if ((sint8)outdata_low < 0) {
                   3635:     outdata_low+=10; outdata_high--;
                   3636:   }
                   3637:   if ((sint8)outdata_high < 0) {
                   3638:     outdata_high+=10;
                   3639:   } else {
                   3640:   }
                   3641:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3642:   storebyte(srcaddr, outdata);
                   3643:   PC+= 4;
                   3644: }
                   3645: 
                   3646: void cpu_op_666b(t_ipc *ipc) /* NBCD */ {
                   3647:   /* mask ffff, bits 4838, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3648:   uint32 srcaddr = ipc->src;
                   3649:   uint8 srcdata = fetchbyte(srcaddr);
                   3650:   uint8 outdata;
                   3651: 
                   3652:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3653:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3654: 
                   3655:   if ((sint8)outdata_low < 0) {
                   3656:     outdata_low+=10; outdata_high--;
                   3657:   }
                   3658:   if ((sint8)outdata_high < 0) {
                   3659:     outdata_high+=10;
                   3660:     CFLAG = 1;
                   3661:     XFLAG = 1;
                   3662:   } else {
                   3663:     CFLAG = 0;
                   3664:     XFLAG = 0;
                   3665:   }
                   3666:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3667:   if (outdata) ZFLAG = 0;
                   3668:   storebyte(srcaddr, outdata);
                   3669:   PC+= 4;
                   3670: }
                   3671: 
                   3672: void cpu_op_667a(t_ipc *ipc) /* NBCD */ {
                   3673:   /* mask ffff, bits 4839, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3674:   uint32 srcaddr = ipc->src;
                   3675:   uint8 srcdata = fetchbyte(srcaddr);
                   3676:   uint8 outdata;
                   3677: 
                   3678:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3679:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3680: 
                   3681:   if ((sint8)outdata_low < 0) {
                   3682:     outdata_low+=10; outdata_high--;
                   3683:   }
                   3684:   if ((sint8)outdata_high < 0) {
                   3685:     outdata_high+=10;
                   3686:   } else {
                   3687:   }
                   3688:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3689:   storebyte(srcaddr, outdata);
                   3690:   PC+= 6;
                   3691: }
                   3692: 
                   3693: void cpu_op_667b(t_ipc *ipc) /* NBCD */ {
                   3694:   /* mask ffff, bits 4839, mnemonic 37, priv 0, endblk 0, imm_notzero 0, used 1     set -11, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3695:   uint32 srcaddr = ipc->src;
                   3696:   uint8 srcdata = fetchbyte(srcaddr);
                   3697:   uint8 outdata;
                   3698: 
                   3699:   sint8 outdata_low = 0 - (sint8)(srcdata & 0xF) - XFLAG;
                   3700:   sint8 outdata_high = 0 - (sint8)(srcdata>>4);
                   3701: 
                   3702:   if ((sint8)outdata_low < 0) {
                   3703:     outdata_low+=10; outdata_high--;
                   3704:   }
                   3705:   if ((sint8)outdata_high < 0) {
                   3706:     outdata_high+=10;
                   3707:     CFLAG = 1;
                   3708:     XFLAG = 1;
                   3709:   } else {
                   3710:     CFLAG = 0;
                   3711:     XFLAG = 0;
                   3712:   }
                   3713:   outdata = (uint8)outdata_low |((uint8)outdata_high << 4);
                   3714:   if (outdata) ZFLAG = 0;
                   3715:   storebyte(srcaddr, outdata);
                   3716:   PC+= 6;
                   3717: }
                   3718: 
                   3719: void cpu_op_668a(t_ipc *ipc) /* SWAP */ {
                   3720:   /* mask fff8, bits 4840, mnemonic 38, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3721:   int srcreg = (ipc->opcode >> 0) & 7;
                   3722:   uint32 srcdata = DATAREG(srcreg);
                   3723:   uint32 outdata = (srcdata>>16) | (srcdata<<16);
                   3724: 
                   3725:   DATAREG(srcreg) = outdata;
                   3726:   PC+= 2;
                   3727: }
                   3728: 
                   3729: void cpu_op_668b(t_ipc *ipc) /* SWAP */ {
                   3730:   /* mask fff8, bits 4840, mnemonic 38, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3731:   int srcreg = (ipc->opcode >> 0) & 7;
                   3732:   uint32 srcdata = DATAREG(srcreg);
                   3733:   uint32 outdata = (srcdata>>16) | (srcdata<<16);
                   3734: 
                   3735:   DATAREG(srcreg) = outdata;
                   3736: 
                   3737:   VFLAG = 0;
                   3738:   CFLAG = 0;
                   3739:   NFLAG = ((sint32)outdata) < 0;
                   3740:   ZFLAG = !outdata;
                   3741:   PC+= 2;
                   3742: }
                   3743: 
                   3744: void cpu_op_669a(t_ipc *ipc) /* PEA */ {
                   3745:   /* mask fff8, bits 4850, mnemonic 39, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3746:   int srcreg = (ipc->opcode >> 0) & 7;
                   3747:   uint32 srcaddr = ADDRREG(srcreg);
                   3748: 
                   3749:   ADDRREG(7)-= 4;
                   3750:   storelong(ADDRREG(7), srcaddr);
                   3751:   PC+= 2;
                   3752: }
                   3753: 
                   3754: void cpu_op_670a(t_ipc *ipc) /* PEA */ {
                   3755:   /* mask fff8, bits 4868, mnemonic 39, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3756:   int srcreg = (ipc->opcode >> 0) & 7;
                   3757:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   3758: 
                   3759:   ADDRREG(7)-= 4;
                   3760:   storelong(ADDRREG(7), srcaddr);
                   3761:   PC+= 4;
                   3762: }
                   3763: 
                   3764: void cpu_op_671a(t_ipc *ipc) /* PEA */ {
                   3765:   /* mask fff8, bits 4870, mnemonic 39, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3766:   int srcreg = (ipc->opcode >> 0) & 7;
                   3767:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   3768: 
                   3769:   ADDRREG(7)-= 4;
                   3770:   storelong(ADDRREG(7), srcaddr);
                   3771:   PC+= 4;
                   3772: }
                   3773: 
                   3774: void cpu_op_672a(t_ipc *ipc) /* PEA */ {
                   3775:   /* mask ffff, bits 4878, mnemonic 39, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3776:   uint32 srcaddr = ipc->src;
                   3777: 
                   3778:   ADDRREG(7)-= 4;
                   3779:   storelong(ADDRREG(7), srcaddr);
                   3780:   PC+= 4;
                   3781: }
                   3782: 
                   3783: void cpu_op_673a(t_ipc *ipc) /* PEA */ {
                   3784:   /* mask ffff, bits 4879, mnemonic 39, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3785:   uint32 srcaddr = ipc->src;
                   3786: 
                   3787:   ADDRREG(7)-= 4;
                   3788:   storelong(ADDRREG(7), srcaddr);
                   3789:   PC+= 6;
                   3790: }
                   3791: 
                   3792: void cpu_op_674a(t_ipc *ipc) /* PEA */ {
                   3793:   /* mask ffff, bits 487a, mnemonic 39, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 9, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3794:   uint32 srcaddr = ipc->src;
                   3795: 
                   3796:   ADDRREG(7)-= 4;
                   3797:   storelong(ADDRREG(7), srcaddr);
                   3798:   PC+= 4;
                   3799: }
                   3800: 
                   3801: void cpu_op_675a(t_ipc *ipc) /* PEA */ {
                   3802:   /* mask ffff, bits 487b, mnemonic 39, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 10, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3803:   uint32 srcaddr = idxval_src(ipc);
                   3804: 
                   3805:   ADDRREG(7)-= 4;
                   3806:   storelong(ADDRREG(7), srcaddr);
                   3807:   PC+= 4;
                   3808: }
                   3809: 
                   3810: void cpu_op_676a(t_ipc *ipc) /* EXT */ {
                   3811:   /* mask fff8, bits 4880, mnemonic 41, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3812:   int srcreg = (ipc->opcode >> 0) & 7;
                   3813:   uint16 srcdata = DATAREG(srcreg);
                   3814: 
                   3815:   uint16 outdata = (sint16)(sint8)(srcdata);
                   3816:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xffff) | outdata;
                   3817:   PC+= 2;
                   3818: }
                   3819: 
                   3820: void cpu_op_676b(t_ipc *ipc) /* EXT */ {
                   3821:   /* mask fff8, bits 4880, mnemonic 41, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3822:   int srcreg = (ipc->opcode >> 0) & 7;
                   3823:   uint16 srcdata = DATAREG(srcreg);
                   3824: 
                   3825:   uint16 outdata = (sint16)(sint8)(srcdata);
                   3826:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xffff) | outdata;
                   3827: 
                   3828:   VFLAG = 0;
                   3829:   CFLAG = 0;
                   3830:   NFLAG = ((sint16)outdata) < 0;
                   3831:   ZFLAG = !outdata;
                   3832:   PC+= 2;
                   3833: }
                   3834: 
                   3835: void cpu_op_677a(t_ipc *ipc) /* MOVEMRM */ {
                   3836:   /* mask fff8, bits 4890, mnemonic 27, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 12, dtype 2, sbitpos 0, dbitpos 0, immvalue 0 */
                   3837:   uint16 srcdata = ipc->src;
                   3838:   int dstreg = (ipc->opcode >> 0) & 7;
                   3839:   uint32 dstaddr = ADDRREG(dstreg);
                   3840:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   3841:   uint8 datamask = srcdata & 0xFF;
                   3842:   while (datamask) {
                   3843:     storeword(dstaddr, DATAREG(movem_bit[datamask]));
                   3844:     datamask&= ~(1<<movem_bit[datamask]);
                   3845:     dstaddr+= 2;
                   3846:   }
                   3847:   while (addrmask) {
                   3848:     storeword(dstaddr, ADDRREG(movem_bit[addrmask]));
                   3849:     addrmask&= ~(1<<movem_bit[addrmask]);
                   3850:     dstaddr+= 2;
                   3851:   }
                   3852:   PC+= 4;
                   3853: }
                   3854: 
                   3855: void cpu_op_678a(t_ipc *ipc) /* MOVEMRM */ {
                   3856:   /* mask fff8, bits 48a0, mnemonic 27, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 12, dtype 4, sbitpos 0, dbitpos 0, immvalue 0 */
                   3857:   uint16 srcdata = ipc->src;
                   3858:   int dstreg = (ipc->opcode >> 0) & 7;
                   3859:   uint32 dstaddr = ADDRREG(dstreg);
                   3860:   uint8 datamask = (srcdata & 0xFF00) >> 8;
                   3861:   uint8 addrmask = srcdata & 0xFF;
                   3862:   while (addrmask) {
                   3863:     dstaddr-= 2;
                   3864:     storeword(dstaddr, ADDRREG((7-movem_bit[addrmask])));
                   3865:     addrmask&= ~(1<<movem_bit[addrmask]);
                   3866:   }
                   3867:   while (datamask) {
                   3868:     dstaddr-= 2;
                   3869:     storeword(dstaddr, DATAREG((7-movem_bit[datamask])));
                   3870:     datamask&= ~(1<<movem_bit[datamask]);
                   3871:   }
                   3872:   ADDRREG(dstreg) = dstaddr;  PC+= 4;
                   3873: }
                   3874: 
                   3875: void cpu_op_679a(t_ipc *ipc) /* MOVEMRM */ {
                   3876:   /* mask fff8, bits 48a8, mnemonic 27, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 12, dtype 5, sbitpos 0, dbitpos 0, immvalue 0 */
                   3877:   uint16 srcdata = ipc->src;
                   3878:   int dstreg = (ipc->opcode >> 0) & 7;
                   3879:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
                   3880:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   3881:   uint8 datamask = srcdata & 0xFF;
                   3882:   while (datamask) {
                   3883:     storeword(dstaddr, DATAREG(movem_bit[datamask]));
                   3884:     datamask&= ~(1<<movem_bit[datamask]);
                   3885:     dstaddr+= 2;
                   3886:   }
                   3887:   while (addrmask) {
                   3888:     storeword(dstaddr, ADDRREG(movem_bit[addrmask]));
                   3889:     addrmask&= ~(1<<movem_bit[addrmask]);
                   3890:     dstaddr+= 2;
                   3891:   }
                   3892:   PC+= 6;
                   3893: }
                   3894: 
                   3895: void cpu_op_680a(t_ipc *ipc) /* MOVEMRM */ {
                   3896:   /* mask fff8, bits 48b0, mnemonic 27, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 12, dtype 6, sbitpos 0, dbitpos 0, immvalue 0 */
                   3897:   uint16 srcdata = ipc->src;
                   3898:   int dstreg = (ipc->opcode >> 0) & 7;
                   3899:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
                   3900:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   3901:   uint8 datamask = srcdata & 0xFF;
                   3902:   while (datamask) {
                   3903:     storeword(dstaddr, DATAREG(movem_bit[datamask]));
                   3904:     datamask&= ~(1<<movem_bit[datamask]);
                   3905:     dstaddr+= 2;
                   3906:   }
                   3907:   while (addrmask) {
                   3908:     storeword(dstaddr, ADDRREG(movem_bit[addrmask]));
                   3909:     addrmask&= ~(1<<movem_bit[addrmask]);
                   3910:     dstaddr+= 2;
                   3911:   }
                   3912:   PC+= 6;
                   3913: }
                   3914: 
                   3915: void cpu_op_681a(t_ipc *ipc) /* MOVEMRM */ {
                   3916:   /* mask ffff, bits 48b8, mnemonic 27, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 12, dtype 7, sbitpos 0, dbitpos 0, immvalue 0 */
                   3917:   uint16 srcdata = ipc->src;
                   3918:   uint32 dstaddr = ipc->dst;
                   3919:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   3920:   uint8 datamask = srcdata & 0xFF;
                   3921:   while (datamask) {
                   3922:     storeword(dstaddr, DATAREG(movem_bit[datamask]));
                   3923:     datamask&= ~(1<<movem_bit[datamask]);
                   3924:     dstaddr+= 2;
                   3925:   }
                   3926:   while (addrmask) {
                   3927:     storeword(dstaddr, ADDRREG(movem_bit[addrmask]));
                   3928:     addrmask&= ~(1<<movem_bit[addrmask]);
                   3929:     dstaddr+= 2;
                   3930:   }
                   3931:   PC+= 6;
                   3932: }
                   3933: 
                   3934: void cpu_op_682a(t_ipc *ipc) /* MOVEMRM */ {
                   3935:   /* mask ffff, bits 48b9, mnemonic 27, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 12, dtype 8, sbitpos 0, dbitpos 0, immvalue 0 */
                   3936:   uint16 srcdata = ipc->src;
                   3937:   uint32 dstaddr = ipc->dst;
                   3938:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   3939:   uint8 datamask = srcdata & 0xFF;
                   3940:   while (datamask) {
                   3941:     storeword(dstaddr, DATAREG(movem_bit[datamask]));
                   3942:     datamask&= ~(1<<movem_bit[datamask]);
                   3943:     dstaddr+= 2;
                   3944:   }
                   3945:   while (addrmask) {
                   3946:     storeword(dstaddr, ADDRREG(movem_bit[addrmask]));
                   3947:     addrmask&= ~(1<<movem_bit[addrmask]);
                   3948:     dstaddr+= 2;
                   3949:   }
                   3950:   PC+= 8;
                   3951: }
                   3952: 
                   3953: void cpu_op_683a(t_ipc *ipc) /* EXT */ {
                   3954:   /* mask fff8, bits 48c0, mnemonic 41, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3955:   int srcreg = (ipc->opcode >> 0) & 7;
                   3956:   uint32 srcdata = DATAREG(srcreg);
                   3957: 
                   3958:   uint32 outdata = (sint32)(sint16)(srcdata);
                   3959:   DATAREG(srcreg) = outdata;
                   3960:   PC+= 2;
                   3961: }
                   3962: 
                   3963: void cpu_op_683b(t_ipc *ipc) /* EXT */ {
                   3964:   /* mask fff8, bits 48c0, mnemonic 41, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   3965:   int srcreg = (ipc->opcode >> 0) & 7;
                   3966:   uint32 srcdata = DATAREG(srcreg);
                   3967: 
                   3968:   uint32 outdata = (sint32)(sint16)(srcdata);
                   3969:   DATAREG(srcreg) = outdata;
                   3970: 
                   3971:   VFLAG = 0;
                   3972:   CFLAG = 0;
                   3973:   NFLAG = ((sint32)outdata) < 0;
                   3974:   ZFLAG = !outdata;
                   3975:   PC+= 2;
                   3976: }
                   3977: 
                   3978: void cpu_op_684a(t_ipc *ipc) /* MOVEMRM */ {
                   3979:   /* mask fff8, bits 48d0, mnemonic 27, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 2, sbitpos 0, dbitpos 0, immvalue 0 */
                   3980:   uint16 srcdata = ipc->src;
                   3981:   int dstreg = (ipc->opcode >> 0) & 7;
                   3982:   uint32 dstaddr = ADDRREG(dstreg);
                   3983:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   3984:   uint8 datamask = srcdata & 0xFF;
                   3985:   while (datamask) {
                   3986:     storelong(dstaddr, DATAREG(movem_bit[datamask]));
                   3987:     datamask&= ~(1<<movem_bit[datamask]);
                   3988:     dstaddr+= 4;
                   3989:   }
                   3990:   while (addrmask) {
                   3991:     storelong(dstaddr, ADDRREG(movem_bit[addrmask]));
                   3992:     addrmask&= ~(1<<movem_bit[addrmask]);
                   3993:     dstaddr+= 4;
                   3994:   }
                   3995:   PC+= 4;
                   3996: }
                   3997: 
                   3998: void cpu_op_685a(t_ipc *ipc) /* MOVEMRM */ {
                   3999:   /* mask fff8, bits 48e0, mnemonic 27, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 4, sbitpos 0, dbitpos 0, immvalue 0 */
                   4000:   uint16 srcdata = ipc->src;
                   4001:   int dstreg = (ipc->opcode >> 0) & 7;
                   4002:   uint32 dstaddr = ADDRREG(dstreg);
                   4003:   uint8 datamask = (srcdata & 0xFF00) >> 8;
                   4004:   uint8 addrmask = srcdata & 0xFF;
                   4005:   while (addrmask) {
                   4006:     dstaddr-= 4;
                   4007:     storelong(dstaddr, ADDRREG((7-movem_bit[addrmask])));
                   4008:     addrmask&= ~(1<<movem_bit[addrmask]);
                   4009:   }
                   4010:   while (datamask) {
                   4011:     dstaddr-= 4;
                   4012:     storelong(dstaddr, DATAREG((7-movem_bit[datamask])));
                   4013:     datamask&= ~(1<<movem_bit[datamask]);
                   4014:   }
                   4015:   ADDRREG(dstreg) = dstaddr;  PC+= 4;
                   4016: }
                   4017: 
                   4018: void cpu_op_686a(t_ipc *ipc) /* MOVEMRM */ {
                   4019:   /* mask fff8, bits 48e8, mnemonic 27, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 5, sbitpos 0, dbitpos 0, immvalue 0 */
                   4020:   uint16 srcdata = ipc->src;
                   4021:   int dstreg = (ipc->opcode >> 0) & 7;
                   4022:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
                   4023:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   4024:   uint8 datamask = srcdata & 0xFF;
                   4025:   while (datamask) {
                   4026:     storelong(dstaddr, DATAREG(movem_bit[datamask]));
                   4027:     datamask&= ~(1<<movem_bit[datamask]);
                   4028:     dstaddr+= 4;
                   4029:   }
                   4030:   while (addrmask) {
                   4031:     storelong(dstaddr, ADDRREG(movem_bit[addrmask]));
                   4032:     addrmask&= ~(1<<movem_bit[addrmask]);
                   4033:     dstaddr+= 4;
                   4034:   }
                   4035:   PC+= 6;
                   4036: }
                   4037: 
                   4038: void cpu_op_687a(t_ipc *ipc) /* MOVEMRM */ {
                   4039:   /* mask fff8, bits 48f0, mnemonic 27, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 6, sbitpos 0, dbitpos 0, immvalue 0 */
                   4040:   uint16 srcdata = ipc->src;
                   4041:   int dstreg = (ipc->opcode >> 0) & 7;
                   4042:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
                   4043:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   4044:   uint8 datamask = srcdata & 0xFF;
                   4045:   while (datamask) {
                   4046:     storelong(dstaddr, DATAREG(movem_bit[datamask]));
                   4047:     datamask&= ~(1<<movem_bit[datamask]);
                   4048:     dstaddr+= 4;
                   4049:   }
                   4050:   while (addrmask) {
                   4051:     storelong(dstaddr, ADDRREG(movem_bit[addrmask]));
                   4052:     addrmask&= ~(1<<movem_bit[addrmask]);
                   4053:     dstaddr+= 4;
                   4054:   }
                   4055:   PC+= 6;
                   4056: }
                   4057: 
                   4058: void cpu_op_688a(t_ipc *ipc) /* MOVEMRM */ {
                   4059:   /* mask ffff, bits 48f8, mnemonic 27, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 7, sbitpos 0, dbitpos 0, immvalue 0 */
                   4060:   uint16 srcdata = ipc->src;
                   4061:   uint32 dstaddr = ipc->dst;
                   4062:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   4063:   uint8 datamask = srcdata & 0xFF;
                   4064:   while (datamask) {
                   4065:     storelong(dstaddr, DATAREG(movem_bit[datamask]));
                   4066:     datamask&= ~(1<<movem_bit[datamask]);
                   4067:     dstaddr+= 4;
                   4068:   }
                   4069:   while (addrmask) {
                   4070:     storelong(dstaddr, ADDRREG(movem_bit[addrmask]));
                   4071:     addrmask&= ~(1<<movem_bit[addrmask]);
                   4072:     dstaddr+= 4;
                   4073:   }
                   4074:   PC+= 6;
                   4075: }
                   4076: 
                   4077: void cpu_op_689a(t_ipc *ipc) /* MOVEMRM */ {
                   4078:   /* mask ffff, bits 48f9, mnemonic 27, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 8, sbitpos 0, dbitpos 0, immvalue 0 */
                   4079:   uint16 srcdata = ipc->src;
                   4080:   uint32 dstaddr = ipc->dst;
                   4081:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   4082:   uint8 datamask = srcdata & 0xFF;
                   4083:   while (datamask) {
                   4084:     storelong(dstaddr, DATAREG(movem_bit[datamask]));
                   4085:     datamask&= ~(1<<movem_bit[datamask]);
                   4086:     dstaddr+= 4;
                   4087:   }
                   4088:   while (addrmask) {
                   4089:     storelong(dstaddr, ADDRREG(movem_bit[addrmask]));
                   4090:     addrmask&= ~(1<<movem_bit[addrmask]);
                   4091:     dstaddr+= 4;
                   4092:   }
                   4093:   PC+= 8;
                   4094: }
                   4095: 
                   4096: void cpu_op_690a(t_ipc *ipc) /* TST */ {
                   4097:   /* mask fff8, bits 4a00, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4098:   int srcreg = (ipc->opcode >> 0) & 7;
                   4099:   uint8 srcdata = DATAREG(srcreg);
                   4100:   uint8 outdata = srcdata;
                   4101:   PC+= 2;
                   4102: }
                   4103: 
                   4104: void cpu_op_690b(t_ipc *ipc) /* TST */ {
                   4105:   /* mask fff8, bits 4a00, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4106:   int srcreg = (ipc->opcode >> 0) & 7;
                   4107:   uint8 srcdata = DATAREG(srcreg);
                   4108:   uint8 outdata = srcdata;
                   4109: 
                   4110:   VFLAG = 0;
                   4111:   CFLAG = 0;
                   4112:   NFLAG = ((sint8)outdata) < 0;
                   4113:   ZFLAG = !outdata;
                   4114:   PC+= 2;
                   4115: }
                   4116: 
                   4117: void cpu_op_691a(t_ipc *ipc) /* TST */ {
                   4118:   /* mask fff8, bits 4a10, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4119:   int srcreg = (ipc->opcode >> 0) & 7;
                   4120:   uint32 srcaddr = ADDRREG(srcreg);
                   4121:   uint8 srcdata = fetchbyte(srcaddr);
                   4122:   uint8 outdata = srcdata;
                   4123:   PC+= 2;
                   4124: }
                   4125: 
                   4126: void cpu_op_691b(t_ipc *ipc) /* TST */ {
                   4127:   /* mask fff8, bits 4a10, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4128:   int srcreg = (ipc->opcode >> 0) & 7;
                   4129:   uint32 srcaddr = ADDRREG(srcreg);
                   4130:   uint8 srcdata = fetchbyte(srcaddr);
                   4131:   uint8 outdata = srcdata;
                   4132: 
                   4133:   VFLAG = 0;
                   4134:   CFLAG = 0;
                   4135:   NFLAG = ((sint8)outdata) < 0;
                   4136:   ZFLAG = !outdata;
                   4137:   PC+= 2;
                   4138: }
                   4139: 
                   4140: void cpu_op_692a(t_ipc *ipc) /* TST */ {
                   4141:   /* mask fff8, bits 4a18, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4142:   int srcreg = (ipc->opcode >> 0) & 7;
                   4143:   uint32 srcaddr = ADDRREG(srcreg);
                   4144:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                   4145:   uint8 srcdata = fetchbyte(srcaddr);
                   4146:   uint8 outdata = srcdata;
                   4147:   PC+= 2;
                   4148: }
                   4149: 
                   4150: void cpu_op_692b(t_ipc *ipc) /* TST */ {
                   4151:   /* mask fff8, bits 4a18, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4152:   int srcreg = (ipc->opcode >> 0) & 7;
                   4153:   uint32 srcaddr = ADDRREG(srcreg);
                   4154:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                   4155:   uint8 srcdata = fetchbyte(srcaddr);
                   4156:   uint8 outdata = srcdata;
                   4157: 
                   4158:   VFLAG = 0;
                   4159:   CFLAG = 0;
                   4160:   NFLAG = ((sint8)outdata) < 0;
                   4161:   ZFLAG = !outdata;
                   4162:   PC+= 2;
                   4163: }
                   4164: 
                   4165: void cpu_op_693a(t_ipc *ipc) /* TST */ {
                   4166:   /* mask fff8, bits 4a20, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4167:   int srcreg = (ipc->opcode >> 0) & 7;
                   4168:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                   4169:   uint8 srcdata = fetchbyte(srcaddr);
                   4170:   uint8 outdata = srcdata;
                   4171:   PC+= 2;
                   4172: }
                   4173: 
                   4174: void cpu_op_693b(t_ipc *ipc) /* TST */ {
                   4175:   /* mask fff8, bits 4a20, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4176:   int srcreg = (ipc->opcode >> 0) & 7;
                   4177:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                   4178:   uint8 srcdata = fetchbyte(srcaddr);
                   4179:   uint8 outdata = srcdata;
                   4180: 
                   4181:   VFLAG = 0;
                   4182:   CFLAG = 0;
                   4183:   NFLAG = ((sint8)outdata) < 0;
                   4184:   ZFLAG = !outdata;
                   4185:   PC+= 2;
                   4186: }
                   4187: 
                   4188: void cpu_op_694a(t_ipc *ipc) /* TST */ {
                   4189:   /* mask fff8, bits 4a28, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4190:   int srcreg = (ipc->opcode >> 0) & 7;
                   4191:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   4192:   uint8 srcdata = fetchbyte(srcaddr);
                   4193:   uint8 outdata = srcdata;
                   4194:   PC+= 4;
                   4195: }
                   4196: 
                   4197: void cpu_op_694b(t_ipc *ipc) /* TST */ {
                   4198:   /* mask fff8, bits 4a28, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4199:   int srcreg = (ipc->opcode >> 0) & 7;
                   4200:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   4201:   uint8 srcdata = fetchbyte(srcaddr);
                   4202:   uint8 outdata = srcdata;
                   4203: 
                   4204:   VFLAG = 0;
                   4205:   CFLAG = 0;
                   4206:   NFLAG = ((sint8)outdata) < 0;
                   4207:   ZFLAG = !outdata;
                   4208:   PC+= 4;
                   4209: }
                   4210: 
                   4211: void cpu_op_695a(t_ipc *ipc) /* TST */ {
                   4212:   /* mask fff8, bits 4a30, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4213:   int srcreg = (ipc->opcode >> 0) & 7;
                   4214:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   4215:   uint8 srcdata = fetchbyte(srcaddr);
                   4216:   uint8 outdata = srcdata;
                   4217:   PC+= 4;
                   4218: }
                   4219: 
                   4220: void cpu_op_695b(t_ipc *ipc) /* TST */ {
                   4221:   /* mask fff8, bits 4a30, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4222:   int srcreg = (ipc->opcode >> 0) & 7;
                   4223:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   4224:   uint8 srcdata = fetchbyte(srcaddr);
                   4225:   uint8 outdata = srcdata;
                   4226: 
                   4227:   VFLAG = 0;
                   4228:   CFLAG = 0;
                   4229:   NFLAG = ((sint8)outdata) < 0;
                   4230:   ZFLAG = !outdata;
                   4231:   PC+= 4;
                   4232: }
                   4233: 
                   4234: void cpu_op_696a(t_ipc *ipc) /* TST */ {
                   4235:   /* mask ffff, bits 4a38, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4236:   uint32 srcaddr = ipc->src;
                   4237:   uint8 srcdata = fetchbyte(srcaddr);
                   4238:   uint8 outdata = srcdata;
                   4239:   PC+= 4;
                   4240: }
                   4241: 
                   4242: void cpu_op_696b(t_ipc *ipc) /* TST */ {
                   4243:   /* mask ffff, bits 4a38, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4244:   uint32 srcaddr = ipc->src;
                   4245:   uint8 srcdata = fetchbyte(srcaddr);
                   4246:   uint8 outdata = srcdata;
                   4247: 
                   4248:   VFLAG = 0;
                   4249:   CFLAG = 0;
                   4250:   NFLAG = ((sint8)outdata) < 0;
                   4251:   ZFLAG = !outdata;
                   4252:   PC+= 4;
                   4253: }
                   4254: 
                   4255: void cpu_op_697a(t_ipc *ipc) /* TST */ {
                   4256:   /* mask ffff, bits 4a39, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4257:   uint32 srcaddr = ipc->src;
                   4258:   uint8 srcdata = fetchbyte(srcaddr);
                   4259:   uint8 outdata = srcdata;
                   4260:   PC+= 6;
                   4261: }
                   4262: 
                   4263: void cpu_op_697b(t_ipc *ipc) /* TST */ {
                   4264:   /* mask ffff, bits 4a39, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4265:   uint32 srcaddr = ipc->src;
                   4266:   uint8 srcdata = fetchbyte(srcaddr);
                   4267:   uint8 outdata = srcdata;
                   4268: 
                   4269:   VFLAG = 0;
                   4270:   CFLAG = 0;
                   4271:   NFLAG = ((sint8)outdata) < 0;
                   4272:   ZFLAG = !outdata;
                   4273:   PC+= 6;
                   4274: }
                   4275: 
                   4276: void cpu_op_698a(t_ipc *ipc) /* TST */ {
                   4277:   /* mask fff8, bits 4a40, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4278:   int srcreg = (ipc->opcode >> 0) & 7;
                   4279:   uint16 srcdata = DATAREG(srcreg);
                   4280:   uint16 outdata = srcdata;
                   4281:   PC+= 2;
                   4282: }
                   4283: 
                   4284: void cpu_op_698b(t_ipc *ipc) /* TST */ {
                   4285:   /* mask fff8, bits 4a40, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4286:   int srcreg = (ipc->opcode >> 0) & 7;
                   4287:   uint16 srcdata = DATAREG(srcreg);
                   4288:   uint16 outdata = srcdata;
                   4289: 
                   4290:   VFLAG = 0;
                   4291:   CFLAG = 0;
                   4292:   NFLAG = ((sint16)outdata) < 0;
                   4293:   ZFLAG = !outdata;
                   4294:   PC+= 2;
                   4295: }
                   4296: 
                   4297: void cpu_op_699a(t_ipc *ipc) /* TST */ {
                   4298:   /* mask fff8, bits 4a50, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4299:   int srcreg = (ipc->opcode >> 0) & 7;
                   4300:   uint32 srcaddr = ADDRREG(srcreg);
                   4301:   uint16 srcdata = fetchword(srcaddr);
                   4302:   uint16 outdata = srcdata;
                   4303:   PC+= 2;
                   4304: }
                   4305: 
                   4306: void cpu_op_699b(t_ipc *ipc) /* TST */ {
                   4307:   /* mask fff8, bits 4a50, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4308:   int srcreg = (ipc->opcode >> 0) & 7;
                   4309:   uint32 srcaddr = ADDRREG(srcreg);
                   4310:   uint16 srcdata = fetchword(srcaddr);
                   4311:   uint16 outdata = srcdata;
                   4312: 
                   4313:   VFLAG = 0;
                   4314:   CFLAG = 0;
                   4315:   NFLAG = ((sint16)outdata) < 0;
                   4316:   ZFLAG = !outdata;
                   4317:   PC+= 2;
                   4318: }
                   4319: 
                   4320: void cpu_op_700a(t_ipc *ipc) /* TST */ {
                   4321:   /* mask fff8, bits 4a58, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4322:   int srcreg = (ipc->opcode >> 0) & 7;
                   4323:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                   4324:   uint16 srcdata = fetchword(srcaddr);
                   4325:   uint16 outdata = srcdata;
                   4326:   PC+= 2;
                   4327: }
                   4328: 
                   4329: void cpu_op_700b(t_ipc *ipc) /* TST */ {
                   4330:   /* mask fff8, bits 4a58, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4331:   int srcreg = (ipc->opcode >> 0) & 7;
                   4332:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                   4333:   uint16 srcdata = fetchword(srcaddr);
                   4334:   uint16 outdata = srcdata;
                   4335: 
                   4336:   VFLAG = 0;
                   4337:   CFLAG = 0;
                   4338:   NFLAG = ((sint16)outdata) < 0;
                   4339:   ZFLAG = !outdata;
                   4340:   PC+= 2;
                   4341: }
                   4342: 
                   4343: void cpu_op_701a(t_ipc *ipc) /* TST */ {
                   4344:   /* mask fff8, bits 4a60, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4345:   int srcreg = (ipc->opcode >> 0) & 7;
                   4346:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                   4347:   uint16 srcdata = fetchword(srcaddr);
                   4348:   uint16 outdata = srcdata;
                   4349:   PC+= 2;
                   4350: }
                   4351: 
                   4352: void cpu_op_701b(t_ipc *ipc) /* TST */ {
                   4353:   /* mask fff8, bits 4a60, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4354:   int srcreg = (ipc->opcode >> 0) & 7;
                   4355:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                   4356:   uint16 srcdata = fetchword(srcaddr);
                   4357:   uint16 outdata = srcdata;
                   4358: 
                   4359:   VFLAG = 0;
                   4360:   CFLAG = 0;
                   4361:   NFLAG = ((sint16)outdata) < 0;
                   4362:   ZFLAG = !outdata;
                   4363:   PC+= 2;
                   4364: }
                   4365: 
                   4366: void cpu_op_702a(t_ipc *ipc) /* TST */ {
                   4367:   /* mask fff8, bits 4a68, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4368:   int srcreg = (ipc->opcode >> 0) & 7;
                   4369:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   4370:   uint16 srcdata = fetchword(srcaddr);
                   4371:   uint16 outdata = srcdata;
                   4372:   PC+= 4;
                   4373: }
                   4374: 
                   4375: void cpu_op_702b(t_ipc *ipc) /* TST */ {
                   4376:   /* mask fff8, bits 4a68, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4377:   int srcreg = (ipc->opcode >> 0) & 7;
                   4378:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   4379:   uint16 srcdata = fetchword(srcaddr);
                   4380:   uint16 outdata = srcdata;
                   4381: 
                   4382:   VFLAG = 0;
                   4383:   CFLAG = 0;
                   4384:   NFLAG = ((sint16)outdata) < 0;
                   4385:   ZFLAG = !outdata;
                   4386:   PC+= 4;
                   4387: }
                   4388: 
                   4389: void cpu_op_703a(t_ipc *ipc) /* TST */ {
                   4390:   /* mask fff8, bits 4a70, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4391:   int srcreg = (ipc->opcode >> 0) & 7;
                   4392:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   4393:   uint16 srcdata = fetchword(srcaddr);
                   4394:   uint16 outdata = srcdata;
                   4395:   PC+= 4;
                   4396: }
                   4397: 
                   4398: void cpu_op_703b(t_ipc *ipc) /* TST */ {
                   4399:   /* mask fff8, bits 4a70, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4400:   int srcreg = (ipc->opcode >> 0) & 7;
                   4401:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   4402:   uint16 srcdata = fetchword(srcaddr);
                   4403:   uint16 outdata = srcdata;
                   4404: 
                   4405:   VFLAG = 0;
                   4406:   CFLAG = 0;
                   4407:   NFLAG = ((sint16)outdata) < 0;
                   4408:   ZFLAG = !outdata;
                   4409:   PC+= 4;
                   4410: }
                   4411: 
                   4412: void cpu_op_704a(t_ipc *ipc) /* TST */ {
                   4413:   /* mask ffff, bits 4a78, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4414:   uint32 srcaddr = ipc->src;
                   4415:   uint16 srcdata = fetchword(srcaddr);
                   4416:   uint16 outdata = srcdata;
                   4417:   PC+= 4;
                   4418: }
                   4419: 
                   4420: void cpu_op_704b(t_ipc *ipc) /* TST */ {
                   4421:   /* mask ffff, bits 4a78, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4422:   uint32 srcaddr = ipc->src;
                   4423:   uint16 srcdata = fetchword(srcaddr);
                   4424:   uint16 outdata = srcdata;
                   4425: 
                   4426:   VFLAG = 0;
                   4427:   CFLAG = 0;
                   4428:   NFLAG = ((sint16)outdata) < 0;
                   4429:   ZFLAG = !outdata;
                   4430:   PC+= 4;
                   4431: }
                   4432: 
                   4433: void cpu_op_705a(t_ipc *ipc) /* TST */ {
                   4434:   /* mask ffff, bits 4a79, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4435:   uint32 srcaddr = ipc->src;
                   4436:   uint16 srcdata = fetchword(srcaddr);
                   4437:   uint16 outdata = srcdata;
                   4438:   PC+= 6;
                   4439: }
                   4440: 
                   4441: void cpu_op_705b(t_ipc *ipc) /* TST */ {
                   4442:   /* mask ffff, bits 4a79, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4443:   uint32 srcaddr = ipc->src;
                   4444:   uint16 srcdata = fetchword(srcaddr);
                   4445:   uint16 outdata = srcdata;
                   4446: 
                   4447:   VFLAG = 0;
                   4448:   CFLAG = 0;
                   4449:   NFLAG = ((sint16)outdata) < 0;
                   4450:   ZFLAG = !outdata;
                   4451:   PC+= 6;
                   4452: }
                   4453: 
                   4454: void cpu_op_706a(t_ipc *ipc) /* TST */ {
                   4455:   /* mask fff8, bits 4a80, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4456:   int srcreg = (ipc->opcode >> 0) & 7;
                   4457:   uint32 srcdata = DATAREG(srcreg);
                   4458:   uint32 outdata = srcdata;
                   4459:   PC+= 2;
                   4460: }
                   4461: 
                   4462: void cpu_op_706b(t_ipc *ipc) /* TST */ {
                   4463:   /* mask fff8, bits 4a80, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4464:   int srcreg = (ipc->opcode >> 0) & 7;
                   4465:   uint32 srcdata = DATAREG(srcreg);
                   4466:   uint32 outdata = srcdata;
                   4467: 
                   4468:   VFLAG = 0;
                   4469:   CFLAG = 0;
                   4470:   NFLAG = ((sint32)outdata) < 0;
                   4471:   ZFLAG = !outdata;
                   4472:   PC+= 2;
                   4473: }
                   4474: 
                   4475: void cpu_op_707a(t_ipc *ipc) /* TST */ {
                   4476:   /* mask fff8, bits 4a90, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4477:   int srcreg = (ipc->opcode >> 0) & 7;
                   4478:   uint32 srcaddr = ADDRREG(srcreg);
                   4479:   uint32 srcdata = fetchlong(srcaddr);
                   4480:   uint32 outdata = srcdata;
                   4481:   PC+= 2;
                   4482: }
                   4483: 
                   4484: void cpu_op_707b(t_ipc *ipc) /* TST */ {
                   4485:   /* mask fff8, bits 4a90, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4486:   int srcreg = (ipc->opcode >> 0) & 7;
                   4487:   uint32 srcaddr = ADDRREG(srcreg);
                   4488:   uint32 srcdata = fetchlong(srcaddr);
                   4489:   uint32 outdata = srcdata;
                   4490: 
                   4491:   VFLAG = 0;
                   4492:   CFLAG = 0;
                   4493:   NFLAG = ((sint32)outdata) < 0;
                   4494:   ZFLAG = !outdata;
                   4495:   PC+= 2;
                   4496: }
                   4497: 
                   4498: void cpu_op_708a(t_ipc *ipc) /* TST */ {
                   4499:   /* mask fff8, bits 4a98, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4500:   int srcreg = (ipc->opcode >> 0) & 7;
                   4501:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
                   4502:   uint32 srcdata = fetchlong(srcaddr);
                   4503:   uint32 outdata = srcdata;
                   4504:   PC+= 2;
                   4505: }
                   4506: 
                   4507: void cpu_op_708b(t_ipc *ipc) /* TST */ {
                   4508:   /* mask fff8, bits 4a98, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4509:   int srcreg = (ipc->opcode >> 0) & 7;
                   4510:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
                   4511:   uint32 srcdata = fetchlong(srcaddr);
                   4512:   uint32 outdata = srcdata;
                   4513: 
                   4514:   VFLAG = 0;
                   4515:   CFLAG = 0;
                   4516:   NFLAG = ((sint32)outdata) < 0;
                   4517:   ZFLAG = !outdata;
                   4518:   PC+= 2;
                   4519: }
                   4520: 
                   4521: void cpu_op_709a(t_ipc *ipc) /* TST */ {
                   4522:   /* mask fff8, bits 4aa0, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4523:   int srcreg = (ipc->opcode >> 0) & 7;
                   4524:   uint32 srcaddr = ADDRREG(srcreg)-=4;
                   4525:   uint32 srcdata = fetchlong(srcaddr);
                   4526:   uint32 outdata = srcdata;
                   4527:   PC+= 2;
                   4528: }
                   4529: 
                   4530: void cpu_op_709b(t_ipc *ipc) /* TST */ {
                   4531:   /* mask fff8, bits 4aa0, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4532:   int srcreg = (ipc->opcode >> 0) & 7;
                   4533:   uint32 srcaddr = ADDRREG(srcreg)-=4;
                   4534:   uint32 srcdata = fetchlong(srcaddr);
                   4535:   uint32 outdata = srcdata;
                   4536: 
                   4537:   VFLAG = 0;
                   4538:   CFLAG = 0;
                   4539:   NFLAG = ((sint32)outdata) < 0;
                   4540:   ZFLAG = !outdata;
                   4541:   PC+= 2;
                   4542: }
                   4543: 
                   4544: void cpu_op_710a(t_ipc *ipc) /* TST */ {
                   4545:   /* mask fff8, bits 4aa8, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4546:   int srcreg = (ipc->opcode >> 0) & 7;
                   4547:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   4548:   uint32 srcdata = fetchlong(srcaddr);
                   4549:   uint32 outdata = srcdata;
                   4550:   PC+= 4;
                   4551: }
                   4552: 
                   4553: void cpu_op_710b(t_ipc *ipc) /* TST */ {
                   4554:   /* mask fff8, bits 4aa8, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4555:   int srcreg = (ipc->opcode >> 0) & 7;
                   4556:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   4557:   uint32 srcdata = fetchlong(srcaddr);
                   4558:   uint32 outdata = srcdata;
                   4559: 
                   4560:   VFLAG = 0;
                   4561:   CFLAG = 0;
                   4562:   NFLAG = ((sint32)outdata) < 0;
                   4563:   ZFLAG = !outdata;
                   4564:   PC+= 4;
                   4565: }
                   4566: 
                   4567: void cpu_op_711a(t_ipc *ipc) /* TST */ {
                   4568:   /* mask fff8, bits 4ab0, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4569:   int srcreg = (ipc->opcode >> 0) & 7;
                   4570:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   4571:   uint32 srcdata = fetchlong(srcaddr);
                   4572:   uint32 outdata = srcdata;
                   4573:   PC+= 4;
                   4574: }
                   4575: 
                   4576: void cpu_op_711b(t_ipc *ipc) /* TST */ {
                   4577:   /* mask fff8, bits 4ab0, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4578:   int srcreg = (ipc->opcode >> 0) & 7;
                   4579:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   4580:   uint32 srcdata = fetchlong(srcaddr);
                   4581:   uint32 outdata = srcdata;
                   4582: 
                   4583:   VFLAG = 0;
                   4584:   CFLAG = 0;
                   4585:   NFLAG = ((sint32)outdata) < 0;
                   4586:   ZFLAG = !outdata;
                   4587:   PC+= 4;
                   4588: }
                   4589: 
                   4590: void cpu_op_712a(t_ipc *ipc) /* TST */ {
                   4591:   /* mask ffff, bits 4ab8, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4592:   uint32 srcaddr = ipc->src;
                   4593:   uint32 srcdata = fetchlong(srcaddr);
                   4594:   uint32 outdata = srcdata;
                   4595:   PC+= 4;
                   4596: }
                   4597: 
                   4598: void cpu_op_712b(t_ipc *ipc) /* TST */ {
                   4599:   /* mask ffff, bits 4ab8, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4600:   uint32 srcaddr = ipc->src;
                   4601:   uint32 srcdata = fetchlong(srcaddr);
                   4602:   uint32 outdata = srcdata;
                   4603: 
                   4604:   VFLAG = 0;
                   4605:   CFLAG = 0;
                   4606:   NFLAG = ((sint32)outdata) < 0;
                   4607:   ZFLAG = !outdata;
                   4608:   PC+= 4;
                   4609: }
                   4610: 
                   4611: void cpu_op_713a(t_ipc *ipc) /* TST */ {
                   4612:   /* mask ffff, bits 4ab9, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4613:   uint32 srcaddr = ipc->src;
                   4614:   uint32 srcdata = fetchlong(srcaddr);
                   4615:   uint32 outdata = srcdata;
                   4616:   PC+= 6;
                   4617: }
                   4618: 
                   4619: void cpu_op_713b(t_ipc *ipc) /* TST */ {
                   4620:   /* mask ffff, bits 4ab9, mnemonic 43, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4621:   uint32 srcaddr = ipc->src;
                   4622:   uint32 srcdata = fetchlong(srcaddr);
                   4623:   uint32 outdata = srcdata;
                   4624: 
                   4625:   VFLAG = 0;
                   4626:   CFLAG = 0;
                   4627:   NFLAG = ((sint32)outdata) < 0;
                   4628:   ZFLAG = !outdata;
                   4629:   PC+= 6;
                   4630: }
                   4631: 
                   4632: void cpu_op_714a(t_ipc *ipc) /* TAS */ {
                   4633:   /* mask fff8, bits 4ac0, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4634:   int srcreg = (ipc->opcode >> 0) & 7;
                   4635:   uint8 srcdata = DATAREG(srcreg);
                   4636:   uint8 outdata = srcdata;
                   4637:   outdata|= 1<<7;
                   4638:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
                   4639:   PC+= 2;
                   4640: }
                   4641: 
                   4642: void cpu_op_714b(t_ipc *ipc) /* TAS */ {
                   4643:   /* mask fff8, bits 4ac0, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4644:   int srcreg = (ipc->opcode >> 0) & 7;
                   4645:   uint8 srcdata = DATAREG(srcreg);
                   4646:   uint8 outdata = srcdata;
                   4647: 
                   4648:   VFLAG = 0;
                   4649:   CFLAG = 0;
                   4650:   NFLAG = ((sint8)outdata) < 0;
                   4651:   ZFLAG = !outdata;
                   4652:   outdata|= 1<<7;
                   4653:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
                   4654:   PC+= 2;
                   4655: }
                   4656: 
                   4657: void cpu_op_715a(t_ipc *ipc) /* TAS */ {
                   4658:   /* mask fff8, bits 4ad0, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4659:   int srcreg = (ipc->opcode >> 0) & 7;
                   4660:   uint32 srcaddr = ADDRREG(srcreg);
                   4661:   uint8 srcdata = fetchbyte(srcaddr);
                   4662:   uint8 outdata = srcdata;
                   4663:   outdata|= 1<<7;
                   4664:   storebyte(srcaddr, outdata);
                   4665:   PC+= 2;
                   4666: }
                   4667: 
                   4668: void cpu_op_715b(t_ipc *ipc) /* TAS */ {
                   4669:   /* mask fff8, bits 4ad0, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4670:   int srcreg = (ipc->opcode >> 0) & 7;
                   4671:   uint32 srcaddr = ADDRREG(srcreg);
                   4672:   uint8 srcdata = fetchbyte(srcaddr);
                   4673:   uint8 outdata = srcdata;
                   4674: 
                   4675:   VFLAG = 0;
                   4676:   CFLAG = 0;
                   4677:   NFLAG = ((sint8)outdata) < 0;
                   4678:   ZFLAG = !outdata;
                   4679:   outdata|= 1<<7;
                   4680:   storebyte(srcaddr, outdata);
                   4681:   PC+= 2;
                   4682: }
                   4683: 
                   4684: void cpu_op_716a(t_ipc *ipc) /* TAS */ {
                   4685:   /* mask fff8, bits 4ad8, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4686:   int srcreg = (ipc->opcode >> 0) & 7;
                   4687:   uint32 srcaddr = ADDRREG(srcreg);
                   4688:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                   4689:   uint8 srcdata = fetchbyte(srcaddr);
                   4690:   uint8 outdata = srcdata;
                   4691:   outdata|= 1<<7;
                   4692:   storebyte(srcaddr, outdata);
                   4693:   PC+= 2;
                   4694: }
                   4695: 
                   4696: void cpu_op_716b(t_ipc *ipc) /* TAS */ {
                   4697:   /* mask fff8, bits 4ad8, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4698:   int srcreg = (ipc->opcode >> 0) & 7;
                   4699:   uint32 srcaddr = ADDRREG(srcreg);
                   4700:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
                   4701:   uint8 srcdata = fetchbyte(srcaddr);
                   4702:   uint8 outdata = srcdata;
                   4703: 
                   4704:   VFLAG = 0;
                   4705:   CFLAG = 0;
                   4706:   NFLAG = ((sint8)outdata) < 0;
                   4707:   ZFLAG = !outdata;
                   4708:   outdata|= 1<<7;
                   4709:   storebyte(srcaddr, outdata);
                   4710:   PC+= 2;
                   4711: }
                   4712: 
                   4713: void cpu_op_717a(t_ipc *ipc) /* TAS */ {
                   4714:   /* mask fff8, bits 4ae0, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4715:   int srcreg = (ipc->opcode >> 0) & 7;
                   4716:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                   4717:   uint8 srcdata = fetchbyte(srcaddr);
                   4718:   uint8 outdata = srcdata;
                   4719:   outdata|= 1<<7;
                   4720:   storebyte(srcaddr, outdata);
                   4721:   PC+= 2;
                   4722: }
                   4723: 
                   4724: void cpu_op_717b(t_ipc *ipc) /* TAS */ {
                   4725:   /* mask fff8, bits 4ae0, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4726:   int srcreg = (ipc->opcode >> 0) & 7;
                   4727:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
                   4728:   uint8 srcdata = fetchbyte(srcaddr);
                   4729:   uint8 outdata = srcdata;
                   4730: 
                   4731:   VFLAG = 0;
                   4732:   CFLAG = 0;
                   4733:   NFLAG = ((sint8)outdata) < 0;
                   4734:   ZFLAG = !outdata;
                   4735:   outdata|= 1<<7;
                   4736:   storebyte(srcaddr, outdata);
                   4737:   PC+= 2;
                   4738: }
                   4739: 
                   4740: void cpu_op_718a(t_ipc *ipc) /* TAS */ {
                   4741:   /* mask fff8, bits 4ae8, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4742:   int srcreg = (ipc->opcode >> 0) & 7;
                   4743:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   4744:   uint8 srcdata = fetchbyte(srcaddr);
                   4745:   uint8 outdata = srcdata;
                   4746:   outdata|= 1<<7;
                   4747:   storebyte(srcaddr, outdata);
                   4748:   PC+= 4;
                   4749: }
                   4750: 
                   4751: void cpu_op_718b(t_ipc *ipc) /* TAS */ {
                   4752:   /* mask fff8, bits 4ae8, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4753:   int srcreg = (ipc->opcode >> 0) & 7;
                   4754:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   4755:   uint8 srcdata = fetchbyte(srcaddr);
                   4756:   uint8 outdata = srcdata;
                   4757: 
                   4758:   VFLAG = 0;
                   4759:   CFLAG = 0;
                   4760:   NFLAG = ((sint8)outdata) < 0;
                   4761:   ZFLAG = !outdata;
                   4762:   outdata|= 1<<7;
                   4763:   storebyte(srcaddr, outdata);
                   4764:   PC+= 4;
                   4765: }
                   4766: 
                   4767: void cpu_op_719a(t_ipc *ipc) /* TAS */ {
                   4768:   /* mask fff8, bits 4af0, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4769:   int srcreg = (ipc->opcode >> 0) & 7;
                   4770:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   4771:   uint8 srcdata = fetchbyte(srcaddr);
                   4772:   uint8 outdata = srcdata;
                   4773:   outdata|= 1<<7;
                   4774:   storebyte(srcaddr, outdata);
                   4775:   PC+= 4;
                   4776: }
                   4777: 
                   4778: void cpu_op_719b(t_ipc *ipc) /* TAS */ {
                   4779:   /* mask fff8, bits 4af0, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4780:   int srcreg = (ipc->opcode >> 0) & 7;
                   4781:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   4782:   uint8 srcdata = fetchbyte(srcaddr);
                   4783:   uint8 outdata = srcdata;
                   4784: 
                   4785:   VFLAG = 0;
                   4786:   CFLAG = 0;
                   4787:   NFLAG = ((sint8)outdata) < 0;
                   4788:   ZFLAG = !outdata;
                   4789:   outdata|= 1<<7;
                   4790:   storebyte(srcaddr, outdata);
                   4791:   PC+= 4;
                   4792: }
                   4793: 
                   4794: void cpu_op_720a(t_ipc *ipc) /* TAS */ {
                   4795:   /* mask ffff, bits 4af8, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4796:   uint32 srcaddr = ipc->src;
                   4797:   uint8 srcdata = fetchbyte(srcaddr);
                   4798:   uint8 outdata = srcdata;
                   4799:   outdata|= 1<<7;
                   4800:   storebyte(srcaddr, outdata);
                   4801:   PC+= 4;
                   4802: }
                   4803: 
                   4804: void cpu_op_720b(t_ipc *ipc) /* TAS */ {
                   4805:   /* mask ffff, bits 4af8, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4806:   uint32 srcaddr = ipc->src;
                   4807:   uint8 srcdata = fetchbyte(srcaddr);
                   4808:   uint8 outdata = srcdata;
                   4809: 
                   4810:   VFLAG = 0;
                   4811:   CFLAG = 0;
                   4812:   NFLAG = ((sint8)outdata) < 0;
                   4813:   ZFLAG = !outdata;
                   4814:   outdata|= 1<<7;
                   4815:   storebyte(srcaddr, outdata);
                   4816:   PC+= 4;
                   4817: }
                   4818: 
                   4819: void cpu_op_721a(t_ipc *ipc) /* TAS */ {
                   4820:   /* mask ffff, bits 4af9, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4821:   uint32 srcaddr = ipc->src;
                   4822:   uint8 srcdata = fetchbyte(srcaddr);
                   4823:   uint8 outdata = srcdata;
                   4824:   outdata|= 1<<7;
                   4825:   storebyte(srcaddr, outdata);
                   4826:   PC+= 6;
                   4827: }
                   4828: 
                   4829: void cpu_op_721b(t_ipc *ipc) /* TAS */ {
                   4830:   /* mask ffff, bits 4af9, mnemonic 44, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4831:   uint32 srcaddr = ipc->src;
                   4832:   uint8 srcdata = fetchbyte(srcaddr);
                   4833:   uint8 outdata = srcdata;
                   4834: 
                   4835:   VFLAG = 0;
                   4836:   CFLAG = 0;
                   4837:   NFLAG = ((sint8)outdata) < 0;
                   4838:   ZFLAG = !outdata;
                   4839:   outdata|= 1<<7;
                   4840:   storebyte(srcaddr, outdata);
                   4841:   PC+= 6;
                   4842: }
                   4843: 
                   4844: void cpu_op_722a(t_ipc *ipc) /* ILLEGAL */ {
                   4845:   /* mask ffff, bits 4afc, mnemonic 0, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 0, stype 20, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   4846:   printf("Illegal instruction @ %x\n", PC);
                   4847:   exit(1);
                   4848:   PC+= 2;
                   4849: }
                   4850: 
                   4851: void cpu_op_723a(t_ipc *ipc) /* MOVEMMR */ {
                   4852:   /* mask fff8, bits 4c90, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 12, dtype 2, sbitpos 0, dbitpos 0, immvalue 0 */
                   4853:   uint16 srcdata = ipc->src;
                   4854:   int dstreg = (ipc->opcode >> 0) & 7;
                   4855:   uint32 dstaddr = ADDRREG(dstreg);
                   4856:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   4857:   uint8 datamask = srcdata & 0xFF;
                   4858:   while (datamask) {
                   4859:     DATAREG(movem_bit[datamask]) = (sint32)(sint16)fetchword(dstaddr);
                   4860:     datamask&= ~(1<<movem_bit[datamask]);
                   4861:     dstaddr+= 2;
                   4862:   }
                   4863:   while (addrmask) {
                   4864:     ADDRREG(movem_bit[addrmask]) = (sint32)(sint16)fetchword(dstaddr);
                   4865:     addrmask&= ~(1<<movem_bit[addrmask]);
                   4866:     dstaddr+= 2;
                   4867:   }
                   4868:   PC+= 4;
                   4869: }
                   4870: 
                   4871: void cpu_op_724a(t_ipc *ipc) /* MOVEMMR */ {
                   4872:   /* mask fff8, bits 4c98, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 12, dtype 3, sbitpos 0, dbitpos 0, immvalue 0 */
                   4873:   uint16 srcdata = ipc->src;
                   4874:   int dstreg = (ipc->opcode >> 0) & 7;
                   4875:   uint32 dstaddr = ADDRREG(dstreg);
                   4876:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   4877:   uint8 datamask = srcdata & 0xFF;
                   4878:   while (datamask) {
                   4879:     DATAREG(movem_bit[datamask]) = (sint32)(sint16)fetchword(dstaddr);
                   4880:     datamask&= ~(1<<movem_bit[datamask]);
                   4881:     dstaddr+= 2;
                   4882:   }
                   4883:   while (addrmask) {
                   4884:     ADDRREG(movem_bit[addrmask]) = (sint32)(sint16)fetchword(dstaddr);
                   4885:     addrmask&= ~(1<<movem_bit[addrmask]);
                   4886:     dstaddr+= 2;
                   4887:   }
                   4888:   ADDRREG(dstreg) = dstaddr;
                   4889:   PC+= 4;
                   4890: }
                   4891: 
                   4892: void cpu_op_725a(t_ipc *ipc) /* MOVEMMR */ {
                   4893:   /* mask fff8, bits 4ca8, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 12, dtype 5, sbitpos 0, dbitpos 0, immvalue 0 */
                   4894:   uint16 srcdata = ipc->src;
                   4895:   int dstreg = (ipc->opcode >> 0) & 7;
                   4896:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
                   4897:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   4898:   uint8 datamask = srcdata & 0xFF;
                   4899:   while (datamask) {
                   4900:     DATAREG(movem_bit[datamask]) = (sint32)(sint16)fetchword(dstaddr);
                   4901:     datamask&= ~(1<<movem_bit[datamask]);
                   4902:     dstaddr+= 2;
                   4903:   }
                   4904:   while (addrmask) {
                   4905:     ADDRREG(movem_bit[addrmask]) = (sint32)(sint16)fetchword(dstaddr);
                   4906:     addrmask&= ~(1<<movem_bit[addrmask]);
                   4907:     dstaddr+= 2;
                   4908:   }
                   4909:   PC+= 6;
                   4910: }
                   4911: 
                   4912: void cpu_op_726a(t_ipc *ipc) /* MOVEMMR */ {
                   4913:   /* mask fff8, bits 4cb0, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 12, dtype 6, sbitpos 0, dbitpos 0, immvalue 0 */
                   4914:   uint16 srcdata = ipc->src;
                   4915:   int dstreg = (ipc->opcode >> 0) & 7;
                   4916:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
                   4917:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   4918:   uint8 datamask = srcdata & 0xFF;
                   4919:   while (datamask) {
                   4920:     DATAREG(movem_bit[datamask]) = (sint32)(sint16)fetchword(dstaddr);
                   4921:     datamask&= ~(1<<movem_bit[datamask]);
                   4922:     dstaddr+= 2;
                   4923:   }
                   4924:   while (addrmask) {
                   4925:     ADDRREG(movem_bit[addrmask]) = (sint32)(sint16)fetchword(dstaddr);
                   4926:     addrmask&= ~(1<<movem_bit[addrmask]);
                   4927:     dstaddr+= 2;
                   4928:   }
                   4929:   PC+= 6;
                   4930: }
                   4931: 
                   4932: void cpu_op_727a(t_ipc *ipc) /* MOVEMMR */ {
                   4933:   /* mask ffff, bits 4cb8, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 12, dtype 7, sbitpos 0, dbitpos 0, immvalue 0 */
                   4934:   uint16 srcdata = ipc->src;
                   4935:   uint32 dstaddr = ipc->dst;
                   4936:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   4937:   uint8 datamask = srcdata & 0xFF;
                   4938:   while (datamask) {
                   4939:     DATAREG(movem_bit[datamask]) = (sint32)(sint16)fetchword(dstaddr);
                   4940:     datamask&= ~(1<<movem_bit[datamask]);
                   4941:     dstaddr+= 2;
                   4942:   }
                   4943:   while (addrmask) {
                   4944:     ADDRREG(movem_bit[addrmask]) = (sint32)(sint16)fetchword(dstaddr);
                   4945:     addrmask&= ~(1<<movem_bit[addrmask]);
                   4946:     dstaddr+= 2;
                   4947:   }
                   4948:   PC+= 6;
                   4949: }
                   4950: 
                   4951: void cpu_op_728a(t_ipc *ipc) /* MOVEMMR */ {
                   4952:   /* mask ffff, bits 4cb9, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 12, dtype 8, sbitpos 0, dbitpos 0, immvalue 0 */
                   4953:   uint16 srcdata = ipc->src;
                   4954:   uint32 dstaddr = ipc->dst;
                   4955:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   4956:   uint8 datamask = srcdata & 0xFF;
                   4957:   while (datamask) {
                   4958:     DATAREG(movem_bit[datamask]) = (sint32)(sint16)fetchword(dstaddr);
                   4959:     datamask&= ~(1<<movem_bit[datamask]);
                   4960:     dstaddr+= 2;
                   4961:   }
                   4962:   while (addrmask) {
                   4963:     ADDRREG(movem_bit[addrmask]) = (sint32)(sint16)fetchword(dstaddr);
                   4964:     addrmask&= ~(1<<movem_bit[addrmask]);
                   4965:     dstaddr+= 2;
                   4966:   }
                   4967:   PC+= 8;
                   4968: }
                   4969: 
                   4970: void cpu_op_729a(t_ipc *ipc) /* MOVEMMR */ {
                   4971:   /* mask ffff, bits 4cba, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 12, dtype 9, sbitpos 0, dbitpos 0, immvalue 0 */
                   4972:   uint16 srcdata = ipc->src;
                   4973:   uint32 dstaddr = ipc->dst;
                   4974:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   4975:   uint8 datamask = srcdata & 0xFF;
                   4976:   while (datamask) {
                   4977:     DATAREG(movem_bit[datamask]) = (sint32)(sint16)fetchword(dstaddr);
                   4978:     datamask&= ~(1<<movem_bit[datamask]);
                   4979:     dstaddr+= 2;
                   4980:   }
                   4981:   while (addrmask) {
                   4982:     ADDRREG(movem_bit[addrmask]) = (sint32)(sint16)fetchword(dstaddr);
                   4983:     addrmask&= ~(1<<movem_bit[addrmask]);
                   4984:     dstaddr+= 2;
                   4985:   }
                   4986:   PC+= 6;
                   4987: }
                   4988: 
                   4989: void cpu_op_730a(t_ipc *ipc) /* MOVEMMR */ {
                   4990:   /* mask ffff, bits 4cbb, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 12, dtype 10, sbitpos 0, dbitpos 0, immvalue 0 */
                   4991:   uint16 srcdata = ipc->src;
                   4992:   uint32 dstaddr = idxval_dst(ipc);
                   4993:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   4994:   uint8 datamask = srcdata & 0xFF;
                   4995:   while (datamask) {
                   4996:     DATAREG(movem_bit[datamask]) = (sint32)(sint16)fetchword(dstaddr);
                   4997:     datamask&= ~(1<<movem_bit[datamask]);
                   4998:     dstaddr+= 2;
                   4999:   }
                   5000:   while (addrmask) {
                   5001:     ADDRREG(movem_bit[addrmask]) = (sint32)(sint16)fetchword(dstaddr);
                   5002:     addrmask&= ~(1<<movem_bit[addrmask]);
                   5003:     dstaddr+= 2;
                   5004:   }
                   5005:   PC+= 6;
                   5006: }
                   5007: 
                   5008: void cpu_op_731a(t_ipc *ipc) /* MOVEMMR */ {
                   5009:   /* mask fff8, bits 4cd0, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 2, sbitpos 0, dbitpos 0, immvalue 0 */
                   5010:   uint16 srcdata = ipc->src;
                   5011:   int dstreg = (ipc->opcode >> 0) & 7;
                   5012:   uint32 dstaddr = ADDRREG(dstreg);
                   5013:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   5014:   uint8 datamask = srcdata & 0xFF;
                   5015:   while (datamask) {
                   5016:     DATAREG(movem_bit[datamask]) = fetchlong(dstaddr);
                   5017:     datamask&= ~(1<<movem_bit[datamask]);
                   5018:     dstaddr+= 4;
                   5019:   }
                   5020:   while (addrmask) {
                   5021:     ADDRREG(movem_bit[addrmask]) = fetchlong(dstaddr);
                   5022:     addrmask&= ~(1<<movem_bit[addrmask]);
                   5023:     dstaddr+= 4;
                   5024:   }
                   5025:   PC+= 4;
                   5026: }
                   5027: 
                   5028: void cpu_op_732a(t_ipc *ipc) /* MOVEMMR */ {
                   5029:   /* mask fff8, bits 4cd8, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 3, sbitpos 0, dbitpos 0, immvalue 0 */
                   5030:   uint16 srcdata = ipc->src;
                   5031:   int dstreg = (ipc->opcode >> 0) & 7;
                   5032:   uint32 dstaddr = ADDRREG(dstreg);
                   5033:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   5034:   uint8 datamask = srcdata & 0xFF;
                   5035:   while (datamask) {
                   5036:     DATAREG(movem_bit[datamask]) = fetchlong(dstaddr);
                   5037:     datamask&= ~(1<<movem_bit[datamask]);
                   5038:     dstaddr+= 4;
                   5039:   }
                   5040:   while (addrmask) {
                   5041:     ADDRREG(movem_bit[addrmask]) = fetchlong(dstaddr);
                   5042:     addrmask&= ~(1<<movem_bit[addrmask]);
                   5043:     dstaddr+= 4;
                   5044:   }
                   5045:   ADDRREG(dstreg) = dstaddr;
                   5046:   PC+= 4;
                   5047: }
                   5048: 
                   5049: void cpu_op_733a(t_ipc *ipc) /* MOVEMMR */ {
                   5050:   /* mask fff8, bits 4ce8, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 5, sbitpos 0, dbitpos 0, immvalue 0 */
                   5051:   uint16 srcdata = ipc->src;
                   5052:   int dstreg = (ipc->opcode >> 0) & 7;
                   5053:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
                   5054:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   5055:   uint8 datamask = srcdata & 0xFF;
                   5056:   while (datamask) {
                   5057:     DATAREG(movem_bit[datamask]) = fetchlong(dstaddr);
                   5058:     datamask&= ~(1<<movem_bit[datamask]);
                   5059:     dstaddr+= 4;
                   5060:   }
                   5061:   while (addrmask) {
                   5062:     ADDRREG(movem_bit[addrmask]) = fetchlong(dstaddr);
                   5063:     addrmask&= ~(1<<movem_bit[addrmask]);
                   5064:     dstaddr+= 4;
                   5065:   }
                   5066:   PC+= 6;
                   5067: }
                   5068: 
                   5069: void cpu_op_734a(t_ipc *ipc) /* MOVEMMR */ {
                   5070:   /* mask fff8, bits 4cf0, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 6, sbitpos 0, dbitpos 0, immvalue 0 */
                   5071:   uint16 srcdata = ipc->src;
                   5072:   int dstreg = (ipc->opcode >> 0) & 7;
                   5073:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
                   5074:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   5075:   uint8 datamask = srcdata & 0xFF;
                   5076:   while (datamask) {
                   5077:     DATAREG(movem_bit[datamask]) = fetchlong(dstaddr);
                   5078:     datamask&= ~(1<<movem_bit[datamask]);
                   5079:     dstaddr+= 4;
                   5080:   }
                   5081:   while (addrmask) {
                   5082:     ADDRREG(movem_bit[addrmask]) = fetchlong(dstaddr);
                   5083:     addrmask&= ~(1<<movem_bit[addrmask]);
                   5084:     dstaddr+= 4;
                   5085:   }
                   5086:   PC+= 6;
                   5087: }
                   5088: 
                   5089: void cpu_op_735a(t_ipc *ipc) /* MOVEMMR */ {
                   5090:   /* mask ffff, bits 4cf8, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 7, sbitpos 0, dbitpos 0, immvalue 0 */
                   5091:   uint16 srcdata = ipc->src;
                   5092:   uint32 dstaddr = ipc->dst;
                   5093:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   5094:   uint8 datamask = srcdata & 0xFF;
                   5095:   while (datamask) {
                   5096:     DATAREG(movem_bit[datamask]) = fetchlong(dstaddr);
                   5097:     datamask&= ~(1<<movem_bit[datamask]);
                   5098:     dstaddr+= 4;
                   5099:   }
                   5100:   while (addrmask) {
                   5101:     ADDRREG(movem_bit[addrmask]) = fetchlong(dstaddr);
                   5102:     addrmask&= ~(1<<movem_bit[addrmask]);
                   5103:     dstaddr+= 4;
                   5104:   }
                   5105:   PC+= 6;
                   5106: }
                   5107: 
                   5108: void cpu_op_736a(t_ipc *ipc) /* MOVEMMR */ {
                   5109:   /* mask ffff, bits 4cf9, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 8, sbitpos 0, dbitpos 0, immvalue 0 */
                   5110:   uint16 srcdata = ipc->src;
                   5111:   uint32 dstaddr = ipc->dst;
                   5112:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   5113:   uint8 datamask = srcdata & 0xFF;
                   5114:   while (datamask) {
                   5115:     DATAREG(movem_bit[datamask]) = fetchlong(dstaddr);
                   5116:     datamask&= ~(1<<movem_bit[datamask]);
                   5117:     dstaddr+= 4;
                   5118:   }
                   5119:   while (addrmask) {
                   5120:     ADDRREG(movem_bit[addrmask]) = fetchlong(dstaddr);
                   5121:     addrmask&= ~(1<<movem_bit[addrmask]);
                   5122:     dstaddr+= 4;
                   5123:   }
                   5124:   PC+= 8;
                   5125: }
                   5126: 
                   5127: void cpu_op_737a(t_ipc *ipc) /* MOVEMMR */ {
                   5128:   /* mask ffff, bits 4cfa, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 9, sbitpos 0, dbitpos 0, immvalue 0 */
                   5129:   uint16 srcdata = ipc->src;
                   5130:   uint32 dstaddr = ipc->dst;
                   5131:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   5132:   uint8 datamask = srcdata & 0xFF;
                   5133:   while (datamask) {
                   5134:     DATAREG(movem_bit[datamask]) = fetchlong(dstaddr);
                   5135:     datamask&= ~(1<<movem_bit[datamask]);
                   5136:     dstaddr+= 4;
                   5137:   }
                   5138:   while (addrmask) {
                   5139:     ADDRREG(movem_bit[addrmask]) = fetchlong(dstaddr);
                   5140:     addrmask&= ~(1<<movem_bit[addrmask]);
                   5141:     dstaddr+= 4;
                   5142:   }
                   5143:   PC+= 6;
                   5144: }
                   5145: 
                   5146: void cpu_op_738a(t_ipc *ipc) /* MOVEMMR */ {
                   5147:   /* mask ffff, bits 4cfb, mnemonic 28, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 10, sbitpos 0, dbitpos 0, immvalue 0 */
                   5148:   uint16 srcdata = ipc->src;
                   5149:   uint32 dstaddr = idxval_dst(ipc);
                   5150:   uint8 addrmask = (srcdata & 0xFF00) >> 8;
                   5151:   uint8 datamask = srcdata & 0xFF;
                   5152:   while (datamask) {
                   5153:     DATAREG(movem_bit[datamask]) = fetchlong(dstaddr);
                   5154:     datamask&= ~(1<<movem_bit[datamask]);
                   5155:     dstaddr+= 4;
                   5156:   }
                   5157:   while (addrmask) {
                   5158:     ADDRREG(movem_bit[addrmask]) = fetchlong(dstaddr);
                   5159:     addrmask&= ~(1<<movem_bit[addrmask]);
                   5160:     dstaddr+= 4;
                   5161:   }
                   5162:   PC+= 6;
                   5163: }
                   5164: 
                   5165: void cpu_op_739a(t_ipc *ipc) /* TRAP */ {
                   5166:   /* mask fff0, bits 4e40, mnemonic 47, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 0, stype 16, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5167:   unsigned int srcdata = ipc->src;
                   5168: 
1.1.1.2 ! root     5169:   reg68k_internal_vector(V_TRAP+srcdata, PC+2);
1.1       root     5170: }
                   5171: 
                   5172: void cpu_op_740a(t_ipc *ipc) /* LINK */ {
                   5173:   /* mask fff8, bits 4e50, mnemonic 51, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 12, dtype 1, sbitpos 0, dbitpos 0, immvalue 0 */
                   5174:   uint16 srcdata = ipc->src;
                   5175:   int dstreg = (ipc->opcode >> 0) & 7;
                   5176:   uint32 dstdata = ADDRREG(dstreg);
                   5177: 
                   5178:   ADDRREG(7)-= 4;
                   5179:   storelong(ADDRREG(7), dstdata);
                   5180:   ADDRREG(dstreg) = ADDRREG(7);
                   5181:   ADDRREG(7)+= (sint16)srcdata;
                   5182:   PC+= 4;
                   5183: }
                   5184: 
                   5185: void cpu_op_741a(t_ipc *ipc) /* UNLK */ {
                   5186:   /* mask fff8, bits 4e58, mnemonic 52, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 1, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5187:   int srcreg = (ipc->opcode >> 0) & 7;
                   5188:   uint32 srcdata = ADDRREG(srcreg);
                   5189: 
                   5190:   ADDRREG(srcreg) = fetchlong(srcdata);
                   5191:   ADDRREG(7) = srcdata+4;
                   5192:   PC+= 2;
                   5193: }
                   5194: 
                   5195: void cpu_op_742a(t_ipc *ipc) /* MOVETUSP */ {
                   5196:   /* mask fff8, bits 4e60, mnemonic 29, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 1, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5197:   int srcreg = (ipc->opcode >> 0) & 7;
                   5198:   uint32 srcdata = ADDRREG(srcreg);
                   5199: 
                   5200:   if (!SFLAG)
1.1.1.2 ! root     5201:     reg68k_internal_vector(V_PRIVILEGE, PC+2);
1.1       root     5202: 
                   5203:   SP = srcdata;
                   5204:   PC+= 2;
                   5205: }
                   5206: 
                   5207: void cpu_op_743a(t_ipc *ipc) /* MOVEFUSP */ {
                   5208:   /* mask fff8, bits 4e68, mnemonic 30, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 1, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5209:   int srcreg = (ipc->opcode >> 0) & 7;
                   5210:   uint32 outdata;
                   5211: 
                   5212:   if (!SFLAG)
1.1.1.2 ! root     5213:     reg68k_internal_vector(V_PRIVILEGE, PC+2);
1.1       root     5214: 
                   5215:   outdata = SP;
                   5216:   ADDRREG(srcreg) = outdata;
                   5217:   PC+= 2;
                   5218: }
                   5219: 
                   5220: void cpu_op_744a(t_ipc *ipc) /* RESET */ {
                   5221:   /* mask ffff, bits 4e70, mnemonic 48, priv -1, endblk -1, imm_notzero 0, used 0     set 0, size 0, stype 20, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5222:   printf("RESET @ %x\n", PC);
                   5223:   exit(1);
                   5224:   PC+= 2;
                   5225: }
                   5226: 
                   5227: void cpu_op_745a(t_ipc *ipc) /* NOP */ {
                   5228:   /* mask ffff, bits 4e71, mnemonic 49, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 0, stype 20, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5229:   PC+= 2;
                   5230: }
                   5231: 
                   5232: void cpu_op_746a(t_ipc *ipc) /* STOP */ {
                   5233:   /* mask ffff, bits 4e72, mnemonic 50, priv -1, endblk -1, imm_notzero 0, used 0     set -1, size 0, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5234:   uint16 srcdata = ipc->src;
                   5235: 
1.1.1.2 ! root     5236:   if (regs.stop)
        !          5237:     return;
        !          5238:   if (!(SFLAG && (srcdata & 1<<13))) {
        !          5239:     reg68k_internal_vector(V_PRIVILEGE, PC+4);
        !          5240:     PC+= 4;
        !          5241:   } else {
1.1       root     5242:     SR = srcdata;
                   5243:     STOP = 1;
                   5244:   }
                   5245: }
                   5246: 
                   5247: void cpu_op_746b(t_ipc *ipc) /* STOP */ {
                   5248:   /* mask ffff, bits 4e72, mnemonic 50, priv -1, endblk -1, imm_notzero 0, used 0     set -1, size 0, stype 12, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5249:   uint16 srcdata = ipc->src;
                   5250: 
1.1.1.2 ! root     5251:   if (regs.stop)
        !          5252:     return;
        !          5253:   if (!(SFLAG && (srcdata & 1<<13))) {
        !          5254:     reg68k_internal_vector(V_PRIVILEGE, PC+4);
        !          5255:     PC+= 4;
        !          5256:   } else {
1.1       root     5257:     SR = srcdata;
                   5258:     STOP = 1;
                   5259:   }
                   5260: }
                   5261: 
                   5262: void cpu_op_747a(t_ipc *ipc) /* RTE */ {
                   5263:   /* mask ffff, bits 4e73, mnemonic 53, priv -1, endblk -1, imm_notzero 0, used 0     set -1, size 0, stype 20, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5264:   if (!SFLAG)
1.1.1.2 ! root     5265:     reg68k_internal_vector(V_PRIVILEGE, PC+2);
1.1       root     5266: 
                   5267:   SR = fetchword(ADDRREG(7));
                   5268:   PC = fetchlong(ADDRREG(7)+2);
                   5269:   ADDRREG(7)+= 6;
                   5270:   if (!reg68k_sr.sr_struct.s) {
                   5271:     /* mode change, swap SP and A7 */
                   5272:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   5273:   }
                   5274: }
                   5275: 
                   5276: void cpu_op_747b(t_ipc *ipc) /* RTE */ {
                   5277:   /* mask ffff, bits 4e73, mnemonic 53, priv -1, endblk -1, imm_notzero 0, used 0     set -1, size 0, stype 20, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5278:   if (!SFLAG)
1.1.1.2 ! root     5279:     reg68k_internal_vector(V_PRIVILEGE, PC+2);
1.1       root     5280: 
                   5281:   SR = fetchword(ADDRREG(7));
                   5282:   PC = fetchlong(ADDRREG(7)+2);
                   5283:   ADDRREG(7)+= 6;
                   5284:   if (!reg68k_sr.sr_struct.s) {
                   5285:     /* mode change, swap SP and A7 */
                   5286:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
                   5287:   }
                   5288: }
                   5289: 
                   5290: void cpu_op_748a(t_ipc *ipc) /* RTS */ {
                   5291:   /* mask ffff, bits 4e75, mnemonic 54, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 0, stype 20, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5292:   PC = fetchlong(ADDRREG(7));
                   5293:   ADDRREG(7)+= 4;
                   5294: }
                   5295: 
                   5296: void cpu_op_749a(t_ipc *ipc) /* TRAPV */ {
                   5297:   /* mask ffff, bits 4e76, mnemonic 46, priv 0, endblk -1, imm_notzero 0, used 8     set 0, size 0, stype 20, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5298:   if (VFLAG) {
1.1.1.2 ! root     5299:     reg68k_internal_vector(V_TRAPV, PC+2);
1.1       root     5300:   }
                   5301:   PC+= 2;
                   5302: }
                   5303: 
                   5304: void cpu_op_750a(t_ipc *ipc) /* RTR */ {
                   5305:   /* mask ffff, bits 4e77, mnemonic 55, priv 0, endblk -1, imm_notzero 0, used 0     set -1, size 0, stype 20, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5306:   SR = (SR & ~0xFF) | (fetchword(ADDRREG(7)) & 0xFF);
                   5307:   PC = fetchlong(ADDRREG(7)+2);
                   5308:   ADDRREG(7)+= 6;
                   5309: }
                   5310: 
                   5311: void cpu_op_750b(t_ipc *ipc) /* RTR */ {
                   5312:   /* mask ffff, bits 4e77, mnemonic 55, priv 0, endblk -1, imm_notzero 0, used 0     set -1, size 0, stype 20, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5313:   SR = (SR & ~0xFF) | (fetchword(ADDRREG(7)) & 0xFF);
                   5314:   PC = fetchlong(ADDRREG(7)+2);
                   5315:   ADDRREG(7)+= 6;
                   5316: }
                   5317: 
                   5318: void cpu_op_751a(t_ipc *ipc) /* JSR */ {
                   5319:   /* mask fff8, bits 4e90, mnemonic 56, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 3, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5320:   int srcreg = (ipc->opcode >> 0) & 7;
                   5321:   uint32 srcaddr = ADDRREG(srcreg);
                   5322: 
                   5323:   ADDRREG(7)-= 4;
                   5324:   storelong(ADDRREG(7), PC+2);
                   5325:   PC = srcaddr;
                   5326: }
                   5327: 
                   5328: void cpu_op_752a(t_ipc *ipc) /* JSR */ {
                   5329:   /* mask fff8, bits 4ea8, mnemonic 56, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 3, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5330:   int srcreg = (ipc->opcode >> 0) & 7;
                   5331:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   5332: 
                   5333:   ADDRREG(7)-= 4;
                   5334:   storelong(ADDRREG(7), PC+4);
                   5335:   PC = srcaddr;
                   5336: }
                   5337: 
                   5338: void cpu_op_753a(t_ipc *ipc) /* JSR */ {
                   5339:   /* mask fff8, bits 4eb0, mnemonic 56, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 3, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5340:   int srcreg = (ipc->opcode >> 0) & 7;
                   5341:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   5342: 
                   5343:   ADDRREG(7)-= 4;
                   5344:   storelong(ADDRREG(7), PC+4);
                   5345:   PC = srcaddr;
                   5346: }
                   5347: 
                   5348: void cpu_op_754a(t_ipc *ipc) /* JSR */ {
                   5349:   /* mask ffff, bits 4eb8, mnemonic 56, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 3, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5350:   uint32 srcaddr = ipc->src;
                   5351: 
                   5352:   ADDRREG(7)-= 4;
                   5353:   storelong(ADDRREG(7), PC+4);
                   5354:   PC = srcaddr;
                   5355: }
                   5356: 
                   5357: void cpu_op_755a(t_ipc *ipc) /* JSR */ {
                   5358:   /* mask ffff, bits 4eb9, mnemonic 56, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 3, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5359:   uint32 srcaddr = ipc->src;
                   5360: 
                   5361:   ADDRREG(7)-= 4;
                   5362:   storelong(ADDRREG(7), PC+6);
                   5363:   PC = srcaddr;
                   5364: }
                   5365: 
                   5366: void cpu_op_756a(t_ipc *ipc) /* JSR */ {
                   5367:   /* mask ffff, bits 4eba, mnemonic 56, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 3, stype 9, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5368:   uint32 srcaddr = ipc->src;
                   5369: 
                   5370:   ADDRREG(7)-= 4;
                   5371:   storelong(ADDRREG(7), PC+4);
                   5372:   PC = srcaddr;
                   5373: }
                   5374: 
                   5375: void cpu_op_757a(t_ipc *ipc) /* JSR */ {
                   5376:   /* mask ffff, bits 4ebb, mnemonic 56, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 3, stype 10, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5377:   uint32 srcaddr = idxval_src(ipc);
                   5378: 
                   5379:   ADDRREG(7)-= 4;
                   5380:   storelong(ADDRREG(7), PC+4);
                   5381:   PC = srcaddr;
                   5382: }
                   5383: 
                   5384: void cpu_op_758a(t_ipc *ipc) /* JMP */ {
                   5385:   /* mask fff8, bits 4ed0, mnemonic 57, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 3, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5386:   int srcreg = (ipc->opcode >> 0) & 7;
                   5387:   uint32 srcaddr = ADDRREG(srcreg);
                   5388: 
                   5389:   PC = srcaddr;
                   5390: }
                   5391: 
                   5392: void cpu_op_759a(t_ipc *ipc) /* JMP */ {
                   5393:   /* mask fff8, bits 4ee8, mnemonic 57, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 3, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5394:   int srcreg = (ipc->opcode >> 0) & 7;
                   5395:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   5396: 
                   5397:   PC = srcaddr;
                   5398: }
                   5399: 
                   5400: void cpu_op_760a(t_ipc *ipc) /* JMP */ {
                   5401:   /* mask fff8, bits 4ef0, mnemonic 57, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 3, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5402:   int srcreg = (ipc->opcode >> 0) & 7;
                   5403:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   5404: 
                   5405:   PC = srcaddr;
                   5406: }
                   5407: 
                   5408: void cpu_op_761a(t_ipc *ipc) /* JMP */ {
                   5409:   /* mask ffff, bits 4ef8, mnemonic 57, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 3, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5410:   uint32 srcaddr = ipc->src;
                   5411: 
                   5412:   PC = srcaddr;
                   5413: }
                   5414: 
                   5415: void cpu_op_762a(t_ipc *ipc) /* JMP */ {
                   5416:   /* mask ffff, bits 4ef9, mnemonic 57, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 3, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5417:   uint32 srcaddr = ipc->src;
                   5418: 
                   5419:   PC = srcaddr;
                   5420: }
                   5421: 
                   5422: void cpu_op_763a(t_ipc *ipc) /* JMP */ {
                   5423:   /* mask ffff, bits 4efa, mnemonic 57, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 3, stype 9, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5424:   uint32 srcaddr = ipc->src;
                   5425: 
                   5426:   PC = srcaddr;
                   5427: }
                   5428: 
                   5429: void cpu_op_764a(t_ipc *ipc) /* JMP */ {
                   5430:   /* mask ffff, bits 4efb, mnemonic 57, priv 0, endblk -1, imm_notzero 0, used 0     set 0, size 3, stype 10, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
                   5431:   uint32 srcaddr = idxval_src(ipc);
                   5432: 
                   5433:   PC = srcaddr;
                   5434: }
                   5435: 
                   5436: void cpu_op_765a(t_ipc *ipc) /* CHK */ {
                   5437:   /* mask f1f8, bits 4180, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 0, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5438:   int srcreg = (ipc->opcode >> 0) & 7;
                   5439:   uint16 srcdata = DATAREG(srcreg);
                   5440:   int dstreg = (ipc->opcode >> 9) & 7;
                   5441:   uint16 dstdata = DATAREG(dstreg);
                   5442: 
                   5443:   if ((sint16)srcdata < 0) {
1.1.1.2 ! root     5444:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5445:   } else if (dstdata > srcdata) {
1.1.1.2 ! root     5446:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5447:   }
                   5448:   PC+= 2;
                   5449: }
                   5450: 
                   5451: void cpu_op_765b(t_ipc *ipc) /* CHK */ {
                   5452:   /* mask f1f8, bits 4180, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 0, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5453:   int srcreg = (ipc->opcode >> 0) & 7;
                   5454:   uint16 srcdata = DATAREG(srcreg);
                   5455:   int dstreg = (ipc->opcode >> 9) & 7;
                   5456:   uint16 dstdata = DATAREG(dstreg);
                   5457: 
                   5458:   if ((sint16)srcdata < 0) {
                   5459:     NFLAG = 1;
1.1.1.2 ! root     5460:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5461:   } else if (dstdata > srcdata) {
                   5462:     NFLAG = 0;
1.1.1.2 ! root     5463:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5464:   }
                   5465:   PC+= 2;
                   5466: }
                   5467: 
                   5468: void cpu_op_766a(t_ipc *ipc) /* CHK */ {
                   5469:   /* mask f1f8, bits 4190, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 2, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5470:   int srcreg = (ipc->opcode >> 0) & 7;
                   5471:   uint32 srcaddr = ADDRREG(srcreg);
                   5472:   uint16 srcdata = fetchword(srcaddr);
                   5473:   int dstreg = (ipc->opcode >> 9) & 7;
                   5474:   uint16 dstdata = DATAREG(dstreg);
                   5475: 
                   5476:   if ((sint16)srcdata < 0) {
1.1.1.2 ! root     5477:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5478:   } else if (dstdata > srcdata) {
1.1.1.2 ! root     5479:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5480:   }
                   5481:   PC+= 2;
                   5482: }
                   5483: 
                   5484: void cpu_op_766b(t_ipc *ipc) /* CHK */ {
                   5485:   /* mask f1f8, bits 4190, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 2, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5486:   int srcreg = (ipc->opcode >> 0) & 7;
                   5487:   uint32 srcaddr = ADDRREG(srcreg);
                   5488:   uint16 srcdata = fetchword(srcaddr);
                   5489:   int dstreg = (ipc->opcode >> 9) & 7;
                   5490:   uint16 dstdata = DATAREG(dstreg);
                   5491: 
                   5492:   if ((sint16)srcdata < 0) {
                   5493:     NFLAG = 1;
1.1.1.2 ! root     5494:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5495:   } else if (dstdata > srcdata) {
                   5496:     NFLAG = 0;
1.1.1.2 ! root     5497:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5498:   }
                   5499:   PC+= 2;
                   5500: }
                   5501: 
                   5502: void cpu_op_767a(t_ipc *ipc) /* CHK */ {
                   5503:   /* mask f1f8, bits 4198, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 3, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5504:   int srcreg = (ipc->opcode >> 0) & 7;
                   5505:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                   5506:   uint16 srcdata = fetchword(srcaddr);
                   5507:   int dstreg = (ipc->opcode >> 9) & 7;
                   5508:   uint16 dstdata = DATAREG(dstreg);
                   5509: 
                   5510:   if ((sint16)srcdata < 0) {
1.1.1.2 ! root     5511:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5512:   } else if (dstdata > srcdata) {
1.1.1.2 ! root     5513:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5514:   }
                   5515:   PC+= 2;
                   5516: }
                   5517: 
                   5518: void cpu_op_767b(t_ipc *ipc) /* CHK */ {
                   5519:   /* mask f1f8, bits 4198, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 3, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5520:   int srcreg = (ipc->opcode >> 0) & 7;
                   5521:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
                   5522:   uint16 srcdata = fetchword(srcaddr);
                   5523:   int dstreg = (ipc->opcode >> 9) & 7;
                   5524:   uint16 dstdata = DATAREG(dstreg);
                   5525: 
                   5526:   if ((sint16)srcdata < 0) {
                   5527:     NFLAG = 1;
1.1.1.2 ! root     5528:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5529:   } else if (dstdata > srcdata) {
                   5530:     NFLAG = 0;
1.1.1.2 ! root     5531:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5532:   }
                   5533:   PC+= 2;
                   5534: }
                   5535: 
                   5536: void cpu_op_768a(t_ipc *ipc) /* CHK */ {
                   5537:   /* mask f1f8, bits 41a0, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 4, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5538:   int srcreg = (ipc->opcode >> 0) & 7;
                   5539:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                   5540:   uint16 srcdata = fetchword(srcaddr);
                   5541:   int dstreg = (ipc->opcode >> 9) & 7;
                   5542:   uint16 dstdata = DATAREG(dstreg);
                   5543: 
                   5544:   if ((sint16)srcdata < 0) {
1.1.1.2 ! root     5545:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5546:   } else if (dstdata > srcdata) {
1.1.1.2 ! root     5547:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5548:   }
                   5549:   PC+= 2;
                   5550: }
                   5551: 
                   5552: void cpu_op_768b(t_ipc *ipc) /* CHK */ {
                   5553:   /* mask f1f8, bits 41a0, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 4, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5554:   int srcreg = (ipc->opcode >> 0) & 7;
                   5555:   uint32 srcaddr = ADDRREG(srcreg)-=2;
                   5556:   uint16 srcdata = fetchword(srcaddr);
                   5557:   int dstreg = (ipc->opcode >> 9) & 7;
                   5558:   uint16 dstdata = DATAREG(dstreg);
                   5559: 
                   5560:   if ((sint16)srcdata < 0) {
                   5561:     NFLAG = 1;
1.1.1.2 ! root     5562:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5563:   } else if (dstdata > srcdata) {
                   5564:     NFLAG = 0;
1.1.1.2 ! root     5565:     reg68k_internal_vector(V_CHK, PC+2);
1.1       root     5566:   }
                   5567:   PC+= 2;
                   5568: }
                   5569: 
                   5570: void cpu_op_769a(t_ipc *ipc) /* CHK */ {
                   5571:   /* mask f1f8, bits 41a8, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 5, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5572:   int srcreg = (ipc->opcode >> 0) & 7;
                   5573:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   5574:   uint16 srcdata = fetchword(srcaddr);
                   5575:   int dstreg = (ipc->opcode >> 9) & 7;
                   5576:   uint16 dstdata = DATAREG(dstreg);
                   5577: 
                   5578:   if ((sint16)srcdata < 0) {
1.1.1.2 ! root     5579:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5580:   } else if (dstdata > srcdata) {
1.1.1.2 ! root     5581:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5582:   }
                   5583:   PC+= 4;
                   5584: }
                   5585: 
                   5586: void cpu_op_769b(t_ipc *ipc) /* CHK */ {
                   5587:   /* mask f1f8, bits 41a8, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 5, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5588:   int srcreg = (ipc->opcode >> 0) & 7;
                   5589:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   5590:   uint16 srcdata = fetchword(srcaddr);
                   5591:   int dstreg = (ipc->opcode >> 9) & 7;
                   5592:   uint16 dstdata = DATAREG(dstreg);
                   5593: 
                   5594:   if ((sint16)srcdata < 0) {
                   5595:     NFLAG = 1;
1.1.1.2 ! root     5596:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5597:   } else if (dstdata > srcdata) {
                   5598:     NFLAG = 0;
1.1.1.2 ! root     5599:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5600:   }
                   5601:   PC+= 4;
                   5602: }
                   5603: 
                   5604: void cpu_op_770a(t_ipc *ipc) /* CHK */ {
                   5605:   /* mask f1f8, bits 41b0, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 6, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5606:   int srcreg = (ipc->opcode >> 0) & 7;
                   5607:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   5608:   uint16 srcdata = fetchword(srcaddr);
                   5609:   int dstreg = (ipc->opcode >> 9) & 7;
                   5610:   uint16 dstdata = DATAREG(dstreg);
                   5611: 
                   5612:   if ((sint16)srcdata < 0) {
1.1.1.2 ! root     5613:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5614:   } else if (dstdata > srcdata) {
1.1.1.2 ! root     5615:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5616:   }
                   5617:   PC+= 4;
                   5618: }
                   5619: 
                   5620: void cpu_op_770b(t_ipc *ipc) /* CHK */ {
                   5621:   /* mask f1f8, bits 41b0, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 6, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5622:   int srcreg = (ipc->opcode >> 0) & 7;
                   5623:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   5624:   uint16 srcdata = fetchword(srcaddr);
                   5625:   int dstreg = (ipc->opcode >> 9) & 7;
                   5626:   uint16 dstdata = DATAREG(dstreg);
                   5627: 
                   5628:   if ((sint16)srcdata < 0) {
                   5629:     NFLAG = 1;
1.1.1.2 ! root     5630:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5631:   } else if (dstdata > srcdata) {
                   5632:     NFLAG = 0;
1.1.1.2 ! root     5633:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5634:   }
                   5635:   PC+= 4;
                   5636: }
                   5637: 
                   5638: void cpu_op_771a(t_ipc *ipc) /* CHK */ {
                   5639:   /* mask f1ff, bits 41b8, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 7, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5640:   uint32 srcaddr = ipc->src;
                   5641:   uint16 srcdata = fetchword(srcaddr);
                   5642:   int dstreg = (ipc->opcode >> 9) & 7;
                   5643:   uint16 dstdata = DATAREG(dstreg);
                   5644: 
                   5645:   if ((sint16)srcdata < 0) {
1.1.1.2 ! root     5646:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5647:   } else if (dstdata > srcdata) {
1.1.1.2 ! root     5648:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5649:   }
                   5650:   PC+= 4;
                   5651: }
                   5652: 
                   5653: void cpu_op_771b(t_ipc *ipc) /* CHK */ {
                   5654:   /* mask f1ff, bits 41b8, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 7, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5655:   uint32 srcaddr = ipc->src;
                   5656:   uint16 srcdata = fetchword(srcaddr);
                   5657:   int dstreg = (ipc->opcode >> 9) & 7;
                   5658:   uint16 dstdata = DATAREG(dstreg);
                   5659: 
                   5660:   if ((sint16)srcdata < 0) {
                   5661:     NFLAG = 1;
1.1.1.2 ! root     5662:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5663:   } else if (dstdata > srcdata) {
                   5664:     NFLAG = 0;
1.1.1.2 ! root     5665:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5666:   }
                   5667:   PC+= 4;
                   5668: }
                   5669: 
                   5670: void cpu_op_772a(t_ipc *ipc) /* CHK */ {
                   5671:   /* mask f1ff, bits 41b9, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 8, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5672:   uint32 srcaddr = ipc->src;
                   5673:   uint16 srcdata = fetchword(srcaddr);
                   5674:   int dstreg = (ipc->opcode >> 9) & 7;
                   5675:   uint16 dstdata = DATAREG(dstreg);
                   5676: 
                   5677:   if ((sint16)srcdata < 0) {
1.1.1.2 ! root     5678:     reg68k_internal_vector(V_CHK, PC+6);
1.1       root     5679:   } else if (dstdata > srcdata) {
1.1.1.2 ! root     5680:     reg68k_internal_vector(V_CHK, PC+6);
1.1       root     5681:   }
                   5682:   PC+= 6;
                   5683: }
                   5684: 
                   5685: void cpu_op_772b(t_ipc *ipc) /* CHK */ {
                   5686:   /* mask f1ff, bits 41b9, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 8, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5687:   uint32 srcaddr = ipc->src;
                   5688:   uint16 srcdata = fetchword(srcaddr);
                   5689:   int dstreg = (ipc->opcode >> 9) & 7;
                   5690:   uint16 dstdata = DATAREG(dstreg);
                   5691: 
                   5692:   if ((sint16)srcdata < 0) {
                   5693:     NFLAG = 1;
1.1.1.2 ! root     5694:     reg68k_internal_vector(V_CHK, PC+6);
1.1       root     5695:   } else if (dstdata > srcdata) {
                   5696:     NFLAG = 0;
1.1.1.2 ! root     5697:     reg68k_internal_vector(V_CHK, PC+6);
1.1       root     5698:   }
                   5699:   PC+= 6;
                   5700: }
                   5701: 
                   5702: void cpu_op_773a(t_ipc *ipc) /* CHK */ {
                   5703:   /* mask f1ff, bits 41ba, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 9, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5704:   uint32 srcaddr = ipc->src;
                   5705:   uint16 srcdata = fetchword(srcaddr);
                   5706:   int dstreg = (ipc->opcode >> 9) & 7;
                   5707:   uint16 dstdata = DATAREG(dstreg);
                   5708: 
                   5709:   if ((sint16)srcdata < 0) {
1.1.1.2 ! root     5710:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5711:   } else if (dstdata > srcdata) {
1.1.1.2 ! root     5712:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5713:   }
                   5714:   PC+= 4;
                   5715: }
                   5716: 
                   5717: void cpu_op_773b(t_ipc *ipc) /* CHK */ {
                   5718:   /* mask f1ff, bits 41ba, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 9, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5719:   uint32 srcaddr = ipc->src;
                   5720:   uint16 srcdata = fetchword(srcaddr);
                   5721:   int dstreg = (ipc->opcode >> 9) & 7;
                   5722:   uint16 dstdata = DATAREG(dstreg);
                   5723: 
                   5724:   if ((sint16)srcdata < 0) {
                   5725:     NFLAG = 1;
1.1.1.2 ! root     5726:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5727:   } else if (dstdata > srcdata) {
                   5728:     NFLAG = 0;
1.1.1.2 ! root     5729:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5730:   }
                   5731:   PC+= 4;
                   5732: }
                   5733: 
                   5734: void cpu_op_774a(t_ipc *ipc) /* CHK */ {
                   5735:   /* mask f1ff, bits 41bb, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 10, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5736:   uint32 srcaddr = idxval_src(ipc);
                   5737:   uint16 srcdata = fetchword(srcaddr);
                   5738:   int dstreg = (ipc->opcode >> 9) & 7;
                   5739:   uint16 dstdata = DATAREG(dstreg);
                   5740: 
                   5741:   if ((sint16)srcdata < 0) {
1.1.1.2 ! root     5742:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5743:   } else if (dstdata > srcdata) {
1.1.1.2 ! root     5744:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5745:   }
                   5746:   PC+= 4;
                   5747: }
                   5748: 
                   5749: void cpu_op_774b(t_ipc *ipc) /* CHK */ {
                   5750:   /* mask f1ff, bits 41bb, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 10, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5751:   uint32 srcaddr = idxval_src(ipc);
                   5752:   uint16 srcdata = fetchword(srcaddr);
                   5753:   int dstreg = (ipc->opcode >> 9) & 7;
                   5754:   uint16 dstdata = DATAREG(dstreg);
                   5755: 
                   5756:   if ((sint16)srcdata < 0) {
                   5757:     NFLAG = 1;
1.1.1.2 ! root     5758:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5759:   } else if (dstdata > srcdata) {
                   5760:     NFLAG = 0;
1.1.1.2 ! root     5761:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5762:   }
                   5763:   PC+= 4;
                   5764: }
                   5765: 
                   5766: void cpu_op_775a(t_ipc *ipc) /* CHK */ {
                   5767:   /* mask f1ff, bits 41bc, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5768:   uint16 srcdata = ipc->src;
                   5769:   int dstreg = (ipc->opcode >> 9) & 7;
                   5770:   uint16 dstdata = DATAREG(dstreg);
                   5771: 
                   5772:   if ((sint16)srcdata < 0) {
1.1.1.2 ! root     5773:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5774:   } else if (dstdata > srcdata) {
1.1.1.2 ! root     5775:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5776:   }
                   5777:   PC+= 4;
                   5778: }
                   5779: 
                   5780: void cpu_op_775b(t_ipc *ipc) /* CHK */ {
                   5781:   /* mask f1ff, bits 41bc, mnemonic 45, priv 0, endblk 0, imm_notzero 0, used 0     set 2, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
                   5782:   uint16 srcdata = ipc->src;
                   5783:   int dstreg = (ipc->opcode >> 9) & 7;
                   5784:   uint16 dstdata = DATAREG(dstreg);
                   5785: 
                   5786:   if ((sint16)srcdata < 0) {
                   5787:     NFLAG = 1;
1.1.1.2 ! root     5788:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5789:   } else if (dstdata > srcdata) {
                   5790:     NFLAG = 0;
1.1.1.2 ! root     5791:     reg68k_internal_vector(V_CHK, PC+4);
1.1       root     5792:   }
                   5793:   PC+= 4;
                   5794: }
                   5795: 
                   5796: void cpu_op_776a(t_ipc *ipc) /* LEA */ {
                   5797:   /* mask f1f8, bits 41d0, mnemonic 40, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 2, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
                   5798:   int srcreg = (ipc->opcode >> 0) & 7;
                   5799:   uint32 srcaddr = ADDRREG(srcreg);
                   5800:   int dstreg = (ipc->opcode >> 9) & 7;
                   5801:   uint32 outdata = srcaddr;
                   5802: 
                   5803:   ADDRREG(dstreg) = outdata;
                   5804:   PC+= 2;
                   5805: }
                   5806: 
                   5807: void cpu_op_777a(t_ipc *ipc) /* LEA */ {
                   5808:   /* mask f1f8, bits 41e8, mnemonic 40, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 5, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
                   5809:   int srcreg = (ipc->opcode >> 0) & 7;
                   5810:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
                   5811:   int dstreg = (ipc->opcode >> 9) & 7;
                   5812:   uint32 outdata = srcaddr;
                   5813: 
                   5814:   ADDRREG(dstreg) = outdata;
                   5815:   PC+= 4;
                   5816: }
                   5817: 
                   5818: void cpu_op_778a(t_ipc *ipc) /* LEA */ {
                   5819:   /* mask f1f8, bits 41f0, mnemonic 40, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 6, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
                   5820:   int srcreg = (ipc->opcode >> 0) & 7;
                   5821:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
                   5822:   int dstreg = (ipc->opcode >> 9) & 7;
                   5823:   uint32 outdata = srcaddr;
                   5824: 
                   5825:   ADDRREG(dstreg) = outdata;
                   5826:   PC+= 4;
                   5827: }
                   5828: 
                   5829: void cpu_op_779a(t_ipc *ipc) /* LEA */ {
                   5830:   /* mask f1ff, bits 41f8, mnemonic 40, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 7, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
                   5831:   uint32 srcaddr = ipc->src;
                   5832:   int dstreg = (ipc->opcode >> 9) & 7;
                   5833:   uint32 outdata = srcaddr;
                   5834: 
                   5835:   ADDRREG(dstreg) = outdata;
                   5836:   PC+= 4;
                   5837: }
                   5838: 
                   5839: void cpu_op_780a(t_ipc *ipc) /* LEA */ {
                   5840:   /* mask f1ff, bits 41f9, mnemonic 40, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 8, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
                   5841:   uint32 srcaddr = ipc->src;
                   5842:   int dstreg = (ipc->opcode >> 9) & 7;
                   5843:   uint32 outdata = srcaddr;
                   5844: 
                   5845:   ADDRREG(dstreg) = outdata;
                   5846:   PC+= 6;
                   5847: }
                   5848: 
                   5849: void cpu_op_781a(t_ipc *ipc) /* LEA */ {
                   5850:   /* mask f1ff, bits 41fa, mnemonic 40, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 9, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
                   5851:   uint32 srcaddr = ipc->src;
                   5852:   int dstreg = (ipc->opcode >> 9) & 7;
                   5853:   uint32 outdata = srcaddr;
                   5854: 
                   5855:   ADDRREG(dstreg) = outdata;
                   5856:   PC+= 4;
                   5857: }
                   5858: 
                   5859: void cpu_op_782a(t_ipc *ipc) /* LEA */ {
                   5860:   /* mask f1ff, bits 41fb, mnemonic 40, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 10, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
                   5861:   uint32 srcaddr = idxval_src(ipc);
                   5862:   int dstreg = (ipc->opcode >> 9) & 7;
                   5863:   uint32 outdata = srcaddr;
                   5864: 
                   5865:   ADDRREG(dstreg) = outdata;
                   5866:   PC+= 4;
                   5867: }
                   5868: 

unix.superglobalmegacorp.com

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