File:  [UNIX Amiga Emulator] / uae / CPU Sources / cpu3.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, 2 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_3000(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = regs.d[srcreg];
{	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
}}}}
void op_3008(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = regs.a[srcreg];
{	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
}}}}
void op_3010(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	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;
	regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
}}}}
void op_3018(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	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;
	regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
}}}}}
void op_3020(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	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;
	regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
}}}}}
void op_3028(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	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;
	regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
}}}}
void op_3030(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;
{	WORD src = get_word(srca);
{	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
}}}}}}
void op_3038(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	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;
	regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
}}}}
void op_3039(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
	WORD src = get_word(srca);
{	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
}}}}
void op_303a(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	WORD src = get_word(srca);
{	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
}}}}}
void op_303b(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;
{	WORD src = get_word(srca);
{	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
}}}}}}
void op_303c(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = nextiword();
{	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	regs.d[dstreg] &= ~0xffff; regs.d[dstreg] |= (src) & 0xffff;
}}}}
void op_3040(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = regs.d[srcreg];
{	regs.a[dstreg] = (LONG)(WORD)(src);
}}}}
void op_3048(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = regs.a[srcreg];
{	regs.a[dstreg] = (LONG)(WORD)(src);
}}}}
void op_3050(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[dstreg] = (LONG)(WORD)(src);
}}}}
void op_3058(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[srcreg] += 2;
{	regs.a[dstreg] = (LONG)(WORD)(src);
}}}}}
void op_3060(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[dstreg] = (LONG)(WORD)(src);
}}}}}
void op_3068(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	regs.a[dstreg] = (LONG)(WORD)(src);
}}}}
void op_3070(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;
{	WORD src = get_word(srca);
{	regs.a[dstreg] = (LONG)(WORD)(src);
}}}}}}
void op_3078(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	regs.a[dstreg] = (LONG)(WORD)(src);
}}}}
void op_3079(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
	WORD src = get_word(srca);
{	regs.a[dstreg] = (LONG)(WORD)(src);
}}}}
void op_307a(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	WORD src = get_word(srca);
{	regs.a[dstreg] = (LONG)(WORD)(src);
}}}}}
void op_307b(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;
{	WORD src = get_word(srca);
{	regs.a[dstreg] = (LONG)(WORD)(src);
}}}}}}
void op_307c(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = nextiword();
{	regs.a[dstreg] = (LONG)(WORD)(src);
}}}}
void op_3080(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = regs.d[srcreg];
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_3088(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = regs.a[srcreg];
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_3090(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_3098(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[srcreg] += 2;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_30a0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_30a8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_30b0(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;
{	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_30b8(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_30b9(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_30ba(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_30bb(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;
{	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_30bc(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = nextiword();
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_30c0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = regs.d[srcreg];
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 2;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_30c8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = regs.a[srcreg];
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 2;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_30d0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 2;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_30d8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[srcreg] += 2;
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 2;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_30e0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 2;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_30e8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 2;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_30f0(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;
{	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 2;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}}
void op_30f8(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 2;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_30f9(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 2;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_30fa(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 2;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_30fb(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;
{	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 2;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}}
void op_30fc(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = nextiword();
{	CPTR dsta = regs.a[dstreg];
{	regs.a[dstreg] += 2;
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_3100(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = regs.d[srcreg];
{	regs.a[dstreg] -= 2;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_3108(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = regs.a[srcreg];
{	regs.a[dstreg] -= 2;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_3110(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[dstreg] -= 2;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_3118(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[srcreg] += 2;
{	regs.a[dstreg] -= 2;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_3120(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[dstreg] -= 2;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_3128(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	regs.a[dstreg] -= 2;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_3130(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;
{	WORD src = get_word(srca);
{	regs.a[dstreg] -= 2;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}}
void op_3138(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	regs.a[dstreg] -= 2;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_3139(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
	WORD src = get_word(srca);
{	regs.a[dstreg] -= 2;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_313a(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	WORD src = get_word(srca);
{	regs.a[dstreg] -= 2;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_313b(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;
{	WORD src = get_word(srca);
{	regs.a[dstreg] -= 2;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}}
void op_313c(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = nextiword();
{	regs.a[dstreg] -= 2;
{	CPTR dsta = regs.a[dstreg];
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_3140(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = regs.d[srcreg];
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_3148(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = regs.a[srcreg];
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_3150(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_3158(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[srcreg] += 2;
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_3160(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_3168(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_3170(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;
{	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_3178(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_3179(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_317a(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_317b(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;
{	WORD src = get_word(srca);
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_317c(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = nextiword();
{	CPTR dsta = regs.a[dstreg] + (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_3180(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD 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 = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_3188(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD 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 = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_3190(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(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 = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_3198(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[srcreg] += 2;
{	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 = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_31a0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(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 = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_31a8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	WORD src = get_word(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 = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_31b0(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;
{	WORD src = get_word(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 = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}}
void op_31b8(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = (LONG)(WORD)nextiword();
	WORD src = get_word(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 = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_31b9(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = nextilong();
	WORD src = get_word(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 = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_31ba(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	WORD src = get_word(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 = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_31bb(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;
{	WORD src = get_word(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 = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}}
void op_31bc(UWORD opcode)
{
	ULONG dstreg = (opcode & 3584) >> 9;
{{	WORD src = nextiword();
{	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 = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_31c0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	WORD src = regs.d[srcreg];
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_31c8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	WORD src = regs.a[srcreg];
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_31d0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_31d8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[srcreg] += 2;
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_31e0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_31e8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_31f0(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);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_31f8(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_31f9(UWORD opcode)
{
{{	CPTR srca = nextilong();
	WORD src = get_word(srca);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_31fa(UWORD opcode)
{
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	WORD src = get_word(srca);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_31fb(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;
{	WORD src = get_word(srca);
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_31fc(UWORD opcode)
{
{{	WORD src = nextiword();
{	CPTR dsta = (LONG)(WORD)nextiword();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_33c0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	WORD src = regs.d[srcreg];
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_33c8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	WORD src = regs.a[srcreg];
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_33d0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_33d8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	regs.a[srcreg] += 2;
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_33e0(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	regs.a[srcreg] -= 2;
{	CPTR srca = regs.a[srcreg];
	WORD src = get_word(srca);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_33e8(UWORD opcode)
{
	ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{	CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_33f0(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);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_33f8(UWORD opcode)
{
{{	CPTR srca = (LONG)(WORD)nextiword();
	WORD src = get_word(srca);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_33f9(UWORD opcode)
{
{{	CPTR srca = nextilong();
	WORD src = get_word(srca);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}
void op_33fa(UWORD opcode)
{
{{	CPTR srca = m68k_getpc();
	srca += (LONG)(WORD)nextiword();
{	WORD src = get_word(srca);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}
void op_33fb(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;
{	WORD src = get_word(srca);
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}}}
void op_33fc(UWORD opcode)
{
{{	WORD src = nextiword();
{	CPTR dsta = nextilong();
	regs.v = regs.c = 0;
	regs.z = ((WORD)(src)) == 0;
	regs.n = ((WORD)(src)) < 0;
	put_word(dsta,src);
}}}}

unix.superglobalmegacorp.com

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