Replace sm590 adx handler with override since behavior differs slightly from sm510 [Lord Nightmare, hap]

This commit is contained in:
Lord-Nightmare 2017-05-10 03:24:12 -04:00
parent 464421a791
commit c5c065312f
2 changed files with 12 additions and 4 deletions

View File

@ -108,7 +108,7 @@ protected:
// opcode handlers // opcode handlers
// 00-3f // 00-3f
// adx (same as sm510) virtual void op_adx() override;
virtual void op_tax(); virtual void op_tax();
virtual void op_lblx(); virtual void op_lblx();
// lax (same as sm510) // lax (same as sm510)

View File

@ -16,10 +16,12 @@ void sm590_device::do_branch(u8 pu, u8 pm, u8 pl)
// instruction set // instruction set
void sm590_device::op_lblx() void sm590_device::op_adx()
{ {
// LBL x: load BL with 4-bit immediate value // ADX x: add immediate value to ACC, skip next on carry
m_bl = (m_op & 0xf); m_acc += (m_op & 0xf);
m_skip = bool(m_acc & 0x10);
m_acc &= 0xf;
} }
void sm590_device::op_tax() void sm590_device::op_tax()
@ -28,6 +30,12 @@ void sm590_device::op_tax()
m_skip = (m_acc == (m_op & 0xf)); m_skip = (m_acc == (m_op & 0xf));
} }
void sm590_device::op_lblx()
{
// LBL x: load BL with 4-bit immediate value
m_bl = (m_op & 0xf);
}
void sm590_device::op_lda() void sm590_device::op_lda()
{ {
// LDA: load ACC with RAM // LDA: load ACC with RAM