Exemplo n.º 1
0
template<int n, int i> void SMPcore::op_mov_dpr_reg() {
  dp  = op_readpc();
  op_io();
  dp += regs.r[i];
  op_readdp<false>(dp);
  op_writedp(dp, regs.r[n]);
}
Exemplo n.º 2
0
template<int n, int i> alwaysinline void SMP::op_mov_dpr_reg() {
  dp  = op_readpc();
  op_io();
  dp += regs.r[i];
  op_readdp(dp);
  op_writedp(dp, regs.r[n]);
}
Exemplo n.º 3
0
void SMPcore::op_adjust_dpx() {
  dp = op_readpc();
  op_io();
  rd = op_readdp(dp + regs.x);
  rd = (this->*op)(rd);
  op_writedp(dp + regs.x, rd);
}
Exemplo n.º 4
0
void SMP::op_read_dp_const() {
  rd = op_readpc();
  dp = op_readpc();
  wr = op_readdp(dp);
  wr = (this->*op)(wr, rd);
  static uint8 (SMP::*cmp)(uint8, uint8) = &SMP::op_cmp;
  (op != cmp) ? op_writedp(dp, wr) : op_io();
}
Exemplo n.º 5
0
void SMP::op_read_ix_iy() {
  op_io();
  rd = op_readdp(regs.y);
  wr = op_readdp(regs.x);
  wr = (this->*op)(wr, rd);
  static uint8 (SMP::*cmp)(uint8, uint8) = &SMP::op_cmp;
  (op != cmp) ? op_writedp(regs.x, wr) : op_io();
}
Exemplo n.º 6
0
void SMPcore::op_adjustw_dp() {
  dp  = op_readpc();
  rd  = op_readdp(dp) << 0;
  rd += adjust;
  op_writedp(dp++, rd);
  rd += op_readdp(dp) << 8;
  op_writedp(dp, rd >> 8);
  regs.p.n = (rd & 0x8000);
  regs.p.z = (rd == 0);
}
Exemplo n.º 7
0
alwaysinline void SMP::op_dbnz_dp() {
  dp = op_readpc();
  wr = op_readdp(dp);
  op_writedp(dp, --wr);
  rd = op_readpc();
  if(wr == 0) return;
  op_io();
  op_io();
  regs.pc += (int8)rd;
}
Exemplo n.º 8
0
alwaysinline void SMP::op_mov_dp_const() {
  rd = op_readpc();
  dp = op_readpc();
  op_readdp(dp);
  op_writedp(dp, rd);
}
Exemplo n.º 9
0
alwaysinline void SMP::op_mov_dp_dp() {
  sp = op_readpc();
  rd = op_readdp(sp);
  dp = op_readpc();
  op_writedp(dp, rd);
}
Exemplo n.º 10
0
alwaysinline void SMP::op_movw_dp_ya() {
  dp = op_readpc();
  op_readdp(dp);
  op_writedp(dp + 0, regs.a);
  op_writedp(dp + 1, regs.y);
}
Exemplo n.º 11
0
void SMPcore::op_adjust_dp() {
  dp = op_readpc();
  rd = op_readdp(dp);
  rd = (this->*op)(rd);
  op_writedp(dp, rd);
}
Exemplo n.º 12
0
template<int n> alwaysinline void SMP::op_mov_dp_reg() {
  dp = op_readpc();
  op_readdp(dp);
  op_writedp(dp, regs.r[n]);
}
Exemplo n.º 13
0
alwaysinline void SMP::op_mov_ixinc_a() {
  op_io();
  op_io();
  op_writedp(regs.x++, regs.a);
}
Exemplo n.º 14
0
template<int n> void SMPcore::op_mov_dp_reg() {
  dp = op_readpc();
  op_readdp<false>(dp);
  op_writedp(dp, regs.r[n]);
}
Exemplo n.º 15
0
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]);
}
Exemplo n.º 16
0
void SMPcore::op_mov_dp_const() {
  rd = op_readpc();
  dp = op_readpc();
  op_readdp<false>(dp);
  op_writedp(dp, rd);
}
Exemplo n.º 17
0
void SMPcore::op_mov_dp_dp() {
  sp = op_readpc();
  rd = op_readdp(sp);
  dp = op_readpc();
  op_writedp(dp, rd);
}
Exemplo n.º 18
0
void SMPcore::op_movw_dp_ya() {
  dp = op_readpc();
  op_readdp<false>(dp);
  op_writedp(dp + 0, regs.a);
  op_writedp(dp + 1, regs.y);
}
Exemplo n.º 19
0
void SMPcore::op_mov_ix_a() {
  op_io();
  op_readdp<false>(regs.x);
  op_writedp(regs.x, regs.a);
}
Exemplo n.º 20
0
alwaysinline void SMP::op_mov_ix_a() {
  op_io();
  op_readdp(regs.x);
  op_writedp(regs.x, regs.a);
}
Exemplo n.º 21
0
template<int n> void CPUcore::op_write_dp_b() {
  dp = op_readpc();
  op_io_cond2();
L op_writedp(dp, regs.r[n]);
}
Exemplo n.º 22
0
void SMPcore::op_mov_ixinc_a() {
  op_io();
  op_io();
  op_writedp(regs.x++, regs.a);
}