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

1.1     ! root        1: /*****************************************************************************/
        !             2: /*     Generator - Sega Genesis emulation - (c) James Ponder 1997-1998       */
        !             3: /*****************************************************************************/
        !             4: /*                                                                           */
        !             5: /* cpu68k-b.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_1229a(t_ipc *ipc) /* CMP */ {
        !            19:   /* mask f1f8, bits b000, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !            20:   int srcreg = (ipc->opcode >> 0) & 7;
        !            21:   uint8 srcdata = DATAREG(srcreg);
        !            22:   int dstreg = (ipc->opcode >> 9) & 7;
        !            23:   uint8 dstdata = DATAREG(dstreg);
        !            24:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !            25:   PC+= 2;
        !            26: }
        !            27: 
        !            28: void cpu_op_1229b(t_ipc *ipc) /* CMP */ {
        !            29:   /* mask f1f8, bits b000, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !            30:   int srcreg = (ipc->opcode >> 0) & 7;
        !            31:   uint8 srcdata = DATAREG(srcreg);
        !            32:   int dstreg = (ipc->opcode >> 9) & 7;
        !            33:   uint8 dstdata = DATAREG(dstreg);
        !            34:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !            35: 
        !            36:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !            37:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !            38:   CFLAG = srcdata > dstdata;
        !            39:   NFLAG = ((sint8)outdata) < 0;
        !            40:   ZFLAG = !outdata;
        !            41:   PC+= 2;
        !            42: }
        !            43: 
        !            44: void cpu_op_1230a(t_ipc *ipc) /* CMP */ {
        !            45:   /* mask f1f8, bits b008, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 1, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !            46:   int srcreg = (ipc->opcode >> 0) & 7;
        !            47:   uint8 srcdata = ADDRREG(srcreg);
        !            48:   int dstreg = (ipc->opcode >> 9) & 7;
        !            49:   uint8 dstdata = DATAREG(dstreg);
        !            50:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !            51:   PC+= 2;
        !            52: }
        !            53: 
        !            54: void cpu_op_1230b(t_ipc *ipc) /* CMP */ {
        !            55:   /* mask f1f8, bits b008, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 1, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !            56:   int srcreg = (ipc->opcode >> 0) & 7;
        !            57:   uint8 srcdata = ADDRREG(srcreg);
        !            58:   int dstreg = (ipc->opcode >> 9) & 7;
        !            59:   uint8 dstdata = DATAREG(dstreg);
        !            60:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !            61: 
        !            62:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !            63:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !            64:   CFLAG = srcdata > dstdata;
        !            65:   NFLAG = ((sint8)outdata) < 0;
        !            66:   ZFLAG = !outdata;
        !            67:   PC+= 2;
        !            68: }
        !            69: 
        !            70: void cpu_op_1231a(t_ipc *ipc) /* CMP */ {
        !            71:   /* mask f1f8, bits b010, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 2, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !            72:   int srcreg = (ipc->opcode >> 0) & 7;
        !            73:   uint32 srcaddr = ADDRREG(srcreg);
        !            74:   uint8 srcdata = fetchbyte(srcaddr);
        !            75:   int dstreg = (ipc->opcode >> 9) & 7;
        !            76:   uint8 dstdata = DATAREG(dstreg);
        !            77:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !            78:   PC+= 2;
        !            79: }
        !            80: 
        !            81: void cpu_op_1231b(t_ipc *ipc) /* CMP */ {
        !            82:   /* mask f1f8, bits b010, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 2, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !            83:   int srcreg = (ipc->opcode >> 0) & 7;
        !            84:   uint32 srcaddr = ADDRREG(srcreg);
        !            85:   uint8 srcdata = fetchbyte(srcaddr);
        !            86:   int dstreg = (ipc->opcode >> 9) & 7;
        !            87:   uint8 dstdata = DATAREG(dstreg);
        !            88:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !            89: 
        !            90:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !            91:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !            92:   CFLAG = srcdata > dstdata;
        !            93:   NFLAG = ((sint8)outdata) < 0;
        !            94:   ZFLAG = !outdata;
        !            95:   PC+= 2;
        !            96: }
        !            97: 
        !            98: void cpu_op_1232a(t_ipc *ipc) /* CMP */ {
        !            99:   /* mask f1f8, bits b018, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 3, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           100:   int srcreg = (ipc->opcode >> 0) & 7;
        !           101:   uint32 srcaddr = ADDRREG(srcreg);
        !           102:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !           103:   uint8 srcdata = fetchbyte(srcaddr);
        !           104:   int dstreg = (ipc->opcode >> 9) & 7;
        !           105:   uint8 dstdata = DATAREG(dstreg);
        !           106:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           107:   PC+= 2;
        !           108: }
        !           109: 
        !           110: void cpu_op_1232b(t_ipc *ipc) /* CMP */ {
        !           111:   /* mask f1f8, bits b018, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 3, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           112:   int srcreg = (ipc->opcode >> 0) & 7;
        !           113:   uint32 srcaddr = ADDRREG(srcreg);
        !           114:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !           115:   uint8 srcdata = fetchbyte(srcaddr);
        !           116:   int dstreg = (ipc->opcode >> 9) & 7;
        !           117:   uint8 dstdata = DATAREG(dstreg);
        !           118:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           119: 
        !           120:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           121:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           122:   CFLAG = srcdata > dstdata;
        !           123:   NFLAG = ((sint8)outdata) < 0;
        !           124:   ZFLAG = !outdata;
        !           125:   PC+= 2;
        !           126: }
        !           127: 
        !           128: void cpu_op_1233a(t_ipc *ipc) /* CMP */ {
        !           129:   /* mask f1f8, bits b020, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 4, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           130:   int srcreg = (ipc->opcode >> 0) & 7;
        !           131:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !           132:   uint8 srcdata = fetchbyte(srcaddr);
        !           133:   int dstreg = (ipc->opcode >> 9) & 7;
        !           134:   uint8 dstdata = DATAREG(dstreg);
        !           135:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           136:   PC+= 2;
        !           137: }
        !           138: 
        !           139: void cpu_op_1233b(t_ipc *ipc) /* CMP */ {
        !           140:   /* mask f1f8, bits b020, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 4, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           141:   int srcreg = (ipc->opcode >> 0) & 7;
        !           142:   uint32 srcaddr = (ADDRREG(srcreg)-= (srcreg == 7 ? 2 : 1));
        !           143:   uint8 srcdata = fetchbyte(srcaddr);
        !           144:   int dstreg = (ipc->opcode >> 9) & 7;
        !           145:   uint8 dstdata = DATAREG(dstreg);
        !           146:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           147: 
        !           148:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           149:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           150:   CFLAG = srcdata > dstdata;
        !           151:   NFLAG = ((sint8)outdata) < 0;
        !           152:   ZFLAG = !outdata;
        !           153:   PC+= 2;
        !           154: }
        !           155: 
        !           156: void cpu_op_1234a(t_ipc *ipc) /* CMP */ {
        !           157:   /* mask f1f8, bits b028, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 5, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           158:   int srcreg = (ipc->opcode >> 0) & 7;
        !           159:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !           160:   uint8 srcdata = fetchbyte(srcaddr);
        !           161:   int dstreg = (ipc->opcode >> 9) & 7;
        !           162:   uint8 dstdata = DATAREG(dstreg);
        !           163:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           164:   PC+= 4;
        !           165: }
        !           166: 
        !           167: void cpu_op_1234b(t_ipc *ipc) /* CMP */ {
        !           168:   /* mask f1f8, bits b028, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 5, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           169:   int srcreg = (ipc->opcode >> 0) & 7;
        !           170:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !           171:   uint8 srcdata = fetchbyte(srcaddr);
        !           172:   int dstreg = (ipc->opcode >> 9) & 7;
        !           173:   uint8 dstdata = DATAREG(dstreg);
        !           174:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           175: 
        !           176:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           177:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           178:   CFLAG = srcdata > dstdata;
        !           179:   NFLAG = ((sint8)outdata) < 0;
        !           180:   ZFLAG = !outdata;
        !           181:   PC+= 4;
        !           182: }
        !           183: 
        !           184: void cpu_op_1235a(t_ipc *ipc) /* CMP */ {
        !           185:   /* mask f1f8, bits b030, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 6, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           186:   int srcreg = (ipc->opcode >> 0) & 7;
        !           187:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !           188:   uint8 srcdata = fetchbyte(srcaddr);
        !           189:   int dstreg = (ipc->opcode >> 9) & 7;
        !           190:   uint8 dstdata = DATAREG(dstreg);
        !           191:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           192:   PC+= 4;
        !           193: }
        !           194: 
        !           195: void cpu_op_1235b(t_ipc *ipc) /* CMP */ {
        !           196:   /* mask f1f8, bits b030, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 6, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           197:   int srcreg = (ipc->opcode >> 0) & 7;
        !           198:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !           199:   uint8 srcdata = fetchbyte(srcaddr);
        !           200:   int dstreg = (ipc->opcode >> 9) & 7;
        !           201:   uint8 dstdata = DATAREG(dstreg);
        !           202:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           203: 
        !           204:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           205:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           206:   CFLAG = srcdata > dstdata;
        !           207:   NFLAG = ((sint8)outdata) < 0;
        !           208:   ZFLAG = !outdata;
        !           209:   PC+= 4;
        !           210: }
        !           211: 
        !           212: void cpu_op_1236a(t_ipc *ipc) /* CMP */ {
        !           213:   /* mask f1ff, bits b038, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 7, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           214:   uint32 srcaddr = ipc->src;
        !           215:   uint8 srcdata = fetchbyte(srcaddr);
        !           216:   int dstreg = (ipc->opcode >> 9) & 7;
        !           217:   uint8 dstdata = DATAREG(dstreg);
        !           218:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           219:   PC+= 4;
        !           220: }
        !           221: 
        !           222: void cpu_op_1236b(t_ipc *ipc) /* CMP */ {
        !           223:   /* mask f1ff, bits b038, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 7, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           224:   uint32 srcaddr = ipc->src;
        !           225:   uint8 srcdata = fetchbyte(srcaddr);
        !           226:   int dstreg = (ipc->opcode >> 9) & 7;
        !           227:   uint8 dstdata = DATAREG(dstreg);
        !           228:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           229: 
        !           230:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           231:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           232:   CFLAG = srcdata > dstdata;
        !           233:   NFLAG = ((sint8)outdata) < 0;
        !           234:   ZFLAG = !outdata;
        !           235:   PC+= 4;
        !           236: }
        !           237: 
        !           238: void cpu_op_1237a(t_ipc *ipc) /* CMP */ {
        !           239:   /* mask f1ff, bits b039, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 8, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           240:   uint32 srcaddr = ipc->src;
        !           241:   uint8 srcdata = fetchbyte(srcaddr);
        !           242:   int dstreg = (ipc->opcode >> 9) & 7;
        !           243:   uint8 dstdata = DATAREG(dstreg);
        !           244:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           245:   PC+= 6;
        !           246: }
        !           247: 
        !           248: void cpu_op_1237b(t_ipc *ipc) /* CMP */ {
        !           249:   /* mask f1ff, bits b039, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 8, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           250:   uint32 srcaddr = ipc->src;
        !           251:   uint8 srcdata = fetchbyte(srcaddr);
        !           252:   int dstreg = (ipc->opcode >> 9) & 7;
        !           253:   uint8 dstdata = DATAREG(dstreg);
        !           254:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           255: 
        !           256:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           257:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           258:   CFLAG = srcdata > dstdata;
        !           259:   NFLAG = ((sint8)outdata) < 0;
        !           260:   ZFLAG = !outdata;
        !           261:   PC+= 6;
        !           262: }
        !           263: 
        !           264: void cpu_op_1238a(t_ipc *ipc) /* CMP */ {
        !           265:   /* mask f1ff, bits b03a, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 9, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           266:   uint32 srcaddr = ipc->src;
        !           267:   uint8 srcdata = fetchbyte(srcaddr);
        !           268:   int dstreg = (ipc->opcode >> 9) & 7;
        !           269:   uint8 dstdata = DATAREG(dstreg);
        !           270:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           271:   PC+= 4;
        !           272: }
        !           273: 
        !           274: void cpu_op_1238b(t_ipc *ipc) /* CMP */ {
        !           275:   /* mask f1ff, bits b03a, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 9, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           276:   uint32 srcaddr = ipc->src;
        !           277:   uint8 srcdata = fetchbyte(srcaddr);
        !           278:   int dstreg = (ipc->opcode >> 9) & 7;
        !           279:   uint8 dstdata = DATAREG(dstreg);
        !           280:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           281: 
        !           282:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           283:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           284:   CFLAG = srcdata > dstdata;
        !           285:   NFLAG = ((sint8)outdata) < 0;
        !           286:   ZFLAG = !outdata;
        !           287:   PC+= 4;
        !           288: }
        !           289: 
        !           290: void cpu_op_1239a(t_ipc *ipc) /* CMP */ {
        !           291:   /* mask f1ff, bits b03b, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 10, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           292:   uint32 srcaddr = idxval_src(ipc);
        !           293:   uint8 srcdata = fetchbyte(srcaddr);
        !           294:   int dstreg = (ipc->opcode >> 9) & 7;
        !           295:   uint8 dstdata = DATAREG(dstreg);
        !           296:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           297:   PC+= 4;
        !           298: }
        !           299: 
        !           300: void cpu_op_1239b(t_ipc *ipc) /* CMP */ {
        !           301:   /* mask f1ff, bits b03b, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 10, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           302:   uint32 srcaddr = idxval_src(ipc);
        !           303:   uint8 srcdata = fetchbyte(srcaddr);
        !           304:   int dstreg = (ipc->opcode >> 9) & 7;
        !           305:   uint8 dstdata = DATAREG(dstreg);
        !           306:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           307: 
        !           308:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           309:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           310:   CFLAG = srcdata > dstdata;
        !           311:   NFLAG = ((sint8)outdata) < 0;
        !           312:   ZFLAG = !outdata;
        !           313:   PC+= 4;
        !           314: }
        !           315: 
        !           316: void cpu_op_1240a(t_ipc *ipc) /* CMP */ {
        !           317:   /* mask f1ff, bits b03c, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 11, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           318:   uint8 srcdata = ipc->src;
        !           319:   int dstreg = (ipc->opcode >> 9) & 7;
        !           320:   uint8 dstdata = DATAREG(dstreg);
        !           321:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           322:   PC+= 4;
        !           323: }
        !           324: 
        !           325: void cpu_op_1240b(t_ipc *ipc) /* CMP */ {
        !           326:   /* mask f1ff, bits b03c, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 11, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           327:   uint8 srcdata = ipc->src;
        !           328:   int dstreg = (ipc->opcode >> 9) & 7;
        !           329:   uint8 dstdata = DATAREG(dstreg);
        !           330:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !           331: 
        !           332:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !           333:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !           334:   CFLAG = srcdata > dstdata;
        !           335:   NFLAG = ((sint8)outdata) < 0;
        !           336:   ZFLAG = !outdata;
        !           337:   PC+= 4;
        !           338: }
        !           339: 
        !           340: void cpu_op_1241a(t_ipc *ipc) /* CMP */ {
        !           341:   /* mask f1f8, bits b040, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           342:   int srcreg = (ipc->opcode >> 0) & 7;
        !           343:   uint16 srcdata = DATAREG(srcreg);
        !           344:   int dstreg = (ipc->opcode >> 9) & 7;
        !           345:   uint16 dstdata = DATAREG(dstreg);
        !           346:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           347:   PC+= 2;
        !           348: }
        !           349: 
        !           350: void cpu_op_1241b(t_ipc *ipc) /* CMP */ {
        !           351:   /* mask f1f8, bits b040, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           352:   int srcreg = (ipc->opcode >> 0) & 7;
        !           353:   uint16 srcdata = DATAREG(srcreg);
        !           354:   int dstreg = (ipc->opcode >> 9) & 7;
        !           355:   uint16 dstdata = DATAREG(dstreg);
        !           356:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           357: 
        !           358:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !           359:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           360:   CFLAG = srcdata > dstdata;
        !           361:   NFLAG = ((sint16)outdata) < 0;
        !           362:   ZFLAG = !outdata;
        !           363:   PC+= 2;
        !           364: }
        !           365: 
        !           366: void cpu_op_1242a(t_ipc *ipc) /* CMP */ {
        !           367:   /* mask f1f8, bits b048, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 1, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           368:   int srcreg = (ipc->opcode >> 0) & 7;
        !           369:   uint16 srcdata = ADDRREG(srcreg);
        !           370:   int dstreg = (ipc->opcode >> 9) & 7;
        !           371:   uint16 dstdata = DATAREG(dstreg);
        !           372:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           373:   PC+= 2;
        !           374: }
        !           375: 
        !           376: void cpu_op_1242b(t_ipc *ipc) /* CMP */ {
        !           377:   /* mask f1f8, bits b048, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 1, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           378:   int srcreg = (ipc->opcode >> 0) & 7;
        !           379:   uint16 srcdata = ADDRREG(srcreg);
        !           380:   int dstreg = (ipc->opcode >> 9) & 7;
        !           381:   uint16 dstdata = DATAREG(dstreg);
        !           382:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           383: 
        !           384:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !           385:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           386:   CFLAG = srcdata > dstdata;
        !           387:   NFLAG = ((sint16)outdata) < 0;
        !           388:   ZFLAG = !outdata;
        !           389:   PC+= 2;
        !           390: }
        !           391: 
        !           392: void cpu_op_1243a(t_ipc *ipc) /* CMP */ {
        !           393:   /* mask f1f8, bits b050, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 2, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           394:   int srcreg = (ipc->opcode >> 0) & 7;
        !           395:   uint32 srcaddr = ADDRREG(srcreg);
        !           396:   uint16 srcdata = fetchword(srcaddr);
        !           397:   int dstreg = (ipc->opcode >> 9) & 7;
        !           398:   uint16 dstdata = DATAREG(dstreg);
        !           399:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           400:   PC+= 2;
        !           401: }
        !           402: 
        !           403: void cpu_op_1243b(t_ipc *ipc) /* CMP */ {
        !           404:   /* mask f1f8, bits b050, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 2, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           405:   int srcreg = (ipc->opcode >> 0) & 7;
        !           406:   uint32 srcaddr = ADDRREG(srcreg);
        !           407:   uint16 srcdata = fetchword(srcaddr);
        !           408:   int dstreg = (ipc->opcode >> 9) & 7;
        !           409:   uint16 dstdata = DATAREG(dstreg);
        !           410:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           411: 
        !           412:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !           413:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           414:   CFLAG = srcdata > dstdata;
        !           415:   NFLAG = ((sint16)outdata) < 0;
        !           416:   ZFLAG = !outdata;
        !           417:   PC+= 2;
        !           418: }
        !           419: 
        !           420: void cpu_op_1244a(t_ipc *ipc) /* CMP */ {
        !           421:   /* mask f1f8, bits b058, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 3, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           422:   int srcreg = (ipc->opcode >> 0) & 7;
        !           423:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
        !           424:   uint16 srcdata = fetchword(srcaddr);
        !           425:   int dstreg = (ipc->opcode >> 9) & 7;
        !           426:   uint16 dstdata = DATAREG(dstreg);
        !           427:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           428:   PC+= 2;
        !           429: }
        !           430: 
        !           431: void cpu_op_1244b(t_ipc *ipc) /* CMP */ {
        !           432:   /* mask f1f8, bits b058, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 3, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           433:   int srcreg = (ipc->opcode >> 0) & 7;
        !           434:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
        !           435:   uint16 srcdata = fetchword(srcaddr);
        !           436:   int dstreg = (ipc->opcode >> 9) & 7;
        !           437:   uint16 dstdata = DATAREG(dstreg);
        !           438:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           439: 
        !           440:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !           441:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           442:   CFLAG = srcdata > dstdata;
        !           443:   NFLAG = ((sint16)outdata) < 0;
        !           444:   ZFLAG = !outdata;
        !           445:   PC+= 2;
        !           446: }
        !           447: 
        !           448: void cpu_op_1245a(t_ipc *ipc) /* CMP */ {
        !           449:   /* mask f1f8, bits b060, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 4, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           450:   int srcreg = (ipc->opcode >> 0) & 7;
        !           451:   uint32 srcaddr = ADDRREG(srcreg)-=2;
        !           452:   uint16 srcdata = fetchword(srcaddr);
        !           453:   int dstreg = (ipc->opcode >> 9) & 7;
        !           454:   uint16 dstdata = DATAREG(dstreg);
        !           455:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           456:   PC+= 2;
        !           457: }
        !           458: 
        !           459: void cpu_op_1245b(t_ipc *ipc) /* CMP */ {
        !           460:   /* mask f1f8, bits b060, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 4, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           461:   int srcreg = (ipc->opcode >> 0) & 7;
        !           462:   uint32 srcaddr = ADDRREG(srcreg)-=2;
        !           463:   uint16 srcdata = fetchword(srcaddr);
        !           464:   int dstreg = (ipc->opcode >> 9) & 7;
        !           465:   uint16 dstdata = DATAREG(dstreg);
        !           466:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           467: 
        !           468:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !           469:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           470:   CFLAG = srcdata > dstdata;
        !           471:   NFLAG = ((sint16)outdata) < 0;
        !           472:   ZFLAG = !outdata;
        !           473:   PC+= 2;
        !           474: }
        !           475: 
        !           476: void cpu_op_1246a(t_ipc *ipc) /* CMP */ {
        !           477:   /* mask f1f8, bits b068, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 5, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           478:   int srcreg = (ipc->opcode >> 0) & 7;
        !           479:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !           480:   uint16 srcdata = fetchword(srcaddr);
        !           481:   int dstreg = (ipc->opcode >> 9) & 7;
        !           482:   uint16 dstdata = DATAREG(dstreg);
        !           483:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           484:   PC+= 4;
        !           485: }
        !           486: 
        !           487: void cpu_op_1246b(t_ipc *ipc) /* CMP */ {
        !           488:   /* mask f1f8, bits b068, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 5, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           489:   int srcreg = (ipc->opcode >> 0) & 7;
        !           490:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !           491:   uint16 srcdata = fetchword(srcaddr);
        !           492:   int dstreg = (ipc->opcode >> 9) & 7;
        !           493:   uint16 dstdata = DATAREG(dstreg);
        !           494:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           495: 
        !           496:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !           497:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           498:   CFLAG = srcdata > dstdata;
        !           499:   NFLAG = ((sint16)outdata) < 0;
        !           500:   ZFLAG = !outdata;
        !           501:   PC+= 4;
        !           502: }
        !           503: 
        !           504: void cpu_op_1247a(t_ipc *ipc) /* CMP */ {
        !           505:   /* mask f1f8, bits b070, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 6, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           506:   int srcreg = (ipc->opcode >> 0) & 7;
        !           507:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !           508:   uint16 srcdata = fetchword(srcaddr);
        !           509:   int dstreg = (ipc->opcode >> 9) & 7;
        !           510:   uint16 dstdata = DATAREG(dstreg);
        !           511:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           512:   PC+= 4;
        !           513: }
        !           514: 
        !           515: void cpu_op_1247b(t_ipc *ipc) /* CMP */ {
        !           516:   /* mask f1f8, bits b070, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 6, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           517:   int srcreg = (ipc->opcode >> 0) & 7;
        !           518:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !           519:   uint16 srcdata = fetchword(srcaddr);
        !           520:   int dstreg = (ipc->opcode >> 9) & 7;
        !           521:   uint16 dstdata = DATAREG(dstreg);
        !           522:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           523: 
        !           524:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !           525:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           526:   CFLAG = srcdata > dstdata;
        !           527:   NFLAG = ((sint16)outdata) < 0;
        !           528:   ZFLAG = !outdata;
        !           529:   PC+= 4;
        !           530: }
        !           531: 
        !           532: void cpu_op_1248a(t_ipc *ipc) /* CMP */ {
        !           533:   /* mask f1ff, bits b078, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 7, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           534:   uint32 srcaddr = ipc->src;
        !           535:   uint16 srcdata = fetchword(srcaddr);
        !           536:   int dstreg = (ipc->opcode >> 9) & 7;
        !           537:   uint16 dstdata = DATAREG(dstreg);
        !           538:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           539:   PC+= 4;
        !           540: }
        !           541: 
        !           542: void cpu_op_1248b(t_ipc *ipc) /* CMP */ {
        !           543:   /* mask f1ff, bits b078, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 7, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           544:   uint32 srcaddr = ipc->src;
        !           545:   uint16 srcdata = fetchword(srcaddr);
        !           546:   int dstreg = (ipc->opcode >> 9) & 7;
        !           547:   uint16 dstdata = DATAREG(dstreg);
        !           548:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           549: 
        !           550:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !           551:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           552:   CFLAG = srcdata > dstdata;
        !           553:   NFLAG = ((sint16)outdata) < 0;
        !           554:   ZFLAG = !outdata;
        !           555:   PC+= 4;
        !           556: }
        !           557: 
        !           558: void cpu_op_1249a(t_ipc *ipc) /* CMP */ {
        !           559:   /* mask f1ff, bits b079, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 8, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           560:   uint32 srcaddr = ipc->src;
        !           561:   uint16 srcdata = fetchword(srcaddr);
        !           562:   int dstreg = (ipc->opcode >> 9) & 7;
        !           563:   uint16 dstdata = DATAREG(dstreg);
        !           564:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           565:   PC+= 6;
        !           566: }
        !           567: 
        !           568: void cpu_op_1249b(t_ipc *ipc) /* CMP */ {
        !           569:   /* mask f1ff, bits b079, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 8, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           570:   uint32 srcaddr = ipc->src;
        !           571:   uint16 srcdata = fetchword(srcaddr);
        !           572:   int dstreg = (ipc->opcode >> 9) & 7;
        !           573:   uint16 dstdata = DATAREG(dstreg);
        !           574:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           575: 
        !           576:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !           577:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           578:   CFLAG = srcdata > dstdata;
        !           579:   NFLAG = ((sint16)outdata) < 0;
        !           580:   ZFLAG = !outdata;
        !           581:   PC+= 6;
        !           582: }
        !           583: 
        !           584: void cpu_op_1250a(t_ipc *ipc) /* CMP */ {
        !           585:   /* mask f1ff, bits b07a, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 9, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           586:   uint32 srcaddr = ipc->src;
        !           587:   uint16 srcdata = fetchword(srcaddr);
        !           588:   int dstreg = (ipc->opcode >> 9) & 7;
        !           589:   uint16 dstdata = DATAREG(dstreg);
        !           590:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           591:   PC+= 4;
        !           592: }
        !           593: 
        !           594: void cpu_op_1250b(t_ipc *ipc) /* CMP */ {
        !           595:   /* mask f1ff, bits b07a, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 9, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           596:   uint32 srcaddr = ipc->src;
        !           597:   uint16 srcdata = fetchword(srcaddr);
        !           598:   int dstreg = (ipc->opcode >> 9) & 7;
        !           599:   uint16 dstdata = DATAREG(dstreg);
        !           600:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           601: 
        !           602:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !           603:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           604:   CFLAG = srcdata > dstdata;
        !           605:   NFLAG = ((sint16)outdata) < 0;
        !           606:   ZFLAG = !outdata;
        !           607:   PC+= 4;
        !           608: }
        !           609: 
        !           610: void cpu_op_1251a(t_ipc *ipc) /* CMP */ {
        !           611:   /* mask f1ff, bits b07b, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 10, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           612:   uint32 srcaddr = idxval_src(ipc);
        !           613:   uint16 srcdata = fetchword(srcaddr);
        !           614:   int dstreg = (ipc->opcode >> 9) & 7;
        !           615:   uint16 dstdata = DATAREG(dstreg);
        !           616:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           617:   PC+= 4;
        !           618: }
        !           619: 
        !           620: void cpu_op_1251b(t_ipc *ipc) /* CMP */ {
        !           621:   /* mask f1ff, bits b07b, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 10, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           622:   uint32 srcaddr = idxval_src(ipc);
        !           623:   uint16 srcdata = fetchword(srcaddr);
        !           624:   int dstreg = (ipc->opcode >> 9) & 7;
        !           625:   uint16 dstdata = DATAREG(dstreg);
        !           626:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           627: 
        !           628:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !           629:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           630:   CFLAG = srcdata > dstdata;
        !           631:   NFLAG = ((sint16)outdata) < 0;
        !           632:   ZFLAG = !outdata;
        !           633:   PC+= 4;
        !           634: }
        !           635: 
        !           636: void cpu_op_1252a(t_ipc *ipc) /* CMP */ {
        !           637:   /* mask f1ff, bits b07c, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           638:   uint16 srcdata = ipc->src;
        !           639:   int dstreg = (ipc->opcode >> 9) & 7;
        !           640:   uint16 dstdata = DATAREG(dstreg);
        !           641:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           642:   PC+= 4;
        !           643: }
        !           644: 
        !           645: void cpu_op_1252b(t_ipc *ipc) /* CMP */ {
        !           646:   /* mask f1ff, bits b07c, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 12, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           647:   uint16 srcdata = ipc->src;
        !           648:   int dstreg = (ipc->opcode >> 9) & 7;
        !           649:   uint16 dstdata = DATAREG(dstreg);
        !           650:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !           651: 
        !           652:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !           653:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !           654:   CFLAG = srcdata > dstdata;
        !           655:   NFLAG = ((sint16)outdata) < 0;
        !           656:   ZFLAG = !outdata;
        !           657:   PC+= 4;
        !           658: }
        !           659: 
        !           660: void cpu_op_1253a(t_ipc *ipc) /* CMP */ {
        !           661:   /* mask f1f8, bits b080, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           662:   int srcreg = (ipc->opcode >> 0) & 7;
        !           663:   uint32 srcdata = DATAREG(srcreg);
        !           664:   int dstreg = (ipc->opcode >> 9) & 7;
        !           665:   uint32 dstdata = DATAREG(dstreg);
        !           666:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           667:   PC+= 2;
        !           668: }
        !           669: 
        !           670: void cpu_op_1253b(t_ipc *ipc) /* CMP */ {
        !           671:   /* mask f1f8, bits b080, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           672:   int srcreg = (ipc->opcode >> 0) & 7;
        !           673:   uint32 srcdata = DATAREG(srcreg);
        !           674:   int dstreg = (ipc->opcode >> 9) & 7;
        !           675:   uint32 dstdata = DATAREG(dstreg);
        !           676:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           677: 
        !           678:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !           679:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           680:   CFLAG = srcdata > dstdata;
        !           681:   NFLAG = ((sint32)outdata) < 0;
        !           682:   ZFLAG = !outdata;
        !           683:   PC+= 2;
        !           684: }
        !           685: 
        !           686: void cpu_op_1254a(t_ipc *ipc) /* CMP */ {
        !           687:   /* mask f1f8, bits b088, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 1, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           688:   int srcreg = (ipc->opcode >> 0) & 7;
        !           689:   uint32 srcdata = ADDRREG(srcreg);
        !           690:   int dstreg = (ipc->opcode >> 9) & 7;
        !           691:   uint32 dstdata = DATAREG(dstreg);
        !           692:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           693:   PC+= 2;
        !           694: }
        !           695: 
        !           696: void cpu_op_1254b(t_ipc *ipc) /* CMP */ {
        !           697:   /* mask f1f8, bits b088, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 1, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           698:   int srcreg = (ipc->opcode >> 0) & 7;
        !           699:   uint32 srcdata = ADDRREG(srcreg);
        !           700:   int dstreg = (ipc->opcode >> 9) & 7;
        !           701:   uint32 dstdata = DATAREG(dstreg);
        !           702:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           703: 
        !           704:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !           705:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           706:   CFLAG = srcdata > dstdata;
        !           707:   NFLAG = ((sint32)outdata) < 0;
        !           708:   ZFLAG = !outdata;
        !           709:   PC+= 2;
        !           710: }
        !           711: 
        !           712: void cpu_op_1255a(t_ipc *ipc) /* CMP */ {
        !           713:   /* mask f1f8, bits b090, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 2, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           714:   int srcreg = (ipc->opcode >> 0) & 7;
        !           715:   uint32 srcaddr = ADDRREG(srcreg);
        !           716:   uint32 srcdata = fetchlong(srcaddr);
        !           717:   int dstreg = (ipc->opcode >> 9) & 7;
        !           718:   uint32 dstdata = DATAREG(dstreg);
        !           719:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           720:   PC+= 2;
        !           721: }
        !           722: 
        !           723: void cpu_op_1255b(t_ipc *ipc) /* CMP */ {
        !           724:   /* mask f1f8, bits b090, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 2, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           725:   int srcreg = (ipc->opcode >> 0) & 7;
        !           726:   uint32 srcaddr = ADDRREG(srcreg);
        !           727:   uint32 srcdata = fetchlong(srcaddr);
        !           728:   int dstreg = (ipc->opcode >> 9) & 7;
        !           729:   uint32 dstdata = DATAREG(dstreg);
        !           730:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           731: 
        !           732:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !           733:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           734:   CFLAG = srcdata > dstdata;
        !           735:   NFLAG = ((sint32)outdata) < 0;
        !           736:   ZFLAG = !outdata;
        !           737:   PC+= 2;
        !           738: }
        !           739: 
        !           740: void cpu_op_1256a(t_ipc *ipc) /* CMP */ {
        !           741:   /* mask f1f8, bits b098, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 3, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           742:   int srcreg = (ipc->opcode >> 0) & 7;
        !           743:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
        !           744:   uint32 srcdata = fetchlong(srcaddr);
        !           745:   int dstreg = (ipc->opcode >> 9) & 7;
        !           746:   uint32 dstdata = DATAREG(dstreg);
        !           747:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           748:   PC+= 2;
        !           749: }
        !           750: 
        !           751: void cpu_op_1256b(t_ipc *ipc) /* CMP */ {
        !           752:   /* mask f1f8, bits b098, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 3, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           753:   int srcreg = (ipc->opcode >> 0) & 7;
        !           754:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
        !           755:   uint32 srcdata = fetchlong(srcaddr);
        !           756:   int dstreg = (ipc->opcode >> 9) & 7;
        !           757:   uint32 dstdata = DATAREG(dstreg);
        !           758:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           759: 
        !           760:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !           761:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           762:   CFLAG = srcdata > dstdata;
        !           763:   NFLAG = ((sint32)outdata) < 0;
        !           764:   ZFLAG = !outdata;
        !           765:   PC+= 2;
        !           766: }
        !           767: 
        !           768: void cpu_op_1257a(t_ipc *ipc) /* CMP */ {
        !           769:   /* mask f1f8, bits b0a0, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 4, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           770:   int srcreg = (ipc->opcode >> 0) & 7;
        !           771:   uint32 srcaddr = ADDRREG(srcreg)-=4;
        !           772:   uint32 srcdata = fetchlong(srcaddr);
        !           773:   int dstreg = (ipc->opcode >> 9) & 7;
        !           774:   uint32 dstdata = DATAREG(dstreg);
        !           775:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           776:   PC+= 2;
        !           777: }
        !           778: 
        !           779: void cpu_op_1257b(t_ipc *ipc) /* CMP */ {
        !           780:   /* mask f1f8, bits b0a0, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 4, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           781:   int srcreg = (ipc->opcode >> 0) & 7;
        !           782:   uint32 srcaddr = ADDRREG(srcreg)-=4;
        !           783:   uint32 srcdata = fetchlong(srcaddr);
        !           784:   int dstreg = (ipc->opcode >> 9) & 7;
        !           785:   uint32 dstdata = DATAREG(dstreg);
        !           786:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           787: 
        !           788:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !           789:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           790:   CFLAG = srcdata > dstdata;
        !           791:   NFLAG = ((sint32)outdata) < 0;
        !           792:   ZFLAG = !outdata;
        !           793:   PC+= 2;
        !           794: }
        !           795: 
        !           796: void cpu_op_1258a(t_ipc *ipc) /* CMP */ {
        !           797:   /* mask f1f8, bits b0a8, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 5, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           798:   int srcreg = (ipc->opcode >> 0) & 7;
        !           799:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !           800:   uint32 srcdata = fetchlong(srcaddr);
        !           801:   int dstreg = (ipc->opcode >> 9) & 7;
        !           802:   uint32 dstdata = DATAREG(dstreg);
        !           803:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           804:   PC+= 4;
        !           805: }
        !           806: 
        !           807: void cpu_op_1258b(t_ipc *ipc) /* CMP */ {
        !           808:   /* mask f1f8, bits b0a8, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 5, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           809:   int srcreg = (ipc->opcode >> 0) & 7;
        !           810:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !           811:   uint32 srcdata = fetchlong(srcaddr);
        !           812:   int dstreg = (ipc->opcode >> 9) & 7;
        !           813:   uint32 dstdata = DATAREG(dstreg);
        !           814:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           815: 
        !           816:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !           817:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           818:   CFLAG = srcdata > dstdata;
        !           819:   NFLAG = ((sint32)outdata) < 0;
        !           820:   ZFLAG = !outdata;
        !           821:   PC+= 4;
        !           822: }
        !           823: 
        !           824: void cpu_op_1259a(t_ipc *ipc) /* CMP */ {
        !           825:   /* mask f1f8, bits b0b0, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 6, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           826:   int srcreg = (ipc->opcode >> 0) & 7;
        !           827:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !           828:   uint32 srcdata = fetchlong(srcaddr);
        !           829:   int dstreg = (ipc->opcode >> 9) & 7;
        !           830:   uint32 dstdata = DATAREG(dstreg);
        !           831:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           832:   PC+= 4;
        !           833: }
        !           834: 
        !           835: void cpu_op_1259b(t_ipc *ipc) /* CMP */ {
        !           836:   /* mask f1f8, bits b0b0, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 6, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           837:   int srcreg = (ipc->opcode >> 0) & 7;
        !           838:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !           839:   uint32 srcdata = fetchlong(srcaddr);
        !           840:   int dstreg = (ipc->opcode >> 9) & 7;
        !           841:   uint32 dstdata = DATAREG(dstreg);
        !           842:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           843: 
        !           844:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !           845:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           846:   CFLAG = srcdata > dstdata;
        !           847:   NFLAG = ((sint32)outdata) < 0;
        !           848:   ZFLAG = !outdata;
        !           849:   PC+= 4;
        !           850: }
        !           851: 
        !           852: void cpu_op_1260a(t_ipc *ipc) /* CMP */ {
        !           853:   /* mask f1ff, bits b0b8, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 7, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           854:   uint32 srcaddr = ipc->src;
        !           855:   uint32 srcdata = fetchlong(srcaddr);
        !           856:   int dstreg = (ipc->opcode >> 9) & 7;
        !           857:   uint32 dstdata = DATAREG(dstreg);
        !           858:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           859:   PC+= 4;
        !           860: }
        !           861: 
        !           862: void cpu_op_1260b(t_ipc *ipc) /* CMP */ {
        !           863:   /* mask f1ff, bits b0b8, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 7, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           864:   uint32 srcaddr = ipc->src;
        !           865:   uint32 srcdata = fetchlong(srcaddr);
        !           866:   int dstreg = (ipc->opcode >> 9) & 7;
        !           867:   uint32 dstdata = DATAREG(dstreg);
        !           868:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           869: 
        !           870:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !           871:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           872:   CFLAG = srcdata > dstdata;
        !           873:   NFLAG = ((sint32)outdata) < 0;
        !           874:   ZFLAG = !outdata;
        !           875:   PC+= 4;
        !           876: }
        !           877: 
        !           878: void cpu_op_1261a(t_ipc *ipc) /* CMP */ {
        !           879:   /* mask f1ff, bits b0b9, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 8, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           880:   uint32 srcaddr = ipc->src;
        !           881:   uint32 srcdata = fetchlong(srcaddr);
        !           882:   int dstreg = (ipc->opcode >> 9) & 7;
        !           883:   uint32 dstdata = DATAREG(dstreg);
        !           884:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           885:   PC+= 6;
        !           886: }
        !           887: 
        !           888: void cpu_op_1261b(t_ipc *ipc) /* CMP */ {
        !           889:   /* mask f1ff, bits b0b9, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 8, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           890:   uint32 srcaddr = ipc->src;
        !           891:   uint32 srcdata = fetchlong(srcaddr);
        !           892:   int dstreg = (ipc->opcode >> 9) & 7;
        !           893:   uint32 dstdata = DATAREG(dstreg);
        !           894:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           895: 
        !           896:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !           897:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           898:   CFLAG = srcdata > dstdata;
        !           899:   NFLAG = ((sint32)outdata) < 0;
        !           900:   ZFLAG = !outdata;
        !           901:   PC+= 6;
        !           902: }
        !           903: 
        !           904: void cpu_op_1262a(t_ipc *ipc) /* CMP */ {
        !           905:   /* mask f1ff, bits b0ba, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 9, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           906:   uint32 srcaddr = ipc->src;
        !           907:   uint32 srcdata = fetchlong(srcaddr);
        !           908:   int dstreg = (ipc->opcode >> 9) & 7;
        !           909:   uint32 dstdata = DATAREG(dstreg);
        !           910:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           911:   PC+= 4;
        !           912: }
        !           913: 
        !           914: void cpu_op_1262b(t_ipc *ipc) /* CMP */ {
        !           915:   /* mask f1ff, bits b0ba, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 9, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           916:   uint32 srcaddr = ipc->src;
        !           917:   uint32 srcdata = fetchlong(srcaddr);
        !           918:   int dstreg = (ipc->opcode >> 9) & 7;
        !           919:   uint32 dstdata = DATAREG(dstreg);
        !           920:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           921: 
        !           922:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !           923:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           924:   CFLAG = srcdata > dstdata;
        !           925:   NFLAG = ((sint32)outdata) < 0;
        !           926:   ZFLAG = !outdata;
        !           927:   PC+= 4;
        !           928: }
        !           929: 
        !           930: void cpu_op_1263a(t_ipc *ipc) /* CMP */ {
        !           931:   /* mask f1ff, bits b0bb, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 10, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           932:   uint32 srcaddr = idxval_src(ipc);
        !           933:   uint32 srcdata = fetchlong(srcaddr);
        !           934:   int dstreg = (ipc->opcode >> 9) & 7;
        !           935:   uint32 dstdata = DATAREG(dstreg);
        !           936:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           937:   PC+= 4;
        !           938: }
        !           939: 
        !           940: void cpu_op_1263b(t_ipc *ipc) /* CMP */ {
        !           941:   /* mask f1ff, bits b0bb, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 10, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           942:   uint32 srcaddr = idxval_src(ipc);
        !           943:   uint32 srcdata = fetchlong(srcaddr);
        !           944:   int dstreg = (ipc->opcode >> 9) & 7;
        !           945:   uint32 dstdata = DATAREG(dstreg);
        !           946:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           947: 
        !           948:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !           949:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           950:   CFLAG = srcdata > dstdata;
        !           951:   NFLAG = ((sint32)outdata) < 0;
        !           952:   ZFLAG = !outdata;
        !           953:   PC+= 4;
        !           954: }
        !           955: 
        !           956: void cpu_op_1264a(t_ipc *ipc) /* CMP */ {
        !           957:   /* mask f1ff, bits b0bc, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 13, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           958:   uint32 srcdata = ipc->src;
        !           959:   int dstreg = (ipc->opcode >> 9) & 7;
        !           960:   uint32 dstdata = DATAREG(dstreg);
        !           961:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           962:   PC+= 6;
        !           963: }
        !           964: 
        !           965: void cpu_op_1264b(t_ipc *ipc) /* CMP */ {
        !           966:   /* mask f1ff, bits b0bc, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 13, dtype 0, sbitpos 0, dbitpos 9, immvalue 0 */
        !           967:   uint32 srcdata = ipc->src;
        !           968:   int dstreg = (ipc->opcode >> 9) & 7;
        !           969:   uint32 dstdata = DATAREG(dstreg);
        !           970:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !           971: 
        !           972:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !           973:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !           974:   CFLAG = srcdata > dstdata;
        !           975:   NFLAG = ((sint32)outdata) < 0;
        !           976:   ZFLAG = !outdata;
        !           977:   PC+= 6;
        !           978: }
        !           979: 
        !           980: void cpu_op_1265a(t_ipc *ipc) /* CMPA */ {
        !           981:   /* mask f1f8, bits b0c0, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !           982:   int srcreg = (ipc->opcode >> 0) & 7;
        !           983:   uint16 srcdata = DATAREG(srcreg);
        !           984:   int dstreg = (ipc->opcode >> 9) & 7;
        !           985:   uint32 dstdata = ADDRREG(dstreg);
        !           986:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !           987:   PC+= 2;
        !           988: }
        !           989: 
        !           990: void cpu_op_1265b(t_ipc *ipc) /* CMPA */ {
        !           991:   /* mask f1f8, bits b0c0, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !           992:   int srcreg = (ipc->opcode >> 0) & 7;
        !           993:   uint16 srcdata = DATAREG(srcreg);
        !           994:   int dstreg = (ipc->opcode >> 9) & 7;
        !           995:   uint32 dstdata = ADDRREG(dstreg);
        !           996:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !           997: 
        !           998:   VFLAG = (((sint32)(sint16)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !           999:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1000:   CFLAG = (uint32)(sint32)(sint16)srcdata > dstdata;
        !          1001:   NFLAG = ((sint32)outdata) < 0;
        !          1002:   ZFLAG = !outdata;
        !          1003:   PC+= 2;
        !          1004: }
        !          1005: 
        !          1006: void cpu_op_1266a(t_ipc *ipc) /* CMPA */ {
        !          1007:   /* mask f1f8, bits b0c8, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 1, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1008:   int srcreg = (ipc->opcode >> 0) & 7;
        !          1009:   uint16 srcdata = ADDRREG(srcreg);
        !          1010:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1011:   uint32 dstdata = ADDRREG(dstreg);
        !          1012:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1013:   PC+= 2;
        !          1014: }
        !          1015: 
        !          1016: void cpu_op_1266b(t_ipc *ipc) /* CMPA */ {
        !          1017:   /* mask f1f8, bits b0c8, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 1, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1018:   int srcreg = (ipc->opcode >> 0) & 7;
        !          1019:   uint16 srcdata = ADDRREG(srcreg);
        !          1020:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1021:   uint32 dstdata = ADDRREG(dstreg);
        !          1022:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1023: 
        !          1024:   VFLAG = (((sint32)(sint16)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1025:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1026:   CFLAG = (uint32)(sint32)(sint16)srcdata > dstdata;
        !          1027:   NFLAG = ((sint32)outdata) < 0;
        !          1028:   ZFLAG = !outdata;
        !          1029:   PC+= 2;
        !          1030: }
        !          1031: 
        !          1032: void cpu_op_1267a(t_ipc *ipc) /* CMPA */ {
        !          1033:   /* mask f1f8, bits b0d0, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 2, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1034:   int srcreg = (ipc->opcode >> 0) & 7;
        !          1035:   uint32 srcaddr = ADDRREG(srcreg);
        !          1036:   uint16 srcdata = fetchword(srcaddr);
        !          1037:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1038:   uint32 dstdata = ADDRREG(dstreg);
        !          1039:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1040:   PC+= 2;
        !          1041: }
        !          1042: 
        !          1043: void cpu_op_1267b(t_ipc *ipc) /* CMPA */ {
        !          1044:   /* mask f1f8, bits b0d0, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 2, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1045:   int srcreg = (ipc->opcode >> 0) & 7;
        !          1046:   uint32 srcaddr = ADDRREG(srcreg);
        !          1047:   uint16 srcdata = fetchword(srcaddr);
        !          1048:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1049:   uint32 dstdata = ADDRREG(dstreg);
        !          1050:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1051: 
        !          1052:   VFLAG = (((sint32)(sint16)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1053:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1054:   CFLAG = (uint32)(sint32)(sint16)srcdata > dstdata;
        !          1055:   NFLAG = ((sint32)outdata) < 0;
        !          1056:   ZFLAG = !outdata;
        !          1057:   PC+= 2;
        !          1058: }
        !          1059: 
        !          1060: void cpu_op_1268a(t_ipc *ipc) /* CMPA */ {
        !          1061:   /* mask f1f8, bits b0d8, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 3, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1062:   int srcreg = (ipc->opcode >> 0) & 7;
        !          1063:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
        !          1064:   uint16 srcdata = fetchword(srcaddr);
        !          1065:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1066:   uint32 dstdata = ADDRREG(dstreg);
        !          1067:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1068:   PC+= 2;
        !          1069: }
        !          1070: 
        !          1071: void cpu_op_1268b(t_ipc *ipc) /* CMPA */ {
        !          1072:   /* mask f1f8, bits b0d8, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 3, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1073:   int srcreg = (ipc->opcode >> 0) & 7;
        !          1074:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
        !          1075:   uint16 srcdata = fetchword(srcaddr);
        !          1076:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1077:   uint32 dstdata = ADDRREG(dstreg);
        !          1078:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1079: 
        !          1080:   VFLAG = (((sint32)(sint16)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1081:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1082:   CFLAG = (uint32)(sint32)(sint16)srcdata > dstdata;
        !          1083:   NFLAG = ((sint32)outdata) < 0;
        !          1084:   ZFLAG = !outdata;
        !          1085:   PC+= 2;
        !          1086: }
        !          1087: 
        !          1088: void cpu_op_1269a(t_ipc *ipc) /* CMPA */ {
        !          1089:   /* mask f1f8, bits b0e0, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 4, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1090:   int srcreg = (ipc->opcode >> 0) & 7;
        !          1091:   uint32 srcaddr = ADDRREG(srcreg)-=2;
        !          1092:   uint16 srcdata = fetchword(srcaddr);
        !          1093:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1094:   uint32 dstdata = ADDRREG(dstreg);
        !          1095:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1096:   PC+= 2;
        !          1097: }
        !          1098: 
        !          1099: void cpu_op_1269b(t_ipc *ipc) /* CMPA */ {
        !          1100:   /* mask f1f8, bits b0e0, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 4, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1101:   int srcreg = (ipc->opcode >> 0) & 7;
        !          1102:   uint32 srcaddr = ADDRREG(srcreg)-=2;
        !          1103:   uint16 srcdata = fetchword(srcaddr);
        !          1104:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1105:   uint32 dstdata = ADDRREG(dstreg);
        !          1106:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1107: 
        !          1108:   VFLAG = (((sint32)(sint16)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1109:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1110:   CFLAG = (uint32)(sint32)(sint16)srcdata > dstdata;
        !          1111:   NFLAG = ((sint32)outdata) < 0;
        !          1112:   ZFLAG = !outdata;
        !          1113:   PC+= 2;
        !          1114: }
        !          1115: 
        !          1116: void cpu_op_1270a(t_ipc *ipc) /* CMPA */ {
        !          1117:   /* mask f1f8, bits b0e8, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 5, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1118:   int srcreg = (ipc->opcode >> 0) & 7;
        !          1119:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          1120:   uint16 srcdata = fetchword(srcaddr);
        !          1121:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1122:   uint32 dstdata = ADDRREG(dstreg);
        !          1123:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1124:   PC+= 4;
        !          1125: }
        !          1126: 
        !          1127: void cpu_op_1270b(t_ipc *ipc) /* CMPA */ {
        !          1128:   /* mask f1f8, bits b0e8, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 5, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1129:   int srcreg = (ipc->opcode >> 0) & 7;
        !          1130:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          1131:   uint16 srcdata = fetchword(srcaddr);
        !          1132:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1133:   uint32 dstdata = ADDRREG(dstreg);
        !          1134:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1135: 
        !          1136:   VFLAG = (((sint32)(sint16)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1137:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1138:   CFLAG = (uint32)(sint32)(sint16)srcdata > dstdata;
        !          1139:   NFLAG = ((sint32)outdata) < 0;
        !          1140:   ZFLAG = !outdata;
        !          1141:   PC+= 4;
        !          1142: }
        !          1143: 
        !          1144: void cpu_op_1271a(t_ipc *ipc) /* CMPA */ {
        !          1145:   /* mask f1f8, bits b0f0, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 6, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1146:   int srcreg = (ipc->opcode >> 0) & 7;
        !          1147:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          1148:   uint16 srcdata = fetchword(srcaddr);
        !          1149:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1150:   uint32 dstdata = ADDRREG(dstreg);
        !          1151:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1152:   PC+= 4;
        !          1153: }
        !          1154: 
        !          1155: void cpu_op_1271b(t_ipc *ipc) /* CMPA */ {
        !          1156:   /* mask f1f8, bits b0f0, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 6, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1157:   int srcreg = (ipc->opcode >> 0) & 7;
        !          1158:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          1159:   uint16 srcdata = fetchword(srcaddr);
        !          1160:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1161:   uint32 dstdata = ADDRREG(dstreg);
        !          1162:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1163: 
        !          1164:   VFLAG = (((sint32)(sint16)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1165:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1166:   CFLAG = (uint32)(sint32)(sint16)srcdata > dstdata;
        !          1167:   NFLAG = ((sint32)outdata) < 0;
        !          1168:   ZFLAG = !outdata;
        !          1169:   PC+= 4;
        !          1170: }
        !          1171: 
        !          1172: void cpu_op_1272a(t_ipc *ipc) /* CMPA */ {
        !          1173:   /* mask f1ff, bits b0f8, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 7, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1174:   uint32 srcaddr = ipc->src;
        !          1175:   uint16 srcdata = fetchword(srcaddr);
        !          1176:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1177:   uint32 dstdata = ADDRREG(dstreg);
        !          1178:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1179:   PC+= 4;
        !          1180: }
        !          1181: 
        !          1182: void cpu_op_1272b(t_ipc *ipc) /* CMPA */ {
        !          1183:   /* mask f1ff, bits b0f8, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 7, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1184:   uint32 srcaddr = ipc->src;
        !          1185:   uint16 srcdata = fetchword(srcaddr);
        !          1186:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1187:   uint32 dstdata = ADDRREG(dstreg);
        !          1188:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1189: 
        !          1190:   VFLAG = (((sint32)(sint16)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1191:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1192:   CFLAG = (uint32)(sint32)(sint16)srcdata > dstdata;
        !          1193:   NFLAG = ((sint32)outdata) < 0;
        !          1194:   ZFLAG = !outdata;
        !          1195:   PC+= 4;
        !          1196: }
        !          1197: 
        !          1198: void cpu_op_1273a(t_ipc *ipc) /* CMPA */ {
        !          1199:   /* mask f1ff, bits b0f9, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 8, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1200:   uint32 srcaddr = ipc->src;
        !          1201:   uint16 srcdata = fetchword(srcaddr);
        !          1202:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1203:   uint32 dstdata = ADDRREG(dstreg);
        !          1204:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1205:   PC+= 6;
        !          1206: }
        !          1207: 
        !          1208: void cpu_op_1273b(t_ipc *ipc) /* CMPA */ {
        !          1209:   /* mask f1ff, bits b0f9, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 8, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1210:   uint32 srcaddr = ipc->src;
        !          1211:   uint16 srcdata = fetchword(srcaddr);
        !          1212:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1213:   uint32 dstdata = ADDRREG(dstreg);
        !          1214:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1215: 
        !          1216:   VFLAG = (((sint32)(sint16)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1217:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1218:   CFLAG = (uint32)(sint32)(sint16)srcdata > dstdata;
        !          1219:   NFLAG = ((sint32)outdata) < 0;
        !          1220:   ZFLAG = !outdata;
        !          1221:   PC+= 6;
        !          1222: }
        !          1223: 
        !          1224: void cpu_op_1274a(t_ipc *ipc) /* CMPA */ {
        !          1225:   /* mask f1ff, bits b0fa, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 9, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1226:   uint32 srcaddr = ipc->src;
        !          1227:   uint16 srcdata = fetchword(srcaddr);
        !          1228:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1229:   uint32 dstdata = ADDRREG(dstreg);
        !          1230:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1231:   PC+= 4;
        !          1232: }
        !          1233: 
        !          1234: void cpu_op_1274b(t_ipc *ipc) /* CMPA */ {
        !          1235:   /* mask f1ff, bits b0fa, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 9, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1236:   uint32 srcaddr = ipc->src;
        !          1237:   uint16 srcdata = fetchword(srcaddr);
        !          1238:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1239:   uint32 dstdata = ADDRREG(dstreg);
        !          1240:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1241: 
        !          1242:   VFLAG = (((sint32)(sint16)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1243:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1244:   CFLAG = (uint32)(sint32)(sint16)srcdata > dstdata;
        !          1245:   NFLAG = ((sint32)outdata) < 0;
        !          1246:   ZFLAG = !outdata;
        !          1247:   PC+= 4;
        !          1248: }
        !          1249: 
        !          1250: void cpu_op_1275a(t_ipc *ipc) /* CMPA */ {
        !          1251:   /* mask f1ff, bits b0fb, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 10, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1252:   uint32 srcaddr = idxval_src(ipc);
        !          1253:   uint16 srcdata = fetchword(srcaddr);
        !          1254:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1255:   uint32 dstdata = ADDRREG(dstreg);
        !          1256:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1257:   PC+= 4;
        !          1258: }
        !          1259: 
        !          1260: void cpu_op_1275b(t_ipc *ipc) /* CMPA */ {
        !          1261:   /* mask f1ff, bits b0fb, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 10, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1262:   uint32 srcaddr = idxval_src(ipc);
        !          1263:   uint16 srcdata = fetchword(srcaddr);
        !          1264:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1265:   uint32 dstdata = ADDRREG(dstreg);
        !          1266:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1267: 
        !          1268:   VFLAG = (((sint32)(sint16)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1269:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1270:   CFLAG = (uint32)(sint32)(sint16)srcdata > dstdata;
        !          1271:   NFLAG = ((sint32)outdata) < 0;
        !          1272:   ZFLAG = !outdata;
        !          1273:   PC+= 4;
        !          1274: }
        !          1275: 
        !          1276: void cpu_op_1276a(t_ipc *ipc) /* CMPA */ {
        !          1277:   /* mask f1ff, bits b0fc, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 12, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1278:   uint16 srcdata = ipc->src;
        !          1279:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1280:   uint32 dstdata = ADDRREG(dstreg);
        !          1281:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1282:   PC+= 4;
        !          1283: }
        !          1284: 
        !          1285: void cpu_op_1276b(t_ipc *ipc) /* CMPA */ {
        !          1286:   /* mask f1ff, bits b0fc, mnemonic 16, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 12, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          1287:   uint16 srcdata = ipc->src;
        !          1288:   int dstreg = (ipc->opcode >> 9) & 7;
        !          1289:   uint32 dstdata = ADDRREG(dstreg);
        !          1290:   uint32 outdata = (sint32)dstdata - (sint32)(sint16)srcdata;
        !          1291: 
        !          1292:   VFLAG = (((sint32)(sint16)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          1293:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          1294:   CFLAG = (uint32)(sint32)(sint16)srcdata > dstdata;
        !          1295:   NFLAG = ((sint32)outdata) < 0;
        !          1296:   ZFLAG = !outdata;
        !          1297:   PC+= 4;
        !          1298: }
        !          1299: 
        !          1300: void cpu_op_1277a(t_ipc *ipc) /* EOR */ {
        !          1301:   /* mask f1f8, bits b100, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1302:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1303:   uint8 srcdata = DATAREG(srcreg);
        !          1304:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1305:   uint8 dstdata = DATAREG(dstreg);
        !          1306:   uint8 outdata = dstdata;
        !          1307: 
        !          1308:   outdata^= srcdata;
        !          1309:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
        !          1310:   PC+= 2;
        !          1311: }
        !          1312: 
        !          1313: void cpu_op_1277b(t_ipc *ipc) /* EOR */ {
        !          1314:   /* mask f1f8, bits b100, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1315:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1316:   uint8 srcdata = DATAREG(srcreg);
        !          1317:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1318:   uint8 dstdata = DATAREG(dstreg);
        !          1319:   uint8 outdata = dstdata;
        !          1320: 
        !          1321:   outdata^= srcdata;
        !          1322:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xff) | outdata;
        !          1323: 
        !          1324:   NFLAG = ((sint8)outdata) < 0;
        !          1325:   ZFLAG = !outdata;
        !          1326:   VFLAG = 0;
        !          1327:   CFLAG = 0;
        !          1328:   PC+= 2;
        !          1329: }
        !          1330: 
        !          1331: void cpu_op_1278a(t_ipc *ipc) /* EOR */ {
        !          1332:   /* mask f1f8, bits b110, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1333:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1334:   uint8 srcdata = DATAREG(srcreg);
        !          1335:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1336:   uint32 dstaddr = ADDRREG(dstreg);
        !          1337:   uint8 dstdata = fetchbyte(dstaddr);
        !          1338:   uint8 outdata = dstdata;
        !          1339: 
        !          1340:   outdata^= srcdata;
        !          1341:   storebyte(dstaddr, outdata);
        !          1342:   PC+= 2;
        !          1343: }
        !          1344: 
        !          1345: void cpu_op_1278b(t_ipc *ipc) /* EOR */ {
        !          1346:   /* mask f1f8, bits b110, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1347:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1348:   uint8 srcdata = DATAREG(srcreg);
        !          1349:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1350:   uint32 dstaddr = ADDRREG(dstreg);
        !          1351:   uint8 dstdata = fetchbyte(dstaddr);
        !          1352:   uint8 outdata = dstdata;
        !          1353: 
        !          1354:   outdata^= srcdata;
        !          1355:   storebyte(dstaddr, outdata);
        !          1356: 
        !          1357:   NFLAG = ((sint8)outdata) < 0;
        !          1358:   ZFLAG = !outdata;
        !          1359:   VFLAG = 0;
        !          1360:   CFLAG = 0;
        !          1361:   PC+= 2;
        !          1362: }
        !          1363: 
        !          1364: void cpu_op_1279a(t_ipc *ipc) /* EOR */ {
        !          1365:   /* mask f1f8, bits b118, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1366:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1367:   uint8 srcdata = DATAREG(srcreg);
        !          1368:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1369:   uint32 dstaddr = ADDRREG(dstreg);
        !          1370:   uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
        !          1371:   uint8 dstdata = fetchbyte(dstaddr);
        !          1372:   uint8 outdata = dstdata;
        !          1373: 
        !          1374:   outdata^= srcdata;
        !          1375:   storebyte(dstaddr, outdata);
        !          1376:   PC+= 2;
        !          1377: }
        !          1378: 
        !          1379: void cpu_op_1279b(t_ipc *ipc) /* EOR */ {
        !          1380:   /* mask f1f8, bits b118, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1381:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1382:   uint8 srcdata = DATAREG(srcreg);
        !          1383:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1384:   uint32 dstaddr = ADDRREG(dstreg);
        !          1385:   uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
        !          1386:   uint8 dstdata = fetchbyte(dstaddr);
        !          1387:   uint8 outdata = dstdata;
        !          1388: 
        !          1389:   outdata^= srcdata;
        !          1390:   storebyte(dstaddr, outdata);
        !          1391: 
        !          1392:   NFLAG = ((sint8)outdata) < 0;
        !          1393:   ZFLAG = !outdata;
        !          1394:   VFLAG = 0;
        !          1395:   CFLAG = 0;
        !          1396:   PC+= 2;
        !          1397: }
        !          1398: 
        !          1399: void cpu_op_1280a(t_ipc *ipc) /* EOR */ {
        !          1400:   /* mask f1f8, bits b120, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1401:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1402:   uint8 srcdata = DATAREG(srcreg);
        !          1403:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1404:   uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
        !          1405:   uint8 dstdata = fetchbyte(dstaddr);
        !          1406:   uint8 outdata = dstdata;
        !          1407: 
        !          1408:   outdata^= srcdata;
        !          1409:   storebyte(dstaddr, outdata);
        !          1410:   PC+= 2;
        !          1411: }
        !          1412: 
        !          1413: void cpu_op_1280b(t_ipc *ipc) /* EOR */ {
        !          1414:   /* mask f1f8, bits b120, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1415:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1416:   uint8 srcdata = DATAREG(srcreg);
        !          1417:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1418:   uint32 dstaddr = (ADDRREG(dstreg)-= (dstreg == 7 ? 2 : 1));
        !          1419:   uint8 dstdata = fetchbyte(dstaddr);
        !          1420:   uint8 outdata = dstdata;
        !          1421: 
        !          1422:   outdata^= srcdata;
        !          1423:   storebyte(dstaddr, outdata);
        !          1424: 
        !          1425:   NFLAG = ((sint8)outdata) < 0;
        !          1426:   ZFLAG = !outdata;
        !          1427:   VFLAG = 0;
        !          1428:   CFLAG = 0;
        !          1429:   PC+= 2;
        !          1430: }
        !          1431: 
        !          1432: void cpu_op_1281a(t_ipc *ipc) /* EOR */ {
        !          1433:   /* mask f1f8, bits b128, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1434:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1435:   uint8 srcdata = DATAREG(srcreg);
        !          1436:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1437:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          1438:   uint8 dstdata = fetchbyte(dstaddr);
        !          1439:   uint8 outdata = dstdata;
        !          1440: 
        !          1441:   outdata^= srcdata;
        !          1442:   storebyte(dstaddr, outdata);
        !          1443:   PC+= 4;
        !          1444: }
        !          1445: 
        !          1446: void cpu_op_1281b(t_ipc *ipc) /* EOR */ {
        !          1447:   /* mask f1f8, bits b128, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1448:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1449:   uint8 srcdata = DATAREG(srcreg);
        !          1450:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1451:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          1452:   uint8 dstdata = fetchbyte(dstaddr);
        !          1453:   uint8 outdata = dstdata;
        !          1454: 
        !          1455:   outdata^= srcdata;
        !          1456:   storebyte(dstaddr, outdata);
        !          1457: 
        !          1458:   NFLAG = ((sint8)outdata) < 0;
        !          1459:   ZFLAG = !outdata;
        !          1460:   VFLAG = 0;
        !          1461:   CFLAG = 0;
        !          1462:   PC+= 4;
        !          1463: }
        !          1464: 
        !          1465: void cpu_op_1282a(t_ipc *ipc) /* EOR */ {
        !          1466:   /* mask f1f8, bits b130, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1467:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1468:   uint8 srcdata = DATAREG(srcreg);
        !          1469:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1470:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          1471:   uint8 dstdata = fetchbyte(dstaddr);
        !          1472:   uint8 outdata = dstdata;
        !          1473: 
        !          1474:   outdata^= srcdata;
        !          1475:   storebyte(dstaddr, outdata);
        !          1476:   PC+= 4;
        !          1477: }
        !          1478: 
        !          1479: void cpu_op_1282b(t_ipc *ipc) /* EOR */ {
        !          1480:   /* mask f1f8, bits b130, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1481:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1482:   uint8 srcdata = DATAREG(srcreg);
        !          1483:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1484:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          1485:   uint8 dstdata = fetchbyte(dstaddr);
        !          1486:   uint8 outdata = dstdata;
        !          1487: 
        !          1488:   outdata^= srcdata;
        !          1489:   storebyte(dstaddr, outdata);
        !          1490: 
        !          1491:   NFLAG = ((sint8)outdata) < 0;
        !          1492:   ZFLAG = !outdata;
        !          1493:   VFLAG = 0;
        !          1494:   CFLAG = 0;
        !          1495:   PC+= 4;
        !          1496: }
        !          1497: 
        !          1498: void cpu_op_1283a(t_ipc *ipc) /* EOR */ {
        !          1499:   /* mask f1ff, bits b138, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1500:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1501:   uint8 srcdata = DATAREG(srcreg);
        !          1502:   uint32 dstaddr = ipc->dst;
        !          1503:   uint8 dstdata = fetchbyte(dstaddr);
        !          1504:   uint8 outdata = dstdata;
        !          1505: 
        !          1506:   outdata^= srcdata;
        !          1507:   storebyte(dstaddr, outdata);
        !          1508:   PC+= 4;
        !          1509: }
        !          1510: 
        !          1511: void cpu_op_1283b(t_ipc *ipc) /* EOR */ {
        !          1512:   /* mask f1ff, bits b138, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1513:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1514:   uint8 srcdata = DATAREG(srcreg);
        !          1515:   uint32 dstaddr = ipc->dst;
        !          1516:   uint8 dstdata = fetchbyte(dstaddr);
        !          1517:   uint8 outdata = dstdata;
        !          1518: 
        !          1519:   outdata^= srcdata;
        !          1520:   storebyte(dstaddr, outdata);
        !          1521: 
        !          1522:   NFLAG = ((sint8)outdata) < 0;
        !          1523:   ZFLAG = !outdata;
        !          1524:   VFLAG = 0;
        !          1525:   CFLAG = 0;
        !          1526:   PC+= 4;
        !          1527: }
        !          1528: 
        !          1529: void cpu_op_1284a(t_ipc *ipc) /* EOR */ {
        !          1530:   /* mask f1ff, bits b139, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1531:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1532:   uint8 srcdata = DATAREG(srcreg);
        !          1533:   uint32 dstaddr = ipc->dst;
        !          1534:   uint8 dstdata = fetchbyte(dstaddr);
        !          1535:   uint8 outdata = dstdata;
        !          1536: 
        !          1537:   outdata^= srcdata;
        !          1538:   storebyte(dstaddr, outdata);
        !          1539:   PC+= 6;
        !          1540: }
        !          1541: 
        !          1542: void cpu_op_1284b(t_ipc *ipc) /* EOR */ {
        !          1543:   /* mask f1ff, bits b139, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 0, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1544:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1545:   uint8 srcdata = DATAREG(srcreg);
        !          1546:   uint32 dstaddr = ipc->dst;
        !          1547:   uint8 dstdata = fetchbyte(dstaddr);
        !          1548:   uint8 outdata = dstdata;
        !          1549: 
        !          1550:   outdata^= srcdata;
        !          1551:   storebyte(dstaddr, outdata);
        !          1552: 
        !          1553:   NFLAG = ((sint8)outdata) < 0;
        !          1554:   ZFLAG = !outdata;
        !          1555:   VFLAG = 0;
        !          1556:   CFLAG = 0;
        !          1557:   PC+= 6;
        !          1558: }
        !          1559: 
        !          1560: void cpu_op_1285a(t_ipc *ipc) /* EOR */ {
        !          1561:   /* mask f1f8, bits b140, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1562:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1563:   uint16 srcdata = DATAREG(srcreg);
        !          1564:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1565:   uint16 dstdata = DATAREG(dstreg);
        !          1566:   uint16 outdata = dstdata;
        !          1567: 
        !          1568:   outdata^= srcdata;
        !          1569:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xffff) | outdata;
        !          1570:   PC+= 2;
        !          1571: }
        !          1572: 
        !          1573: void cpu_op_1285b(t_ipc *ipc) /* EOR */ {
        !          1574:   /* mask f1f8, bits b140, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1575:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1576:   uint16 srcdata = DATAREG(srcreg);
        !          1577:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1578:   uint16 dstdata = DATAREG(dstreg);
        !          1579:   uint16 outdata = dstdata;
        !          1580: 
        !          1581:   outdata^= srcdata;
        !          1582:   DATAREG(dstreg) = (DATAREG(dstreg) & ~0xffff) | outdata;
        !          1583: 
        !          1584:   NFLAG = ((sint16)outdata) < 0;
        !          1585:   ZFLAG = !outdata;
        !          1586:   VFLAG = 0;
        !          1587:   CFLAG = 0;
        !          1588:   PC+= 2;
        !          1589: }
        !          1590: 
        !          1591: void cpu_op_1286a(t_ipc *ipc) /* EOR */ {
        !          1592:   /* mask f1f8, bits b150, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1593:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1594:   uint16 srcdata = DATAREG(srcreg);
        !          1595:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1596:   uint32 dstaddr = ADDRREG(dstreg);
        !          1597:   uint16 dstdata = fetchword(dstaddr);
        !          1598:   uint16 outdata = dstdata;
        !          1599: 
        !          1600:   outdata^= srcdata;
        !          1601:   storeword(dstaddr, outdata);
        !          1602:   PC+= 2;
        !          1603: }
        !          1604: 
        !          1605: void cpu_op_1286b(t_ipc *ipc) /* EOR */ {
        !          1606:   /* mask f1f8, bits b150, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1607:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1608:   uint16 srcdata = DATAREG(srcreg);
        !          1609:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1610:   uint32 dstaddr = ADDRREG(dstreg);
        !          1611:   uint16 dstdata = fetchword(dstaddr);
        !          1612:   uint16 outdata = dstdata;
        !          1613: 
        !          1614:   outdata^= srcdata;
        !          1615:   storeword(dstaddr, outdata);
        !          1616: 
        !          1617:   NFLAG = ((sint16)outdata) < 0;
        !          1618:   ZFLAG = !outdata;
        !          1619:   VFLAG = 0;
        !          1620:   CFLAG = 0;
        !          1621:   PC+= 2;
        !          1622: }
        !          1623: 
        !          1624: void cpu_op_1287a(t_ipc *ipc) /* EOR */ {
        !          1625:   /* mask f1f8, bits b158, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1626:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1627:   uint16 srcdata = DATAREG(srcreg);
        !          1628:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1629:   uint32 dstaddr = (ADDRREG(dstreg)+=2, ADDRREG(dstreg)-2);
        !          1630:   uint16 dstdata = fetchword(dstaddr);
        !          1631:   uint16 outdata = dstdata;
        !          1632: 
        !          1633:   outdata^= srcdata;
        !          1634:   storeword(dstaddr, outdata);
        !          1635:   PC+= 2;
        !          1636: }
        !          1637: 
        !          1638: void cpu_op_1287b(t_ipc *ipc) /* EOR */ {
        !          1639:   /* mask f1f8, bits b158, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1640:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1641:   uint16 srcdata = DATAREG(srcreg);
        !          1642:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1643:   uint32 dstaddr = (ADDRREG(dstreg)+=2, ADDRREG(dstreg)-2);
        !          1644:   uint16 dstdata = fetchword(dstaddr);
        !          1645:   uint16 outdata = dstdata;
        !          1646: 
        !          1647:   outdata^= srcdata;
        !          1648:   storeword(dstaddr, outdata);
        !          1649: 
        !          1650:   NFLAG = ((sint16)outdata) < 0;
        !          1651:   ZFLAG = !outdata;
        !          1652:   VFLAG = 0;
        !          1653:   CFLAG = 0;
        !          1654:   PC+= 2;
        !          1655: }
        !          1656: 
        !          1657: void cpu_op_1288a(t_ipc *ipc) /* EOR */ {
        !          1658:   /* mask f1f8, bits b160, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1659:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1660:   uint16 srcdata = DATAREG(srcreg);
        !          1661:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1662:   uint32 dstaddr = ADDRREG(dstreg)-=2;
        !          1663:   uint16 dstdata = fetchword(dstaddr);
        !          1664:   uint16 outdata = dstdata;
        !          1665: 
        !          1666:   outdata^= srcdata;
        !          1667:   storeword(dstaddr, outdata);
        !          1668:   PC+= 2;
        !          1669: }
        !          1670: 
        !          1671: void cpu_op_1288b(t_ipc *ipc) /* EOR */ {
        !          1672:   /* mask f1f8, bits b160, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1673:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1674:   uint16 srcdata = DATAREG(srcreg);
        !          1675:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1676:   uint32 dstaddr = ADDRREG(dstreg)-=2;
        !          1677:   uint16 dstdata = fetchword(dstaddr);
        !          1678:   uint16 outdata = dstdata;
        !          1679: 
        !          1680:   outdata^= srcdata;
        !          1681:   storeword(dstaddr, outdata);
        !          1682: 
        !          1683:   NFLAG = ((sint16)outdata) < 0;
        !          1684:   ZFLAG = !outdata;
        !          1685:   VFLAG = 0;
        !          1686:   CFLAG = 0;
        !          1687:   PC+= 2;
        !          1688: }
        !          1689: 
        !          1690: void cpu_op_1289a(t_ipc *ipc) /* EOR */ {
        !          1691:   /* mask f1f8, bits b168, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1692:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1693:   uint16 srcdata = DATAREG(srcreg);
        !          1694:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1695:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          1696:   uint16 dstdata = fetchword(dstaddr);
        !          1697:   uint16 outdata = dstdata;
        !          1698: 
        !          1699:   outdata^= srcdata;
        !          1700:   storeword(dstaddr, outdata);
        !          1701:   PC+= 4;
        !          1702: }
        !          1703: 
        !          1704: void cpu_op_1289b(t_ipc *ipc) /* EOR */ {
        !          1705:   /* mask f1f8, bits b168, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1706:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1707:   uint16 srcdata = DATAREG(srcreg);
        !          1708:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1709:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          1710:   uint16 dstdata = fetchword(dstaddr);
        !          1711:   uint16 outdata = dstdata;
        !          1712: 
        !          1713:   outdata^= srcdata;
        !          1714:   storeword(dstaddr, outdata);
        !          1715: 
        !          1716:   NFLAG = ((sint16)outdata) < 0;
        !          1717:   ZFLAG = !outdata;
        !          1718:   VFLAG = 0;
        !          1719:   CFLAG = 0;
        !          1720:   PC+= 4;
        !          1721: }
        !          1722: 
        !          1723: void cpu_op_1290a(t_ipc *ipc) /* EOR */ {
        !          1724:   /* mask f1f8, bits b170, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1725:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1726:   uint16 srcdata = DATAREG(srcreg);
        !          1727:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1728:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          1729:   uint16 dstdata = fetchword(dstaddr);
        !          1730:   uint16 outdata = dstdata;
        !          1731: 
        !          1732:   outdata^= srcdata;
        !          1733:   storeword(dstaddr, outdata);
        !          1734:   PC+= 4;
        !          1735: }
        !          1736: 
        !          1737: void cpu_op_1290b(t_ipc *ipc) /* EOR */ {
        !          1738:   /* mask f1f8, bits b170, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1739:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1740:   uint16 srcdata = DATAREG(srcreg);
        !          1741:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1742:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          1743:   uint16 dstdata = fetchword(dstaddr);
        !          1744:   uint16 outdata = dstdata;
        !          1745: 
        !          1746:   outdata^= srcdata;
        !          1747:   storeword(dstaddr, outdata);
        !          1748: 
        !          1749:   NFLAG = ((sint16)outdata) < 0;
        !          1750:   ZFLAG = !outdata;
        !          1751:   VFLAG = 0;
        !          1752:   CFLAG = 0;
        !          1753:   PC+= 4;
        !          1754: }
        !          1755: 
        !          1756: void cpu_op_1291a(t_ipc *ipc) /* EOR */ {
        !          1757:   /* mask f1ff, bits b178, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1758:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1759:   uint16 srcdata = DATAREG(srcreg);
        !          1760:   uint32 dstaddr = ipc->dst;
        !          1761:   uint16 dstdata = fetchword(dstaddr);
        !          1762:   uint16 outdata = dstdata;
        !          1763: 
        !          1764:   outdata^= srcdata;
        !          1765:   storeword(dstaddr, outdata);
        !          1766:   PC+= 4;
        !          1767: }
        !          1768: 
        !          1769: void cpu_op_1291b(t_ipc *ipc) /* EOR */ {
        !          1770:   /* mask f1ff, bits b178, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1771:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1772:   uint16 srcdata = DATAREG(srcreg);
        !          1773:   uint32 dstaddr = ipc->dst;
        !          1774:   uint16 dstdata = fetchword(dstaddr);
        !          1775:   uint16 outdata = dstdata;
        !          1776: 
        !          1777:   outdata^= srcdata;
        !          1778:   storeword(dstaddr, outdata);
        !          1779: 
        !          1780:   NFLAG = ((sint16)outdata) < 0;
        !          1781:   ZFLAG = !outdata;
        !          1782:   VFLAG = 0;
        !          1783:   CFLAG = 0;
        !          1784:   PC+= 4;
        !          1785: }
        !          1786: 
        !          1787: void cpu_op_1292a(t_ipc *ipc) /* EOR */ {
        !          1788:   /* mask f1ff, bits b179, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1789:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1790:   uint16 srcdata = DATAREG(srcreg);
        !          1791:   uint32 dstaddr = ipc->dst;
        !          1792:   uint16 dstdata = fetchword(dstaddr);
        !          1793:   uint16 outdata = dstdata;
        !          1794: 
        !          1795:   outdata^= srcdata;
        !          1796:   storeword(dstaddr, outdata);
        !          1797:   PC+= 6;
        !          1798: }
        !          1799: 
        !          1800: void cpu_op_1292b(t_ipc *ipc) /* EOR */ {
        !          1801:   /* mask f1ff, bits b179, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 0, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1802:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1803:   uint16 srcdata = DATAREG(srcreg);
        !          1804:   uint32 dstaddr = ipc->dst;
        !          1805:   uint16 dstdata = fetchword(dstaddr);
        !          1806:   uint16 outdata = dstdata;
        !          1807: 
        !          1808:   outdata^= srcdata;
        !          1809:   storeword(dstaddr, outdata);
        !          1810: 
        !          1811:   NFLAG = ((sint16)outdata) < 0;
        !          1812:   ZFLAG = !outdata;
        !          1813:   VFLAG = 0;
        !          1814:   CFLAG = 0;
        !          1815:   PC+= 6;
        !          1816: }
        !          1817: 
        !          1818: void cpu_op_1293a(t_ipc *ipc) /* EOR */ {
        !          1819:   /* mask f1f8, bits b180, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1820:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1821:   uint32 srcdata = DATAREG(srcreg);
        !          1822:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1823:   uint32 dstdata = DATAREG(dstreg);
        !          1824:   uint32 outdata = dstdata;
        !          1825: 
        !          1826:   outdata^= srcdata;
        !          1827:   DATAREG(dstreg) = outdata;
        !          1828:   PC+= 2;
        !          1829: }
        !          1830: 
        !          1831: void cpu_op_1293b(t_ipc *ipc) /* EOR */ {
        !          1832:   /* mask f1f8, bits b180, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 0, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1833:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1834:   uint32 srcdata = DATAREG(srcreg);
        !          1835:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1836:   uint32 dstdata = DATAREG(dstreg);
        !          1837:   uint32 outdata = dstdata;
        !          1838: 
        !          1839:   outdata^= srcdata;
        !          1840:   DATAREG(dstreg) = outdata;
        !          1841: 
        !          1842:   NFLAG = ((sint32)outdata) < 0;
        !          1843:   ZFLAG = !outdata;
        !          1844:   VFLAG = 0;
        !          1845:   CFLAG = 0;
        !          1846:   PC+= 2;
        !          1847: }
        !          1848: 
        !          1849: void cpu_op_1294a(t_ipc *ipc) /* EOR */ {
        !          1850:   /* mask f1f8, bits b190, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1851:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1852:   uint32 srcdata = DATAREG(srcreg);
        !          1853:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1854:   uint32 dstaddr = ADDRREG(dstreg);
        !          1855:   uint32 dstdata = fetchlong(dstaddr);
        !          1856:   uint32 outdata = dstdata;
        !          1857: 
        !          1858:   outdata^= srcdata;
        !          1859:   storelong(dstaddr, outdata);
        !          1860:   PC+= 2;
        !          1861: }
        !          1862: 
        !          1863: void cpu_op_1294b(t_ipc *ipc) /* EOR */ {
        !          1864:   /* mask f1f8, bits b190, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 2, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1865:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1866:   uint32 srcdata = DATAREG(srcreg);
        !          1867:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1868:   uint32 dstaddr = ADDRREG(dstreg);
        !          1869:   uint32 dstdata = fetchlong(dstaddr);
        !          1870:   uint32 outdata = dstdata;
        !          1871: 
        !          1872:   outdata^= srcdata;
        !          1873:   storelong(dstaddr, outdata);
        !          1874: 
        !          1875:   NFLAG = ((sint32)outdata) < 0;
        !          1876:   ZFLAG = !outdata;
        !          1877:   VFLAG = 0;
        !          1878:   CFLAG = 0;
        !          1879:   PC+= 2;
        !          1880: }
        !          1881: 
        !          1882: void cpu_op_1295a(t_ipc *ipc) /* EOR */ {
        !          1883:   /* mask f1f8, bits b198, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1884:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1885:   uint32 srcdata = DATAREG(srcreg);
        !          1886:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1887:   uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
        !          1888:   uint32 dstdata = fetchlong(dstaddr);
        !          1889:   uint32 outdata = dstdata;
        !          1890: 
        !          1891:   outdata^= srcdata;
        !          1892:   storelong(dstaddr, outdata);
        !          1893:   PC+= 2;
        !          1894: }
        !          1895: 
        !          1896: void cpu_op_1295b(t_ipc *ipc) /* EOR */ {
        !          1897:   /* mask f1f8, bits b198, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 3, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1898:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1899:   uint32 srcdata = DATAREG(srcreg);
        !          1900:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1901:   uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
        !          1902:   uint32 dstdata = fetchlong(dstaddr);
        !          1903:   uint32 outdata = dstdata;
        !          1904: 
        !          1905:   outdata^= srcdata;
        !          1906:   storelong(dstaddr, outdata);
        !          1907: 
        !          1908:   NFLAG = ((sint32)outdata) < 0;
        !          1909:   ZFLAG = !outdata;
        !          1910:   VFLAG = 0;
        !          1911:   CFLAG = 0;
        !          1912:   PC+= 2;
        !          1913: }
        !          1914: 
        !          1915: void cpu_op_1296a(t_ipc *ipc) /* EOR */ {
        !          1916:   /* mask f1f8, bits b1a0, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1917:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1918:   uint32 srcdata = DATAREG(srcreg);
        !          1919:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1920:   uint32 dstaddr = ADDRREG(dstreg)-=4;
        !          1921:   uint32 dstdata = fetchlong(dstaddr);
        !          1922:   uint32 outdata = dstdata;
        !          1923: 
        !          1924:   outdata^= srcdata;
        !          1925:   storelong(dstaddr, outdata);
        !          1926:   PC+= 2;
        !          1927: }
        !          1928: 
        !          1929: void cpu_op_1296b(t_ipc *ipc) /* EOR */ {
        !          1930:   /* mask f1f8, bits b1a0, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 4, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1931:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1932:   uint32 srcdata = DATAREG(srcreg);
        !          1933:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1934:   uint32 dstaddr = ADDRREG(dstreg)-=4;
        !          1935:   uint32 dstdata = fetchlong(dstaddr);
        !          1936:   uint32 outdata = dstdata;
        !          1937: 
        !          1938:   outdata^= srcdata;
        !          1939:   storelong(dstaddr, outdata);
        !          1940: 
        !          1941:   NFLAG = ((sint32)outdata) < 0;
        !          1942:   ZFLAG = !outdata;
        !          1943:   VFLAG = 0;
        !          1944:   CFLAG = 0;
        !          1945:   PC+= 2;
        !          1946: }
        !          1947: 
        !          1948: void cpu_op_1297a(t_ipc *ipc) /* EOR */ {
        !          1949:   /* mask f1f8, bits b1a8, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1950:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1951:   uint32 srcdata = DATAREG(srcreg);
        !          1952:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1953:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          1954:   uint32 dstdata = fetchlong(dstaddr);
        !          1955:   uint32 outdata = dstdata;
        !          1956: 
        !          1957:   outdata^= srcdata;
        !          1958:   storelong(dstaddr, outdata);
        !          1959:   PC+= 4;
        !          1960: }
        !          1961: 
        !          1962: void cpu_op_1297b(t_ipc *ipc) /* EOR */ {
        !          1963:   /* mask f1f8, bits b1a8, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 5, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1964:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1965:   uint32 srcdata = DATAREG(srcreg);
        !          1966:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1967:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + (sint32)(sint16)ipc->dst;
        !          1968:   uint32 dstdata = fetchlong(dstaddr);
        !          1969:   uint32 outdata = dstdata;
        !          1970: 
        !          1971:   outdata^= srcdata;
        !          1972:   storelong(dstaddr, outdata);
        !          1973: 
        !          1974:   NFLAG = ((sint32)outdata) < 0;
        !          1975:   ZFLAG = !outdata;
        !          1976:   VFLAG = 0;
        !          1977:   CFLAG = 0;
        !          1978:   PC+= 4;
        !          1979: }
        !          1980: 
        !          1981: void cpu_op_1298a(t_ipc *ipc) /* EOR */ {
        !          1982:   /* mask f1f8, bits b1b0, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1983:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1984:   uint32 srcdata = DATAREG(srcreg);
        !          1985:   int dstreg = (ipc->opcode >> 0) & 7;
        !          1986:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          1987:   uint32 dstdata = fetchlong(dstaddr);
        !          1988:   uint32 outdata = dstdata;
        !          1989: 
        !          1990:   outdata^= srcdata;
        !          1991:   storelong(dstaddr, outdata);
        !          1992:   PC+= 4;
        !          1993: }
        !          1994: 
        !          1995: void cpu_op_1298b(t_ipc *ipc) /* EOR */ {
        !          1996:   /* mask f1f8, bits b1b0, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 6, sbitpos 9, dbitpos 0, immvalue 0 */
        !          1997:   int srcreg = (ipc->opcode >> 9) & 7;
        !          1998:   uint32 srcdata = DATAREG(srcreg);
        !          1999:   int dstreg = (ipc->opcode >> 0) & 7;
        !          2000:   uint32 dstaddr = (sint32)ADDRREG(dstreg) + idxval_dst(ipc);
        !          2001:   uint32 dstdata = fetchlong(dstaddr);
        !          2002:   uint32 outdata = dstdata;
        !          2003: 
        !          2004:   outdata^= srcdata;
        !          2005:   storelong(dstaddr, outdata);
        !          2006: 
        !          2007:   NFLAG = ((sint32)outdata) < 0;
        !          2008:   ZFLAG = !outdata;
        !          2009:   VFLAG = 0;
        !          2010:   CFLAG = 0;
        !          2011:   PC+= 4;
        !          2012: }
        !          2013: 
        !          2014: void cpu_op_1299a(t_ipc *ipc) /* EOR */ {
        !          2015:   /* mask f1ff, bits b1b8, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !          2016:   int srcreg = (ipc->opcode >> 9) & 7;
        !          2017:   uint32 srcdata = DATAREG(srcreg);
        !          2018:   uint32 dstaddr = ipc->dst;
        !          2019:   uint32 dstdata = fetchlong(dstaddr);
        !          2020:   uint32 outdata = dstdata;
        !          2021: 
        !          2022:   outdata^= srcdata;
        !          2023:   storelong(dstaddr, outdata);
        !          2024:   PC+= 4;
        !          2025: }
        !          2026: 
        !          2027: void cpu_op_1299b(t_ipc *ipc) /* EOR */ {
        !          2028:   /* mask f1ff, bits b1b8, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 7, sbitpos 9, dbitpos 0, immvalue 0 */
        !          2029:   int srcreg = (ipc->opcode >> 9) & 7;
        !          2030:   uint32 srcdata = DATAREG(srcreg);
        !          2031:   uint32 dstaddr = ipc->dst;
        !          2032:   uint32 dstdata = fetchlong(dstaddr);
        !          2033:   uint32 outdata = dstdata;
        !          2034: 
        !          2035:   outdata^= srcdata;
        !          2036:   storelong(dstaddr, outdata);
        !          2037: 
        !          2038:   NFLAG = ((sint32)outdata) < 0;
        !          2039:   ZFLAG = !outdata;
        !          2040:   VFLAG = 0;
        !          2041:   CFLAG = 0;
        !          2042:   PC+= 4;
        !          2043: }
        !          2044: 
        !          2045: void cpu_op_1300a(t_ipc *ipc) /* EOR */ {
        !          2046:   /* mask f1ff, bits b1b9, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !          2047:   int srcreg = (ipc->opcode >> 9) & 7;
        !          2048:   uint32 srcdata = DATAREG(srcreg);
        !          2049:   uint32 dstaddr = ipc->dst;
        !          2050:   uint32 dstdata = fetchlong(dstaddr);
        !          2051:   uint32 outdata = dstdata;
        !          2052: 
        !          2053:   outdata^= srcdata;
        !          2054:   storelong(dstaddr, outdata);
        !          2055:   PC+= 6;
        !          2056: }
        !          2057: 
        !          2058: void cpu_op_1300b(t_ipc *ipc) /* EOR */ {
        !          2059:   /* mask f1ff, bits b1b9, mnemonic 5, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 8, sbitpos 9, dbitpos 0, immvalue 0 */
        !          2060:   int srcreg = (ipc->opcode >> 9) & 7;
        !          2061:   uint32 srcdata = DATAREG(srcreg);
        !          2062:   uint32 dstaddr = ipc->dst;
        !          2063:   uint32 dstdata = fetchlong(dstaddr);
        !          2064:   uint32 outdata = dstdata;
        !          2065: 
        !          2066:   outdata^= srcdata;
        !          2067:   storelong(dstaddr, outdata);
        !          2068: 
        !          2069:   NFLAG = ((sint32)outdata) < 0;
        !          2070:   ZFLAG = !outdata;
        !          2071:   VFLAG = 0;
        !          2072:   CFLAG = 0;
        !          2073:   PC+= 6;
        !          2074: }
        !          2075: 
        !          2076: void cpu_op_1301a(t_ipc *ipc) /* CMP */ {
        !          2077:   /* mask f1f8, bits b108, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 3, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2078:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2079:   uint32 srcaddr = ADDRREG(srcreg);
        !          2080:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          2081:   uint8 srcdata = fetchbyte(srcaddr);
        !          2082:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2083:   uint32 dstaddr = ADDRREG(dstreg);
        !          2084:   uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
        !          2085:   uint8 dstdata = fetchbyte(dstaddr);
        !          2086:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2087:   PC+= 2;
        !          2088: }
        !          2089: 
        !          2090: void cpu_op_1301b(t_ipc *ipc) /* CMP */ {
        !          2091:   /* mask f1f8, bits b108, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 1, stype 3, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2092:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2093:   uint32 srcaddr = ADDRREG(srcreg);
        !          2094:   uint32 srcaddr_tmp = (ADDRREG(srcreg)+= (srcreg == 7 ? 2 : 1), 0);
        !          2095:   uint8 srcdata = fetchbyte(srcaddr);
        !          2096:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2097:   uint32 dstaddr = ADDRREG(dstreg);
        !          2098:   uint32 dstaddr_tmp = (ADDRREG(dstreg)+= (dstreg == 7 ? 2 : 1), 0);
        !          2099:   uint8 dstdata = fetchbyte(dstaddr);
        !          2100:   uint8 outdata = (sint8)dstdata - (sint8)srcdata;
        !          2101: 
        !          2102:   VFLAG = (((sint8)srcdata < 0) != ((sint8)dstdata < 0)) &&
        !          2103:     (((sint8)dstdata < 0) != ((sint8)outdata < 0));
        !          2104:   CFLAG = srcdata > dstdata;
        !          2105:   NFLAG = ((sint8)outdata) < 0;
        !          2106:   ZFLAG = !outdata;
        !          2107:   PC+= 2;
        !          2108: }
        !          2109: 
        !          2110: void cpu_op_1302a(t_ipc *ipc) /* CMP */ {
        !          2111:   /* mask f1f8, bits b148, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 3, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2112:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2113:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
        !          2114:   uint16 srcdata = fetchword(srcaddr);
        !          2115:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2116:   uint32 dstaddr = (ADDRREG(dstreg)+=2, ADDRREG(dstreg)-2);
        !          2117:   uint16 dstdata = fetchword(dstaddr);
        !          2118:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2119:   PC+= 2;
        !          2120: }
        !          2121: 
        !          2122: void cpu_op_1302b(t_ipc *ipc) /* CMP */ {
        !          2123:   /* mask f1f8, bits b148, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 2, stype 3, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2124:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2125:   uint32 srcaddr = (ADDRREG(srcreg)+=2, ADDRREG(srcreg)-2);
        !          2126:   uint16 srcdata = fetchword(srcaddr);
        !          2127:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2128:   uint32 dstaddr = (ADDRREG(dstreg)+=2, ADDRREG(dstreg)-2);
        !          2129:   uint16 dstdata = fetchword(dstaddr);
        !          2130:   uint16 outdata = (sint16)dstdata - (sint16)srcdata;
        !          2131: 
        !          2132:   VFLAG = (((sint16)srcdata < 0) != ((sint16)dstdata < 0)) &&
        !          2133:     (((sint16)dstdata < 0) != ((sint16)outdata < 0));
        !          2134:   CFLAG = srcdata > dstdata;
        !          2135:   NFLAG = ((sint16)outdata) < 0;
        !          2136:   ZFLAG = !outdata;
        !          2137:   PC+= 2;
        !          2138: }
        !          2139: 
        !          2140: void cpu_op_1303a(t_ipc *ipc) /* CMP */ {
        !          2141:   /* mask f1f8, bits b188, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 3, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2142:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2143:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
        !          2144:   uint32 srcdata = fetchlong(srcaddr);
        !          2145:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2146:   uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
        !          2147:   uint32 dstdata = fetchlong(dstaddr);
        !          2148:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2149:   PC+= 2;
        !          2150: }
        !          2151: 
        !          2152: void cpu_op_1303b(t_ipc *ipc) /* CMP */ {
        !          2153:   /* mask f1f8, bits b188, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 3, dtype 3, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2154:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2155:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
        !          2156:   uint32 srcdata = fetchlong(srcaddr);
        !          2157:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2158:   uint32 dstaddr = (ADDRREG(dstreg)+=4, ADDRREG(dstreg)-4);
        !          2159:   uint32 dstdata = fetchlong(dstaddr);
        !          2160:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2161: 
        !          2162:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2163:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2164:   CFLAG = srcdata > dstdata;
        !          2165:   NFLAG = ((sint32)outdata) < 0;
        !          2166:   ZFLAG = !outdata;
        !          2167:   PC+= 2;
        !          2168: }
        !          2169: 
        !          2170: void cpu_op_1304a(t_ipc *ipc) /* CMP */ {
        !          2171:   /* mask f1f8, bits b1c0, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2172:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2173:   uint32 srcdata = DATAREG(srcreg);
        !          2174:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2175:   uint32 dstdata = ADDRREG(dstreg);
        !          2176:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2177:   PC+= 2;
        !          2178: }
        !          2179: 
        !          2180: void cpu_op_1304b(t_ipc *ipc) /* CMP */ {
        !          2181:   /* mask f1f8, bits b1c0, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 0, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2182:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2183:   uint32 srcdata = DATAREG(srcreg);
        !          2184:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2185:   uint32 dstdata = ADDRREG(dstreg);
        !          2186:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2187: 
        !          2188:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2189:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2190:   CFLAG = srcdata > dstdata;
        !          2191:   NFLAG = ((sint32)outdata) < 0;
        !          2192:   ZFLAG = !outdata;
        !          2193:   PC+= 2;
        !          2194: }
        !          2195: 
        !          2196: void cpu_op_1305a(t_ipc *ipc) /* CMP */ {
        !          2197:   /* mask f1f8, bits b1c8, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 1, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2198:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2199:   uint32 srcdata = ADDRREG(srcreg);
        !          2200:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2201:   uint32 dstdata = ADDRREG(dstreg);
        !          2202:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2203:   PC+= 2;
        !          2204: }
        !          2205: 
        !          2206: void cpu_op_1305b(t_ipc *ipc) /* CMP */ {
        !          2207:   /* mask f1f8, bits b1c8, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 1, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2208:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2209:   uint32 srcdata = ADDRREG(srcreg);
        !          2210:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2211:   uint32 dstdata = ADDRREG(dstreg);
        !          2212:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2213: 
        !          2214:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2215:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2216:   CFLAG = srcdata > dstdata;
        !          2217:   NFLAG = ((sint32)outdata) < 0;
        !          2218:   ZFLAG = !outdata;
        !          2219:   PC+= 2;
        !          2220: }
        !          2221: 
        !          2222: void cpu_op_1306a(t_ipc *ipc) /* CMP */ {
        !          2223:   /* mask f1f8, bits b1d0, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 2, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2224:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2225:   uint32 srcaddr = ADDRREG(srcreg);
        !          2226:   uint32 srcdata = fetchlong(srcaddr);
        !          2227:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2228:   uint32 dstdata = ADDRREG(dstreg);
        !          2229:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2230:   PC+= 2;
        !          2231: }
        !          2232: 
        !          2233: void cpu_op_1306b(t_ipc *ipc) /* CMP */ {
        !          2234:   /* mask f1f8, bits b1d0, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 2, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2235:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2236:   uint32 srcaddr = ADDRREG(srcreg);
        !          2237:   uint32 srcdata = fetchlong(srcaddr);
        !          2238:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2239:   uint32 dstdata = ADDRREG(dstreg);
        !          2240:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2241: 
        !          2242:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2243:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2244:   CFLAG = srcdata > dstdata;
        !          2245:   NFLAG = ((sint32)outdata) < 0;
        !          2246:   ZFLAG = !outdata;
        !          2247:   PC+= 2;
        !          2248: }
        !          2249: 
        !          2250: void cpu_op_1307a(t_ipc *ipc) /* CMP */ {
        !          2251:   /* mask f1f8, bits b1d8, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 3, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2252:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2253:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
        !          2254:   uint32 srcdata = fetchlong(srcaddr);
        !          2255:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2256:   uint32 dstdata = ADDRREG(dstreg);
        !          2257:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2258:   PC+= 2;
        !          2259: }
        !          2260: 
        !          2261: void cpu_op_1307b(t_ipc *ipc) /* CMP */ {
        !          2262:   /* mask f1f8, bits b1d8, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 3, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2263:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2264:   uint32 srcaddr = (ADDRREG(srcreg)+=4, ADDRREG(srcreg)-4);
        !          2265:   uint32 srcdata = fetchlong(srcaddr);
        !          2266:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2267:   uint32 dstdata = ADDRREG(dstreg);
        !          2268:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2269: 
        !          2270:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2271:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2272:   CFLAG = srcdata > dstdata;
        !          2273:   NFLAG = ((sint32)outdata) < 0;
        !          2274:   ZFLAG = !outdata;
        !          2275:   PC+= 2;
        !          2276: }
        !          2277: 
        !          2278: void cpu_op_1308a(t_ipc *ipc) /* CMP */ {
        !          2279:   /* mask f1f8, bits b1e0, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 4, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2280:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2281:   uint32 srcaddr = ADDRREG(srcreg)-=4;
        !          2282:   uint32 srcdata = fetchlong(srcaddr);
        !          2283:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2284:   uint32 dstdata = ADDRREG(dstreg);
        !          2285:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2286:   PC+= 2;
        !          2287: }
        !          2288: 
        !          2289: void cpu_op_1308b(t_ipc *ipc) /* CMP */ {
        !          2290:   /* mask f1f8, bits b1e0, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 4, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2291:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2292:   uint32 srcaddr = ADDRREG(srcreg)-=4;
        !          2293:   uint32 srcdata = fetchlong(srcaddr);
        !          2294:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2295:   uint32 dstdata = ADDRREG(dstreg);
        !          2296:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2297: 
        !          2298:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2299:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2300:   CFLAG = srcdata > dstdata;
        !          2301:   NFLAG = ((sint32)outdata) < 0;
        !          2302:   ZFLAG = !outdata;
        !          2303:   PC+= 2;
        !          2304: }
        !          2305: 
        !          2306: void cpu_op_1309a(t_ipc *ipc) /* CMP */ {
        !          2307:   /* mask f1f8, bits b1e8, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 5, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2308:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2309:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          2310:   uint32 srcdata = fetchlong(srcaddr);
        !          2311:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2312:   uint32 dstdata = ADDRREG(dstreg);
        !          2313:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2314:   PC+= 4;
        !          2315: }
        !          2316: 
        !          2317: void cpu_op_1309b(t_ipc *ipc) /* CMP */ {
        !          2318:   /* mask f1f8, bits b1e8, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 5, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2319:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2320:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + (sint32)(sint16)ipc->src;
        !          2321:   uint32 srcdata = fetchlong(srcaddr);
        !          2322:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2323:   uint32 dstdata = ADDRREG(dstreg);
        !          2324:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2325: 
        !          2326:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2327:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2328:   CFLAG = srcdata > dstdata;
        !          2329:   NFLAG = ((sint32)outdata) < 0;
        !          2330:   ZFLAG = !outdata;
        !          2331:   PC+= 4;
        !          2332: }
        !          2333: 
        !          2334: void cpu_op_1310a(t_ipc *ipc) /* CMP */ {
        !          2335:   /* mask f1f8, bits b1f0, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 6, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2336:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2337:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          2338:   uint32 srcdata = fetchlong(srcaddr);
        !          2339:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2340:   uint32 dstdata = ADDRREG(dstreg);
        !          2341:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2342:   PC+= 4;
        !          2343: }
        !          2344: 
        !          2345: void cpu_op_1310b(t_ipc *ipc) /* CMP */ {
        !          2346:   /* mask f1f8, bits b1f0, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 6, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2347:   int srcreg = (ipc->opcode >> 0) & 7;
        !          2348:   uint32 srcaddr = (sint32)ADDRREG(srcreg) + idxval_src(ipc);
        !          2349:   uint32 srcdata = fetchlong(srcaddr);
        !          2350:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2351:   uint32 dstdata = ADDRREG(dstreg);
        !          2352:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2353: 
        !          2354:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2355:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2356:   CFLAG = srcdata > dstdata;
        !          2357:   NFLAG = ((sint32)outdata) < 0;
        !          2358:   ZFLAG = !outdata;
        !          2359:   PC+= 4;
        !          2360: }
        !          2361: 
        !          2362: void cpu_op_1311a(t_ipc *ipc) /* CMP */ {
        !          2363:   /* mask f1ff, bits b1f8, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 7, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2364:   uint32 srcaddr = ipc->src;
        !          2365:   uint32 srcdata = fetchlong(srcaddr);
        !          2366:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2367:   uint32 dstdata = ADDRREG(dstreg);
        !          2368:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2369:   PC+= 4;
        !          2370: }
        !          2371: 
        !          2372: void cpu_op_1311b(t_ipc *ipc) /* CMP */ {
        !          2373:   /* mask f1ff, bits b1f8, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 7, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2374:   uint32 srcaddr = ipc->src;
        !          2375:   uint32 srcdata = fetchlong(srcaddr);
        !          2376:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2377:   uint32 dstdata = ADDRREG(dstreg);
        !          2378:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2379: 
        !          2380:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2381:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2382:   CFLAG = srcdata > dstdata;
        !          2383:   NFLAG = ((sint32)outdata) < 0;
        !          2384:   ZFLAG = !outdata;
        !          2385:   PC+= 4;
        !          2386: }
        !          2387: 
        !          2388: void cpu_op_1312a(t_ipc *ipc) /* CMP */ {
        !          2389:   /* mask f1ff, bits b1f9, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 8, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2390:   uint32 srcaddr = ipc->src;
        !          2391:   uint32 srcdata = fetchlong(srcaddr);
        !          2392:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2393:   uint32 dstdata = ADDRREG(dstreg);
        !          2394:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2395:   PC+= 6;
        !          2396: }
        !          2397: 
        !          2398: void cpu_op_1312b(t_ipc *ipc) /* CMP */ {
        !          2399:   /* mask f1ff, bits b1f9, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 8, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2400:   uint32 srcaddr = ipc->src;
        !          2401:   uint32 srcdata = fetchlong(srcaddr);
        !          2402:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2403:   uint32 dstdata = ADDRREG(dstreg);
        !          2404:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2405: 
        !          2406:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2407:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2408:   CFLAG = srcdata > dstdata;
        !          2409:   NFLAG = ((sint32)outdata) < 0;
        !          2410:   ZFLAG = !outdata;
        !          2411:   PC+= 6;
        !          2412: }
        !          2413: 
        !          2414: void cpu_op_1313a(t_ipc *ipc) /* CMP */ {
        !          2415:   /* mask f1ff, bits b1fa, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 9, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2416:   uint32 srcaddr = ipc->src;
        !          2417:   uint32 srcdata = fetchlong(srcaddr);
        !          2418:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2419:   uint32 dstdata = ADDRREG(dstreg);
        !          2420:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2421:   PC+= 4;
        !          2422: }
        !          2423: 
        !          2424: void cpu_op_1313b(t_ipc *ipc) /* CMP */ {
        !          2425:   /* mask f1ff, bits b1fa, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 9, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2426:   uint32 srcaddr = ipc->src;
        !          2427:   uint32 srcdata = fetchlong(srcaddr);
        !          2428:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2429:   uint32 dstdata = ADDRREG(dstreg);
        !          2430:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2431: 
        !          2432:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2433:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2434:   CFLAG = srcdata > dstdata;
        !          2435:   NFLAG = ((sint32)outdata) < 0;
        !          2436:   ZFLAG = !outdata;
        !          2437:   PC+= 4;
        !          2438: }
        !          2439: 
        !          2440: void cpu_op_1314a(t_ipc *ipc) /* CMP */ {
        !          2441:   /* mask f1ff, bits b1fb, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 10, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2442:   uint32 srcaddr = idxval_src(ipc);
        !          2443:   uint32 srcdata = fetchlong(srcaddr);
        !          2444:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2445:   uint32 dstdata = ADDRREG(dstreg);
        !          2446:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2447:   PC+= 4;
        !          2448: }
        !          2449: 
        !          2450: void cpu_op_1314b(t_ipc *ipc) /* CMP */ {
        !          2451:   /* mask f1ff, bits b1fb, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 10, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2452:   uint32 srcaddr = idxval_src(ipc);
        !          2453:   uint32 srcdata = fetchlong(srcaddr);
        !          2454:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2455:   uint32 dstdata = ADDRREG(dstreg);
        !          2456:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2457: 
        !          2458:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2459:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2460:   CFLAG = srcdata > dstdata;
        !          2461:   NFLAG = ((sint32)outdata) < 0;
        !          2462:   ZFLAG = !outdata;
        !          2463:   PC+= 4;
        !          2464: }
        !          2465: 
        !          2466: void cpu_op_1315a(t_ipc *ipc) /* CMP */ {
        !          2467:   /* mask f1ff, bits b1fc, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 13, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2468:   uint32 srcdata = ipc->src;
        !          2469:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2470:   uint32 dstdata = ADDRREG(dstreg);
        !          2471:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2472:   PC+= 6;
        !          2473: }
        !          2474: 
        !          2475: void cpu_op_1315b(t_ipc *ipc) /* CMP */ {
        !          2476:   /* mask f1ff, bits b1fc, mnemonic 15, priv 0, endblk 0, imm_notzero 0, used 0     set -2, size 3, stype 13, dtype 1, sbitpos 0, dbitpos 9, immvalue 0 */
        !          2477:   uint32 srcdata = ipc->src;
        !          2478:   int dstreg = (ipc->opcode >> 9) & 7;
        !          2479:   uint32 dstdata = ADDRREG(dstreg);
        !          2480:   uint32 outdata = (sint32)dstdata - (sint32)srcdata;
        !          2481: 
        !          2482:   VFLAG = (((sint32)srcdata < 0) != ((sint32)dstdata < 0)) &&
        !          2483:     (((sint32)dstdata < 0) != ((sint32)outdata < 0));
        !          2484:   CFLAG = srcdata > dstdata;
        !          2485:   NFLAG = ((sint32)outdata) < 0;
        !          2486:   ZFLAG = !outdata;
        !          2487:   PC+= 6;
        !          2488: }
        !          2489: 

unix.superglobalmegacorp.com

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