Annotation of uae/CPU Sources/cpu4.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: 
                     10: void op_4000(UWORD opcode)
                     11: {
                     12:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                     13: {{     BYTE src = regs.d[srcreg];
                     14: {      ULONG dst = -src-regs.x;
                     15: {      bool flgs = ((BYTE)(src)) < 0;
                     16:        bool flgo = ((BYTE)(0)) < 0;
                     17:        bool flgn = ((BYTE)(dst)) < 0;
                     18:        regs.z = ((BYTE)(dst)) == 0;
                     19:        regs.v = (flgs != flgo) && (flgn != flgo);
                     20:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                     21:        regs.n = flgn != 0;
                     22:        regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (dst) & 0xff;
                     23: }}}}}
                     24: void op_4010(UWORD opcode)
                     25: {
                     26:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                     27: {{     CPTR srca = regs.a[srcreg];
                     28:        BYTE src = get_byte(srca);
                     29: {      ULONG dst = -src-regs.x;
                     30: {      bool flgs = ((BYTE)(src)) < 0;
                     31:        bool flgo = ((BYTE)(0)) < 0;
                     32:        bool flgn = ((BYTE)(dst)) < 0;
                     33:        regs.z = ((BYTE)(dst)) == 0;
                     34:        regs.v = (flgs != flgo) && (flgn != flgo);
                     35:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                     36:        regs.n = flgn != 0;
                     37:        put_byte(srca,dst);
                     38: }}}}}
                     39: void op_4018(UWORD opcode)
                     40: {
                     41:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                     42: {{     CPTR srca = regs.a[srcreg];
                     43:        BYTE src = get_byte(srca);
                     44: {      regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
                     45: {      ULONG dst = -src-regs.x;
                     46: {      bool flgs = ((BYTE)(src)) < 0;
                     47:        bool flgo = ((BYTE)(0)) < 0;
                     48:        bool flgn = ((BYTE)(dst)) < 0;
                     49:        regs.z = ((BYTE)(dst)) == 0;
                     50:        regs.v = (flgs != flgo) && (flgn != flgo);
                     51:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                     52:        regs.n = flgn != 0;
                     53:        put_byte(srca,dst);
                     54: }}}}}}
                     55: void op_4020(UWORD opcode)
                     56: {
                     57:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                     58: {{     regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
                     59: {      CPTR srca = regs.a[srcreg];
                     60:        BYTE src = get_byte(srca);
                     61: {      ULONG dst = -src-regs.x;
                     62: {      bool flgs = ((BYTE)(src)) < 0;
                     63:        bool flgo = ((BYTE)(0)) < 0;
                     64:        bool flgn = ((BYTE)(dst)) < 0;
                     65:        regs.z = ((BYTE)(dst)) == 0;
                     66:        regs.v = (flgs != flgo) && (flgn != flgo);
                     67:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                     68:        regs.n = flgn != 0;
                     69:        put_byte(srca,dst);
                     70: }}}}}}
                     71: void op_4028(UWORD opcode)
                     72: {
                     73:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                     74: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                     75:        BYTE src = get_byte(srca);
                     76: {      ULONG dst = -src-regs.x;
                     77: {      bool flgs = ((BYTE)(src)) < 0;
                     78:        bool flgo = ((BYTE)(0)) < 0;
                     79:        bool flgn = ((BYTE)(dst)) < 0;
                     80:        regs.z = ((BYTE)(dst)) == 0;
                     81:        regs.v = (flgs != flgo) && (flgn != flgo);
                     82:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                     83:        regs.n = flgn != 0;
                     84:        put_byte(srca,dst);
                     85: }}}}}
                     86: void op_4030(UWORD opcode)
                     87: {
                     88:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                     89: {{     CPTR srca = regs.a[srcreg];
                     90:        UWORD srcdp = nextiword();
                     91:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                     92: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                     93:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                     94:        srca += srcdpr;
                     95: {      BYTE src = get_byte(srca);
                     96: {      ULONG dst = -src-regs.x;
                     97: {      bool flgs = ((BYTE)(src)) < 0;
                     98:        bool flgo = ((BYTE)(0)) < 0;
                     99:        bool flgn = ((BYTE)(dst)) < 0;
                    100:        regs.z = ((BYTE)(dst)) == 0;
                    101:        regs.v = (flgs != flgo) && (flgn != flgo);
                    102:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                    103:        regs.n = flgn != 0;
                    104:        put_byte(srca,dst);
                    105: }}}}}}}
                    106: void op_4038(UWORD opcode)
                    107: {
                    108: {{     CPTR srca = (LONG)(WORD)nextiword();
                    109:        BYTE src = get_byte(srca);
                    110: {      ULONG dst = -src-regs.x;
                    111: {      bool flgs = ((BYTE)(src)) < 0;
                    112:        bool flgo = ((BYTE)(0)) < 0;
                    113:        bool flgn = ((BYTE)(dst)) < 0;
                    114:        regs.z = ((BYTE)(dst)) == 0;
                    115:        regs.v = (flgs != flgo) && (flgn != flgo);
                    116:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                    117:        regs.n = flgn != 0;
                    118:        put_byte(srca,dst);
                    119: }}}}}
                    120: void op_4039(UWORD opcode)
                    121: {
                    122: {{     CPTR srca = nextilong();
                    123:        BYTE src = get_byte(srca);
                    124: {      ULONG dst = -src-regs.x;
                    125: {      bool flgs = ((BYTE)(src)) < 0;
                    126:        bool flgo = ((BYTE)(0)) < 0;
                    127:        bool flgn = ((BYTE)(dst)) < 0;
                    128:        regs.z = ((BYTE)(dst)) == 0;
                    129:        regs.v = (flgs != flgo) && (flgn != flgo);
                    130:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                    131:        regs.n = flgn != 0;
                    132:        put_byte(srca,dst);
                    133: }}}}}
                    134: void op_4040(UWORD opcode)
                    135: {
                    136:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    137: {{     WORD src = regs.d[srcreg];
                    138: {      ULONG dst = -src-regs.x;
                    139: {      bool flgs = ((WORD)(src)) < 0;
                    140:        bool flgo = ((WORD)(0)) < 0;
                    141:        bool flgn = ((WORD)(dst)) < 0;
                    142:        regs.z = ((WORD)(dst)) == 0;
                    143:        regs.v = (flgs != flgo) && (flgn != flgo);
                    144:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                    145:        regs.n = flgn != 0;
                    146:        regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (dst) & 0xffff;
                    147: }}}}}
                    148: void op_4050(UWORD opcode)
                    149: {
                    150:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    151: {{     CPTR srca = regs.a[srcreg];
                    152:        WORD src = get_word(srca);
                    153: {      ULONG dst = -src-regs.x;
                    154: {      bool flgs = ((WORD)(src)) < 0;
                    155:        bool flgo = ((WORD)(0)) < 0;
                    156:        bool flgn = ((WORD)(dst)) < 0;
                    157:        regs.z = ((WORD)(dst)) == 0;
                    158:        regs.v = (flgs != flgo) && (flgn != flgo);
                    159:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                    160:        regs.n = flgn != 0;
                    161:        put_word(srca,dst);
                    162: }}}}}
                    163: void op_4058(UWORD opcode)
                    164: {
                    165:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    166: {{     CPTR srca = regs.a[srcreg];
                    167:        WORD src = get_word(srca);
                    168: {      regs.a[srcreg] += 2;
                    169: {      ULONG dst = -src-regs.x;
                    170: {      bool flgs = ((WORD)(src)) < 0;
                    171:        bool flgo = ((WORD)(0)) < 0;
                    172:        bool flgn = ((WORD)(dst)) < 0;
                    173:        regs.z = ((WORD)(dst)) == 0;
                    174:        regs.v = (flgs != flgo) && (flgn != flgo);
                    175:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                    176:        regs.n = flgn != 0;
                    177:        put_word(srca,dst);
                    178: }}}}}}
                    179: void op_4060(UWORD opcode)
                    180: {
                    181:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    182: {{     regs.a[srcreg] -= 2;
                    183: {      CPTR srca = regs.a[srcreg];
                    184:        WORD src = get_word(srca);
                    185: {      ULONG dst = -src-regs.x;
                    186: {      bool flgs = ((WORD)(src)) < 0;
                    187:        bool flgo = ((WORD)(0)) < 0;
                    188:        bool flgn = ((WORD)(dst)) < 0;
                    189:        regs.z = ((WORD)(dst)) == 0;
                    190:        regs.v = (flgs != flgo) && (flgn != flgo);
                    191:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                    192:        regs.n = flgn != 0;
                    193:        put_word(srca,dst);
                    194: }}}}}}
                    195: void op_4068(UWORD opcode)
                    196: {
                    197:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    198: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                    199:        WORD src = get_word(srca);
                    200: {      ULONG dst = -src-regs.x;
                    201: {      bool flgs = ((WORD)(src)) < 0;
                    202:        bool flgo = ((WORD)(0)) < 0;
                    203:        bool flgn = ((WORD)(dst)) < 0;
                    204:        regs.z = ((WORD)(dst)) == 0;
                    205:        regs.v = (flgs != flgo) && (flgn != flgo);
                    206:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                    207:        regs.n = flgn != 0;
                    208:        put_word(srca,dst);
                    209: }}}}}
                    210: void op_4070(UWORD opcode)
                    211: {
                    212:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    213: {{     CPTR srca = regs.a[srcreg];
                    214:        UWORD srcdp = nextiword();
                    215:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    216: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    217:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    218:        srca += srcdpr;
                    219: {      WORD src = get_word(srca);
                    220: {      ULONG dst = -src-regs.x;
                    221: {      bool flgs = ((WORD)(src)) < 0;
                    222:        bool flgo = ((WORD)(0)) < 0;
                    223:        bool flgn = ((WORD)(dst)) < 0;
                    224:        regs.z = ((WORD)(dst)) == 0;
                    225:        regs.v = (flgs != flgo) && (flgn != flgo);
                    226:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                    227:        regs.n = flgn != 0;
                    228:        put_word(srca,dst);
                    229: }}}}}}}
                    230: void op_4078(UWORD opcode)
                    231: {
                    232: {{     CPTR srca = (LONG)(WORD)nextiword();
                    233:        WORD src = get_word(srca);
                    234: {      ULONG dst = -src-regs.x;
                    235: {      bool flgs = ((WORD)(src)) < 0;
                    236:        bool flgo = ((WORD)(0)) < 0;
                    237:        bool flgn = ((WORD)(dst)) < 0;
                    238:        regs.z = ((WORD)(dst)) == 0;
                    239:        regs.v = (flgs != flgo) && (flgn != flgo);
                    240:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                    241:        regs.n = flgn != 0;
                    242:        put_word(srca,dst);
                    243: }}}}}
                    244: void op_4079(UWORD opcode)
                    245: {
                    246: {{     CPTR srca = nextilong();
                    247:        WORD src = get_word(srca);
                    248: {      ULONG dst = -src-regs.x;
                    249: {      bool flgs = ((WORD)(src)) < 0;
                    250:        bool flgo = ((WORD)(0)) < 0;
                    251:        bool flgn = ((WORD)(dst)) < 0;
                    252:        regs.z = ((WORD)(dst)) == 0;
                    253:        regs.v = (flgs != flgo) && (flgn != flgo);
                    254:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                    255:        regs.n = flgn != 0;
                    256:        put_word(srca,dst);
                    257: }}}}}
                    258: void op_4080(UWORD opcode)
                    259: {
                    260:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    261: {{     LONG src = regs.d[srcreg];
                    262: {      ULONG dst = -src-regs.x;
                    263: {      bool flgs = ((LONG)(src)) < 0;
                    264:        bool flgo = ((LONG)(0)) < 0;
                    265:        bool flgn = ((LONG)(dst)) < 0;
                    266:        regs.z = ((LONG)(dst)) == 0;
                    267:        regs.v = (flgs != flgo) && (flgn != flgo);
                    268:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                    269:        regs.n = flgn != 0;
                    270:        regs.d[srcreg] = (dst);
                    271: }}}}}
                    272: void op_4090(UWORD opcode)
                    273: {
                    274:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    275: {{     CPTR srca = regs.a[srcreg];
                    276:        LONG src = get_long(srca);
                    277: {      ULONG dst = -src-regs.x;
                    278: {      bool flgs = ((LONG)(src)) < 0;
                    279:        bool flgo = ((LONG)(0)) < 0;
                    280:        bool flgn = ((LONG)(dst)) < 0;
                    281:        regs.z = ((LONG)(dst)) == 0;
                    282:        regs.v = (flgs != flgo) && (flgn != flgo);
                    283:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                    284:        regs.n = flgn != 0;
                    285:        put_long(srca,dst);
                    286: }}}}}
                    287: void op_4098(UWORD opcode)
                    288: {
                    289:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    290: {{     CPTR srca = regs.a[srcreg];
                    291:        LONG src = get_long(srca);
                    292: {      regs.a[srcreg] += 4;
                    293: {      ULONG dst = -src-regs.x;
                    294: {      bool flgs = ((LONG)(src)) < 0;
                    295:        bool flgo = ((LONG)(0)) < 0;
                    296:        bool flgn = ((LONG)(dst)) < 0;
                    297:        regs.z = ((LONG)(dst)) == 0;
                    298:        regs.v = (flgs != flgo) && (flgn != flgo);
                    299:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                    300:        regs.n = flgn != 0;
                    301:        put_long(srca,dst);
                    302: }}}}}}
                    303: void op_40a0(UWORD opcode)
                    304: {
                    305:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    306: {{     regs.a[srcreg] -= 4;
                    307: {      CPTR srca = regs.a[srcreg];
                    308:        LONG src = get_long(srca);
                    309: {      ULONG dst = -src-regs.x;
                    310: {      bool flgs = ((LONG)(src)) < 0;
                    311:        bool flgo = ((LONG)(0)) < 0;
                    312:        bool flgn = ((LONG)(dst)) < 0;
                    313:        regs.z = ((LONG)(dst)) == 0;
                    314:        regs.v = (flgs != flgo) && (flgn != flgo);
                    315:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                    316:        regs.n = flgn != 0;
                    317:        put_long(srca,dst);
                    318: }}}}}}
                    319: void op_40a8(UWORD opcode)
                    320: {
                    321:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    322: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                    323:        LONG src = get_long(srca);
                    324: {      ULONG dst = -src-regs.x;
                    325: {      bool flgs = ((LONG)(src)) < 0;
                    326:        bool flgo = ((LONG)(0)) < 0;
                    327:        bool flgn = ((LONG)(dst)) < 0;
                    328:        regs.z = ((LONG)(dst)) == 0;
                    329:        regs.v = (flgs != flgo) && (flgn != flgo);
                    330:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                    331:        regs.n = flgn != 0;
                    332:        put_long(srca,dst);
                    333: }}}}}
                    334: void op_40b0(UWORD opcode)
                    335: {
                    336:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    337: {{     CPTR srca = regs.a[srcreg];
                    338:        UWORD srcdp = nextiword();
                    339:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    340: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    341:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    342:        srca += srcdpr;
                    343: {      LONG src = get_long(srca);
                    344: {      ULONG dst = -src-regs.x;
                    345: {      bool flgs = ((LONG)(src)) < 0;
                    346:        bool flgo = ((LONG)(0)) < 0;
                    347:        bool flgn = ((LONG)(dst)) < 0;
                    348:        regs.z = ((LONG)(dst)) == 0;
                    349:        regs.v = (flgs != flgo) && (flgn != flgo);
                    350:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                    351:        regs.n = flgn != 0;
                    352:        put_long(srca,dst);
                    353: }}}}}}}
                    354: void op_40b8(UWORD opcode)
                    355: {
                    356: {{     CPTR srca = (LONG)(WORD)nextiword();
                    357:        LONG src = get_long(srca);
                    358: {      ULONG dst = -src-regs.x;
                    359: {      bool flgs = ((LONG)(src)) < 0;
                    360:        bool flgo = ((LONG)(0)) < 0;
                    361:        bool flgn = ((LONG)(dst)) < 0;
                    362:        regs.z = ((LONG)(dst)) == 0;
                    363:        regs.v = (flgs != flgo) && (flgn != flgo);
                    364:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                    365:        regs.n = flgn != 0;
                    366:        put_long(srca,dst);
                    367: }}}}}
                    368: void op_40b9(UWORD opcode)
                    369: {
                    370: {{     CPTR srca = nextilong();
                    371:        LONG src = get_long(srca);
                    372: {      ULONG dst = -src-regs.x;
                    373: {      bool flgs = ((LONG)(src)) < 0;
                    374:        bool flgo = ((LONG)(0)) < 0;
                    375:        bool flgn = ((LONG)(dst)) < 0;
                    376:        regs.z = ((LONG)(dst)) == 0;
                    377:        regs.v = (flgs != flgo) && (flgn != flgo);
                    378:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                    379:        regs.n = flgn != 0;
                    380:        put_long(srca,dst);
                    381: }}}}}
                    382: void op_40c0(UWORD opcode)
                    383: {
                    384:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    385: {{     MakeSR();
                    386:        regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (regs.sr) & 0xffff;
                    387: }}}
                    388: void op_40d0(UWORD opcode)
                    389: {
                    390:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    391: {{     CPTR srca = regs.a[srcreg];
                    392:        MakeSR();
                    393:        put_word(srca,regs.sr);
                    394: }}}
                    395: void op_40d8(UWORD opcode)
                    396: {
                    397:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    398: {{     CPTR srca = regs.a[srcreg];
                    399: {      regs.a[srcreg] += 2;
                    400:        MakeSR();
                    401:        put_word(srca,regs.sr);
                    402: }}}}
                    403: void op_40e0(UWORD opcode)
                    404: {
                    405:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    406: {{     regs.a[srcreg] -= 2;
                    407: {      CPTR srca = regs.a[srcreg];
                    408:        MakeSR();
                    409:        put_word(srca,regs.sr);
                    410: }}}}
                    411: void op_40e8(UWORD opcode)
                    412: {
                    413:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    414: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                    415:        MakeSR();
                    416:        put_word(srca,regs.sr);
                    417: }}}
                    418: void op_40f0(UWORD opcode)
                    419: {
                    420:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    421: {{     CPTR srca = regs.a[srcreg];
                    422:        UWORD srcdp = nextiword();
                    423:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    424: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    425:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    426:        srca += srcdpr;
                    427:        MakeSR();
                    428:        put_word(srca,regs.sr);
                    429: }}}}
                    430: void op_40f8(UWORD opcode)
                    431: {
                    432: {{     CPTR srca = (LONG)(WORD)nextiword();
                    433:        MakeSR();
                    434:        put_word(srca,regs.sr);
                    435: }}}
                    436: void op_40f9(UWORD opcode)
                    437: {
                    438: {{     CPTR srca = nextilong();
                    439:        MakeSR();
                    440:        put_word(srca,regs.sr);
                    441: }}}
                    442: void op_41d0(UWORD opcode)
                    443: {
                    444:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    445:        ULONG dstreg = (opcode & 3584) >> 9;
                    446: {{     CPTR srca = regs.a[srcreg];
                    447: {      regs.a[dstreg] = (srca);
                    448: }}}}
                    449: void op_41d8(UWORD opcode)
                    450: {
                    451:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    452:        ULONG dstreg = (opcode & 3584) >> 9;
                    453: {{     CPTR srca = regs.a[srcreg];
                    454: {      regs.a[srcreg] += 4;
                    455: {      regs.a[dstreg] = (srca);
                    456: }}}}}
                    457: void op_41e0(UWORD opcode)
                    458: {
                    459:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    460:        ULONG dstreg = (opcode & 3584) >> 9;
                    461: {{     regs.a[srcreg] -= 4;
                    462: {      CPTR srca = regs.a[srcreg];
                    463: {      regs.a[dstreg] = (srca);
                    464: }}}}}
                    465: void op_41e8(UWORD opcode)
                    466: {
                    467:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    468:        ULONG dstreg = (opcode & 3584) >> 9;
                    469: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                    470: {      regs.a[dstreg] = (srca);
                    471: }}}}
                    472: void op_41f0(UWORD opcode)
                    473: {
                    474:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    475:        ULONG dstreg = (opcode & 3584) >> 9;
                    476: {{     CPTR srca = regs.a[srcreg];
                    477:        UWORD srcdp = nextiword();
                    478:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    479: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    480:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    481:        srca += srcdpr;
                    482: {      regs.a[dstreg] = (srca);
                    483: }}}}}
                    484: void op_41f8(UWORD opcode)
                    485: {
                    486:        ULONG dstreg = (opcode & 3584) >> 9;
                    487: {{     CPTR srca = (LONG)(WORD)nextiword();
                    488: {      regs.a[dstreg] = (srca);
                    489: }}}}
                    490: void op_41f9(UWORD opcode)
                    491: {
                    492:        ULONG dstreg = (opcode & 3584) >> 9;
                    493: {{     CPTR srca = nextilong();
                    494: {      regs.a[dstreg] = (srca);
                    495: }}}}
                    496: void op_41fa(UWORD opcode)
                    497: {
                    498:        ULONG dstreg = (opcode & 3584) >> 9;
                    499: {{     CPTR srca = m68k_getpc();
                    500:        srca += (LONG)(WORD)nextiword();
                    501: {      regs.a[dstreg] = (srca);
                    502: }}}}
                    503: void op_41fb(UWORD opcode)
                    504: {
                    505:        ULONG dstreg = (opcode & 3584) >> 9;
                    506: {{     CPTR srca = m68k_getpc();
                    507:        UWORD srcdp = nextiword();
                    508:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    509: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    510:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    511:        srca += srcdpr;
                    512: {      regs.a[dstreg] = (srca);
                    513: }}}}}
                    514: void op_4200(UWORD opcode)
                    515: {
                    516:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    517: {{     regs.v = regs.c = 0;
                    518:        regs.z = ((BYTE)(0)) == 0;
                    519:        regs.n = ((BYTE)(0)) < 0;
                    520:        regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (0) & 0xff;
                    521: }}}
                    522: void op_4210(UWORD opcode)
                    523: {
                    524:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    525: {{     CPTR srca = regs.a[srcreg];
                    526:        regs.v = regs.c = 0;
                    527:        regs.z = ((BYTE)(0)) == 0;
                    528:        regs.n = ((BYTE)(0)) < 0;
                    529:        put_byte(srca,0);
                    530: }}}
                    531: void op_4218(UWORD opcode)
                    532: {
                    533:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    534: {{     CPTR srca = regs.a[srcreg];
                    535: {      regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
                    536:        regs.v = regs.c = 0;
                    537:        regs.z = ((BYTE)(0)) == 0;
                    538:        regs.n = ((BYTE)(0)) < 0;
                    539:        put_byte(srca,0);
                    540: }}}}
                    541: void op_4220(UWORD opcode)
                    542: {
                    543:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    544: {{     regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
                    545: {      CPTR srca = regs.a[srcreg];
                    546:        regs.v = regs.c = 0;
                    547:        regs.z = ((BYTE)(0)) == 0;
                    548:        regs.n = ((BYTE)(0)) < 0;
                    549:        put_byte(srca,0);
                    550: }}}}
                    551: void op_4228(UWORD opcode)
                    552: {
                    553:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    554: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                    555:        regs.v = regs.c = 0;
                    556:        regs.z = ((BYTE)(0)) == 0;
                    557:        regs.n = ((BYTE)(0)) < 0;
                    558:        put_byte(srca,0);
                    559: }}}
                    560: void op_4230(UWORD opcode)
                    561: {
                    562:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    563: {{     CPTR srca = regs.a[srcreg];
                    564:        UWORD srcdp = nextiword();
                    565:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    566: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    567:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    568:        srca += srcdpr;
                    569:        regs.v = regs.c = 0;
                    570:        regs.z = ((BYTE)(0)) == 0;
                    571:        regs.n = ((BYTE)(0)) < 0;
                    572:        put_byte(srca,0);
                    573: }}}}
                    574: void op_4238(UWORD opcode)
                    575: {
                    576: {{     CPTR srca = (LONG)(WORD)nextiword();
                    577:        regs.v = regs.c = 0;
                    578:        regs.z = ((BYTE)(0)) == 0;
                    579:        regs.n = ((BYTE)(0)) < 0;
                    580:        put_byte(srca,0);
                    581: }}}
                    582: void op_4239(UWORD opcode)
                    583: {
                    584: {{     CPTR srca = nextilong();
                    585:        regs.v = regs.c = 0;
                    586:        regs.z = ((BYTE)(0)) == 0;
                    587:        regs.n = ((BYTE)(0)) < 0;
                    588:        put_byte(srca,0);
                    589: }}}
                    590: void op_4240(UWORD opcode)
                    591: {
                    592:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    593: {{     regs.v = regs.c = 0;
                    594:        regs.z = ((WORD)(0)) == 0;
                    595:        regs.n = ((WORD)(0)) < 0;
                    596:        regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (0) & 0xffff;
                    597: }}}
                    598: void op_4250(UWORD opcode)
                    599: {
                    600:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    601: {{     CPTR srca = regs.a[srcreg];
                    602:        regs.v = regs.c = 0;
                    603:        regs.z = ((WORD)(0)) == 0;
                    604:        regs.n = ((WORD)(0)) < 0;
                    605:        put_word(srca,0);
                    606: }}}
                    607: void op_4258(UWORD opcode)
                    608: {
                    609:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    610: {{     CPTR srca = regs.a[srcreg];
                    611: {      regs.a[srcreg] += 2;
                    612:        regs.v = regs.c = 0;
                    613:        regs.z = ((WORD)(0)) == 0;
                    614:        regs.n = ((WORD)(0)) < 0;
                    615:        put_word(srca,0);
                    616: }}}}
                    617: void op_4260(UWORD opcode)
                    618: {
                    619:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    620: {{     regs.a[srcreg] -= 2;
                    621: {      CPTR srca = regs.a[srcreg];
                    622:        regs.v = regs.c = 0;
                    623:        regs.z = ((WORD)(0)) == 0;
                    624:        regs.n = ((WORD)(0)) < 0;
                    625:        put_word(srca,0);
                    626: }}}}
                    627: void op_4268(UWORD opcode)
                    628: {
                    629:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    630: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                    631:        regs.v = regs.c = 0;
                    632:        regs.z = ((WORD)(0)) == 0;
                    633:        regs.n = ((WORD)(0)) < 0;
                    634:        put_word(srca,0);
                    635: }}}
                    636: void op_4270(UWORD opcode)
                    637: {
                    638:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    639: {{     CPTR srca = regs.a[srcreg];
                    640:        UWORD srcdp = nextiword();
                    641:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    642: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    643:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    644:        srca += srcdpr;
                    645:        regs.v = regs.c = 0;
                    646:        regs.z = ((WORD)(0)) == 0;
                    647:        regs.n = ((WORD)(0)) < 0;
                    648:        put_word(srca,0);
                    649: }}}}
                    650: void op_4278(UWORD opcode)
                    651: {
                    652: {{     CPTR srca = (LONG)(WORD)nextiword();
                    653:        regs.v = regs.c = 0;
                    654:        regs.z = ((WORD)(0)) == 0;
                    655:        regs.n = ((WORD)(0)) < 0;
                    656:        put_word(srca,0);
                    657: }}}
                    658: void op_4279(UWORD opcode)
                    659: {
                    660: {{     CPTR srca = nextilong();
                    661:        regs.v = regs.c = 0;
                    662:        regs.z = ((WORD)(0)) == 0;
                    663:        regs.n = ((WORD)(0)) < 0;
                    664:        put_word(srca,0);
                    665: }}}
                    666: void op_4280(UWORD opcode)
                    667: {
                    668:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    669: {{     regs.v = regs.c = 0;
                    670:        regs.z = ((LONG)(0)) == 0;
                    671:        regs.n = ((LONG)(0)) < 0;
                    672:        regs.d[srcreg] = (0);
                    673: }}}
                    674: void op_4290(UWORD opcode)
                    675: {
                    676:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    677: {{     CPTR srca = regs.a[srcreg];
                    678:        regs.v = regs.c = 0;
                    679:        regs.z = ((LONG)(0)) == 0;
                    680:        regs.n = ((LONG)(0)) < 0;
                    681:        put_long(srca,0);
                    682: }}}
                    683: void op_4298(UWORD opcode)
                    684: {
                    685:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    686: {{     CPTR srca = regs.a[srcreg];
                    687: {      regs.a[srcreg] += 4;
                    688:        regs.v = regs.c = 0;
                    689:        regs.z = ((LONG)(0)) == 0;
                    690:        regs.n = ((LONG)(0)) < 0;
                    691:        put_long(srca,0);
                    692: }}}}
                    693: void op_42a0(UWORD opcode)
                    694: {
                    695:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    696: {{     regs.a[srcreg] -= 4;
                    697: {      CPTR srca = regs.a[srcreg];
                    698:        regs.v = regs.c = 0;
                    699:        regs.z = ((LONG)(0)) == 0;
                    700:        regs.n = ((LONG)(0)) < 0;
                    701:        put_long(srca,0);
                    702: }}}}
                    703: void op_42a8(UWORD opcode)
                    704: {
                    705:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    706: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                    707:        regs.v = regs.c = 0;
                    708:        regs.z = ((LONG)(0)) == 0;
                    709:        regs.n = ((LONG)(0)) < 0;
                    710:        put_long(srca,0);
                    711: }}}
                    712: void op_42b0(UWORD opcode)
                    713: {
                    714:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    715: {{     CPTR srca = regs.a[srcreg];
                    716:        UWORD srcdp = nextiword();
                    717:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    718: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    719:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    720:        srca += srcdpr;
                    721:        regs.v = regs.c = 0;
                    722:        regs.z = ((LONG)(0)) == 0;
                    723:        regs.n = ((LONG)(0)) < 0;
                    724:        put_long(srca,0);
                    725: }}}}
                    726: void op_42b8(UWORD opcode)
                    727: {
                    728: {{     CPTR srca = (LONG)(WORD)nextiword();
                    729:        regs.v = regs.c = 0;
                    730:        regs.z = ((LONG)(0)) == 0;
                    731:        regs.n = ((LONG)(0)) < 0;
                    732:        put_long(srca,0);
                    733: }}}
                    734: void op_42b9(UWORD opcode)
                    735: {
                    736: {{     CPTR srca = nextilong();
                    737:        regs.v = regs.c = 0;
                    738:        regs.z = ((LONG)(0)) == 0;
                    739:        regs.n = ((LONG)(0)) < 0;
                    740:        put_long(srca,0);
                    741: }}}
                    742: void op_42c0(UWORD opcode)
                    743: {
                    744:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    745: {{     MakeSR();
                    746:        regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (regs.sr) & 0xff;
                    747: }}}
                    748: void op_42d0(UWORD opcode)
                    749: {
                    750:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    751: {{     CPTR srca = regs.a[srcreg];
                    752:        MakeSR();
                    753:        put_byte(srca,regs.sr);
                    754: }}}
                    755: void op_42d8(UWORD opcode)
                    756: {
                    757:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    758: {{     CPTR srca = regs.a[srcreg];
                    759: {      regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
                    760:        MakeSR();
                    761:        put_byte(srca,regs.sr);
                    762: }}}}
                    763: void op_42e0(UWORD opcode)
                    764: {
                    765:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    766: {{     regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
                    767: {      CPTR srca = regs.a[srcreg];
                    768:        MakeSR();
                    769:        put_byte(srca,regs.sr);
                    770: }}}}
                    771: void op_42e8(UWORD opcode)
                    772: {
                    773:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    774: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                    775:        MakeSR();
                    776:        put_byte(srca,regs.sr);
                    777: }}}
                    778: void op_42f0(UWORD opcode)
                    779: {
                    780:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    781: {{     CPTR srca = regs.a[srcreg];
                    782:        UWORD srcdp = nextiword();
                    783:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    784: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    785:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    786:        srca += srcdpr;
                    787:        MakeSR();
                    788:        put_byte(srca,regs.sr);
                    789: }}}}
                    790: void op_42f8(UWORD opcode)
                    791: {
                    792: {{     CPTR srca = (LONG)(WORD)nextiword();
                    793:        MakeSR();
                    794:        put_byte(srca,regs.sr);
                    795: }}}
                    796: void op_42f9(UWORD opcode)
                    797: {
                    798: {{     CPTR srca = nextilong();
                    799:        MakeSR();
                    800:        put_byte(srca,regs.sr);
                    801: }}}
                    802: void op_4400(UWORD opcode)
                    803: {
                    804:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    805: {{     BYTE src = regs.d[srcreg];
                    806: {      ULONG dst = -src;
                    807: {      bool flgs = ((BYTE)(src)) < 0;
                    808:        bool flgo = ((BYTE)(0)) < 0;
                    809:        bool flgn = ((BYTE)(dst)) < 0;
                    810:        regs.z = ((BYTE)(dst)) == 0;
                    811:        regs.v = (flgs != flgo) && (flgn != flgo);
                    812:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                    813:        regs.n = flgn != 0;
                    814:        regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (dst) & 0xff;
                    815: }}}}}
                    816: void op_4410(UWORD opcode)
                    817: {
                    818:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    819: {{     CPTR srca = regs.a[srcreg];
                    820:        BYTE src = get_byte(srca);
                    821: {      ULONG dst = -src;
                    822: {      bool flgs = ((BYTE)(src)) < 0;
                    823:        bool flgo = ((BYTE)(0)) < 0;
                    824:        bool flgn = ((BYTE)(dst)) < 0;
                    825:        regs.z = ((BYTE)(dst)) == 0;
                    826:        regs.v = (flgs != flgo) && (flgn != flgo);
                    827:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                    828:        regs.n = flgn != 0;
                    829:        put_byte(srca,dst);
                    830: }}}}}
                    831: void op_4418(UWORD opcode)
                    832: {
                    833:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    834: {{     CPTR srca = regs.a[srcreg];
                    835:        BYTE src = get_byte(srca);
                    836: {      regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
                    837: {      ULONG dst = -src;
                    838: {      bool flgs = ((BYTE)(src)) < 0;
                    839:        bool flgo = ((BYTE)(0)) < 0;
                    840:        bool flgn = ((BYTE)(dst)) < 0;
                    841:        regs.z = ((BYTE)(dst)) == 0;
                    842:        regs.v = (flgs != flgo) && (flgn != flgo);
                    843:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                    844:        regs.n = flgn != 0;
                    845:        put_byte(srca,dst);
                    846: }}}}}}
                    847: void op_4420(UWORD opcode)
                    848: {
                    849:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    850: {{     regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
                    851: {      CPTR srca = regs.a[srcreg];
                    852:        BYTE src = get_byte(srca);
                    853: {      ULONG dst = -src;
                    854: {      bool flgs = ((BYTE)(src)) < 0;
                    855:        bool flgo = ((BYTE)(0)) < 0;
                    856:        bool flgn = ((BYTE)(dst)) < 0;
                    857:        regs.z = ((BYTE)(dst)) == 0;
                    858:        regs.v = (flgs != flgo) && (flgn != flgo);
                    859:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                    860:        regs.n = flgn != 0;
                    861:        put_byte(srca,dst);
                    862: }}}}}}
                    863: void op_4428(UWORD opcode)
                    864: {
                    865:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    866: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                    867:        BYTE src = get_byte(srca);
                    868: {      ULONG dst = -src;
                    869: {      bool flgs = ((BYTE)(src)) < 0;
                    870:        bool flgo = ((BYTE)(0)) < 0;
                    871:        bool flgn = ((BYTE)(dst)) < 0;
                    872:        regs.z = ((BYTE)(dst)) == 0;
                    873:        regs.v = (flgs != flgo) && (flgn != flgo);
                    874:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                    875:        regs.n = flgn != 0;
                    876:        put_byte(srca,dst);
                    877: }}}}}
                    878: void op_4430(UWORD opcode)
                    879: {
                    880:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    881: {{     CPTR srca = regs.a[srcreg];
                    882:        UWORD srcdp = nextiword();
                    883:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                    884: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                    885:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                    886:        srca += srcdpr;
                    887: {      BYTE src = get_byte(srca);
                    888: {      ULONG dst = -src;
                    889: {      bool flgs = ((BYTE)(src)) < 0;
                    890:        bool flgo = ((BYTE)(0)) < 0;
                    891:        bool flgn = ((BYTE)(dst)) < 0;
                    892:        regs.z = ((BYTE)(dst)) == 0;
                    893:        regs.v = (flgs != flgo) && (flgn != flgo);
                    894:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                    895:        regs.n = flgn != 0;
                    896:        put_byte(srca,dst);
                    897: }}}}}}}
                    898: void op_4438(UWORD opcode)
                    899: {
                    900: {{     CPTR srca = (LONG)(WORD)nextiword();
                    901:        BYTE src = get_byte(srca);
                    902: {      ULONG dst = -src;
                    903: {      bool flgs = ((BYTE)(src)) < 0;
                    904:        bool flgo = ((BYTE)(0)) < 0;
                    905:        bool flgn = ((BYTE)(dst)) < 0;
                    906:        regs.z = ((BYTE)(dst)) == 0;
                    907:        regs.v = (flgs != flgo) && (flgn != flgo);
                    908:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                    909:        regs.n = flgn != 0;
                    910:        put_byte(srca,dst);
                    911: }}}}}
                    912: void op_4439(UWORD opcode)
                    913: {
                    914: {{     CPTR srca = nextilong();
                    915:        BYTE src = get_byte(srca);
                    916: {      ULONG dst = -src;
                    917: {      bool flgs = ((BYTE)(src)) < 0;
                    918:        bool flgo = ((BYTE)(0)) < 0;
                    919:        bool flgn = ((BYTE)(dst)) < 0;
                    920:        regs.z = ((BYTE)(dst)) == 0;
                    921:        regs.v = (flgs != flgo) && (flgn != flgo);
                    922:        regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
                    923:        regs.n = flgn != 0;
                    924:        put_byte(srca,dst);
                    925: }}}}}
                    926: void op_4440(UWORD opcode)
                    927: {
                    928:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    929: {{     WORD src = regs.d[srcreg];
                    930: {      ULONG dst = -src;
                    931: {      bool flgs = ((WORD)(src)) < 0;
                    932:        bool flgo = ((WORD)(0)) < 0;
                    933:        bool flgn = ((WORD)(dst)) < 0;
                    934:        regs.z = ((WORD)(dst)) == 0;
                    935:        regs.v = (flgs != flgo) && (flgn != flgo);
                    936:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                    937:        regs.n = flgn != 0;
                    938:        regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (dst) & 0xffff;
                    939: }}}}}
                    940: void op_4450(UWORD opcode)
                    941: {
                    942:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    943: {{     CPTR srca = regs.a[srcreg];
                    944:        WORD src = get_word(srca);
                    945: {      ULONG dst = -src;
                    946: {      bool flgs = ((WORD)(src)) < 0;
                    947:        bool flgo = ((WORD)(0)) < 0;
                    948:        bool flgn = ((WORD)(dst)) < 0;
                    949:        regs.z = ((WORD)(dst)) == 0;
                    950:        regs.v = (flgs != flgo) && (flgn != flgo);
                    951:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                    952:        regs.n = flgn != 0;
                    953:        put_word(srca,dst);
                    954: }}}}}
                    955: void op_4458(UWORD opcode)
                    956: {
                    957:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    958: {{     CPTR srca = regs.a[srcreg];
                    959:        WORD src = get_word(srca);
                    960: {      regs.a[srcreg] += 2;
                    961: {      ULONG dst = -src;
                    962: {      bool flgs = ((WORD)(src)) < 0;
                    963:        bool flgo = ((WORD)(0)) < 0;
                    964:        bool flgn = ((WORD)(dst)) < 0;
                    965:        regs.z = ((WORD)(dst)) == 0;
                    966:        regs.v = (flgs != flgo) && (flgn != flgo);
                    967:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                    968:        regs.n = flgn != 0;
                    969:        put_word(srca,dst);
                    970: }}}}}}
                    971: void op_4460(UWORD opcode)
                    972: {
                    973:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    974: {{     regs.a[srcreg] -= 2;
                    975: {      CPTR srca = regs.a[srcreg];
                    976:        WORD src = get_word(srca);
                    977: {      ULONG dst = -src;
                    978: {      bool flgs = ((WORD)(src)) < 0;
                    979:        bool flgo = ((WORD)(0)) < 0;
                    980:        bool flgn = ((WORD)(dst)) < 0;
                    981:        regs.z = ((WORD)(dst)) == 0;
                    982:        regs.v = (flgs != flgo) && (flgn != flgo);
                    983:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                    984:        regs.n = flgn != 0;
                    985:        put_word(srca,dst);
                    986: }}}}}}
                    987: void op_4468(UWORD opcode)
                    988: {
                    989:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                    990: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                    991:        WORD src = get_word(srca);
                    992: {      ULONG dst = -src;
                    993: {      bool flgs = ((WORD)(src)) < 0;
                    994:        bool flgo = ((WORD)(0)) < 0;
                    995:        bool flgn = ((WORD)(dst)) < 0;
                    996:        regs.z = ((WORD)(dst)) == 0;
                    997:        regs.v = (flgs != flgo) && (flgn != flgo);
                    998:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                    999:        regs.n = flgn != 0;
                   1000:        put_word(srca,dst);
                   1001: }}}}}
                   1002: void op_4470(UWORD opcode)
                   1003: {
                   1004:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1005: {{     CPTR srca = regs.a[srcreg];
                   1006:        UWORD srcdp = nextiword();
                   1007:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1008: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1009:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1010:        srca += srcdpr;
                   1011: {      WORD src = get_word(srca);
                   1012: {      ULONG dst = -src;
                   1013: {      bool flgs = ((WORD)(src)) < 0;
                   1014:        bool flgo = ((WORD)(0)) < 0;
                   1015:        bool flgn = ((WORD)(dst)) < 0;
                   1016:        regs.z = ((WORD)(dst)) == 0;
                   1017:        regs.v = (flgs != flgo) && (flgn != flgo);
                   1018:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                   1019:        regs.n = flgn != 0;
                   1020:        put_word(srca,dst);
                   1021: }}}}}}}
                   1022: void op_4478(UWORD opcode)
                   1023: {
                   1024: {{     CPTR srca = (LONG)(WORD)nextiword();
                   1025:        WORD src = get_word(srca);
                   1026: {      ULONG dst = -src;
                   1027: {      bool flgs = ((WORD)(src)) < 0;
                   1028:        bool flgo = ((WORD)(0)) < 0;
                   1029:        bool flgn = ((WORD)(dst)) < 0;
                   1030:        regs.z = ((WORD)(dst)) == 0;
                   1031:        regs.v = (flgs != flgo) && (flgn != flgo);
                   1032:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                   1033:        regs.n = flgn != 0;
                   1034:        put_word(srca,dst);
                   1035: }}}}}
                   1036: void op_4479(UWORD opcode)
                   1037: {
                   1038: {{     CPTR srca = nextilong();
                   1039:        WORD src = get_word(srca);
                   1040: {      ULONG dst = -src;
                   1041: {      bool flgs = ((WORD)(src)) < 0;
                   1042:        bool flgo = ((WORD)(0)) < 0;
                   1043:        bool flgn = ((WORD)(dst)) < 0;
                   1044:        regs.z = ((WORD)(dst)) == 0;
                   1045:        regs.v = (flgs != flgo) && (flgn != flgo);
                   1046:        regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
                   1047:        regs.n = flgn != 0;
                   1048:        put_word(srca,dst);
                   1049: }}}}}
                   1050: void op_4480(UWORD opcode)
                   1051: {
                   1052:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1053: {{     LONG src = regs.d[srcreg];
                   1054: {      ULONG dst = -src;
                   1055: {      bool flgs = ((LONG)(src)) < 0;
                   1056:        bool flgo = ((LONG)(0)) < 0;
                   1057:        bool flgn = ((LONG)(dst)) < 0;
                   1058:        regs.z = ((LONG)(dst)) == 0;
                   1059:        regs.v = (flgs != flgo) && (flgn != flgo);
                   1060:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                   1061:        regs.n = flgn != 0;
                   1062:        regs.d[srcreg] = (dst);
                   1063: }}}}}
                   1064: void op_4490(UWORD opcode)
                   1065: {
                   1066:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1067: {{     CPTR srca = regs.a[srcreg];
                   1068:        LONG src = get_long(srca);
                   1069: {      ULONG dst = -src;
                   1070: {      bool flgs = ((LONG)(src)) < 0;
                   1071:        bool flgo = ((LONG)(0)) < 0;
                   1072:        bool flgn = ((LONG)(dst)) < 0;
                   1073:        regs.z = ((LONG)(dst)) == 0;
                   1074:        regs.v = (flgs != flgo) && (flgn != flgo);
                   1075:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                   1076:        regs.n = flgn != 0;
                   1077:        put_long(srca,dst);
                   1078: }}}}}
                   1079: void op_4498(UWORD opcode)
                   1080: {
                   1081:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1082: {{     CPTR srca = regs.a[srcreg];
                   1083:        LONG src = get_long(srca);
                   1084: {      regs.a[srcreg] += 4;
                   1085: {      ULONG dst = -src;
                   1086: {      bool flgs = ((LONG)(src)) < 0;
                   1087:        bool flgo = ((LONG)(0)) < 0;
                   1088:        bool flgn = ((LONG)(dst)) < 0;
                   1089:        regs.z = ((LONG)(dst)) == 0;
                   1090:        regs.v = (flgs != flgo) && (flgn != flgo);
                   1091:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                   1092:        regs.n = flgn != 0;
                   1093:        put_long(srca,dst);
                   1094: }}}}}}
                   1095: void op_44a0(UWORD opcode)
                   1096: {
                   1097:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1098: {{     regs.a[srcreg] -= 4;
                   1099: {      CPTR srca = regs.a[srcreg];
                   1100:        LONG src = get_long(srca);
                   1101: {      ULONG dst = -src;
                   1102: {      bool flgs = ((LONG)(src)) < 0;
                   1103:        bool flgo = ((LONG)(0)) < 0;
                   1104:        bool flgn = ((LONG)(dst)) < 0;
                   1105:        regs.z = ((LONG)(dst)) == 0;
                   1106:        regs.v = (flgs != flgo) && (flgn != flgo);
                   1107:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                   1108:        regs.n = flgn != 0;
                   1109:        put_long(srca,dst);
                   1110: }}}}}}
                   1111: void op_44a8(UWORD opcode)
                   1112: {
                   1113:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1114: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   1115:        LONG src = get_long(srca);
                   1116: {      ULONG dst = -src;
                   1117: {      bool flgs = ((LONG)(src)) < 0;
                   1118:        bool flgo = ((LONG)(0)) < 0;
                   1119:        bool flgn = ((LONG)(dst)) < 0;
                   1120:        regs.z = ((LONG)(dst)) == 0;
                   1121:        regs.v = (flgs != flgo) && (flgn != flgo);
                   1122:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                   1123:        regs.n = flgn != 0;
                   1124:        put_long(srca,dst);
                   1125: }}}}}
                   1126: void op_44b0(UWORD opcode)
                   1127: {
                   1128:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1129: {{     CPTR srca = regs.a[srcreg];
                   1130:        UWORD srcdp = nextiword();
                   1131:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1132: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1133:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1134:        srca += srcdpr;
                   1135: {      LONG src = get_long(srca);
                   1136: {      ULONG dst = -src;
                   1137: {      bool flgs = ((LONG)(src)) < 0;
                   1138:        bool flgo = ((LONG)(0)) < 0;
                   1139:        bool flgn = ((LONG)(dst)) < 0;
                   1140:        regs.z = ((LONG)(dst)) == 0;
                   1141:        regs.v = (flgs != flgo) && (flgn != flgo);
                   1142:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                   1143:        regs.n = flgn != 0;
                   1144:        put_long(srca,dst);
                   1145: }}}}}}}
                   1146: void op_44b8(UWORD opcode)
                   1147: {
                   1148: {{     CPTR srca = (LONG)(WORD)nextiword();
                   1149:        LONG src = get_long(srca);
                   1150: {      ULONG dst = -src;
                   1151: {      bool flgs = ((LONG)(src)) < 0;
                   1152:        bool flgo = ((LONG)(0)) < 0;
                   1153:        bool flgn = ((LONG)(dst)) < 0;
                   1154:        regs.z = ((LONG)(dst)) == 0;
                   1155:        regs.v = (flgs != flgo) && (flgn != flgo);
                   1156:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                   1157:        regs.n = flgn != 0;
                   1158:        put_long(srca,dst);
                   1159: }}}}}
                   1160: void op_44b9(UWORD opcode)
                   1161: {
                   1162: {{     CPTR srca = nextilong();
                   1163:        LONG src = get_long(srca);
                   1164: {      ULONG dst = -src;
                   1165: {      bool flgs = ((LONG)(src)) < 0;
                   1166:        bool flgo = ((LONG)(0)) < 0;
                   1167:        bool flgn = ((LONG)(dst)) < 0;
                   1168:        regs.z = ((LONG)(dst)) == 0;
                   1169:        regs.v = (flgs != flgo) && (flgn != flgo);
                   1170:        regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
                   1171:        regs.n = flgn != 0;
                   1172:        put_long(srca,dst);
                   1173: }}}}}
                   1174: void op_44c0(UWORD opcode)
                   1175: {      ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1176: {{{    BYTE src = regs.d[srcreg];
                   1177:        MakeSR();
                   1178:        regs.sr &= 0xFF00;
                   1179:        regs.sr |= src & 0xFF;
                   1180:        MakeFromSR();
                   1181: 
                   1182: }}}}
                   1183: void op_44d0(UWORD opcode)
                   1184: {
                   1185:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1186: {{{    CPTR srca = regs.a[srcreg];
                   1187:        BYTE src = get_byte(srca);
                   1188:        MakeSR();
                   1189:        regs.sr &= 0xFF00;
                   1190:        regs.sr |= src & 0xFF;
                   1191:        MakeFromSR();
                   1192: }}}}
                   1193: void op_44d8(UWORD opcode)
                   1194: {
                   1195:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1196: {{{    CPTR srca = regs.a[srcreg];
                   1197:        BYTE src = get_byte(srca);
                   1198: {      regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
                   1199:        MakeSR();
                   1200:        regs.sr &= 0xFF00;
                   1201:        regs.sr |= src & 0xFF;
                   1202:        MakeFromSR();
                   1203: }}}}}
                   1204: void op_44e0(UWORD opcode)
                   1205: {
                   1206:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1207: {{{    regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
                   1208: {      CPTR srca = regs.a[srcreg];
                   1209:        BYTE src = get_byte(srca);
                   1210:        MakeSR();
                   1211:        regs.sr &= 0xFF00;
                   1212:        regs.sr |= src & 0xFF;
                   1213:        MakeFromSR();
                   1214: }}}}}
                   1215: void op_44e8(UWORD opcode)
                   1216: {
                   1217:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1218: {{{    CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   1219:        BYTE src = get_byte(srca);
                   1220:        MakeSR();
                   1221:        regs.sr &= 0xFF00;
                   1222:        regs.sr |= src & 0xFF;
                   1223:        MakeFromSR();
                   1224: }}}}
                   1225: void op_44f0(UWORD opcode)
                   1226: {
                   1227:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1228: {{{    CPTR srca = regs.a[srcreg];
                   1229:        UWORD srcdp = nextiword();
                   1230:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1231: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1232:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1233:        srca += srcdpr;
                   1234: {      BYTE src = get_byte(srca);
                   1235:        MakeSR();
                   1236:        regs.sr &= 0xFF00;
                   1237:        regs.sr |= src & 0xFF;
                   1238:        MakeFromSR();
                   1239: }}}}}}
                   1240: void op_44f8(UWORD opcode)
                   1241: {
                   1242: {{{    CPTR srca = (LONG)(WORD)nextiword();
                   1243:        BYTE src = get_byte(srca);
                   1244:        MakeSR();
                   1245:        regs.sr &= 0xFF00;
                   1246:        regs.sr |= src & 0xFF;
                   1247:        MakeFromSR();
                   1248: }}}}
                   1249: void op_44f9(UWORD opcode)
                   1250: {
                   1251: {{{    CPTR srca = nextilong();
                   1252:        BYTE src = get_byte(srca);
                   1253:        MakeSR();
                   1254:        regs.sr &= 0xFF00;
                   1255:        regs.sr |= src & 0xFF;
                   1256:        MakeFromSR();
                   1257: }}}}
                   1258: void op_44fa(UWORD opcode)
                   1259: {
                   1260: {{{    CPTR srca = m68k_getpc();
                   1261:        srca += (LONG)(WORD)nextiword();
                   1262: {      BYTE src = get_byte(srca);
                   1263:        MakeSR();
                   1264:        regs.sr &= 0xFF00;
                   1265:        regs.sr |= src & 0xFF;
                   1266:        MakeFromSR();
                   1267: }}}}}
                   1268: void op_44fb(UWORD opcode)
                   1269: {
                   1270: {{{    CPTR srca = m68k_getpc();
                   1271:        UWORD srcdp = nextiword();
                   1272:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1273: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1274:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1275:        srca += srcdpr;
                   1276: {      BYTE src = get_byte(srca);
                   1277:        MakeSR();
                   1278:        regs.sr &= 0xFF00;
                   1279:        regs.sr |= src & 0xFF;
                   1280:        MakeFromSR();
                   1281: }}}}}}
                   1282: void op_44fc(UWORD opcode)
                   1283: {
                   1284: {{{    BYTE src = nextiword();
                   1285:        MakeSR();
                   1286:        regs.sr &= 0xFF00;
                   1287:        regs.sr |= src & 0xFF;
                   1288:        MakeFromSR();
                   1289: }}}}
                   1290: void op_4600(UWORD opcode)
                   1291: {
                   1292:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1293: {{     BYTE src = regs.d[srcreg];
                   1294: {      ULONG dst = ~src;
                   1295:        regs.v = regs.c = 0;
                   1296:        regs.z = ((BYTE)(dst)) == 0;
                   1297:        regs.n = ((BYTE)(dst)) < 0;
                   1298:        regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (dst) & 0xff;
                   1299: }}}}
                   1300: void op_4610(UWORD opcode)
                   1301: {
                   1302:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1303: {{     CPTR srca = regs.a[srcreg];
                   1304:        BYTE src = get_byte(srca);
                   1305: {      ULONG dst = ~src;
                   1306:        regs.v = regs.c = 0;
                   1307:        regs.z = ((BYTE)(dst)) == 0;
                   1308:        regs.n = ((BYTE)(dst)) < 0;
                   1309:        put_byte(srca,dst);
                   1310: }}}}
                   1311: void op_4618(UWORD opcode)
                   1312: {
                   1313:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1314: {{     CPTR srca = regs.a[srcreg];
                   1315:        BYTE src = get_byte(srca);
                   1316: {      regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
                   1317: {      ULONG dst = ~src;
                   1318:        regs.v = regs.c = 0;
                   1319:        regs.z = ((BYTE)(dst)) == 0;
                   1320:        regs.n = ((BYTE)(dst)) < 0;
                   1321:        put_byte(srca,dst);
                   1322: }}}}}
                   1323: void op_4620(UWORD opcode)
                   1324: {
                   1325:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1326: {{     regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
                   1327: {      CPTR srca = regs.a[srcreg];
                   1328:        BYTE src = get_byte(srca);
                   1329: {      ULONG dst = ~src;
                   1330:        regs.v = regs.c = 0;
                   1331:        regs.z = ((BYTE)(dst)) == 0;
                   1332:        regs.n = ((BYTE)(dst)) < 0;
                   1333:        put_byte(srca,dst);
                   1334: }}}}}
                   1335: void op_4628(UWORD opcode)
                   1336: {
                   1337:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1338: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   1339:        BYTE src = get_byte(srca);
                   1340: {      ULONG dst = ~src;
                   1341:        regs.v = regs.c = 0;
                   1342:        regs.z = ((BYTE)(dst)) == 0;
                   1343:        regs.n = ((BYTE)(dst)) < 0;
                   1344:        put_byte(srca,dst);
                   1345: }}}}
                   1346: void op_4630(UWORD opcode)
                   1347: {
                   1348:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1349: {{     CPTR srca = regs.a[srcreg];
                   1350:        UWORD srcdp = nextiword();
                   1351:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1352: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1353:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1354:        srca += srcdpr;
                   1355: {      BYTE src = get_byte(srca);
                   1356: {      ULONG dst = ~src;
                   1357:        regs.v = regs.c = 0;
                   1358:        regs.z = ((BYTE)(dst)) == 0;
                   1359:        regs.n = ((BYTE)(dst)) < 0;
                   1360:        put_byte(srca,dst);
                   1361: }}}}}}
                   1362: void op_4638(UWORD opcode)
                   1363: {
                   1364: {{     CPTR srca = (LONG)(WORD)nextiword();
                   1365:        BYTE src = get_byte(srca);
                   1366: {      ULONG dst = ~src;
                   1367:        regs.v = regs.c = 0;
                   1368:        regs.z = ((BYTE)(dst)) == 0;
                   1369:        regs.n = ((BYTE)(dst)) < 0;
                   1370:        put_byte(srca,dst);
                   1371: }}}}
                   1372: void op_4639(UWORD opcode)
                   1373: {
                   1374: {{     CPTR srca = nextilong();
                   1375:        BYTE src = get_byte(srca);
                   1376: {      ULONG dst = ~src;
                   1377:        regs.v = regs.c = 0;
                   1378:        regs.z = ((BYTE)(dst)) == 0;
                   1379:        regs.n = ((BYTE)(dst)) < 0;
                   1380:        put_byte(srca,dst);
                   1381: }}}}
                   1382: void op_4640(UWORD opcode)
                   1383: {
                   1384:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1385: {{     WORD src = regs.d[srcreg];
                   1386: {      ULONG dst = ~src;
                   1387:        regs.v = regs.c = 0;
                   1388:        regs.z = ((WORD)(dst)) == 0;
                   1389:        regs.n = ((WORD)(dst)) < 0;
                   1390:        regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (dst) & 0xffff;
                   1391: }}}}
                   1392: void op_4650(UWORD opcode)
                   1393: {
                   1394:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1395: {{     CPTR srca = regs.a[srcreg];
                   1396:        WORD src = get_word(srca);
                   1397: {      ULONG dst = ~src;
                   1398:        regs.v = regs.c = 0;
                   1399:        regs.z = ((WORD)(dst)) == 0;
                   1400:        regs.n = ((WORD)(dst)) < 0;
                   1401:        put_word(srca,dst);
                   1402: }}}}
                   1403: void op_4658(UWORD opcode)
                   1404: {
                   1405:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1406: {{     CPTR srca = regs.a[srcreg];
                   1407:        WORD src = get_word(srca);
                   1408: {      regs.a[srcreg] += 2;
                   1409: {      ULONG dst = ~src;
                   1410:        regs.v = regs.c = 0;
                   1411:        regs.z = ((WORD)(dst)) == 0;
                   1412:        regs.n = ((WORD)(dst)) < 0;
                   1413:        put_word(srca,dst);
                   1414: }}}}}
                   1415: void op_4660(UWORD opcode)
                   1416: {
                   1417:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1418: {{     regs.a[srcreg] -= 2;
                   1419: {      CPTR srca = regs.a[srcreg];
                   1420:        WORD src = get_word(srca);
                   1421: {      ULONG dst = ~src;
                   1422:        regs.v = regs.c = 0;
                   1423:        regs.z = ((WORD)(dst)) == 0;
                   1424:        regs.n = ((WORD)(dst)) < 0;
                   1425:        put_word(srca,dst);
                   1426: }}}}}
                   1427: void op_4668(UWORD opcode)
                   1428: {
                   1429:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1430: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   1431:        WORD src = get_word(srca);
                   1432: {      ULONG dst = ~src;
                   1433:        regs.v = regs.c = 0;
                   1434:        regs.z = ((WORD)(dst)) == 0;
                   1435:        regs.n = ((WORD)(dst)) < 0;
                   1436:        put_word(srca,dst);
                   1437: }}}}
                   1438: void op_4670(UWORD opcode)
                   1439: {
                   1440:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1441: {{     CPTR srca = regs.a[srcreg];
                   1442:        UWORD srcdp = nextiword();
                   1443:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1444: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1445:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1446:        srca += srcdpr;
                   1447: {      WORD src = get_word(srca);
                   1448: {      ULONG dst = ~src;
                   1449:        regs.v = regs.c = 0;
                   1450:        regs.z = ((WORD)(dst)) == 0;
                   1451:        regs.n = ((WORD)(dst)) < 0;
                   1452:        put_word(srca,dst);
                   1453: }}}}}}
                   1454: void op_4678(UWORD opcode)
                   1455: {
                   1456: {{     CPTR srca = (LONG)(WORD)nextiword();
                   1457:        WORD src = get_word(srca);
                   1458: {      ULONG dst = ~src;
                   1459:        regs.v = regs.c = 0;
                   1460:        regs.z = ((WORD)(dst)) == 0;
                   1461:        regs.n = ((WORD)(dst)) < 0;
                   1462:        put_word(srca,dst);
                   1463: }}}}
                   1464: void op_4679(UWORD opcode)
                   1465: {
                   1466: {{     CPTR srca = nextilong();
                   1467:        WORD src = get_word(srca);
                   1468: {      ULONG dst = ~src;
                   1469:        regs.v = regs.c = 0;
                   1470:        regs.z = ((WORD)(dst)) == 0;
                   1471:        regs.n = ((WORD)(dst)) < 0;
                   1472:        put_word(srca,dst);
                   1473: }}}}
                   1474: void op_4680(UWORD opcode)
                   1475: {
                   1476:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1477: {{     LONG src = regs.d[srcreg];
                   1478: {      ULONG dst = ~src;
                   1479:        regs.v = regs.c = 0;
                   1480:        regs.z = ((LONG)(dst)) == 0;
                   1481:        regs.n = ((LONG)(dst)) < 0;
                   1482:        regs.d[srcreg] = (dst);
                   1483: }}}}
                   1484: void op_4690(UWORD opcode)
                   1485: {
                   1486:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1487: {{     CPTR srca = regs.a[srcreg];
                   1488:        LONG src = get_long(srca);
                   1489: {      ULONG dst = ~src;
                   1490:        regs.v = regs.c = 0;
                   1491:        regs.z = ((LONG)(dst)) == 0;
                   1492:        regs.n = ((LONG)(dst)) < 0;
                   1493:        put_long(srca,dst);
                   1494: }}}}
                   1495: void op_4698(UWORD opcode)
                   1496: {
                   1497:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1498: {{     CPTR srca = regs.a[srcreg];
                   1499:        LONG src = get_long(srca);
                   1500: {      regs.a[srcreg] += 4;
                   1501: {      ULONG dst = ~src;
                   1502:        regs.v = regs.c = 0;
                   1503:        regs.z = ((LONG)(dst)) == 0;
                   1504:        regs.n = ((LONG)(dst)) < 0;
                   1505:        put_long(srca,dst);
                   1506: }}}}}
                   1507: void op_46a0(UWORD opcode)
                   1508: {
                   1509:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1510: {{     regs.a[srcreg] -= 4;
                   1511: {      CPTR srca = regs.a[srcreg];
                   1512:        LONG src = get_long(srca);
                   1513: {      ULONG dst = ~src;
                   1514:        regs.v = regs.c = 0;
                   1515:        regs.z = ((LONG)(dst)) == 0;
                   1516:        regs.n = ((LONG)(dst)) < 0;
                   1517:        put_long(srca,dst);
                   1518: }}}}}
                   1519: void op_46a8(UWORD opcode)
                   1520: {
                   1521:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1522: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   1523:        LONG src = get_long(srca);
                   1524: {      ULONG dst = ~src;
                   1525:        regs.v = regs.c = 0;
                   1526:        regs.z = ((LONG)(dst)) == 0;
                   1527:        regs.n = ((LONG)(dst)) < 0;
                   1528:        put_long(srca,dst);
                   1529: }}}}
                   1530: void op_46b0(UWORD opcode)
                   1531: {
                   1532:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1533: {{     CPTR srca = regs.a[srcreg];
                   1534:        UWORD srcdp = nextiword();
                   1535:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1536: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1537:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1538:        srca += srcdpr;
                   1539: {      LONG src = get_long(srca);
                   1540: {      ULONG dst = ~src;
                   1541:        regs.v = regs.c = 0;
                   1542:        regs.z = ((LONG)(dst)) == 0;
                   1543:        regs.n = ((LONG)(dst)) < 0;
                   1544:        put_long(srca,dst);
                   1545: }}}}}}
                   1546: void op_46b8(UWORD opcode)
                   1547: {
                   1548: {{     CPTR srca = (LONG)(WORD)nextiword();
                   1549:        LONG src = get_long(srca);
                   1550: {      ULONG dst = ~src;
                   1551:        regs.v = regs.c = 0;
                   1552:        regs.z = ((LONG)(dst)) == 0;
                   1553:        regs.n = ((LONG)(dst)) < 0;
                   1554:        put_long(srca,dst);
                   1555: }}}}
                   1556: void op_46b9(UWORD opcode)
                   1557: {
                   1558: {{     CPTR srca = nextilong();
                   1559:        LONG src = get_long(srca);
                   1560: {      ULONG dst = ~src;
                   1561:        regs.v = regs.c = 0;
                   1562:        regs.z = ((LONG)(dst)) == 0;
                   1563:        regs.n = ((LONG)(dst)) < 0;
                   1564:        put_long(srca,dst);
                   1565: }}}}
                   1566: void op_46c0(UWORD opcode)
                   1567: {
                   1568:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1569: {      if (!regs.s) { regs.pc_p--; Exception(8); } else
                   1570: {{     WORD src = regs.d[srcreg];
                   1571:        regs.sr = src;
                   1572:        MakeFromSR();
                   1573: }}}}
                   1574: void op_46d0(UWORD opcode)
                   1575: {
                   1576:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1577: {      if (!regs.s) { regs.pc_p--; Exception(8); } else
                   1578: {{     CPTR srca = regs.a[srcreg];
                   1579:        WORD src = get_word(srca);
                   1580:        regs.sr = src;
                   1581:        MakeFromSR();
                   1582: }}}}
                   1583: void op_46d8(UWORD opcode)
                   1584: {
                   1585:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1586: {      if (!regs.s) { regs.pc_p--; Exception(8); } else
                   1587: {{     CPTR srca = regs.a[srcreg];
                   1588:        WORD src = get_word(srca);
                   1589: {      regs.a[srcreg] += 2;
                   1590:        regs.sr = src;
                   1591:        MakeFromSR();
                   1592: }}}}}
                   1593: void op_46e0(UWORD opcode)
                   1594: {
                   1595:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1596: {      if (!regs.s) { regs.pc_p--; Exception(8); } else
                   1597: {{     regs.a[srcreg] -= 2;
                   1598: {      CPTR srca = regs.a[srcreg];
                   1599:        WORD src = get_word(srca);
                   1600:        regs.sr = src;
                   1601:        MakeFromSR();
                   1602: }}}}}
                   1603: void op_46e8(UWORD opcode)
                   1604: {
                   1605:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1606: {      if (!regs.s) { regs.pc_p--; Exception(8); } else
                   1607: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   1608:        WORD src = get_word(srca);
                   1609:        regs.sr = src;
                   1610:        MakeFromSR();
                   1611: }}}}
                   1612: void op_46f0(UWORD opcode)
                   1613: {
                   1614:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1615: {      if (!regs.s) { regs.pc_p--; Exception(8); } else
                   1616: {{     CPTR srca = regs.a[srcreg];
                   1617:        UWORD srcdp = nextiword();
                   1618:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1619: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1620:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1621:        srca += srcdpr;
                   1622: {      WORD src = get_word(srca);
                   1623:        regs.sr = src;
                   1624:        MakeFromSR();
                   1625: }}}}}}
                   1626: void op_46f8(UWORD opcode)
                   1627: {
                   1628: {      if (!regs.s) { regs.pc_p--; Exception(8); } else
                   1629: {{     CPTR srca = (LONG)(WORD)nextiword();
                   1630:        WORD src = get_word(srca);
                   1631:        regs.sr = src;
                   1632:        MakeFromSR();
                   1633: }}}}
                   1634: void op_46f9(UWORD opcode)
                   1635: {
                   1636: {      if (!regs.s) { regs.pc_p--; Exception(8); } else
                   1637: {{     CPTR srca = nextilong();
                   1638:        WORD src = get_word(srca);
                   1639:        regs.sr = src;
                   1640:        MakeFromSR();
                   1641: }}}}
                   1642: void op_46fa(UWORD opcode)
                   1643: {
                   1644: {      if (!regs.s) { regs.pc_p--; Exception(8); } else
                   1645: {{     CPTR srca = m68k_getpc();
                   1646:        srca += (LONG)(WORD)nextiword();
                   1647: {      WORD src = get_word(srca);
                   1648:        regs.sr = src;
                   1649:        MakeFromSR();
                   1650: }}}}}
                   1651: void op_46fb(UWORD opcode)
                   1652: {
                   1653: {      if (!regs.s) { regs.pc_p--; Exception(8); } else
                   1654: {{     CPTR srca = m68k_getpc();
                   1655:        UWORD srcdp = nextiword();
                   1656:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1657: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1658:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1659:        srca += srcdpr;
                   1660: {      WORD src = get_word(srca);
                   1661:        regs.sr = src;
                   1662:        MakeFromSR();
                   1663: }}}}}}
                   1664: void op_46fc(UWORD opcode)
                   1665: {
                   1666: {      if (!regs.s) { regs.pc_p--; Exception(8); } else
                   1667: {{     WORD src = nextiword();
                   1668:        regs.sr = src;
                   1669:        MakeFromSR();
                   1670: }}}}
                   1671: void op_4800(UWORD opcode)
                   1672: {
                   1673:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1674: {{     BYTE src = regs.d[srcreg];
                   1675: {      UWORD newv = - src - regs.x;
                   1676:        if ((newv & 0xF) > 9) newv-=6;
                   1677:        regs.c = regs.x = (newv & 0x1F0) > 0x90;
                   1678:        if (regs.c) newv -= 0x60;
                   1679:        if (newv != 0) regs.z = 0;
                   1680:        regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (newv) & 0xff;
                   1681: }}}}
                   1682: void op_4810(UWORD opcode)
                   1683: {
                   1684:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1685: {{     CPTR srca = regs.a[srcreg];
                   1686:        BYTE src = get_byte(srca);
                   1687: {      UWORD newv = - src - regs.x;
                   1688:        if ((newv & 0xF) > 9) newv-=6;
                   1689:        regs.c = regs.x = (newv & 0x1F0) > 0x90;
                   1690:        if (regs.c) newv -= 0x60;
                   1691:        if (newv != 0) regs.z = 0;
                   1692:        put_byte(srca,newv);
                   1693: }}}}
                   1694: void op_4818(UWORD opcode)
                   1695: {
                   1696:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1697: {{     CPTR srca = regs.a[srcreg];
                   1698:        BYTE src = get_byte(srca);
                   1699: {      regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
                   1700: {      UWORD newv = - src - regs.x;
                   1701:        if ((newv & 0xF) > 9) newv-=6;
                   1702:        regs.c = regs.x = (newv & 0x1F0) > 0x90;
                   1703:        if (regs.c) newv -= 0x60;
                   1704:        if (newv != 0) regs.z = 0;
                   1705:        put_byte(srca,newv);
                   1706: }}}}}
                   1707: void op_4820(UWORD opcode)
                   1708: {
                   1709:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1710: {{     regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
                   1711: {      CPTR srca = regs.a[srcreg];
                   1712:        BYTE src = get_byte(srca);
                   1713: {      UWORD newv = - src - regs.x;
                   1714:        if ((newv & 0xF) > 9) newv-=6;
                   1715:        regs.c = regs.x = (newv & 0x1F0) > 0x90;
                   1716:        if (regs.c) newv -= 0x60;
                   1717:        if (newv != 0) regs.z = 0;
                   1718:        put_byte(srca,newv);
                   1719: }}}}}
                   1720: void op_4828(UWORD opcode)
                   1721: {
                   1722:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1723: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   1724:        BYTE src = get_byte(srca);
                   1725: {      UWORD newv = - src - regs.x;
                   1726:        if ((newv & 0xF) > 9) newv-=6;
                   1727:        regs.c = regs.x = (newv & 0x1F0) > 0x90;
                   1728:        if (regs.c) newv -= 0x60;
                   1729:        if (newv != 0) regs.z = 0;
                   1730:        put_byte(srca,newv);
                   1731: }}}}
                   1732: void op_4830(UWORD opcode)
                   1733: {
                   1734:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1735: {{     CPTR srca = regs.a[srcreg];
                   1736:        UWORD srcdp = nextiword();
                   1737:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1738: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1739:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1740:        srca += srcdpr;
                   1741: {      BYTE src = get_byte(srca);
                   1742: {      UWORD newv = - src - regs.x;
                   1743:        if ((newv & 0xF) > 9) newv-=6;
                   1744:        regs.c = regs.x = (newv & 0x1F0) > 0x90;
                   1745:        if (regs.c) newv -= 0x60;
                   1746:        if (newv != 0) regs.z = 0;
                   1747:        put_byte(srca,newv);
                   1748: }}}}}}
                   1749: void op_4838(UWORD opcode)
                   1750: {
                   1751: {{     CPTR srca = (LONG)(WORD)nextiword();
                   1752:        BYTE src = get_byte(srca);
                   1753: {      UWORD newv = - src - regs.x;
                   1754:        if ((newv & 0xF) > 9) newv-=6;
                   1755:        regs.c = regs.x = (newv & 0x1F0) > 0x90;
                   1756:        if (regs.c) newv -= 0x60;
                   1757:        if (newv != 0) regs.z = 0;
                   1758:        put_byte(srca,newv);
                   1759: }}}}
                   1760: void op_4839(UWORD opcode)
                   1761: {
                   1762: {{     CPTR srca = nextilong();
                   1763:        BYTE src = get_byte(srca);
                   1764: {      UWORD newv = - src - regs.x;
                   1765:        if ((newv & 0xF) > 9) newv-=6;
                   1766:        regs.c = regs.x = (newv & 0x1F0) > 0x90;
                   1767:        if (regs.c) newv -= 0x60;
                   1768:        if (newv != 0) regs.z = 0;
                   1769:        put_byte(srca,newv);
                   1770: }}}}
                   1771: void op_4840(UWORD opcode)
                   1772: {
                   1773:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1774: {{     LONG src = regs.d[srcreg];
                   1775: {      ULONG dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16);
                   1776:        regs.v = regs.c = 0;
                   1777:        regs.z = ((LONG)(dst)) == 0;
                   1778:        regs.n = ((LONG)(dst)) < 0;
                   1779:        regs.d[srcreg] = (dst);
                   1780: }}}}
                   1781: void op_4850(UWORD opcode)
                   1782: {
                   1783:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1784: {{     CPTR srca = regs.a[srcreg];
                   1785: {      regs.a[7] -= 4;
                   1786: {      CPTR dsta = regs.a[7];
                   1787:        put_long(dsta,srca);
                   1788: }}}}}
                   1789: void op_4858(UWORD opcode)
                   1790: {
                   1791:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1792: {{     CPTR srca = regs.a[srcreg];
                   1793: {      regs.a[srcreg] += 4;
                   1794: {      regs.a[7] -= 4;
                   1795: {      CPTR dsta = regs.a[7];
                   1796:        put_long(dsta,srca);
                   1797: }}}}}}
                   1798: void op_4860(UWORD opcode)
                   1799: {
                   1800:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1801: {{     regs.a[srcreg] -= 4;
                   1802: {      CPTR srca = regs.a[srcreg];
                   1803: {      regs.a[7] -= 4;
                   1804: {      CPTR dsta = regs.a[7];
                   1805:        put_long(dsta,srca);
                   1806: }}}}}}
                   1807: void op_4868(UWORD opcode)
                   1808: {
                   1809:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1810: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   1811: {      regs.a[7] -= 4;
                   1812: {      CPTR dsta = regs.a[7];
                   1813:        put_long(dsta,srca);
                   1814: }}}}}
                   1815: void op_4870(UWORD opcode)
                   1816: {
                   1817:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1818: {{     CPTR srca = regs.a[srcreg];
                   1819:        UWORD srcdp = nextiword();
                   1820:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1821: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1822:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1823:        srca += srcdpr;
                   1824: {      regs.a[7] -= 4;
                   1825: {      CPTR dsta = regs.a[7];
                   1826:        put_long(dsta,srca);
                   1827: }}}}}}
                   1828: void op_4878(UWORD opcode)
                   1829: {
                   1830: {{     CPTR srca = (LONG)(WORD)nextiword();
                   1831: {      regs.a[7] -= 4;
                   1832: {      CPTR dsta = regs.a[7];
                   1833:        put_long(dsta,srca);
                   1834: }}}}}
                   1835: void op_4879(UWORD opcode)
                   1836: {
                   1837: {{     CPTR srca = nextilong();
                   1838: {      regs.a[7] -= 4;
                   1839: {      CPTR dsta = regs.a[7];
                   1840:        put_long(dsta,srca);
                   1841: }}}}}
                   1842: void op_487a(UWORD opcode)
                   1843: {
                   1844: {{     CPTR srca = m68k_getpc();
                   1845:        srca += (LONG)(WORD)nextiword();
                   1846: {      regs.a[7] -= 4;
                   1847: {      CPTR dsta = regs.a[7];
                   1848:        put_long(dsta,srca);
                   1849: }}}}}
                   1850: void op_487b(UWORD opcode)
                   1851: {
                   1852: {{     CPTR srca = m68k_getpc();
                   1853:        UWORD srcdp = nextiword();
                   1854:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1855: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1856:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1857:        srca += srcdpr;
                   1858: {      regs.a[7] -= 4;
                   1859: {      CPTR dsta = regs.a[7];
                   1860:        put_long(dsta,srca);
                   1861: }}}}}}
                   1862: void op_4880(UWORD opcode)
                   1863: {
                   1864:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1865: {{     WORD src = regs.d[srcreg];
                   1866: {      ULONG dst = (LONG)(BYTE)src;
                   1867:        regs.v = regs.c = 0;
                   1868:        regs.z = ((WORD)(dst)) == 0;
                   1869:        regs.n = ((WORD)(dst)) < 0;
                   1870:        regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (dst) & 0xffff;
                   1871: }}}}
                   1872: void op_4890(UWORD opcode)
                   1873: {
                   1874:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1875: {      UWORD mask = nextiword(), bitmask = mask;
                   1876: {      CPTR srca = regs.a[srcreg];
                   1877: {      int i, bitcnt = 0;
                   1878:        ULONG rd[8], ra[8];
                   1879:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   1880:        for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
                   1881:        for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
                   1882:        for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
                   1883: }}}}
                   1884: void op_4898(UWORD opcode)
                   1885: {
                   1886:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1887: {      UWORD mask = nextiword(), bitmask = mask;
                   1888: {      CPTR srca = regs.a[srcreg];
                   1889: {      int i, bitcnt = 0;
                   1890:        ULONG rd[8], ra[8];
                   1891:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   1892:        for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
                   1893:        for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
                   1894:        for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
                   1895: }}}}
                   1896: void op_48a0(UWORD opcode)
                   1897: {
                   1898:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1899: {      UWORD mask = nextiword(), bitmask = mask;
                   1900: {{     CPTR srca = regs.a[srcreg];
                   1901: {      int i, bitcnt = 0;
                   1902:        ULONG rd[8], ra[8];
                   1903:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   1904:        for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
                   1905:        srca -= 2*bitcnt;
                   1906:        regs.a[srcreg] = srca;
                   1907:        for(i=0;i<8;i++) { if (mask & 32768) { put_word(srca, rd[i]); srca += 2; } mask <<= 1; }
                   1908:        for(i=0;i<8;i++) { if (mask & 32768) { put_word(srca, ra[i]); srca += 2; } mask <<= 1; }
                   1909: }}}}}
                   1910: void op_48a8(UWORD opcode)
                   1911: {
                   1912:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1913: {      UWORD mask = nextiword(), bitmask = mask;
                   1914: {      CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   1915: {      int i, bitcnt = 0;
                   1916:        ULONG rd[8], ra[8];
                   1917:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   1918:        for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
                   1919:        for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
                   1920:        for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
                   1921: }}}}
                   1922: void op_48b0(UWORD opcode)
                   1923: {
                   1924:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1925: {      UWORD mask = nextiword(), bitmask = mask;
                   1926: {      CPTR srca = regs.a[srcreg];
                   1927:        UWORD srcdp = nextiword();
                   1928:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   1929: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   1930:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   1931:        srca += srcdpr;
                   1932: {      int i, bitcnt = 0;
                   1933:        ULONG rd[8], ra[8];
                   1934:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   1935:        for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
                   1936:        for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
                   1937:        for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
                   1938: }}}}}
                   1939: void op_48b8(UWORD opcode)
                   1940: {
                   1941: {      UWORD mask = nextiword(), bitmask = mask;
                   1942: {      CPTR srca = (LONG)(WORD)nextiword();
                   1943: {      int i, bitcnt = 0;
                   1944:        ULONG rd[8], ra[8];
                   1945:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   1946:        for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
                   1947:        for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
                   1948:        for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
                   1949: }}}}
                   1950: void op_48b9(UWORD opcode)
                   1951: {
                   1952: {      UWORD mask = nextiword(), bitmask = mask;
                   1953: {      CPTR srca = nextilong();
                   1954: {      int i, bitcnt = 0;
                   1955:        ULONG rd[8], ra[8];
                   1956:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   1957:        for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
                   1958:        for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
                   1959:        for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
                   1960: }}}}
                   1961: void op_48c0(UWORD opcode)
                   1962: {
                   1963:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1964: {{     LONG src = regs.d[srcreg];
                   1965: {      ULONG dst = (LONG)(WORD)src;
                   1966:        regs.v = regs.c = 0;
                   1967:        regs.z = ((LONG)(dst)) == 0;
                   1968:        regs.n = ((LONG)(dst)) < 0;
                   1969:        regs.d[srcreg] = (dst);
                   1970: }}}}
                   1971: void op_48d0(UWORD opcode)
                   1972: {
                   1973:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1974: {      UWORD mask = nextiword(), bitmask = mask;
                   1975: {      CPTR srca = regs.a[srcreg];
                   1976: {      int i, bitcnt = 0;
                   1977:        ULONG rd[8], ra[8];
                   1978:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   1979:        for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
                   1980:        for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
                   1981:        for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
                   1982: }}}}
                   1983: void op_48d8(UWORD opcode)
                   1984: {
                   1985:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1986: {      UWORD mask = nextiword(), bitmask = mask;
                   1987: {      CPTR srca = regs.a[srcreg];
                   1988: {      int i, bitcnt = 0;
                   1989:        ULONG rd[8], ra[8];
                   1990:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   1991:        for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
                   1992:        for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
                   1993:        for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
                   1994: }}}}
                   1995: void op_48e0(UWORD opcode)
                   1996: {
                   1997:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   1998: {      UWORD mask = nextiword(), bitmask = mask;
                   1999: {{     CPTR srca = regs.a[srcreg];
                   2000: {      int i, bitcnt = 0;
                   2001:        ULONG rd[8], ra[8];
                   2002:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2003:        for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
                   2004:        srca -= 4*bitcnt;
                   2005:        regs.a[srcreg] = srca;
                   2006:        for(i=0;i<8;i++) { if (mask & 32768) { put_long(srca, rd[i]); srca += 4; } mask <<= 1; }
                   2007:        for(i=0;i<8;i++) { if (mask & 32768) { put_long(srca, ra[i]); srca += 4; } mask <<= 1; }
                   2008: }}}}}
                   2009: void op_48e8(UWORD opcode)
                   2010: {
                   2011:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2012: {      UWORD mask = nextiword(), bitmask = mask;
                   2013: {      CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   2014: {      int i, bitcnt = 0;
                   2015:        ULONG rd[8], ra[8];
                   2016:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2017:        for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
                   2018:        for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
                   2019:        for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
                   2020: }}}}
                   2021: void op_48f0(UWORD opcode)
                   2022: {
                   2023:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2024: {      UWORD mask = nextiword(), bitmask = mask;
                   2025: {      CPTR srca = regs.a[srcreg];
                   2026:        UWORD srcdp = nextiword();
                   2027:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   2028: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   2029:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   2030:        srca += srcdpr;
                   2031: {      int i, bitcnt = 0;
                   2032:        ULONG rd[8], ra[8];
                   2033:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2034:        for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
                   2035:        for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
                   2036:        for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
                   2037: }}}}}
                   2038: void op_48f8(UWORD opcode)
                   2039: {
                   2040: {      UWORD mask = nextiword(), bitmask = mask;
                   2041: {      CPTR srca = (LONG)(WORD)nextiword();
                   2042: {      int i, bitcnt = 0;
                   2043:        ULONG rd[8], ra[8];
                   2044:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2045:        for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
                   2046:        for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
                   2047:        for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
                   2048: }}}}
                   2049: void op_48f9(UWORD opcode)
                   2050: {
                   2051: {      UWORD mask = nextiword(), bitmask = mask;
                   2052: {      CPTR srca = nextilong();
                   2053: {      int i, bitcnt = 0;
                   2054:        ULONG rd[8], ra[8];
                   2055:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2056:        for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
                   2057:        for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
                   2058:        for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
                   2059: }}}}
                   2060: void op_4a00(UWORD opcode)
                   2061: {
                   2062:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2063: {{     BYTE src = regs.d[srcreg];
                   2064:        regs.v = regs.c = 0;
                   2065:        regs.z = ((BYTE)(src)) == 0;
                   2066:        regs.n = ((BYTE)(src)) < 0;
                   2067: }}}
                   2068: void op_4a10(UWORD opcode)
                   2069: {
                   2070:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2071: {{     CPTR srca = regs.a[srcreg];
                   2072:        BYTE src = get_byte(srca);
                   2073:        regs.v = regs.c = 0;
                   2074:        regs.z = ((BYTE)(src)) == 0;
                   2075:        regs.n = ((BYTE)(src)) < 0;
                   2076: }}}
                   2077: void op_4a18(UWORD opcode)
                   2078: {
                   2079:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2080: {{     CPTR srca = regs.a[srcreg];
                   2081:        BYTE src = get_byte(srca);
                   2082: {      regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
                   2083:        regs.v = regs.c = 0;
                   2084:        regs.z = ((BYTE)(src)) == 0;
                   2085:        regs.n = ((BYTE)(src)) < 0;
                   2086: }}}}
                   2087: void op_4a20(UWORD opcode)
                   2088: {
                   2089:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2090: {{     regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
                   2091: {      CPTR srca = regs.a[srcreg];
                   2092:        BYTE src = get_byte(srca);
                   2093:        regs.v = regs.c = 0;
                   2094:        regs.z = ((BYTE)(src)) == 0;
                   2095:        regs.n = ((BYTE)(src)) < 0;
                   2096: }}}}
                   2097: void op_4a28(UWORD opcode)
                   2098: {
                   2099:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2100: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   2101:        BYTE src = get_byte(srca);
                   2102:        regs.v = regs.c = 0;
                   2103:        regs.z = ((BYTE)(src)) == 0;
                   2104:        regs.n = ((BYTE)(src)) < 0;
                   2105: }}}
                   2106: void op_4a30(UWORD opcode)
                   2107: {
                   2108:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2109: {{     CPTR srca = regs.a[srcreg];
                   2110:        UWORD srcdp = nextiword();
                   2111:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   2112: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   2113:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   2114:        srca += srcdpr;
                   2115: {      BYTE src = get_byte(srca);
                   2116:        regs.v = regs.c = 0;
                   2117:        regs.z = ((BYTE)(src)) == 0;
                   2118:        regs.n = ((BYTE)(src)) < 0;
                   2119: }}}}}
                   2120: void op_4a38(UWORD opcode)
                   2121: {
                   2122: {{     CPTR srca = (LONG)(WORD)nextiword();
                   2123:        BYTE src = get_byte(srca);
                   2124:        regs.v = regs.c = 0;
                   2125:        regs.z = ((BYTE)(src)) == 0;
                   2126:        regs.n = ((BYTE)(src)) < 0;
                   2127: }}}
                   2128: void op_4a39(UWORD opcode)
                   2129: {
                   2130: {{     CPTR srca = nextilong();
                   2131:        BYTE src = get_byte(srca);
                   2132:        regs.v = regs.c = 0;
                   2133:        regs.z = ((BYTE)(src)) == 0;
                   2134:        regs.n = ((BYTE)(src)) < 0;
                   2135: }}}
                   2136: void op_4a40(UWORD opcode)
                   2137: {
                   2138:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2139: {{     WORD src = regs.d[srcreg];
                   2140:        regs.v = regs.c = 0;
                   2141:        regs.z = ((WORD)(src)) == 0;
                   2142:        regs.n = ((WORD)(src)) < 0;
                   2143: }}}
                   2144: void op_4a48(UWORD opcode)
                   2145: {
                   2146:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2147: {{     WORD src = regs.a[srcreg];
                   2148:        regs.v = regs.c = 0;
                   2149:        regs.z = ((WORD)(src)) == 0;
                   2150:        regs.n = ((WORD)(src)) < 0;
                   2151: }}}
                   2152: void op_4a50(UWORD opcode)
                   2153: {
                   2154:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2155: {{     CPTR srca = regs.a[srcreg];
                   2156:        WORD src = get_word(srca);
                   2157:        regs.v = regs.c = 0;
                   2158:        regs.z = ((WORD)(src)) == 0;
                   2159:        regs.n = ((WORD)(src)) < 0;
                   2160: }}}
                   2161: void op_4a58(UWORD opcode)
                   2162: {
                   2163:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2164: {{     CPTR srca = regs.a[srcreg];
                   2165:        WORD src = get_word(srca);
                   2166: {      regs.a[srcreg] += 2;
                   2167:        regs.v = regs.c = 0;
                   2168:        regs.z = ((WORD)(src)) == 0;
                   2169:        regs.n = ((WORD)(src)) < 0;
                   2170: }}}}
                   2171: void op_4a60(UWORD opcode)
                   2172: {
                   2173:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2174: {{     regs.a[srcreg] -= 2;
                   2175: {      CPTR srca = regs.a[srcreg];
                   2176:        WORD src = get_word(srca);
                   2177:        regs.v = regs.c = 0;
                   2178:        regs.z = ((WORD)(src)) == 0;
                   2179:        regs.n = ((WORD)(src)) < 0;
                   2180: }}}}
                   2181: void op_4a68(UWORD opcode)
                   2182: {
                   2183:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2184: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   2185:        WORD src = get_word(srca);
                   2186:        regs.v = regs.c = 0;
                   2187:        regs.z = ((WORD)(src)) == 0;
                   2188:        regs.n = ((WORD)(src)) < 0;
                   2189: }}}
                   2190: void op_4a70(UWORD opcode)
                   2191: {
                   2192:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2193: {{     CPTR srca = regs.a[srcreg];
                   2194:        UWORD srcdp = nextiword();
                   2195:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   2196: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   2197:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   2198:        srca += srcdpr;
                   2199: {      WORD src = get_word(srca);
                   2200:        regs.v = regs.c = 0;
                   2201:        regs.z = ((WORD)(src)) == 0;
                   2202:        regs.n = ((WORD)(src)) < 0;
                   2203: }}}}}
                   2204: void op_4a78(UWORD opcode)
                   2205: {
                   2206: {{     CPTR srca = (LONG)(WORD)nextiword();
                   2207:        WORD src = get_word(srca);
                   2208:        regs.v = regs.c = 0;
                   2209:        regs.z = ((WORD)(src)) == 0;
                   2210:        regs.n = ((WORD)(src)) < 0;
                   2211: }}}
                   2212: void op_4a79(UWORD opcode)
                   2213: {
                   2214: {{     CPTR srca = nextilong();
                   2215:        WORD src = get_word(srca);
                   2216:        regs.v = regs.c = 0;
                   2217:        regs.z = ((WORD)(src)) == 0;
                   2218:        regs.n = ((WORD)(src)) < 0;
                   2219: }}}
                   2220: void op_4a80(UWORD opcode)
                   2221: {
                   2222:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2223: {{     LONG src = regs.d[srcreg];
                   2224:        regs.v = regs.c = 0;
                   2225:        regs.z = ((LONG)(src)) == 0;
                   2226:        regs.n = ((LONG)(src)) < 0;
                   2227: }}}
                   2228: void op_4a88(UWORD opcode)
                   2229: {
                   2230:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2231: {{     LONG src = regs.a[srcreg];
                   2232:        regs.v = regs.c = 0;
                   2233:        regs.z = ((LONG)(src)) == 0;
                   2234:        regs.n = ((LONG)(src)) < 0;
                   2235: }}}
                   2236: void op_4a90(UWORD opcode)
                   2237: {
                   2238:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2239: {{     CPTR srca = regs.a[srcreg];
                   2240:        LONG src = get_long(srca);
                   2241:        regs.v = regs.c = 0;
                   2242:        regs.z = ((LONG)(src)) == 0;
                   2243:        regs.n = ((LONG)(src)) < 0;
                   2244: }}}
                   2245: void op_4a98(UWORD opcode)
                   2246: {
                   2247:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2248: {{     CPTR srca = regs.a[srcreg];
                   2249:        LONG src = get_long(srca);
                   2250: {      regs.a[srcreg] += 4;
                   2251:        regs.v = regs.c = 0;
                   2252:        regs.z = ((LONG)(src)) == 0;
                   2253:        regs.n = ((LONG)(src)) < 0;
                   2254: }}}}
                   2255: void op_4aa0(UWORD opcode)
                   2256: {
                   2257:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2258: {{     regs.a[srcreg] -= 4;
                   2259: {      CPTR srca = regs.a[srcreg];
                   2260:        LONG src = get_long(srca);
                   2261:        regs.v = regs.c = 0;
                   2262:        regs.z = ((LONG)(src)) == 0;
                   2263:        regs.n = ((LONG)(src)) < 0;
                   2264: }}}}
                   2265: void op_4aa8(UWORD opcode)
                   2266: {
                   2267:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2268: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   2269:        LONG src = get_long(srca);
                   2270:        regs.v = regs.c = 0;
                   2271:        regs.z = ((LONG)(src)) == 0;
                   2272:        regs.n = ((LONG)(src)) < 0;
                   2273: }}}
                   2274: void op_4ab0(UWORD opcode)
                   2275: {
                   2276:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2277: {{     CPTR srca = regs.a[srcreg];
                   2278:        UWORD srcdp = nextiword();
                   2279:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   2280: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   2281:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   2282:        srca += srcdpr;
                   2283: {      LONG src = get_long(srca);
                   2284:        regs.v = regs.c = 0;
                   2285:        regs.z = ((LONG)(src)) == 0;
                   2286:        regs.n = ((LONG)(src)) < 0;
                   2287: }}}}}
                   2288: void op_4ab8(UWORD opcode)
                   2289: {
                   2290: {{     CPTR srca = (LONG)(WORD)nextiword();
                   2291:        LONG src = get_long(srca);
                   2292:        regs.v = regs.c = 0;
                   2293:        regs.z = ((LONG)(src)) == 0;
                   2294:        regs.n = ((LONG)(src)) < 0;
                   2295: }}}
                   2296: void op_4ab9(UWORD opcode)
                   2297: {
                   2298: {{     CPTR srca = nextilong();
                   2299:        LONG src = get_long(srca);
                   2300:        regs.v = regs.c = 0;
                   2301:        regs.z = ((LONG)(src)) == 0;
                   2302:        regs.n = ((LONG)(src)) < 0;
                   2303: }}}
                   2304: void op_4c90(UWORD opcode)
                   2305: {
                   2306:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2307: {      UWORD mask = nextiword(), bitmask = mask;
                   2308: {      CPTR srca = regs.a[srcreg];
                   2309: {      int i, bitcnt = 0;
                   2310:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2311:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2312:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2313: }}}}
                   2314: void op_4c98(UWORD opcode)
                   2315: {
                   2316:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2317: {      UWORD mask = nextiword(), bitmask = mask;
                   2318: {      CPTR srca = regs.a[srcreg];
                   2319: {      int i, bitcnt = 0;
                   2320:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2321:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2322:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2323:        regs.a[srcreg] = srca;
                   2324: }}}}
                   2325: void op_4ca0(UWORD opcode)
                   2326: {
                   2327:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2328: {      UWORD mask = nextiword(), bitmask = mask;
                   2329: {{     CPTR srca = regs.a[srcreg];
                   2330: {      int i, bitcnt = 0;
                   2331:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2332:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2333:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2334: }}}}}
                   2335: void op_4ca8(UWORD opcode)
                   2336: {
                   2337:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2338: {      UWORD mask = nextiword(), bitmask = mask;
                   2339: {      CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   2340: {      int i, bitcnt = 0;
                   2341:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2342:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2343:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2344: }}}}
                   2345: void op_4cb0(UWORD opcode)
                   2346: {
                   2347:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2348: {      UWORD mask = nextiword(), bitmask = mask;
                   2349: {      CPTR srca = regs.a[srcreg];
                   2350:        UWORD srcdp = nextiword();
                   2351:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   2352: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   2353:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   2354:        srca += srcdpr;
                   2355: {      int i, bitcnt = 0;
                   2356:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2357:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2358:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2359: }}}}}
                   2360: void op_4cb8(UWORD opcode)
                   2361: {
                   2362: {      UWORD mask = nextiword(), bitmask = mask;
                   2363: {      CPTR srca = (LONG)(WORD)nextiword();
                   2364: {      int i, bitcnt = 0;
                   2365:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2366:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2367:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2368: }}}}
                   2369: void op_4cb9(UWORD opcode)
                   2370: {
                   2371: {      UWORD mask = nextiword(), bitmask = mask;
                   2372: {      CPTR srca = nextilong();
                   2373: {      int i, bitcnt = 0;
                   2374:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2375:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2376:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2377: }}}}
                   2378: void op_4cba(UWORD opcode)
                   2379: {
                   2380: {      UWORD mask = nextiword(), bitmask = mask;
                   2381: {      CPTR srca = m68k_getpc();
                   2382:        srca += (LONG)(WORD)nextiword();
                   2383: {      int i, bitcnt = 0;
                   2384:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2385:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2386:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2387: }}}}
                   2388: void op_4cbb(UWORD opcode)
                   2389: {
                   2390: {      UWORD mask = nextiword(), bitmask = mask;
                   2391: {      CPTR srca = m68k_getpc();
                   2392:        UWORD srcdp = nextiword();
                   2393:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   2394: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   2395:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   2396:        srca += srcdpr;
                   2397: {      int i, bitcnt = 0;
                   2398:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2399:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2400:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
                   2401: }}}}}
                   2402: void op_4cd0(UWORD opcode)
                   2403: {
                   2404:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2405: {      UWORD mask = nextiword(), bitmask = mask;
                   2406: {      CPTR srca = regs.a[srcreg];
                   2407: {      int i, bitcnt = 0;
                   2408:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2409:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2410:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2411: }}}}
                   2412: void op_4cd8(UWORD opcode)
                   2413: {
                   2414:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2415: {      UWORD mask = nextiword(), bitmask = mask;
                   2416: {      CPTR srca = regs.a[srcreg];
                   2417: {      int i, bitcnt = 0;
                   2418:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2419:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2420:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2421:        regs.a[srcreg] = srca;
                   2422: }}}}
                   2423: void op_4ce0(UWORD opcode)
                   2424: {
                   2425:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2426: {      UWORD mask = nextiword(), bitmask = mask;
                   2427: {{     CPTR srca = regs.a[srcreg];
                   2428: {      int i, bitcnt = 0;
                   2429:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2430:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2431:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2432: }}}}}
                   2433: void op_4ce8(UWORD opcode)
                   2434: {
                   2435:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2436: {      UWORD mask = nextiword(), bitmask = mask;
                   2437: {      CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   2438: {      int i, bitcnt = 0;
                   2439:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2440:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2441:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2442: }}}}
                   2443: void op_4cf0(UWORD opcode)
                   2444: {
                   2445:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2446: {      UWORD mask = nextiword(), bitmask = mask;
                   2447: {      CPTR srca = regs.a[srcreg];
                   2448:        UWORD srcdp = nextiword();
                   2449:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   2450: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   2451:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   2452:        srca += srcdpr;
                   2453: {      int i, bitcnt = 0;
                   2454:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2455:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2456:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2457: }}}}}
                   2458: void op_4cf8(UWORD opcode)
                   2459: {
                   2460: {      UWORD mask = nextiword(), bitmask = mask;
                   2461: {      CPTR srca = (LONG)(WORD)nextiword();
                   2462: {      int i, bitcnt = 0;
                   2463:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2464:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2465:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2466: }}}}
                   2467: void op_4cf9(UWORD opcode)
                   2468: {
                   2469: {      UWORD mask = nextiword(), bitmask = mask;
                   2470: {      CPTR srca = nextilong();
                   2471: {      int i, bitcnt = 0;
                   2472:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2473:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2474:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2475: }}}}
                   2476: void op_4cfa(UWORD opcode)
                   2477: {
                   2478: {      UWORD mask = nextiword(), bitmask = mask;
                   2479: {      CPTR srca = m68k_getpc();
                   2480:        srca += (LONG)(WORD)nextiword();
                   2481: {      int i, bitcnt = 0;
                   2482:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2483:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2484:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2485: }}}}
                   2486: void op_4cfb(UWORD opcode)
                   2487: {
                   2488: {      UWORD mask = nextiword(), bitmask = mask;
                   2489: {      CPTR srca = m68k_getpc();
                   2490:        UWORD srcdp = nextiword();
                   2491:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   2492: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   2493:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   2494:        srca += srcdpr;
                   2495: {      int i, bitcnt = 0;
                   2496:        for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
                   2497:        for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2498:        for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
                   2499: }}}}}
                   2500: void op_4e40(UWORD opcode)
                   2501: {
                   2502:        ULONG srcreg = 0;
                   2503: {{     ULONG src = srcreg;
                   2504:        Exception(src+32);
                   2505: }}}
                   2506: void op_4e41(UWORD opcode)
                   2507: {
                   2508:        ULONG srcreg = 1;
                   2509: {{     ULONG src = srcreg;
                   2510:        Exception(src+32);
                   2511: }}}
                   2512: void op_4e42(UWORD opcode)
                   2513: {
                   2514:        ULONG srcreg = 2;
                   2515: {{     ULONG src = srcreg;
                   2516:        Exception(src+32);
                   2517: }}}
                   2518: void op_4e43(UWORD opcode)
                   2519: {
                   2520:        ULONG srcreg = 3;
                   2521: {{     ULONG src = srcreg;
                   2522:        Exception(src+32);
                   2523: }}}
                   2524: void op_4e44(UWORD opcode)
                   2525: {
                   2526:        ULONG srcreg = 4;
                   2527: {{     ULONG src = srcreg;
                   2528:        Exception(src+32);
                   2529: }}}
                   2530: void op_4e45(UWORD opcode)
                   2531: {
                   2532:        ULONG srcreg = 5;
                   2533: {{     ULONG src = srcreg;
                   2534:        Exception(src+32);
                   2535: }}}
                   2536: void op_4e46(UWORD opcode)
                   2537: {
                   2538:        ULONG srcreg = 6;
                   2539: {{     ULONG src = srcreg;
                   2540:        Exception(src+32);
                   2541: }}}
                   2542: void op_4e47(UWORD opcode)
                   2543: {
                   2544:        ULONG srcreg = 7;
                   2545: {{     ULONG src = srcreg;
                   2546:        Exception(src+32);
                   2547: }}}
                   2548: void op_4e48(UWORD opcode)
                   2549: {
                   2550:        ULONG srcreg = 8;
                   2551: {{     ULONG src = srcreg;
                   2552:        Exception(src+32);
                   2553: }}}
                   2554: void op_4e49(UWORD opcode)
                   2555: {
                   2556:        ULONG srcreg = 9;
                   2557: {{     ULONG src = srcreg;
                   2558:        Exception(src+32);
                   2559: }}}
                   2560: void op_4e4a(UWORD opcode)
                   2561: {
                   2562:        ULONG srcreg = 10;
                   2563: {{     ULONG src = srcreg;
                   2564:        Exception(src+32);
                   2565: }}}
                   2566: void op_4e4b(UWORD opcode)
                   2567: {
                   2568:        ULONG srcreg = 11;
                   2569: {{     ULONG src = srcreg;
                   2570:        Exception(src+32);
                   2571: }}}
                   2572: void op_4e4c(UWORD opcode)
                   2573: {
                   2574:        ULONG srcreg = 12;
                   2575: {{     ULONG src = srcreg;
                   2576:        Exception(src+32);
                   2577: }}}
                   2578: void op_4e4d(UWORD opcode)
                   2579: {
                   2580:        ULONG srcreg = 13;
                   2581: {{     ULONG src = srcreg;
                   2582:        Exception(src+32);
                   2583: }}}
                   2584: void op_4e4e(UWORD opcode)
                   2585: {
                   2586:        ULONG srcreg = 14;
                   2587: {{     ULONG src = srcreg;
                   2588:        Exception(src+32);
                   2589: }}}
                   2590: void op_4e4f(UWORD opcode)
                   2591: {
                   2592:        ULONG srcreg = 15;
                   2593: {{     ULONG src = srcreg;
                   2594:        Exception(src+32);
                   2595: }}}
                   2596: void op_4e50(UWORD opcode)
                   2597: {
                   2598:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2599: {{     regs.a[7] -= 4;
                   2600: {      CPTR olda = regs.a[7];
                   2601: {      LONG src = regs.a[srcreg];
                   2602:        put_long(olda,src);
                   2603:        regs.a[srcreg] = (regs.a[7]);
                   2604: {      WORD offs = nextiword();
                   2605:        regs.a[7] += offs;
                   2606: }}}}}}
                   2607: void op_4e58(UWORD opcode)
                   2608: {
                   2609:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2610: {{     LONG src = regs.a[srcreg];
                   2611:        regs.a[7] = src;
                   2612: {      CPTR olda = regs.a[7];
                   2613:        LONG old = get_long(olda);
                   2614: {      regs.a[7] += 4;
                   2615:        regs.a[srcreg] = (old);
                   2616: }}}}}
                   2617: void op_4e60(UWORD opcode)
                   2618: {
                   2619:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2620: {      if (!regs.s) { regs.pc_p--; Exception(8); } else {
                   2621: {      LONG src = regs.a[srcreg];
                   2622:        regs.usp = src;
                   2623:        }
                   2624: }}}
                   2625: void op_4e68(UWORD opcode)
                   2626: {
                   2627:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2628: {      if (!regs.s) { regs.pc_p--; Exception(8); } else {
                   2629: {      regs.a[srcreg] = (regs.usp);
                   2630:        }
                   2631: }}}
                   2632: void op_4e70(UWORD opcode)
                   2633: {
                   2634: {      customreset();
                   2635: }}
                   2636: void op_4e71(UWORD opcode)
                   2637: {
                   2638: {}}
                   2639: void op_4e72(UWORD opcode)
                   2640: {
                   2641: {      if (!regs.s) { regs.pc_p--; Exception(8); } else {
                   2642: {      WORD src = nextiword();
                   2643:        regs.sr = src;
                   2644:        MakeFromSR();
                   2645:        m68k_setstopped(1);
                   2646:        }
                   2647: }}}
                   2648: void op_4e73(UWORD opcode)
                   2649: {
                   2650: {{     CPTR sra = regs.a[7];
                   2651:        WORD sr = get_word(sra);
                   2652: {      regs.a[7] += 2;
                   2653: {      CPTR pca = regs.a[7];
                   2654:        LONG pc = get_long(pca);
                   2655: {      regs.a[7] += 4;
                   2656:        regs.sr = sr; m68k_setpc(pc);
                   2657:        MakeFromSR();
                   2658: }}}}}}
                   2659: void op_4e74(UWORD opcode)
                   2660: {
                   2661: {}}
                   2662: void op_4e75(UWORD opcode)
                   2663: {
                   2664: {{     CPTR pca = regs.a[7];
                   2665:        LONG pc = get_long(pca);
                   2666: {      regs.a[7] += 4;
                   2667:        m68k_setpc(pc);
                   2668: }}}}
                   2669: void op_4e76(UWORD opcode)
                   2670: {
                   2671: {      if(regs.v) Exception(7);
                   2672: }}
                   2673: void op_4e77(UWORD opcode)
                   2674: {
                   2675: {      MakeSR();
                   2676: {      CPTR sra = regs.a[7];
                   2677:        WORD sr = get_word(sra);
                   2678: {      regs.a[7] += 2;
                   2679: {      CPTR pca = regs.a[7];
                   2680:        LONG pc = get_long(pca);
                   2681: {      regs.a[7] += 4;
                   2682:        regs.sr &= 0xFF00; sr &= 0xFF;
                   2683:        regs.sr |= sr; m68k_setpc(pc);
                   2684:        MakeFromSR();
                   2685: }}}}}}
                   2686: void op_4e90(UWORD opcode)
                   2687: {
                   2688:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2689: {{     CPTR srca = regs.a[srcreg];
                   2690: {      regs.a[7] -= 4;
                   2691: {      CPTR spa = regs.a[7];
                   2692:        put_long(spa,m68k_getpc());
                   2693:        m68k_setpc(srca);
                   2694: }}}}}
                   2695: void op_4e98(UWORD opcode)
                   2696: {
                   2697:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2698: {{     CPTR srca = regs.a[srcreg];
                   2699: {      regs.a[srcreg] += 4;
                   2700: {      regs.a[7] -= 4;
                   2701: {      CPTR spa = regs.a[7];
                   2702:        put_long(spa,m68k_getpc());
                   2703:        m68k_setpc(srca);
                   2704: }}}}}}
                   2705: void op_4ea0(UWORD opcode)
                   2706: {
                   2707:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2708: {{     regs.a[srcreg] -= 4;
                   2709: {      CPTR srca = regs.a[srcreg];
                   2710: {      regs.a[7] -= 4;
                   2711: {      CPTR spa = regs.a[7];
                   2712:        put_long(spa,m68k_getpc());
                   2713:        m68k_setpc(srca);
                   2714: }}}}}}
                   2715: void op_4ea8(UWORD opcode)
                   2716: {
                   2717:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2718: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   2719: {      regs.a[7] -= 4;
                   2720: {      CPTR spa = regs.a[7];
                   2721:        put_long(spa,m68k_getpc());
                   2722:        m68k_setpc(srca);
                   2723: }}}}}
                   2724: void op_4eb0(UWORD opcode)
                   2725: {
                   2726:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2727: {{     CPTR srca = regs.a[srcreg];
                   2728:        UWORD srcdp = nextiword();
                   2729:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   2730: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   2731:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   2732:        srca += srcdpr;
                   2733: {      regs.a[7] -= 4;
                   2734: {      CPTR spa = regs.a[7];
                   2735:        put_long(spa,m68k_getpc());
                   2736:        m68k_setpc(srca);
                   2737: }}}}}}
                   2738: void op_4eb8(UWORD opcode)
                   2739: {
                   2740: {{     CPTR srca = (LONG)(WORD)nextiword();
                   2741: {      regs.a[7] -= 4;
                   2742: {      CPTR spa = regs.a[7];
                   2743:        put_long(spa,m68k_getpc());
                   2744:        m68k_setpc(srca);
                   2745: }}}}}
                   2746: void op_4eb9(UWORD opcode)
                   2747: {
                   2748: {{     CPTR srca = nextilong();
                   2749: {      regs.a[7] -= 4;
                   2750: {      CPTR spa = regs.a[7];
                   2751:        put_long(spa,m68k_getpc());
                   2752:        m68k_setpc(srca);
                   2753: }}}}}
                   2754: void op_4eba(UWORD opcode)
                   2755: {
                   2756: {{     CPTR srca = m68k_getpc();
                   2757:        srca += (LONG)(WORD)nextiword();
                   2758: {      regs.a[7] -= 4;
                   2759: {      CPTR spa = regs.a[7];
                   2760:        put_long(spa,m68k_getpc());
                   2761:        m68k_setpc(srca);
                   2762: }}}}}
                   2763: void op_4ebb(UWORD opcode)
                   2764: {
                   2765: {{     CPTR srca = m68k_getpc();
                   2766:        UWORD srcdp = nextiword();
                   2767:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   2768: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   2769:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   2770:        srca += srcdpr;
                   2771: {      regs.a[7] -= 4;
                   2772: {      CPTR spa = regs.a[7];
                   2773:        put_long(spa,m68k_getpc());
                   2774:        m68k_setpc(srca);
                   2775: }}}}}}
                   2776: void op_4ed0(UWORD opcode)
                   2777: {
                   2778:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2779: {{     CPTR srca = regs.a[srcreg];
                   2780:        m68k_setpc(srca);
                   2781: }}}
                   2782: void op_4ed8(UWORD opcode)
                   2783: {
                   2784:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2785: {{     CPTR srca = regs.a[srcreg];
                   2786: {      regs.a[srcreg] += 4;
                   2787:        m68k_setpc(srca);
                   2788: }}}}
                   2789: void op_4ee0(UWORD opcode)
                   2790: {
                   2791:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2792: {{     regs.a[srcreg] -= 4;
                   2793: {      CPTR srca = regs.a[srcreg];
                   2794:        m68k_setpc(srca);
                   2795: }}}}
                   2796: void op_4ee8(UWORD opcode)
                   2797: {
                   2798:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2799: {{     CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
                   2800:        m68k_setpc(srca);
                   2801: }}}
                   2802: void op_4ef0(UWORD opcode)
                   2803: {
                   2804:        ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
                   2805: {{     CPTR srca = regs.a[srcreg];
                   2806:        UWORD srcdp = nextiword();
                   2807:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   2808: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   2809:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   2810:        srca += srcdpr;
                   2811:        m68k_setpc(srca);
                   2812: }}}}
                   2813: void op_4ef8(UWORD opcode)
                   2814: {
                   2815: {{     CPTR srca = (LONG)(WORD)nextiword();
                   2816:        m68k_setpc(srca);
                   2817: }}}
                   2818: void op_4ef9(UWORD opcode)
                   2819: {
                   2820: {{     CPTR srca = nextilong();
                   2821:        m68k_setpc(srca);
                   2822: }}}
                   2823: void op_4efa(UWORD opcode)
                   2824: {
                   2825: {{     CPTR srca = m68k_getpc();
                   2826:        srca += (LONG)(WORD)nextiword();
                   2827:        m68k_setpc(srca);
                   2828: }}}
                   2829: void op_4efb(UWORD opcode)
                   2830: {
                   2831: {{     CPTR srca = m68k_getpc();
                   2832:        UWORD srcdp = nextiword();
                   2833:        srca += (LONG)(BYTE)(srcdp & 0xFF);
                   2834: {      ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
                   2835:        if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
                   2836:        srca += srcdpr;
                   2837:        m68k_setpc(srca);
                   2838: }}}}

unix.superglobalmegacorp.com

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