File:  [UNIX Amiga Emulator] / uae / CPU Sources / cpu4.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 16:37:54 2018 UTC (8 years, 3 months ago) by root
Branches: MAIN, BSchmidt
CVS tags: uae004, HEAD
uae-0.4

#include "config.h"
#include "amiga.h"
#include "options.h"
#include <stdlib.h>
#include "memory.h"
#include "custom.h"
#include "newcpu.h"
#include "cputbl.h"

void op_4000(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	BYTE src = regs.d[srcreg];
{	ULONG dst = -src-regs.x;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (dst) & 0xff;
}}}}}
void op_4010(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	put_byte(srca,dst);
}}}}}
void op_4018(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
{	regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
{	ULONG dst = -src-regs.x;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	put_byte(srca,dst);
}}}}}}
void op_4020(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	put_byte(srca,dst);
}}}}}}
void op_4028(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	BYTE src = get_byte(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	put_byte(srca,dst);
}}}}}
void op_4030(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	BYTE src = get_byte(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	put_byte(srca,dst);
}}}}}}}
void op_4038(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	BYTE src = get_byte(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	put_byte(srca,dst);
}}}}}
void op_4039(UWORD opcode)
{
{{	CPTR srca = nextilong();
	BYTE src = get_byte(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	put_byte(srca,dst);
}}}}}
void op_4040(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	WORD src = regs.d[srcreg];
{	ULONG dst = -src-regs.x;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (dst) & 0xffff;
}}}}}
void op_4050(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	put_word(srca,dst);
}}}}}
void op_4058(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[srcreg] += 2;
{	ULONG dst = -src-regs.x;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	put_word(srca,dst);
}}}}}}
void op_4060(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	put_word(srca,dst);
}}}}}}
void op_4068(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	put_word(srca,dst);
}}}}}
void op_4070(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	WORD src = get_word(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	put_word(srca,dst);
}}}}}}}
void op_4078(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	put_word(srca,dst);
}}}}}
void op_4079(UWORD opcode)
{
{{	CPTR srca = nextilong();
	WORD src = get_word(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	put_word(srca,dst);
}}}}}
void op_4080(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	LONG src = regs.d[srcreg];
{	ULONG dst = -src-regs.x;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	regs.d[srcreg] = (dst);
}}}}}
void op_4090(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	put_long(srca,dst);
}}}}}
void op_4098(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[srcreg] += 4;
{	ULONG dst = -src-regs.x;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	put_long(srca,dst);
}}}}}}
void op_40a0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	put_long(srca,dst);
}}}}}}
void op_40a8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	put_long(srca,dst);
}}}}}
void op_40b0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	LONG src = get_long(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	put_long(srca,dst);
}}}}}}}
void op_40b8(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	put_long(srca,dst);
}}}}}
void op_40b9(UWORD opcode)
{
{{	CPTR srca = nextilong();
	LONG src = get_long(srca);
{	ULONG dst = -src-regs.x;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	put_long(srca,dst);
}}}}}
void op_40c0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	MakeSR();
	regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (regs.sr) & 0xffff;
}}}
void op_40d0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	MakeSR();
	put_word(srca,regs.sr);
}}}
void op_40d8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
{	regs.a[srcreg] += 2;
	MakeSR();
	put_word(srca,regs.sr);
}}}}
void op_40e0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	MakeSR();
	put_word(srca,regs.sr);
}}}}
void op_40e8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	MakeSR();
	put_word(srca,regs.sr);
}}}
void op_40f0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
	MakeSR();
	put_word(srca,regs.sr);
}}}}
void op_40f8(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	MakeSR();
	put_word(srca,regs.sr);
}}}
void op_40f9(UWORD opcode)
{
{{	CPTR srca = nextilong();
	MakeSR();
	put_word(srca,regs.sr);
}}}
void op_41d0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
{	regs.a[dstreg] = (srca);
}}}}
void op_41d8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
{	regs.a[srcreg] += 4;
{	regs.a[dstreg] = (srca);
}}}}}
void op_41e0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
{	regs.a[dstreg] = (srca);
}}}}}
void op_41e8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
{	regs.a[dstreg] = (srca);
}}}}
void op_41f0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	regs.a[dstreg] = (srca);
}}}}}
void op_41f8(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = (LONG)(WORD)nextiword();
{	regs.a[dstreg] = (srca);
}}}}
void op_41f9(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
{	regs.a[dstreg] = (srca);
}}}}
void op_41fa(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	regs.a[dstreg] = (srca);
}}}}
void op_41fb(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	regs.a[dstreg] = (srca);
}}}}}
void op_4200(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.v = regs.c = 0;
	regs.z = ((BYTE)(0)) == 0;
	regs.n = ((BYTE)(0)) < 0;
	regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (0) & 0xff;
}}}
void op_4210(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(0)) == 0;
	regs.n = ((BYTE)(0)) < 0;
	put_byte(srca,0);
}}}
void op_4218(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
{	regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(0)) == 0;
	regs.n = ((BYTE)(0)) < 0;
	put_byte(srca,0);
}}}}
void op_4220(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{	CPTR srca = regs.a[srcreg];
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(0)) == 0;
	regs.n = ((BYTE)(0)) < 0;
	put_byte(srca,0);
}}}}
void op_4228(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(0)) == 0;
	regs.n = ((BYTE)(0)) < 0;
	put_byte(srca,0);
}}}
void op_4230(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(0)) == 0;
	regs.n = ((BYTE)(0)) < 0;
	put_byte(srca,0);
}}}}
void op_4238(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(0)) == 0;
	regs.n = ((BYTE)(0)) < 0;
	put_byte(srca,0);
}}}
void op_4239(UWORD opcode)
{
{{	CPTR srca = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(0)) == 0;
	regs.n = ((BYTE)(0)) < 0;
	put_byte(srca,0);
}}}
void op_4240(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.v = regs.c = 0;
	regs.z = ((WORD)(0)) == 0;
	regs.n = ((WORD)(0)) < 0;
	regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (0) & 0xffff;
}}}
void op_4250(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(0)) == 0;
	regs.n = ((WORD)(0)) < 0;
	put_word(srca,0);
}}}
void op_4258(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
{	regs.a[srcreg] += 2;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(0)) == 0;
	regs.n = ((WORD)(0)) < 0;
	put_word(srca,0);
}}}}
void op_4260(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(0)) == 0;
	regs.n = ((WORD)(0)) < 0;
	put_word(srca,0);
}}}}
void op_4268(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(0)) == 0;
	regs.n = ((WORD)(0)) < 0;
	put_word(srca,0);
}}}
void op_4270(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(0)) == 0;
	regs.n = ((WORD)(0)) < 0;
	put_word(srca,0);
}}}}
void op_4278(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(0)) == 0;
	regs.n = ((WORD)(0)) < 0;
	put_word(srca,0);
}}}
void op_4279(UWORD opcode)
{
{{	CPTR srca = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(0)) == 0;
	regs.n = ((WORD)(0)) < 0;
	put_word(srca,0);
}}}
void op_4280(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.v = regs.c = 0;
	regs.z = ((LONG)(0)) == 0;
	regs.n = ((LONG)(0)) < 0;
	regs.d[srcreg] = (0);
}}}
void op_4290(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(0)) == 0;
	regs.n = ((LONG)(0)) < 0;
	put_long(srca,0);
}}}
void op_4298(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
{	regs.a[srcreg] += 4;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(0)) == 0;
	regs.n = ((LONG)(0)) < 0;
	put_long(srca,0);
}}}}
void op_42a0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(0)) == 0;
	regs.n = ((LONG)(0)) < 0;
	put_long(srca,0);
}}}}
void op_42a8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(0)) == 0;
	regs.n = ((LONG)(0)) < 0;
	put_long(srca,0);
}}}
void op_42b0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(0)) == 0;
	regs.n = ((LONG)(0)) < 0;
	put_long(srca,0);
}}}}
void op_42b8(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(0)) == 0;
	regs.n = ((LONG)(0)) < 0;
	put_long(srca,0);
}}}
void op_42b9(UWORD opcode)
{
{{	CPTR srca = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(0)) == 0;
	regs.n = ((LONG)(0)) < 0;
	put_long(srca,0);
}}}
void op_42c0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	MakeSR();
	regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (regs.sr) & 0xff;
}}}
void op_42d0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	MakeSR();
	put_byte(srca,regs.sr);
}}}
void op_42d8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
{	regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
	MakeSR();
	put_byte(srca,regs.sr);
}}}}
void op_42e0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{	CPTR srca = regs.a[srcreg];
	MakeSR();
	put_byte(srca,regs.sr);
}}}}
void op_42e8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	MakeSR();
	put_byte(srca,regs.sr);
}}}
void op_42f0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
	MakeSR();
	put_byte(srca,regs.sr);
}}}}
void op_42f8(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	MakeSR();
	put_byte(srca,regs.sr);
}}}
void op_42f9(UWORD opcode)
{
{{	CPTR srca = nextilong();
	MakeSR();
	put_byte(srca,regs.sr);
}}}
void op_4400(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	BYTE src = regs.d[srcreg];
{	ULONG dst = -src;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (dst) & 0xff;
}}}}}
void op_4410(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
{	ULONG dst = -src;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	put_byte(srca,dst);
}}}}}
void op_4418(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
{	regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
{	ULONG dst = -src;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	put_byte(srca,dst);
}}}}}}
void op_4420(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
{	ULONG dst = -src;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	put_byte(srca,dst);
}}}}}}
void op_4428(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	BYTE src = get_byte(srca);
{	ULONG dst = -src;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	put_byte(srca,dst);
}}}}}
void op_4430(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	BYTE src = get_byte(srca);
{	ULONG dst = -src;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	put_byte(srca,dst);
}}}}}}}
void op_4438(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	BYTE src = get_byte(srca);
{	ULONG dst = -src;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	put_byte(srca,dst);
}}}}}
void op_4439(UWORD opcode)
{
{{	CPTR srca = nextilong();
	BYTE src = get_byte(srca);
{	ULONG dst = -src;
{	bool flgs = ((BYTE)(src)) < 0;
	bool flgo = ((BYTE)(0)) < 0;
	bool flgn = ((BYTE)(dst)) < 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
	regs.n = flgn != 0;
	put_byte(srca,dst);
}}}}}
void op_4440(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	WORD src = regs.d[srcreg];
{	ULONG dst = -src;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (dst) & 0xffff;
}}}}}
void op_4450(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	ULONG dst = -src;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	put_word(srca,dst);
}}}}}
void op_4458(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[srcreg] += 2;
{	ULONG dst = -src;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	put_word(srca,dst);
}}}}}}
void op_4460(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	ULONG dst = -src;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	put_word(srca,dst);
}}}}}}
void op_4468(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	ULONG dst = -src;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	put_word(srca,dst);
}}}}}
void op_4470(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	WORD src = get_word(srca);
{	ULONG dst = -src;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	put_word(srca,dst);
}}}}}}}
void op_4478(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	ULONG dst = -src;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	put_word(srca,dst);
}}}}}
void op_4479(UWORD opcode)
{
{{	CPTR srca = nextilong();
	WORD src = get_word(srca);
{	ULONG dst = -src;
{	bool flgs = ((WORD)(src)) < 0;
	bool flgo = ((WORD)(0)) < 0;
	bool flgn = ((WORD)(dst)) < 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
	regs.n = flgn != 0;
	put_word(srca,dst);
}}}}}
void op_4480(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	LONG src = regs.d[srcreg];
{	ULONG dst = -src;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	regs.d[srcreg] = (dst);
}}}}}
void op_4490(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	ULONG dst = -src;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	put_long(srca,dst);
}}}}}
void op_4498(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[srcreg] += 4;
{	ULONG dst = -src;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	put_long(srca,dst);
}}}}}}
void op_44a0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	ULONG dst = -src;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	put_long(srca,dst);
}}}}}}
void op_44a8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	ULONG dst = -src;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	put_long(srca,dst);
}}}}}
void op_44b0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	LONG src = get_long(srca);
{	ULONG dst = -src;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	put_long(srca,dst);
}}}}}}}
void op_44b8(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	ULONG dst = -src;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	put_long(srca,dst);
}}}}}
void op_44b9(UWORD opcode)
{
{{	CPTR srca = nextilong();
	LONG src = get_long(srca);
{	ULONG dst = -src;
{	bool flgs = ((LONG)(src)) < 0;
	bool flgo = ((LONG)(0)) < 0;
	bool flgn = ((LONG)(dst)) < 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.v = (flgs != flgo) && (flgn != flgo);
	regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
	regs.n = flgn != 0;
	put_long(srca,dst);
}}}}}
void op_44c0(UWORD opcode)
{	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{{	BYTE src = regs.d[srcreg];
	MakeSR();
	regs.sr &= 0xFF00;
	regs.sr |= src & 0xFF;
	MakeFromSR();

}}}}
void op_44d0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
	MakeSR();
	regs.sr &= 0xFF00;
	regs.sr |= src & 0xFF;
	MakeFromSR();
}}}}
void op_44d8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
{	regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
	MakeSR();
	regs.sr &= 0xFF00;
	regs.sr |= src & 0xFF;
	MakeFromSR();
}}}}}
void op_44e0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{{	regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
	MakeSR();
	regs.sr &= 0xFF00;
	regs.sr |= src & 0xFF;
	MakeFromSR();
}}}}}
void op_44e8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	BYTE src = get_byte(srca);
	MakeSR();
	regs.sr &= 0xFF00;
	regs.sr |= src & 0xFF;
	MakeFromSR();
}}}}
void op_44f0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	BYTE src = get_byte(srca);
	MakeSR();
	regs.sr &= 0xFF00;
	regs.sr |= src & 0xFF;
	MakeFromSR();
}}}}}}
void op_44f8(UWORD opcode)
{
{{{	CPTR srca = (LONG)(WORD)nextiword();
	BYTE src = get_byte(srca);
	MakeSR();
	regs.sr &= 0xFF00;
	regs.sr |= src & 0xFF;
	MakeFromSR();
}}}}
void op_44f9(UWORD opcode)
{
{{{	CPTR srca = nextilong();
	BYTE src = get_byte(srca);
	MakeSR();
	regs.sr &= 0xFF00;
	regs.sr |= src & 0xFF;
	MakeFromSR();
}}}}
void op_44fa(UWORD opcode)
{
{{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	BYTE src = get_byte(srca);
	MakeSR();
	regs.sr &= 0xFF00;
	regs.sr |= src & 0xFF;
	MakeFromSR();
}}}}}
void op_44fb(UWORD opcode)
{
{{{	CPTR srca = m68k_getpc();
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	BYTE src = get_byte(srca);
	MakeSR();
	regs.sr &= 0xFF00;
	regs.sr |= src & 0xFF;
	MakeFromSR();
}}}}}}
void op_44fc(UWORD opcode)
{
{{{	BYTE src = nextiword();
	MakeSR();
	regs.sr &= 0xFF00;
	regs.sr |= src & 0xFF;
	MakeFromSR();
}}}}
void op_4600(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	BYTE src = regs.d[srcreg];
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.n = ((BYTE)(dst)) < 0;
	regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (dst) & 0xff;
}}}}
void op_4610(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.n = ((BYTE)(dst)) < 0;
	put_byte(srca,dst);
}}}}
void op_4618(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
{	regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.n = ((BYTE)(dst)) < 0;
	put_byte(srca,dst);
}}}}}
void op_4620(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.n = ((BYTE)(dst)) < 0;
	put_byte(srca,dst);
}}}}}
void op_4628(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	BYTE src = get_byte(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.n = ((BYTE)(dst)) < 0;
	put_byte(srca,dst);
}}}}
void op_4630(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	BYTE src = get_byte(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.n = ((BYTE)(dst)) < 0;
	put_byte(srca,dst);
}}}}}}
void op_4638(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	BYTE src = get_byte(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.n = ((BYTE)(dst)) < 0;
	put_byte(srca,dst);
}}}}
void op_4639(UWORD opcode)
{
{{	CPTR srca = nextilong();
	BYTE src = get_byte(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(dst)) == 0;
	regs.n = ((BYTE)(dst)) < 0;
	put_byte(srca,dst);
}}}}
void op_4640(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	WORD src = regs.d[srcreg];
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.n = ((WORD)(dst)) < 0;
	regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (dst) & 0xffff;
}}}}
void op_4650(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.n = ((WORD)(dst)) < 0;
	put_word(srca,dst);
}}}}
void op_4658(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[srcreg] += 2;
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.n = ((WORD)(dst)) < 0;
	put_word(srca,dst);
}}}}}
void op_4660(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.n = ((WORD)(dst)) < 0;
	put_word(srca,dst);
}}}}}
void op_4668(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.n = ((WORD)(dst)) < 0;
	put_word(srca,dst);
}}}}
void op_4670(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	WORD src = get_word(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.n = ((WORD)(dst)) < 0;
	put_word(srca,dst);
}}}}}}
void op_4678(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.n = ((WORD)(dst)) < 0;
	put_word(srca,dst);
}}}}
void op_4679(UWORD opcode)
{
{{	CPTR srca = nextilong();
	WORD src = get_word(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.n = ((WORD)(dst)) < 0;
	put_word(srca,dst);
}}}}
void op_4680(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	LONG src = regs.d[srcreg];
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.n = ((LONG)(dst)) < 0;
	regs.d[srcreg] = (dst);
}}}}
void op_4690(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.n = ((LONG)(dst)) < 0;
	put_long(srca,dst);
}}}}
void op_4698(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[srcreg] += 4;
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.n = ((LONG)(dst)) < 0;
	put_long(srca,dst);
}}}}}
void op_46a0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.n = ((LONG)(dst)) < 0;
	put_long(srca,dst);
}}}}}
void op_46a8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.n = ((LONG)(dst)) < 0;
	put_long(srca,dst);
}}}}
void op_46b0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	LONG src = get_long(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.n = ((LONG)(dst)) < 0;
	put_long(srca,dst);
}}}}}}
void op_46b8(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.n = ((LONG)(dst)) < 0;
	put_long(srca,dst);
}}}}
void op_46b9(UWORD opcode)
{
{{	CPTR srca = nextilong();
	LONG src = get_long(srca);
{	ULONG dst = ~src;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.n = ((LONG)(dst)) < 0;
	put_long(srca,dst);
}}}}
void op_46c0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	if (!regs.s) { regs.pc_p--; Exception(8); } else
{{	WORD src = regs.d[srcreg];
	regs.sr = src;
	MakeFromSR();
}}}}
void op_46d0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	if (!regs.s) { regs.pc_p--; Exception(8); } else
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
	regs.sr = src;
	MakeFromSR();
}}}}
void op_46d8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	if (!regs.s) { regs.pc_p--; Exception(8); } else
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[srcreg] += 2;
	regs.sr = src;
	MakeFromSR();
}}}}}
void op_46e0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	if (!regs.s) { regs.pc_p--; Exception(8); } else
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
	regs.sr = src;
	MakeFromSR();
}}}}}
void op_46e8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	if (!regs.s) { regs.pc_p--; Exception(8); } else
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
	regs.sr = src;
	MakeFromSR();
}}}}
void op_46f0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	if (!regs.s) { regs.pc_p--; Exception(8); } else
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	WORD src = get_word(srca);
	regs.sr = src;
	MakeFromSR();
}}}}}}
void op_46f8(UWORD opcode)
{
{	if (!regs.s) { regs.pc_p--; Exception(8); } else
{{	CPTR srca = (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
	regs.sr = src;
	MakeFromSR();
}}}}
void op_46f9(UWORD opcode)
{
{	if (!regs.s) { regs.pc_p--; Exception(8); } else
{{	CPTR srca = nextilong();
	WORD src = get_word(srca);
	regs.sr = src;
	MakeFromSR();
}}}}
void op_46fa(UWORD opcode)
{
{	if (!regs.s) { regs.pc_p--; Exception(8); } else
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	WORD src = get_word(srca);
	regs.sr = src;
	MakeFromSR();
}}}}}
void op_46fb(UWORD opcode)
{
{	if (!regs.s) { regs.pc_p--; Exception(8); } else
{{	CPTR srca = m68k_getpc();
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	WORD src = get_word(srca);
	regs.sr = src;
	MakeFromSR();
}}}}}}
void op_46fc(UWORD opcode)
{
{	if (!regs.s) { regs.pc_p--; Exception(8); } else
{{	WORD src = nextiword();
	regs.sr = src;
	MakeFromSR();
}}}}
void op_4800(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	BYTE src = regs.d[srcreg];
{	UWORD newv = - src - regs.x;
	if ((newv & 0xF) > 9) newv-=6;
	regs.c = regs.x = (newv & 0x1F0) > 0x90;
	if (regs.c) newv -= 0x60;
	if (newv != 0) regs.z = 0;
	regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (newv) & 0xff;
}}}}
void op_4810(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
{	UWORD newv = - src - regs.x;
	if ((newv & 0xF) > 9) newv-=6;
	regs.c = regs.x = (newv & 0x1F0) > 0x90;
	if (regs.c) newv -= 0x60;
	if (newv != 0) regs.z = 0;
	put_byte(srca,newv);
}}}}
void op_4818(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
{	regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
{	UWORD newv = - src - regs.x;
	if ((newv & 0xF) > 9) newv-=6;
	regs.c = regs.x = (newv & 0x1F0) > 0x90;
	if (regs.c) newv -= 0x60;
	if (newv != 0) regs.z = 0;
	put_byte(srca,newv);
}}}}}
void op_4820(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
{	UWORD newv = - src - regs.x;
	if ((newv & 0xF) > 9) newv-=6;
	regs.c = regs.x = (newv & 0x1F0) > 0x90;
	if (regs.c) newv -= 0x60;
	if (newv != 0) regs.z = 0;
	put_byte(srca,newv);
}}}}}
void op_4828(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	BYTE src = get_byte(srca);
{	UWORD newv = - src - regs.x;
	if ((newv & 0xF) > 9) newv-=6;
	regs.c = regs.x = (newv & 0x1F0) > 0x90;
	if (regs.c) newv -= 0x60;
	if (newv != 0) regs.z = 0;
	put_byte(srca,newv);
}}}}
void op_4830(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	BYTE src = get_byte(srca);
{	UWORD newv = - src - regs.x;
	if ((newv & 0xF) > 9) newv-=6;
	regs.c = regs.x = (newv & 0x1F0) > 0x90;
	if (regs.c) newv -= 0x60;
	if (newv != 0) regs.z = 0;
	put_byte(srca,newv);
}}}}}}
void op_4838(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	BYTE src = get_byte(srca);
{	UWORD newv = - src - regs.x;
	if ((newv & 0xF) > 9) newv-=6;
	regs.c = regs.x = (newv & 0x1F0) > 0x90;
	if (regs.c) newv -= 0x60;
	if (newv != 0) regs.z = 0;
	put_byte(srca,newv);
}}}}
void op_4839(UWORD opcode)
{
{{	CPTR srca = nextilong();
	BYTE src = get_byte(srca);
{	UWORD newv = - src - regs.x;
	if ((newv & 0xF) > 9) newv-=6;
	regs.c = regs.x = (newv & 0x1F0) > 0x90;
	if (regs.c) newv -= 0x60;
	if (newv != 0) regs.z = 0;
	put_byte(srca,newv);
}}}}
void op_4840(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	LONG src = regs.d[srcreg];
{	ULONG dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16);
	regs.v = regs.c = 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.n = ((LONG)(dst)) < 0;
	regs.d[srcreg] = (dst);
}}}}
void op_4850(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
{	regs.a[7] -= 4;
{	CPTR dsta = regs.a[7];
	put_long(dsta,srca);
}}}}}
void op_4858(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
{	regs.a[srcreg] += 4;
{	regs.a[7] -= 4;
{	CPTR dsta = regs.a[7];
	put_long(dsta,srca);
}}}}}}
void op_4860(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
{	regs.a[7] -= 4;
{	CPTR dsta = regs.a[7];
	put_long(dsta,srca);
}}}}}}
void op_4868(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
{	regs.a[7] -= 4;
{	CPTR dsta = regs.a[7];
	put_long(dsta,srca);
}}}}}
void op_4870(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	regs.a[7] -= 4;
{	CPTR dsta = regs.a[7];
	put_long(dsta,srca);
}}}}}}
void op_4878(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
{	regs.a[7] -= 4;
{	CPTR dsta = regs.a[7];
	put_long(dsta,srca);
}}}}}
void op_4879(UWORD opcode)
{
{{	CPTR srca = nextilong();
{	regs.a[7] -= 4;
{	CPTR dsta = regs.a[7];
	put_long(dsta,srca);
}}}}}
void op_487a(UWORD opcode)
{
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	regs.a[7] -= 4;
{	CPTR dsta = regs.a[7];
	put_long(dsta,srca);
}}}}}
void op_487b(UWORD opcode)
{
{{	CPTR srca = m68k_getpc();
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	regs.a[7] -= 4;
{	CPTR dsta = regs.a[7];
	put_long(dsta,srca);
}}}}}}
void op_4880(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	WORD src = regs.d[srcreg];
{	ULONG dst = (LONG)(BYTE)src;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(dst)) == 0;
	regs.n = ((WORD)(dst)) < 0;
	regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (dst) & 0xffff;
}}}}
void op_4890(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg];
{	int i, bitcnt = 0;
	ULONG rd[8], ra[8];
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
	for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
}}}}
void op_4898(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg];
{	int i, bitcnt = 0;
	ULONG rd[8], ra[8];
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
	for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
}}}}
void op_48a0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{{	CPTR srca = regs.a[srcreg];
{	int i, bitcnt = 0;
	ULONG rd[8], ra[8];
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
	srca -= 2*bitcnt;
	regs.a[srcreg] = srca;
	for(i=0;i<8;i++) { if (mask & 32768) { put_word(srca, rd[i]); srca += 2; } mask <<= 1; }
	for(i=0;i<8;i++) { if (mask & 32768) { put_word(srca, ra[i]); srca += 2; } mask <<= 1; }
}}}}}
void op_48a8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
{	int i, bitcnt = 0;
	ULONG rd[8], ra[8];
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
	for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
}}}}
void op_48b0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	int i, bitcnt = 0;
	ULONG rd[8], ra[8];
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
	for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
}}}}}
void op_48b8(UWORD opcode)
{
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = (LONG)(WORD)nextiword();
{	int i, bitcnt = 0;
	ULONG rd[8], ra[8];
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
	for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
}}}}
void op_48b9(UWORD opcode)
{
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = nextilong();
{	int i, bitcnt = 0;
	ULONG rd[8], ra[8];
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
	for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
}}}}
void op_48c0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	LONG src = regs.d[srcreg];
{	ULONG dst = (LONG)(WORD)src;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(dst)) == 0;
	regs.n = ((LONG)(dst)) < 0;
	regs.d[srcreg] = (dst);
}}}}
void op_48d0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg];
{	int i, bitcnt = 0;
	ULONG rd[8], ra[8];
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
	for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
}}}}
void op_48d8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg];
{	int i, bitcnt = 0;
	ULONG rd[8], ra[8];
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
	for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
}}}}
void op_48e0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{{	CPTR srca = regs.a[srcreg];
{	int i, bitcnt = 0;
	ULONG rd[8], ra[8];
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
	srca -= 4*bitcnt;
	regs.a[srcreg] = srca;
	for(i=0;i<8;i++) { if (mask & 32768) { put_long(srca, rd[i]); srca += 4; } mask <<= 1; }
	for(i=0;i<8;i++) { if (mask & 32768) { put_long(srca, ra[i]); srca += 4; } mask <<= 1; }
}}}}}
void op_48e8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
{	int i, bitcnt = 0;
	ULONG rd[8], ra[8];
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
	for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
}}}}
void op_48f0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	int i, bitcnt = 0;
	ULONG rd[8], ra[8];
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
	for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
}}}}}
void op_48f8(UWORD opcode)
{
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = (LONG)(WORD)nextiword();
{	int i, bitcnt = 0;
	ULONG rd[8], ra[8];
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
	for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
}}}}
void op_48f9(UWORD opcode)
{
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = nextilong();
{	int i, bitcnt = 0;
	ULONG rd[8], ra[8];
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
	for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
}}}}
void op_4a00(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	BYTE src = regs.d[srcreg];
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(src)) == 0;
	regs.n = ((BYTE)(src)) < 0;
}}}
void op_4a10(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(src)) == 0;
	regs.n = ((BYTE)(src)) < 0;
}}}
void op_4a18(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
{	regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(src)) == 0;
	regs.n = ((BYTE)(src)) < 0;
}}}}
void op_4a20(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{	CPTR srca = regs.a[srcreg];
	BYTE src = get_byte(srca);
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(src)) == 0;
	regs.n = ((BYTE)(src)) < 0;
}}}}
void op_4a28(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	BYTE src = get_byte(srca);
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(src)) == 0;
	regs.n = ((BYTE)(src)) < 0;
}}}
void op_4a30(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	BYTE src = get_byte(srca);
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(src)) == 0;
	regs.n = ((BYTE)(src)) < 0;
}}}}}
void op_4a38(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	BYTE src = get_byte(srca);
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(src)) == 0;
	regs.n = ((BYTE)(src)) < 0;
}}}
void op_4a39(UWORD opcode)
{
{{	CPTR srca = nextilong();
	BYTE src = get_byte(srca);
	regs.v = regs.c = 0;
	regs.z = ((BYTE)(src)) == 0;
	regs.n = ((BYTE)(src)) < 0;
}}}
void op_4a40(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	WORD src = regs.d[srcreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
}}}
void op_4a48(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	WORD src = regs.a[srcreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
}}}
void op_4a50(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
}}}
void op_4a58(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[srcreg] += 2;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
}}}}
void op_4a60(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
}}}}
void op_4a68(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
}}}
void op_4a70(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	WORD src = get_word(srca);
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
}}}}}
void op_4a78(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
}}}
void op_4a79(UWORD opcode)
{
{{	CPTR srca = nextilong();
	WORD src = get_word(srca);
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
}}}
void op_4a80(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	LONG src = regs.d[srcreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
}}}
void op_4a88(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	LONG src = regs.a[srcreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
}}}
void op_4a90(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
}}}
void op_4a98(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[srcreg] += 4;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
}}}}
void op_4aa0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
}}}}
void op_4aa8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
}}}
void op_4ab0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	LONG src = get_long(srca);
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
}}}}}
void op_4ab8(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
}}}
void op_4ab9(UWORD opcode)
{
{{	CPTR srca = nextilong();
	LONG src = get_long(srca);
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
}}}
void op_4c90(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg];
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}
void op_4c98(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg];
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
	regs.a[srcreg] = srca;
}}}}
void op_4ca0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{{	CPTR srca = regs.a[srcreg];
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}}
void op_4ca8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}
void op_4cb0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}}
void op_4cb8(UWORD opcode)
{
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = (LONG)(WORD)nextiword();
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}
void op_4cb9(UWORD opcode)
{
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = nextilong();
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}
void op_4cba(UWORD opcode)
{
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}
void op_4cbb(UWORD opcode)
{
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = m68k_getpc();
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}}
void op_4cd0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg];
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}
void op_4cd8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg];
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
	regs.a[srcreg] = srca;
}}}}
void op_4ce0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{{	CPTR srca = regs.a[srcreg];
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}}
void op_4ce8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}
void op_4cf0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}}
void op_4cf8(UWORD opcode)
{
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = (LONG)(WORD)nextiword();
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}
void op_4cf9(UWORD opcode)
{
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = nextilong();
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}
void op_4cfa(UWORD opcode)
{
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}
void op_4cfb(UWORD opcode)
{
{	UWORD mask = nextiword(), bitmask = mask;
{	CPTR srca = m68k_getpc();
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	int i, bitcnt = 0;
	for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
	for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}}
void op_4e40(UWORD opcode)
{
	ULONG srcreg = 0;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e41(UWORD opcode)
{
	ULONG srcreg = 1;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e42(UWORD opcode)
{
	ULONG srcreg = 2;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e43(UWORD opcode)
{
	ULONG srcreg = 3;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e44(UWORD opcode)
{
	ULONG srcreg = 4;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e45(UWORD opcode)
{
	ULONG srcreg = 5;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e46(UWORD opcode)
{
	ULONG srcreg = 6;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e47(UWORD opcode)
{
	ULONG srcreg = 7;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e48(UWORD opcode)
{
	ULONG srcreg = 8;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e49(UWORD opcode)
{
	ULONG srcreg = 9;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e4a(UWORD opcode)
{
	ULONG srcreg = 10;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e4b(UWORD opcode)
{
	ULONG srcreg = 11;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e4c(UWORD opcode)
{
	ULONG srcreg = 12;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e4d(UWORD opcode)
{
	ULONG srcreg = 13;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e4e(UWORD opcode)
{
	ULONG srcreg = 14;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e4f(UWORD opcode)
{
	ULONG srcreg = 15;
{{	ULONG src = srcreg;
	Exception(src+32);
}}}
void op_4e50(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[7] -= 4;
{	CPTR olda = regs.a[7];
{	LONG src = regs.a[srcreg];
	put_long(olda,src);
	regs.a[srcreg] = (regs.a[7]);
{	WORD offs = nextiword();
	regs.a[7] += offs;
}}}}}}
void op_4e58(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	LONG src = regs.a[srcreg];
	regs.a[7] = src;
{	CPTR olda = regs.a[7];
	LONG old = get_long(olda);
{	regs.a[7] += 4;
	regs.a[srcreg] = (old);
}}}}}
void op_4e60(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	if (!regs.s) { regs.pc_p--; Exception(8); } else {
{	LONG src = regs.a[srcreg];
	regs.usp = src;
	}
}}}
void op_4e68(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{	if (!regs.s) { regs.pc_p--; Exception(8); } else {
{	regs.a[srcreg] = (regs.usp);
	}
}}}
void op_4e70(UWORD opcode)
{
{	customreset();
}}
void op_4e71(UWORD opcode)
{
{}}
void op_4e72(UWORD opcode)
{
{	if (!regs.s) { regs.pc_p--; Exception(8); } else {
{	WORD src = nextiword();
	regs.sr = src;
	MakeFromSR();
	m68k_setstopped(1);
	}
}}}
void op_4e73(UWORD opcode)
{
{{	CPTR sra = regs.a[7];
	WORD sr = get_word(sra);
{	regs.a[7] += 2;
{	CPTR pca = regs.a[7];
	LONG pc = get_long(pca);
{	regs.a[7] += 4;
	regs.sr = sr; m68k_setpc(pc);
	MakeFromSR();
}}}}}}
void op_4e74(UWORD opcode)
{
{}}
void op_4e75(UWORD opcode)
{
{{	CPTR pca = regs.a[7];
	LONG pc = get_long(pca);
{	regs.a[7] += 4;
	m68k_setpc(pc);
}}}}
void op_4e76(UWORD opcode)
{
{	if(regs.v) Exception(7);
}}
void op_4e77(UWORD opcode)
{
{	MakeSR();
{	CPTR sra = regs.a[7];
	WORD sr = get_word(sra);
{	regs.a[7] += 2;
{	CPTR pca = regs.a[7];
	LONG pc = get_long(pca);
{	regs.a[7] += 4;
	regs.sr &= 0xFF00; sr &= 0xFF;
	regs.sr |= sr; m68k_setpc(pc);
	MakeFromSR();
}}}}}}
void op_4e90(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
{	regs.a[7] -= 4;
{	CPTR spa = regs.a[7];
	put_long(spa,m68k_getpc());
	m68k_setpc(srca);
}}}}}
void op_4e98(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
{	regs.a[srcreg] += 4;
{	regs.a[7] -= 4;
{	CPTR spa = regs.a[7];
	put_long(spa,m68k_getpc());
	m68k_setpc(srca);
}}}}}}
void op_4ea0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
{	regs.a[7] -= 4;
{	CPTR spa = regs.a[7];
	put_long(spa,m68k_getpc());
	m68k_setpc(srca);
}}}}}}
void op_4ea8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
{	regs.a[7] -= 4;
{	CPTR spa = regs.a[7];
	put_long(spa,m68k_getpc());
	m68k_setpc(srca);
}}}}}
void op_4eb0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	regs.a[7] -= 4;
{	CPTR spa = regs.a[7];
	put_long(spa,m68k_getpc());
	m68k_setpc(srca);
}}}}}}
void op_4eb8(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
{	regs.a[7] -= 4;
{	CPTR spa = regs.a[7];
	put_long(spa,m68k_getpc());
	m68k_setpc(srca);
}}}}}
void op_4eb9(UWORD opcode)
{
{{	CPTR srca = nextilong();
{	regs.a[7] -= 4;
{	CPTR spa = regs.a[7];
	put_long(spa,m68k_getpc());
	m68k_setpc(srca);
}}}}}
void op_4eba(UWORD opcode)
{
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	regs.a[7] -= 4;
{	CPTR spa = regs.a[7];
	put_long(spa,m68k_getpc());
	m68k_setpc(srca);
}}}}}
void op_4ebb(UWORD opcode)
{
{{	CPTR srca = m68k_getpc();
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
{	regs.a[7] -= 4;
{	CPTR spa = regs.a[7];
	put_long(spa,m68k_getpc());
	m68k_setpc(srca);
}}}}}}
void op_4ed0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	m68k_setpc(srca);
}}}
void op_4ed8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
{	regs.a[srcreg] += 4;
	m68k_setpc(srca);
}}}}
void op_4ee0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
	m68k_setpc(srca);
}}}}
void op_4ee8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	m68k_setpc(srca);
}}}
void op_4ef0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
	m68k_setpc(srca);
}}}}
void op_4ef8(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	m68k_setpc(srca);
}}}
void op_4ef9(UWORD opcode)
{
{{	CPTR srca = nextilong();
	m68k_setpc(srca);
}}}
void op_4efa(UWORD opcode)
{
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
	m68k_setpc(srca);
}}}
void op_4efb(UWORD opcode)
{
{{	CPTR srca = m68k_getpc();
	UWORD srcdp = nextiword();
	srca += (LONG)(BYTE)(srcdp & 0xFF);
{	ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
	if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
	srca += srcdpr;
	m68k_setpc(srca);
}}}}

unix.superglobalmegacorp.com

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