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

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

unix.superglobalmegacorp.com

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