Annotation of uae/CPU Sources/cpuC.c, revision 1.1.1.1

1.1       root        1: #include "config.h"
                      2: #include "amiga.h"
                      3: #include "options.h"
                      4: #include <stdlib.h>
                      5: #include "memory.h"
                      6: #include "custom.h"
                      7: #include "newcpu.h"
                      8: #include "cputbl.h"
                      9: void op_c000(UWORD opcode)
                     10: {
                     11:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                     12:        ULONG dstreg = (opcode & 3584) >> 9;
                     13: {{     BYTE src = regs.d[srcreg];
                     14: {      BYTE dst = regs.d[dstreg];
                     15:        src &= dst;
                     16:        regs.v = regs.c = 0;
                     17:        regs.z = ((BYTE)(src)) == 0;
                     18:        regs.n = ((BYTE)(src)) < 0;
                     19:        regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
                     20: }}}}
                     21: void op_c010(UWORD opcode)
                     22: {
                     23:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                     24:        ULONG dstreg = (opcode & 3584) >> 9;
                     25: {{     CPTR srca = regs.a[srcreg];
                     26:        BYTE src = get_byte(srca);
                     27: {      BYTE dst = regs.d[dstreg];
                     28:        src &= dst;
                     29:        regs.v = regs.c = 0;
                     30:        regs.z = ((BYTE)(src)) == 0;
                     31:        regs.n = ((BYTE)(src)) < 0;
                     32:        regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
                     33: }}}}
                     34: void op_c018(UWORD opcode)
                     35: {
                     36:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                     37:        ULONG dstreg = (opcode & 3584) >> 9;
                     38: {{     CPTR srca = regs.a[srcreg];
                     39:        BYTE src = get_byte(srca);
                     40: {      regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
                     41: {      BYTE dst = regs.d[dstreg];
                     42:        src &= dst;
                     43:        regs.v = regs.c = 0;
                     44:        regs.z = ((BYTE)(src)) == 0;
                     45:        regs.n = ((BYTE)(src)) < 0;
                     46:        regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
                     47: }}}}}
                     48: void op_c020(UWORD opcode)
                     49: {
                     50:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                     51:        ULONG dstreg = (opcode & 3584) >> 9;
                     52: {{     regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
                     53: {      CPTR srca = regs.a[srcreg];
                     54:        BYTE src = get_byte(srca);
                     55: {      BYTE dst = regs.d[dstreg];
                     56:        src &= dst;
                     57:        regs.v = regs.c = 0;
                     58:        regs.z = ((BYTE)(src)) == 0;
                     59:        regs.n = ((BYTE)(src)) < 0;
                     60:        regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
                     61: }}}}}
                     62: void op_c028(UWORD opcode)
                     63: {
                     64:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                     65:        ULONG dstreg = (opcode & 3584) >> 9;
                     66: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                     67:        BYTE src = get_byte(srca);
                     68: {      BYTE dst = regs.d[dstreg];
                     69:        src &= dst;
                     70:        regs.v = regs.c = 0;
                     71:        regs.z = ((BYTE)(src)) == 0;
                     72:        regs.n = ((BYTE)(src)) < 0;
                     73:        regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
                     74: }}}}
                     75: void op_c030(UWORD opcode)
                     76: {
                     77:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                     78:        ULONG dstreg = (opcode & 3584) >> 9;
                     79: {{     CPTR srca = regs.a[srcreg];
                     80:        UWORD srcdp = nextiword();
                     81:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                     82: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                     83:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                     84:        srca += srcdpr;
                     85: {      BYTE src = get_byte(srca);
                     86: {      BYTE dst = regs.d[dstreg];
                     87:        src &= dst;
                     88:        regs.v = regs.c = 0;
                     89:        regs.z = ((BYTE)(src)) == 0;
                     90:        regs.n = ((BYTE)(src)) < 0;
                     91:        regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
                     92: }}}}}}
                     93: void op_c038(UWORD opcode)
                     94: {
                     95:        ULONG dstreg = (opcode & 3584) >> 9;
                     96: {{     CPTR srca = (LONG)(WORD)nextiword();
                     97:        BYTE src = get_byte(srca);
                     98: {      BYTE dst = regs.d[dstreg];
                     99:        src &= dst;
                    100:        regs.v = regs.c = 0;
                    101:        regs.z = ((BYTE)(src)) == 0;
                    102:        regs.n = ((BYTE)(src)) < 0;
                    103:        regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
                    104: }}}}
                    105: void op_c039(UWORD opcode)
                    106: {
                    107:        ULONG dstreg = (opcode & 3584) >> 9;
                    108: {{     CPTR srca = nextilong();
                    109:        BYTE src = get_byte(srca);
                    110: {      BYTE dst = regs.d[dstreg];
                    111:        src &= dst;
                    112:        regs.v = regs.c = 0;
                    113:        regs.z = ((BYTE)(src)) == 0;
                    114:        regs.n = ((BYTE)(src)) < 0;
                    115:        regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
                    116: }}}}
                    117: void op_c03a(UWORD opcode)
                    118: {
                    119:        ULONG dstreg = (opcode & 3584) >> 9;
                    120: {{     CPTR srca = m68k_getpc();
                    121:        srca += (LONG)(WORD)nextiword();
                    122: {      BYTE src = get_byte(srca);
                    123: {      BYTE dst = regs.d[dstreg];
                    124:        src &= dst;
                    125:        regs.v = regs.c = 0;
                    126:        regs.z = ((BYTE)(src)) == 0;
                    127:        regs.n = ((BYTE)(src)) < 0;
                    128:        regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
                    129: }}}}}
                    130: void op_c03b(UWORD opcode)
                    131: {
                    132:        ULONG dstreg = (opcode & 3584) >> 9;
                    133: {{     CPTR srca = m68k_getpc();
                    134:        UWORD srcdp = nextiword();
                    135:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    136: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    137:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    138:        srca += srcdpr;
                    139: {      BYTE src = get_byte(srca);
                    140: {      BYTE dst = regs.d[dstreg];
                    141:        src &= dst;
                    142:        regs.v = regs.c = 0;
                    143:        regs.z = ((BYTE)(src)) == 0;
                    144:        regs.n = ((BYTE)(src)) < 0;
                    145:        regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
                    146: }}}}}}
                    147: void op_c03c(UWORD opcode)
                    148: {
                    149:        ULONG dstreg = (opcode & 3584) >> 9;
                    150: {{     BYTE src = nextiword();
                    151: {      BYTE dst = regs.d[dstreg];
                    152:        src &= dst;
                    153:        regs.v = regs.c = 0;
                    154:        regs.z = ((BYTE)(src)) == 0;
                    155:        regs.n = ((BYTE)(src)) < 0;
                    156:        regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (src) & 0xff;
                    157: }}}}
                    158: void op_c040(UWORD opcode)
                    159: {
                    160:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    161:        ULONG dstreg = (opcode & 3584) >> 9;
                    162: {{     WORD src = regs.d[srcreg];
                    163: {      WORD dst = regs.d[dstreg];
                    164:        src &= dst;
                    165:        regs.v = regs.c = 0;
                    166:        regs.z = ((WORD)(src)) == 0;
                    167:        regs.n = ((WORD)(src)) < 0;
                    168:        regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
                    169: }}}}
                    170: void op_c050(UWORD opcode)
                    171: {
                    172:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    173:        ULONG dstreg = (opcode & 3584) >> 9;
                    174: {{     CPTR srca = regs.a[srcreg];
                    175:        WORD src = get_word(srca);
                    176: {      WORD dst = regs.d[dstreg];
                    177:        src &= dst;
                    178:        regs.v = regs.c = 0;
                    179:        regs.z = ((WORD)(src)) == 0;
                    180:        regs.n = ((WORD)(src)) < 0;
                    181:        regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
                    182: }}}}
                    183: void op_c058(UWORD opcode)
                    184: {
                    185:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    186:        ULONG dstreg = (opcode & 3584) >> 9;
                    187: {{     CPTR srca = regs.a[srcreg];
                    188:        WORD src = get_word(srca);
                    189: {      regs.a[srcreg] += 2;
                    190: {      WORD dst = regs.d[dstreg];
                    191:        src &= dst;
                    192:        regs.v = regs.c = 0;
                    193:        regs.z = ((WORD)(src)) == 0;
                    194:        regs.n = ((WORD)(src)) < 0;
                    195:        regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
                    196: }}}}}
                    197: void op_c060(UWORD opcode)
                    198: {
                    199:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    200:        ULONG dstreg = (opcode & 3584) >> 9;
                    201: {{     regs.a[srcreg] -= 2;
                    202: {      CPTR srca = regs.a[srcreg];
                    203:        WORD src = get_word(srca);
                    204: {      WORD dst = regs.d[dstreg];
                    205:        src &= dst;
                    206:        regs.v = regs.c = 0;
                    207:        regs.z = ((WORD)(src)) == 0;
                    208:        regs.n = ((WORD)(src)) < 0;
                    209:        regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
                    210: }}}}}
                    211: void op_c068(UWORD opcode)
                    212: {
                    213:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    214:        ULONG dstreg = (opcode & 3584) >> 9;
                    215: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                    216:        WORD src = get_word(srca);
                    217: {      WORD dst = regs.d[dstreg];
                    218:        src &= dst;
                    219:        regs.v = regs.c = 0;
                    220:        regs.z = ((WORD)(src)) == 0;
                    221:        regs.n = ((WORD)(src)) < 0;
                    222:        regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
                    223: }}}}
                    224: void op_c070(UWORD opcode)
                    225: {
                    226:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    227:        ULONG dstreg = (opcode & 3584) >> 9;
                    228: {{     CPTR srca = regs.a[srcreg];
                    229:        UWORD srcdp = nextiword();
                    230:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    231: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    232:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    233:        srca += srcdpr;
                    234: {      WORD src = get_word(srca);
                    235: {      WORD dst = regs.d[dstreg];
                    236:        src &= dst;
                    237:        regs.v = regs.c = 0;
                    238:        regs.z = ((WORD)(src)) == 0;
                    239:        regs.n = ((WORD)(src)) < 0;
                    240:        regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
                    241: }}}}}}
                    242: void op_c078(UWORD opcode)
                    243: {
                    244:        ULONG dstreg = (opcode & 3584) >> 9;
                    245: {{     CPTR srca = (LONG)(WORD)nextiword();
                    246:        WORD src = get_word(srca);
                    247: {      WORD dst = regs.d[dstreg];
                    248:        src &= dst;
                    249:        regs.v = regs.c = 0;
                    250:        regs.z = ((WORD)(src)) == 0;
                    251:        regs.n = ((WORD)(src)) < 0;
                    252:        regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
                    253: }}}}
                    254: void op_c079(UWORD opcode)
                    255: {
                    256:        ULONG dstreg = (opcode & 3584) >> 9;
                    257: {{     CPTR srca = nextilong();
                    258:        WORD src = get_word(srca);
                    259: {      WORD dst = regs.d[dstreg];
                    260:        src &= dst;
                    261:        regs.v = regs.c = 0;
                    262:        regs.z = ((WORD)(src)) == 0;
                    263:        regs.n = ((WORD)(src)) < 0;
                    264:        regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
                    265: }}}}
                    266: void op_c07a(UWORD opcode)
                    267: {
                    268:        ULONG dstreg = (opcode & 3584) >> 9;
                    269: {{     CPTR srca = m68k_getpc();
                    270:        srca += (LONG)(WORD)nextiword();
                    271: {      WORD src = get_word(srca);
                    272: {      WORD dst = regs.d[dstreg];
                    273:        src &= dst;
                    274:        regs.v = regs.c = 0;
                    275:        regs.z = ((WORD)(src)) == 0;
                    276:        regs.n = ((WORD)(src)) < 0;
                    277:        regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
                    278: }}}}}
                    279: void op_c07b(UWORD opcode)
                    280: {
                    281:        ULONG dstreg = (opcode & 3584) >> 9;
                    282: {{     CPTR srca = m68k_getpc();
                    283:        UWORD srcdp = nextiword();
                    284:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    285: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    286:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    287:        srca += srcdpr;
                    288: {      WORD src = get_word(srca);
                    289: {      WORD dst = regs.d[dstreg];
                    290:        src &= dst;
                    291:        regs.v = regs.c = 0;
                    292:        regs.z = ((WORD)(src)) == 0;
                    293:        regs.n = ((WORD)(src)) < 0;
                    294:        regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
                    295: }}}}}}
                    296: void op_c07c(UWORD opcode)
                    297: {
                    298:        ULONG dstreg = (opcode & 3584) >> 9;
                    299: {{     WORD src = nextiword();
                    300: {      WORD dst = regs.d[dstreg];
                    301:        src &= dst;
                    302:        regs.v = regs.c = 0;
                    303:        regs.z = ((WORD)(src)) == 0;
                    304:        regs.n = ((WORD)(src)) < 0;
                    305:        regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
                    306: }}}}
                    307: void op_c080(UWORD opcode)
                    308: {
                    309:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    310:        ULONG dstreg = (opcode & 3584) >> 9;
                    311: {{     LONG src = regs.d[srcreg];
                    312: {      LONG dst = regs.d[dstreg];
                    313:        src &= dst;
                    314:        regs.v = regs.c = 0;
                    315:        regs.z = ((LONG)(src)) == 0;
                    316:        regs.n = ((LONG)(src)) < 0;
                    317:        regs.d[dstreg] = (src);
                    318: }}}}
                    319: void op_c090(UWORD opcode)
                    320: {
                    321:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    322:        ULONG dstreg = (opcode & 3584) >> 9;
                    323: {{     CPTR srca = regs.a[srcreg];
                    324:        LONG src = get_long(srca);
                    325: {      LONG dst = regs.d[dstreg];
                    326:        src &= dst;
                    327:        regs.v = regs.c = 0;
                    328:        regs.z = ((LONG)(src)) == 0;
                    329:        regs.n = ((LONG)(src)) < 0;
                    330:        regs.d[dstreg] = (src);
                    331: }}}}
                    332: void op_c098(UWORD opcode)
                    333: {
                    334:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    335:        ULONG dstreg = (opcode & 3584) >> 9;
                    336: {{     CPTR srca = regs.a[srcreg];
                    337:        LONG src = get_long(srca);
                    338: {      regs.a[srcreg] += 4;
                    339: {      LONG dst = regs.d[dstreg];
                    340:        src &= dst;
                    341:        regs.v = regs.c = 0;
                    342:        regs.z = ((LONG)(src)) == 0;
                    343:        regs.n = ((LONG)(src)) < 0;
                    344:        regs.d[dstreg] = (src);
                    345: }}}}}
                    346: void op_c0a0(UWORD opcode)
                    347: {
                    348:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    349:        ULONG dstreg = (opcode & 3584) >> 9;
                    350: {{     regs.a[srcreg] -= 4;
                    351: {      CPTR srca = regs.a[srcreg];
                    352:        LONG src = get_long(srca);
                    353: {      LONG dst = regs.d[dstreg];
                    354:        src &= dst;
                    355:        regs.v = regs.c = 0;
                    356:        regs.z = ((LONG)(src)) == 0;
                    357:        regs.n = ((LONG)(src)) < 0;
                    358:        regs.d[dstreg] = (src);
                    359: }}}}}
                    360: void op_c0a8(UWORD opcode)
                    361: {
                    362:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    363:        ULONG dstreg = (opcode & 3584) >> 9;
                    364: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                    365:        LONG src = get_long(srca);
                    366: {      LONG dst = regs.d[dstreg];
                    367:        src &= dst;
                    368:        regs.v = regs.c = 0;
                    369:        regs.z = ((LONG)(src)) == 0;
                    370:        regs.n = ((LONG)(src)) < 0;
                    371:        regs.d[dstreg] = (src);
                    372: }}}}
                    373: void op_c0b0(UWORD opcode)
                    374: {
                    375:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    376:        ULONG dstreg = (opcode & 3584) >> 9;
                    377: {{     CPTR srca = regs.a[srcreg];
                    378:        UWORD srcdp = nextiword();
                    379:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    380: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    381:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    382:        srca += srcdpr;
                    383: {      LONG src = get_long(srca);
                    384: {      LONG dst = regs.d[dstreg];
                    385:        src &= dst;
                    386:        regs.v = regs.c = 0;
                    387:        regs.z = ((LONG)(src)) == 0;
                    388:        regs.n = ((LONG)(src)) < 0;
                    389:        regs.d[dstreg] = (src);
                    390: }}}}}}
                    391: void op_c0b8(UWORD opcode)
                    392: {
                    393:        ULONG dstreg = (opcode & 3584) >> 9;
                    394: {{     CPTR srca = (LONG)(WORD)nextiword();
                    395:        LONG src = get_long(srca);
                    396: {      LONG dst = regs.d[dstreg];
                    397:        src &= dst;
                    398:        regs.v = regs.c = 0;
                    399:        regs.z = ((LONG)(src)) == 0;
                    400:        regs.n = ((LONG)(src)) < 0;
                    401:        regs.d[dstreg] = (src);
                    402: }}}}
                    403: void op_c0b9(UWORD opcode)
                    404: {
                    405:        ULONG dstreg = (opcode & 3584) >> 9;
                    406: {{     CPTR srca = nextilong();
                    407:        LONG src = get_long(srca);
                    408: {      LONG dst = regs.d[dstreg];
                    409:        src &= dst;
                    410:        regs.v = regs.c = 0;
                    411:        regs.z = ((LONG)(src)) == 0;
                    412:        regs.n = ((LONG)(src)) < 0;
                    413:        regs.d[dstreg] = (src);
                    414: }}}}
                    415: void op_c0ba(UWORD opcode)
                    416: {
                    417:        ULONG dstreg = (opcode & 3584) >> 9;
                    418: {{     CPTR srca = m68k_getpc();
                    419:        srca += (LONG)(WORD)nextiword();
                    420: {      LONG src = get_long(srca);
                    421: {      LONG dst = regs.d[dstreg];
                    422:        src &= dst;
                    423:        regs.v = regs.c = 0;
                    424:        regs.z = ((LONG)(src)) == 0;
                    425:        regs.n = ((LONG)(src)) < 0;
                    426:        regs.d[dstreg] = (src);
                    427: }}}}}
                    428: void op_c0bb(UWORD opcode)
                    429: {
                    430:        ULONG dstreg = (opcode & 3584) >> 9;
                    431: {{     CPTR srca = m68k_getpc();
                    432:        UWORD srcdp = nextiword();
                    433:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    434: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    435:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    436:        srca += srcdpr;
                    437: {      LONG src = get_long(srca);
                    438: {      LONG dst = regs.d[dstreg];
                    439:        src &= dst;
                    440:        regs.v = regs.c = 0;
                    441:        regs.z = ((LONG)(src)) == 0;
                    442:        regs.n = ((LONG)(src)) < 0;
                    443:        regs.d[dstreg] = (src);
                    444: }}}}}}
                    445: void op_c0bc(UWORD opcode)
                    446: {
                    447:        ULONG dstreg = (opcode & 3584) >> 9;
                    448: {{     LONG src = nextilong();
                    449: {      LONG dst = regs.d[dstreg];
                    450:        src &= dst;
                    451:        regs.v = regs.c = 0;
                    452:        regs.z = ((LONG)(src)) == 0;
                    453:        regs.n = ((LONG)(src)) < 0;
                    454:        regs.d[dstreg] = (src);
                    455: }}}}
                    456: void op_c0c0(UWORD opcode)
                    457: {
                    458:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    459:        ULONG dstreg = (opcode & 3584) >> 9;
                    460: {{     WORD src = regs.d[srcreg];
                    461: {      WORD dst = regs.d[dstreg];
                    462: {      ULONG newv = (ULONG)(UWORD)dst * (ULONG)(UWORD)src;
                    463:        regs.v = regs.c = 0;
                    464:        regs.z = ((LONG)(newv)) == 0;
                    465:        regs.n = ((LONG)(newv)) < 0;
                    466:        regs.d[dstreg] = (newv);
                    467: }}}}}
                    468: void op_c0d0(UWORD opcode)
                    469: {
                    470:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    471:        ULONG dstreg = (opcode & 3584) >> 9;
                    472: {{     CPTR srca = regs.a[srcreg];
                    473:        WORD src = get_word(srca);
                    474: {      WORD dst = regs.d[dstreg];
                    475: {      ULONG newv = (ULONG)(UWORD)dst * (ULONG)(UWORD)src;
                    476:        regs.v = regs.c = 0;
                    477:        regs.z = ((LONG)(newv)) == 0;
                    478:        regs.n = ((LONG)(newv)) < 0;
                    479:        regs.d[dstreg] = (newv);
                    480: }}}}}
                    481: void op_c0d8(UWORD opcode)
                    482: {
                    483:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    484:        ULONG dstreg = (opcode & 3584) >> 9;
                    485: {{     CPTR srca = regs.a[srcreg];
                    486:        WORD src = get_word(srca);
                    487: {      regs.a[srcreg] += 2;
                    488: {      WORD dst = regs.d[dstreg];
                    489: {      ULONG newv = (ULONG)(UWORD)dst * (ULONG)(UWORD)src;
                    490:        regs.v = regs.c = 0;
                    491:        regs.z = ((LONG)(newv)) == 0;
                    492:        regs.n = ((LONG)(newv)) < 0;
                    493:        regs.d[dstreg] = (newv);
                    494: }}}}}}
                    495: void op_c0e0(UWORD opcode)
                    496: {
                    497:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    498:        ULONG dstreg = (opcode & 3584) >> 9;
                    499: {{     regs.a[srcreg] -= 2;
                    500: {      CPTR srca = regs.a[srcreg];
                    501:        WORD src = get_word(srca);
                    502: {      WORD dst = regs.d[dstreg];
                    503: {      ULONG newv = (ULONG)(UWORD)dst * (ULONG)(UWORD)src;
                    504:        regs.v = regs.c = 0;
                    505:        regs.z = ((LONG)(newv)) == 0;
                    506:        regs.n = ((LONG)(newv)) < 0;
                    507:        regs.d[dstreg] = (newv);
                    508: }}}}}}
                    509: void op_c0e8(UWORD opcode)
                    510: {
                    511:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    512:        ULONG dstreg = (opcode & 3584) >> 9;
                    513: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                    514:        WORD src = get_word(srca);
                    515: {      WORD dst = regs.d[dstreg];
                    516: {      ULONG newv = (ULONG)(UWORD)dst * (ULONG)(UWORD)src;
                    517:        regs.v = regs.c = 0;
                    518:        regs.z = ((LONG)(newv)) == 0;
                    519:        regs.n = ((LONG)(newv)) < 0;
                    520:        regs.d[dstreg] = (newv);
                    521: }}}}}
                    522: void op_c0f0(UWORD opcode)
                    523: {
                    524:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    525:        ULONG dstreg = (opcode & 3584) >> 9;
                    526: {{     CPTR srca = regs.a[srcreg];
                    527:        UWORD srcdp = nextiword();
                    528:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    529: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    530:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    531:        srca += srcdpr;
                    532: {      WORD src = get_word(srca);
                    533: {      WORD dst = regs.d[dstreg];
                    534: {      ULONG newv = (ULONG)(UWORD)dst * (ULONG)(UWORD)src;
                    535:        regs.v = regs.c = 0;
                    536:        regs.z = ((LONG)(newv)) == 0;
                    537:        regs.n = ((LONG)(newv)) < 0;
                    538:        regs.d[dstreg] = (newv);
                    539: }}}}}}}
                    540: void op_c0f8(UWORD opcode)
                    541: {
                    542:        ULONG dstreg = (opcode & 3584) >> 9;
                    543: {{     CPTR srca = (LONG)(WORD)nextiword();
                    544:        WORD src = get_word(srca);
                    545: {      WORD dst = regs.d[dstreg];
                    546: {      ULONG newv = (ULONG)(UWORD)dst * (ULONG)(UWORD)src;
                    547:        regs.v = regs.c = 0;
                    548:        regs.z = ((LONG)(newv)) == 0;
                    549:        regs.n = ((LONG)(newv)) < 0;
                    550:        regs.d[dstreg] = (newv);
                    551: }}}}}
                    552: void op_c0f9(UWORD opcode)
                    553: {
                    554:        ULONG dstreg = (opcode & 3584) >> 9;
                    555: {{     CPTR srca = nextilong();
                    556:        WORD src = get_word(srca);
                    557: {      WORD dst = regs.d[dstreg];
                    558: {      ULONG newv = (ULONG)(UWORD)dst * (ULONG)(UWORD)src;
                    559:        regs.v = regs.c = 0;
                    560:        regs.z = ((LONG)(newv)) == 0;
                    561:        regs.n = ((LONG)(newv)) < 0;
                    562:        regs.d[dstreg] = (newv);
                    563: }}}}}
                    564: void op_c0fa(UWORD opcode)
                    565: {
                    566:        ULONG dstreg = (opcode & 3584) >> 9;
                    567: {{     CPTR srca = m68k_getpc();
                    568:        srca += (LONG)(WORD)nextiword();
                    569: {      WORD src = get_word(srca);
                    570: {      WORD dst = regs.d[dstreg];
                    571: {      ULONG newv = (ULONG)(UWORD)dst * (ULONG)(UWORD)src;
                    572:        regs.v = regs.c = 0;
                    573:        regs.z = ((LONG)(newv)) == 0;
                    574:        regs.n = ((LONG)(newv)) < 0;
                    575:        regs.d[dstreg] = (newv);
                    576: }}}}}}
                    577: void op_c0fb(UWORD opcode)
                    578: {
                    579:        ULONG dstreg = (opcode & 3584) >> 9;
                    580: {{     CPTR srca = m68k_getpc();
                    581:        UWORD srcdp = nextiword();
                    582:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    583: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    584:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    585:        srca += srcdpr;
                    586: {      WORD src = get_word(srca);
                    587: {      WORD dst = regs.d[dstreg];
                    588: {      ULONG newv = (ULONG)(UWORD)dst * (ULONG)(UWORD)src;
                    589:        regs.v = regs.c = 0;
                    590:        regs.z = ((LONG)(newv)) == 0;
                    591:        regs.n = ((LONG)(newv)) < 0;
                    592:        regs.d[dstreg] = (newv);
                    593: }}}}}}}
                    594: void op_c0fc(UWORD opcode)
                    595: {
                    596:        ULONG dstreg = (opcode & 3584) >> 9;
                    597: {{     WORD src = nextiword();
                    598: {      WORD dst = regs.d[dstreg];
                    599: {      ULONG newv = (ULONG)(UWORD)dst * (ULONG)(UWORD)src;
                    600:        regs.v = regs.c = 0;
                    601:        regs.z = ((LONG)(newv)) == 0;
                    602:        regs.n = ((LONG)(newv)) < 0;
                    603:        regs.d[dstreg] = (newv);
                    604: }}}}}
                    605: void op_c100(UWORD opcode)
                    606: {
                    607:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    608:        ULONG dstreg = (opcode & 3584) >> 9;
                    609: {{     BYTE src = regs.d[srcreg];
                    610: {      BYTE dst = regs.d[dstreg];
                    611: {      UWORD newv = src + dst + regs.x;
                    612:        if ((newv & 0xF) > 9) newv+=6;
                    613:        regs.c = regs.x = (newv & 0x1F0) > 0x90;
                    614:        if (regs.c) newv += 0x60;
                    615:        if (newv != 0) regs.z = 0;
                    616:        regs.d[dstreg] &= ~0xff; regs.d[dstreg] |= (newv) & 0xff;
                    617: }}}}}
                    618: void op_c108(UWORD opcode)
                    619: {
                    620:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    621:        ULONG dstreg = (opcode & 3584) >> 9;
                    622: {{     regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
                    623: {      CPTR srca = regs.a[srcreg];
                    624:        BYTE src = get_byte(srca);
                    625: {      regs.a[dstreg] -= (dstreg == 7) ? 2 : 1;
                    626: {      CPTR dsta = regs.a[dstreg];
                    627:        BYTE dst = get_byte(dsta);
                    628: {      UWORD newv = src + dst + regs.x;
                    629:        if ((newv & 0xF) > 9) newv+=6;
                    630:        regs.c = regs.x = (newv & 0x1F0) > 0x90;
                    631:        if (regs.c) newv += 0x60;
                    632:        if (newv != 0) regs.z = 0;
                    633:        put_byte(dsta,newv);
                    634: }}}}}}}
                    635: void op_c110(UWORD opcode)
                    636: {
                    637:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    638:        ULONG dstreg = (opcode & 7) >> 0;
                    639: {{     BYTE src = regs.d[srcreg];
                    640: {      CPTR dsta = regs.a[dstreg];
                    641:        BYTE dst = get_byte(dsta);
                    642:        src &= dst;
                    643:        regs.v = regs.c = 0;
                    644:        regs.z = ((BYTE)(src)) == 0;
                    645:        regs.n = ((BYTE)(src)) < 0;
                    646:        put_byte(dsta,src);
                    647: }}}}
                    648: void op_c118(UWORD opcode)
                    649: {
                    650:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    651:        ULONG dstreg = (opcode & 7) >> 0;
                    652: {{     BYTE src = regs.d[srcreg];
                    653: {      CPTR dsta = regs.a[dstreg];
                    654:        BYTE dst = get_byte(dsta);
                    655: {      regs.a[dstreg] += (dstreg == 7) ? 2 : 1;
                    656:        src &= dst;
                    657:        regs.v = regs.c = 0;
                    658:        regs.z = ((BYTE)(src)) == 0;
                    659:        regs.n = ((BYTE)(src)) < 0;
                    660:        put_byte(dsta,src);
                    661: }}}}}
                    662: void op_c120(UWORD opcode)
                    663: {
                    664:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    665:        ULONG dstreg = (opcode & 7) >> 0;
                    666: {{     BYTE src = regs.d[srcreg];
                    667: {      regs.a[dstreg] -= (dstreg == 7) ? 2 : 1;
                    668: {      CPTR dsta = regs.a[dstreg];
                    669:        BYTE dst = get_byte(dsta);
                    670:        src &= dst;
                    671:        regs.v = regs.c = 0;
                    672:        regs.z = ((BYTE)(src)) == 0;
                    673:        regs.n = ((BYTE)(src)) < 0;
                    674:        put_byte(dsta,src);
                    675: }}}}}
                    676: void op_c128(UWORD opcode)
                    677: {
                    678:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    679:        ULONG dstreg = (opcode & 7) >> 0;
                    680: {{     BYTE src = regs.d[srcreg];
                    681: {      CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
                    682:        BYTE dst = get_byte(dsta);
                    683:        src &= dst;
                    684:        regs.v = regs.c = 0;
                    685:        regs.z = ((BYTE)(src)) == 0;
                    686:        regs.n = ((BYTE)(src)) < 0;
                    687:        put_byte(dsta,src);
                    688: }}}}
                    689: void op_c130(UWORD opcode)
                    690: {
                    691:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    692:        ULONG dstreg = (opcode & 7) >> 0;
                    693: {{     BYTE src = regs.d[srcreg];
                    694: {      CPTR dsta = regs.a[dstreg];
                    695:        UWORD dstdp = nextiword();
                    696:        dsta += (LONG)(BYTE)(dstdp & 0xFF);
                    697: {      ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
                    698:        if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
                    699:        dsta += dstdpr;
                    700: {      BYTE dst = get_byte(dsta);
                    701:        src &= dst;
                    702:        regs.v = regs.c = 0;
                    703:        regs.z = ((BYTE)(src)) == 0;
                    704:        regs.n = ((BYTE)(src)) < 0;
                    705:        put_byte(dsta,src);
                    706: }}}}}}
                    707: void op_c138(UWORD opcode)
                    708: {
                    709:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    710: {{     BYTE src = regs.d[srcreg];
                    711: {      CPTR dsta = (LONG)(WORD)nextiword();
                    712:        BYTE dst = get_byte(dsta);
                    713:        src &= dst;
                    714:        regs.v = regs.c = 0;
                    715:        regs.z = ((BYTE)(src)) == 0;
                    716:        regs.n = ((BYTE)(src)) < 0;
                    717:        put_byte(dsta,src);
                    718: }}}}
                    719: void op_c139(UWORD opcode)
                    720: {
                    721:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    722: {{     BYTE src = regs.d[srcreg];
                    723: {      CPTR dsta = nextilong();
                    724:        BYTE dst = get_byte(dsta);
                    725:        src &= dst;
                    726:        regs.v = regs.c = 0;
                    727:        regs.z = ((BYTE)(src)) == 0;
                    728:        regs.n = ((BYTE)(src)) < 0;
                    729:        put_byte(dsta,src);
                    730: }}}}
                    731: void op_c140(UWORD opcode)
                    732: {
                    733:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    734:        ULONG dstreg = (opcode & 7) >> 0;
                    735: {{     LONG src = regs.d[srcreg];
                    736: {      LONG dst = regs.d[dstreg];
                    737:        regs.d[srcreg] = (dst);
                    738:        regs.d[dstreg] = (src);
                    739: }}}}
                    740: void op_c148(UWORD opcode)
                    741: {
                    742:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    743:        ULONG dstreg = (opcode & 7) >> 0;
                    744: {{     LONG src = regs.a[srcreg];
                    745: {      LONG dst = regs.a[dstreg];
                    746:        regs.a[srcreg] = (dst);
                    747:        regs.a[dstreg] = (src);
                    748: }}}}
                    749: void op_c150(UWORD opcode)
                    750: {
                    751:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    752:        ULONG dstreg = (opcode & 7) >> 0;
                    753: {{     WORD src = regs.d[srcreg];
                    754: {      CPTR dsta = regs.a[dstreg];
                    755:        WORD dst = get_word(dsta);
                    756:        src &= dst;
                    757:        regs.v = regs.c = 0;
                    758:        regs.z = ((WORD)(src)) == 0;
                    759:        regs.n = ((WORD)(src)) < 0;
                    760:        put_word(dsta,src);
                    761: }}}}
                    762: void op_c158(UWORD opcode)
                    763: {
                    764:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    765:        ULONG dstreg = (opcode & 7) >> 0;
                    766: {{     WORD src = regs.d[srcreg];
                    767: {      CPTR dsta = regs.a[dstreg];
                    768:        WORD dst = get_word(dsta);
                    769: {      regs.a[dstreg] += 2;
                    770:        src &= dst;
                    771:        regs.v = regs.c = 0;
                    772:        regs.z = ((WORD)(src)) == 0;
                    773:        regs.n = ((WORD)(src)) < 0;
                    774:        put_word(dsta,src);
                    775: }}}}}
                    776: void op_c160(UWORD opcode)
                    777: {
                    778:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    779:        ULONG dstreg = (opcode & 7) >> 0;
                    780: {{     WORD src = regs.d[srcreg];
                    781: {      regs.a[dstreg] -= 2;
                    782: {      CPTR dsta = regs.a[dstreg];
                    783:        WORD dst = get_word(dsta);
                    784:        src &= dst;
                    785:        regs.v = regs.c = 0;
                    786:        regs.z = ((WORD)(src)) == 0;
                    787:        regs.n = ((WORD)(src)) < 0;
                    788:        put_word(dsta,src);
                    789: }}}}}
                    790: void op_c168(UWORD opcode)
                    791: {
                    792:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    793:        ULONG dstreg = (opcode & 7) >> 0;
                    794: {{     WORD src = regs.d[srcreg];
                    795: {      CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
                    796:        WORD dst = get_word(dsta);
                    797:        src &= dst;
                    798:        regs.v = regs.c = 0;
                    799:        regs.z = ((WORD)(src)) == 0;
                    800:        regs.n = ((WORD)(src)) < 0;
                    801:        put_word(dsta,src);
                    802: }}}}
                    803: void op_c170(UWORD opcode)
                    804: {
                    805:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    806:        ULONG dstreg = (opcode & 7) >> 0;
                    807: {{     WORD src = regs.d[srcreg];
                    808: {      CPTR dsta = regs.a[dstreg];
                    809:        UWORD dstdp = nextiword();
                    810:        dsta += (LONG)(BYTE)(dstdp & 0xFF);
                    811: {      ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
                    812:        if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
                    813:        dsta += dstdpr;
                    814: {      WORD dst = get_word(dsta);
                    815:        src &= dst;
                    816:        regs.v = regs.c = 0;
                    817:        regs.z = ((WORD)(src)) == 0;
                    818:        regs.n = ((WORD)(src)) < 0;
                    819:        put_word(dsta,src);
                    820: }}}}}}
                    821: void op_c178(UWORD opcode)
                    822: {
                    823:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    824: {{     WORD src = regs.d[srcreg];
                    825: {      CPTR dsta = (LONG)(WORD)nextiword();
                    826:        WORD dst = get_word(dsta);
                    827:        src &= dst;
                    828:        regs.v = regs.c = 0;
                    829:        regs.z = ((WORD)(src)) == 0;
                    830:        regs.n = ((WORD)(src)) < 0;
                    831:        put_word(dsta,src);
                    832: }}}}
                    833: void op_c179(UWORD opcode)
                    834: {
                    835:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    836: {{     WORD src = regs.d[srcreg];
                    837: {      CPTR dsta = nextilong();
                    838:        WORD dst = get_word(dsta);
                    839:        src &= dst;
                    840:        regs.v = regs.c = 0;
                    841:        regs.z = ((WORD)(src)) == 0;
                    842:        regs.n = ((WORD)(src)) < 0;
                    843:        put_word(dsta,src);
                    844: }}}}
                    845: void op_c188(UWORD opcode)
                    846: {
                    847:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    848:        ULONG dstreg = (opcode & 7) >> 0;
                    849: {{     LONG src = regs.d[srcreg];
                    850: {      LONG dst = regs.a[dstreg];
                    851:        regs.d[srcreg] = (dst);
                    852:        regs.a[dstreg] = (src);
                    853: }}}}
                    854: void op_c190(UWORD opcode)
                    855: {
                    856:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    857:        ULONG dstreg = (opcode & 7) >> 0;
                    858: {{     LONG src = regs.d[srcreg];
                    859: {      CPTR dsta = regs.a[dstreg];
                    860:        LONG dst = get_long(dsta);
                    861:        src &= dst;
                    862:        regs.v = regs.c = 0;
                    863:        regs.z = ((LONG)(src)) == 0;
                    864:        regs.n = ((LONG)(src)) < 0;
                    865:        put_long(dsta,src);
                    866: }}}}
                    867: void op_c198(UWORD opcode)
                    868: {
                    869:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    870:        ULONG dstreg = (opcode & 7) >> 0;
                    871: {{     LONG src = regs.d[srcreg];
                    872: {      CPTR dsta = regs.a[dstreg];
                    873:        LONG dst = get_long(dsta);
                    874: {      regs.a[dstreg] += 4;
                    875:        src &= dst;
                    876:        regs.v = regs.c = 0;
                    877:        regs.z = ((LONG)(src)) == 0;
                    878:        regs.n = ((LONG)(src)) < 0;
                    879:        put_long(dsta,src);
                    880: }}}}}
                    881: void op_c1a0(UWORD opcode)
                    882: {
                    883:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    884:        ULONG dstreg = (opcode & 7) >> 0;
                    885: {{     LONG src = regs.d[srcreg];
                    886: {      regs.a[dstreg] -= 4;
                    887: {      CPTR dsta = regs.a[dstreg];
                    888:        LONG dst = get_long(dsta);
                    889:        src &= dst;
                    890:        regs.v = regs.c = 0;
                    891:        regs.z = ((LONG)(src)) == 0;
                    892:        regs.n = ((LONG)(src)) < 0;
                    893:        put_long(dsta,src);
                    894: }}}}}
                    895: void op_c1a8(UWORD opcode)
                    896: {
                    897:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    898:        ULONG dstreg = (opcode & 7) >> 0;
                    899: {{     LONG src = regs.d[srcreg];
                    900: {      CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
                    901:        LONG dst = get_long(dsta);
                    902:        src &= dst;
                    903:        regs.v = regs.c = 0;
                    904:        regs.z = ((LONG)(src)) == 0;
                    905:        regs.n = ((LONG)(src)) < 0;
                    906:        put_long(dsta,src);
                    907: }}}}
                    908: void op_c1b0(UWORD opcode)
                    909: {
                    910:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    911:        ULONG dstreg = (opcode & 7) >> 0;
                    912: {{     LONG src = regs.d[srcreg];
                    913: {      CPTR dsta = regs.a[dstreg];
                    914:        UWORD dstdp = nextiword();
                    915:        dsta += (LONG)(BYTE)(dstdp & 0xFF);
                    916: {      ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
                    917:        if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
                    918:        dsta += dstdpr;
                    919: {      LONG dst = get_long(dsta);
                    920:        src &= dst;
                    921:        regs.v = regs.c = 0;
                    922:        regs.z = ((LONG)(src)) == 0;
                    923:        regs.n = ((LONG)(src)) < 0;
                    924:        put_long(dsta,src);
                    925: }}}}}}
                    926: void op_c1b8(UWORD opcode)
                    927: {
                    928:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    929: {{     LONG src = regs.d[srcreg];
                    930: {      CPTR dsta = (LONG)(WORD)nextiword();
                    931:        LONG dst = get_long(dsta);
                    932:        src &= dst;
                    933:        regs.v = regs.c = 0;
                    934:        regs.z = ((LONG)(src)) == 0;
                    935:        regs.n = ((LONG)(src)) < 0;
                    936:        put_long(dsta,src);
                    937: }}}}
                    938: void op_c1b9(UWORD opcode)
                    939: {
                    940:        ULONG srcreg = (LONG)(BYTE)((opcode & 3584) >> 9);
                    941: {{     LONG src = regs.d[srcreg];
                    942: {      CPTR dsta = nextilong();
                    943:        LONG dst = get_long(dsta);
                    944:        src &= dst;
                    945:        regs.v = regs.c = 0;
                    946:        regs.z = ((LONG)(src)) == 0;
                    947:        regs.n = ((LONG)(src)) < 0;
                    948:        put_long(dsta,src);
                    949: }}}}
                    950: void op_c1c0(UWORD opcode)
                    951: {
                    952:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    953:        ULONG dstreg = (opcode & 3584) >> 9;
                    954: {{     WORD src = regs.d[srcreg];
                    955: {      WORD dst = regs.d[dstreg];
                    956: {      ULONG newv = (LONG)(WORD)dst * (LONG)(WORD)src;
                    957:        regs.v = regs.c = 0;
                    958:        regs.z = ((LONG)(newv)) == 0;
                    959:        regs.n = ((LONG)(newv)) < 0;
                    960:        regs.d[dstreg] = (newv);
                    961: }}}}}
                    962: void op_c1d0(UWORD opcode)
                    963: {
                    964:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    965:        ULONG dstreg = (opcode & 3584) >> 9;
                    966: {{     CPTR srca = regs.a[srcreg];
                    967:        WORD src = get_word(srca);
                    968: {      WORD dst = regs.d[dstreg];
                    969: {      ULONG newv = (LONG)(WORD)dst * (LONG)(WORD)src;
                    970:        regs.v = regs.c = 0;
                    971:        regs.z = ((LONG)(newv)) == 0;
                    972:        regs.n = ((LONG)(newv)) < 0;
                    973:        regs.d[dstreg] = (newv);
                    974: }}}}}
                    975: void op_c1d8(UWORD opcode)
                    976: {
                    977:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    978:        ULONG dstreg = (opcode & 3584) >> 9;
                    979: {{     CPTR srca = regs.a[srcreg];
                    980:        WORD src = get_word(srca);
                    981: {      regs.a[srcreg] += 2;
                    982: {      WORD dst = regs.d[dstreg];
                    983: {      ULONG newv = (LONG)(WORD)dst * (LONG)(WORD)src;
                    984:        regs.v = regs.c = 0;
                    985:        regs.z = ((LONG)(newv)) == 0;
                    986:        regs.n = ((LONG)(newv)) < 0;
                    987:        regs.d[dstreg] = (newv);
                    988: }}}}}}
                    989: void op_c1e0(UWORD opcode)
                    990: {
                    991:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    992:        ULONG dstreg = (opcode & 3584) >> 9;
                    993: {{     regs.a[srcreg] -= 2;
                    994: {      CPTR srca = regs.a[srcreg];
                    995:        WORD src = get_word(srca);
                    996: {      WORD dst = regs.d[dstreg];
                    997: {      ULONG newv = (LONG)(WORD)dst * (LONG)(WORD)src;
                    998:        regs.v = regs.c = 0;
                    999:        regs.z = ((LONG)(newv)) == 0;
                   1000:        regs.n = ((LONG)(newv)) < 0;
                   1001:        regs.d[dstreg] = (newv);
                   1002: }}}}}}
                   1003: void op_c1e8(UWORD opcode)
                   1004: {
                   1005:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1006:        ULONG dstreg = (opcode & 3584) >> 9;
                   1007: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   1008:        WORD src = get_word(srca);
                   1009: {      WORD dst = regs.d[dstreg];
                   1010: {      ULONG newv = (LONG)(WORD)dst * (LONG)(WORD)src;
                   1011:        regs.v = regs.c = 0;
                   1012:        regs.z = ((LONG)(newv)) == 0;
                   1013:        regs.n = ((LONG)(newv)) < 0;
                   1014:        regs.d[dstreg] = (newv);
                   1015: }}}}}
                   1016: void op_c1f0(UWORD opcode)
                   1017: {
                   1018:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1019:        ULONG dstreg = (opcode & 3584) >> 9;
                   1020: {{     CPTR srca = regs.a[srcreg];
                   1021:        UWORD srcdp = nextiword();
                   1022:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1023: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1024:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1025:        srca += srcdpr;
                   1026: {      WORD src = get_word(srca);
                   1027: {      WORD dst = regs.d[dstreg];
                   1028: {      ULONG newv = (LONG)(WORD)dst * (LONG)(WORD)src;
                   1029:        regs.v = regs.c = 0;
                   1030:        regs.z = ((LONG)(newv)) == 0;
                   1031:        regs.n = ((LONG)(newv)) < 0;
                   1032:        regs.d[dstreg] = (newv);
                   1033: }}}}}}}
                   1034: void op_c1f8(UWORD opcode)
                   1035: {
                   1036:        ULONG dstreg = (opcode & 3584) >> 9;
                   1037: {{     CPTR srca = (LONG)(WORD)nextiword();
                   1038:        WORD src = get_word(srca);
                   1039: {      WORD dst = regs.d[dstreg];
                   1040: {      ULONG newv = (LONG)(WORD)dst * (LONG)(WORD)src;
                   1041:        regs.v = regs.c = 0;
                   1042:        regs.z = ((LONG)(newv)) == 0;
                   1043:        regs.n = ((LONG)(newv)) < 0;
                   1044:        regs.d[dstreg] = (newv);
                   1045: }}}}}
                   1046: void op_c1f9(UWORD opcode)
                   1047: {
                   1048:        ULONG dstreg = (opcode & 3584) >> 9;
                   1049: {{     CPTR srca = nextilong();
                   1050:        WORD src = get_word(srca);
                   1051: {      WORD dst = regs.d[dstreg];
                   1052: {      ULONG newv = (LONG)(WORD)dst * (LONG)(WORD)src;
                   1053:        regs.v = regs.c = 0;
                   1054:        regs.z = ((LONG)(newv)) == 0;
                   1055:        regs.n = ((LONG)(newv)) < 0;
                   1056:        regs.d[dstreg] = (newv);
                   1057: }}}}}
                   1058: void op_c1fa(UWORD opcode)
                   1059: {
                   1060:        ULONG dstreg = (opcode & 3584) >> 9;
                   1061: {{     CPTR srca = m68k_getpc();
                   1062:        srca += (LONG)(WORD)nextiword();
                   1063: {      WORD src = get_word(srca);
                   1064: {      WORD dst = regs.d[dstreg];
                   1065: {      ULONG newv = (LONG)(WORD)dst * (LONG)(WORD)src;
                   1066:        regs.v = regs.c = 0;
                   1067:        regs.z = ((LONG)(newv)) == 0;
                   1068:        regs.n = ((LONG)(newv)) < 0;
                   1069:        regs.d[dstreg] = (newv);
                   1070: }}}}}}
                   1071: void op_c1fb(UWORD opcode)
                   1072: {
                   1073:        ULONG dstreg = (opcode & 3584) >> 9;
                   1074: {{     CPTR srca = m68k_getpc();
                   1075:        UWORD srcdp = nextiword();
                   1076:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1077: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1078:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1079:        srca += srcdpr;
                   1080: {      WORD src = get_word(srca);
                   1081: {      WORD dst = regs.d[dstreg];
                   1082: {      ULONG newv = (LONG)(WORD)dst * (LONG)(WORD)src;
                   1083:        regs.v = regs.c = 0;
                   1084:        regs.z = ((LONG)(newv)) == 0;
                   1085:        regs.n = ((LONG)(newv)) < 0;
                   1086:        regs.d[dstreg] = (newv);
                   1087: }}}}}}}
                   1088: void op_c1fc(UWORD opcode)
                   1089: {
                   1090:        ULONG dstreg = (opcode & 3584) >> 9;
                   1091: {{     WORD src = nextiword();
                   1092: {      WORD dst = regs.d[dstreg];
                   1093: {      ULONG newv = (LONG)(WORD)dst * (LONG)(WORD)src;
                   1094:        regs.v = regs.c = 0;
                   1095:        regs.z = ((LONG)(newv)) == 0;
                   1096:        regs.n = ((LONG)(newv)) < 0;
                   1097:        regs.d[dstreg] = (newv);
                   1098: }}}}}

unix.superglobalmegacorp.com

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