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

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)
        !          2956:     reg68k_vector(V_PRIVILEGE, PC+2);
        !          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)
        !          2973:     reg68k_vector(V_PRIVILEGE, PC+2);
        !          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)
        !          2991:     reg68k_vector(V_PRIVILEGE, PC+2);
        !          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)
        !          3009:     reg68k_vector(V_PRIVILEGE, PC+2);
        !          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)
        !          3027:     reg68k_vector(V_PRIVILEGE, PC+2);
        !          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)
        !          3045:     reg68k_vector(V_PRIVILEGE, PC+2);
        !          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)
        !          3063:     reg68k_vector(V_PRIVILEGE, PC+2);
        !          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)
        !          3081:     reg68k_vector(V_PRIVILEGE, PC+2);
        !          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)
        !          3099:     reg68k_vector(V_PRIVILEGE, PC+4);
        !          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)
        !          3117:     reg68k_vector(V_PRIVILEGE, PC+4);
        !          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)
        !          3135:     reg68k_vector(V_PRIVILEGE, PC+4);
        !          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)
        !          3153:     reg68k_vector(V_PRIVILEGE, PC+4);
        !          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)
        !          3170:     reg68k_vector(V_PRIVILEGE, PC+4);
        !          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)
        !          3187:     reg68k_vector(V_PRIVILEGE, PC+4);
        !          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)
        !          3204:     reg68k_vector(V_PRIVILEGE, PC+6);
        !          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)
        !          3221:     reg68k_vector(V_PRIVILEGE, PC+6);
        !          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)
        !          3238:     reg68k_vector(V_PRIVILEGE, PC+4);
        !          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)
        !          3255:     reg68k_vector(V_PRIVILEGE, PC+4);
        !          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)
        !          3272:     reg68k_vector(V_PRIVILEGE, PC+4);
        !          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)
        !          3289:     reg68k_vector(V_PRIVILEGE, PC+4);
        !          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)
        !          3305:     reg68k_vector(V_PRIVILEGE, PC+4);
        !          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)
        !          3321:     reg68k_vector(V_PRIVILEGE, PC+4);
        !          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: 
        !          5169:   reg68k_vector(V_TRAP+srcdata, PC+2);
        !          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)
        !          5201:     reg68k_vector(V_PRIVILEGE, PC+2);
        !          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)
        !          5213:     reg68k_vector(V_PRIVILEGE, PC+2);
        !          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: 
        !          5236:   switch(regs.stop) {
        !          5237:   case 1:
        !          5238:     break;
        !          5239:   case 2:
        !          5240:     PC+= 2;
        !          5241:     break;
        !          5242:   default:
        !          5243:     if (!(SFLAG && (srcdata & 1<<13)))
        !          5244:       reg68k_vector(V_PRIVILEGE, PC+4);
        !          5245:     SR = srcdata;
        !          5246:     STOP = 1;
        !          5247:     printf("STOP @ %%x\n", PC);
        !          5248:     exit(1);
        !          5249:   }
        !          5250:   PC+= 4;
        !          5251: }
        !          5252: 
        !          5253: void cpu_op_746b(t_ipc *ipc) /* STOP */ {
        !          5254:   /* 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 */
        !          5255:   uint16 srcdata = ipc->src;
        !          5256: 
        !          5257:   switch(regs.stop) {
        !          5258:   case 1:
        !          5259:     break;
        !          5260:   case 2:
        !          5261:     PC+= 2;
        !          5262:     break;
        !          5263:   default:
        !          5264:     if (!(SFLAG && (srcdata & 1<<13)))
        !          5265:       reg68k_vector(V_PRIVILEGE, PC+4);
        !          5266:     SR = srcdata;
        !          5267:     STOP = 1;
        !          5268:     printf("STOP @ %%x\n", PC);
        !          5269:     exit(1);
        !          5270:   }
        !          5271:   PC+= 4;
        !          5272: }
        !          5273: 
        !          5274: void cpu_op_747a(t_ipc *ipc) /* RTE */ {
        !          5275:   /* 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 */
        !          5276:   if (!SFLAG)
        !          5277:     reg68k_vector(V_PRIVILEGE, PC+2);
        !          5278: 
        !          5279:   SR = fetchword(ADDRREG(7));
        !          5280:   PC = fetchlong(ADDRREG(7)+2);
        !          5281:   ADDRREG(7)+= 6;
        !          5282:   if (!reg68k_sr.sr_struct.s) {
        !          5283:     /* mode change, swap SP and A7 */
        !          5284:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
        !          5285:   }
        !          5286: }
        !          5287: 
        !          5288: void cpu_op_747b(t_ipc *ipc) /* RTE */ {
        !          5289:   /* 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 */
        !          5290:   if (!SFLAG)
        !          5291:     reg68k_vector(V_PRIVILEGE, PC+2);
        !          5292: 
        !          5293:   SR = fetchword(ADDRREG(7));
        !          5294:   PC = fetchlong(ADDRREG(7)+2);
        !          5295:   ADDRREG(7)+= 6;
        !          5296:   if (!reg68k_sr.sr_struct.s) {
        !          5297:     /* mode change, swap SP and A7 */
        !          5298:     ADDRREG(7)^= SP; SP^= ADDRREG(7); ADDRREG(7)^= SP;
        !          5299:   }
        !          5300: }
        !          5301: 
        !          5302: void cpu_op_748a(t_ipc *ipc) /* RTS */ {
        !          5303:   /* 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 */
        !          5304:   PC = fetchlong(ADDRREG(7));
        !          5305:   ADDRREG(7)+= 4;
        !          5306: }
        !          5307: 
        !          5308: void cpu_op_749a(t_ipc *ipc) /* TRAPV */ {
        !          5309:   /* 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 */
        !          5310:   if (VFLAG) {
        !          5311:     reg68k_vector(V_TRAPV, PC+2);
        !          5312:   }
        !          5313:   PC+= 2;
        !          5314: }
        !          5315: 
        !          5316: void cpu_op_750a(t_ipc *ipc) /* RTR */ {
        !          5317:   /* 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 */
        !          5318:   SR = (SR & ~0xFF) | (fetchword(ADDRREG(7)) & 0xFF);
        !          5319:   PC = fetchlong(ADDRREG(7)+2);
        !          5320:   ADDRREG(7)+= 6;
        !          5321: }
        !          5322: 
        !          5323: void cpu_op_750b(t_ipc *ipc) /* RTR */ {
        !          5324:   /* 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 */
        !          5325:   SR = (SR & ~0xFF) | (fetchword(ADDRREG(7)) & 0xFF);
        !          5326:   PC = fetchlong(ADDRREG(7)+2);
        !          5327:   ADDRREG(7)+= 6;
        !          5328: }
        !          5329: 
        !          5330: void cpu_op_751a(t_ipc *ipc) /* JSR */ {
        !          5331:   /* 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 */
        !          5332:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5333:   uint32 srcaddr = ADDRREG(srcreg);
        !          5334: 
        !          5335:   ADDRREG(7)-= 4;
        !          5336:   storelong(ADDRREG(7), PC+2);
        !          5337:   PC = srcaddr;
        !          5338: }
        !          5339: 
        !          5340: void cpu_op_752a(t_ipc *ipc) /* JSR */ {
        !          5341:   /* 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 */
        !          5342:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5343:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          5344: 
        !          5345:   ADDRREG(7)-= 4;
        !          5346:   storelong(ADDRREG(7), PC+4);
        !          5347:   PC = srcaddr;
        !          5348: }
        !          5349: 
        !          5350: void cpu_op_753a(t_ipc *ipc) /* JSR */ {
        !          5351:   /* 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 */
        !          5352:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5353:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          5354: 
        !          5355:   ADDRREG(7)-= 4;
        !          5356:   storelong(ADDRREG(7), PC+4);
        !          5357:   PC = srcaddr;
        !          5358: }
        !          5359: 
        !          5360: void cpu_op_754a(t_ipc *ipc) /* JSR */ {
        !          5361:   /* 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 */
        !          5362:   uint32 srcaddr = ipc->src;
        !          5363: 
        !          5364:   ADDRREG(7)-= 4;
        !          5365:   storelong(ADDRREG(7), PC+4);
        !          5366:   PC = srcaddr;
        !          5367: }
        !          5368: 
        !          5369: void cpu_op_755a(t_ipc *ipc) /* JSR */ {
        !          5370:   /* 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 */
        !          5371:   uint32 srcaddr = ipc->src;
        !          5372: 
        !          5373:   ADDRREG(7)-= 4;
        !          5374:   storelong(ADDRREG(7), PC+6);
        !          5375:   PC = srcaddr;
        !          5376: }
        !          5377: 
        !          5378: void cpu_op_756a(t_ipc *ipc) /* JSR */ {
        !          5379:   /* 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 */
        !          5380:   uint32 srcaddr = ipc->src;
        !          5381: 
        !          5382:   ADDRREG(7)-= 4;
        !          5383:   storelong(ADDRREG(7), PC+4);
        !          5384:   PC = srcaddr;
        !          5385: }
        !          5386: 
        !          5387: void cpu_op_757a(t_ipc *ipc) /* JSR */ {
        !          5388:   /* 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 */
        !          5389:   uint32 srcaddr = idxval_src(ipc);
        !          5390: 
        !          5391:   ADDRREG(7)-= 4;
        !          5392:   storelong(ADDRREG(7), PC+4);
        !          5393:   PC = srcaddr;
        !          5394: }
        !          5395: 
        !          5396: void cpu_op_758a(t_ipc *ipc) /* JMP */ {
        !          5397:   /* 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 */
        !          5398:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5399:   uint32 srcaddr = ADDRREG(srcreg);
        !          5400: 
        !          5401:   PC = srcaddr;
        !          5402: }
        !          5403: 
        !          5404: void cpu_op_759a(t_ipc *ipc) /* JMP */ {
        !          5405:   /* 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 */
        !          5406:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5407:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          5408: 
        !          5409:   PC = srcaddr;
        !          5410: }
        !          5411: 
        !          5412: void cpu_op_760a(t_ipc *ipc) /* JMP */ {
        !          5413:   /* 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 */
        !          5414:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5415:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          5416: 
        !          5417:   PC = srcaddr;
        !          5418: }
        !          5419: 
        !          5420: void cpu_op_761a(t_ipc *ipc) /* JMP */ {
        !          5421:   /* 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 */
        !          5422:   uint32 srcaddr = ipc->src;
        !          5423: 
        !          5424:   PC = srcaddr;
        !          5425: }
        !          5426: 
        !          5427: void cpu_op_762a(t_ipc *ipc) /* JMP */ {
        !          5428:   /* 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 */
        !          5429:   uint32 srcaddr = ipc->src;
        !          5430: 
        !          5431:   PC = srcaddr;
        !          5432: }
        !          5433: 
        !          5434: void cpu_op_763a(t_ipc *ipc) /* JMP */ {
        !          5435:   /* 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 */
        !          5436:   uint32 srcaddr = ipc->src;
        !          5437: 
        !          5438:   PC = srcaddr;
        !          5439: }
        !          5440: 
        !          5441: void cpu_op_764a(t_ipc *ipc) /* JMP */ {
        !          5442:   /* 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 */
        !          5443:   uint32 srcaddr = idxval_src(ipc);
        !          5444: 
        !          5445:   PC = srcaddr;
        !          5446: }
        !          5447: 
        !          5448: void cpu_op_765a(t_ipc *ipc) /* CHK */ {
        !          5449:   /* 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 */
        !          5450:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5451:   uint16 srcdata = DATAREG(srcreg);
        !          5452:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5453:   uint16 dstdata = DATAREG(dstreg);
        !          5454: 
        !          5455:   if ((sint16)srcdata < 0) {
        !          5456:     reg68k_vector(V_CHK, PC+2);
        !          5457:   } else if (dstdata > srcdata) {
        !          5458:     reg68k_vector(V_CHK, PC+2);
        !          5459:   }
        !          5460:   PC+= 2;
        !          5461: }
        !          5462: 
        !          5463: void cpu_op_765b(t_ipc *ipc) /* CHK */ {
        !          5464:   /* 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 */
        !          5465:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5466:   uint16 srcdata = DATAREG(srcreg);
        !          5467:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5468:   uint16 dstdata = DATAREG(dstreg);
        !          5469: 
        !          5470:   if ((sint16)srcdata < 0) {
        !          5471:     NFLAG = 1;
        !          5472:     reg68k_vector(V_CHK, PC+2);
        !          5473:   } else if (dstdata > srcdata) {
        !          5474:     NFLAG = 0;
        !          5475:     reg68k_vector(V_CHK, PC+2);
        !          5476:   }
        !          5477:   PC+= 2;
        !          5478: }
        !          5479: 
        !          5480: void cpu_op_766a(t_ipc *ipc) /* CHK */ {
        !          5481:   /* 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 */
        !          5482:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5483:   uint32 srcaddr = ADDRREG(srcreg);
        !          5484:   uint16 srcdata = fetchword(srcaddr);
        !          5485:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5486:   uint16 dstdata = DATAREG(dstreg);
        !          5487: 
        !          5488:   if ((sint16)srcdata < 0) {
        !          5489:     reg68k_vector(V_CHK, PC+2);
        !          5490:   } else if (dstdata > srcdata) {
        !          5491:     reg68k_vector(V_CHK, PC+2);
        !          5492:   }
        !          5493:   PC+= 2;
        !          5494: }
        !          5495: 
        !          5496: void cpu_op_766b(t_ipc *ipc) /* CHK */ {
        !          5497:   /* 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 */
        !          5498:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5499:   uint32 srcaddr = ADDRREG(srcreg);
        !          5500:   uint16 srcdata = fetchword(srcaddr);
        !          5501:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5502:   uint16 dstdata = DATAREG(dstreg);
        !          5503: 
        !          5504:   if ((sint16)srcdata < 0) {
        !          5505:     NFLAG = 1;
        !          5506:     reg68k_vector(V_CHK, PC+2);
        !          5507:   } else if (dstdata > srcdata) {
        !          5508:     NFLAG = 0;
        !          5509:     reg68k_vector(V_CHK, PC+2);
        !          5510:   }
        !          5511:   PC+= 2;
        !          5512: }
        !          5513: 
        !          5514: void cpu_op_767a(t_ipc *ipc) /* CHK */ {
        !          5515:   /* 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 */
        !          5516:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5517:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
        !          5518:   uint16 srcdata = fetchword(srcaddr);
        !          5519:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5520:   uint16 dstdata = DATAREG(dstreg);
        !          5521: 
        !          5522:   if ((sint16)srcdata < 0) {
        !          5523:     reg68k_vector(V_CHK, PC+2);
        !          5524:   } else if (dstdata > srcdata) {
        !          5525:     reg68k_vector(V_CHK, PC+2);
        !          5526:   }
        !          5527:   PC+= 2;
        !          5528: }
        !          5529: 
        !          5530: void cpu_op_767b(t_ipc *ipc) /* CHK */ {
        !          5531:   /* 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 */
        !          5532:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5533:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
        !          5534:   uint16 srcdata = fetchword(srcaddr);
        !          5535:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5536:   uint16 dstdata = DATAREG(dstreg);
        !          5537: 
        !          5538:   if ((sint16)srcdata < 0) {
        !          5539:     NFLAG = 1;
        !          5540:     reg68k_vector(V_CHK, PC+2);
        !          5541:   } else if (dstdata > srcdata) {
        !          5542:     NFLAG = 0;
        !          5543:     reg68k_vector(V_CHK, PC+2);
        !          5544:   }
        !          5545:   PC+= 2;
        !          5546: }
        !          5547: 
        !          5548: void cpu_op_768a(t_ipc *ipc) /* CHK */ {
        !          5549:   /* 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 */
        !          5550:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5551:   uint32 srcaddr = ADDRREG(srcreg)-=2;
        !          5552:   uint16 srcdata = fetchword(srcaddr);
        !          5553:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5554:   uint16 dstdata = DATAREG(dstreg);
        !          5555: 
        !          5556:   if ((sint16)srcdata < 0) {
        !          5557:     reg68k_vector(V_CHK, PC+2);
        !          5558:   } else if (dstdata > srcdata) {
        !          5559:     reg68k_vector(V_CHK, PC+2);
        !          5560:   }
        !          5561:   PC+= 2;
        !          5562: }
        !          5563: 
        !          5564: void cpu_op_768b(t_ipc *ipc) /* CHK */ {
        !          5565:   /* 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 */
        !          5566:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5567:   uint32 srcaddr = ADDRREG(srcreg)-=2;
        !          5568:   uint16 srcdata = fetchword(srcaddr);
        !          5569:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5570:   uint16 dstdata = DATAREG(dstreg);
        !          5571: 
        !          5572:   if ((sint16)srcdata < 0) {
        !          5573:     NFLAG = 1;
        !          5574:     reg68k_vector(V_CHK, PC+2);
        !          5575:   } else if (dstdata > srcdata) {
        !          5576:     NFLAG = 0;
        !          5577:     reg68k_vector(V_CHK, PC+2);
        !          5578:   }
        !          5579:   PC+= 2;
        !          5580: }
        !          5581: 
        !          5582: void cpu_op_769a(t_ipc *ipc) /* CHK */ {
        !          5583:   /* 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 */
        !          5584:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5585:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          5586:   uint16 srcdata = fetchword(srcaddr);
        !          5587:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5588:   uint16 dstdata = DATAREG(dstreg);
        !          5589: 
        !          5590:   if ((sint16)srcdata < 0) {
        !          5591:     reg68k_vector(V_CHK, PC+4);
        !          5592:   } else if (dstdata > srcdata) {
        !          5593:     reg68k_vector(V_CHK, PC+4);
        !          5594:   }
        !          5595:   PC+= 4;
        !          5596: }
        !          5597: 
        !          5598: void cpu_op_769b(t_ipc *ipc) /* CHK */ {
        !          5599:   /* 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 */
        !          5600:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5601:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          5602:   uint16 srcdata = fetchword(srcaddr);
        !          5603:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5604:   uint16 dstdata = DATAREG(dstreg);
        !          5605: 
        !          5606:   if ((sint16)srcdata < 0) {
        !          5607:     NFLAG = 1;
        !          5608:     reg68k_vector(V_CHK, PC+4);
        !          5609:   } else if (dstdata > srcdata) {
        !          5610:     NFLAG = 0;
        !          5611:     reg68k_vector(V_CHK, PC+4);
        !          5612:   }
        !          5613:   PC+= 4;
        !          5614: }
        !          5615: 
        !          5616: void cpu_op_770a(t_ipc *ipc) /* CHK */ {
        !          5617:   /* 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 */
        !          5618:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5619:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          5620:   uint16 srcdata = fetchword(srcaddr);
        !          5621:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5622:   uint16 dstdata = DATAREG(dstreg);
        !          5623: 
        !          5624:   if ((sint16)srcdata < 0) {
        !          5625:     reg68k_vector(V_CHK, PC+4);
        !          5626:   } else if (dstdata > srcdata) {
        !          5627:     reg68k_vector(V_CHK, PC+4);
        !          5628:   }
        !          5629:   PC+= 4;
        !          5630: }
        !          5631: 
        !          5632: void cpu_op_770b(t_ipc *ipc) /* CHK */ {
        !          5633:   /* 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 */
        !          5634:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5635:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          5636:   uint16 srcdata = fetchword(srcaddr);
        !          5637:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5638:   uint16 dstdata = DATAREG(dstreg);
        !          5639: 
        !          5640:   if ((sint16)srcdata < 0) {
        !          5641:     NFLAG = 1;
        !          5642:     reg68k_vector(V_CHK, PC+4);
        !          5643:   } else if (dstdata > srcdata) {
        !          5644:     NFLAG = 0;
        !          5645:     reg68k_vector(V_CHK, PC+4);
        !          5646:   }
        !          5647:   PC+= 4;
        !          5648: }
        !          5649: 
        !          5650: void cpu_op_771a(t_ipc *ipc) /* CHK */ {
        !          5651:   /* 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 */
        !          5652:   uint32 srcaddr = ipc->src;
        !          5653:   uint16 srcdata = fetchword(srcaddr);
        !          5654:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5655:   uint16 dstdata = DATAREG(dstreg);
        !          5656: 
        !          5657:   if ((sint16)srcdata < 0) {
        !          5658:     reg68k_vector(V_CHK, PC+4);
        !          5659:   } else if (dstdata > srcdata) {
        !          5660:     reg68k_vector(V_CHK, PC+4);
        !          5661:   }
        !          5662:   PC+= 4;
        !          5663: }
        !          5664: 
        !          5665: void cpu_op_771b(t_ipc *ipc) /* CHK */ {
        !          5666:   /* 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 */
        !          5667:   uint32 srcaddr = ipc->src;
        !          5668:   uint16 srcdata = fetchword(srcaddr);
        !          5669:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5670:   uint16 dstdata = DATAREG(dstreg);
        !          5671: 
        !          5672:   if ((sint16)srcdata < 0) {
        !          5673:     NFLAG = 1;
        !          5674:     reg68k_vector(V_CHK, PC+4);
        !          5675:   } else if (dstdata > srcdata) {
        !          5676:     NFLAG = 0;
        !          5677:     reg68k_vector(V_CHK, PC+4);
        !          5678:   }
        !          5679:   PC+= 4;
        !          5680: }
        !          5681: 
        !          5682: void cpu_op_772a(t_ipc *ipc) /* CHK */ {
        !          5683:   /* 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 */
        !          5684:   uint32 srcaddr = ipc->src;
        !          5685:   uint16 srcdata = fetchword(srcaddr);
        !          5686:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5687:   uint16 dstdata = DATAREG(dstreg);
        !          5688: 
        !          5689:   if ((sint16)srcdata < 0) {
        !          5690:     reg68k_vector(V_CHK, PC+6);
        !          5691:   } else if (dstdata > srcdata) {
        !          5692:     reg68k_vector(V_CHK, PC+6);
        !          5693:   }
        !          5694:   PC+= 6;
        !          5695: }
        !          5696: 
        !          5697: void cpu_op_772b(t_ipc *ipc) /* CHK */ {
        !          5698:   /* 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 */
        !          5699:   uint32 srcaddr = ipc->src;
        !          5700:   uint16 srcdata = fetchword(srcaddr);
        !          5701:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5702:   uint16 dstdata = DATAREG(dstreg);
        !          5703: 
        !          5704:   if ((sint16)srcdata < 0) {
        !          5705:     NFLAG = 1;
        !          5706:     reg68k_vector(V_CHK, PC+6);
        !          5707:   } else if (dstdata > srcdata) {
        !          5708:     NFLAG = 0;
        !          5709:     reg68k_vector(V_CHK, PC+6);
        !          5710:   }
        !          5711:   PC+= 6;
        !          5712: }
        !          5713: 
        !          5714: void cpu_op_773a(t_ipc *ipc) /* CHK */ {
        !          5715:   /* 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 */
        !          5716:   uint32 srcaddr = ipc->src;
        !          5717:   uint16 srcdata = fetchword(srcaddr);
        !          5718:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5719:   uint16 dstdata = DATAREG(dstreg);
        !          5720: 
        !          5721:   if ((sint16)srcdata < 0) {
        !          5722:     reg68k_vector(V_CHK, PC+4);
        !          5723:   } else if (dstdata > srcdata) {
        !          5724:     reg68k_vector(V_CHK, PC+4);
        !          5725:   }
        !          5726:   PC+= 4;
        !          5727: }
        !          5728: 
        !          5729: void cpu_op_773b(t_ipc *ipc) /* CHK */ {
        !          5730:   /* 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 */
        !          5731:   uint32 srcaddr = ipc->src;
        !          5732:   uint16 srcdata = fetchword(srcaddr);
        !          5733:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5734:   uint16 dstdata = DATAREG(dstreg);
        !          5735: 
        !          5736:   if ((sint16)srcdata < 0) {
        !          5737:     NFLAG = 1;
        !          5738:     reg68k_vector(V_CHK, PC+4);
        !          5739:   } else if (dstdata > srcdata) {
        !          5740:     NFLAG = 0;
        !          5741:     reg68k_vector(V_CHK, PC+4);
        !          5742:   }
        !          5743:   PC+= 4;
        !          5744: }
        !          5745: 
        !          5746: void cpu_op_774a(t_ipc *ipc) /* CHK */ {
        !          5747:   /* 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 */
        !          5748:   uint32 srcaddr = idxval_src(ipc);
        !          5749:   uint16 srcdata = fetchword(srcaddr);
        !          5750:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5751:   uint16 dstdata = DATAREG(dstreg);
        !          5752: 
        !          5753:   if ((sint16)srcdata < 0) {
        !          5754:     reg68k_vector(V_CHK, PC+4);
        !          5755:   } else if (dstdata > srcdata) {
        !          5756:     reg68k_vector(V_CHK, PC+4);
        !          5757:   }
        !          5758:   PC+= 4;
        !          5759: }
        !          5760: 
        !          5761: void cpu_op_774b(t_ipc *ipc) /* CHK */ {
        !          5762:   /* 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 */
        !          5763:   uint32 srcaddr = idxval_src(ipc);
        !          5764:   uint16 srcdata = fetchword(srcaddr);
        !          5765:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5766:   uint16 dstdata = DATAREG(dstreg);
        !          5767: 
        !          5768:   if ((sint16)srcdata < 0) {
        !          5769:     NFLAG = 1;
        !          5770:     reg68k_vector(V_CHK, PC+4);
        !          5771:   } else if (dstdata > srcdata) {
        !          5772:     NFLAG = 0;
        !          5773:     reg68k_vector(V_CHK, PC+4);
        !          5774:   }
        !          5775:   PC+= 4;
        !          5776: }
        !          5777: 
        !          5778: void cpu_op_775a(t_ipc *ipc) /* CHK */ {
        !          5779:   /* 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 */
        !          5780:   uint16 srcdata = ipc->src;
        !          5781:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5782:   uint16 dstdata = DATAREG(dstreg);
        !          5783: 
        !          5784:   if ((sint16)srcdata < 0) {
        !          5785:     reg68k_vector(V_CHK, PC+4);
        !          5786:   } else if (dstdata > srcdata) {
        !          5787:     reg68k_vector(V_CHK, PC+4);
        !          5788:   }
        !          5789:   PC+= 4;
        !          5790: }
        !          5791: 
        !          5792: void cpu_op_775b(t_ipc *ipc) /* CHK */ {
        !          5793:   /* 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 */
        !          5794:   uint16 srcdata = ipc->src;
        !          5795:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5796:   uint16 dstdata = DATAREG(dstreg);
        !          5797: 
        !          5798:   if ((sint16)srcdata < 0) {
        !          5799:     NFLAG = 1;
        !          5800:     reg68k_vector(V_CHK, PC+4);
        !          5801:   } else if (dstdata > srcdata) {
        !          5802:     NFLAG = 0;
        !          5803:     reg68k_vector(V_CHK, PC+4);
        !          5804:   }
        !          5805:   PC+= 4;
        !          5806: }
        !          5807: 
        !          5808: void cpu_op_776a(t_ipc *ipc) /* LEA */ {
        !          5809:   /* 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 */
        !          5810:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5811:   uint32 srcaddr = ADDRREG(srcreg);
        !          5812:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5813:   uint32 outdata = srcaddr;
        !          5814: 
        !          5815:   ADDRREG(dstreg) = outdata;
        !          5816:   PC+= 2;
        !          5817: }
        !          5818: 
        !          5819: void cpu_op_777a(t_ipc *ipc) /* LEA */ {
        !          5820:   /* 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 */
        !          5821:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5822:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          5823:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5824:   uint32 outdata = srcaddr;
        !          5825: 
        !          5826:   ADDRREG(dstreg) = outdata;
        !          5827:   PC+= 4;
        !          5828: }
        !          5829: 
        !          5830: void cpu_op_778a(t_ipc *ipc) /* LEA */ {
        !          5831:   /* 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 */
        !          5832:   int srcreg = (ipc->opcode >> 0) & 7;
        !          5833:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          5834:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5835:   uint32 outdata = srcaddr;
        !          5836: 
        !          5837:   ADDRREG(dstreg) = outdata;
        !          5838:   PC+= 4;
        !          5839: }
        !          5840: 
        !          5841: void cpu_op_779a(t_ipc *ipc) /* LEA */ {
        !          5842:   /* 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 */
        !          5843:   uint32 srcaddr = ipc->src;
        !          5844:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5845:   uint32 outdata = srcaddr;
        !          5846: 
        !          5847:   ADDRREG(dstreg) = outdata;
        !          5848:   PC+= 4;
        !          5849: }
        !          5850: 
        !          5851: void cpu_op_780a(t_ipc *ipc) /* LEA */ {
        !          5852:   /* 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 */
        !          5853:   uint32 srcaddr = ipc->src;
        !          5854:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5855:   uint32 outdata = srcaddr;
        !          5856: 
        !          5857:   ADDRREG(dstreg) = outdata;
        !          5858:   PC+= 6;
        !          5859: }
        !          5860: 
        !          5861: void cpu_op_781a(t_ipc *ipc) /* LEA */ {
        !          5862:   /* 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 */
        !          5863:   uint32 srcaddr = ipc->src;
        !          5864:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5865:   uint32 outdata = srcaddr;
        !          5866: 
        !          5867:   ADDRREG(dstreg) = outdata;
        !          5868:   PC+= 4;
        !          5869: }
        !          5870: 
        !          5871: void cpu_op_782a(t_ipc *ipc) /* LEA */ {
        !          5872:   /* 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 */
        !          5873:   uint32 srcaddr = idxval_src(ipc);
        !          5874:   int dstreg = (ipc->opcode >> 9) & 7;
        !          5875:   uint32 outdata = srcaddr;
        !          5876: 
        !          5877:   ADDRREG(dstreg) = outdata;
        !          5878:   PC+= 4;
        !          5879: }
        !          5880: 

unix.superglobalmegacorp.com

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