template<void (R65816::*op)()> void R65816::op_read_addr_w() { aa.l = op_readpc(); aa.h = op_readpc(); rd.l = op_readdbr(aa.w + 0); L rd.h = op_readdbr(aa.w + 1); call(op); }
template<void (R65816::*op)()> void R65816::op_read_addry_w() { aa.l = op_readpc(); aa.h = op_readpc(); op_io_cond4(aa.w, aa.w + regs.y.w); rd.l = op_readdbr(aa.w + regs.y.w + 0); L rd.h = op_readdbr(aa.w + regs.y.w + 1); call(op); }
template<void (CPUcore::*op)()> void CPUcore::op_read_addrx_w() { aa.l = op_readpc(); aa.h = op_readpc(); op_io_cond4(aa.w, aa.w + regs.x.w); rd.l = op_readdbr(aa.w + regs.x.w + 0); L rd.h = op_readdbr(aa.w + regs.x.w + 1); call(op); }
template<void (R65816::*op)()> void R65816::op_read_idp_w() { dp = op_readpc(); op_io_cond2(); aa.l = op_readdp(dp + 0); aa.h = op_readdp(dp + 1); rd.l = op_readdbr(aa.w + 0); L rd.h = op_readdbr(aa.w + 1); call(op); }
template<void (R65816::*op)()> void R65816::op_read_isry_w() { sp = op_readpc(); op_io(); aa.l = op_readsp(sp + 0); aa.h = op_readsp(sp + 1); op_io(); rd.l = op_readdbr(aa.w + regs.y.w + 0); L rd.h = op_readdbr(aa.w + regs.y.w + 1); call(op); }
template<void (CPUcore::*op)()> void CPUcore::op_read_idpy_w() { dp = op_readpc(); op_io_cond2(); aa.l = op_readdp(dp + 0); aa.h = op_readdp(dp + 1); op_io_cond4(aa.w, aa.w + regs.y.w); rd.l = op_readdbr(aa.w + regs.y.w + 0); L rd.h = op_readdbr(aa.w + regs.y.w + 1); call(op); }
template<void (CPUcore::*op)()> void CPUcore::op_read_idp_b() { dp = op_readpc(); op_io_cond2(); aa.l = op_readdp(dp + 0); aa.h = op_readdp(dp + 1); L rd.l = op_readdbr(aa.w); call(op); }
template<void (R65816::*op)()> void R65816::op_read_idpy_b() { dp = op_readpc(); op_io_cond2(); aa.l = op_readdp(dp + 0); aa.h = op_readdp(dp + 1); op_io_cond4(aa.w, aa.w + regs.y.w); L rd.l = op_readdbr(aa.w + regs.y.w); call(op); }
template<void (CPUcore::*op)()> void CPUcore::op_read_isry_b() { sp = op_readpc(); op_io(); aa.l = op_readsp(sp + 0); aa.h = op_readsp(sp + 1); op_io(); L rd.l = op_readdbr(aa.w + regs.y.w); call(op); }
template<void (CPUcore::*op)()> void CPUcore::op_read_addr_b() { aa.l = op_readpc(); aa.h = op_readpc(); L rd.l = op_readdbr(aa.w); call(op); }