コード例 #1
0
ファイル: opcode_read.cpp プロジェクト: Brunnis/bsnes-mercury
template<void (R65816::*op)()> void R65816::op_read_dp_w() {
  dp = op_readpc();
  op_io_cond2();
  rd.l = op_readdp(dp + 0);
L rd.h = op_readdp(dp + 1);
  call(op);
}
コード例 #2
0
ファイル: opcode_write.cpp プロジェクト: CarterLi/bsnes-plus
void CPUcore::op_sta_idp_b() {
  dp = op_readpc();
  op_io_cond2();
  aa.l = op_readdp(dp + 0);
  aa.h = op_readdp(dp + 1);
L op_writedbr(aa.w, regs.a.l);
}
コード例 #3
0
ファイル: opcode_read.cpp プロジェクト: Brunnis/bsnes-mercury
template<void (R65816::*op)(), int n> void R65816::op_read_dpr_b() {
  dp = op_readpc();
  op_io_cond2();
  op_io();
L rd.l = op_readdp(dp + regs.r[n].w);
  call(op);
}
コード例 #4
0
ファイル: opcode_write.cpp プロジェクト: CarterLi/bsnes-plus
template<int n, int i> void CPUcore::op_write_dpr_w() {
  dp = op_readpc();
  op_io_cond2();
  op_io();
  op_writedp(dp + regs.r[i] + 0, regs.r[n] >> 0);
L op_writedp(dp + regs.r[i] + 1, regs.r[n] >> 8);
}
コード例 #5
0
ファイル: opcode_misc.cpp プロジェクト: Brunnis/bsnes-mercury
void R65816::op_pei_n() {
  dp = op_readpc();
  op_io_cond2();
  aa.l = op_readdp(dp + 0);
  aa.h = op_readdp(dp + 1);
  op_writestackn(aa.h);
L op_writestackn(aa.l);
}
コード例 #6
0
ファイル: opcode_read.cpp プロジェクト: Brunnis/bsnes-mercury
template<void (R65816::*op)()> void R65816::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);
}
コード例 #7
0
ファイル: opcode_read.cpp プロジェクト: CarterLi/bsnes-plus
template<void (CPUcore::*op)(), int n> void CPUcore::op_read_dpr_w() {
  dp = op_readpc();
  op_io_cond2();
  op_io();
  rd.l = op_readdp(dp + regs.r[n].w + 0);
L rd.h = op_readdp(dp + regs.r[n].w + 1);
  call(op);
}
コード例 #8
0
ファイル: opcode_write.cpp プロジェクト: CarterLi/bsnes-plus
void CPUcore::op_sta_ildp_b() {
  dp = op_readpc();
  op_io_cond2();
  aa.l = op_readdpn(dp + 0);
  aa.h = op_readdpn(dp + 1);
  aa.b = op_readdpn(dp + 2);
L op_writelong(aa.d, regs.a.l);
}
コード例 #9
0
ファイル: opcode_read.cpp プロジェクト: Brunnis/bsnes-mercury
template<void (R65816::*op)()> void R65816::op_read_ildpy_b() {
  dp = op_readpc();
  op_io_cond2();
  aa.l = op_readdp(dp + 0);
  aa.h = op_readdp(dp + 1);
  aa.b = op_readdp(dp + 2);
L rd.l = op_readlong(aa.d + regs.y.w);
  call(op);
}
コード例 #10
0
ファイル: opcode_read.cpp プロジェクト: CarterLi/bsnes-plus
template<void (CPUcore::*op)()> void CPUcore::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);
}
コード例 #11
0
ファイル: opcode_read.cpp プロジェクト: CarterLi/bsnes-plus
template<void (CPUcore::*op)()> void CPUcore::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);
}
コード例 #12
0
ファイル: opcode_read.cpp プロジェクト: CarterLi/bsnes-plus
template<void (CPUcore::*op)()> void CPUcore::op_read_ildp_b() {
  dp = op_readpc();
  op_io_cond2();
  aa.l = op_readdpn(dp + 0);
  aa.h = op_readdpn(dp + 1);
  aa.b = op_readdpn(dp + 2);
L rd.l = op_readlong(aa.d);
  call(op);
}
コード例 #13
0
ファイル: opcode_write.cpp プロジェクト: CarterLi/bsnes-plus
void CPUcore::op_sta_ildpy_w() {
  dp = op_readpc();
  op_io_cond2();
  aa.l = op_readdpn(dp + 0);
  aa.h = op_readdpn(dp + 1);
  aa.b = op_readdpn(dp + 2);
  op_writelong(aa.d + regs.y.w + 0, regs.a.l);
L op_writelong(aa.d + regs.y.w + 1, regs.a.h);
}
コード例 #14
0
ファイル: opcode_write.cpp プロジェクト: CarterLi/bsnes-plus
void CPUcore::op_sta_idpy_w() {
  dp = op_readpc();
  op_io_cond2();
  aa.l = op_readdp(dp + 0);
  aa.h = op_readdp(dp + 1);
  op_io();
  op_writedbr(aa.w + regs.y.w + 0, regs.a.l);
L op_writedbr(aa.w + regs.y.w + 1, regs.a.h);
}
コード例 #15
0
ファイル: opcode_read.cpp プロジェクト: Brunnis/bsnes-mercury
template<void (R65816::*op)()> void R65816::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);
}
コード例 #16
0
ファイル: opcode_read.cpp プロジェクト: CarterLi/bsnes-plus
template<void (CPUcore::*op)()> void CPUcore::op_read_dp_b() {
  dp = op_readpc();
  op_io_cond2();
L rd.l = op_readdp(dp);
  call(op);
}
コード例 #17
0
ファイル: opcode_write.cpp プロジェクト: CarterLi/bsnes-plus
template<int n, int i> void CPUcore::op_write_dpr_b() {
  dp = op_readpc();
  op_io_cond2();
  op_io();
L op_writedp(dp + regs.r[i], regs.r[n]);
}
コード例 #18
0
ファイル: opcode_write.cpp プロジェクト: CarterLi/bsnes-plus
template<int n> void CPUcore::op_write_dp_b() {
  dp = op_readpc();
  op_io_cond2();
L op_writedp(dp, regs.r[n]);
}