File:  [UNIX Amiga Emulator] / uae / CPU Sources / cpu2.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_2000(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = regs.d[srcreg];
{	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	regs.d[dstreg] = (src);
}}}}
void op_2008(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = regs.a[srcreg];
{	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	regs.d[dstreg] = (src);
}}}}
void op_2010(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	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;
	regs.d[dstreg] = (src);
}}}}
void op_2018(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	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;
	regs.d[dstreg] = (src);
}}}}}
void op_2020(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	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;
	regs.d[dstreg] = (src);
}}}}}
void op_2028(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	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;
	regs.d[dstreg] = (src);
}}}}
void op_2030(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;
{	LONG src = get_long(srca);
{	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	regs.d[dstreg] = (src);
}}}}}}
void op_2038(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	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;
	regs.d[dstreg] = (src);
}}}}
void op_2039(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
	LONG src = get_long(srca);
{	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	regs.d[dstreg] = (src);
}}}}
void op_203a(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	LONG src = get_long(srca);
{	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	regs.d[dstreg] = (src);
}}}}}
void op_203b(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;
{	LONG src = get_long(srca);
{	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	regs.d[dstreg] = (src);
}}}}}}
void op_203c(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = nextilong();
{	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	regs.d[dstreg] = (src);
}}}}
void op_2040(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = regs.d[srcreg];
{	regs.a[dstreg] = (src);
}}}}
void op_2048(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = regs.a[srcreg];
{	regs.a[dstreg] = (src);
}}}}
void op_2050(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[dstreg] = (src);
}}}}
void op_2058(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[srcreg] += 4;
{	regs.a[dstreg] = (src);
}}}}}
void op_2060(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[dstreg] = (src);
}}}}}
void op_2068(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	regs.a[dstreg] = (src);
}}}}
void op_2070(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;
{	LONG src = get_long(srca);
{	regs.a[dstreg] = (src);
}}}}}}
void op_2078(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	regs.a[dstreg] = (src);
}}}}
void op_2079(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
	LONG src = get_long(srca);
{	regs.a[dstreg] = (src);
}}}}
void op_207a(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	LONG src = get_long(srca);
{	regs.a[dstreg] = (src);
}}}}}
void op_207b(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;
{	LONG src = get_long(srca);
{	regs.a[dstreg] = (src);
}}}}}}
void op_207c(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = nextilong();
{	regs.a[dstreg] = (src);
}}}}
void op_2080(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = regs.d[srcreg];
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_2088(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = regs.a[srcreg];
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_2090(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_2098(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[srcreg] += 4;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_20a0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_20a8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_20b0(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;
{	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_20b8(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_20b9(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_20ba(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_20bb(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;
{	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_20bc(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = nextilong();
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_20c0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = regs.d[srcreg];
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 4;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_20c8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = regs.a[srcreg];
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 4;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_20d0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 4;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_20d8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[srcreg] += 4;
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 4;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_20e0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 4;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_20e8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 4;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_20f0(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;
{	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 4;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}}
void op_20f8(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 4;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_20f9(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 4;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_20fa(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 4;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_20fb(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;
{	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 4;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}}
void op_20fc(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = nextilong();
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 4;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_2100(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = regs.d[srcreg];
{	regs.a[dstreg] -= 4;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_2108(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = regs.a[srcreg];
{	regs.a[dstreg] -= 4;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_2110(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[dstreg] -= 4;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_2118(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[srcreg] += 4;
{	regs.a[dstreg] -= 4;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_2120(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[dstreg] -= 4;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_2128(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	regs.a[dstreg] -= 4;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_2130(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;
{	LONG src = get_long(srca);
{	regs.a[dstreg] -= 4;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}}
void op_2138(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	regs.a[dstreg] -= 4;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_2139(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
	LONG src = get_long(srca);
{	regs.a[dstreg] -= 4;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_213a(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	LONG src = get_long(srca);
{	regs.a[dstreg] -= 4;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_213b(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;
{	LONG src = get_long(srca);
{	regs.a[dstreg] -= 4;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}}
void op_213c(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = nextilong();
{	regs.a[dstreg] -= 4;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_2140(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = regs.d[srcreg];
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_2148(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = regs.a[srcreg];
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_2150(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_2158(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[srcreg] += 4;
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_2160(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_2168(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_2170(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;
{	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_2178(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_2179(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_217a(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_217b(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;
{	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_217c(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = nextilong();
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_2180(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = regs.d[srcreg];
{	CPTR dsta = regs.a[dstreg];
	UWORD dstdp = nextiword();
	dsta += (LONG)(BYTE)(dstdp & 0xFF);
{	ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
	if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
	dsta += dstdpr;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_2188(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = regs.a[srcreg];
{	CPTR dsta = regs.a[dstreg];
	UWORD dstdp = nextiword();
	dsta += (LONG)(BYTE)(dstdp & 0xFF);
{	ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
	if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
	dsta += dstdpr;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_2190(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	UWORD dstdp = nextiword();
	dsta += (LONG)(BYTE)(dstdp & 0xFF);
{	ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
	if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
	dsta += dstdpr;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_2198(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[srcreg] += 4;
{	CPTR dsta = regs.a[dstreg];
	UWORD dstdp = nextiword();
	dsta += (LONG)(BYTE)(dstdp & 0xFF);
{	ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
	if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
	dsta += dstdpr;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_21a0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	UWORD dstdp = nextiword();
	dsta += (LONG)(BYTE)(dstdp & 0xFF);
{	ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
	if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
	dsta += dstdpr;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_21a8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	UWORD dstdp = nextiword();
	dsta += (LONG)(BYTE)(dstdp & 0xFF);
{	ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
	if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
	dsta += dstdpr;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_21b0(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;
{	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	UWORD dstdp = nextiword();
	dsta += (LONG)(BYTE)(dstdp & 0xFF);
{	ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
	if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
	dsta += dstdpr;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}}
void op_21b8(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	UWORD dstdp = nextiword();
	dsta += (LONG)(BYTE)(dstdp & 0xFF);
{	ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
	if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
	dsta += dstdpr;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_21b9(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	UWORD dstdp = nextiword();
	dsta += (LONG)(BYTE)(dstdp & 0xFF);
{	ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
	if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
	dsta += dstdpr;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_21ba(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	UWORD dstdp = nextiword();
	dsta += (LONG)(BYTE)(dstdp & 0xFF);
{	ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
	if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
	dsta += dstdpr;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_21bb(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;
{	LONG src = get_long(srca);
{	CPTR dsta = regs.a[dstreg];
	UWORD dstdp = nextiword();
	dsta += (LONG)(BYTE)(dstdp & 0xFF);
{	ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
	if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
	dsta += dstdpr;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}}
void op_21bc(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	LONG src = nextilong();
{	CPTR dsta = regs.a[dstreg];
	UWORD dstdp = nextiword();
	dsta += (LONG)(BYTE)(dstdp & 0xFF);
{	ULONG dstdpr = dstdp & 0x8000 ? regs.a[(dstdp & 0x7000) >> 12] : regs.d[(dstdp & 0x7000) >> 12];
	if (!(dstdp & 0x800)) dstdpr = (LONG)(WORD)dstdpr;
	dsta += dstdpr;
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_21c0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	LONG src = regs.d[srcreg];
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_21c8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	LONG src = regs.a[srcreg];
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_21d0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_21d8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[srcreg] += 4;
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_21e0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_21e8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_21f0(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);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_21f8(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_21f9(UWORD opcode)
{
{{	CPTR srca = nextilong();
	LONG src = get_long(srca);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_21fa(UWORD opcode)
{
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	LONG src = get_long(srca);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_21fb(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;
{	LONG src = get_long(srca);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_21fc(UWORD opcode)
{
{{	LONG src = nextilong();
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_23c0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	LONG src = regs.d[srcreg];
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_23c8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	LONG src = regs.a[srcreg];
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_23d0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_23d8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	regs.a[srcreg] += 4;
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_23e0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 4;
{	CPTR srca = regs.a[srcreg];
	LONG src = get_long(srca);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_23e8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_23f0(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);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_23f8(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	LONG src = get_long(srca);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_23f9(UWORD opcode)
{
{{	CPTR srca = nextilong();
	LONG src = get_long(srca);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}
void op_23fa(UWORD opcode)
{
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	LONG src = get_long(srca);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}
void op_23fb(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;
{	LONG src = get_long(srca);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}}}
void op_23fc(UWORD opcode)
{
{{	LONG src = nextilong();
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((LONG)(src)) == 0;
	regs.n = ((LONG)(src)) < 0;
	put_long(dsta,src);
}}}}

unix.superglobalmegacorp.com

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