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

1.1     ! root        1: /*****************************************************************************/
        !             2: /*     Generator - Sega Genesis emulation - (c) James Ponder 1997-1998       */
        !             3: /*****************************************************************************/
        !             4: /*                                                                           */
        !             5: /* cpu68k-5.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_783a(t_ipc *ipc) /* ADD */ {
        !            19:   /* mask f1f8, bits 5000, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !            20:   unsigned int srcdata = ipc->src;
        !            21:   int dstreg = (ipc->opcode >> 0) & 7;
        !            22:   uint8 dstdata = DATAREG(dstreg);
        !            23:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !            24: 
        !            25:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
        !            26:   PC+= 2;
        !            27: }
        !            28: 
        !            29: void cpu_op_783b(t_ipc *ipc) /* ADD */ {
        !            30:   /* mask f1f8, bits 5000, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !            31:   unsigned int srcdata = ipc->src;
        !            32:   int dstreg = (ipc->opcode >> 0) & 7;
        !            33:   uint8 dstdata = DATAREG(dstreg);
        !            34:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !            35: 
        !            36:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
        !            37: 
        !            38:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !            39:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !            40:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !            41:   NFLAG = ((sint8)outdata) < 0;
        !            42:   ZFLAG = !outdata;
        !            43:   PC+= 2;
        !            44: }
        !            45: 
        !            46: void cpu_op_784a(t_ipc *ipc) /* ADD */ {
        !            47:   /* mask f1f8, bits 5010, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !            48:   unsigned int srcdata = ipc->src;
        !            49:   int dstreg = (ipc->opcode >> 0) & 7;
        !            50:   uint32 dstaddr = ADDRREG(dstreg);
        !            51:   uint8 dstdata = fetchbyte(dstaddr);
        !            52:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !            53: 
        !            54:   storebyte(dstaddr, outdata);
        !            55:   PC+= 2;
        !            56: }
        !            57: 
        !            58: void cpu_op_784b(t_ipc *ipc) /* ADD */ {
        !            59:   /* mask f1f8, bits 5010, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !            60:   unsigned int srcdata = ipc->src;
        !            61:   int dstreg = (ipc->opcode >> 0) & 7;
        !            62:   uint32 dstaddr = ADDRREG(dstreg);
        !            63:   uint8 dstdata = fetchbyte(dstaddr);
        !            64:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !            65: 
        !            66:   storebyte(dstaddr, outdata);
        !            67: 
        !            68:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !            69:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !            70:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !            71:   NFLAG = ((sint8)outdata) < 0;
        !            72:   ZFLAG = !outdata;
        !            73:   PC+= 2;
        !            74: }
        !            75: 
        !            76: void cpu_op_785a(t_ipc *ipc) /* ADD */ {
        !            77:   /* mask f1f8, bits 5018, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !            78:   unsigned int srcdata = ipc->src;
        !            79:   int dstreg = (ipc->opcode >> 0) & 7;
        !            80:   uint32 dstaddr = ADDRREG(dstreg);
        !            81:   uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
        !            82:   uint8 dstdata = fetchbyte(dstaddr);
        !            83:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !            84: 
        !            85:   storebyte(dstaddr, outdata);
        !            86:   PC+= 2;
        !            87: }
        !            88: 
        !            89: void cpu_op_785b(t_ipc *ipc) /* ADD */ {
        !            90:   /* mask f1f8, bits 5018, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !            91:   unsigned int srcdata = ipc->src;
        !            92:   int dstreg = (ipc->opcode >> 0) & 7;
        !            93:   uint32 dstaddr = ADDRREG(dstreg);
        !            94:   uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
        !            95:   uint8 dstdata = fetchbyte(dstaddr);
        !            96:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !            97: 
        !            98:   storebyte(dstaddr, outdata);
        !            99: 
        !           100:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !           101:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           102:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !           103:   NFLAG = ((sint8)outdata) < 0;
        !           104:   ZFLAG = !outdata;
        !           105:   PC+= 2;
        !           106: }
        !           107: 
        !           108: void cpu_op_786a(t_ipc *ipc) /* ADD */ {
        !           109:   /* mask f1f8, bits 5020, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !           110:   unsigned int srcdata = ipc->src;
        !           111:   int dstreg = (ipc->opcode >> 0) & 7;
        !           112:   uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
        !           113:   uint8 dstdata = fetchbyte(dstaddr);
        !           114:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !           115: 
        !           116:   storebyte(dstaddr, outdata);
        !           117:   PC+= 2;
        !           118: }
        !           119: 
        !           120: void cpu_op_786b(t_ipc *ipc) /* ADD */ {
        !           121:   /* mask f1f8, bits 5020, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !           122:   unsigned int srcdata = ipc->src;
        !           123:   int dstreg = (ipc->opcode >> 0) & 7;
        !           124:   uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
        !           125:   uint8 dstdata = fetchbyte(dstaddr);
        !           126:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !           127: 
        !           128:   storebyte(dstaddr, outdata);
        !           129: 
        !           130:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !           131:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           132:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !           133:   NFLAG = ((sint8)outdata) < 0;
        !           134:   ZFLAG = !outdata;
        !           135:   PC+= 2;
        !           136: }
        !           137: 
        !           138: void cpu_op_787a(t_ipc *ipc) /* ADD */ {
        !           139:   /* mask f1f8, bits 5028, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !           140:   unsigned int srcdata = ipc->src;
        !           141:   int dstreg = (ipc->opcode >> 0) & 7;
        !           142:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !           143:   uint8 dstdata = fetchbyte(dstaddr);
        !           144:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !           145: 
        !           146:   storebyte(dstaddr, outdata);
        !           147:   PC+= 4;
        !           148: }
        !           149: 
        !           150: void cpu_op_787b(t_ipc *ipc) /* ADD */ {
        !           151:   /* mask f1f8, bits 5028, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !           152:   unsigned int srcdata = ipc->src;
        !           153:   int dstreg = (ipc->opcode >> 0) & 7;
        !           154:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !           155:   uint8 dstdata = fetchbyte(dstaddr);
        !           156:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !           157: 
        !           158:   storebyte(dstaddr, outdata);
        !           159: 
        !           160:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !           161:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           162:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !           163:   NFLAG = ((sint8)outdata) < 0;
        !           164:   ZFLAG = !outdata;
        !           165:   PC+= 4;
        !           166: }
        !           167: 
        !           168: void cpu_op_788a(t_ipc *ipc) /* ADD */ {
        !           169:   /* mask f1f8, bits 5030, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !           170:   unsigned int srcdata = ipc->src;
        !           171:   int dstreg = (ipc->opcode >> 0) & 7;
        !           172:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !           173:   uint8 dstdata = fetchbyte(dstaddr);
        !           174:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !           175: 
        !           176:   storebyte(dstaddr, outdata);
        !           177:   PC+= 4;
        !           178: }
        !           179: 
        !           180: void cpu_op_788b(t_ipc *ipc) /* ADD */ {
        !           181:   /* mask f1f8, bits 5030, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !           182:   unsigned int srcdata = ipc->src;
        !           183:   int dstreg = (ipc->opcode >> 0) & 7;
        !           184:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !           185:   uint8 dstdata = fetchbyte(dstaddr);
        !           186:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !           187: 
        !           188:   storebyte(dstaddr, outdata);
        !           189: 
        !           190:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !           191:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           192:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !           193:   NFLAG = ((sint8)outdata) < 0;
        !           194:   ZFLAG = !outdata;
        !           195:   PC+= 4;
        !           196: }
        !           197: 
        !           198: void cpu_op_789a(t_ipc *ipc) /* ADD */ {
        !           199:   /* mask f1ff, bits 5038, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !           200:   unsigned int srcdata = ipc->src;
        !           201:   uint32 dstaddr = ipc->dst;
        !           202:   uint8 dstdata = fetchbyte(dstaddr);
        !           203:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !           204: 
        !           205:   storebyte(dstaddr, outdata);
        !           206:   PC+= 4;
        !           207: }
        !           208: 
        !           209: void cpu_op_789b(t_ipc *ipc) /* ADD */ {
        !           210:   /* mask f1ff, bits 5038, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !           211:   unsigned int srcdata = ipc->src;
        !           212:   uint32 dstaddr = ipc->dst;
        !           213:   uint8 dstdata = fetchbyte(dstaddr);
        !           214:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !           215: 
        !           216:   storebyte(dstaddr, outdata);
        !           217: 
        !           218:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !           219:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           220:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !           221:   NFLAG = ((sint8)outdata) < 0;
        !           222:   ZFLAG = !outdata;
        !           223:   PC+= 4;
        !           224: }
        !           225: 
        !           226: void cpu_op_790a(t_ipc *ipc) /* ADD */ {
        !           227:   /* mask f1ff, bits 5039, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !           228:   unsigned int srcdata = ipc->src;
        !           229:   uint32 dstaddr = ipc->dst;
        !           230:   uint8 dstdata = fetchbyte(dstaddr);
        !           231:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !           232: 
        !           233:   storebyte(dstaddr, outdata);
        !           234:   PC+= 6;
        !           235: }
        !           236: 
        !           237: void cpu_op_790b(t_ipc *ipc) /* ADD */ {
        !           238:   /* mask f1ff, bits 5039, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !           239:   unsigned int srcdata = ipc->src;
        !           240:   uint32 dstaddr = ipc->dst;
        !           241:   uint8 dstdata = fetchbyte(dstaddr);
        !           242:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !           243: 
        !           244:   storebyte(dstaddr, outdata);
        !           245: 
        !           246:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !           247:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           248:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !           249:   NFLAG = ((sint8)outdata) < 0;
        !           250:   ZFLAG = !outdata;
        !           251:   PC+= 6;
        !           252: }
        !           253: 
        !           254: void cpu_op_791a(t_ipc *ipc) /* ADD */ {
        !           255:   /* mask f1f8, bits 5040, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !           256:   unsigned int srcdata = ipc->src;
        !           257:   int dstreg = (ipc->opcode >> 0) & 7;
        !           258:   uint16 dstdata = DATAREG(dstreg);
        !           259:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           260: 
        !           261:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xffff) | outdata;
        !           262:   PC+= 2;
        !           263: }
        !           264: 
        !           265: void cpu_op_791b(t_ipc *ipc) /* ADD */ {
        !           266:   /* mask f1f8, bits 5040, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !           267:   unsigned int srcdata = ipc->src;
        !           268:   int dstreg = (ipc->opcode >> 0) & 7;
        !           269:   uint16 dstdata = DATAREG(dstreg);
        !           270:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           271: 
        !           272:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xffff) | outdata;
        !           273: 
        !           274:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !           275:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           276:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !           277:   NFLAG = ((sint16)outdata) < 0;
        !           278:   ZFLAG = !outdata;
        !           279:   PC+= 2;
        !           280: }
        !           281: 
        !           282: void cpu_op_792a(t_ipc *ipc) /* ADD */ {
        !           283:   /* mask f1f8, bits 5050, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !           284:   unsigned int srcdata = ipc->src;
        !           285:   int dstreg = (ipc->opcode >> 0) & 7;
        !           286:   uint32 dstaddr = ADDRREG(dstreg);
        !           287:   uint16 dstdata = fetchword(dstaddr);
        !           288:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           289: 
        !           290:   storeword(dstaddr, outdata);
        !           291:   PC+= 2;
        !           292: }
        !           293: 
        !           294: void cpu_op_792b(t_ipc *ipc) /* ADD */ {
        !           295:   /* mask f1f8, bits 5050, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !           296:   unsigned int srcdata = ipc->src;
        !           297:   int dstreg = (ipc->opcode >> 0) & 7;
        !           298:   uint32 dstaddr = ADDRREG(dstreg);
        !           299:   uint16 dstdata = fetchword(dstaddr);
        !           300:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           301: 
        !           302:   storeword(dstaddr, outdata);
        !           303: 
        !           304:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !           305:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           306:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !           307:   NFLAG = ((sint16)outdata) < 0;
        !           308:   ZFLAG = !outdata;
        !           309:   PC+= 2;
        !           310: }
        !           311: 
        !           312: void cpu_op_793a(t_ipc *ipc) /* ADD */ {
        !           313:   /* mask f1f8, bits 5058, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !           314:   unsigned int srcdata = ipc->src;
        !           315:   int dstreg = (ipc->opcode >> 0) & 7;
        !           316:   uint32 dstaddr = (ADDRREG(dstreg)+=2, ADDRREG(dstreg)-2);
        !           317:   uint16 dstdata = fetchword(dstaddr);
        !           318:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           319: 
        !           320:   storeword(dstaddr, outdata);
        !           321:   PC+= 2;
        !           322: }
        !           323: 
        !           324: void cpu_op_793b(t_ipc *ipc) /* ADD */ {
        !           325:   /* mask f1f8, bits 5058, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !           326:   unsigned int srcdata = ipc->src;
        !           327:   int dstreg = (ipc->opcode >> 0) & 7;
        !           328:   uint32 dstaddr = (ADDRREG(dstreg)+=2, ADDRREG(dstreg)-2);
        !           329:   uint16 dstdata = fetchword(dstaddr);
        !           330:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           331: 
        !           332:   storeword(dstaddr, outdata);
        !           333: 
        !           334:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !           335:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           336:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !           337:   NFLAG = ((sint16)outdata) < 0;
        !           338:   ZFLAG = !outdata;
        !           339:   PC+= 2;
        !           340: }
        !           341: 
        !           342: void cpu_op_794a(t_ipc *ipc) /* ADD */ {
        !           343:   /* mask f1f8, bits 5060, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !           344:   unsigned int srcdata = ipc->src;
        !           345:   int dstreg = (ipc->opcode >> 0) & 7;
        !           346:   uint32 dstaddr = ADDRREG(dstreg)-=2;
        !           347:   uint16 dstdata = fetchword(dstaddr);
        !           348:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           349: 
        !           350:   storeword(dstaddr, outdata);
        !           351:   PC+= 2;
        !           352: }
        !           353: 
        !           354: void cpu_op_794b(t_ipc *ipc) /* ADD */ {
        !           355:   /* mask f1f8, bits 5060, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !           356:   unsigned int srcdata = ipc->src;
        !           357:   int dstreg = (ipc->opcode >> 0) & 7;
        !           358:   uint32 dstaddr = ADDRREG(dstreg)-=2;
        !           359:   uint16 dstdata = fetchword(dstaddr);
        !           360:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           361: 
        !           362:   storeword(dstaddr, outdata);
        !           363: 
        !           364:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !           365:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           366:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !           367:   NFLAG = ((sint16)outdata) < 0;
        !           368:   ZFLAG = !outdata;
        !           369:   PC+= 2;
        !           370: }
        !           371: 
        !           372: void cpu_op_795a(t_ipc *ipc) /* ADD */ {
        !           373:   /* mask f1f8, bits 5068, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !           374:   unsigned int srcdata = ipc->src;
        !           375:   int dstreg = (ipc->opcode >> 0) & 7;
        !           376:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !           377:   uint16 dstdata = fetchword(dstaddr);
        !           378:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           379: 
        !           380:   storeword(dstaddr, outdata);
        !           381:   PC+= 4;
        !           382: }
        !           383: 
        !           384: void cpu_op_795b(t_ipc *ipc) /* ADD */ {
        !           385:   /* mask f1f8, bits 5068, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !           386:   unsigned int srcdata = ipc->src;
        !           387:   int dstreg = (ipc->opcode >> 0) & 7;
        !           388:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !           389:   uint16 dstdata = fetchword(dstaddr);
        !           390:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           391: 
        !           392:   storeword(dstaddr, outdata);
        !           393: 
        !           394:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !           395:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           396:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !           397:   NFLAG = ((sint16)outdata) < 0;
        !           398:   ZFLAG = !outdata;
        !           399:   PC+= 4;
        !           400: }
        !           401: 
        !           402: void cpu_op_796a(t_ipc *ipc) /* ADD */ {
        !           403:   /* mask f1f8, bits 5070, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !           404:   unsigned int srcdata = ipc->src;
        !           405:   int dstreg = (ipc->opcode >> 0) & 7;
        !           406:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !           407:   uint16 dstdata = fetchword(dstaddr);
        !           408:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           409: 
        !           410:   storeword(dstaddr, outdata);
        !           411:   PC+= 4;
        !           412: }
        !           413: 
        !           414: void cpu_op_796b(t_ipc *ipc) /* ADD */ {
        !           415:   /* mask f1f8, bits 5070, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !           416:   unsigned int srcdata = ipc->src;
        !           417:   int dstreg = (ipc->opcode >> 0) & 7;
        !           418:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !           419:   uint16 dstdata = fetchword(dstaddr);
        !           420:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           421: 
        !           422:   storeword(dstaddr, outdata);
        !           423: 
        !           424:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !           425:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           426:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !           427:   NFLAG = ((sint16)outdata) < 0;
        !           428:   ZFLAG = !outdata;
        !           429:   PC+= 4;
        !           430: }
        !           431: 
        !           432: void cpu_op_797a(t_ipc *ipc) /* ADD */ {
        !           433:   /* mask f1ff, bits 5078, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !           434:   unsigned int srcdata = ipc->src;
        !           435:   uint32 dstaddr = ipc->dst;
        !           436:   uint16 dstdata = fetchword(dstaddr);
        !           437:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           438: 
        !           439:   storeword(dstaddr, outdata);
        !           440:   PC+= 4;
        !           441: }
        !           442: 
        !           443: void cpu_op_797b(t_ipc *ipc) /* ADD */ {
        !           444:   /* mask f1ff, bits 5078, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !           445:   unsigned int srcdata = ipc->src;
        !           446:   uint32 dstaddr = ipc->dst;
        !           447:   uint16 dstdata = fetchword(dstaddr);
        !           448:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           449: 
        !           450:   storeword(dstaddr, outdata);
        !           451: 
        !           452:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !           453:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           454:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !           455:   NFLAG = ((sint16)outdata) < 0;
        !           456:   ZFLAG = !outdata;
        !           457:   PC+= 4;
        !           458: }
        !           459: 
        !           460: void cpu_op_798a(t_ipc *ipc) /* ADD */ {
        !           461:   /* mask f1ff, bits 5079, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !           462:   unsigned int srcdata = ipc->src;
        !           463:   uint32 dstaddr = ipc->dst;
        !           464:   uint16 dstdata = fetchword(dstaddr);
        !           465:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           466: 
        !           467:   storeword(dstaddr, outdata);
        !           468:   PC+= 6;
        !           469: }
        !           470: 
        !           471: void cpu_op_798b(t_ipc *ipc) /* ADD */ {
        !           472:   /* mask f1ff, bits 5079, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !           473:   unsigned int srcdata = ipc->src;
        !           474:   uint32 dstaddr = ipc->dst;
        !           475:   uint16 dstdata = fetchword(dstaddr);
        !           476:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !           477: 
        !           478:   storeword(dstaddr, outdata);
        !           479: 
        !           480:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !           481:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           482:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !           483:   NFLAG = ((sint16)outdata) < 0;
        !           484:   ZFLAG = !outdata;
        !           485:   PC+= 6;
        !           486: }
        !           487: 
        !           488: void cpu_op_799a(t_ipc *ipc) /* ADD */ {
        !           489:   /* mask f1f8, bits 5080, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !           490:   unsigned int srcdata = ipc->src;
        !           491:   int dstreg = (ipc->opcode >> 0) & 7;
        !           492:   uint32 dstdata = DATAREG(dstreg);
        !           493:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           494: 
        !           495:   DATAREG(dstreg) = outdata;
        !           496:   PC+= 2;
        !           497: }
        !           498: 
        !           499: void cpu_op_799b(t_ipc *ipc) /* ADD */ {
        !           500:   /* mask f1f8, bits 5080, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !           501:   unsigned int srcdata = ipc->src;
        !           502:   int dstreg = (ipc->opcode >> 0) & 7;
        !           503:   uint32 dstdata = DATAREG(dstreg);
        !           504:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           505: 
        !           506:   DATAREG(dstreg) = outdata;
        !           507: 
        !           508:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !           509:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           510:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !           511:   NFLAG = ((sint32)outdata) < 0;
        !           512:   ZFLAG = !outdata;
        !           513:   PC+= 2;
        !           514: }
        !           515: 
        !           516: void cpu_op_800a(t_ipc *ipc) /* ADD */ {
        !           517:   /* mask f1f8, bits 5090, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !           518:   unsigned int srcdata = ipc->src;
        !           519:   int dstreg = (ipc->opcode >> 0) & 7;
        !           520:   uint32 dstaddr = ADDRREG(dstreg);
        !           521:   uint32 dstdata = fetchlong(dstaddr);
        !           522:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           523: 
        !           524:   storelong(dstaddr, outdata);
        !           525:   PC+= 2;
        !           526: }
        !           527: 
        !           528: void cpu_op_800b(t_ipc *ipc) /* ADD */ {
        !           529:   /* mask f1f8, bits 5090, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !           530:   unsigned int srcdata = ipc->src;
        !           531:   int dstreg = (ipc->opcode >> 0) & 7;
        !           532:   uint32 dstaddr = ADDRREG(dstreg);
        !           533:   uint32 dstdata = fetchlong(dstaddr);
        !           534:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           535: 
        !           536:   storelong(dstaddr, outdata);
        !           537: 
        !           538:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !           539:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           540:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !           541:   NFLAG = ((sint32)outdata) < 0;
        !           542:   ZFLAG = !outdata;
        !           543:   PC+= 2;
        !           544: }
        !           545: 
        !           546: void cpu_op_801a(t_ipc *ipc) /* ADD */ {
        !           547:   /* mask f1f8, bits 5098, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !           548:   unsigned int srcdata = ipc->src;
        !           549:   int dstreg = (ipc->opcode >> 0) & 7;
        !           550:   uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
        !           551:   uint32 dstdata = fetchlong(dstaddr);
        !           552:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           553: 
        !           554:   storelong(dstaddr, outdata);
        !           555:   PC+= 2;
        !           556: }
        !           557: 
        !           558: void cpu_op_801b(t_ipc *ipc) /* ADD */ {
        !           559:   /* mask f1f8, bits 5098, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !           560:   unsigned int srcdata = ipc->src;
        !           561:   int dstreg = (ipc->opcode >> 0) & 7;
        !           562:   uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
        !           563:   uint32 dstdata = fetchlong(dstaddr);
        !           564:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           565: 
        !           566:   storelong(dstaddr, outdata);
        !           567: 
        !           568:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !           569:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           570:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !           571:   NFLAG = ((sint32)outdata) < 0;
        !           572:   ZFLAG = !outdata;
        !           573:   PC+= 2;
        !           574: }
        !           575: 
        !           576: void cpu_op_802a(t_ipc *ipc) /* ADD */ {
        !           577:   /* mask f1f8, bits 50a0, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !           578:   unsigned int srcdata = ipc->src;
        !           579:   int dstreg = (ipc->opcode >> 0) & 7;
        !           580:   uint32 dstaddr = ADDRREG(dstreg)-=4;
        !           581:   uint32 dstdata = fetchlong(dstaddr);
        !           582:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           583: 
        !           584:   storelong(dstaddr, outdata);
        !           585:   PC+= 2;
        !           586: }
        !           587: 
        !           588: void cpu_op_802b(t_ipc *ipc) /* ADD */ {
        !           589:   /* mask f1f8, bits 50a0, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !           590:   unsigned int srcdata = ipc->src;
        !           591:   int dstreg = (ipc->opcode >> 0) & 7;
        !           592:   uint32 dstaddr = ADDRREG(dstreg)-=4;
        !           593:   uint32 dstdata = fetchlong(dstaddr);
        !           594:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           595: 
        !           596:   storelong(dstaddr, outdata);
        !           597: 
        !           598:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !           599:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           600:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !           601:   NFLAG = ((sint32)outdata) < 0;
        !           602:   ZFLAG = !outdata;
        !           603:   PC+= 2;
        !           604: }
        !           605: 
        !           606: void cpu_op_803a(t_ipc *ipc) /* ADD */ {
        !           607:   /* mask f1f8, bits 50a8, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !           608:   unsigned int srcdata = ipc->src;
        !           609:   int dstreg = (ipc->opcode >> 0) & 7;
        !           610:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !           611:   uint32 dstdata = fetchlong(dstaddr);
        !           612:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           613: 
        !           614:   storelong(dstaddr, outdata);
        !           615:   PC+= 4;
        !           616: }
        !           617: 
        !           618: void cpu_op_803b(t_ipc *ipc) /* ADD */ {
        !           619:   /* mask f1f8, bits 50a8, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !           620:   unsigned int srcdata = ipc->src;
        !           621:   int dstreg = (ipc->opcode >> 0) & 7;
        !           622:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !           623:   uint32 dstdata = fetchlong(dstaddr);
        !           624:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           625: 
        !           626:   storelong(dstaddr, outdata);
        !           627: 
        !           628:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !           629:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           630:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !           631:   NFLAG = ((sint32)outdata) < 0;
        !           632:   ZFLAG = !outdata;
        !           633:   PC+= 4;
        !           634: }
        !           635: 
        !           636: void cpu_op_804a(t_ipc *ipc) /* ADD */ {
        !           637:   /* mask f1f8, bits 50b0, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !           638:   unsigned int srcdata = ipc->src;
        !           639:   int dstreg = (ipc->opcode >> 0) & 7;
        !           640:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !           641:   uint32 dstdata = fetchlong(dstaddr);
        !           642:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           643: 
        !           644:   storelong(dstaddr, outdata);
        !           645:   PC+= 4;
        !           646: }
        !           647: 
        !           648: void cpu_op_804b(t_ipc *ipc) /* ADD */ {
        !           649:   /* mask f1f8, bits 50b0, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !           650:   unsigned int srcdata = ipc->src;
        !           651:   int dstreg = (ipc->opcode >> 0) & 7;
        !           652:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !           653:   uint32 dstdata = fetchlong(dstaddr);
        !           654:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           655: 
        !           656:   storelong(dstaddr, outdata);
        !           657: 
        !           658:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !           659:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           660:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !           661:   NFLAG = ((sint32)outdata) < 0;
        !           662:   ZFLAG = !outdata;
        !           663:   PC+= 4;
        !           664: }
        !           665: 
        !           666: void cpu_op_805a(t_ipc *ipc) /* ADD */ {
        !           667:   /* mask f1ff, bits 50b8, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !           668:   unsigned int srcdata = ipc->src;
        !           669:   uint32 dstaddr = ipc->dst;
        !           670:   uint32 dstdata = fetchlong(dstaddr);
        !           671:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           672: 
        !           673:   storelong(dstaddr, outdata);
        !           674:   PC+= 4;
        !           675: }
        !           676: 
        !           677: void cpu_op_805b(t_ipc *ipc) /* ADD */ {
        !           678:   /* mask f1ff, bits 50b8, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !           679:   unsigned int srcdata = ipc->src;
        !           680:   uint32 dstaddr = ipc->dst;
        !           681:   uint32 dstdata = fetchlong(dstaddr);
        !           682:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           683: 
        !           684:   storelong(dstaddr, outdata);
        !           685: 
        !           686:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !           687:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           688:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !           689:   NFLAG = ((sint32)outdata) < 0;
        !           690:   ZFLAG = !outdata;
        !           691:   PC+= 4;
        !           692: }
        !           693: 
        !           694: void cpu_op_806a(t_ipc *ipc) /* ADD */ {
        !           695:   /* mask f1ff, bits 50b9, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !           696:   unsigned int srcdata = ipc->src;
        !           697:   uint32 dstaddr = ipc->dst;
        !           698:   uint32 dstdata = fetchlong(dstaddr);
        !           699:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           700: 
        !           701:   storelong(dstaddr, outdata);
        !           702:   PC+= 6;
        !           703: }
        !           704: 
        !           705: void cpu_op_806b(t_ipc *ipc) /* ADD */ {
        !           706:   /* mask f1ff, bits 50b9, mnemonic 10, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !           707:   unsigned int srcdata = ipc->src;
        !           708:   uint32 dstaddr = ipc->dst;
        !           709:   uint32 dstdata = fetchlong(dstaddr);
        !           710:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           711: 
        !           712:   storelong(dstaddr, outdata);
        !           713: 
        !           714:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !           715:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           716:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !           717:   NFLAG = ((sint32)outdata) < 0;
        !           718:   ZFLAG = !outdata;
        !           719:   PC+= 6;
        !           720: }
        !           721: 
        !           722: void cpu_op_807a(t_ipc *ipc) /* ADDA */ {
        !           723:   /* mask f1f8, bits 5048, mnemonic 11, priv 0, endblk 0, imm_notzero -1, used 0     set 0, size 2, stype 15, dtype 1, sbitpos 9, dbitpos 0, immvalue 0 */
        !           724:   unsigned int srcdata = ipc->src;
        !           725:   int dstreg = (ipc->opcode >> 0) & 7;
        !           726:   uint32 dstdata = ADDRREG(dstreg);
        !           727:   uint32 outdata = (sint32)dstdata + (sint16)srcdata;
        !           728: 
        !           729:   ADDRREG(dstreg) = outdata;
        !           730:   PC+= 2;
        !           731: }
        !           732: 
        !           733: void cpu_op_808a(t_ipc *ipc) /* ADDA */ {
        !           734:   /* mask f1f8, bits 5088, mnemonic 11, priv 0, endblk 0, imm_notzero -1, used 0     set 0, size 3, stype 15, dtype 1, sbitpos 9, dbitpos 0, immvalue 0 */
        !           735:   unsigned int srcdata = ipc->src;
        !           736:   int dstreg = (ipc->opcode >> 0) & 7;
        !           737:   uint32 dstdata = ADDRREG(dstreg);
        !           738:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !           739: 
        !           740:   ADDRREG(dstreg) = outdata;
        !           741:   PC+= 2;
        !           742: }
        !           743: 
        !           744: void cpu_op_809a(t_ipc *ipc) /* SUB */ {
        !           745:   /* mask f1f8, bits 5100, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !           746:   unsigned int srcdata = ipc->src;
        !           747:   int dstreg = (ipc->opcode >> 0) & 7;
        !           748:   uint8 dstdata = DATAREG(dstreg);
        !           749:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           750: 
        !           751:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
        !           752:   PC+= 2;
        !           753: }
        !           754: 
        !           755: void cpu_op_809b(t_ipc *ipc) /* SUB */ {
        !           756:   /* mask f1f8, bits 5100, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !           757:   unsigned int srcdata = ipc->src;
        !           758:   int dstreg = (ipc->opcode >> 0) & 7;
        !           759:   uint8 dstdata = DATAREG(dstreg);
        !           760:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           761: 
        !           762:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
        !           763: 
        !           764:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           765:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           766:   XFLAG = CFLAG = srcdata > dstdata;
        !           767:   NFLAG = ((sint8)outdata) < 0;
        !           768:   ZFLAG = !outdata;
        !           769:   PC+= 2;
        !           770: }
        !           771: 
        !           772: void cpu_op_810a(t_ipc *ipc) /* SUB */ {
        !           773:   /* mask f1f8, bits 5110, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !           774:   unsigned int srcdata = ipc->src;
        !           775:   int dstreg = (ipc->opcode >> 0) & 7;
        !           776:   uint32 dstaddr = ADDRREG(dstreg);
        !           777:   uint8 dstdata = fetchbyte(dstaddr);
        !           778:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           779: 
        !           780:   storebyte(dstaddr, outdata);
        !           781:   PC+= 2;
        !           782: }
        !           783: 
        !           784: void cpu_op_810b(t_ipc *ipc) /* SUB */ {
        !           785:   /* mask f1f8, bits 5110, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !           786:   unsigned int srcdata = ipc->src;
        !           787:   int dstreg = (ipc->opcode >> 0) & 7;
        !           788:   uint32 dstaddr = ADDRREG(dstreg);
        !           789:   uint8 dstdata = fetchbyte(dstaddr);
        !           790:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           791: 
        !           792:   storebyte(dstaddr, outdata);
        !           793: 
        !           794:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           795:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           796:   XFLAG = CFLAG = srcdata > dstdata;
        !           797:   NFLAG = ((sint8)outdata) < 0;
        !           798:   ZFLAG = !outdata;
        !           799:   PC+= 2;
        !           800: }
        !           801: 
        !           802: void cpu_op_811a(t_ipc *ipc) /* SUB */ {
        !           803:   /* mask f1f8, bits 5118, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !           804:   unsigned int srcdata = ipc->src;
        !           805:   int dstreg = (ipc->opcode >> 0) & 7;
        !           806:   uint32 dstaddr = ADDRREG(dstreg);
        !           807:   uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
        !           808:   uint8 dstdata = fetchbyte(dstaddr);
        !           809:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           810: 
        !           811:   storebyte(dstaddr, outdata);
        !           812:   PC+= 2;
        !           813: }
        !           814: 
        !           815: void cpu_op_811b(t_ipc *ipc) /* SUB */ {
        !           816:   /* mask f1f8, bits 5118, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !           817:   unsigned int srcdata = ipc->src;
        !           818:   int dstreg = (ipc->opcode >> 0) & 7;
        !           819:   uint32 dstaddr = ADDRREG(dstreg);
        !           820:   uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
        !           821:   uint8 dstdata = fetchbyte(dstaddr);
        !           822:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           823: 
        !           824:   storebyte(dstaddr, outdata);
        !           825: 
        !           826:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           827:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           828:   XFLAG = CFLAG = srcdata > dstdata;
        !           829:   NFLAG = ((sint8)outdata) < 0;
        !           830:   ZFLAG = !outdata;
        !           831:   PC+= 2;
        !           832: }
        !           833: 
        !           834: void cpu_op_812a(t_ipc *ipc) /* SUB */ {
        !           835:   /* mask f1f8, bits 5120, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !           836:   unsigned int srcdata = ipc->src;
        !           837:   int dstreg = (ipc->opcode >> 0) & 7;
        !           838:   uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
        !           839:   uint8 dstdata = fetchbyte(dstaddr);
        !           840:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           841: 
        !           842:   storebyte(dstaddr, outdata);
        !           843:   PC+= 2;
        !           844: }
        !           845: 
        !           846: void cpu_op_812b(t_ipc *ipc) /* SUB */ {
        !           847:   /* mask f1f8, bits 5120, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !           848:   unsigned int srcdata = ipc->src;
        !           849:   int dstreg = (ipc->opcode >> 0) & 7;
        !           850:   uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
        !           851:   uint8 dstdata = fetchbyte(dstaddr);
        !           852:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           853: 
        !           854:   storebyte(dstaddr, outdata);
        !           855: 
        !           856:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           857:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           858:   XFLAG = CFLAG = srcdata > dstdata;
        !           859:   NFLAG = ((sint8)outdata) < 0;
        !           860:   ZFLAG = !outdata;
        !           861:   PC+= 2;
        !           862: }
        !           863: 
        !           864: void cpu_op_813a(t_ipc *ipc) /* SUB */ {
        !           865:   /* mask f1f8, bits 5128, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !           866:   unsigned int srcdata = ipc->src;
        !           867:   int dstreg = (ipc->opcode >> 0) & 7;
        !           868:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !           869:   uint8 dstdata = fetchbyte(dstaddr);
        !           870:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           871: 
        !           872:   storebyte(dstaddr, outdata);
        !           873:   PC+= 4;
        !           874: }
        !           875: 
        !           876: void cpu_op_813b(t_ipc *ipc) /* SUB */ {
        !           877:   /* mask f1f8, bits 5128, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !           878:   unsigned int srcdata = ipc->src;
        !           879:   int dstreg = (ipc->opcode >> 0) & 7;
        !           880:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !           881:   uint8 dstdata = fetchbyte(dstaddr);
        !           882:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           883: 
        !           884:   storebyte(dstaddr, outdata);
        !           885: 
        !           886:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           887:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           888:   XFLAG = CFLAG = srcdata > dstdata;
        !           889:   NFLAG = ((sint8)outdata) < 0;
        !           890:   ZFLAG = !outdata;
        !           891:   PC+= 4;
        !           892: }
        !           893: 
        !           894: void cpu_op_814a(t_ipc *ipc) /* SUB */ {
        !           895:   /* mask f1f8, bits 5130, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !           896:   unsigned int srcdata = ipc->src;
        !           897:   int dstreg = (ipc->opcode >> 0) & 7;
        !           898:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !           899:   uint8 dstdata = fetchbyte(dstaddr);
        !           900:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           901: 
        !           902:   storebyte(dstaddr, outdata);
        !           903:   PC+= 4;
        !           904: }
        !           905: 
        !           906: void cpu_op_814b(t_ipc *ipc) /* SUB */ {
        !           907:   /* mask f1f8, bits 5130, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !           908:   unsigned int srcdata = ipc->src;
        !           909:   int dstreg = (ipc->opcode >> 0) & 7;
        !           910:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !           911:   uint8 dstdata = fetchbyte(dstaddr);
        !           912:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           913: 
        !           914:   storebyte(dstaddr, outdata);
        !           915: 
        !           916:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           917:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           918:   XFLAG = CFLAG = srcdata > dstdata;
        !           919:   NFLAG = ((sint8)outdata) < 0;
        !           920:   ZFLAG = !outdata;
        !           921:   PC+= 4;
        !           922: }
        !           923: 
        !           924: void cpu_op_815a(t_ipc *ipc) /* SUB */ {
        !           925:   /* mask f1ff, bits 5138, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !           926:   unsigned int srcdata = ipc->src;
        !           927:   uint32 dstaddr = ipc->dst;
        !           928:   uint8 dstdata = fetchbyte(dstaddr);
        !           929:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           930: 
        !           931:   storebyte(dstaddr, outdata);
        !           932:   PC+= 4;
        !           933: }
        !           934: 
        !           935: void cpu_op_815b(t_ipc *ipc) /* SUB */ {
        !           936:   /* mask f1ff, bits 5138, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !           937:   unsigned int srcdata = ipc->src;
        !           938:   uint32 dstaddr = ipc->dst;
        !           939:   uint8 dstdata = fetchbyte(dstaddr);
        !           940:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           941: 
        !           942:   storebyte(dstaddr, outdata);
        !           943: 
        !           944:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           945:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           946:   XFLAG = CFLAG = srcdata > dstdata;
        !           947:   NFLAG = ((sint8)outdata) < 0;
        !           948:   ZFLAG = !outdata;
        !           949:   PC+= 4;
        !           950: }
        !           951: 
        !           952: void cpu_op_816a(t_ipc *ipc) /* SUB */ {
        !           953:   /* mask f1ff, bits 5139, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !           954:   unsigned int srcdata = ipc->src;
        !           955:   uint32 dstaddr = ipc->dst;
        !           956:   uint8 dstdata = fetchbyte(dstaddr);
        !           957:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           958: 
        !           959:   storebyte(dstaddr, outdata);
        !           960:   PC+= 6;
        !           961: }
        !           962: 
        !           963: void cpu_op_816b(t_ipc *ipc) /* SUB */ {
        !           964:   /* mask f1ff, bits 5139, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 1, stype 15, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !           965:   unsigned int srcdata = ipc->src;
        !           966:   uint32 dstaddr = ipc->dst;
        !           967:   uint8 dstdata = fetchbyte(dstaddr);
        !           968:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           969: 
        !           970:   storebyte(dstaddr, outdata);
        !           971: 
        !           972:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           973:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           974:   XFLAG = CFLAG = srcdata > dstdata;
        !           975:   NFLAG = ((sint8)outdata) < 0;
        !           976:   ZFLAG = !outdata;
        !           977:   PC+= 6;
        !           978: }
        !           979: 
        !           980: void cpu_op_817a(t_ipc *ipc) /* SUB */ {
        !           981:   /* mask f1f8, bits 5140, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !           982:   unsigned int srcdata = ipc->src;
        !           983:   int dstreg = (ipc->opcode >> 0) & 7;
        !           984:   uint16 dstdata = DATAREG(dstreg);
        !           985:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           986: 
        !           987:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xffff) | outdata;
        !           988:   PC+= 2;
        !           989: }
        !           990: 
        !           991: void cpu_op_817b(t_ipc *ipc) /* SUB */ {
        !           992:   /* mask f1f8, bits 5140, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !           993:   unsigned int srcdata = ipc->src;
        !           994:   int dstreg = (ipc->opcode >> 0) & 7;
        !           995:   uint16 dstdata = DATAREG(dstreg);
        !           996:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           997: 
        !           998:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xffff) | outdata;
        !           999: 
        !          1000:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          1001:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1002:   XFLAG = CFLAG = srcdata > dstdata;
        !          1003:   NFLAG = ((sint16)outdata) < 0;
        !          1004:   ZFLAG = !outdata;
        !          1005:   PC+= 2;
        !          1006: }
        !          1007: 
        !          1008: void cpu_op_818a(t_ipc *ipc) /* SUB */ {
        !          1009:   /* mask f1f8, bits 5150, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1010:   unsigned int srcdata = ipc->src;
        !          1011:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1012:   uint32 dstaddr = ADDRREG(dstreg);
        !          1013:   uint16 dstdata = fetchword(dstaddr);
        !          1014:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          1015: 
        !          1016:   storeword(dstaddr, outdata);
        !          1017:   PC+= 2;
        !          1018: }
        !          1019: 
        !          1020: void cpu_op_818b(t_ipc *ipc) /* SUB */ {
        !          1021:   /* mask f1f8, bits 5150, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1022:   unsigned int srcdata = ipc->src;
        !          1023:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1024:   uint32 dstaddr = ADDRREG(dstreg);
        !          1025:   uint16 dstdata = fetchword(dstaddr);
        !          1026:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          1027: 
        !          1028:   storeword(dstaddr, outdata);
        !          1029: 
        !          1030:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          1031:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1032:   XFLAG = CFLAG = srcdata > dstdata;
        !          1033:   NFLAG = ((sint16)outdata) < 0;
        !          1034:   ZFLAG = !outdata;
        !          1035:   PC+= 2;
        !          1036: }
        !          1037: 
        !          1038: void cpu_op_819a(t_ipc *ipc) /* SUB */ {
        !          1039:   /* mask f1f8, bits 5158, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1040:   unsigned int srcdata = ipc->src;
        !          1041:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1042:   uint32 dstaddr = (ADDRREG(dstreg)+=2, ADDRREG(dstreg)-2);
        !          1043:   uint16 dstdata = fetchword(dstaddr);
        !          1044:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          1045: 
        !          1046:   storeword(dstaddr, outdata);
        !          1047:   PC+= 2;
        !          1048: }
        !          1049: 
        !          1050: void cpu_op_819b(t_ipc *ipc) /* SUB */ {
        !          1051:   /* mask f1f8, bits 5158, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1052:   unsigned int srcdata = ipc->src;
        !          1053:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1054:   uint32 dstaddr = (ADDRREG(dstreg)+=2, ADDRREG(dstreg)-2);
        !          1055:   uint16 dstdata = fetchword(dstaddr);
        !          1056:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          1057: 
        !          1058:   storeword(dstaddr, outdata);
        !          1059: 
        !          1060:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          1061:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1062:   XFLAG = CFLAG = srcdata > dstdata;
        !          1063:   NFLAG = ((sint16)outdata) < 0;
        !          1064:   ZFLAG = !outdata;
        !          1065:   PC+= 2;
        !          1066: }
        !          1067: 
        !          1068: void cpu_op_820a(t_ipc *ipc) /* SUB */ {
        !          1069:   /* mask f1f8, bits 5160, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1070:   unsigned int srcdata = ipc->src;
        !          1071:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1072:   uint32 dstaddr = ADDRREG(dstreg)-=2;
        !          1073:   uint16 dstdata = fetchword(dstaddr);
        !          1074:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          1075: 
        !          1076:   storeword(dstaddr, outdata);
        !          1077:   PC+= 2;
        !          1078: }
        !          1079: 
        !          1080: void cpu_op_820b(t_ipc *ipc) /* SUB */ {
        !          1081:   /* mask f1f8, bits 5160, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1082:   unsigned int srcdata = ipc->src;
        !          1083:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1084:   uint32 dstaddr = ADDRREG(dstreg)-=2;
        !          1085:   uint16 dstdata = fetchword(dstaddr);
        !          1086:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          1087: 
        !          1088:   storeword(dstaddr, outdata);
        !          1089: 
        !          1090:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          1091:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1092:   XFLAG = CFLAG = srcdata > dstdata;
        !          1093:   NFLAG = ((sint16)outdata) < 0;
        !          1094:   ZFLAG = !outdata;
        !          1095:   PC+= 2;
        !          1096: }
        !          1097: 
        !          1098: void cpu_op_821a(t_ipc *ipc) /* SUB */ {
        !          1099:   /* mask f1f8, bits 5168, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1100:   unsigned int srcdata = ipc->src;
        !          1101:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1102:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          1103:   uint16 dstdata = fetchword(dstaddr);
        !          1104:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          1105: 
        !          1106:   storeword(dstaddr, outdata);
        !          1107:   PC+= 4;
        !          1108: }
        !          1109: 
        !          1110: void cpu_op_821b(t_ipc *ipc) /* SUB */ {
        !          1111:   /* mask f1f8, bits 5168, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1112:   unsigned int srcdata = ipc->src;
        !          1113:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1114:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          1115:   uint16 dstdata = fetchword(dstaddr);
        !          1116:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          1117: 
        !          1118:   storeword(dstaddr, outdata);
        !          1119: 
        !          1120:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          1121:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1122:   XFLAG = CFLAG = srcdata > dstdata;
        !          1123:   NFLAG = ((sint16)outdata) < 0;
        !          1124:   ZFLAG = !outdata;
        !          1125:   PC+= 4;
        !          1126: }
        !          1127: 
        !          1128: void cpu_op_822a(t_ipc *ipc) /* SUB */ {
        !          1129:   /* mask f1f8, bits 5170, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1130:   unsigned int srcdata = ipc->src;
        !          1131:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1132:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          1133:   uint16 dstdata = fetchword(dstaddr);
        !          1134:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          1135: 
        !          1136:   storeword(dstaddr, outdata);
        !          1137:   PC+= 4;
        !          1138: }
        !          1139: 
        !          1140: void cpu_op_822b(t_ipc *ipc) /* SUB */ {
        !          1141:   /* mask f1f8, bits 5170, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1142:   unsigned int srcdata = ipc->src;
        !          1143:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1144:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          1145:   uint16 dstdata = fetchword(dstaddr);
        !          1146:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          1147: 
        !          1148:   storeword(dstaddr, outdata);
        !          1149: 
        !          1150:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          1151:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1152:   XFLAG = CFLAG = srcdata > dstdata;
        !          1153:   NFLAG = ((sint16)outdata) < 0;
        !          1154:   ZFLAG = !outdata;
        !          1155:   PC+= 4;
        !          1156: }
        !          1157: 
        !          1158: void cpu_op_823a(t_ipc *ipc) /* SUB */ {
        !          1159:   /* mask f1ff, bits 5178, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1160:   unsigned int srcdata = ipc->src;
        !          1161:   uint32 dstaddr = ipc->dst;
        !          1162:   uint16 dstdata = fetchword(dstaddr);
        !          1163:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          1164: 
        !          1165:   storeword(dstaddr, outdata);
        !          1166:   PC+= 4;
        !          1167: }
        !          1168: 
        !          1169: void cpu_op_823b(t_ipc *ipc) /* SUB */ {
        !          1170:   /* mask f1ff, bits 5178, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1171:   unsigned int srcdata = ipc->src;
        !          1172:   uint32 dstaddr = ipc->dst;
        !          1173:   uint16 dstdata = fetchword(dstaddr);
        !          1174:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          1175: 
        !          1176:   storeword(dstaddr, outdata);
        !          1177: 
        !          1178:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          1179:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1180:   XFLAG = CFLAG = srcdata > dstdata;
        !          1181:   NFLAG = ((sint16)outdata) < 0;
        !          1182:   ZFLAG = !outdata;
        !          1183:   PC+= 4;
        !          1184: }
        !          1185: 
        !          1186: void cpu_op_824a(t_ipc *ipc) /* SUB */ {
        !          1187:   /* mask f1ff, bits 5179, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1188:   unsigned int srcdata = ipc->src;
        !          1189:   uint32 dstaddr = ipc->dst;
        !          1190:   uint16 dstdata = fetchword(dstaddr);
        !          1191:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          1192: 
        !          1193:   storeword(dstaddr, outdata);
        !          1194:   PC+= 6;
        !          1195: }
        !          1196: 
        !          1197: void cpu_op_824b(t_ipc *ipc) /* SUB */ {
        !          1198:   /* mask f1ff, bits 5179, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 2, stype 15, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1199:   unsigned int srcdata = ipc->src;
        !          1200:   uint32 dstaddr = ipc->dst;
        !          1201:   uint16 dstdata = fetchword(dstaddr);
        !          1202:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          1203: 
        !          1204:   storeword(dstaddr, outdata);
        !          1205: 
        !          1206:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          1207:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1208:   XFLAG = CFLAG = srcdata > dstdata;
        !          1209:   NFLAG = ((sint16)outdata) < 0;
        !          1210:   ZFLAG = !outdata;
        !          1211:   PC+= 6;
        !          1212: }
        !          1213: 
        !          1214: void cpu_op_825a(t_ipc *ipc) /* SUB */ {
        !          1215:   /* mask f1f8, bits 5180, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1216:   unsigned int srcdata = ipc->src;
        !          1217:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1218:   uint32 dstdata = DATAREG(dstreg);
        !          1219:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1220: 
        !          1221:   DATAREG(dstreg) = outdata;
        !          1222:   PC+= 2;
        !          1223: }
        !          1224: 
        !          1225: void cpu_op_825b(t_ipc *ipc) /* SUB */ {
        !          1226:   /* mask f1f8, bits 5180, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1227:   unsigned int srcdata = ipc->src;
        !          1228:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1229:   uint32 dstdata = DATAREG(dstreg);
        !          1230:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1231: 
        !          1232:   DATAREG(dstreg) = outdata;
        !          1233: 
        !          1234:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1235:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1236:   XFLAG = CFLAG = srcdata > dstdata;
        !          1237:   NFLAG = ((sint32)outdata) < 0;
        !          1238:   ZFLAG = !outdata;
        !          1239:   PC+= 2;
        !          1240: }
        !          1241: 
        !          1242: void cpu_op_826a(t_ipc *ipc) /* SUB */ {
        !          1243:   /* mask f1f8, bits 5190, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1244:   unsigned int srcdata = ipc->src;
        !          1245:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1246:   uint32 dstaddr = ADDRREG(dstreg);
        !          1247:   uint32 dstdata = fetchlong(dstaddr);
        !          1248:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1249: 
        !          1250:   storelong(dstaddr, outdata);
        !          1251:   PC+= 2;
        !          1252: }
        !          1253: 
        !          1254: void cpu_op_826b(t_ipc *ipc) /* SUB */ {
        !          1255:   /* mask f1f8, bits 5190, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1256:   unsigned int srcdata = ipc->src;
        !          1257:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1258:   uint32 dstaddr = ADDRREG(dstreg);
        !          1259:   uint32 dstdata = fetchlong(dstaddr);
        !          1260:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1261: 
        !          1262:   storelong(dstaddr, outdata);
        !          1263: 
        !          1264:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1265:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1266:   XFLAG = CFLAG = srcdata > dstdata;
        !          1267:   NFLAG = ((sint32)outdata) < 0;
        !          1268:   ZFLAG = !outdata;
        !          1269:   PC+= 2;
        !          1270: }
        !          1271: 
        !          1272: void cpu_op_827a(t_ipc *ipc) /* SUB */ {
        !          1273:   /* mask f1f8, bits 5198, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1274:   unsigned int srcdata = ipc->src;
        !          1275:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1276:   uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
        !          1277:   uint32 dstdata = fetchlong(dstaddr);
        !          1278:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1279: 
        !          1280:   storelong(dstaddr, outdata);
        !          1281:   PC+= 2;
        !          1282: }
        !          1283: 
        !          1284: void cpu_op_827b(t_ipc *ipc) /* SUB */ {
        !          1285:   /* mask f1f8, bits 5198, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1286:   unsigned int srcdata = ipc->src;
        !          1287:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1288:   uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
        !          1289:   uint32 dstdata = fetchlong(dstaddr);
        !          1290:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1291: 
        !          1292:   storelong(dstaddr, outdata);
        !          1293: 
        !          1294:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1295:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1296:   XFLAG = CFLAG = srcdata > dstdata;
        !          1297:   NFLAG = ((sint32)outdata) < 0;
        !          1298:   ZFLAG = !outdata;
        !          1299:   PC+= 2;
        !          1300: }
        !          1301: 
        !          1302: void cpu_op_828a(t_ipc *ipc) /* SUB */ {
        !          1303:   /* mask f1f8, bits 51a0, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1304:   unsigned int srcdata = ipc->src;
        !          1305:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1306:   uint32 dstaddr = ADDRREG(dstreg)-=4;
        !          1307:   uint32 dstdata = fetchlong(dstaddr);
        !          1308:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1309: 
        !          1310:   storelong(dstaddr, outdata);
        !          1311:   PC+= 2;
        !          1312: }
        !          1313: 
        !          1314: void cpu_op_828b(t_ipc *ipc) /* SUB */ {
        !          1315:   /* mask f1f8, bits 51a0, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1316:   unsigned int srcdata = ipc->src;
        !          1317:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1318:   uint32 dstaddr = ADDRREG(dstreg)-=4;
        !          1319:   uint32 dstdata = fetchlong(dstaddr);
        !          1320:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1321: 
        !          1322:   storelong(dstaddr, outdata);
        !          1323: 
        !          1324:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1325:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1326:   XFLAG = CFLAG = srcdata > dstdata;
        !          1327:   NFLAG = ((sint32)outdata) < 0;
        !          1328:   ZFLAG = !outdata;
        !          1329:   PC+= 2;
        !          1330: }
        !          1331: 
        !          1332: void cpu_op_829a(t_ipc *ipc) /* SUB */ {
        !          1333:   /* mask f1f8, bits 51a8, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1334:   unsigned int srcdata = ipc->src;
        !          1335:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1336:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          1337:   uint32 dstdata = fetchlong(dstaddr);
        !          1338:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1339: 
        !          1340:   storelong(dstaddr, outdata);
        !          1341:   PC+= 4;
        !          1342: }
        !          1343: 
        !          1344: void cpu_op_829b(t_ipc *ipc) /* SUB */ {
        !          1345:   /* mask f1f8, bits 51a8, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1346:   unsigned int srcdata = ipc->src;
        !          1347:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1348:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          1349:   uint32 dstdata = fetchlong(dstaddr);
        !          1350:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1351: 
        !          1352:   storelong(dstaddr, outdata);
        !          1353: 
        !          1354:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1355:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1356:   XFLAG = CFLAG = srcdata > dstdata;
        !          1357:   NFLAG = ((sint32)outdata) < 0;
        !          1358:   ZFLAG = !outdata;
        !          1359:   PC+= 4;
        !          1360: }
        !          1361: 
        !          1362: void cpu_op_830a(t_ipc *ipc) /* SUB */ {
        !          1363:   /* mask f1f8, bits 51b0, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1364:   unsigned int srcdata = ipc->src;
        !          1365:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1366:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          1367:   uint32 dstdata = fetchlong(dstaddr);
        !          1368:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1369: 
        !          1370:   storelong(dstaddr, outdata);
        !          1371:   PC+= 4;
        !          1372: }
        !          1373: 
        !          1374: void cpu_op_830b(t_ipc *ipc) /* SUB */ {
        !          1375:   /* mask f1f8, bits 51b0, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1376:   unsigned int srcdata = ipc->src;
        !          1377:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1378:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          1379:   uint32 dstdata = fetchlong(dstaddr);
        !          1380:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1381: 
        !          1382:   storelong(dstaddr, outdata);
        !          1383: 
        !          1384:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1385:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1386:   XFLAG = CFLAG = srcdata > dstdata;
        !          1387:   NFLAG = ((sint32)outdata) < 0;
        !          1388:   ZFLAG = !outdata;
        !          1389:   PC+= 4;
        !          1390: }
        !          1391: 
        !          1392: void cpu_op_831a(t_ipc *ipc) /* SUB */ {
        !          1393:   /* mask f1ff, bits 51b8, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1394:   unsigned int srcdata = ipc->src;
        !          1395:   uint32 dstaddr = ipc->dst;
        !          1396:   uint32 dstdata = fetchlong(dstaddr);
        !          1397:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1398: 
        !          1399:   storelong(dstaddr, outdata);
        !          1400:   PC+= 4;
        !          1401: }
        !          1402: 
        !          1403: void cpu_op_831b(t_ipc *ipc) /* SUB */ {
        !          1404:   /* mask f1ff, bits 51b8, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1405:   unsigned int srcdata = ipc->src;
        !          1406:   uint32 dstaddr = ipc->dst;
        !          1407:   uint32 dstdata = fetchlong(dstaddr);
        !          1408:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1409: 
        !          1410:   storelong(dstaddr, outdata);
        !          1411: 
        !          1412:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1413:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1414:   XFLAG = CFLAG = srcdata > dstdata;
        !          1415:   NFLAG = ((sint32)outdata) < 0;
        !          1416:   ZFLAG = !outdata;
        !          1417:   PC+= 4;
        !          1418: }
        !          1419: 
        !          1420: void cpu_op_832a(t_ipc *ipc) /* SUB */ {
        !          1421:   /* mask f1ff, bits 51b9, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1422:   unsigned int srcdata = ipc->src;
        !          1423:   uint32 dstaddr = ipc->dst;
        !          1424:   uint32 dstdata = fetchlong(dstaddr);
        !          1425:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1426: 
        !          1427:   storelong(dstaddr, outdata);
        !          1428:   PC+= 6;
        !          1429: }
        !          1430: 
        !          1431: void cpu_op_832b(t_ipc *ipc) /* SUB */ {
        !          1432:   /* mask f1ff, bits 51b9, mnemonic 7, priv 0, endblk 0, imm_notzero -1, used 0     set -1, size 3, stype 15, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1433:   unsigned int srcdata = ipc->src;
        !          1434:   uint32 dstaddr = ipc->dst;
        !          1435:   uint32 dstdata = fetchlong(dstaddr);
        !          1436:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1437: 
        !          1438:   storelong(dstaddr, outdata);
        !          1439: 
        !          1440:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1441:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1442:   XFLAG = CFLAG = srcdata > dstdata;
        !          1443:   NFLAG = ((sint32)outdata) < 0;
        !          1444:   ZFLAG = !outdata;
        !          1445:   PC+= 6;
        !          1446: }
        !          1447: 
        !          1448: void cpu_op_833a(t_ipc *ipc) /* SUBA */ {
        !          1449:   /* mask f1f8, bits 5148, mnemonic 8, priv 0, endblk 0, imm_notzero -1, used 0     set 0, size 3, stype 15, dtype 1, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1450:   unsigned int srcdata = ipc->src;
        !          1451:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1452:   uint32 dstdata = ADDRREG(dstreg);
        !          1453:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1454: 
        !          1455:   ADDRREG(dstreg) = outdata;
        !          1456:   PC+= 2;
        !          1457: }
        !          1458: 
        !          1459: void cpu_op_834a(t_ipc *ipc) /* SUBA */ {
        !          1460:   /* mask f1f8, bits 5188, mnemonic 8, priv 0, endblk 0, imm_notzero -1, used 0     set 0, size 3, stype 15, dtype 1, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1461:   unsigned int srcdata = ipc->src;
        !          1462:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1463:   uint32 dstdata = ADDRREG(dstreg);
        !          1464:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          1465: 
        !          1466:   ADDRREG(dstreg) = outdata;
        !          1467:   PC+= 2;
        !          1468: }
        !          1469: 
        !          1470: void cpu_op_835a(t_ipc *ipc) /* ADD */ {
        !          1471:   /* mask fff8, bits 5000, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 0, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1472:   unsigned int srcdata = 8;
        !          1473:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1474:   uint8 dstdata = DATAREG(dstreg);
        !          1475:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1476: 
        !          1477:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
        !          1478:   PC+= 2;
        !          1479: }
        !          1480: 
        !          1481: void cpu_op_835b(t_ipc *ipc) /* ADD */ {
        !          1482:   /* mask fff8, bits 5000, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 0, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1483:   unsigned int srcdata = 8;
        !          1484:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1485:   uint8 dstdata = DATAREG(dstreg);
        !          1486:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1487: 
        !          1488:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
        !          1489: 
        !          1490:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !          1491:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          1492:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !          1493:   NFLAG = ((sint8)outdata) < 0;
        !          1494:   ZFLAG = !outdata;
        !          1495:   PC+= 2;
        !          1496: }
        !          1497: 
        !          1498: void cpu_op_836a(t_ipc *ipc) /* ADD */ {
        !          1499:   /* mask fff8, bits 5010, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 2, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1500:   unsigned int srcdata = 8;
        !          1501:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1502:   uint32 dstaddr = ADDRREG(dstreg);
        !          1503:   uint8 dstdata = fetchbyte(dstaddr);
        !          1504:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1505: 
        !          1506:   storebyte(dstaddr, outdata);
        !          1507:   PC+= 2;
        !          1508: }
        !          1509: 
        !          1510: void cpu_op_836b(t_ipc *ipc) /* ADD */ {
        !          1511:   /* mask fff8, bits 5010, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 2, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1512:   unsigned int srcdata = 8;
        !          1513:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1514:   uint32 dstaddr = ADDRREG(dstreg);
        !          1515:   uint8 dstdata = fetchbyte(dstaddr);
        !          1516:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1517: 
        !          1518:   storebyte(dstaddr, outdata);
        !          1519: 
        !          1520:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !          1521:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          1522:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !          1523:   NFLAG = ((sint8)outdata) < 0;
        !          1524:   ZFLAG = !outdata;
        !          1525:   PC+= 2;
        !          1526: }
        !          1527: 
        !          1528: void cpu_op_837a(t_ipc *ipc) /* ADD */ {
        !          1529:   /* mask fff8, bits 5018, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 3, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1530:   unsigned int srcdata = 8;
        !          1531:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1532:   uint32 dstaddr = ADDRREG(dstreg);
        !          1533:   uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
        !          1534:   uint8 dstdata = fetchbyte(dstaddr);
        !          1535:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1536: 
        !          1537:   storebyte(dstaddr, outdata);
        !          1538:   PC+= 2;
        !          1539: }
        !          1540: 
        !          1541: void cpu_op_837b(t_ipc *ipc) /* ADD */ {
        !          1542:   /* mask fff8, bits 5018, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 3, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1543:   unsigned int srcdata = 8;
        !          1544:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1545:   uint32 dstaddr = ADDRREG(dstreg);
        !          1546:   uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
        !          1547:   uint8 dstdata = fetchbyte(dstaddr);
        !          1548:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1549: 
        !          1550:   storebyte(dstaddr, outdata);
        !          1551: 
        !          1552:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !          1553:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          1554:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !          1555:   NFLAG = ((sint8)outdata) < 0;
        !          1556:   ZFLAG = !outdata;
        !          1557:   PC+= 2;
        !          1558: }
        !          1559: 
        !          1560: void cpu_op_838a(t_ipc *ipc) /* ADD */ {
        !          1561:   /* mask fff8, bits 5020, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 4, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1562:   unsigned int srcdata = 8;
        !          1563:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1564:   uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
        !          1565:   uint8 dstdata = fetchbyte(dstaddr);
        !          1566:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1567: 
        !          1568:   storebyte(dstaddr, outdata);
        !          1569:   PC+= 2;
        !          1570: }
        !          1571: 
        !          1572: void cpu_op_838b(t_ipc *ipc) /* ADD */ {
        !          1573:   /* mask fff8, bits 5020, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 4, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1574:   unsigned int srcdata = 8;
        !          1575:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1576:   uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
        !          1577:   uint8 dstdata = fetchbyte(dstaddr);
        !          1578:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1579: 
        !          1580:   storebyte(dstaddr, outdata);
        !          1581: 
        !          1582:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !          1583:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          1584:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !          1585:   NFLAG = ((sint8)outdata) < 0;
        !          1586:   ZFLAG = !outdata;
        !          1587:   PC+= 2;
        !          1588: }
        !          1589: 
        !          1590: void cpu_op_839a(t_ipc *ipc) /* ADD */ {
        !          1591:   /* mask fff8, bits 5028, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 5, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1592:   unsigned int srcdata = 8;
        !          1593:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1594:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          1595:   uint8 dstdata = fetchbyte(dstaddr);
        !          1596:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1597: 
        !          1598:   storebyte(dstaddr, outdata);
        !          1599:   PC+= 4;
        !          1600: }
        !          1601: 
        !          1602: void cpu_op_839b(t_ipc *ipc) /* ADD */ {
        !          1603:   /* mask fff8, bits 5028, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 5, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1604:   unsigned int srcdata = 8;
        !          1605:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1606:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          1607:   uint8 dstdata = fetchbyte(dstaddr);
        !          1608:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1609: 
        !          1610:   storebyte(dstaddr, outdata);
        !          1611: 
        !          1612:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !          1613:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          1614:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !          1615:   NFLAG = ((sint8)outdata) < 0;
        !          1616:   ZFLAG = !outdata;
        !          1617:   PC+= 4;
        !          1618: }
        !          1619: 
        !          1620: void cpu_op_840a(t_ipc *ipc) /* ADD */ {
        !          1621:   /* mask fff8, bits 5030, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 6, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1622:   unsigned int srcdata = 8;
        !          1623:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1624:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          1625:   uint8 dstdata = fetchbyte(dstaddr);
        !          1626:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1627: 
        !          1628:   storebyte(dstaddr, outdata);
        !          1629:   PC+= 4;
        !          1630: }
        !          1631: 
        !          1632: void cpu_op_840b(t_ipc *ipc) /* ADD */ {
        !          1633:   /* mask fff8, bits 5030, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 6, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1634:   unsigned int srcdata = 8;
        !          1635:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1636:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          1637:   uint8 dstdata = fetchbyte(dstaddr);
        !          1638:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1639: 
        !          1640:   storebyte(dstaddr, outdata);
        !          1641: 
        !          1642:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !          1643:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          1644:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !          1645:   NFLAG = ((sint8)outdata) < 0;
        !          1646:   ZFLAG = !outdata;
        !          1647:   PC+= 4;
        !          1648: }
        !          1649: 
        !          1650: void cpu_op_841a(t_ipc *ipc) /* ADD */ {
        !          1651:   /* mask ffff, bits 5038, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 7, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1652:   unsigned int srcdata = 8;
        !          1653:   uint32 dstaddr = ipc->dst;
        !          1654:   uint8 dstdata = fetchbyte(dstaddr);
        !          1655:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1656: 
        !          1657:   storebyte(dstaddr, outdata);
        !          1658:   PC+= 4;
        !          1659: }
        !          1660: 
        !          1661: void cpu_op_841b(t_ipc *ipc) /* ADD */ {
        !          1662:   /* mask ffff, bits 5038, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 7, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1663:   unsigned int srcdata = 8;
        !          1664:   uint32 dstaddr = ipc->dst;
        !          1665:   uint8 dstdata = fetchbyte(dstaddr);
        !          1666:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1667: 
        !          1668:   storebyte(dstaddr, outdata);
        !          1669: 
        !          1670:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !          1671:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          1672:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !          1673:   NFLAG = ((sint8)outdata) < 0;
        !          1674:   ZFLAG = !outdata;
        !          1675:   PC+= 4;
        !          1676: }
        !          1677: 
        !          1678: void cpu_op_842a(t_ipc *ipc) /* ADD */ {
        !          1679:   /* mask ffff, bits 5039, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 8, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1680:   unsigned int srcdata = 8;
        !          1681:   uint32 dstaddr = ipc->dst;
        !          1682:   uint8 dstdata = fetchbyte(dstaddr);
        !          1683:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1684: 
        !          1685:   storebyte(dstaddr, outdata);
        !          1686:   PC+= 6;
        !          1687: }
        !          1688: 
        !          1689: void cpu_op_842b(t_ipc *ipc) /* ADD */ {
        !          1690:   /* mask ffff, bits 5039, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 8, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1691:   unsigned int srcdata = 8;
        !          1692:   uint32 dstaddr = ipc->dst;
        !          1693:   uint8 dstdata = fetchbyte(dstaddr);
        !          1694:   uint8 outdata = (sint8)dstdata + (sint8)srcdata;
        !          1695: 
        !          1696:   storebyte(dstaddr, outdata);
        !          1697: 
        !          1698:   VFLAG = (((sint8)srcdata < 0) == ((sint8)dstdata < 0)) &&
        !          1699:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          1700:   XFLAG = CFLAG = srcdata > (0xFFu - (uint8)dstdata);
        !          1701:   NFLAG = ((sint8)outdata) < 0;
        !          1702:   ZFLAG = !outdata;
        !          1703:   PC+= 6;
        !          1704: }
        !          1705: 
        !          1706: void cpu_op_843a(t_ipc *ipc) /* ADD */ {
        !          1707:   /* mask fff8, bits 5040, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 0, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1708:   unsigned int srcdata = 8;
        !          1709:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1710:   uint16 dstdata = DATAREG(dstreg);
        !          1711:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1712: 
        !          1713:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xffff) | outdata;
        !          1714:   PC+= 2;
        !          1715: }
        !          1716: 
        !          1717: void cpu_op_843b(t_ipc *ipc) /* ADD */ {
        !          1718:   /* mask fff8, bits 5040, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 0, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1719:   unsigned int srcdata = 8;
        !          1720:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1721:   uint16 dstdata = DATAREG(dstreg);
        !          1722:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1723: 
        !          1724:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xffff) | outdata;
        !          1725: 
        !          1726:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !          1727:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1728:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !          1729:   NFLAG = ((sint16)outdata) < 0;
        !          1730:   ZFLAG = !outdata;
        !          1731:   PC+= 2;
        !          1732: }
        !          1733: 
        !          1734: void cpu_op_844a(t_ipc *ipc) /* ADD */ {
        !          1735:   /* mask fff8, bits 5050, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 2, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1736:   unsigned int srcdata = 8;
        !          1737:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1738:   uint32 dstaddr = ADDRREG(dstreg);
        !          1739:   uint16 dstdata = fetchword(dstaddr);
        !          1740:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1741: 
        !          1742:   storeword(dstaddr, outdata);
        !          1743:   PC+= 2;
        !          1744: }
        !          1745: 
        !          1746: void cpu_op_844b(t_ipc *ipc) /* ADD */ {
        !          1747:   /* mask fff8, bits 5050, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 2, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1748:   unsigned int srcdata = 8;
        !          1749:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1750:   uint32 dstaddr = ADDRREG(dstreg);
        !          1751:   uint16 dstdata = fetchword(dstaddr);
        !          1752:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1753: 
        !          1754:   storeword(dstaddr, outdata);
        !          1755: 
        !          1756:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !          1757:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1758:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !          1759:   NFLAG = ((sint16)outdata) < 0;
        !          1760:   ZFLAG = !outdata;
        !          1761:   PC+= 2;
        !          1762: }
        !          1763: 
        !          1764: void cpu_op_845a(t_ipc *ipc) /* ADD */ {
        !          1765:   /* mask fff8, bits 5058, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 3, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1766:   unsigned int srcdata = 8;
        !          1767:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1768:   uint32 dstaddr = (ADDRREG(dstreg)+=2, ADDRREG(dstreg)-2);
        !          1769:   uint16 dstdata = fetchword(dstaddr);
        !          1770:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1771: 
        !          1772:   storeword(dstaddr, outdata);
        !          1773:   PC+= 2;
        !          1774: }
        !          1775: 
        !          1776: void cpu_op_845b(t_ipc *ipc) /* ADD */ {
        !          1777:   /* mask fff8, bits 5058, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 3, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1778:   unsigned int srcdata = 8;
        !          1779:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1780:   uint32 dstaddr = (ADDRREG(dstreg)+=2, ADDRREG(dstreg)-2);
        !          1781:   uint16 dstdata = fetchword(dstaddr);
        !          1782:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1783: 
        !          1784:   storeword(dstaddr, outdata);
        !          1785: 
        !          1786:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !          1787:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1788:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !          1789:   NFLAG = ((sint16)outdata) < 0;
        !          1790:   ZFLAG = !outdata;
        !          1791:   PC+= 2;
        !          1792: }
        !          1793: 
        !          1794: void cpu_op_846a(t_ipc *ipc) /* ADD */ {
        !          1795:   /* mask fff8, bits 5060, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 4, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1796:   unsigned int srcdata = 8;
        !          1797:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1798:   uint32 dstaddr = ADDRREG(dstreg)-=2;
        !          1799:   uint16 dstdata = fetchword(dstaddr);
        !          1800:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1801: 
        !          1802:   storeword(dstaddr, outdata);
        !          1803:   PC+= 2;
        !          1804: }
        !          1805: 
        !          1806: void cpu_op_846b(t_ipc *ipc) /* ADD */ {
        !          1807:   /* mask fff8, bits 5060, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 4, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1808:   unsigned int srcdata = 8;
        !          1809:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1810:   uint32 dstaddr = ADDRREG(dstreg)-=2;
        !          1811:   uint16 dstdata = fetchword(dstaddr);
        !          1812:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1813: 
        !          1814:   storeword(dstaddr, outdata);
        !          1815: 
        !          1816:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !          1817:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1818:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !          1819:   NFLAG = ((sint16)outdata) < 0;
        !          1820:   ZFLAG = !outdata;
        !          1821:   PC+= 2;
        !          1822: }
        !          1823: 
        !          1824: void cpu_op_847a(t_ipc *ipc) /* ADD */ {
        !          1825:   /* mask fff8, bits 5068, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 5, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1826:   unsigned int srcdata = 8;
        !          1827:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1828:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          1829:   uint16 dstdata = fetchword(dstaddr);
        !          1830:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1831: 
        !          1832:   storeword(dstaddr, outdata);
        !          1833:   PC+= 4;
        !          1834: }
        !          1835: 
        !          1836: void cpu_op_847b(t_ipc *ipc) /* ADD */ {
        !          1837:   /* mask fff8, bits 5068, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 5, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1838:   unsigned int srcdata = 8;
        !          1839:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1840:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          1841:   uint16 dstdata = fetchword(dstaddr);
        !          1842:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1843: 
        !          1844:   storeword(dstaddr, outdata);
        !          1845: 
        !          1846:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !          1847:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1848:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !          1849:   NFLAG = ((sint16)outdata) < 0;
        !          1850:   ZFLAG = !outdata;
        !          1851:   PC+= 4;
        !          1852: }
        !          1853: 
        !          1854: void cpu_op_848a(t_ipc *ipc) /* ADD */ {
        !          1855:   /* mask fff8, bits 5070, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 6, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1856:   unsigned int srcdata = 8;
        !          1857:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1858:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          1859:   uint16 dstdata = fetchword(dstaddr);
        !          1860:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1861: 
        !          1862:   storeword(dstaddr, outdata);
        !          1863:   PC+= 4;
        !          1864: }
        !          1865: 
        !          1866: void cpu_op_848b(t_ipc *ipc) /* ADD */ {
        !          1867:   /* mask fff8, bits 5070, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 6, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1868:   unsigned int srcdata = 8;
        !          1869:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1870:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          1871:   uint16 dstdata = fetchword(dstaddr);
        !          1872:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1873: 
        !          1874:   storeword(dstaddr, outdata);
        !          1875: 
        !          1876:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !          1877:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1878:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !          1879:   NFLAG = ((sint16)outdata) < 0;
        !          1880:   ZFLAG = !outdata;
        !          1881:   PC+= 4;
        !          1882: }
        !          1883: 
        !          1884: void cpu_op_849a(t_ipc *ipc) /* ADD */ {
        !          1885:   /* mask ffff, bits 5078, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 7, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1886:   unsigned int srcdata = 8;
        !          1887:   uint32 dstaddr = ipc->dst;
        !          1888:   uint16 dstdata = fetchword(dstaddr);
        !          1889:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1890: 
        !          1891:   storeword(dstaddr, outdata);
        !          1892:   PC+= 4;
        !          1893: }
        !          1894: 
        !          1895: void cpu_op_849b(t_ipc *ipc) /* ADD */ {
        !          1896:   /* mask ffff, bits 5078, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 7, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1897:   unsigned int srcdata = 8;
        !          1898:   uint32 dstaddr = ipc->dst;
        !          1899:   uint16 dstdata = fetchword(dstaddr);
        !          1900:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1901: 
        !          1902:   storeword(dstaddr, outdata);
        !          1903: 
        !          1904:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !          1905:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1906:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !          1907:   NFLAG = ((sint16)outdata) < 0;
        !          1908:   ZFLAG = !outdata;
        !          1909:   PC+= 4;
        !          1910: }
        !          1911: 
        !          1912: void cpu_op_850a(t_ipc *ipc) /* ADD */ {
        !          1913:   /* mask ffff, bits 5079, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 8, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1914:   unsigned int srcdata = 8;
        !          1915:   uint32 dstaddr = ipc->dst;
        !          1916:   uint16 dstdata = fetchword(dstaddr);
        !          1917:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1918: 
        !          1919:   storeword(dstaddr, outdata);
        !          1920:   PC+= 6;
        !          1921: }
        !          1922: 
        !          1923: void cpu_op_850b(t_ipc *ipc) /* ADD */ {
        !          1924:   /* mask ffff, bits 5079, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 8, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1925:   unsigned int srcdata = 8;
        !          1926:   uint32 dstaddr = ipc->dst;
        !          1927:   uint16 dstdata = fetchword(dstaddr);
        !          1928:   uint16 outdata = (sint16)dstdata + (sint16)srcdata;
        !          1929: 
        !          1930:   storeword(dstaddr, outdata);
        !          1931: 
        !          1932:   VFLAG = (((sint16)srcdata < 0) == ((sint16)dstdata < 0)) &&
        !          1933:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          1934:   XFLAG = CFLAG = srcdata > (0xFFFFu - (uint16)dstdata);
        !          1935:   NFLAG = ((sint16)outdata) < 0;
        !          1936:   ZFLAG = !outdata;
        !          1937:   PC+= 6;
        !          1938: }
        !          1939: 
        !          1940: void cpu_op_851a(t_ipc *ipc) /* ADD */ {
        !          1941:   /* mask fff8, bits 5080, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 0, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1942:   unsigned int srcdata = 8;
        !          1943:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1944:   uint32 dstdata = DATAREG(dstreg);
        !          1945:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          1946: 
        !          1947:   DATAREG(dstreg) = outdata;
        !          1948:   PC+= 2;
        !          1949: }
        !          1950: 
        !          1951: void cpu_op_851b(t_ipc *ipc) /* ADD */ {
        !          1952:   /* mask fff8, bits 5080, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 0, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1953:   unsigned int srcdata = 8;
        !          1954:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1955:   uint32 dstdata = DATAREG(dstreg);
        !          1956:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          1957: 
        !          1958:   DATAREG(dstreg) = outdata;
        !          1959: 
        !          1960:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !          1961:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1962:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !          1963:   NFLAG = ((sint32)outdata) < 0;
        !          1964:   ZFLAG = !outdata;
        !          1965:   PC+= 2;
        !          1966: }
        !          1967: 
        !          1968: void cpu_op_852a(t_ipc *ipc) /* ADD */ {
        !          1969:   /* mask fff8, bits 5090, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 2, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1970:   unsigned int srcdata = 8;
        !          1971:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1972:   uint32 dstaddr = ADDRREG(dstreg);
        !          1973:   uint32 dstdata = fetchlong(dstaddr);
        !          1974:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          1975: 
        !          1976:   storelong(dstaddr, outdata);
        !          1977:   PC+= 2;
        !          1978: }
        !          1979: 
        !          1980: void cpu_op_852b(t_ipc *ipc) /* ADD */ {
        !          1981:   /* mask fff8, bits 5090, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 2, sbitpos 0, dbitpos 0, immvalue 8 */
        !          1982:   unsigned int srcdata = 8;
        !          1983:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1984:   uint32 dstaddr = ADDRREG(dstreg);
        !          1985:   uint32 dstdata = fetchlong(dstaddr);
        !          1986:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          1987: 
        !          1988:   storelong(dstaddr, outdata);
        !          1989: 
        !          1990:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !          1991:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1992:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !          1993:   NFLAG = ((sint32)outdata) < 0;
        !          1994:   ZFLAG = !outdata;
        !          1995:   PC+= 2;
        !          1996: }
        !          1997: 
        !          1998: void cpu_op_853a(t_ipc *ipc) /* ADD */ {
        !          1999:   /* mask fff8, bits 5098, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 3, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2000:   unsigned int srcdata = 8;
        !          2001:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2002:   uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
        !          2003:   uint32 dstdata = fetchlong(dstaddr);
        !          2004:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          2005: 
        !          2006:   storelong(dstaddr, outdata);
        !          2007:   PC+= 2;
        !          2008: }
        !          2009: 
        !          2010: void cpu_op_853b(t_ipc *ipc) /* ADD */ {
        !          2011:   /* mask fff8, bits 5098, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 3, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2012:   unsigned int srcdata = 8;
        !          2013:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2014:   uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
        !          2015:   uint32 dstdata = fetchlong(dstaddr);
        !          2016:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          2017: 
        !          2018:   storelong(dstaddr, outdata);
        !          2019: 
        !          2020:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !          2021:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2022:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !          2023:   NFLAG = ((sint32)outdata) < 0;
        !          2024:   ZFLAG = !outdata;
        !          2025:   PC+= 2;
        !          2026: }
        !          2027: 
        !          2028: void cpu_op_854a(t_ipc *ipc) /* ADD */ {
        !          2029:   /* mask fff8, bits 50a0, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 4, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2030:   unsigned int srcdata = 8;
        !          2031:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2032:   uint32 dstaddr = ADDRREG(dstreg)-=4;
        !          2033:   uint32 dstdata = fetchlong(dstaddr);
        !          2034:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          2035: 
        !          2036:   storelong(dstaddr, outdata);
        !          2037:   PC+= 2;
        !          2038: }
        !          2039: 
        !          2040: void cpu_op_854b(t_ipc *ipc) /* ADD */ {
        !          2041:   /* mask fff8, bits 50a0, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 4, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2042:   unsigned int srcdata = 8;
        !          2043:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2044:   uint32 dstaddr = ADDRREG(dstreg)-=4;
        !          2045:   uint32 dstdata = fetchlong(dstaddr);
        !          2046:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          2047: 
        !          2048:   storelong(dstaddr, outdata);
        !          2049: 
        !          2050:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !          2051:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2052:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !          2053:   NFLAG = ((sint32)outdata) < 0;
        !          2054:   ZFLAG = !outdata;
        !          2055:   PC+= 2;
        !          2056: }
        !          2057: 
        !          2058: void cpu_op_855a(t_ipc *ipc) /* ADD */ {
        !          2059:   /* mask fff8, bits 50a8, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 5, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2060:   unsigned int srcdata = 8;
        !          2061:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2062:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          2063:   uint32 dstdata = fetchlong(dstaddr);
        !          2064:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          2065: 
        !          2066:   storelong(dstaddr, outdata);
        !          2067:   PC+= 4;
        !          2068: }
        !          2069: 
        !          2070: void cpu_op_855b(t_ipc *ipc) /* ADD */ {
        !          2071:   /* mask fff8, bits 50a8, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 5, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2072:   unsigned int srcdata = 8;
        !          2073:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2074:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          2075:   uint32 dstdata = fetchlong(dstaddr);
        !          2076:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          2077: 
        !          2078:   storelong(dstaddr, outdata);
        !          2079: 
        !          2080:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !          2081:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2082:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !          2083:   NFLAG = ((sint32)outdata) < 0;
        !          2084:   ZFLAG = !outdata;
        !          2085:   PC+= 4;
        !          2086: }
        !          2087: 
        !          2088: void cpu_op_856a(t_ipc *ipc) /* ADD */ {
        !          2089:   /* mask fff8, bits 50b0, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 6, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2090:   unsigned int srcdata = 8;
        !          2091:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2092:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          2093:   uint32 dstdata = fetchlong(dstaddr);
        !          2094:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          2095: 
        !          2096:   storelong(dstaddr, outdata);
        !          2097:   PC+= 4;
        !          2098: }
        !          2099: 
        !          2100: void cpu_op_856b(t_ipc *ipc) /* ADD */ {
        !          2101:   /* mask fff8, bits 50b0, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 6, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2102:   unsigned int srcdata = 8;
        !          2103:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2104:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          2105:   uint32 dstdata = fetchlong(dstaddr);
        !          2106:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          2107: 
        !          2108:   storelong(dstaddr, outdata);
        !          2109: 
        !          2110:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !          2111:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2112:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !          2113:   NFLAG = ((sint32)outdata) < 0;
        !          2114:   ZFLAG = !outdata;
        !          2115:   PC+= 4;
        !          2116: }
        !          2117: 
        !          2118: void cpu_op_857a(t_ipc *ipc) /* ADD */ {
        !          2119:   /* mask ffff, bits 50b8, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 7, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2120:   unsigned int srcdata = 8;
        !          2121:   uint32 dstaddr = ipc->dst;
        !          2122:   uint32 dstdata = fetchlong(dstaddr);
        !          2123:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          2124: 
        !          2125:   storelong(dstaddr, outdata);
        !          2126:   PC+= 4;
        !          2127: }
        !          2128: 
        !          2129: void cpu_op_857b(t_ipc *ipc) /* ADD */ {
        !          2130:   /* mask ffff, bits 50b8, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 7, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2131:   unsigned int srcdata = 8;
        !          2132:   uint32 dstaddr = ipc->dst;
        !          2133:   uint32 dstdata = fetchlong(dstaddr);
        !          2134:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          2135: 
        !          2136:   storelong(dstaddr, outdata);
        !          2137: 
        !          2138:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !          2139:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2140:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !          2141:   NFLAG = ((sint32)outdata) < 0;
        !          2142:   ZFLAG = !outdata;
        !          2143:   PC+= 4;
        !          2144: }
        !          2145: 
        !          2146: void cpu_op_858a(t_ipc *ipc) /* ADD */ {
        !          2147:   /* mask ffff, bits 50b9, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 8, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2148:   unsigned int srcdata = 8;
        !          2149:   uint32 dstaddr = ipc->dst;
        !          2150:   uint32 dstdata = fetchlong(dstaddr);
        !          2151:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          2152: 
        !          2153:   storelong(dstaddr, outdata);
        !          2154:   PC+= 6;
        !          2155: }
        !          2156: 
        !          2157: void cpu_op_858b(t_ipc *ipc) /* ADD */ {
        !          2158:   /* mask ffff, bits 50b9, mnemonic 10, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 8, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2159:   unsigned int srcdata = 8;
        !          2160:   uint32 dstaddr = ipc->dst;
        !          2161:   uint32 dstdata = fetchlong(dstaddr);
        !          2162:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          2163: 
        !          2164:   storelong(dstaddr, outdata);
        !          2165: 
        !          2166:   VFLAG = (((sint32)srcdata < 0) == ((sint32)dstdata < 0)) &&
        !          2167:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2168:   XFLAG = CFLAG = srcdata > (uint32)~(uint32)dstdata;
        !          2169:   NFLAG = ((sint32)outdata) < 0;
        !          2170:   ZFLAG = !outdata;
        !          2171:   PC+= 6;
        !          2172: }
        !          2173: 
        !          2174: void cpu_op_859a(t_ipc *ipc) /* ADDA */ {
        !          2175:   /* mask fff8, bits 5048, mnemonic 11, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 2, stype 14, dtype 1, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2176:   unsigned int srcdata = 8;
        !          2177:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2178:   uint32 dstdata = ADDRREG(dstreg);
        !          2179:   uint32 outdata = (sint32)dstdata + (sint16)srcdata;
        !          2180: 
        !          2181:   ADDRREG(dstreg) = outdata;
        !          2182:   PC+= 2;
        !          2183: }
        !          2184: 
        !          2185: void cpu_op_860a(t_ipc *ipc) /* ADDA */ {
        !          2186:   /* mask fff8, bits 5088, mnemonic 11, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 14, dtype 1, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2187:   unsigned int srcdata = 8;
        !          2188:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2189:   uint32 dstdata = ADDRREG(dstreg);
        !          2190:   uint32 outdata = (sint32)dstdata + (sint32)srcdata;
        !          2191: 
        !          2192:   ADDRREG(dstreg) = outdata;
        !          2193:   PC+= 2;
        !          2194: }
        !          2195: 
        !          2196: void cpu_op_861a(t_ipc *ipc) /* SUB */ {
        !          2197:   /* mask fff8, bits 5100, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 0, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2198:   unsigned int srcdata = 8;
        !          2199:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2200:   uint8 dstdata = DATAREG(dstreg);
        !          2201:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2202: 
        !          2203:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
        !          2204:   PC+= 2;
        !          2205: }
        !          2206: 
        !          2207: void cpu_op_861b(t_ipc *ipc) /* SUB */ {
        !          2208:   /* mask fff8, bits 5100, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 0, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2209:   unsigned int srcdata = 8;
        !          2210:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2211:   uint8 dstdata = DATAREG(dstreg);
        !          2212:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2213: 
        !          2214:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
        !          2215: 
        !          2216:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !          2217:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          2218:   XFLAG = CFLAG = srcdata > dstdata;
        !          2219:   NFLAG = ((sint8)outdata) < 0;
        !          2220:   ZFLAG = !outdata;
        !          2221:   PC+= 2;
        !          2222: }
        !          2223: 
        !          2224: void cpu_op_862a(t_ipc *ipc) /* SUB */ {
        !          2225:   /* mask fff8, bits 5110, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 2, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2226:   unsigned int srcdata = 8;
        !          2227:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2228:   uint32 dstaddr = ADDRREG(dstreg);
        !          2229:   uint8 dstdata = fetchbyte(dstaddr);
        !          2230:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2231: 
        !          2232:   storebyte(dstaddr, outdata);
        !          2233:   PC+= 2;
        !          2234: }
        !          2235: 
        !          2236: void cpu_op_862b(t_ipc *ipc) /* SUB */ {
        !          2237:   /* mask fff8, bits 5110, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 2, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2238:   unsigned int srcdata = 8;
        !          2239:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2240:   uint32 dstaddr = ADDRREG(dstreg);
        !          2241:   uint8 dstdata = fetchbyte(dstaddr);
        !          2242:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2243: 
        !          2244:   storebyte(dstaddr, outdata);
        !          2245: 
        !          2246:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !          2247:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          2248:   XFLAG = CFLAG = srcdata > dstdata;
        !          2249:   NFLAG = ((sint8)outdata) < 0;
        !          2250:   ZFLAG = !outdata;
        !          2251:   PC+= 2;
        !          2252: }
        !          2253: 
        !          2254: void cpu_op_863a(t_ipc *ipc) /* SUB */ {
        !          2255:   /* mask fff8, bits 5118, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 3, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2256:   unsigned int srcdata = 8;
        !          2257:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2258:   uint32 dstaddr = ADDRREG(dstreg);
        !          2259:   uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
        !          2260:   uint8 dstdata = fetchbyte(dstaddr);
        !          2261:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2262: 
        !          2263:   storebyte(dstaddr, outdata);
        !          2264:   PC+= 2;
        !          2265: }
        !          2266: 
        !          2267: void cpu_op_863b(t_ipc *ipc) /* SUB */ {
        !          2268:   /* mask fff8, bits 5118, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 3, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2269:   unsigned int srcdata = 8;
        !          2270:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2271:   uint32 dstaddr = ADDRREG(dstreg);
        !          2272:   uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
        !          2273:   uint8 dstdata = fetchbyte(dstaddr);
        !          2274:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2275: 
        !          2276:   storebyte(dstaddr, outdata);
        !          2277: 
        !          2278:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !          2279:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          2280:   XFLAG = CFLAG = srcdata > dstdata;
        !          2281:   NFLAG = ((sint8)outdata) < 0;
        !          2282:   ZFLAG = !outdata;
        !          2283:   PC+= 2;
        !          2284: }
        !          2285: 
        !          2286: void cpu_op_864a(t_ipc *ipc) /* SUB */ {
        !          2287:   /* mask fff8, bits 5120, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 4, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2288:   unsigned int srcdata = 8;
        !          2289:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2290:   uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
        !          2291:   uint8 dstdata = fetchbyte(dstaddr);
        !          2292:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2293: 
        !          2294:   storebyte(dstaddr, outdata);
        !          2295:   PC+= 2;
        !          2296: }
        !          2297: 
        !          2298: void cpu_op_864b(t_ipc *ipc) /* SUB */ {
        !          2299:   /* mask fff8, bits 5120, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 4, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2300:   unsigned int srcdata = 8;
        !          2301:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2302:   uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
        !          2303:   uint8 dstdata = fetchbyte(dstaddr);
        !          2304:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2305: 
        !          2306:   storebyte(dstaddr, outdata);
        !          2307: 
        !          2308:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !          2309:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          2310:   XFLAG = CFLAG = srcdata > dstdata;
        !          2311:   NFLAG = ((sint8)outdata) < 0;
        !          2312:   ZFLAG = !outdata;
        !          2313:   PC+= 2;
        !          2314: }
        !          2315: 
        !          2316: void cpu_op_865a(t_ipc *ipc) /* SUB */ {
        !          2317:   /* mask fff8, bits 5128, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 5, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2318:   unsigned int srcdata = 8;
        !          2319:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2320:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          2321:   uint8 dstdata = fetchbyte(dstaddr);
        !          2322:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2323: 
        !          2324:   storebyte(dstaddr, outdata);
        !          2325:   PC+= 4;
        !          2326: }
        !          2327: 
        !          2328: void cpu_op_865b(t_ipc *ipc) /* SUB */ {
        !          2329:   /* mask fff8, bits 5128, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 5, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2330:   unsigned int srcdata = 8;
        !          2331:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2332:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          2333:   uint8 dstdata = fetchbyte(dstaddr);
        !          2334:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2335: 
        !          2336:   storebyte(dstaddr, outdata);
        !          2337: 
        !          2338:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !          2339:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          2340:   XFLAG = CFLAG = srcdata > dstdata;
        !          2341:   NFLAG = ((sint8)outdata) < 0;
        !          2342:   ZFLAG = !outdata;
        !          2343:   PC+= 4;
        !          2344: }
        !          2345: 
        !          2346: void cpu_op_866a(t_ipc *ipc) /* SUB */ {
        !          2347:   /* mask fff8, bits 5130, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 6, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2348:   unsigned int srcdata = 8;
        !          2349:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2350:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          2351:   uint8 dstdata = fetchbyte(dstaddr);
        !          2352:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2353: 
        !          2354:   storebyte(dstaddr, outdata);
        !          2355:   PC+= 4;
        !          2356: }
        !          2357: 
        !          2358: void cpu_op_866b(t_ipc *ipc) /* SUB */ {
        !          2359:   /* mask fff8, bits 5130, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 6, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2360:   unsigned int srcdata = 8;
        !          2361:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2362:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          2363:   uint8 dstdata = fetchbyte(dstaddr);
        !          2364:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2365: 
        !          2366:   storebyte(dstaddr, outdata);
        !          2367: 
        !          2368:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !          2369:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          2370:   XFLAG = CFLAG = srcdata > dstdata;
        !          2371:   NFLAG = ((sint8)outdata) < 0;
        !          2372:   ZFLAG = !outdata;
        !          2373:   PC+= 4;
        !          2374: }
        !          2375: 
        !          2376: void cpu_op_867a(t_ipc *ipc) /* SUB */ {
        !          2377:   /* mask ffff, bits 5138, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 7, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2378:   unsigned int srcdata = 8;
        !          2379:   uint32 dstaddr = ipc->dst;
        !          2380:   uint8 dstdata = fetchbyte(dstaddr);
        !          2381:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2382: 
        !          2383:   storebyte(dstaddr, outdata);
        !          2384:   PC+= 4;
        !          2385: }
        !          2386: 
        !          2387: void cpu_op_867b(t_ipc *ipc) /* SUB */ {
        !          2388:   /* mask ffff, bits 5138, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 7, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2389:   unsigned int srcdata = 8;
        !          2390:   uint32 dstaddr = ipc->dst;
        !          2391:   uint8 dstdata = fetchbyte(dstaddr);
        !          2392:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2393: 
        !          2394:   storebyte(dstaddr, outdata);
        !          2395: 
        !          2396:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !          2397:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          2398:   XFLAG = CFLAG = srcdata > dstdata;
        !          2399:   NFLAG = ((sint8)outdata) < 0;
        !          2400:   ZFLAG = !outdata;
        !          2401:   PC+= 4;
        !          2402: }
        !          2403: 
        !          2404: void cpu_op_868a(t_ipc *ipc) /* SUB */ {
        !          2405:   /* mask ffff, bits 5139, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 8, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2406:   unsigned int srcdata = 8;
        !          2407:   uint32 dstaddr = ipc->dst;
        !          2408:   uint8 dstdata = fetchbyte(dstaddr);
        !          2409:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2410: 
        !          2411:   storebyte(dstaddr, outdata);
        !          2412:   PC+= 6;
        !          2413: }
        !          2414: 
        !          2415: void cpu_op_868b(t_ipc *ipc) /* SUB */ {
        !          2416:   /* mask ffff, bits 5139, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 1, stype 14, dtype 8, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2417:   unsigned int srcdata = 8;
        !          2418:   uint32 dstaddr = ipc->dst;
        !          2419:   uint8 dstdata = fetchbyte(dstaddr);
        !          2420:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2421: 
        !          2422:   storebyte(dstaddr, outdata);
        !          2423: 
        !          2424:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !          2425:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          2426:   XFLAG = CFLAG = srcdata > dstdata;
        !          2427:   NFLAG = ((sint8)outdata) < 0;
        !          2428:   ZFLAG = !outdata;
        !          2429:   PC+= 6;
        !          2430: }
        !          2431: 
        !          2432: void cpu_op_869a(t_ipc *ipc) /* SUB */ {
        !          2433:   /* mask fff8, bits 5140, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 0, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2434:   unsigned int srcdata = 8;
        !          2435:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2436:   uint16 dstdata = DATAREG(dstreg);
        !          2437:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2438: 
        !          2439:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xffff) | outdata;
        !          2440:   PC+= 2;
        !          2441: }
        !          2442: 
        !          2443: void cpu_op_869b(t_ipc *ipc) /* SUB */ {
        !          2444:   /* mask fff8, bits 5140, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 0, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2445:   unsigned int srcdata = 8;
        !          2446:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2447:   uint16 dstdata = DATAREG(dstreg);
        !          2448:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2449: 
        !          2450:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xffff) | outdata;
        !          2451: 
        !          2452:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          2453:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          2454:   XFLAG = CFLAG = srcdata > dstdata;
        !          2455:   NFLAG = ((sint16)outdata) < 0;
        !          2456:   ZFLAG = !outdata;
        !          2457:   PC+= 2;
        !          2458: }
        !          2459: 
        !          2460: void cpu_op_870a(t_ipc *ipc) /* SUB */ {
        !          2461:   /* mask fff8, bits 5150, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 2, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2462:   unsigned int srcdata = 8;
        !          2463:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2464:   uint32 dstaddr = ADDRREG(dstreg);
        !          2465:   uint16 dstdata = fetchword(dstaddr);
        !          2466:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2467: 
        !          2468:   storeword(dstaddr, outdata);
        !          2469:   PC+= 2;
        !          2470: }
        !          2471: 
        !          2472: void cpu_op_870b(t_ipc *ipc) /* SUB */ {
        !          2473:   /* mask fff8, bits 5150, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 2, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2474:   unsigned int srcdata = 8;
        !          2475:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2476:   uint32 dstaddr = ADDRREG(dstreg);
        !          2477:   uint16 dstdata = fetchword(dstaddr);
        !          2478:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2479: 
        !          2480:   storeword(dstaddr, outdata);
        !          2481: 
        !          2482:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          2483:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          2484:   XFLAG = CFLAG = srcdata > dstdata;
        !          2485:   NFLAG = ((sint16)outdata) < 0;
        !          2486:   ZFLAG = !outdata;
        !          2487:   PC+= 2;
        !          2488: }
        !          2489: 
        !          2490: void cpu_op_871a(t_ipc *ipc) /* SUB */ {
        !          2491:   /* mask fff8, bits 5158, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 3, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2492:   unsigned int srcdata = 8;
        !          2493:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2494:   uint32 dstaddr = (ADDRREG(dstreg)+=2, ADDRREG(dstreg)-2);
        !          2495:   uint16 dstdata = fetchword(dstaddr);
        !          2496:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2497: 
        !          2498:   storeword(dstaddr, outdata);
        !          2499:   PC+= 2;
        !          2500: }
        !          2501: 
        !          2502: void cpu_op_871b(t_ipc *ipc) /* SUB */ {
        !          2503:   /* mask fff8, bits 5158, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 3, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2504:   unsigned int srcdata = 8;
        !          2505:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2506:   uint32 dstaddr = (ADDRREG(dstreg)+=2, ADDRREG(dstreg)-2);
        !          2507:   uint16 dstdata = fetchword(dstaddr);
        !          2508:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2509: 
        !          2510:   storeword(dstaddr, outdata);
        !          2511: 
        !          2512:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          2513:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          2514:   XFLAG = CFLAG = srcdata > dstdata;
        !          2515:   NFLAG = ((sint16)outdata) < 0;
        !          2516:   ZFLAG = !outdata;
        !          2517:   PC+= 2;
        !          2518: }
        !          2519: 
        !          2520: void cpu_op_872a(t_ipc *ipc) /* SUB */ {
        !          2521:   /* mask fff8, bits 5160, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 4, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2522:   unsigned int srcdata = 8;
        !          2523:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2524:   uint32 dstaddr = ADDRREG(dstreg)-=2;
        !          2525:   uint16 dstdata = fetchword(dstaddr);
        !          2526:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2527: 
        !          2528:   storeword(dstaddr, outdata);
        !          2529:   PC+= 2;
        !          2530: }
        !          2531: 
        !          2532: void cpu_op_872b(t_ipc *ipc) /* SUB */ {
        !          2533:   /* mask fff8, bits 5160, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 4, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2534:   unsigned int srcdata = 8;
        !          2535:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2536:   uint32 dstaddr = ADDRREG(dstreg)-=2;
        !          2537:   uint16 dstdata = fetchword(dstaddr);
        !          2538:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2539: 
        !          2540:   storeword(dstaddr, outdata);
        !          2541: 
        !          2542:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          2543:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          2544:   XFLAG = CFLAG = srcdata > dstdata;
        !          2545:   NFLAG = ((sint16)outdata) < 0;
        !          2546:   ZFLAG = !outdata;
        !          2547:   PC+= 2;
        !          2548: }
        !          2549: 
        !          2550: void cpu_op_873a(t_ipc *ipc) /* SUB */ {
        !          2551:   /* mask fff8, bits 5168, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 5, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2552:   unsigned int srcdata = 8;
        !          2553:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2554:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          2555:   uint16 dstdata = fetchword(dstaddr);
        !          2556:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2557: 
        !          2558:   storeword(dstaddr, outdata);
        !          2559:   PC+= 4;
        !          2560: }
        !          2561: 
        !          2562: void cpu_op_873b(t_ipc *ipc) /* SUB */ {
        !          2563:   /* mask fff8, bits 5168, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 5, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2564:   unsigned int srcdata = 8;
        !          2565:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2566:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          2567:   uint16 dstdata = fetchword(dstaddr);
        !          2568:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2569: 
        !          2570:   storeword(dstaddr, outdata);
        !          2571: 
        !          2572:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          2573:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          2574:   XFLAG = CFLAG = srcdata > dstdata;
        !          2575:   NFLAG = ((sint16)outdata) < 0;
        !          2576:   ZFLAG = !outdata;
        !          2577:   PC+= 4;
        !          2578: }
        !          2579: 
        !          2580: void cpu_op_874a(t_ipc *ipc) /* SUB */ {
        !          2581:   /* mask fff8, bits 5170, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 6, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2582:   unsigned int srcdata = 8;
        !          2583:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2584:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          2585:   uint16 dstdata = fetchword(dstaddr);
        !          2586:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2587: 
        !          2588:   storeword(dstaddr, outdata);
        !          2589:   PC+= 4;
        !          2590: }
        !          2591: 
        !          2592: void cpu_op_874b(t_ipc *ipc) /* SUB */ {
        !          2593:   /* mask fff8, bits 5170, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 6, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2594:   unsigned int srcdata = 8;
        !          2595:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2596:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          2597:   uint16 dstdata = fetchword(dstaddr);
        !          2598:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2599: 
        !          2600:   storeword(dstaddr, outdata);
        !          2601: 
        !          2602:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          2603:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          2604:   XFLAG = CFLAG = srcdata > dstdata;
        !          2605:   NFLAG = ((sint16)outdata) < 0;
        !          2606:   ZFLAG = !outdata;
        !          2607:   PC+= 4;
        !          2608: }
        !          2609: 
        !          2610: void cpu_op_875a(t_ipc *ipc) /* SUB */ {
        !          2611:   /* mask ffff, bits 5178, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 7, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2612:   unsigned int srcdata = 8;
        !          2613:   uint32 dstaddr = ipc->dst;
        !          2614:   uint16 dstdata = fetchword(dstaddr);
        !          2615:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2616: 
        !          2617:   storeword(dstaddr, outdata);
        !          2618:   PC+= 4;
        !          2619: }
        !          2620: 
        !          2621: void cpu_op_875b(t_ipc *ipc) /* SUB */ {
        !          2622:   /* mask ffff, bits 5178, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 7, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2623:   unsigned int srcdata = 8;
        !          2624:   uint32 dstaddr = ipc->dst;
        !          2625:   uint16 dstdata = fetchword(dstaddr);
        !          2626:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2627: 
        !          2628:   storeword(dstaddr, outdata);
        !          2629: 
        !          2630:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          2631:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          2632:   XFLAG = CFLAG = srcdata > dstdata;
        !          2633:   NFLAG = ((sint16)outdata) < 0;
        !          2634:   ZFLAG = !outdata;
        !          2635:   PC+= 4;
        !          2636: }
        !          2637: 
        !          2638: void cpu_op_876a(t_ipc *ipc) /* SUB */ {
        !          2639:   /* mask ffff, bits 5179, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 8, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2640:   unsigned int srcdata = 8;
        !          2641:   uint32 dstaddr = ipc->dst;
        !          2642:   uint16 dstdata = fetchword(dstaddr);
        !          2643:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2644: 
        !          2645:   storeword(dstaddr, outdata);
        !          2646:   PC+= 6;
        !          2647: }
        !          2648: 
        !          2649: void cpu_op_876b(t_ipc *ipc) /* SUB */ {
        !          2650:   /* mask ffff, bits 5179, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 2, stype 14, dtype 8, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2651:   unsigned int srcdata = 8;
        !          2652:   uint32 dstaddr = ipc->dst;
        !          2653:   uint16 dstdata = fetchword(dstaddr);
        !          2654:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2655: 
        !          2656:   storeword(dstaddr, outdata);
        !          2657: 
        !          2658:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          2659:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          2660:   XFLAG = CFLAG = srcdata > dstdata;
        !          2661:   NFLAG = ((sint16)outdata) < 0;
        !          2662:   ZFLAG = !outdata;
        !          2663:   PC+= 6;
        !          2664: }
        !          2665: 
        !          2666: void cpu_op_877a(t_ipc *ipc) /* SUB */ {
        !          2667:   /* mask fff8, bits 5180, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 0, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2668:   unsigned int srcdata = 8;
        !          2669:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2670:   uint32 dstdata = DATAREG(dstreg);
        !          2671:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2672: 
        !          2673:   DATAREG(dstreg) = outdata;
        !          2674:   PC+= 2;
        !          2675: }
        !          2676: 
        !          2677: void cpu_op_877b(t_ipc *ipc) /* SUB */ {
        !          2678:   /* mask fff8, bits 5180, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 0, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2679:   unsigned int srcdata = 8;
        !          2680:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2681:   uint32 dstdata = DATAREG(dstreg);
        !          2682:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2683: 
        !          2684:   DATAREG(dstreg) = outdata;
        !          2685: 
        !          2686:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2687:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2688:   XFLAG = CFLAG = srcdata > dstdata;
        !          2689:   NFLAG = ((sint32)outdata) < 0;
        !          2690:   ZFLAG = !outdata;
        !          2691:   PC+= 2;
        !          2692: }
        !          2693: 
        !          2694: void cpu_op_878a(t_ipc *ipc) /* SUB */ {
        !          2695:   /* mask fff8, bits 5190, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 2, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2696:   unsigned int srcdata = 8;
        !          2697:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2698:   uint32 dstaddr = ADDRREG(dstreg);
        !          2699:   uint32 dstdata = fetchlong(dstaddr);
        !          2700:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2701: 
        !          2702:   storelong(dstaddr, outdata);
        !          2703:   PC+= 2;
        !          2704: }
        !          2705: 
        !          2706: void cpu_op_878b(t_ipc *ipc) /* SUB */ {
        !          2707:   /* mask fff8, bits 5190, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 2, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2708:   unsigned int srcdata = 8;
        !          2709:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2710:   uint32 dstaddr = ADDRREG(dstreg);
        !          2711:   uint32 dstdata = fetchlong(dstaddr);
        !          2712:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2713: 
        !          2714:   storelong(dstaddr, outdata);
        !          2715: 
        !          2716:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2717:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2718:   XFLAG = CFLAG = srcdata > dstdata;
        !          2719:   NFLAG = ((sint32)outdata) < 0;
        !          2720:   ZFLAG = !outdata;
        !          2721:   PC+= 2;
        !          2722: }
        !          2723: 
        !          2724: void cpu_op_879a(t_ipc *ipc) /* SUB */ {
        !          2725:   /* mask fff8, bits 5198, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 3, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2726:   unsigned int srcdata = 8;
        !          2727:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2728:   uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
        !          2729:   uint32 dstdata = fetchlong(dstaddr);
        !          2730:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2731: 
        !          2732:   storelong(dstaddr, outdata);
        !          2733:   PC+= 2;
        !          2734: }
        !          2735: 
        !          2736: void cpu_op_879b(t_ipc *ipc) /* SUB */ {
        !          2737:   /* mask fff8, bits 5198, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 3, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2738:   unsigned int srcdata = 8;
        !          2739:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2740:   uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
        !          2741:   uint32 dstdata = fetchlong(dstaddr);
        !          2742:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2743: 
        !          2744:   storelong(dstaddr, outdata);
        !          2745: 
        !          2746:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2747:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2748:   XFLAG = CFLAG = srcdata > dstdata;
        !          2749:   NFLAG = ((sint32)outdata) < 0;
        !          2750:   ZFLAG = !outdata;
        !          2751:   PC+= 2;
        !          2752: }
        !          2753: 
        !          2754: void cpu_op_880a(t_ipc *ipc) /* SUB */ {
        !          2755:   /* mask fff8, bits 51a0, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 4, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2756:   unsigned int srcdata = 8;
        !          2757:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2758:   uint32 dstaddr = ADDRREG(dstreg)-=4;
        !          2759:   uint32 dstdata = fetchlong(dstaddr);
        !          2760:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2761: 
        !          2762:   storelong(dstaddr, outdata);
        !          2763:   PC+= 2;
        !          2764: }
        !          2765: 
        !          2766: void cpu_op_880b(t_ipc *ipc) /* SUB */ {
        !          2767:   /* mask fff8, bits 51a0, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 4, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2768:   unsigned int srcdata = 8;
        !          2769:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2770:   uint32 dstaddr = ADDRREG(dstreg)-=4;
        !          2771:   uint32 dstdata = fetchlong(dstaddr);
        !          2772:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2773: 
        !          2774:   storelong(dstaddr, outdata);
        !          2775: 
        !          2776:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2777:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2778:   XFLAG = CFLAG = srcdata > dstdata;
        !          2779:   NFLAG = ((sint32)outdata) < 0;
        !          2780:   ZFLAG = !outdata;
        !          2781:   PC+= 2;
        !          2782: }
        !          2783: 
        !          2784: void cpu_op_881a(t_ipc *ipc) /* SUB */ {
        !          2785:   /* mask fff8, bits 51a8, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 5, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2786:   unsigned int srcdata = 8;
        !          2787:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2788:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          2789:   uint32 dstdata = fetchlong(dstaddr);
        !          2790:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2791: 
        !          2792:   storelong(dstaddr, outdata);
        !          2793:   PC+= 4;
        !          2794: }
        !          2795: 
        !          2796: void cpu_op_881b(t_ipc *ipc) /* SUB */ {
        !          2797:   /* mask fff8, bits 51a8, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 5, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2798:   unsigned int srcdata = 8;
        !          2799:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2800:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          2801:   uint32 dstdata = fetchlong(dstaddr);
        !          2802:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2803: 
        !          2804:   storelong(dstaddr, outdata);
        !          2805: 
        !          2806:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2807:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2808:   XFLAG = CFLAG = srcdata > dstdata;
        !          2809:   NFLAG = ((sint32)outdata) < 0;
        !          2810:   ZFLAG = !outdata;
        !          2811:   PC+= 4;
        !          2812: }
        !          2813: 
        !          2814: void cpu_op_882a(t_ipc *ipc) /* SUB */ {
        !          2815:   /* mask fff8, bits 51b0, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 6, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2816:   unsigned int srcdata = 8;
        !          2817:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2818:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          2819:   uint32 dstdata = fetchlong(dstaddr);
        !          2820:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2821: 
        !          2822:   storelong(dstaddr, outdata);
        !          2823:   PC+= 4;
        !          2824: }
        !          2825: 
        !          2826: void cpu_op_882b(t_ipc *ipc) /* SUB */ {
        !          2827:   /* mask fff8, bits 51b0, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 6, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2828:   unsigned int srcdata = 8;
        !          2829:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2830:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          2831:   uint32 dstdata = fetchlong(dstaddr);
        !          2832:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2833: 
        !          2834:   storelong(dstaddr, outdata);
        !          2835: 
        !          2836:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2837:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2838:   XFLAG = CFLAG = srcdata > dstdata;
        !          2839:   NFLAG = ((sint32)outdata) < 0;
        !          2840:   ZFLAG = !outdata;
        !          2841:   PC+= 4;
        !          2842: }
        !          2843: 
        !          2844: void cpu_op_883a(t_ipc *ipc) /* SUB */ {
        !          2845:   /* mask ffff, bits 51b8, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 7, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2846:   unsigned int srcdata = 8;
        !          2847:   uint32 dstaddr = ipc->dst;
        !          2848:   uint32 dstdata = fetchlong(dstaddr);
        !          2849:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2850: 
        !          2851:   storelong(dstaddr, outdata);
        !          2852:   PC+= 4;
        !          2853: }
        !          2854: 
        !          2855: void cpu_op_883b(t_ipc *ipc) /* SUB */ {
        !          2856:   /* mask ffff, bits 51b8, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 7, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2857:   unsigned int srcdata = 8;
        !          2858:   uint32 dstaddr = ipc->dst;
        !          2859:   uint32 dstdata = fetchlong(dstaddr);
        !          2860:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2861: 
        !          2862:   storelong(dstaddr, outdata);
        !          2863: 
        !          2864:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2865:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2866:   XFLAG = CFLAG = srcdata > dstdata;
        !          2867:   NFLAG = ((sint32)outdata) < 0;
        !          2868:   ZFLAG = !outdata;
        !          2869:   PC+= 4;
        !          2870: }
        !          2871: 
        !          2872: void cpu_op_884a(t_ipc *ipc) /* SUB */ {
        !          2873:   /* mask ffff, bits 51b9, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 8, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2874:   unsigned int srcdata = 8;
        !          2875:   uint32 dstaddr = ipc->dst;
        !          2876:   uint32 dstdata = fetchlong(dstaddr);
        !          2877:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2878: 
        !          2879:   storelong(dstaddr, outdata);
        !          2880:   PC+= 6;
        !          2881: }
        !          2882: 
        !          2883: void cpu_op_884b(t_ipc *ipc) /* SUB */ {
        !          2884:   /* mask ffff, bits 51b9, mnemonic 7, priv 0, endblk 0, imm_notzero 0, used 0     set -1, size 3, stype 14, dtype 8, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2885:   unsigned int srcdata = 8;
        !          2886:   uint32 dstaddr = ipc->dst;
        !          2887:   uint32 dstdata = fetchlong(dstaddr);
        !          2888:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2889: 
        !          2890:   storelong(dstaddr, outdata);
        !          2891: 
        !          2892:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2893:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2894:   XFLAG = CFLAG = srcdata > dstdata;
        !          2895:   NFLAG = ((sint32)outdata) < 0;
        !          2896:   ZFLAG = !outdata;
        !          2897:   PC+= 6;
        !          2898: }
        !          2899: 
        !          2900: void cpu_op_885a(t_ipc *ipc) /* SUBA */ {
        !          2901:   /* mask fff8, bits 5148, mnemonic 8, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 14, dtype 1, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2902:   unsigned int srcdata = 8;
        !          2903:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2904:   uint32 dstdata = ADDRREG(dstreg);
        !          2905:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2906: 
        !          2907:   ADDRREG(dstreg) = outdata;
        !          2908:   PC+= 2;
        !          2909: }
        !          2910: 
        !          2911: void cpu_op_886a(t_ipc *ipc) /* SUBA */ {
        !          2912:   /* mask fff8, bits 5188, mnemonic 8, priv 0, endblk 0, imm_notzero 0, used 0     set 0, size 3, stype 14, dtype 1, sbitpos 0, dbitpos 0, immvalue 8 */
        !          2913:   unsigned int srcdata = 8;
        !          2914:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2915:   uint32 dstdata = ADDRREG(dstreg);
        !          2916:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2917: 
        !          2918:   ADDRREG(dstreg) = outdata;
        !          2919:   PC+= 2;
        !          2920: }
        !          2921: 
        !          2922: void cpu_op_887a(t_ipc *ipc) /* Scc */ {
        !          2923:   /* mask fff8, bits 50c0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          2924:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2925:   uint8 cc = 1;
        !          2926:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          2927: 
        !          2928:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          2929:   PC+= 2;
        !          2930: }
        !          2931: 
        !          2932: void cpu_op_888a(t_ipc *ipc) /* Scc */ {
        !          2933:   /* mask fff8, bits 52c0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          2934:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2935:   uint8 cc = !(CFLAG || ZFLAG);
        !          2936:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          2937: 
        !          2938:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          2939:   PC+= 2;
        !          2940: }
        !          2941: 
        !          2942: void cpu_op_889a(t_ipc *ipc) /* Scc */ {
        !          2943:   /* mask fff8, bits 53c0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          2944:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2945:   uint8 cc = CFLAG || ZFLAG;
        !          2946:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          2947: 
        !          2948:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          2949:   PC+= 2;
        !          2950: }
        !          2951: 
        !          2952: void cpu_op_890a(t_ipc *ipc) /* Scc */ {
        !          2953:   /* mask fff8, bits 54c0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          2954:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2955:   uint8 cc = !CFLAG;
        !          2956:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          2957: 
        !          2958:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          2959:   PC+= 2;
        !          2960: }
        !          2961: 
        !          2962: void cpu_op_891a(t_ipc *ipc) /* Scc */ {
        !          2963:   /* mask fff8, bits 55c0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          2964:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2965:   uint8 cc = CFLAG;
        !          2966:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          2967: 
        !          2968:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          2969:   PC+= 2;
        !          2970: }
        !          2971: 
        !          2972: void cpu_op_892a(t_ipc *ipc) /* Scc */ {
        !          2973:   /* mask fff8, bits 56c0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          2974:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2975:   uint8 cc = !ZFLAG;
        !          2976:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          2977: 
        !          2978:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          2979:   PC+= 2;
        !          2980: }
        !          2981: 
        !          2982: void cpu_op_893a(t_ipc *ipc) /* Scc */ {
        !          2983:   /* mask fff8, bits 57c0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          2984:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2985:   uint8 cc = ZFLAG;
        !          2986:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          2987: 
        !          2988:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          2989:   PC+= 2;
        !          2990: }
        !          2991: 
        !          2992: void cpu_op_894a(t_ipc *ipc) /* Scc */ {
        !          2993:   /* mask fff8, bits 58c0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          2994:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2995:   uint8 cc = !VFLAG;
        !          2996:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          2997: 
        !          2998:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          2999:   PC+= 2;
        !          3000: }
        !          3001: 
        !          3002: void cpu_op_895a(t_ipc *ipc) /* Scc */ {
        !          3003:   /* mask fff8, bits 59c0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3004:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3005:   uint8 cc = VFLAG;
        !          3006:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3007: 
        !          3008:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          3009:   PC+= 2;
        !          3010: }
        !          3011: 
        !          3012: void cpu_op_896a(t_ipc *ipc) /* Scc */ {
        !          3013:   /* mask fff8, bits 5ac0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3014:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3015:   uint8 cc = !NFLAG;
        !          3016:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3017: 
        !          3018:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          3019:   PC+= 2;
        !          3020: }
        !          3021: 
        !          3022: void cpu_op_897a(t_ipc *ipc) /* Scc */ {
        !          3023:   /* mask fff8, bits 5bc0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3024:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3025:   uint8 cc = NFLAG;
        !          3026:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3027: 
        !          3028:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          3029:   PC+= 2;
        !          3030: }
        !          3031: 
        !          3032: void cpu_op_898a(t_ipc *ipc) /* Scc */ {
        !          3033:   /* mask fff8, bits 5cc0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3034:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3035:   uint8 cc = (NFLAG == VFLAG);
        !          3036:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3037: 
        !          3038:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          3039:   PC+= 2;
        !          3040: }
        !          3041: 
        !          3042: void cpu_op_899a(t_ipc *ipc) /* Scc */ {
        !          3043:   /* mask fff8, bits 5dc0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3044:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3045:   uint8 cc = (NFLAG != VFLAG);
        !          3046:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3047: 
        !          3048:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          3049:   PC+= 2;
        !          3050: }
        !          3051: 
        !          3052: void cpu_op_900a(t_ipc *ipc) /* Scc */ {
        !          3053:   /* mask fff8, bits 5ec0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3054:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3055:   uint8 cc = !ZFLAG && (NFLAG == VFLAG);
        !          3056:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3057: 
        !          3058:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          3059:   PC+= 2;
        !          3060: }
        !          3061: 
        !          3062: void cpu_op_901a(t_ipc *ipc) /* Scc */ {
        !          3063:   /* mask fff8, bits 5fc0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3064:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3065:   uint8 cc = ZFLAG || (NFLAG != VFLAG);
        !          3066:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3067: 
        !          3068:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          3069:   PC+= 2;
        !          3070: }
        !          3071: 
        !          3072: void cpu_op_902a(t_ipc *ipc) /* Scc */ {
        !          3073:   /* mask fff8, bits 50d0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3074:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3075:   uint32 srcaddr = ADDRREG(srcreg);
        !          3076:   uint8 cc = 1;
        !          3077:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3078: 
        !          3079:   storebyte(srcaddr, outdata);
        !          3080:   PC+= 2;
        !          3081: }
        !          3082: 
        !          3083: void cpu_op_903a(t_ipc *ipc) /* Scc */ {
        !          3084:   /* mask fff8, bits 52d0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3085:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3086:   uint32 srcaddr = ADDRREG(srcreg);
        !          3087:   uint8 cc = !(CFLAG || ZFLAG);
        !          3088:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3089: 
        !          3090:   storebyte(srcaddr, outdata);
        !          3091:   PC+= 2;
        !          3092: }
        !          3093: 
        !          3094: void cpu_op_904a(t_ipc *ipc) /* Scc */ {
        !          3095:   /* mask fff8, bits 53d0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3096:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3097:   uint32 srcaddr = ADDRREG(srcreg);
        !          3098:   uint8 cc = CFLAG || ZFLAG;
        !          3099:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3100: 
        !          3101:   storebyte(srcaddr, outdata);
        !          3102:   PC+= 2;
        !          3103: }
        !          3104: 
        !          3105: void cpu_op_905a(t_ipc *ipc) /* Scc */ {
        !          3106:   /* mask fff8, bits 54d0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3107:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3108:   uint32 srcaddr = ADDRREG(srcreg);
        !          3109:   uint8 cc = !CFLAG;
        !          3110:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3111: 
        !          3112:   storebyte(srcaddr, outdata);
        !          3113:   PC+= 2;
        !          3114: }
        !          3115: 
        !          3116: void cpu_op_906a(t_ipc *ipc) /* Scc */ {
        !          3117:   /* mask fff8, bits 55d0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3118:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3119:   uint32 srcaddr = ADDRREG(srcreg);
        !          3120:   uint8 cc = CFLAG;
        !          3121:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3122: 
        !          3123:   storebyte(srcaddr, outdata);
        !          3124:   PC+= 2;
        !          3125: }
        !          3126: 
        !          3127: void cpu_op_907a(t_ipc *ipc) /* Scc */ {
        !          3128:   /* mask fff8, bits 56d0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3129:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3130:   uint32 srcaddr = ADDRREG(srcreg);
        !          3131:   uint8 cc = !ZFLAG;
        !          3132:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3133: 
        !          3134:   storebyte(srcaddr, outdata);
        !          3135:   PC+= 2;
        !          3136: }
        !          3137: 
        !          3138: void cpu_op_908a(t_ipc *ipc) /* Scc */ {
        !          3139:   /* mask fff8, bits 57d0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3140:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3141:   uint32 srcaddr = ADDRREG(srcreg);
        !          3142:   uint8 cc = ZFLAG;
        !          3143:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3144: 
        !          3145:   storebyte(srcaddr, outdata);
        !          3146:   PC+= 2;
        !          3147: }
        !          3148: 
        !          3149: void cpu_op_909a(t_ipc *ipc) /* Scc */ {
        !          3150:   /* mask fff8, bits 58d0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3151:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3152:   uint32 srcaddr = ADDRREG(srcreg);
        !          3153:   uint8 cc = !VFLAG;
        !          3154:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3155: 
        !          3156:   storebyte(srcaddr, outdata);
        !          3157:   PC+= 2;
        !          3158: }
        !          3159: 
        !          3160: void cpu_op_910a(t_ipc *ipc) /* Scc */ {
        !          3161:   /* mask fff8, bits 59d0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3162:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3163:   uint32 srcaddr = ADDRREG(srcreg);
        !          3164:   uint8 cc = VFLAG;
        !          3165:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3166: 
        !          3167:   storebyte(srcaddr, outdata);
        !          3168:   PC+= 2;
        !          3169: }
        !          3170: 
        !          3171: void cpu_op_911a(t_ipc *ipc) /* Scc */ {
        !          3172:   /* mask fff8, bits 5ad0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3173:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3174:   uint32 srcaddr = ADDRREG(srcreg);
        !          3175:   uint8 cc = !NFLAG;
        !          3176:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3177: 
        !          3178:   storebyte(srcaddr, outdata);
        !          3179:   PC+= 2;
        !          3180: }
        !          3181: 
        !          3182: void cpu_op_912a(t_ipc *ipc) /* Scc */ {
        !          3183:   /* mask fff8, bits 5bd0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3184:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3185:   uint32 srcaddr = ADDRREG(srcreg);
        !          3186:   uint8 cc = NFLAG;
        !          3187:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3188: 
        !          3189:   storebyte(srcaddr, outdata);
        !          3190:   PC+= 2;
        !          3191: }
        !          3192: 
        !          3193: void cpu_op_913a(t_ipc *ipc) /* Scc */ {
        !          3194:   /* mask fff8, bits 5cd0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3195:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3196:   uint32 srcaddr = ADDRREG(srcreg);
        !          3197:   uint8 cc = (NFLAG == VFLAG);
        !          3198:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3199: 
        !          3200:   storebyte(srcaddr, outdata);
        !          3201:   PC+= 2;
        !          3202: }
        !          3203: 
        !          3204: void cpu_op_914a(t_ipc *ipc) /* Scc */ {
        !          3205:   /* mask fff8, bits 5dd0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3206:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3207:   uint32 srcaddr = ADDRREG(srcreg);
        !          3208:   uint8 cc = (NFLAG != VFLAG);
        !          3209:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3210: 
        !          3211:   storebyte(srcaddr, outdata);
        !          3212:   PC+= 2;
        !          3213: }
        !          3214: 
        !          3215: void cpu_op_915a(t_ipc *ipc) /* Scc */ {
        !          3216:   /* mask fff8, bits 5ed0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3217:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3218:   uint32 srcaddr = ADDRREG(srcreg);
        !          3219:   uint8 cc = !ZFLAG && (NFLAG == VFLAG);
        !          3220:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3221: 
        !          3222:   storebyte(srcaddr, outdata);
        !          3223:   PC+= 2;
        !          3224: }
        !          3225: 
        !          3226: void cpu_op_916a(t_ipc *ipc) /* Scc */ {
        !          3227:   /* mask fff8, bits 5fd0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3228:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3229:   uint32 srcaddr = ADDRREG(srcreg);
        !          3230:   uint8 cc = ZFLAG || (NFLAG != VFLAG);
        !          3231:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3232: 
        !          3233:   storebyte(srcaddr, outdata);
        !          3234:   PC+= 2;
        !          3235: }
        !          3236: 
        !          3237: void cpu_op_917a(t_ipc *ipc) /* Scc */ {
        !          3238:   /* mask fff8, bits 50d8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3239:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3240:   uint32 srcaddr = ADDRREG(srcreg);
        !          3241:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3242:   uint8 cc = 1;
        !          3243:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3244: 
        !          3245:   storebyte(srcaddr, outdata);
        !          3246:   PC+= 2;
        !          3247: }
        !          3248: 
        !          3249: void cpu_op_918a(t_ipc *ipc) /* Scc */ {
        !          3250:   /* mask fff8, bits 52d8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3251:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3252:   uint32 srcaddr = ADDRREG(srcreg);
        !          3253:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3254:   uint8 cc = !(CFLAG || ZFLAG);
        !          3255:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3256: 
        !          3257:   storebyte(srcaddr, outdata);
        !          3258:   PC+= 2;
        !          3259: }
        !          3260: 
        !          3261: void cpu_op_919a(t_ipc *ipc) /* Scc */ {
        !          3262:   /* mask fff8, bits 53d8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3263:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3264:   uint32 srcaddr = ADDRREG(srcreg);
        !          3265:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3266:   uint8 cc = CFLAG || ZFLAG;
        !          3267:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3268: 
        !          3269:   storebyte(srcaddr, outdata);
        !          3270:   PC+= 2;
        !          3271: }
        !          3272: 
        !          3273: void cpu_op_920a(t_ipc *ipc) /* Scc */ {
        !          3274:   /* mask fff8, bits 54d8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3275:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3276:   uint32 srcaddr = ADDRREG(srcreg);
        !          3277:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3278:   uint8 cc = !CFLAG;
        !          3279:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3280: 
        !          3281:   storebyte(srcaddr, outdata);
        !          3282:   PC+= 2;
        !          3283: }
        !          3284: 
        !          3285: void cpu_op_921a(t_ipc *ipc) /* Scc */ {
        !          3286:   /* mask fff8, bits 55d8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3287:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3288:   uint32 srcaddr = ADDRREG(srcreg);
        !          3289:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3290:   uint8 cc = CFLAG;
        !          3291:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3292: 
        !          3293:   storebyte(srcaddr, outdata);
        !          3294:   PC+= 2;
        !          3295: }
        !          3296: 
        !          3297: void cpu_op_922a(t_ipc *ipc) /* Scc */ {
        !          3298:   /* mask fff8, bits 56d8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3299:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3300:   uint32 srcaddr = ADDRREG(srcreg);
        !          3301:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3302:   uint8 cc = !ZFLAG;
        !          3303:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3304: 
        !          3305:   storebyte(srcaddr, outdata);
        !          3306:   PC+= 2;
        !          3307: }
        !          3308: 
        !          3309: void cpu_op_923a(t_ipc *ipc) /* Scc */ {
        !          3310:   /* mask fff8, bits 57d8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3311:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3312:   uint32 srcaddr = ADDRREG(srcreg);
        !          3313:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3314:   uint8 cc = ZFLAG;
        !          3315:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3316: 
        !          3317:   storebyte(srcaddr, outdata);
        !          3318:   PC+= 2;
        !          3319: }
        !          3320: 
        !          3321: void cpu_op_924a(t_ipc *ipc) /* Scc */ {
        !          3322:   /* mask fff8, bits 58d8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3323:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3324:   uint32 srcaddr = ADDRREG(srcreg);
        !          3325:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3326:   uint8 cc = !VFLAG;
        !          3327:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3328: 
        !          3329:   storebyte(srcaddr, outdata);
        !          3330:   PC+= 2;
        !          3331: }
        !          3332: 
        !          3333: void cpu_op_925a(t_ipc *ipc) /* Scc */ {
        !          3334:   /* mask fff8, bits 59d8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3335:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3336:   uint32 srcaddr = ADDRREG(srcreg);
        !          3337:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3338:   uint8 cc = VFLAG;
        !          3339:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3340: 
        !          3341:   storebyte(srcaddr, outdata);
        !          3342:   PC+= 2;
        !          3343: }
        !          3344: 
        !          3345: void cpu_op_926a(t_ipc *ipc) /* Scc */ {
        !          3346:   /* mask fff8, bits 5ad8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3347:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3348:   uint32 srcaddr = ADDRREG(srcreg);
        !          3349:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3350:   uint8 cc = !NFLAG;
        !          3351:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3352: 
        !          3353:   storebyte(srcaddr, outdata);
        !          3354:   PC+= 2;
        !          3355: }
        !          3356: 
        !          3357: void cpu_op_927a(t_ipc *ipc) /* Scc */ {
        !          3358:   /* mask fff8, bits 5bd8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3359:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3360:   uint32 srcaddr = ADDRREG(srcreg);
        !          3361:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3362:   uint8 cc = NFLAG;
        !          3363:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3364: 
        !          3365:   storebyte(srcaddr, outdata);
        !          3366:   PC+= 2;
        !          3367: }
        !          3368: 
        !          3369: void cpu_op_928a(t_ipc *ipc) /* Scc */ {
        !          3370:   /* mask fff8, bits 5cd8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3371:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3372:   uint32 srcaddr = ADDRREG(srcreg);
        !          3373:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3374:   uint8 cc = (NFLAG == VFLAG);
        !          3375:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3376: 
        !          3377:   storebyte(srcaddr, outdata);
        !          3378:   PC+= 2;
        !          3379: }
        !          3380: 
        !          3381: void cpu_op_929a(t_ipc *ipc) /* Scc */ {
        !          3382:   /* mask fff8, bits 5dd8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3383:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3384:   uint32 srcaddr = ADDRREG(srcreg);
        !          3385:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3386:   uint8 cc = (NFLAG != VFLAG);
        !          3387:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3388: 
        !          3389:   storebyte(srcaddr, outdata);
        !          3390:   PC+= 2;
        !          3391: }
        !          3392: 
        !          3393: void cpu_op_930a(t_ipc *ipc) /* Scc */ {
        !          3394:   /* mask fff8, bits 5ed8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3395:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3396:   uint32 srcaddr = ADDRREG(srcreg);
        !          3397:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3398:   uint8 cc = !ZFLAG && (NFLAG == VFLAG);
        !          3399:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3400: 
        !          3401:   storebyte(srcaddr, outdata);
        !          3402:   PC+= 2;
        !          3403: }
        !          3404: 
        !          3405: void cpu_op_931a(t_ipc *ipc) /* Scc */ {
        !          3406:   /* mask fff8, bits 5fd8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3407:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3408:   uint32 srcaddr = ADDRREG(srcreg);
        !          3409:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          3410:   uint8 cc = ZFLAG || (NFLAG != VFLAG);
        !          3411:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3412: 
        !          3413:   storebyte(srcaddr, outdata);
        !          3414:   PC+= 2;
        !          3415: }
        !          3416: 
        !          3417: void cpu_op_932a(t_ipc *ipc) /* Scc */ {
        !          3418:   /* mask fff8, bits 50e0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3419:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3420:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3421:   uint8 cc = 1;
        !          3422:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3423: 
        !          3424:   storebyte(srcaddr, outdata);
        !          3425:   PC+= 2;
        !          3426: }
        !          3427: 
        !          3428: void cpu_op_933a(t_ipc *ipc) /* Scc */ {
        !          3429:   /* mask fff8, bits 52e0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3430:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3431:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3432:   uint8 cc = !(CFLAG || ZFLAG);
        !          3433:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3434: 
        !          3435:   storebyte(srcaddr, outdata);
        !          3436:   PC+= 2;
        !          3437: }
        !          3438: 
        !          3439: void cpu_op_934a(t_ipc *ipc) /* Scc */ {
        !          3440:   /* mask fff8, bits 53e0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3441:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3442:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3443:   uint8 cc = CFLAG || ZFLAG;
        !          3444:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3445: 
        !          3446:   storebyte(srcaddr, outdata);
        !          3447:   PC+= 2;
        !          3448: }
        !          3449: 
        !          3450: void cpu_op_935a(t_ipc *ipc) /* Scc */ {
        !          3451:   /* mask fff8, bits 54e0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3452:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3453:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3454:   uint8 cc = !CFLAG;
        !          3455:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3456: 
        !          3457:   storebyte(srcaddr, outdata);
        !          3458:   PC+= 2;
        !          3459: }
        !          3460: 
        !          3461: void cpu_op_936a(t_ipc *ipc) /* Scc */ {
        !          3462:   /* mask fff8, bits 55e0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3463:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3464:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3465:   uint8 cc = CFLAG;
        !          3466:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3467: 
        !          3468:   storebyte(srcaddr, outdata);
        !          3469:   PC+= 2;
        !          3470: }
        !          3471: 
        !          3472: void cpu_op_937a(t_ipc *ipc) /* Scc */ {
        !          3473:   /* mask fff8, bits 56e0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3474:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3475:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3476:   uint8 cc = !ZFLAG;
        !          3477:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3478: 
        !          3479:   storebyte(srcaddr, outdata);
        !          3480:   PC+= 2;
        !          3481: }
        !          3482: 
        !          3483: void cpu_op_938a(t_ipc *ipc) /* Scc */ {
        !          3484:   /* mask fff8, bits 57e0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3485:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3486:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3487:   uint8 cc = ZFLAG;
        !          3488:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3489: 
        !          3490:   storebyte(srcaddr, outdata);
        !          3491:   PC+= 2;
        !          3492: }
        !          3493: 
        !          3494: void cpu_op_939a(t_ipc *ipc) /* Scc */ {
        !          3495:   /* mask fff8, bits 58e0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3496:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3497:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3498:   uint8 cc = !VFLAG;
        !          3499:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3500: 
        !          3501:   storebyte(srcaddr, outdata);
        !          3502:   PC+= 2;
        !          3503: }
        !          3504: 
        !          3505: void cpu_op_940a(t_ipc *ipc) /* Scc */ {
        !          3506:   /* mask fff8, bits 59e0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3507:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3508:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3509:   uint8 cc = VFLAG;
        !          3510:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3511: 
        !          3512:   storebyte(srcaddr, outdata);
        !          3513:   PC+= 2;
        !          3514: }
        !          3515: 
        !          3516: void cpu_op_941a(t_ipc *ipc) /* Scc */ {
        !          3517:   /* mask fff8, bits 5ae0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3518:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3519:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3520:   uint8 cc = !NFLAG;
        !          3521:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3522: 
        !          3523:   storebyte(srcaddr, outdata);
        !          3524:   PC+= 2;
        !          3525: }
        !          3526: 
        !          3527: void cpu_op_942a(t_ipc *ipc) /* Scc */ {
        !          3528:   /* mask fff8, bits 5be0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3529:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3530:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3531:   uint8 cc = NFLAG;
        !          3532:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3533: 
        !          3534:   storebyte(srcaddr, outdata);
        !          3535:   PC+= 2;
        !          3536: }
        !          3537: 
        !          3538: void cpu_op_943a(t_ipc *ipc) /* Scc */ {
        !          3539:   /* mask fff8, bits 5ce0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3540:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3541:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3542:   uint8 cc = (NFLAG == VFLAG);
        !          3543:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3544: 
        !          3545:   storebyte(srcaddr, outdata);
        !          3546:   PC+= 2;
        !          3547: }
        !          3548: 
        !          3549: void cpu_op_944a(t_ipc *ipc) /* Scc */ {
        !          3550:   /* mask fff8, bits 5de0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3551:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3552:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3553:   uint8 cc = (NFLAG != VFLAG);
        !          3554:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3555: 
        !          3556:   storebyte(srcaddr, outdata);
        !          3557:   PC+= 2;
        !          3558: }
        !          3559: 
        !          3560: void cpu_op_945a(t_ipc *ipc) /* Scc */ {
        !          3561:   /* mask fff8, bits 5ee0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3562:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3563:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3564:   uint8 cc = !ZFLAG && (NFLAG == VFLAG);
        !          3565:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3566: 
        !          3567:   storebyte(srcaddr, outdata);
        !          3568:   PC+= 2;
        !          3569: }
        !          3570: 
        !          3571: void cpu_op_946a(t_ipc *ipc) /* Scc */ {
        !          3572:   /* mask fff8, bits 5fe0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3573:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3574:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          3575:   uint8 cc = ZFLAG || (NFLAG != VFLAG);
        !          3576:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3577: 
        !          3578:   storebyte(srcaddr, outdata);
        !          3579:   PC+= 2;
        !          3580: }
        !          3581: 
        !          3582: void cpu_op_947a(t_ipc *ipc) /* Scc */ {
        !          3583:   /* mask fff8, bits 50e8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3584:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3585:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3586:   uint8 cc = 1;
        !          3587:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3588: 
        !          3589:   storebyte(srcaddr, outdata);
        !          3590:   PC+= 4;
        !          3591: }
        !          3592: 
        !          3593: void cpu_op_948a(t_ipc *ipc) /* Scc */ {
        !          3594:   /* mask fff8, bits 52e8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3595:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3596:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3597:   uint8 cc = !(CFLAG || ZFLAG);
        !          3598:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3599: 
        !          3600:   storebyte(srcaddr, outdata);
        !          3601:   PC+= 4;
        !          3602: }
        !          3603: 
        !          3604: void cpu_op_949a(t_ipc *ipc) /* Scc */ {
        !          3605:   /* mask fff8, bits 53e8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3606:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3607:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3608:   uint8 cc = CFLAG || ZFLAG;
        !          3609:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3610: 
        !          3611:   storebyte(srcaddr, outdata);
        !          3612:   PC+= 4;
        !          3613: }
        !          3614: 
        !          3615: void cpu_op_950a(t_ipc *ipc) /* Scc */ {
        !          3616:   /* mask fff8, bits 54e8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3617:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3618:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3619:   uint8 cc = !CFLAG;
        !          3620:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3621: 
        !          3622:   storebyte(srcaddr, outdata);
        !          3623:   PC+= 4;
        !          3624: }
        !          3625: 
        !          3626: void cpu_op_951a(t_ipc *ipc) /* Scc */ {
        !          3627:   /* mask fff8, bits 55e8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3628:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3629:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3630:   uint8 cc = CFLAG;
        !          3631:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3632: 
        !          3633:   storebyte(srcaddr, outdata);
        !          3634:   PC+= 4;
        !          3635: }
        !          3636: 
        !          3637: void cpu_op_952a(t_ipc *ipc) /* Scc */ {
        !          3638:   /* mask fff8, bits 56e8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3639:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3640:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3641:   uint8 cc = !ZFLAG;
        !          3642:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3643: 
        !          3644:   storebyte(srcaddr, outdata);
        !          3645:   PC+= 4;
        !          3646: }
        !          3647: 
        !          3648: void cpu_op_953a(t_ipc *ipc) /* Scc */ {
        !          3649:   /* mask fff8, bits 57e8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3650:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3651:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3652:   uint8 cc = ZFLAG;
        !          3653:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3654: 
        !          3655:   storebyte(srcaddr, outdata);
        !          3656:   PC+= 4;
        !          3657: }
        !          3658: 
        !          3659: void cpu_op_954a(t_ipc *ipc) /* Scc */ {
        !          3660:   /* mask fff8, bits 58e8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3661:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3662:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3663:   uint8 cc = !VFLAG;
        !          3664:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3665: 
        !          3666:   storebyte(srcaddr, outdata);
        !          3667:   PC+= 4;
        !          3668: }
        !          3669: 
        !          3670: void cpu_op_955a(t_ipc *ipc) /* Scc */ {
        !          3671:   /* mask fff8, bits 59e8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3672:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3673:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3674:   uint8 cc = VFLAG;
        !          3675:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3676: 
        !          3677:   storebyte(srcaddr, outdata);
        !          3678:   PC+= 4;
        !          3679: }
        !          3680: 
        !          3681: void cpu_op_956a(t_ipc *ipc) /* Scc */ {
        !          3682:   /* mask fff8, bits 5ae8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3683:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3684:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3685:   uint8 cc = !NFLAG;
        !          3686:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3687: 
        !          3688:   storebyte(srcaddr, outdata);
        !          3689:   PC+= 4;
        !          3690: }
        !          3691: 
        !          3692: void cpu_op_957a(t_ipc *ipc) /* Scc */ {
        !          3693:   /* mask fff8, bits 5be8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3694:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3695:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3696:   uint8 cc = NFLAG;
        !          3697:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3698: 
        !          3699:   storebyte(srcaddr, outdata);
        !          3700:   PC+= 4;
        !          3701: }
        !          3702: 
        !          3703: void cpu_op_958a(t_ipc *ipc) /* Scc */ {
        !          3704:   /* mask fff8, bits 5ce8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3705:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3706:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3707:   uint8 cc = (NFLAG == VFLAG);
        !          3708:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3709: 
        !          3710:   storebyte(srcaddr, outdata);
        !          3711:   PC+= 4;
        !          3712: }
        !          3713: 
        !          3714: void cpu_op_959a(t_ipc *ipc) /* Scc */ {
        !          3715:   /* mask fff8, bits 5de8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3716:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3717:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3718:   uint8 cc = (NFLAG != VFLAG);
        !          3719:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3720: 
        !          3721:   storebyte(srcaddr, outdata);
        !          3722:   PC+= 4;
        !          3723: }
        !          3724: 
        !          3725: void cpu_op_960a(t_ipc *ipc) /* Scc */ {
        !          3726:   /* mask fff8, bits 5ee8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3727:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3728:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3729:   uint8 cc = !ZFLAG && (NFLAG == VFLAG);
        !          3730:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3731: 
        !          3732:   storebyte(srcaddr, outdata);
        !          3733:   PC+= 4;
        !          3734: }
        !          3735: 
        !          3736: void cpu_op_961a(t_ipc *ipc) /* Scc */ {
        !          3737:   /* mask fff8, bits 5fe8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3738:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3739:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          3740:   uint8 cc = ZFLAG || (NFLAG != VFLAG);
        !          3741:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3742: 
        !          3743:   storebyte(srcaddr, outdata);
        !          3744:   PC+= 4;
        !          3745: }
        !          3746: 
        !          3747: void cpu_op_962a(t_ipc *ipc) /* Scc */ {
        !          3748:   /* mask fff8, bits 50f0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3749:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3750:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3751:   uint8 cc = 1;
        !          3752:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3753: 
        !          3754:   storebyte(srcaddr, outdata);
        !          3755:   PC+= 4;
        !          3756: }
        !          3757: 
        !          3758: void cpu_op_963a(t_ipc *ipc) /* Scc */ {
        !          3759:   /* mask fff8, bits 52f0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3760:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3761:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3762:   uint8 cc = !(CFLAG || ZFLAG);
        !          3763:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3764: 
        !          3765:   storebyte(srcaddr, outdata);
        !          3766:   PC+= 4;
        !          3767: }
        !          3768: 
        !          3769: void cpu_op_964a(t_ipc *ipc) /* Scc */ {
        !          3770:   /* mask fff8, bits 53f0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3771:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3772:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3773:   uint8 cc = CFLAG || ZFLAG;
        !          3774:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3775: 
        !          3776:   storebyte(srcaddr, outdata);
        !          3777:   PC+= 4;
        !          3778: }
        !          3779: 
        !          3780: void cpu_op_965a(t_ipc *ipc) /* Scc */ {
        !          3781:   /* mask fff8, bits 54f0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3782:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3783:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3784:   uint8 cc = !CFLAG;
        !          3785:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3786: 
        !          3787:   storebyte(srcaddr, outdata);
        !          3788:   PC+= 4;
        !          3789: }
        !          3790: 
        !          3791: void cpu_op_966a(t_ipc *ipc) /* Scc */ {
        !          3792:   /* mask fff8, bits 55f0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3793:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3794:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3795:   uint8 cc = CFLAG;
        !          3796:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3797: 
        !          3798:   storebyte(srcaddr, outdata);
        !          3799:   PC+= 4;
        !          3800: }
        !          3801: 
        !          3802: void cpu_op_967a(t_ipc *ipc) /* Scc */ {
        !          3803:   /* mask fff8, bits 56f0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3804:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3805:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3806:   uint8 cc = !ZFLAG;
        !          3807:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3808: 
        !          3809:   storebyte(srcaddr, outdata);
        !          3810:   PC+= 4;
        !          3811: }
        !          3812: 
        !          3813: void cpu_op_968a(t_ipc *ipc) /* Scc */ {
        !          3814:   /* mask fff8, bits 57f0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3815:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3816:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3817:   uint8 cc = ZFLAG;
        !          3818:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3819: 
        !          3820:   storebyte(srcaddr, outdata);
        !          3821:   PC+= 4;
        !          3822: }
        !          3823: 
        !          3824: void cpu_op_969a(t_ipc *ipc) /* Scc */ {
        !          3825:   /* mask fff8, bits 58f0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3826:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3827:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3828:   uint8 cc = !VFLAG;
        !          3829:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3830: 
        !          3831:   storebyte(srcaddr, outdata);
        !          3832:   PC+= 4;
        !          3833: }
        !          3834: 
        !          3835: void cpu_op_970a(t_ipc *ipc) /* Scc */ {
        !          3836:   /* mask fff8, bits 59f0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3837:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3838:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3839:   uint8 cc = VFLAG;
        !          3840:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3841: 
        !          3842:   storebyte(srcaddr, outdata);
        !          3843:   PC+= 4;
        !          3844: }
        !          3845: 
        !          3846: void cpu_op_971a(t_ipc *ipc) /* Scc */ {
        !          3847:   /* mask fff8, bits 5af0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3848:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3849:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3850:   uint8 cc = !NFLAG;
        !          3851:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3852: 
        !          3853:   storebyte(srcaddr, outdata);
        !          3854:   PC+= 4;
        !          3855: }
        !          3856: 
        !          3857: void cpu_op_972a(t_ipc *ipc) /* Scc */ {
        !          3858:   /* mask fff8, bits 5bf0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3859:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3860:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3861:   uint8 cc = NFLAG;
        !          3862:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3863: 
        !          3864:   storebyte(srcaddr, outdata);
        !          3865:   PC+= 4;
        !          3866: }
        !          3867: 
        !          3868: void cpu_op_973a(t_ipc *ipc) /* Scc */ {
        !          3869:   /* mask fff8, bits 5cf0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3870:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3871:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3872:   uint8 cc = (NFLAG == VFLAG);
        !          3873:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3874: 
        !          3875:   storebyte(srcaddr, outdata);
        !          3876:   PC+= 4;
        !          3877: }
        !          3878: 
        !          3879: void cpu_op_974a(t_ipc *ipc) /* Scc */ {
        !          3880:   /* mask fff8, bits 5df0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3881:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3882:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3883:   uint8 cc = (NFLAG != VFLAG);
        !          3884:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3885: 
        !          3886:   storebyte(srcaddr, outdata);
        !          3887:   PC+= 4;
        !          3888: }
        !          3889: 
        !          3890: void cpu_op_975a(t_ipc *ipc) /* Scc */ {
        !          3891:   /* mask fff8, bits 5ef0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3892:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3893:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3894:   uint8 cc = !ZFLAG && (NFLAG == VFLAG);
        !          3895:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3896: 
        !          3897:   storebyte(srcaddr, outdata);
        !          3898:   PC+= 4;
        !          3899: }
        !          3900: 
        !          3901: void cpu_op_976a(t_ipc *ipc) /* Scc */ {
        !          3902:   /* mask fff8, bits 5ff0, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3903:   int srcreg = (ipc->opcode >> 0) & 7;
        !          3904:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          3905:   uint8 cc = ZFLAG || (NFLAG != VFLAG);
        !          3906:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3907: 
        !          3908:   storebyte(srcaddr, outdata);
        !          3909:   PC+= 4;
        !          3910: }
        !          3911: 
        !          3912: void cpu_op_977a(t_ipc *ipc) /* Scc */ {
        !          3913:   /* mask ffff, bits 50f8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3914:   uint32 srcaddr = ipc->src;
        !          3915:   uint8 cc = 1;
        !          3916:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3917: 
        !          3918:   storebyte(srcaddr, outdata);
        !          3919:   PC+= 4;
        !          3920: }
        !          3921: 
        !          3922: void cpu_op_978a(t_ipc *ipc) /* Scc */ {
        !          3923:   /* mask ffff, bits 52f8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3924:   uint32 srcaddr = ipc->src;
        !          3925:   uint8 cc = !(CFLAG || ZFLAG);
        !          3926:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3927: 
        !          3928:   storebyte(srcaddr, outdata);
        !          3929:   PC+= 4;
        !          3930: }
        !          3931: 
        !          3932: void cpu_op_979a(t_ipc *ipc) /* Scc */ {
        !          3933:   /* mask ffff, bits 53f8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3934:   uint32 srcaddr = ipc->src;
        !          3935:   uint8 cc = CFLAG || ZFLAG;
        !          3936:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3937: 
        !          3938:   storebyte(srcaddr, outdata);
        !          3939:   PC+= 4;
        !          3940: }
        !          3941: 
        !          3942: void cpu_op_980a(t_ipc *ipc) /* Scc */ {
        !          3943:   /* mask ffff, bits 54f8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3944:   uint32 srcaddr = ipc->src;
        !          3945:   uint8 cc = !CFLAG;
        !          3946:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3947: 
        !          3948:   storebyte(srcaddr, outdata);
        !          3949:   PC+= 4;
        !          3950: }
        !          3951: 
        !          3952: void cpu_op_981a(t_ipc *ipc) /* Scc */ {
        !          3953:   /* mask ffff, bits 55f8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3954:   uint32 srcaddr = ipc->src;
        !          3955:   uint8 cc = CFLAG;
        !          3956:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3957: 
        !          3958:   storebyte(srcaddr, outdata);
        !          3959:   PC+= 4;
        !          3960: }
        !          3961: 
        !          3962: void cpu_op_982a(t_ipc *ipc) /* Scc */ {
        !          3963:   /* mask ffff, bits 56f8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3964:   uint32 srcaddr = ipc->src;
        !          3965:   uint8 cc = !ZFLAG;
        !          3966:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3967: 
        !          3968:   storebyte(srcaddr, outdata);
        !          3969:   PC+= 4;
        !          3970: }
        !          3971: 
        !          3972: void cpu_op_983a(t_ipc *ipc) /* Scc */ {
        !          3973:   /* mask ffff, bits 57f8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3974:   uint32 srcaddr = ipc->src;
        !          3975:   uint8 cc = ZFLAG;
        !          3976:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3977: 
        !          3978:   storebyte(srcaddr, outdata);
        !          3979:   PC+= 4;
        !          3980: }
        !          3981: 
        !          3982: void cpu_op_984a(t_ipc *ipc) /* Scc */ {
        !          3983:   /* mask ffff, bits 58f8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3984:   uint32 srcaddr = ipc->src;
        !          3985:   uint8 cc = !VFLAG;
        !          3986:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3987: 
        !          3988:   storebyte(srcaddr, outdata);
        !          3989:   PC+= 4;
        !          3990: }
        !          3991: 
        !          3992: void cpu_op_985a(t_ipc *ipc) /* Scc */ {
        !          3993:   /* mask ffff, bits 59f8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          3994:   uint32 srcaddr = ipc->src;
        !          3995:   uint8 cc = VFLAG;
        !          3996:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          3997: 
        !          3998:   storebyte(srcaddr, outdata);
        !          3999:   PC+= 4;
        !          4000: }
        !          4001: 
        !          4002: void cpu_op_986a(t_ipc *ipc) /* Scc */ {
        !          4003:   /* mask ffff, bits 5af8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4004:   uint32 srcaddr = ipc->src;
        !          4005:   uint8 cc = !NFLAG;
        !          4006:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4007: 
        !          4008:   storebyte(srcaddr, outdata);
        !          4009:   PC+= 4;
        !          4010: }
        !          4011: 
        !          4012: void cpu_op_987a(t_ipc *ipc) /* Scc */ {
        !          4013:   /* mask ffff, bits 5bf8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4014:   uint32 srcaddr = ipc->src;
        !          4015:   uint8 cc = NFLAG;
        !          4016:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4017: 
        !          4018:   storebyte(srcaddr, outdata);
        !          4019:   PC+= 4;
        !          4020: }
        !          4021: 
        !          4022: void cpu_op_988a(t_ipc *ipc) /* Scc */ {
        !          4023:   /* mask ffff, bits 5cf8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4024:   uint32 srcaddr = ipc->src;
        !          4025:   uint8 cc = (NFLAG == VFLAG);
        !          4026:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4027: 
        !          4028:   storebyte(srcaddr, outdata);
        !          4029:   PC+= 4;
        !          4030: }
        !          4031: 
        !          4032: void cpu_op_989a(t_ipc *ipc) /* Scc */ {
        !          4033:   /* mask ffff, bits 5df8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4034:   uint32 srcaddr = ipc->src;
        !          4035:   uint8 cc = (NFLAG != VFLAG);
        !          4036:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4037: 
        !          4038:   storebyte(srcaddr, outdata);
        !          4039:   PC+= 4;
        !          4040: }
        !          4041: 
        !          4042: void cpu_op_990a(t_ipc *ipc) /* Scc */ {
        !          4043:   /* mask ffff, bits 5ef8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4044:   uint32 srcaddr = ipc->src;
        !          4045:   uint8 cc = !ZFLAG && (NFLAG == VFLAG);
        !          4046:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4047: 
        !          4048:   storebyte(srcaddr, outdata);
        !          4049:   PC+= 4;
        !          4050: }
        !          4051: 
        !          4052: void cpu_op_991a(t_ipc *ipc) /* Scc */ {
        !          4053:   /* mask ffff, bits 5ff8, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4054:   uint32 srcaddr = ipc->src;
        !          4055:   uint8 cc = ZFLAG || (NFLAG != VFLAG);
        !          4056:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4057: 
        !          4058:   storebyte(srcaddr, outdata);
        !          4059:   PC+= 4;
        !          4060: }
        !          4061: 
        !          4062: void cpu_op_992a(t_ipc *ipc) /* Scc */ {
        !          4063:   /* mask ffff, bits 50f9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4064:   uint32 srcaddr = ipc->src;
        !          4065:   uint8 cc = 1;
        !          4066:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4067: 
        !          4068:   storebyte(srcaddr, outdata);
        !          4069:   PC+= 6;
        !          4070: }
        !          4071: 
        !          4072: void cpu_op_993a(t_ipc *ipc) /* Scc */ {
        !          4073:   /* mask ffff, bits 52f9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4074:   uint32 srcaddr = ipc->src;
        !          4075:   uint8 cc = !(CFLAG || ZFLAG);
        !          4076:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4077: 
        !          4078:   storebyte(srcaddr, outdata);
        !          4079:   PC+= 6;
        !          4080: }
        !          4081: 
        !          4082: void cpu_op_994a(t_ipc *ipc) /* Scc */ {
        !          4083:   /* mask ffff, bits 53f9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4084:   uint32 srcaddr = ipc->src;
        !          4085:   uint8 cc = CFLAG || ZFLAG;
        !          4086:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4087: 
        !          4088:   storebyte(srcaddr, outdata);
        !          4089:   PC+= 6;
        !          4090: }
        !          4091: 
        !          4092: void cpu_op_995a(t_ipc *ipc) /* Scc */ {
        !          4093:   /* mask ffff, bits 54f9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4094:   uint32 srcaddr = ipc->src;
        !          4095:   uint8 cc = !CFLAG;
        !          4096:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4097: 
        !          4098:   storebyte(srcaddr, outdata);
        !          4099:   PC+= 6;
        !          4100: }
        !          4101: 
        !          4102: void cpu_op_996a(t_ipc *ipc) /* Scc */ {
        !          4103:   /* mask ffff, bits 55f9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4104:   uint32 srcaddr = ipc->src;
        !          4105:   uint8 cc = CFLAG;
        !          4106:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4107: 
        !          4108:   storebyte(srcaddr, outdata);
        !          4109:   PC+= 6;
        !          4110: }
        !          4111: 
        !          4112: void cpu_op_997a(t_ipc *ipc) /* Scc */ {
        !          4113:   /* mask ffff, bits 56f9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4114:   uint32 srcaddr = ipc->src;
        !          4115:   uint8 cc = !ZFLAG;
        !          4116:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4117: 
        !          4118:   storebyte(srcaddr, outdata);
        !          4119:   PC+= 6;
        !          4120: }
        !          4121: 
        !          4122: void cpu_op_998a(t_ipc *ipc) /* Scc */ {
        !          4123:   /* mask ffff, bits 57f9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4124:   uint32 srcaddr = ipc->src;
        !          4125:   uint8 cc = ZFLAG;
        !          4126:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4127: 
        !          4128:   storebyte(srcaddr, outdata);
        !          4129:   PC+= 6;
        !          4130: }
        !          4131: 
        !          4132: void cpu_op_999a(t_ipc *ipc) /* Scc */ {
        !          4133:   /* mask ffff, bits 58f9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4134:   uint32 srcaddr = ipc->src;
        !          4135:   uint8 cc = !VFLAG;
        !          4136:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4137: 
        !          4138:   storebyte(srcaddr, outdata);
        !          4139:   PC+= 6;
        !          4140: }
        !          4141: 
        !          4142: void cpu_op_1000a(t_ipc *ipc) /* Scc */ {
        !          4143:   /* mask ffff, bits 59f9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4144:   uint32 srcaddr = ipc->src;
        !          4145:   uint8 cc = VFLAG;
        !          4146:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4147: 
        !          4148:   storebyte(srcaddr, outdata);
        !          4149:   PC+= 6;
        !          4150: }
        !          4151: 
        !          4152: void cpu_op_1001a(t_ipc *ipc) /* Scc */ {
        !          4153:   /* mask ffff, bits 5af9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4154:   uint32 srcaddr = ipc->src;
        !          4155:   uint8 cc = !NFLAG;
        !          4156:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4157: 
        !          4158:   storebyte(srcaddr, outdata);
        !          4159:   PC+= 6;
        !          4160: }
        !          4161: 
        !          4162: void cpu_op_1002a(t_ipc *ipc) /* Scc */ {
        !          4163:   /* mask ffff, bits 5bf9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4164:   uint32 srcaddr = ipc->src;
        !          4165:   uint8 cc = NFLAG;
        !          4166:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4167: 
        !          4168:   storebyte(srcaddr, outdata);
        !          4169:   PC+= 6;
        !          4170: }
        !          4171: 
        !          4172: void cpu_op_1003a(t_ipc *ipc) /* Scc */ {
        !          4173:   /* mask ffff, bits 5cf9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4174:   uint32 srcaddr = ipc->src;
        !          4175:   uint8 cc = (NFLAG == VFLAG);
        !          4176:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4177: 
        !          4178:   storebyte(srcaddr, outdata);
        !          4179:   PC+= 6;
        !          4180: }
        !          4181: 
        !          4182: void cpu_op_1004a(t_ipc *ipc) /* Scc */ {
        !          4183:   /* mask ffff, bits 5df9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4184:   uint32 srcaddr = ipc->src;
        !          4185:   uint8 cc = (NFLAG != VFLAG);
        !          4186:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4187: 
        !          4188:   storebyte(srcaddr, outdata);
        !          4189:   PC+= 6;
        !          4190: }
        !          4191: 
        !          4192: void cpu_op_1005a(t_ipc *ipc) /* Scc */ {
        !          4193:   /* mask ffff, bits 5ef9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4194:   uint32 srcaddr = ipc->src;
        !          4195:   uint8 cc = !ZFLAG && (NFLAG == VFLAG);
        !          4196:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4197: 
        !          4198:   storebyte(srcaddr, outdata);
        !          4199:   PC+= 6;
        !          4200: }
        !          4201: 
        !          4202: void cpu_op_1006a(t_ipc *ipc) /* Scc */ {
        !          4203:   /* mask ffff, bits 5ff9, mnemonic 58, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4204:   uint32 srcaddr = ipc->src;
        !          4205:   uint8 cc = ZFLAG || (NFLAG != VFLAG);
        !          4206:   uint8 outdata = cc ? (uint8)(-1) : 0;
        !          4207: 
        !          4208:   storebyte(srcaddr, outdata);
        !          4209:   PC+= 6;
        !          4210: }
        !          4211: 
        !          4212: void cpu_op_1007a(t_ipc *ipc) /* SF */ {
        !          4213:   /* mask fff8, bits 51c0, mnemonic 59, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 0, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4214:   int srcreg = (ipc->opcode >> 0) & 7;
        !          4215:   uint8 outdata = 0;
        !          4216: 
        !          4217:   DATAREG(srcreg) = (DATAREG(srcreg) & ~0xff) | outdata;
        !          4218:   PC+= 2;
        !          4219: }
        !          4220: 
        !          4221: void cpu_op_1008a(t_ipc *ipc) /* SF */ {
        !          4222:   /* mask fff8, bits 51d0, mnemonic 59, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 2, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4223:   int srcreg = (ipc->opcode >> 0) & 7;
        !          4224:   uint32 srcaddr = ADDRREG(srcreg);
        !          4225:   uint8 outdata = 0;
        !          4226: 
        !          4227:   storebyte(srcaddr, outdata);
        !          4228:   PC+= 2;
        !          4229: }
        !          4230: 
        !          4231: void cpu_op_1009a(t_ipc *ipc) /* SF */ {
        !          4232:   /* mask fff8, bits 51d8, mnemonic 59, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 3, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4233:   int srcreg = (ipc->opcode >> 0) & 7;
        !          4234:   uint32 srcaddr = ADDRREG(srcreg);
        !          4235:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          4236:   uint8 outdata = 0;
        !          4237: 
        !          4238:   storebyte(srcaddr, outdata);
        !          4239:   PC+= 2;
        !          4240: }
        !          4241: 
        !          4242: void cpu_op_1010a(t_ipc *ipc) /* SF */ {
        !          4243:   /* mask fff8, bits 51e0, mnemonic 59, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 4, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4244:   int srcreg = (ipc->opcode >> 0) & 7;
        !          4245:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !          4246:   uint8 outdata = 0;
        !          4247: 
        !          4248:   storebyte(srcaddr, outdata);
        !          4249:   PC+= 2;
        !          4250: }
        !          4251: 
        !          4252: void cpu_op_1011a(t_ipc *ipc) /* SF */ {
        !          4253:   /* mask fff8, bits 51e8, mnemonic 59, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 5, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4254:   int srcreg = (ipc->opcode >> 0) & 7;
        !          4255:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          4256:   uint8 outdata = 0;
        !          4257: 
        !          4258:   storebyte(srcaddr, outdata);
        !          4259:   PC+= 4;
        !          4260: }
        !          4261: 
        !          4262: void cpu_op_1012a(t_ipc *ipc) /* SF */ {
        !          4263:   /* mask fff8, bits 51f0, mnemonic 59, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 6, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4264:   int srcreg = (ipc->opcode >> 0) & 7;
        !          4265:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          4266:   uint8 outdata = 0;
        !          4267: 
        !          4268:   storebyte(srcaddr, outdata);
        !          4269:   PC+= 4;
        !          4270: }
        !          4271: 
        !          4272: void cpu_op_1013a(t_ipc *ipc) /* SF */ {
        !          4273:   /* mask ffff, bits 51f8, mnemonic 59, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 7, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4274:   uint32 srcaddr = ipc->src;
        !          4275:   uint8 outdata = 0;
        !          4276: 
        !          4277:   storebyte(srcaddr, outdata);
        !          4278:   PC+= 4;
        !          4279: }
        !          4280: 
        !          4281: void cpu_op_1014a(t_ipc *ipc) /* SF */ {
        !          4282:   /* mask ffff, bits 51f9, mnemonic 59, priv 0, endblk 0, imm_notzero 0, used -1     set 0, size 1, stype 8, dtype 20, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4283:   uint32 srcaddr = ipc->src;
        !          4284:   uint8 outdata = 0;
        !          4285: 
        !          4286:   storebyte(srcaddr, outdata);
        !          4287:   PC+= 6;
        !          4288: }
        !          4289: 
        !          4290: void cpu_op_1015a(t_ipc *ipc) /* DBcc */ {
        !          4291:   /* mask fff8, bits 50c8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4292:   uint32 srcdata = ipc->src;
        !          4293:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4294:   uint16 dstdata = DATAREG(dstreg);
        !          4295:   uint8 cc = 1;
        !          4296: 
        !          4297:   if (!cc) {
        !          4298:     dstdata-= 1;
        !          4299:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4300: | (dstdata & 0xFFFF);
        !          4301:     if ((sint16)dstdata != -1)
        !          4302:       PC = srcdata;
        !          4303:     else
        !          4304:       PC+= 4;
        !          4305:   } else
        !          4306:     PC+= 4;
        !          4307: }
        !          4308: 
        !          4309: void cpu_op_1016a(t_ipc *ipc) /* DBcc */ {
        !          4310:   /* mask fff8, bits 52c8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4311:   uint32 srcdata = ipc->src;
        !          4312:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4313:   uint16 dstdata = DATAREG(dstreg);
        !          4314:   uint8 cc = !(CFLAG || ZFLAG);
        !          4315: 
        !          4316:   if (!cc) {
        !          4317:     dstdata-= 1;
        !          4318:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4319: | (dstdata & 0xFFFF);
        !          4320:     if ((sint16)dstdata != -1)
        !          4321:       PC = srcdata;
        !          4322:     else
        !          4323:       PC+= 4;
        !          4324:   } else
        !          4325:     PC+= 4;
        !          4326: }
        !          4327: 
        !          4328: void cpu_op_1017a(t_ipc *ipc) /* DBcc */ {
        !          4329:   /* mask fff8, bits 53c8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4330:   uint32 srcdata = ipc->src;
        !          4331:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4332:   uint16 dstdata = DATAREG(dstreg);
        !          4333:   uint8 cc = CFLAG || ZFLAG;
        !          4334: 
        !          4335:   if (!cc) {
        !          4336:     dstdata-= 1;
        !          4337:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4338: | (dstdata & 0xFFFF);
        !          4339:     if ((sint16)dstdata != -1)
        !          4340:       PC = srcdata;
        !          4341:     else
        !          4342:       PC+= 4;
        !          4343:   } else
        !          4344:     PC+= 4;
        !          4345: }
        !          4346: 
        !          4347: void cpu_op_1018a(t_ipc *ipc) /* DBcc */ {
        !          4348:   /* mask fff8, bits 54c8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4349:   uint32 srcdata = ipc->src;
        !          4350:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4351:   uint16 dstdata = DATAREG(dstreg);
        !          4352:   uint8 cc = !CFLAG;
        !          4353: 
        !          4354:   if (!cc) {
        !          4355:     dstdata-= 1;
        !          4356:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4357: | (dstdata & 0xFFFF);
        !          4358:     if ((sint16)dstdata != -1)
        !          4359:       PC = srcdata;
        !          4360:     else
        !          4361:       PC+= 4;
        !          4362:   } else
        !          4363:     PC+= 4;
        !          4364: }
        !          4365: 
        !          4366: void cpu_op_1019a(t_ipc *ipc) /* DBcc */ {
        !          4367:   /* mask fff8, bits 55c8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4368:   uint32 srcdata = ipc->src;
        !          4369:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4370:   uint16 dstdata = DATAREG(dstreg);
        !          4371:   uint8 cc = CFLAG;
        !          4372: 
        !          4373:   if (!cc) {
        !          4374:     dstdata-= 1;
        !          4375:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4376: | (dstdata & 0xFFFF);
        !          4377:     if ((sint16)dstdata != -1)
        !          4378:       PC = srcdata;
        !          4379:     else
        !          4380:       PC+= 4;
        !          4381:   } else
        !          4382:     PC+= 4;
        !          4383: }
        !          4384: 
        !          4385: void cpu_op_1020a(t_ipc *ipc) /* DBcc */ {
        !          4386:   /* mask fff8, bits 56c8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4387:   uint32 srcdata = ipc->src;
        !          4388:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4389:   uint16 dstdata = DATAREG(dstreg);
        !          4390:   uint8 cc = !ZFLAG;
        !          4391: 
        !          4392:   if (!cc) {
        !          4393:     dstdata-= 1;
        !          4394:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4395: | (dstdata & 0xFFFF);
        !          4396:     if ((sint16)dstdata != -1)
        !          4397:       PC = srcdata;
        !          4398:     else
        !          4399:       PC+= 4;
        !          4400:   } else
        !          4401:     PC+= 4;
        !          4402: }
        !          4403: 
        !          4404: void cpu_op_1021a(t_ipc *ipc) /* DBcc */ {
        !          4405:   /* mask fff8, bits 57c8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4406:   uint32 srcdata = ipc->src;
        !          4407:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4408:   uint16 dstdata = DATAREG(dstreg);
        !          4409:   uint8 cc = ZFLAG;
        !          4410: 
        !          4411:   if (!cc) {
        !          4412:     dstdata-= 1;
        !          4413:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4414: | (dstdata & 0xFFFF);
        !          4415:     if ((sint16)dstdata != -1)
        !          4416:       PC = srcdata;
        !          4417:     else
        !          4418:       PC+= 4;
        !          4419:   } else
        !          4420:     PC+= 4;
        !          4421: }
        !          4422: 
        !          4423: void cpu_op_1022a(t_ipc *ipc) /* DBcc */ {
        !          4424:   /* mask fff8, bits 58c8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4425:   uint32 srcdata = ipc->src;
        !          4426:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4427:   uint16 dstdata = DATAREG(dstreg);
        !          4428:   uint8 cc = !VFLAG;
        !          4429: 
        !          4430:   if (!cc) {
        !          4431:     dstdata-= 1;
        !          4432:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4433: | (dstdata & 0xFFFF);
        !          4434:     if ((sint16)dstdata != -1)
        !          4435:       PC = srcdata;
        !          4436:     else
        !          4437:       PC+= 4;
        !          4438:   } else
        !          4439:     PC+= 4;
        !          4440: }
        !          4441: 
        !          4442: void cpu_op_1023a(t_ipc *ipc) /* DBcc */ {
        !          4443:   /* mask fff8, bits 59c8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4444:   uint32 srcdata = ipc->src;
        !          4445:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4446:   uint16 dstdata = DATAREG(dstreg);
        !          4447:   uint8 cc = VFLAG;
        !          4448: 
        !          4449:   if (!cc) {
        !          4450:     dstdata-= 1;
        !          4451:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4452: | (dstdata & 0xFFFF);
        !          4453:     if ((sint16)dstdata != -1)
        !          4454:       PC = srcdata;
        !          4455:     else
        !          4456:       PC+= 4;
        !          4457:   } else
        !          4458:     PC+= 4;
        !          4459: }
        !          4460: 
        !          4461: void cpu_op_1024a(t_ipc *ipc) /* DBcc */ {
        !          4462:   /* mask fff8, bits 5ac8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4463:   uint32 srcdata = ipc->src;
        !          4464:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4465:   uint16 dstdata = DATAREG(dstreg);
        !          4466:   uint8 cc = !NFLAG;
        !          4467: 
        !          4468:   if (!cc) {
        !          4469:     dstdata-= 1;
        !          4470:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4471: | (dstdata & 0xFFFF);
        !          4472:     if ((sint16)dstdata != -1)
        !          4473:       PC = srcdata;
        !          4474:     else
        !          4475:       PC+= 4;
        !          4476:   } else
        !          4477:     PC+= 4;
        !          4478: }
        !          4479: 
        !          4480: void cpu_op_1025a(t_ipc *ipc) /* DBcc */ {
        !          4481:   /* mask fff8, bits 5bc8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4482:   uint32 srcdata = ipc->src;
        !          4483:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4484:   uint16 dstdata = DATAREG(dstreg);
        !          4485:   uint8 cc = NFLAG;
        !          4486: 
        !          4487:   if (!cc) {
        !          4488:     dstdata-= 1;
        !          4489:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4490: | (dstdata & 0xFFFF);
        !          4491:     if ((sint16)dstdata != -1)
        !          4492:       PC = srcdata;
        !          4493:     else
        !          4494:       PC+= 4;
        !          4495:   } else
        !          4496:     PC+= 4;
        !          4497: }
        !          4498: 
        !          4499: void cpu_op_1026a(t_ipc *ipc) /* DBcc */ {
        !          4500:   /* mask fff8, bits 5cc8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4501:   uint32 srcdata = ipc->src;
        !          4502:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4503:   uint16 dstdata = DATAREG(dstreg);
        !          4504:   uint8 cc = (NFLAG == VFLAG);
        !          4505: 
        !          4506:   if (!cc) {
        !          4507:     dstdata-= 1;
        !          4508:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4509: | (dstdata & 0xFFFF);
        !          4510:     if ((sint16)dstdata != -1)
        !          4511:       PC = srcdata;
        !          4512:     else
        !          4513:       PC+= 4;
        !          4514:   } else
        !          4515:     PC+= 4;
        !          4516: }
        !          4517: 
        !          4518: void cpu_op_1027a(t_ipc *ipc) /* DBcc */ {
        !          4519:   /* mask fff8, bits 5dc8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4520:   uint32 srcdata = ipc->src;
        !          4521:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4522:   uint16 dstdata = DATAREG(dstreg);
        !          4523:   uint8 cc = (NFLAG != VFLAG);
        !          4524: 
        !          4525:   if (!cc) {
        !          4526:     dstdata-= 1;
        !          4527:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4528: | (dstdata & 0xFFFF);
        !          4529:     if ((sint16)dstdata != -1)
        !          4530:       PC = srcdata;
        !          4531:     else
        !          4532:       PC+= 4;
        !          4533:   } else
        !          4534:     PC+= 4;
        !          4535: }
        !          4536: 
        !          4537: void cpu_op_1028a(t_ipc *ipc) /* DBcc */ {
        !          4538:   /* mask fff8, bits 5ec8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4539:   uint32 srcdata = ipc->src;
        !          4540:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4541:   uint16 dstdata = DATAREG(dstreg);
        !          4542:   uint8 cc = !ZFLAG && (NFLAG == VFLAG);
        !          4543: 
        !          4544:   if (!cc) {
        !          4545:     dstdata-= 1;
        !          4546:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4547: | (dstdata & 0xFFFF);
        !          4548:     if ((sint16)dstdata != -1)
        !          4549:       PC = srcdata;
        !          4550:     else
        !          4551:       PC+= 4;
        !          4552:   } else
        !          4553:     PC+= 4;
        !          4554: }
        !          4555: 
        !          4556: void cpu_op_1029a(t_ipc *ipc) /* DBcc */ {
        !          4557:   /* mask fff8, bits 5fc8, mnemonic 60, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4558:   uint32 srcdata = ipc->src;
        !          4559:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4560:   uint16 dstdata = DATAREG(dstreg);
        !          4561:   uint8 cc = ZFLAG || (NFLAG != VFLAG);
        !          4562: 
        !          4563:   if (!cc) {
        !          4564:     dstdata-= 1;
        !          4565:     DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF)
        !          4566: | (dstdata & 0xFFFF);
        !          4567:     if ((sint16)dstdata != -1)
        !          4568:       PC = srcdata;
        !          4569:     else
        !          4570:       PC+= 4;
        !          4571:   } else
        !          4572:     PC+= 4;
        !          4573: }
        !          4574: 
        !          4575: void cpu_op_1030a(t_ipc *ipc) /* DBRA */ {
        !          4576:   /* mask fff8, bits 51c8, mnemonic 61, priv 0, endblk -1, imm_notzero 0, used -1     set 0, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 0, immvalue 0 */
        !          4577:   uint32 srcdata = ipc->src;
        !          4578:   int dstreg = (ipc->opcode >> 0) & 7;
        !          4579:   uint16 dstdata = DATAREG(dstreg);
        !          4580: 
        !          4581:   dstdata-= 1;
        !          4582:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xFFFF) | (dstdata & 0xFFFF);
        !          4583:   if ((sint16)dstdata != -1)
        !          4584:     PC = srcdata;
        !          4585:   else
        !          4586:     PC+= 4;
        !          4587: }
        !          4588: 

unix.superglobalmegacorp.com

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