Annotation of generator/src/out/cpu68k-b.c, revision 1.1.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.