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

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

unix.superglobalmegacorp.com

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