updated Musashi to MAME 0.117
[picodrive.git] / cpu / musashi / m68kopnz.c
diff --git a/cpu/musashi/m68kopnz.c b/cpu/musashi/m68kopnz.c
deleted file mode 100644 (file)
index 3c774ed..0000000
+++ /dev/null
@@ -1,8879 +0,0 @@
-#include "m68kcpu.h"\r
-\r
-/* ======================================================================== */\r
-/* ========================= INSTRUCTION HANDLERS ========================= */\r
-/* ======================================================================== */\r
-\r
-\r
-void m68k_op_nbcd_8_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint dst = *r_dst;\r
-       uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1());\r
-\r
-       if(res != 0x9a)\r
-       {\r
-               FLAG_V = ~res; /* Undefined V behavior */\r
-\r
-               if((res & 0x0f) == 0xa)\r
-                       res = (res & 0xf0) + 0x10;\r
-\r
-               res = MASK_OUT_ABOVE_8(res);\r
-\r
-               FLAG_V &= res; /* Undefined V behavior part II */\r
-\r
-               *r_dst = MASK_OUT_BELOW_8(*r_dst) | res;\r
-\r
-               FLAG_Z |= res;\r
-               FLAG_C = CFLAG_SET;\r
-               FLAG_X = XFLAG_SET;\r
-       }\r
-       else\r
-       {\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               FLAG_X = XFLAG_CLEAR;\r
-       }\r
-       FLAG_N = NFLAG_8(res);  /* Undefined N behavior */\r
-}\r
-\r
-\r
-void m68k_op_nbcd_8_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1());\r
-\r
-       if(res != 0x9a)\r
-       {\r
-               FLAG_V = ~res; /* Undefined V behavior */\r
-\r
-               if((res & 0x0f) == 0xa)\r
-                       res = (res & 0xf0) + 0x10;\r
-\r
-               res = MASK_OUT_ABOVE_8(res);\r
-\r
-               FLAG_V &= res; /* Undefined V behavior part II */\r
-\r
-               m68ki_write_8(ea, MASK_OUT_ABOVE_8(res));\r
-\r
-               FLAG_Z |= res;\r
-               FLAG_C = CFLAG_SET;\r
-               FLAG_X = XFLAG_SET;\r
-       }\r
-       else\r
-       {\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               FLAG_X = XFLAG_CLEAR;\r
-       }\r
-       FLAG_N = NFLAG_8(res);  /* Undefined N behavior */\r
-}\r
-\r
-\r
-void m68k_op_nbcd_8_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1());\r
-\r
-       if(res != 0x9a)\r
-       {\r
-               FLAG_V = ~res; /* Undefined V behavior */\r
-\r
-               if((res & 0x0f) == 0xa)\r
-                       res = (res & 0xf0) + 0x10;\r
-\r
-               res = MASK_OUT_ABOVE_8(res);\r
-\r
-               FLAG_V &= res; /* Undefined V behavior part II */\r
-\r
-               m68ki_write_8(ea, MASK_OUT_ABOVE_8(res));\r
-\r
-               FLAG_Z |= res;\r
-               FLAG_C = CFLAG_SET;\r
-               FLAG_X = XFLAG_SET;\r
-       }\r
-       else\r
-       {\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               FLAG_X = XFLAG_CLEAR;\r
-       }\r
-       FLAG_N = NFLAG_8(res);  /* Undefined N behavior */\r
-}\r
-\r
-\r
-void m68k_op_nbcd_8_pi7(void)\r
-{\r
-       uint ea = EA_A7_PI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1());\r
-\r
-       if(res != 0x9a)\r
-       {\r
-               FLAG_V = ~res; /* Undefined V behavior */\r
-\r
-               if((res & 0x0f) == 0xa)\r
-                       res = (res & 0xf0) + 0x10;\r
-\r
-               res = MASK_OUT_ABOVE_8(res);\r
-\r
-               FLAG_V &= res; /* Undefined V behavior part II */\r
-\r
-               m68ki_write_8(ea, MASK_OUT_ABOVE_8(res));\r
-\r
-               FLAG_Z |= res;\r
-               FLAG_C = CFLAG_SET;\r
-               FLAG_X = XFLAG_SET;\r
-       }\r
-       else\r
-       {\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               FLAG_X = XFLAG_CLEAR;\r
-       }\r
-       FLAG_N = NFLAG_8(res);  /* Undefined N behavior */\r
-}\r
-\r
-\r
-void m68k_op_nbcd_8_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1());\r
-\r
-       if(res != 0x9a)\r
-       {\r
-               FLAG_V = ~res; /* Undefined V behavior */\r
-\r
-               if((res & 0x0f) == 0xa)\r
-                       res = (res & 0xf0) + 0x10;\r
-\r
-               res = MASK_OUT_ABOVE_8(res);\r
-\r
-               FLAG_V &= res; /* Undefined V behavior part II */\r
-\r
-               m68ki_write_8(ea, MASK_OUT_ABOVE_8(res));\r
-\r
-               FLAG_Z |= res;\r
-               FLAG_C = CFLAG_SET;\r
-               FLAG_X = XFLAG_SET;\r
-       }\r
-       else\r
-       {\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               FLAG_X = XFLAG_CLEAR;\r
-       }\r
-       FLAG_N = NFLAG_8(res);  /* Undefined N behavior */\r
-}\r
-\r
-\r
-void m68k_op_nbcd_8_pd7(void)\r
-{\r
-       uint ea = EA_A7_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1());\r
-\r
-       if(res != 0x9a)\r
-       {\r
-               FLAG_V = ~res; /* Undefined V behavior */\r
-\r
-               if((res & 0x0f) == 0xa)\r
-                       res = (res & 0xf0) + 0x10;\r
-\r
-               res = MASK_OUT_ABOVE_8(res);\r
-\r
-               FLAG_V &= res; /* Undefined V behavior part II */\r
-\r
-               m68ki_write_8(ea, MASK_OUT_ABOVE_8(res));\r
-\r
-               FLAG_Z |= res;\r
-               FLAG_C = CFLAG_SET;\r
-               FLAG_X = XFLAG_SET;\r
-       }\r
-       else\r
-       {\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               FLAG_X = XFLAG_CLEAR;\r
-       }\r
-       FLAG_N = NFLAG_8(res);  /* Undefined N behavior */\r
-}\r
-\r
-\r
-void m68k_op_nbcd_8_di(void)\r
-{\r
-       uint ea = EA_AY_DI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1());\r
-\r
-       if(res != 0x9a)\r
-       {\r
-               FLAG_V = ~res; /* Undefined V behavior */\r
-\r
-               if((res & 0x0f) == 0xa)\r
-                       res = (res & 0xf0) + 0x10;\r
-\r
-               res = MASK_OUT_ABOVE_8(res);\r
-\r
-               FLAG_V &= res; /* Undefined V behavior part II */\r
-\r
-               m68ki_write_8(ea, MASK_OUT_ABOVE_8(res));\r
-\r
-               FLAG_Z |= res;\r
-               FLAG_C = CFLAG_SET;\r
-               FLAG_X = XFLAG_SET;\r
-       }\r
-       else\r
-       {\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               FLAG_X = XFLAG_CLEAR;\r
-       }\r
-       FLAG_N = NFLAG_8(res);  /* Undefined N behavior */\r
-}\r
-\r
-\r
-void m68k_op_nbcd_8_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1());\r
-\r
-       if(res != 0x9a)\r
-       {\r
-               FLAG_V = ~res; /* Undefined V behavior */\r
-\r
-               if((res & 0x0f) == 0xa)\r
-                       res = (res & 0xf0) + 0x10;\r
-\r
-               res = MASK_OUT_ABOVE_8(res);\r
-\r
-               FLAG_V &= res; /* Undefined V behavior part II */\r
-\r
-               m68ki_write_8(ea, MASK_OUT_ABOVE_8(res));\r
-\r
-               FLAG_Z |= res;\r
-               FLAG_C = CFLAG_SET;\r
-               FLAG_X = XFLAG_SET;\r
-       }\r
-       else\r
-       {\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               FLAG_X = XFLAG_CLEAR;\r
-       }\r
-       FLAG_N = NFLAG_8(res);  /* Undefined N behavior */\r
-}\r
-\r
-\r
-void m68k_op_nbcd_8_aw(void)\r
-{\r
-       uint ea = EA_AW_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1());\r
-\r
-       if(res != 0x9a)\r
-       {\r
-               FLAG_V = ~res; /* Undefined V behavior */\r
-\r
-               if((res & 0x0f) == 0xa)\r
-                       res = (res & 0xf0) + 0x10;\r
-\r
-               res = MASK_OUT_ABOVE_8(res);\r
-\r
-               FLAG_V &= res; /* Undefined V behavior part II */\r
-\r
-               m68ki_write_8(ea, MASK_OUT_ABOVE_8(res));\r
-\r
-               FLAG_Z |= res;\r
-               FLAG_C = CFLAG_SET;\r
-               FLAG_X = XFLAG_SET;\r
-       }\r
-       else\r
-       {\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               FLAG_X = XFLAG_CLEAR;\r
-       }\r
-       FLAG_N = NFLAG_8(res);  /* Undefined N behavior */\r
-}\r
-\r
-\r
-void m68k_op_nbcd_8_al(void)\r
-{\r
-       uint ea = EA_AL_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = MASK_OUT_ABOVE_8(0x9a - dst - XFLAG_AS_1());\r
-\r
-       if(res != 0x9a)\r
-       {\r
-               FLAG_V = ~res; /* Undefined V behavior */\r
-\r
-               if((res & 0x0f) == 0xa)\r
-                       res = (res & 0xf0) + 0x10;\r
-\r
-               res = MASK_OUT_ABOVE_8(res);\r
-\r
-               FLAG_V &= res; /* Undefined V behavior part II */\r
-\r
-               m68ki_write_8(ea, MASK_OUT_ABOVE_8(res));\r
-\r
-               FLAG_Z |= res;\r
-               FLAG_C = CFLAG_SET;\r
-               FLAG_X = XFLAG_SET;\r
-       }\r
-       else\r
-       {\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               FLAG_X = XFLAG_CLEAR;\r
-       }\r
-       FLAG_N = NFLAG_8(res);  /* Undefined N behavior */\r
-}\r
-\r
-\r
-void m68k_op_neg_8_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint res = 0 - MASK_OUT_ABOVE_8(*r_dst);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_C = FLAG_X = CFLAG_8(res);\r
-       FLAG_V = *r_dst & res;\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_neg_8_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_C = FLAG_X = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_8_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_C = FLAG_X = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_8_pi7(void)\r
-{\r
-       uint ea = EA_A7_PI_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_C = FLAG_X = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_8_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_C = FLAG_X = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_8_pd7(void)\r
-{\r
-       uint ea = EA_A7_PD_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_C = FLAG_X = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_8_di(void)\r
-{\r
-       uint ea = EA_AY_DI_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_C = FLAG_X = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_8_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_C = FLAG_X = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_8_aw(void)\r
-{\r
-       uint ea = EA_AW_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_C = FLAG_X = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_8_al(void)\r
-{\r
-       uint ea = EA_AL_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_C = FLAG_X = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_16_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint res = 0 - MASK_OUT_ABOVE_16(*r_dst);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_C = FLAG_X = CFLAG_16(res);\r
-       FLAG_V = (*r_dst & res)>>8;\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_neg_16_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_C = FLAG_X = CFLAG_16(res);\r
-       FLAG_V = (src & res)>>8;\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_16_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_C = FLAG_X = CFLAG_16(res);\r
-       FLAG_V = (src & res)>>8;\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_16_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_C = FLAG_X = CFLAG_16(res);\r
-       FLAG_V = (src & res)>>8;\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_16_di(void)\r
-{\r
-       uint ea = EA_AY_DI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_C = FLAG_X = CFLAG_16(res);\r
-       FLAG_V = (src & res)>>8;\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_16_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_C = FLAG_X = CFLAG_16(res);\r
-       FLAG_V = (src & res)>>8;\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_16_aw(void)\r
-{\r
-       uint ea = EA_AW_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_C = FLAG_X = CFLAG_16(res);\r
-       FLAG_V = (src & res)>>8;\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_16_al(void)\r
-{\r
-       uint ea = EA_AL_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_C = FLAG_X = CFLAG_16(res);\r
-       FLAG_V = (src & res)>>8;\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_32_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint res = 0 - *r_dst;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_C = FLAG_X = CFLAG_SUB_32(*r_dst, 0, res);\r
-       FLAG_V = (*r_dst & res)>>24;\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_neg_32_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_32();\r
-       uint src = m68ki_read_32(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res);\r
-       FLAG_V = (src & res)>>24;\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_32_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_32();\r
-       uint src = m68ki_read_32(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res);\r
-       FLAG_V = (src & res)>>24;\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_32_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_32();\r
-       uint src = m68ki_read_32(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res);\r
-       FLAG_V = (src & res)>>24;\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_32_di(void)\r
-{\r
-       uint ea = EA_AY_DI_32();\r
-       uint src = m68ki_read_32(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res);\r
-       FLAG_V = (src & res)>>24;\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_32_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_32();\r
-       uint src = m68ki_read_32(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res);\r
-       FLAG_V = (src & res)>>24;\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_32_aw(void)\r
-{\r
-       uint ea = EA_AW_32();\r
-       uint src = m68ki_read_32(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res);\r
-       FLAG_V = (src & res)>>24;\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_neg_32_al(void)\r
-{\r
-       uint ea = EA_AL_32();\r
-       uint src = m68ki_read_32(ea);\r
-       uint res = 0 - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_C = FLAG_X = CFLAG_SUB_32(src, 0, res);\r
-       FLAG_V = (src & res)>>24;\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_negx_8_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint res = 0 - MASK_OUT_ABOVE_8(*r_dst) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = *r_dst & res;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | res;\r
-}\r
-\r
-\r
-void m68k_op_negx_8_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_8_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_8_pi7(void)\r
-{\r
-       uint ea = EA_A7_PI_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_8_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_8_pd7(void)\r
-{\r
-       uint ea = EA_A7_PD_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_8_di(void)\r
-{\r
-       uint ea = EA_AY_DI_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_8_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_8_aw(void)\r
-{\r
-       uint ea = EA_AW_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_8_al(void)\r
-{\r
-       uint ea = EA_AL_8();\r
-       uint src = m68ki_read_8(ea);\r
-       uint res = 0 - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = src & res;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_16_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint res = 0 - MASK_OUT_ABOVE_16(*r_dst) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = (*r_dst & res)>>8;\r
-\r
-       res = MASK_OUT_ABOVE_16(res);\r
-       FLAG_Z |= res;\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | res;\r
-}\r
-\r
-\r
-void m68k_op_negx_16_ai(void)\r
-{\r
-       uint ea  = EA_AY_AI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = (src & res)>>8;\r
-\r
-       res = MASK_OUT_ABOVE_16(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_16(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_16_pi(void)\r
-{\r
-       uint ea  = EA_AY_PI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = (src & res)>>8;\r
-\r
-       res = MASK_OUT_ABOVE_16(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_16(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_16_pd(void)\r
-{\r
-       uint ea  = EA_AY_PD_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = (src & res)>>8;\r
-\r
-       res = MASK_OUT_ABOVE_16(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_16(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_16_di(void)\r
-{\r
-       uint ea  = EA_AY_DI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = (src & res)>>8;\r
-\r
-       res = MASK_OUT_ABOVE_16(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_16(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_16_ix(void)\r
-{\r
-       uint ea  = EA_AY_IX_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = (src & res)>>8;\r
-\r
-       res = MASK_OUT_ABOVE_16(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_16(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_16_aw(void)\r
-{\r
-       uint ea  = EA_AW_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = (src & res)>>8;\r
-\r
-       res = MASK_OUT_ABOVE_16(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_16(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_16_al(void)\r
-{\r
-       uint ea  = EA_AL_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = 0 - MASK_OUT_ABOVE_16(src) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = (src & res)>>8;\r
-\r
-       res = MASK_OUT_ABOVE_16(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_16(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_32_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint res = 0 - MASK_OUT_ABOVE_32(*r_dst) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(*r_dst, 0, res);\r
-       FLAG_V = (*r_dst & res)>>24;\r
-\r
-       res = MASK_OUT_ABOVE_32(res);\r
-       FLAG_Z |= res;\r
-\r
-       *r_dst = res;\r
-}\r
-\r
-\r
-void m68k_op_negx_32_ai(void)\r
-{\r
-       uint ea  = EA_AY_AI_32();\r
-       uint src = m68ki_read_32(ea);\r
-       uint res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res);\r
-       FLAG_V = (src & res)>>24;\r
-\r
-       res = MASK_OUT_ABOVE_32(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_32(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_32_pi(void)\r
-{\r
-       uint ea  = EA_AY_PI_32();\r
-       uint src = m68ki_read_32(ea);\r
-       uint res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res);\r
-       FLAG_V = (src & res)>>24;\r
-\r
-       res = MASK_OUT_ABOVE_32(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_32(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_32_pd(void)\r
-{\r
-       uint ea  = EA_AY_PD_32();\r
-       uint src = m68ki_read_32(ea);\r
-       uint res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res);\r
-       FLAG_V = (src & res)>>24;\r
-\r
-       res = MASK_OUT_ABOVE_32(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_32(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_32_di(void)\r
-{\r
-       uint ea  = EA_AY_DI_32();\r
-       uint src = m68ki_read_32(ea);\r
-       uint res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res);\r
-       FLAG_V = (src & res)>>24;\r
-\r
-       res = MASK_OUT_ABOVE_32(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_32(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_32_ix(void)\r
-{\r
-       uint ea  = EA_AY_IX_32();\r
-       uint src = m68ki_read_32(ea);\r
-       uint res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res);\r
-       FLAG_V = (src & res)>>24;\r
-\r
-       res = MASK_OUT_ABOVE_32(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_32(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_32_aw(void)\r
-{\r
-       uint ea  = EA_AW_32();\r
-       uint src = m68ki_read_32(ea);\r
-       uint res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res);\r
-       FLAG_V = (src & res)>>24;\r
-\r
-       res = MASK_OUT_ABOVE_32(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_32(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_negx_32_al(void)\r
-{\r
-       uint ea  = EA_AL_32();\r
-       uint src = m68ki_read_32(ea);\r
-       uint res = 0 - MASK_OUT_ABOVE_32(src) - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, 0, res);\r
-       FLAG_V = (src & res)>>24;\r
-\r
-       res = MASK_OUT_ABOVE_32(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_32(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_nop(void)\r
-{\r
-       m68ki_trace_t0();                                  /* auto-disable (see m68kcpu.h) */\r
-}\r
-\r
-\r
-void m68k_op_not_8_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint res = MASK_OUT_ABOVE_8(~*r_dst);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | res;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_8_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_8();\r
-       uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_8_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_8();\r
-       uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_8_pi7(void)\r
-{\r
-       uint ea = EA_A7_PI_8();\r
-       uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_8_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_8();\r
-       uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_8_pd7(void)\r
-{\r
-       uint ea = EA_A7_PD_8();\r
-       uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_8_di(void)\r
-{\r
-       uint ea = EA_AY_DI_8();\r
-       uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_8_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_8();\r
-       uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_8_aw(void)\r
-{\r
-       uint ea = EA_AW_8();\r
-       uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_8_al(void)\r
-{\r
-       uint ea = EA_AL_8();\r
-       uint res = MASK_OUT_ABOVE_8(~m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_16_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint res = MASK_OUT_ABOVE_16(~*r_dst);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | res;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_16_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_16();\r
-       uint res = MASK_OUT_ABOVE_16(~m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_16_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_16();\r
-       uint res = MASK_OUT_ABOVE_16(~m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_16_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_16();\r
-       uint res = MASK_OUT_ABOVE_16(~m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_16_di(void)\r
-{\r
-       uint ea = EA_AY_DI_16();\r
-       uint res = MASK_OUT_ABOVE_16(~m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_16_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_16();\r
-       uint res = MASK_OUT_ABOVE_16(~m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_16_aw(void)\r
-{\r
-       uint ea = EA_AW_16();\r
-       uint res = MASK_OUT_ABOVE_16(~m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_16_al(void)\r
-{\r
-       uint ea = EA_AL_16();\r
-       uint res = MASK_OUT_ABOVE_16(~m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_32_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint res = *r_dst = MASK_OUT_ABOVE_32(~*r_dst);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_32_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_32();\r
-       uint res = MASK_OUT_ABOVE_32(~m68ki_read_32(ea));\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_32_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_32();\r
-       uint res = MASK_OUT_ABOVE_32(~m68ki_read_32(ea));\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_32_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_32();\r
-       uint res = MASK_OUT_ABOVE_32(~m68ki_read_32(ea));\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_32_di(void)\r
-{\r
-       uint ea = EA_AY_DI_32();\r
-       uint res = MASK_OUT_ABOVE_32(~m68ki_read_32(ea));\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_32_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_32();\r
-       uint res = MASK_OUT_ABOVE_32(~m68ki_read_32(ea));\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_32_aw(void)\r
-{\r
-       uint ea = EA_AW_32();\r
-       uint res = MASK_OUT_ABOVE_32(~m68ki_read_32(ea));\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_not_32_al(void)\r
-{\r
-       uint ea = EA_AL_32();\r
-       uint res = MASK_OUT_ABOVE_32(~m68ki_read_32(ea));\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_er_d(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8((DX |= MASK_OUT_ABOVE_8(DY)));\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_er_ai(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8((DX |= OPER_AY_AI_8()));\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_er_pi(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8((DX |= OPER_AY_PI_8()));\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_er_pi7(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8((DX |= OPER_A7_PI_8()));\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_er_pd(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8((DX |= OPER_AY_PD_8()));\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_er_pd7(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8((DX |= OPER_A7_PD_8()));\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_er_di(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8((DX |= OPER_AY_DI_8()));\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_er_ix(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8((DX |= OPER_AY_IX_8()));\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_er_aw(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8((DX |= OPER_AW_8()));\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_er_al(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8((DX |= OPER_AL_8()));\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_er_pcdi(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8((DX |= OPER_PCDI_8()));\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_er_pcix(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8((DX |= OPER_PCIX_8()));\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_er_i(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8((DX |= OPER_I_8()));\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_er_d(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_16((DX |= MASK_OUT_ABOVE_16(DY)));\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_er_ai(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_16((DX |= OPER_AY_AI_16()));\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_er_pi(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_16((DX |= OPER_AY_PI_16()));\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_er_pd(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_16((DX |= OPER_AY_PD_16()));\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_er_di(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_16((DX |= OPER_AY_DI_16()));\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_er_ix(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_16((DX |= OPER_AY_IX_16()));\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_er_aw(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_16((DX |= OPER_AW_16()));\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_er_al(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_16((DX |= OPER_AL_16()));\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_er_pcdi(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_16((DX |= OPER_PCDI_16()));\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_er_pcix(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_16((DX |= OPER_PCIX_16()));\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_er_i(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_16((DX |= OPER_I_16()));\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_er_d(void)\r
-{\r
-       uint res = DX |= DY;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_er_ai(void)\r
-{\r
-       uint res = DX |= OPER_AY_AI_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_er_pi(void)\r
-{\r
-       uint res = DX |= OPER_AY_PI_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_er_pd(void)\r
-{\r
-       uint res = DX |= OPER_AY_PD_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_er_di(void)\r
-{\r
-       uint res = DX |= OPER_AY_DI_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_er_ix(void)\r
-{\r
-       uint res = DX |= OPER_AY_IX_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_er_aw(void)\r
-{\r
-       uint res = DX |= OPER_AW_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_er_al(void)\r
-{\r
-       uint res = DX |= OPER_AL_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_er_pcdi(void)\r
-{\r
-       uint res = DX |= OPER_PCDI_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_er_pcix(void)\r
-{\r
-       uint res = DX |= OPER_PCIX_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_er_i(void)\r
-{\r
-       uint res = DX |= OPER_I_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_re_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_8();\r
-       uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_re_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_8();\r
-       uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_re_pi7(void)\r
-{\r
-       uint ea = EA_A7_PI_8();\r
-       uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_re_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_8();\r
-       uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_re_pd7(void)\r
-{\r
-       uint ea = EA_A7_PD_8();\r
-       uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_re_di(void)\r
-{\r
-       uint ea = EA_AY_DI_8();\r
-       uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_re_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_8();\r
-       uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_re_aw(void)\r
-{\r
-       uint ea = EA_AW_8();\r
-       uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_8_re_al(void)\r
-{\r
-       uint ea = EA_AL_8();\r
-       uint res = MASK_OUT_ABOVE_8(DX | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_re_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_16();\r
-       uint res = MASK_OUT_ABOVE_16(DX | m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_re_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_16();\r
-       uint res = MASK_OUT_ABOVE_16(DX | m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_re_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_16();\r
-       uint res = MASK_OUT_ABOVE_16(DX | m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_re_di(void)\r
-{\r
-       uint ea = EA_AY_DI_16();\r
-       uint res = MASK_OUT_ABOVE_16(DX | m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_re_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_16();\r
-       uint res = MASK_OUT_ABOVE_16(DX | m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_re_aw(void)\r
-{\r
-       uint ea = EA_AW_16();\r
-       uint res = MASK_OUT_ABOVE_16(DX | m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_16_re_al(void)\r
-{\r
-       uint ea = EA_AL_16();\r
-       uint res = MASK_OUT_ABOVE_16(DX | m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_re_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_32();\r
-       uint res = DX | m68ki_read_32(ea);\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_re_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_32();\r
-       uint res = DX | m68ki_read_32(ea);\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_re_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_32();\r
-       uint res = DX | m68ki_read_32(ea);\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_re_di(void)\r
-{\r
-       uint ea = EA_AY_DI_32();\r
-       uint res = DX | m68ki_read_32(ea);\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_re_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_32();\r
-       uint res = DX | m68ki_read_32(ea);\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_re_aw(void)\r
-{\r
-       uint ea = EA_AW_32();\r
-       uint res = DX | m68ki_read_32(ea);\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_or_32_re_al(void)\r
-{\r
-       uint ea = EA_AL_32();\r
-       uint res = DX | m68ki_read_32(ea);\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_8_d(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8((DY |= OPER_I_8()));\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_8_ai(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_AY_AI_8();\r
-       uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_8_pi(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_AY_PI_8();\r
-       uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_8_pi7(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_A7_PI_8();\r
-       uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_8_pd(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_AY_PD_8();\r
-       uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_8_pd7(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_A7_PD_8();\r
-       uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_8_di(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_AY_DI_8();\r
-       uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_8_ix(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_AY_IX_8();\r
-       uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_8_aw(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_AW_8();\r
-       uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_8_al(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_AL_8();\r
-       uint res = MASK_OUT_ABOVE_8(src | m68ki_read_8(ea));\r
-\r
-       m68ki_write_8(ea, res);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_16_d(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_16(DY |= OPER_I_16());\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_16_ai(void)\r
-{\r
-       uint src = OPER_I_16();\r
-       uint ea = EA_AY_AI_16();\r
-       uint res = MASK_OUT_ABOVE_16(src | m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_16_pi(void)\r
-{\r
-       uint src = OPER_I_16();\r
-       uint ea = EA_AY_PI_16();\r
-       uint res = MASK_OUT_ABOVE_16(src | m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_16_pd(void)\r
-{\r
-       uint src = OPER_I_16();\r
-       uint ea = EA_AY_PD_16();\r
-       uint res = MASK_OUT_ABOVE_16(src | m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_16_di(void)\r
-{\r
-       uint src = OPER_I_16();\r
-       uint ea = EA_AY_DI_16();\r
-       uint res = MASK_OUT_ABOVE_16(src | m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_16_ix(void)\r
-{\r
-       uint src = OPER_I_16();\r
-       uint ea = EA_AY_IX_16();\r
-       uint res = MASK_OUT_ABOVE_16(src | m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_16_aw(void)\r
-{\r
-       uint src = OPER_I_16();\r
-       uint ea = EA_AW_16();\r
-       uint res = MASK_OUT_ABOVE_16(src | m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_16_al(void)\r
-{\r
-       uint src = OPER_I_16();\r
-       uint ea = EA_AL_16();\r
-       uint res = MASK_OUT_ABOVE_16(src | m68ki_read_16(ea));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_32_d(void)\r
-{\r
-       uint res = DY |= OPER_I_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_32_ai(void)\r
-{\r
-       uint src = OPER_I_32();\r
-       uint ea = EA_AY_AI_32();\r
-       uint res = src | m68ki_read_32(ea);\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_32_pi(void)\r
-{\r
-       uint src = OPER_I_32();\r
-       uint ea = EA_AY_PI_32();\r
-       uint res = src | m68ki_read_32(ea);\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_32_pd(void)\r
-{\r
-       uint src = OPER_I_32();\r
-       uint ea = EA_AY_PD_32();\r
-       uint res = src | m68ki_read_32(ea);\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_32_di(void)\r
-{\r
-       uint src = OPER_I_32();\r
-       uint ea = EA_AY_DI_32();\r
-       uint res = src | m68ki_read_32(ea);\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_32_ix(void)\r
-{\r
-       uint src = OPER_I_32();\r
-       uint ea = EA_AY_IX_32();\r
-       uint res = src | m68ki_read_32(ea);\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_32_aw(void)\r
-{\r
-       uint src = OPER_I_32();\r
-       uint ea = EA_AW_32();\r
-       uint res = src | m68ki_read_32(ea);\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_32_al(void)\r
-{\r
-       uint src = OPER_I_32();\r
-       uint ea = EA_AL_32();\r
-       uint res = src | m68ki_read_32(ea);\r
-\r
-       m68ki_write_32(ea, res);\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ori_16_toc(void)\r
-{\r
-       m68ki_set_ccr(m68ki_get_ccr() | OPER_I_16());\r
-}\r
-\r
-\r
-void m68k_op_ori_16_tos(void)\r
-{\r
-       if(FLAG_S)\r
-       {\r
-               uint src = OPER_I_16();\r
-               m68ki_trace_t0();                          /* auto-disable (see m68kcpu.h) */\r
-               m68ki_set_sr(m68ki_get_sr() | src);\r
-               return;\r
-       }\r
-       m68ki_exception_privilege_violation();\r
-}\r
-\r
-\r
-void m68k_op_pack_16_rr(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               /* Note: DX and DY are reversed in Motorola's docs */\r
-               uint src = DY + OPER_I_16();\r
-               uint* r_dst = &DX;\r
-\r
-               *r_dst = MASK_OUT_BELOW_8(*r_dst) | ((src >> 4) & 0x00f0) | (src & 0x000f);\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_pack_16_mm_ax7(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               /* Note: AX and AY are reversed in Motorola's docs */\r
-               uint ea_src = EA_AY_PD_8();\r
-               uint src = m68ki_read_8(ea_src);\r
-               ea_src = EA_AY_PD_8();\r
-               src = ((src << 8) | m68ki_read_8(ea_src)) + OPER_I_16();\r
-\r
-               m68ki_write_8(EA_A7_PD_8(), ((src >> 4) & 0x00f0) | (src & 0x000f));\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_pack_16_mm_ay7(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               /* Note: AX and AY are reversed in Motorola's docs */\r
-               uint ea_src = EA_A7_PD_8();\r
-               uint src = m68ki_read_8(ea_src);\r
-               ea_src = EA_A7_PD_8();\r
-               src = ((src << 8) | m68ki_read_8(ea_src)) + OPER_I_16();\r
-\r
-               m68ki_write_8(EA_AX_PD_8(), ((src >> 4) & 0x00f0) | (src & 0x000f));\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_pack_16_mm_axy7(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               uint ea_src = EA_A7_PD_8();\r
-               uint src = m68ki_read_8(ea_src);\r
-               ea_src = EA_A7_PD_8();\r
-               src = ((src << 8) | m68ki_read_8(ea_src)) + OPER_I_16();\r
-\r
-               m68ki_write_8(EA_A7_PD_8(), ((src >> 4) & 0x00f0) | (src & 0x000f));\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_pack_16_mm(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               /* Note: AX and AY are reversed in Motorola's docs */\r
-               uint ea_src = EA_AY_PD_8();\r
-               uint src = m68ki_read_8(ea_src);\r
-               ea_src = EA_AY_PD_8();\r
-               src = ((src << 8) | m68ki_read_8(ea_src)) + OPER_I_16();\r
-\r
-               m68ki_write_8(EA_AX_PD_8(), ((src >> 4) & 0x00f0) | (src & 0x000f));\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_pea_32_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_32();\r
-\r
-       m68ki_push_32(ea);\r
-}\r
-\r
-\r
-void m68k_op_pea_32_di(void)\r
-{\r
-       uint ea = EA_AY_DI_32();\r
-\r
-       m68ki_push_32(ea);\r
-}\r
-\r
-\r
-void m68k_op_pea_32_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_32();\r
-\r
-       m68ki_push_32(ea);\r
-}\r
-\r
-\r
-void m68k_op_pea_32_aw(void)\r
-{\r
-       uint ea = EA_AW_32();\r
-\r
-       m68ki_push_32(ea);\r
-}\r
-\r
-\r
-void m68k_op_pea_32_al(void)\r
-{\r
-       uint ea = EA_AL_32();\r
-\r
-       m68ki_push_32(ea);\r
-}\r
-\r
-\r
-void m68k_op_pea_32_pcdi(void)\r
-{\r
-       uint ea = EA_PCDI_32();\r
-\r
-       m68ki_push_32(ea);\r
-}\r
-\r
-\r
-void m68k_op_pea_32_pcix(void)\r
-{\r
-       uint ea = EA_PCIX_32();\r
-\r
-       m68ki_push_32(ea);\r
-}\r
-\r
-\r
-void m68k_op_pflush_32(void)\r
-{\r
-       if(CPU_TYPE_IS_040_PLUS(CPU_TYPE))\r
-       {\r
-               // Nothing to do, unless address translation cache is emulated\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_reset(void)\r
-{\r
-       if(FLAG_S)\r
-       {\r
-               m68ki_output_reset();              /* auto-disable (see m68kcpu.h) */\r
-               USE_CYCLES(CYC_RESET);\r
-               return;\r
-       }\r
-       m68ki_exception_privilege_violation();\r
-}\r
-\r
-\r
-void m68k_op_ror_8_s(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint orig_shift = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint shift = orig_shift & 7;\r
-       uint src = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = ROR_8(src, shift);\r
-\r
-       if(orig_shift != 0)\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | res;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src << (9-orig_shift);\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ror_16_s(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint shift = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint src = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = ROR_16(src, shift);\r
-\r
-       if(shift != 0)\r
-               USE_CYCLES(shift<<CYC_SHIFT);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | res;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src << (9-shift);\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ror_32_s(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint shift = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint64 src = *r_dst;\r
-       uint res = ROR_32(src, shift);\r
-\r
-       if(shift != 0)\r
-               USE_CYCLES(shift<<CYC_SHIFT);\r
-\r
-       *r_dst = res;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src << (9-shift);\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ror_8_r(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint orig_shift = DX & 0x3f;\r
-       uint shift = orig_shift & 7;\r
-       uint src = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = ROR_8(src, shift);\r
-\r
-       if(orig_shift != 0)\r
-       {\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-               *r_dst = MASK_OUT_BELOW_8(*r_dst) | res;\r
-               FLAG_C = src << (8-((shift-1)&7));\r
-               FLAG_N = NFLAG_8(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               return;\r
-       }\r
-\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_N = NFLAG_8(src);\r
-       FLAG_Z = src;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ror_16_r(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint orig_shift = DX & 0x3f;\r
-       uint shift = orig_shift & 15;\r
-       uint src = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = ROR_16(src, shift);\r
-\r
-       if(orig_shift != 0)\r
-       {\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-               *r_dst = MASK_OUT_BELOW_16(*r_dst) | res;\r
-               FLAG_C = (src >> ((shift - 1) & 15)) << 8;\r
-               FLAG_N = NFLAG_16(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               return;\r
-       }\r
-\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_N = NFLAG_16(src);\r
-       FLAG_Z = src;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ror_32_r(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint orig_shift = DX & 0x3f;\r
-       uint shift = orig_shift & 31;\r
-       uint64 src = *r_dst;\r
-       uint res = ROR_32(src, shift);\r
-\r
-       if(orig_shift != 0)\r
-       {\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-               *r_dst = res;\r
-               FLAG_C = (src >> ((shift - 1) & 31)) << 8;\r
-               FLAG_N = NFLAG_32(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               return;\r
-       }\r
-\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_N = NFLAG_32(src);\r
-       FLAG_Z = src;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ror_16_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROR_16(src, 1);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src << 8;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ror_16_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROR_16(src, 1);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src << 8;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ror_16_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROR_16(src, 1);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src << 8;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ror_16_di(void)\r
-{\r
-       uint ea = EA_AY_DI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROR_16(src, 1);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src << 8;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ror_16_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROR_16(src, 1);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src << 8;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ror_16_aw(void)\r
-{\r
-       uint ea = EA_AW_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROR_16(src, 1);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src << 8;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_ror_16_al(void)\r
-{\r
-       uint ea = EA_AL_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROR_16(src, 1);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src << 8;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_rol_8_s(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint orig_shift = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint shift = orig_shift & 7;\r
-       uint src = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = ROL_8(src, shift);\r
-\r
-       if(orig_shift != 0)\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | res;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src << orig_shift;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_rol_16_s(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint shift = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint src = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = ROL_16(src, shift);\r
-\r
-       if(shift != 0)\r
-               USE_CYCLES(shift<<CYC_SHIFT);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | res;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src >> (8-shift);\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_rol_32_s(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint shift = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint64 src = *r_dst;\r
-       uint res = ROL_32(src, shift);\r
-\r
-       if(shift != 0)\r
-               USE_CYCLES(shift<<CYC_SHIFT);\r
-\r
-       *r_dst = res;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src >> (24-shift);\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_rol_8_r(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint orig_shift = DX & 0x3f;\r
-       uint shift = orig_shift & 7;\r
-       uint src = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = ROL_8(src, shift);\r
-\r
-       if(orig_shift != 0)\r
-       {\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-               if(shift != 0)\r
-               {\r
-                       *r_dst = MASK_OUT_BELOW_8(*r_dst) | res;\r
-                       FLAG_C = src << shift;\r
-                       FLAG_N = NFLAG_8(res);\r
-                       FLAG_Z = res;\r
-                       FLAG_V = VFLAG_CLEAR;\r
-                       return;\r
-               }\r
-               FLAG_C = (src & 1)<<8;\r
-               FLAG_N = NFLAG_8(src);\r
-               FLAG_Z = src;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               return;\r
-       }\r
-\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_N = NFLAG_8(src);\r
-       FLAG_Z = src;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_rol_16_r(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint orig_shift = DX & 0x3f;\r
-       uint shift = orig_shift & 15;\r
-       uint src = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = MASK_OUT_ABOVE_16(ROL_16(src, shift));\r
-\r
-       if(orig_shift != 0)\r
-       {\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-               if(shift != 0)\r
-               {\r
-                       *r_dst = MASK_OUT_BELOW_16(*r_dst) | res;\r
-                       FLAG_C = (src << shift) >> 8;\r
-                       FLAG_N = NFLAG_16(res);\r
-                       FLAG_Z = res;\r
-                       FLAG_V = VFLAG_CLEAR;\r
-                       return;\r
-               }\r
-               FLAG_C = (src & 1)<<8;\r
-               FLAG_N = NFLAG_16(src);\r
-               FLAG_Z = src;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               return;\r
-       }\r
-\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_N = NFLAG_16(src);\r
-       FLAG_Z = src;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_rol_32_r(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint orig_shift = DX & 0x3f;\r
-       uint shift = orig_shift & 31;\r
-       uint64 src = *r_dst;\r
-       uint res = ROL_32(src, shift);\r
-\r
-       if(orig_shift != 0)\r
-       {\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-               *r_dst = res;\r
-\r
-               FLAG_C = (src >> (32 - shift)) << 8;\r
-               if (shift == 0) FLAG_C = src << 8; // notaz\r
-               FLAG_N = NFLAG_32(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               return;\r
-       }\r
-\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_N = NFLAG_32(src);\r
-       FLAG_Z = src;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_rol_16_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = MASK_OUT_ABOVE_16(ROL_16(src, 1));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src >> 7;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_rol_16_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = MASK_OUT_ABOVE_16(ROL_16(src, 1));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src >> 7;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_rol_16_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = MASK_OUT_ABOVE_16(ROL_16(src, 1));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src >> 7;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_rol_16_di(void)\r
-{\r
-       uint ea = EA_AY_DI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = MASK_OUT_ABOVE_16(ROL_16(src, 1));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src >> 7;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_rol_16_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = MASK_OUT_ABOVE_16(ROL_16(src, 1));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src >> 7;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_rol_16_aw(void)\r
-{\r
-       uint ea = EA_AW_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = MASK_OUT_ABOVE_16(ROL_16(src, 1));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src >> 7;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_rol_16_al(void)\r
-{\r
-       uint ea = EA_AL_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = MASK_OUT_ABOVE_16(ROL_16(src, 1));\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_C = src >> 7;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxr_8_s(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint shift = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint src = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = ROR_9(src | (XFLAG_AS_1() << 8), shift);\r
-\r
-       if(shift != 0)\r
-               USE_CYCLES(shift<<CYC_SHIFT);\r
-\r
-       FLAG_C = FLAG_X = res;\r
-       res = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | res;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxr_16_s(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint shift = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint src = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = ROR_17(src | (XFLAG_AS_1() << 16), shift);\r
-\r
-       if(shift != 0)\r
-               USE_CYCLES(shift<<CYC_SHIFT);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | res;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxr_32_s(void)\r
-{\r
-#if M68K_USE_64_BIT\r
-\r
-       uint*  r_dst = &DY;\r
-       uint   shift = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint64 src   = *r_dst;\r
-       uint64 res   = src | (((uint64)XFLAG_AS_1()) << 32);\r
-\r
-       if(shift != 0)\r
-               USE_CYCLES(shift<<CYC_SHIFT);\r
-\r
-       res = ROR_33_64(res, shift);\r
-\r
-       FLAG_C = FLAG_X = res >> 24;\r
-       res = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst =  res;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-\r
-#else\r
-\r
-       uint* r_dst = &DY;\r
-       uint shift = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint src = *r_dst;\r
-       uint res = MASK_OUT_ABOVE_32((ROR_33(src, shift) & ~(1 << (32 - shift))) | (XFLAG_AS_1() << (32 - shift)));\r
-       uint new_x_flag = src & (1 << (shift - 1));\r
-\r
-       if(shift != 0)\r
-               USE_CYCLES(shift<<CYC_SHIFT);\r
-\r
-       *r_dst = res;\r
-\r
-       FLAG_C = FLAG_X = (new_x_flag != 0)<<8;\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-\r
-#endif\r
-}\r
-\r
-\r
-void m68k_op_roxr_8_r(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint orig_shift = DX & 0x3f;\r
-\r
-       if(orig_shift != 0)\r
-       {\r
-               uint shift = orig_shift % 9;\r
-               uint src   = MASK_OUT_ABOVE_8(*r_dst);\r
-               uint res   = ROR_9(src | (XFLAG_AS_1() << 8), shift);\r
-\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-               FLAG_C = FLAG_X = res;\r
-               res = MASK_OUT_ABOVE_8(res);\r
-\r
-               *r_dst = MASK_OUT_BELOW_8(*r_dst) | res;\r
-               FLAG_N = NFLAG_8(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               return;\r
-       }\r
-\r
-       FLAG_C = FLAG_X;\r
-       FLAG_N = NFLAG_8(*r_dst);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(*r_dst);\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxr_16_r(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint orig_shift = DX & 0x3f;\r
-\r
-       if(orig_shift != 0)\r
-       {\r
-               uint shift = orig_shift % 17;\r
-               uint src   = MASK_OUT_ABOVE_16(*r_dst);\r
-               uint res   = ROR_17(src | (XFLAG_AS_1() << 16), shift);\r
-\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-               FLAG_C = FLAG_X = res >> 8;\r
-               res = MASK_OUT_ABOVE_16(res);\r
-\r
-               *r_dst = MASK_OUT_BELOW_16(*r_dst) | res;\r
-               FLAG_N = NFLAG_16(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               return;\r
-       }\r
-\r
-       FLAG_C = FLAG_X;\r
-       FLAG_N = NFLAG_16(*r_dst);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(*r_dst);\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxr_32_r(void)\r
-{\r
-#if M68K_USE_64_BIT\r
-\r
-       uint*  r_dst = &DY;\r
-       uint   orig_shift = DX & 0x3f;\r
-\r
-       if(orig_shift != 0)\r
-       {\r
-               uint   shift = orig_shift % 33;\r
-               uint64 src   = *r_dst;\r
-               uint64 res   = src | (((uint64)XFLAG_AS_1()) << 32);\r
-\r
-               res = ROR_33_64(res, shift);\r
-\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-               FLAG_C = FLAG_X = res >> 24;\r
-               res = MASK_OUT_ABOVE_32(res);\r
-\r
-               *r_dst = res;\r
-               FLAG_N = NFLAG_32(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               return;\r
-       }\r
-\r
-       FLAG_C = FLAG_X;\r
-       FLAG_N = NFLAG_32(*r_dst);\r
-       FLAG_Z = *r_dst;\r
-       FLAG_V = VFLAG_CLEAR;\r
-\r
-#else\r
-\r
-       uint* r_dst = &DY;\r
-       uint orig_shift = DX & 0x3f;\r
-       uint shift = orig_shift % 33;\r
-       uint src = *r_dst;\r
-       uint res = MASK_OUT_ABOVE_32((ROR_33(src, shift) & ~(1 << (32 - shift))) | (XFLAG_AS_1() << (32 - shift)));\r
-       uint new_x_flag = src & (1 << (shift - 1));\r
-\r
-       if(orig_shift != 0)\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-       if(shift != 0)\r
-       {\r
-               *r_dst = res;\r
-               FLAG_X = (new_x_flag != 0)<<8;\r
-       }\r
-       else\r
-               res = src;\r
-       FLAG_C = FLAG_X;\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-\r
-#endif\r
-}\r
-\r
-\r
-void m68k_op_roxr_16_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROR_17(src | (XFLAG_AS_1() << 16), 1);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxr_16_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROR_17(src | (XFLAG_AS_1() << 16), 1);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxr_16_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROR_17(src | (XFLAG_AS_1() << 16), 1);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxr_16_di(void)\r
-{\r
-       uint ea = EA_AY_DI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROR_17(src | (XFLAG_AS_1() << 16), 1);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxr_16_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROR_17(src | (XFLAG_AS_1() << 16), 1);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxr_16_aw(void)\r
-{\r
-       uint ea = EA_AW_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROR_17(src | (XFLAG_AS_1() << 16), 1);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxr_16_al(void)\r
-{\r
-       uint ea = EA_AL_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROR_17(src | (XFLAG_AS_1() << 16), 1);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxl_8_s(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint shift = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint src = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = ROL_9(src | (XFLAG_AS_1() << 8), shift);\r
-\r
-       if(shift != 0)\r
-               USE_CYCLES(shift<<CYC_SHIFT);\r
-\r
-       FLAG_C = FLAG_X = res;\r
-       res = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | res;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxl_16_s(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint shift = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint src = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = ROL_17(src | (XFLAG_AS_1() << 16), shift);\r
-\r
-       if(shift != 0)\r
-               USE_CYCLES(shift<<CYC_SHIFT);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | res;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxl_32_s(void)\r
-{\r
-#if M68K_USE_64_BIT\r
-\r
-       uint*  r_dst = &DY;\r
-       uint   shift = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint64 src   = *r_dst;\r
-       uint64 res   = src | (((uint64)XFLAG_AS_1()) << 32);\r
-\r
-       if(shift != 0)\r
-               USE_CYCLES(shift<<CYC_SHIFT);\r
-\r
-       res = ROL_33_64(res, shift);\r
-\r
-       FLAG_C = FLAG_X = res >> 24;\r
-       res = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst = res;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-\r
-#else\r
-\r
-       uint* r_dst = &DY;\r
-       uint shift = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint src = *r_dst;\r
-       uint res = MASK_OUT_ABOVE_32((ROL_33(src, shift) & ~(1 << (shift - 1))) | (XFLAG_AS_1() << (shift - 1)));\r
-       uint new_x_flag = src & (1 << (32 - shift));\r
-\r
-       if(shift != 0)\r
-               USE_CYCLES(shift<<CYC_SHIFT);\r
-\r
-       *r_dst = res;\r
-\r
-       FLAG_C = FLAG_X = (new_x_flag != 0)<<8;\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-\r
-#endif\r
-}\r
-\r
-\r
-void m68k_op_roxl_8_r(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint orig_shift = DX & 0x3f;\r
-\r
-\r
-       if(orig_shift != 0)\r
-       {\r
-               uint shift = orig_shift % 9;\r
-               uint src   = MASK_OUT_ABOVE_8(*r_dst);\r
-               uint res   = ROL_9(src | (XFLAG_AS_1() << 8), shift);\r
-\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-               FLAG_C = FLAG_X = res;\r
-               res = MASK_OUT_ABOVE_8(res);\r
-\r
-               *r_dst = MASK_OUT_BELOW_8(*r_dst) | res;\r
-               FLAG_N = NFLAG_8(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               return;\r
-       }\r
-\r
-       FLAG_C = FLAG_X;\r
-       FLAG_N = NFLAG_8(*r_dst);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(*r_dst);\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxl_16_r(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint orig_shift = DX & 0x3f;\r
-\r
-       if(orig_shift != 0)\r
-       {\r
-               uint shift = orig_shift % 17;\r
-               uint src   = MASK_OUT_ABOVE_16(*r_dst);\r
-               uint res   = ROL_17(src | (XFLAG_AS_1() << 16), shift);\r
-\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-               FLAG_C = FLAG_X = res >> 8;\r
-               res = MASK_OUT_ABOVE_16(res);\r
-\r
-               *r_dst = MASK_OUT_BELOW_16(*r_dst) | res;\r
-               FLAG_N = NFLAG_16(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               return;\r
-       }\r
-\r
-       FLAG_C = FLAG_X;\r
-       FLAG_N = NFLAG_16(*r_dst);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(*r_dst);\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxl_32_r(void)\r
-{\r
-#if M68K_USE_64_BIT\r
-\r
-       uint*  r_dst = &DY;\r
-       uint   orig_shift = DX & 0x3f;\r
-\r
-       if(orig_shift != 0)\r
-       {\r
-               uint   shift = orig_shift % 33;\r
-               uint64 src   = *r_dst;\r
-               uint64 res   = src | (((uint64)XFLAG_AS_1()) << 32);\r
-\r
-               res = ROL_33_64(res, shift);\r
-\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-               FLAG_C = FLAG_X = res >> 24;\r
-               res = MASK_OUT_ABOVE_32(res);\r
-\r
-               *r_dst = res;\r
-               FLAG_N = NFLAG_32(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               return;\r
-       }\r
-\r
-       FLAG_C = FLAG_X;\r
-       FLAG_N = NFLAG_32(*r_dst);\r
-       FLAG_Z = *r_dst;\r
-       FLAG_V = VFLAG_CLEAR;\r
-\r
-#else\r
-\r
-       uint* r_dst = &DY;\r
-       uint orig_shift = DX & 0x3f;\r
-       uint shift = orig_shift % 33;\r
-       uint src = *r_dst;\r
-       uint res = MASK_OUT_ABOVE_32((ROL_33(src, shift) & ~(1 << (shift - 1))) | (XFLAG_AS_1() << (shift - 1)));\r
-       uint new_x_flag = src & (1 << (32 - shift));\r
-\r
-       if(orig_shift != 0)\r
-               USE_CYCLES(orig_shift<<CYC_SHIFT);\r
-\r
-       if(shift != 0)\r
-       {\r
-               *r_dst = res;\r
-               FLAG_X = (new_x_flag != 0)<<8;\r
-       }\r
-       else\r
-               res = src;\r
-       FLAG_C = FLAG_X;\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-\r
-#endif\r
-}\r
-\r
-\r
-void m68k_op_roxl_16_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROL_17(src | (XFLAG_AS_1() << 16), 1);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxl_16_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROL_17(src | (XFLAG_AS_1() << 16), 1);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxl_16_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROL_17(src | (XFLAG_AS_1() << 16), 1);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxl_16_di(void)\r
-{\r
-       uint ea = EA_AY_DI_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROL_17(src | (XFLAG_AS_1() << 16), 1);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxl_16_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROL_17(src | (XFLAG_AS_1() << 16), 1);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxl_16_aw(void)\r
-{\r
-       uint ea = EA_AW_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROL_17(src | (XFLAG_AS_1() << 16), 1);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_roxl_16_al(void)\r
-{\r
-       uint ea = EA_AL_16();\r
-       uint src = m68ki_read_16(ea);\r
-       uint res = ROL_17(src | (XFLAG_AS_1() << 16), 1);\r
-\r
-       FLAG_C = FLAG_X = res >> 8;\r
-       res = MASK_OUT_ABOVE_16(res);\r
-\r
-       m68ki_write_16(ea, res);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_rtd_32(void)\r
-{\r
-       if(CPU_TYPE_IS_010_PLUS(CPU_TYPE))\r
-       {\r
-               uint new_pc = m68ki_pull_32();\r
-\r
-               m68ki_trace_t0();                          /* auto-disable (see m68kcpu.h) */\r
-               REG_A[7] = MASK_OUT_ABOVE_32(REG_A[7] + MAKE_INT_16(OPER_I_16()));\r
-               m68ki_jump(new_pc);\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_rte_32(void)\r
-{\r
-       if(FLAG_S)\r
-       {\r
-               uint new_sr;\r
-               uint new_pc;\r
-               uint format_word;\r
-\r
-               m68ki_rte_callback();              /* auto-disable (see m68kcpu.h) */\r
-               m68ki_trace_t0();                          /* auto-disable (see m68kcpu.h) */\r
-\r
-               if(CPU_TYPE_IS_000(CPU_TYPE))\r
-               {\r
-                       new_sr = m68ki_pull_16();\r
-                       new_pc = m68ki_pull_32();\r
-                       m68ki_jump(new_pc);\r
-                       m68ki_set_sr(new_sr);\r
-\r
-                       CPU_INSTR_MODE = INSTRUCTION_YES;\r
-                       CPU_RUN_MODE = RUN_MODE_NORMAL;\r
-\r
-                       return;\r
-               }\r
-\r
-               if(CPU_TYPE_IS_010(CPU_TYPE))\r
-               {\r
-                       format_word = m68ki_read_16(REG_A[7]+6) >> 12;\r
-                       if(format_word == 0)\r
-                       {\r
-                               new_sr = m68ki_pull_16();\r
-                               new_pc = m68ki_pull_32();\r
-                               m68ki_fake_pull_16();   /* format word */\r
-                               m68ki_jump(new_pc);\r
-                               m68ki_set_sr(new_sr);\r
-                               CPU_INSTR_MODE = INSTRUCTION_YES;\r
-                               CPU_RUN_MODE = RUN_MODE_NORMAL;\r
-                               return;\r
-                       }\r
-                       CPU_INSTR_MODE = INSTRUCTION_YES;\r
-                       CPU_RUN_MODE = RUN_MODE_NORMAL;\r
-                       /* Not handling bus fault (9) */\r
-                       m68ki_exception_format_error();\r
-                       return;\r
-               }\r
-\r
-               /* Otherwise it's 020 */\r
-rte_loop:\r
-               format_word = m68ki_read_16(REG_A[7]+6) >> 12;\r
-               switch(format_word)\r
-               {\r
-                       case 0: /* Normal */\r
-                               new_sr = m68ki_pull_16();\r
-                               new_pc = m68ki_pull_32();\r
-                               m68ki_fake_pull_16();   /* format word */\r
-                               m68ki_jump(new_pc);\r
-                               m68ki_set_sr(new_sr);\r
-                               CPU_INSTR_MODE = INSTRUCTION_YES;\r
-                               CPU_RUN_MODE = RUN_MODE_NORMAL;\r
-                               return;\r
-                       case 1: /* Throwaway */\r
-                               new_sr = m68ki_pull_16();\r
-                               m68ki_fake_pull_32();   /* program counter */\r
-                               m68ki_fake_pull_16();   /* format word */\r
-                               m68ki_set_sr_noint(new_sr);\r
-                               goto rte_loop;\r
-                       case 2: /* Trap */\r
-                               new_sr = m68ki_pull_16();\r
-                               new_pc = m68ki_pull_32();\r
-                               m68ki_fake_pull_16();   /* format word */\r
-                               m68ki_fake_pull_32();   /* address */\r
-                               m68ki_jump(new_pc);\r
-                               m68ki_set_sr(new_sr);\r
-                               CPU_INSTR_MODE = INSTRUCTION_YES;\r
-                               CPU_RUN_MODE = RUN_MODE_NORMAL;\r
-                               return;\r
-               }\r
-               /* Not handling long or short bus fault */\r
-               CPU_INSTR_MODE = INSTRUCTION_YES;\r
-               CPU_RUN_MODE = RUN_MODE_NORMAL;\r
-               m68ki_exception_format_error();\r
-               return;\r
-       }\r
-       m68ki_exception_privilege_violation();\r
-}\r
-\r
-\r
-void m68k_op_rtm_32(void)\r
-{\r
-       if(CPU_TYPE_IS_020_VARIANT(CPU_TYPE))\r
-       {\r
-               m68ki_trace_t0();                          /* auto-disable (see m68kcpu.h) */\r
-               M68K_DO_LOG((M68K_LOG_FILEHANDLE "%s at %08x: called unimplemented instruction %04x (%s)\n",\r
-                                        m68ki_cpu_names[CPU_TYPE], ADDRESS_68K(REG_PC - 2), REG_IR,\r
-                                        m68k_disassemble_quick(ADDRESS_68K(REG_PC - 2))));\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_rtr_32(void)\r
-{\r
-       m68ki_trace_t0();                                  /* auto-disable (see m68kcpu.h) */\r
-       m68ki_set_ccr(m68ki_pull_16());\r
-       m68ki_jump(m68ki_pull_32());\r
-}\r
-\r
-\r
-void m68k_op_rts_32(void)\r
-{\r
-       m68ki_trace_t0();                                  /* auto-disable (see m68kcpu.h) */\r
-       m68ki_jump(m68ki_pull_32());\r
-}\r
-\r
-\r
-void m68k_op_sbcd_8_rr(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = DY;\r
-       uint dst = *r_dst;\r
-       uint res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1();\r
-\r
-//  FLAG_V = ~res; /* Undefined V behavior */\r
-       FLAG_V = VFLAG_CLEAR;   /* Undefined in Motorola's M68000PM/AD rev.1 and safer to assume cleared. */\r
-\r
-       if(res > 9)\r
-               res -= 6;\r
-       res += HIGH_NIBBLE(dst) - HIGH_NIBBLE(src);\r
-       if(res > 0x99)\r
-       {\r
-               res += 0xa0;\r
-               FLAG_X = FLAG_C = CFLAG_SET;\r
-               FLAG_N = NFLAG_SET;     /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */\r
-       }\r
-       else\r
-               FLAG_N = FLAG_X = FLAG_C = 0;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-\r
-//  FLAG_V &= res; /* Undefined V behavior part II */\r
-//  FLAG_N = NFLAG_8(res); /* Undefined N behavior */\r
-       FLAG_Z |= res;\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | res;\r
-}\r
-\r
-\r
-void m68k_op_sbcd_8_mm_ax7(void)\r
-{\r
-       uint src = OPER_AY_PD_8();\r
-       uint ea  = EA_A7_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1();\r
-\r
-//  FLAG_V = ~res; /* Undefined V behavior */\r
-       FLAG_V = VFLAG_CLEAR;   /* Undefined in Motorola's M68000PM/AD rev.1 and safer to return zero. */\r
-\r
-       if(res > 9)\r
-               res -= 6;\r
-       res += HIGH_NIBBLE(dst) - HIGH_NIBBLE(src);\r
-       if(res > 0x99)\r
-       {\r
-               res += 0xa0;\r
-               FLAG_X = FLAG_C = CFLAG_SET;\r
-               FLAG_N = NFLAG_SET;     /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */\r
-       }\r
-       else\r
-               FLAG_N = FLAG_X = FLAG_C = 0;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-\r
-//  FLAG_V &= res; /* Undefined V behavior part II */\r
-//  FLAG_N = NFLAG_8(res); /* Undefined N behavior */\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_sbcd_8_mm_ay7(void)\r
-{\r
-       uint src = OPER_A7_PD_8();\r
-       uint ea  = EA_AX_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1();\r
-\r
-//  FLAG_V = ~res; /* Undefined V behavior */\r
-       FLAG_V = VFLAG_CLEAR;   /* Undefined in Motorola's M68000PM/AD rev.1 and safer to return zero. */\r
-\r
-       if(res > 9)\r
-               res -= 6;\r
-       res += HIGH_NIBBLE(dst) - HIGH_NIBBLE(src);\r
-       if(res > 0x99)\r
-       {\r
-               res += 0xa0;\r
-               FLAG_X = FLAG_C = CFLAG_SET;\r
-               FLAG_N = NFLAG_SET;     /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */\r
-       }\r
-       else\r
-               FLAG_N = FLAG_X = FLAG_C = 0;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-\r
-//  FLAG_V &= res; /* Undefined V behavior part II */\r
-//  FLAG_N = NFLAG_8(res); /* Undefined N behavior */\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_sbcd_8_mm_axy7(void)\r
-{\r
-       uint src = OPER_A7_PD_8();\r
-       uint ea  = EA_A7_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1();\r
-\r
-//  FLAG_V = ~res; /* Undefined V behavior */\r
-       FLAG_V = VFLAG_CLEAR;   /* Undefined in Motorola's M68000PM/AD rev.1 and safer to return zero. */\r
-\r
-       if(res > 9)\r
-               res -= 6;\r
-       res += HIGH_NIBBLE(dst) - HIGH_NIBBLE(src);\r
-       if(res > 0x99)\r
-       {\r
-               res += 0xa0;\r
-               FLAG_X = FLAG_C = CFLAG_SET;\r
-               FLAG_N = NFLAG_SET;     /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */\r
-       }\r
-       else\r
-               FLAG_N = FLAG_X = FLAG_C = 0;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-\r
-//  FLAG_V &= res; /* Undefined V behavior part II */\r
-//  FLAG_N = NFLAG_8(res); /* Undefined N behavior */\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_sbcd_8_mm(void)\r
-{\r
-       uint src = OPER_AY_PD_8();\r
-       uint ea  = EA_AX_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = LOW_NIBBLE(dst) - LOW_NIBBLE(src) - XFLAG_AS_1();\r
-\r
-//  FLAG_V = ~res; /* Undefined V behavior */\r
-       FLAG_V = VFLAG_CLEAR;   /* Undefined in Motorola's M68000PM/AD rev.1 and safer to return zero. */\r
-\r
-       if(res > 9)\r
-               res -= 6;\r
-       res += HIGH_NIBBLE(dst) - HIGH_NIBBLE(src);\r
-       if(res > 0x99)\r
-       {\r
-               res += 0xa0;\r
-               FLAG_X = FLAG_C = CFLAG_SET;\r
-               FLAG_N = NFLAG_SET;     /* Undefined in Motorola's M68000PM/AD rev.1 and safer to follow carry. */\r
-       }\r
-       else\r
-               FLAG_N = FLAG_X = FLAG_C = 0;\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-\r
-//  FLAG_V &= res; /* Undefined V behavior part II */\r
-//  FLAG_N = NFLAG_8(res); /* Undefined N behavior */\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_st_8_d(void)\r
-{\r
-       DY |= 0xff;\r
-}\r
-\r
-\r
-void m68k_op_st_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), 0xff);\r
-}\r
-\r
-\r
-void m68k_op_st_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), 0xff);\r
-}\r
-\r
-\r
-void m68k_op_st_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), 0xff);\r
-}\r
-\r
-\r
-void m68k_op_st_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), 0xff);\r
-}\r
-\r
-\r
-void m68k_op_st_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), 0xff);\r
-}\r
-\r
-\r
-void m68k_op_st_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), 0xff);\r
-}\r
-\r
-\r
-void m68k_op_st_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), 0xff);\r
-}\r
-\r
-\r
-void m68k_op_st_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), 0xff);\r
-}\r
-\r
-\r
-void m68k_op_st_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), 0xff);\r
-}\r
-\r
-\r
-void m68k_op_sf_8_d(void)\r
-{\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_sf_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), 0);\r
-}\r
-\r
-\r
-void m68k_op_sf_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), 0);\r
-}\r
-\r
-\r
-void m68k_op_sf_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), 0);\r
-}\r
-\r
-\r
-void m68k_op_sf_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), 0);\r
-}\r
-\r
-\r
-void m68k_op_sf_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), 0);\r
-}\r
-\r
-\r
-void m68k_op_sf_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), 0);\r
-}\r
-\r
-\r
-void m68k_op_sf_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), 0);\r
-}\r
-\r
-\r
-void m68k_op_sf_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), 0);\r
-}\r
-\r
-\r
-void m68k_op_sf_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), 0);\r
-}\r
-\r
-\r
-void m68k_op_shi_8_d(void)\r
-{\r
-       if(COND_HI())\r
-       {\r
-               DY |= 0xff;\r
-               USE_CYCLES(CYC_SCC_R_TRUE);\r
-               return;\r
-       }\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_sls_8_d(void)\r
-{\r
-       if(COND_LS())\r
-       {\r
-               DY |= 0xff;\r
-               USE_CYCLES(CYC_SCC_R_TRUE);\r
-               return;\r
-       }\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_scc_8_d(void)\r
-{\r
-       if(COND_CC())\r
-       {\r
-               DY |= 0xff;\r
-               USE_CYCLES(CYC_SCC_R_TRUE);\r
-               return;\r
-       }\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_scs_8_d(void)\r
-{\r
-       if(COND_CS())\r
-       {\r
-               DY |= 0xff;\r
-               USE_CYCLES(CYC_SCC_R_TRUE);\r
-               return;\r
-       }\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_sne_8_d(void)\r
-{\r
-       if(COND_NE())\r
-       {\r
-               DY |= 0xff;\r
-               USE_CYCLES(CYC_SCC_R_TRUE);\r
-               return;\r
-       }\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_seq_8_d(void)\r
-{\r
-       if(COND_EQ())\r
-       {\r
-               DY |= 0xff;\r
-               USE_CYCLES(CYC_SCC_R_TRUE);\r
-               return;\r
-       }\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_svc_8_d(void)\r
-{\r
-       if(COND_VC())\r
-       {\r
-               DY |= 0xff;\r
-               USE_CYCLES(CYC_SCC_R_TRUE);\r
-               return;\r
-       }\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_svs_8_d(void)\r
-{\r
-       if(COND_VS())\r
-       {\r
-               DY |= 0xff;\r
-               USE_CYCLES(CYC_SCC_R_TRUE);\r
-               return;\r
-       }\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_spl_8_d(void)\r
-{\r
-       if(COND_PL())\r
-       {\r
-               DY |= 0xff;\r
-               USE_CYCLES(CYC_SCC_R_TRUE);\r
-               return;\r
-       }\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_smi_8_d(void)\r
-{\r
-       if(COND_MI())\r
-       {\r
-               DY |= 0xff;\r
-               USE_CYCLES(CYC_SCC_R_TRUE);\r
-               return;\r
-       }\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_sge_8_d(void)\r
-{\r
-       if(COND_GE())\r
-       {\r
-               DY |= 0xff;\r
-               USE_CYCLES(CYC_SCC_R_TRUE);\r
-               return;\r
-       }\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_slt_8_d(void)\r
-{\r
-       if(COND_LT())\r
-       {\r
-               DY |= 0xff;\r
-               USE_CYCLES(CYC_SCC_R_TRUE);\r
-               return;\r
-       }\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_sgt_8_d(void)\r
-{\r
-       if(COND_GT())\r
-       {\r
-               DY |= 0xff;\r
-               USE_CYCLES(CYC_SCC_R_TRUE);\r
-               return;\r
-       }\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_sle_8_d(void)\r
-{\r
-       if(COND_LE())\r
-       {\r
-               DY |= 0xff;\r
-               USE_CYCLES(CYC_SCC_R_TRUE);\r
-               return;\r
-       }\r
-       DY &= 0xffffff00;\r
-}\r
-\r
-\r
-void m68k_op_shi_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), COND_HI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_shi_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), COND_HI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_shi_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), COND_HI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_shi_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), COND_HI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_shi_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), COND_HI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_shi_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), COND_HI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_shi_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), COND_HI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_shi_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), COND_HI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_shi_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), COND_HI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sls_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), COND_LS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sls_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), COND_LS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sls_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), COND_LS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sls_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), COND_LS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sls_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), COND_LS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sls_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), COND_LS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sls_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), COND_LS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sls_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), COND_LS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sls_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), COND_LS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scc_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), COND_CC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scc_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), COND_CC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scc_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), COND_CC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scc_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), COND_CC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scc_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), COND_CC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scc_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), COND_CC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scc_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), COND_CC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scc_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), COND_CC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scc_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), COND_CC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scs_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), COND_CS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scs_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), COND_CS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scs_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), COND_CS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scs_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), COND_CS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scs_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), COND_CS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scs_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), COND_CS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scs_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), COND_CS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scs_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), COND_CS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_scs_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), COND_CS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sne_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), COND_NE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sne_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), COND_NE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sne_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), COND_NE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sne_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), COND_NE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sne_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), COND_NE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sne_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), COND_NE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sne_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), COND_NE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sne_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), COND_NE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sne_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), COND_NE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_seq_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), COND_EQ() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_seq_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), COND_EQ() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_seq_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), COND_EQ() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_seq_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), COND_EQ() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_seq_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), COND_EQ() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_seq_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), COND_EQ() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_seq_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), COND_EQ() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_seq_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), COND_EQ() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_seq_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), COND_EQ() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svc_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), COND_VC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svc_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), COND_VC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svc_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), COND_VC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svc_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), COND_VC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svc_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), COND_VC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svc_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), COND_VC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svc_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), COND_VC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svc_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), COND_VC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svc_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), COND_VC() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svs_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), COND_VS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svs_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), COND_VS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svs_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), COND_VS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svs_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), COND_VS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svs_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), COND_VS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svs_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), COND_VS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svs_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), COND_VS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svs_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), COND_VS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_svs_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), COND_VS() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_spl_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), COND_PL() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_spl_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), COND_PL() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_spl_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), COND_PL() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_spl_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), COND_PL() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_spl_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), COND_PL() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_spl_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), COND_PL() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_spl_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), COND_PL() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_spl_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), COND_PL() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_spl_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), COND_PL() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_smi_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), COND_MI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_smi_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), COND_MI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_smi_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), COND_MI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_smi_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), COND_MI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_smi_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), COND_MI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_smi_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), COND_MI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_smi_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), COND_MI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_smi_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), COND_MI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_smi_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), COND_MI() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sge_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), COND_GE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sge_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), COND_GE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sge_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), COND_GE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sge_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), COND_GE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sge_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), COND_GE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sge_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), COND_GE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sge_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), COND_GE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sge_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), COND_GE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sge_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), COND_GE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_slt_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), COND_LT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_slt_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), COND_LT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_slt_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), COND_LT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_slt_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), COND_LT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_slt_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), COND_LT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_slt_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), COND_LT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_slt_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), COND_LT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_slt_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), COND_LT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_slt_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), COND_LT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sgt_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), COND_GT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sgt_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), COND_GT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sgt_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), COND_GT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sgt_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), COND_GT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sgt_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), COND_GT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sgt_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), COND_GT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sgt_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), COND_GT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sgt_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), COND_GT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sgt_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), COND_GT() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sle_8_ai(void)\r
-{\r
-       m68ki_write_8(EA_AY_AI_8(), COND_LE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sle_8_pi(void)\r
-{\r
-       m68ki_write_8(EA_AY_PI_8(), COND_LE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sle_8_pi7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PI_8(), COND_LE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sle_8_pd(void)\r
-{\r
-       m68ki_write_8(EA_AY_PD_8(), COND_LE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sle_8_pd7(void)\r
-{\r
-       m68ki_write_8(EA_A7_PD_8(), COND_LE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sle_8_di(void)\r
-{\r
-       m68ki_write_8(EA_AY_DI_8(), COND_LE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sle_8_ix(void)\r
-{\r
-       m68ki_write_8(EA_AY_IX_8(), COND_LE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sle_8_aw(void)\r
-{\r
-       m68ki_write_8(EA_AW_8(), COND_LE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_sle_8_al(void)\r
-{\r
-       m68ki_write_8(EA_AL_8(), COND_LE() ? 0xff : 0);\r
-}\r
-\r
-\r
-void m68k_op_stop(void)\r
-{\r
-       if(FLAG_S)\r
-       {\r
-               uint new_sr = OPER_I_16();\r
-               m68ki_trace_t0();                          /* auto-disable (see m68kcpu.h) */\r
-               CPU_STOPPED |= STOP_LEVEL_STOP;\r
-               m68ki_set_sr(new_sr);\r
-               m68ki_remaining_cycles = 0;\r
-               return;\r
-       }\r
-       m68ki_exception_privilege_violation();\r
-}\r
-\r
-\r
-void m68k_op_sub_8_er_d(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = MASK_OUT_ABOVE_8(DY);\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_8_er_ai(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_AI_8();\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_8_er_pi(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_PI_8();\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_8_er_pi7(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_A7_PI_8();\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_8_er_pd(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_PD_8();\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_8_er_pd7(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_A7_PD_8();\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_8_er_di(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_DI_8();\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_8_er_ix(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_IX_8();\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_8_er_aw(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AW_8();\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_8_er_al(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AL_8();\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_8_er_pcdi(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_PCDI_8();\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_8_er_pcix(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_PCIX_8();\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_8_er_i(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_I_8();\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_16_er_d(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = MASK_OUT_ABOVE_16(DY);\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_16_er_a(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = MASK_OUT_ABOVE_16(AY);\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_16_er_ai(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_AI_16();\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_16_er_pi(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_PI_16();\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_16_er_pd(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_PD_16();\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_16_er_di(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_DI_16();\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_16_er_ix(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_IX_16();\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_16_er_aw(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AW_16();\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_16_er_al(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AL_16();\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_16_er_pcdi(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_PCDI_16();\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_16_er_pcix(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_PCIX_16();\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_16_er_i(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_I_16();\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_32_er_d(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = DY;\r
-       uint dst = *r_dst;\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_32_er_a(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = AY;\r
-       uint dst = *r_dst;\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_32_er_ai(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_AI_32();\r
-       uint dst = *r_dst;\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_32_er_pi(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_PI_32();\r
-       uint dst = *r_dst;\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_32_er_pd(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_PD_32();\r
-       uint dst = *r_dst;\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_32_er_di(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_DI_32();\r
-       uint dst = *r_dst;\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_32_er_ix(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AY_IX_32();\r
-       uint dst = *r_dst;\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_32_er_aw(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AW_32();\r
-       uint dst = *r_dst;\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_32_er_al(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_AL_32();\r
-       uint dst = *r_dst;\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_32_er_pcdi(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_PCDI_32();\r
-       uint dst = *r_dst;\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_32_er_pcix(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_PCIX_32();\r
-       uint dst = *r_dst;\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_32_er_i(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = OPER_I_32();\r
-       uint dst = *r_dst;\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_sub_8_re_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_8();\r
-       uint src = MASK_OUT_ABOVE_8(DX);\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_8_re_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_8();\r
-       uint src = MASK_OUT_ABOVE_8(DX);\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_8_re_pi7(void)\r
-{\r
-       uint ea = EA_A7_PI_8();\r
-       uint src = MASK_OUT_ABOVE_8(DX);\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_8_re_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_8();\r
-       uint src = MASK_OUT_ABOVE_8(DX);\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_8_re_pd7(void)\r
-{\r
-       uint ea = EA_A7_PD_8();\r
-       uint src = MASK_OUT_ABOVE_8(DX);\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_8_re_di(void)\r
-{\r
-       uint ea = EA_AY_DI_8();\r
-       uint src = MASK_OUT_ABOVE_8(DX);\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_8_re_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_8();\r
-       uint src = MASK_OUT_ABOVE_8(DX);\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_8_re_aw(void)\r
-{\r
-       uint ea = EA_AW_8();\r
-       uint src = MASK_OUT_ABOVE_8(DX);\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_8_re_al(void)\r
-{\r
-       uint ea = EA_AL_8();\r
-       uint src = MASK_OUT_ABOVE_8(DX);\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_16_re_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_16();\r
-       uint src = MASK_OUT_ABOVE_16(DX);\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_16_re_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_16();\r
-       uint src = MASK_OUT_ABOVE_16(DX);\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_16_re_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_16();\r
-       uint src = MASK_OUT_ABOVE_16(DX);\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_16_re_di(void)\r
-{\r
-       uint ea = EA_AY_DI_16();\r
-       uint src = MASK_OUT_ABOVE_16(DX);\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_16_re_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_16();\r
-       uint src = MASK_OUT_ABOVE_16(DX);\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_16_re_aw(void)\r
-{\r
-       uint ea = EA_AW_16();\r
-       uint src = MASK_OUT_ABOVE_16(DX);\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_16_re_al(void)\r
-{\r
-       uint ea = EA_AL_16();\r
-       uint src = MASK_OUT_ABOVE_16(DX);\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_32_re_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_32();\r
-       uint src = DX;\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_32_re_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_32();\r
-       uint src = DX;\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_32_re_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_32();\r
-       uint src = DX;\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_32_re_di(void)\r
-{\r
-       uint ea = EA_AY_DI_32();\r
-       uint src = DX;\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_32_re_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_32();\r
-       uint src = DX;\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_32_re_aw(void)\r
-{\r
-       uint ea = EA_AW_32();\r
-       uint src = DX;\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_sub_32_re_al(void)\r
-{\r
-       uint ea = EA_AL_32();\r
-       uint src = DX;\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_suba_16_d(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(DY));\r
-}\r
-\r
-\r
-void m68k_op_suba_16_a(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(AY));\r
-}\r
-\r
-\r
-void m68k_op_suba_16_ai(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_AY_AI_16()));\r
-}\r
-\r
-\r
-void m68k_op_suba_16_pi(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_AY_PI_16()));\r
-}\r
-\r
-\r
-void m68k_op_suba_16_pd(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_AY_PD_16()));\r
-}\r
-\r
-\r
-void m68k_op_suba_16_di(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_AY_DI_16()));\r
-}\r
-\r
-\r
-void m68k_op_suba_16_ix(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_AY_IX_16()));\r
-}\r
-\r
-\r
-void m68k_op_suba_16_aw(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_AW_16()));\r
-}\r
-\r
-\r
-void m68k_op_suba_16_al(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_AL_16()));\r
-}\r
-\r
-\r
-void m68k_op_suba_16_pcdi(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_PCDI_16()));\r
-}\r
-\r
-\r
-void m68k_op_suba_16_pcix(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_PCIX_16()));\r
-}\r
-\r
-\r
-void m68k_op_suba_16_i(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - MAKE_INT_16(OPER_I_16()));\r
-}\r
-\r
-\r
-void m68k_op_suba_32_d(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - DY);\r
-}\r
-\r
-\r
-void m68k_op_suba_32_a(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - AY);\r
-}\r
-\r
-\r
-void m68k_op_suba_32_ai(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_AY_AI_32());\r
-}\r
-\r
-\r
-void m68k_op_suba_32_pi(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_AY_PI_32());\r
-}\r
-\r
-\r
-void m68k_op_suba_32_pd(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_AY_PD_32());\r
-}\r
-\r
-\r
-void m68k_op_suba_32_di(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_AY_DI_32());\r
-}\r
-\r
-\r
-void m68k_op_suba_32_ix(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_AY_IX_32());\r
-}\r
-\r
-\r
-void m68k_op_suba_32_aw(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_AW_32());\r
-}\r
-\r
-\r
-void m68k_op_suba_32_al(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_AL_32());\r
-}\r
-\r
-\r
-void m68k_op_suba_32_pcdi(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_PCDI_32());\r
-}\r
-\r
-\r
-void m68k_op_suba_32_pcix(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_PCIX_32());\r
-}\r
-\r
-\r
-void m68k_op_suba_32_i(void)\r
-{\r
-       uint* r_dst = &AX;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - OPER_I_32());\r
-}\r
-\r
-\r
-void m68k_op_subi_8_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint src = OPER_I_8();\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_subi_8_ai(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_AY_AI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_8_pi(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_AY_PI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_8_pi7(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_A7_PI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_8_pd(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_AY_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_8_pd7(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_A7_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_8_di(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_AY_DI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_8_ix(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_AY_IX_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_8_aw(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_AW_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_8_al(void)\r
-{\r
-       uint src = OPER_I_8();\r
-       uint ea = EA_AL_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_16_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint src = OPER_I_16();\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_subi_16_ai(void)\r
-{\r
-       uint src = OPER_I_16();\r
-       uint ea = EA_AY_AI_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_16_pi(void)\r
-{\r
-       uint src = OPER_I_16();\r
-       uint ea = EA_AY_PI_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_16_pd(void)\r
-{\r
-       uint src = OPER_I_16();\r
-       uint ea = EA_AY_PD_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_16_di(void)\r
-{\r
-       uint src = OPER_I_16();\r
-       uint ea = EA_AY_DI_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_16_ix(void)\r
-{\r
-       uint src = OPER_I_16();\r
-       uint ea = EA_AY_IX_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_16_aw(void)\r
-{\r
-       uint src = OPER_I_16();\r
-       uint ea = EA_AW_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_16_al(void)\r
-{\r
-       uint src = OPER_I_16();\r
-       uint ea = EA_AL_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_32_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint src = OPER_I_32();\r
-       uint dst = *r_dst;\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_subi_32_ai(void)\r
-{\r
-       uint src = OPER_I_32();\r
-       uint ea = EA_AY_AI_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_32_pi(void)\r
-{\r
-       uint src = OPER_I_32();\r
-       uint ea = EA_AY_PI_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_32_pd(void)\r
-{\r
-       uint src = OPER_I_32();\r
-       uint ea = EA_AY_PD_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_32_di(void)\r
-{\r
-       uint src = OPER_I_32();\r
-       uint ea = EA_AY_DI_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_32_ix(void)\r
-{\r
-       uint src = OPER_I_32();\r
-       uint ea = EA_AY_IX_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_32_aw(void)\r
-{\r
-       uint src = OPER_I_32();\r
-       uint ea = EA_AW_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subi_32_al(void)\r
-{\r
-       uint src = OPER_I_32();\r
-       uint ea = EA_AL_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_8_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_subq_8_ai(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_AI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_8_pi(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_PI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_8_pi7(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_A7_PI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_8_pd(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_8_pd7(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_A7_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_8_di(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_DI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_8_ix(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_IX_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_8_aw(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AW_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_8_al(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AL_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       m68ki_write_8(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_16_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_subq_16_a(void)\r
-{\r
-       uint* r_dst = &AY;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - ((((REG_IR >> 9) - 1) & 7) + 1));\r
-}\r
-\r
-\r
-void m68k_op_subq_16_ai(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_AI_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_16_pi(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_PI_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_16_pd(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_PD_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_16_di(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_DI_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_16_ix(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_IX_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_16_aw(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AW_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_16_al(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AL_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       m68ki_write_16(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_32_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint dst = *r_dst;\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       *r_dst = FLAG_Z;\r
-}\r
-\r
-\r
-void m68k_op_subq_32_a(void)\r
-{\r
-       uint* r_dst = &AY;\r
-\r
-       *r_dst = MASK_OUT_ABOVE_32(*r_dst - ((((REG_IR >> 9) - 1) & 7) + 1));\r
-}\r
-\r
-\r
-void m68k_op_subq_32_ai(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_AI_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_32_pi(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_PI_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_32_pd(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_PD_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_32_di(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_DI_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_32_ix(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AY_IX_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_32_aw(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AW_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subq_32_al(void)\r
-{\r
-       uint src = (((REG_IR >> 9) - 1) & 7) + 1;\r
-       uint ea = EA_AL_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = MASK_OUT_ABOVE_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       m68ki_write_32(ea, FLAG_Z);\r
-}\r
-\r
-\r
-void m68k_op_subx_8_rr(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = MASK_OUT_ABOVE_8(DY);\r
-       uint dst = MASK_OUT_ABOVE_8(*r_dst);\r
-       uint res = dst - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       *r_dst = MASK_OUT_BELOW_8(*r_dst) | res;\r
-}\r
-\r
-\r
-void m68k_op_subx_16_rr(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = MASK_OUT_ABOVE_16(DY);\r
-       uint dst = MASK_OUT_ABOVE_16(*r_dst);\r
-       uint res = dst - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       res = MASK_OUT_ABOVE_16(res);\r
-       FLAG_Z |= res;\r
-\r
-       *r_dst = MASK_OUT_BELOW_16(*r_dst) | res;\r
-}\r
-\r
-\r
-void m68k_op_subx_32_rr(void)\r
-{\r
-       uint* r_dst = &DX;\r
-       uint src = DY;\r
-       uint dst = *r_dst;\r
-       uint res = dst - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       res = MASK_OUT_ABOVE_32(res);\r
-       FLAG_Z |= res;\r
-\r
-       *r_dst = res;\r
-}\r
-\r
-\r
-void m68k_op_subx_8_mm_ax7(void)\r
-{\r
-       uint src = OPER_AY_PD_8();\r
-       uint ea  = EA_A7_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_subx_8_mm_ay7(void)\r
-{\r
-       uint src = OPER_A7_PD_8();\r
-       uint ea  = EA_AX_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_subx_8_mm_axy7(void)\r
-{\r
-       uint src = OPER_A7_PD_8();\r
-       uint ea  = EA_A7_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_subx_8_mm(void)\r
-{\r
-       uint src = OPER_AY_PD_8();\r
-       uint ea  = EA_AX_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-       uint res = dst - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_X = FLAG_C = CFLAG_8(res);\r
-       FLAG_V = VFLAG_SUB_8(src, dst, res);\r
-\r
-       res = MASK_OUT_ABOVE_8(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_8(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_subx_16_mm(void)\r
-{\r
-       uint src = OPER_AY_PD_16();\r
-       uint ea  = EA_AX_PD_16();\r
-       uint dst = m68ki_read_16(ea);\r
-       uint res = dst - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_X = FLAG_C = CFLAG_16(res);\r
-       FLAG_V = VFLAG_SUB_16(src, dst, res);\r
-\r
-       res = MASK_OUT_ABOVE_16(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_16(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_subx_32_mm(void)\r
-{\r
-       uint src = OPER_AY_PD_32();\r
-       uint ea  = EA_AX_PD_32();\r
-       uint dst = m68ki_read_32(ea);\r
-       uint res = dst - src - XFLAG_AS_1();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_X = FLAG_C = CFLAG_SUB_32(src, dst, res);\r
-       FLAG_V = VFLAG_SUB_32(src, dst, res);\r
-\r
-       res = MASK_OUT_ABOVE_32(res);\r
-       FLAG_Z |= res;\r
-\r
-       m68ki_write_32(ea, res);\r
-}\r
-\r
-\r
-void m68k_op_swap_32(void)\r
-{\r
-       uint* r_dst = &DY;\r
-\r
-       FLAG_Z = MASK_OUT_ABOVE_32(*r_dst<<16);\r
-       *r_dst = (*r_dst>>16) | FLAG_Z;\r
-\r
-       FLAG_Z = *r_dst;\r
-       FLAG_N = NFLAG_32(*r_dst);\r
-       FLAG_C = CFLAG_CLEAR;\r
-       FLAG_V = VFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tas_8_d(void)\r
-{\r
-       uint* r_dst = &DY;\r
-\r
-       FLAG_Z = MASK_OUT_ABOVE_8(*r_dst);\r
-       FLAG_N = NFLAG_8(*r_dst);\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-       *r_dst |= 0x80;\r
-}\r
-\r
-\r
-void m68k_op_tas_8_ai(void)\r
-{\r
-       uint ea = EA_AY_AI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-\r
-       FLAG_Z = dst;\r
-       FLAG_N = NFLAG_8(dst);\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-//     m68ki_write_8(ea, dst | 0x80); // notaz: genesis, but only to mem\r
-}\r
-\r
-\r
-void m68k_op_tas_8_pi(void)\r
-{\r
-       uint ea = EA_AY_PI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-\r
-       FLAG_Z = dst;\r
-       FLAG_N = NFLAG_8(dst);\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-//     m68ki_write_8(ea, dst | 0x80); // notaz: genesis, but only to mem\r
-}\r
-\r
-\r
-void m68k_op_tas_8_pi7(void)\r
-{\r
-       uint ea = EA_A7_PI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-\r
-       FLAG_Z = dst;\r
-       FLAG_N = NFLAG_8(dst);\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-//     m68ki_write_8(ea, dst | 0x80); // notaz: genesis, but only to mem\r
-}\r
-\r
-\r
-void m68k_op_tas_8_pd(void)\r
-{\r
-       uint ea = EA_AY_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-\r
-       FLAG_Z = dst;\r
-       FLAG_N = NFLAG_8(dst);\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-//     m68ki_write_8(ea, dst | 0x80); // notaz: genesis, but only to mem\r
-}\r
-\r
-\r
-void m68k_op_tas_8_pd7(void)\r
-{\r
-       uint ea = EA_A7_PD_8();\r
-       uint dst = m68ki_read_8(ea);\r
-\r
-       FLAG_Z = dst;\r
-       FLAG_N = NFLAG_8(dst);\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-//     m68ki_write_8(ea, dst | 0x80); // notaz: genesis, but only to mem\r
-}\r
-\r
-\r
-void m68k_op_tas_8_di(void)\r
-{\r
-       uint ea = EA_AY_DI_8();\r
-       uint dst = m68ki_read_8(ea);\r
-\r
-       FLAG_Z = dst;\r
-       FLAG_N = NFLAG_8(dst);\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-//     m68ki_write_8(ea, dst | 0x80); // notaz: genesis, but only to mem\r
-}\r
-\r
-\r
-void m68k_op_tas_8_ix(void)\r
-{\r
-       uint ea = EA_AY_IX_8();\r
-       uint dst = m68ki_read_8(ea);\r
-\r
-       FLAG_Z = dst;\r
-       FLAG_N = NFLAG_8(dst);\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-//     m68ki_write_8(ea, dst | 0x80); // notaz: genesis, but only to mem\r
-}\r
-\r
-\r
-void m68k_op_tas_8_aw(void)\r
-{\r
-       uint ea = EA_AW_8();\r
-       uint dst = m68ki_read_8(ea);\r
-\r
-       FLAG_Z = dst;\r
-       FLAG_N = NFLAG_8(dst);\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-//     m68ki_write_8(ea, dst | 0x80); // notaz: genesis, but only to mem\r
-}\r
-\r
-\r
-void m68k_op_tas_8_al(void)\r
-{\r
-       uint ea = EA_AL_8();\r
-       uint dst = m68ki_read_8(ea);\r
-\r
-       FLAG_Z = dst;\r
-       FLAG_N = NFLAG_8(dst);\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-//     m68ki_write_8(ea, dst | 0x80); // notaz: genesis, but only to mem\r
-}\r
-\r
-\r
-void m68k_op_trap(void)\r
-{\r
-       /* Trap#n stacks exception frame type 0 */\r
-       m68ki_exception_trapN(EXCEPTION_TRAP_BASE + (REG_IR & 0xf));    /* HJB 990403 */\r
-}\r
-\r
-\r
-void m68k_op_trapt(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapt_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapt_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapf(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapf_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapf_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_traphi(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_HI())\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapls(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_LS())\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapcc(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_CC())\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapcs(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_CS())\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapne(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_NE())\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapeq(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_EQ())\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapvc(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_VC())\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapvs(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_VS())\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trappl(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_PL())\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapmi(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_MI())\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapge(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_GE())\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_traplt(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_LT())\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapgt(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_GT())\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_traple(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_LE())\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_traphi_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_HI())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapls_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_LS())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapcc_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_CC())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapcs_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_CS())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapne_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_NE())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapeq_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_EQ())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapvc_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_VC())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapvs_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_VS())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trappl_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_PL())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapmi_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_MI())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapge_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_GE())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_traplt_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_LT())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapgt_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_GT())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_traple_16(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_LE())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 2;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_traphi_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_HI())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapls_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_LS())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapcc_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_CC())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapcs_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_CS())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapne_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_NE())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapeq_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_EQ())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapvc_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_VC())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapvs_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_VS())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trappl_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_PL())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapmi_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_MI())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapge_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_GE())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_traplt_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_LT())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapgt_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_GT())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_traple_32(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               if(COND_LE())\r
-               {\r
-                       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-                       return;\r
-               }\r
-               REG_PC += 4;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_trapv(void)\r
-{\r
-       if(COND_VC())\r
-       {\r
-               return;\r
-       }\r
-       m68ki_exception_trap(EXCEPTION_TRAPV);  /* HJB 990403 */\r
-}\r
-\r
-\r
-void m68k_op_tst_8_d(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_8(DY);\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_8_ai(void)\r
-{\r
-       uint res = OPER_AY_AI_8();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_8_pi(void)\r
-{\r
-       uint res = OPER_AY_PI_8();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_8_pi7(void)\r
-{\r
-       uint res = OPER_A7_PI_8();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_8_pd(void)\r
-{\r
-       uint res = OPER_AY_PD_8();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_8_pd7(void)\r
-{\r
-       uint res = OPER_A7_PD_8();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_8_di(void)\r
-{\r
-       uint res = OPER_AY_DI_8();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_8_ix(void)\r
-{\r
-       uint res = OPER_AY_IX_8();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_8_aw(void)\r
-{\r
-       uint res = OPER_AW_8();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_8_al(void)\r
-{\r
-       uint res = OPER_AL_8();\r
-\r
-       FLAG_N = NFLAG_8(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_8_pcdi(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               uint res = OPER_PCDI_8();\r
-\r
-               FLAG_N = NFLAG_8(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_tst_8_pcix(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               uint res = OPER_PCIX_8();\r
-\r
-               FLAG_N = NFLAG_8(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_tst_8_i(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               uint res = OPER_I_8();\r
-\r
-               FLAG_N = NFLAG_8(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_tst_16_d(void)\r
-{\r
-       uint res = MASK_OUT_ABOVE_16(DY);\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_16_a(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               uint res = MAKE_INT_16(AY);\r
-\r
-               FLAG_N = NFLAG_16(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_tst_16_ai(void)\r
-{\r
-       uint res = OPER_AY_AI_16();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_16_pi(void)\r
-{\r
-       uint res = OPER_AY_PI_16();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_16_pd(void)\r
-{\r
-       uint res = OPER_AY_PD_16();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_16_di(void)\r
-{\r
-       uint res = OPER_AY_DI_16();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_16_ix(void)\r
-{\r
-       uint res = OPER_AY_IX_16();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_16_aw(void)\r
-{\r
-       uint res = OPER_AW_16();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_16_al(void)\r
-{\r
-       uint res = OPER_AL_16();\r
-\r
-       FLAG_N = NFLAG_16(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_16_pcdi(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               uint res = OPER_PCDI_16();\r
-\r
-               FLAG_N = NFLAG_16(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_tst_16_pcix(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               uint res = OPER_PCIX_16();\r
-\r
-               FLAG_N = NFLAG_16(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_tst_16_i(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               uint res = OPER_I_16();\r
-\r
-               FLAG_N = NFLAG_16(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_tst_32_d(void)\r
-{\r
-       uint res = DY;\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_32_a(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               uint res = AY;\r
-\r
-               FLAG_N = NFLAG_32(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_tst_32_ai(void)\r
-{\r
-       uint res = OPER_AY_AI_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_32_pi(void)\r
-{\r
-       uint res = OPER_AY_PI_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_32_pd(void)\r
-{\r
-       uint res = OPER_AY_PD_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_32_di(void)\r
-{\r
-       uint res = OPER_AY_DI_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_32_ix(void)\r
-{\r
-       uint res = OPER_AY_IX_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_32_aw(void)\r
-{\r
-       uint res = OPER_AW_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_32_al(void)\r
-{\r
-       uint res = OPER_AL_32();\r
-\r
-       FLAG_N = NFLAG_32(res);\r
-       FLAG_Z = res;\r
-       FLAG_V = VFLAG_CLEAR;\r
-       FLAG_C = CFLAG_CLEAR;\r
-}\r
-\r
-\r
-void m68k_op_tst_32_pcdi(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               uint res = OPER_PCDI_32();\r
-\r
-               FLAG_N = NFLAG_32(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_tst_32_pcix(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               uint res = OPER_PCIX_32();\r
-\r
-               FLAG_N = NFLAG_32(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_tst_32_i(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               uint res = OPER_I_32();\r
-\r
-               FLAG_N = NFLAG_32(res);\r
-               FLAG_Z = res;\r
-               FLAG_V = VFLAG_CLEAR;\r
-               FLAG_C = CFLAG_CLEAR;\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_unlk_32_a7(void)\r
-{\r
-       REG_A[7] = m68ki_read_32(REG_A[7]);\r
-}\r
-\r
-\r
-void m68k_op_unlk_32(void)\r
-{\r
-       uint* r_dst = &AY;\r
-\r
-       REG_A[7] = *r_dst;\r
-       *r_dst = m68ki_pull_32();\r
-}\r
-\r
-\r
-void m68k_op_unpk_16_rr(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               /* Note: DX and DY are reversed in Motorola's docs */\r
-               uint src = DY;\r
-               uint* r_dst = &DX;\r
-\r
-               *r_dst = MASK_OUT_BELOW_16(*r_dst) | (((((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16()) & 0xffff);\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_unpk_16_mm_ax7(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               /* Note: AX and AY are reversed in Motorola's docs */\r
-               uint src = OPER_AY_PD_8();\r
-               uint ea_dst;\r
-\r
-               src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16();\r
-               ea_dst = EA_A7_PD_8();\r
-               m68ki_write_8(ea_dst, (src >> 8) & 0xff);\r
-               ea_dst = EA_A7_PD_8();\r
-               m68ki_write_8(ea_dst, src & 0xff);\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_unpk_16_mm_ay7(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               /* Note: AX and AY are reversed in Motorola's docs */\r
-               uint src = OPER_A7_PD_8();\r
-               uint ea_dst;\r
-\r
-               src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16();\r
-               ea_dst = EA_AX_PD_8();\r
-               m68ki_write_8(ea_dst, (src >> 8) & 0xff);\r
-               ea_dst = EA_AX_PD_8();\r
-               m68ki_write_8(ea_dst, src & 0xff);\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_unpk_16_mm_axy7(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               uint src = OPER_A7_PD_8();\r
-               uint ea_dst;\r
-\r
-               src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16();\r
-               ea_dst = EA_A7_PD_8();\r
-               m68ki_write_8(ea_dst, (src >> 8) & 0xff);\r
-               ea_dst = EA_A7_PD_8();\r
-               m68ki_write_8(ea_dst, src & 0xff);\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-void m68k_op_unpk_16_mm(void)\r
-{\r
-       if(CPU_TYPE_IS_EC020_PLUS(CPU_TYPE))\r
-       {\r
-               /* Note: AX and AY are reversed in Motorola's docs */\r
-               uint src = OPER_AY_PD_8();\r
-               uint ea_dst;\r
-\r
-               src = (((src << 4) & 0x0f00) | (src & 0x000f)) + OPER_I_16();\r
-               ea_dst = EA_AX_PD_8();\r
-               m68ki_write_8(ea_dst, (src >> 8) & 0xff);\r
-               ea_dst = EA_AX_PD_8();\r
-               m68ki_write_8(ea_dst, src & 0xff);\r
-               return;\r
-       }\r
-       m68ki_exception_illegal();\r
-}\r
-\r
-\r
-/* ======================================================================== */\r
-/* ============================== END OF FILE ============================= */\r
-/* ======================================================================== */\r
-\r
-\r