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
// 00-3f
// adx (same as sm510)
virtual void op_adx() override;
virtual void op_tax();
virtual void op_lblx();
// lax (same as sm510)

View File

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