sm510: ADX don't carry if adding 10(probably for bcd correction)

This commit is contained in:
hap 2016-04-02 16:54:39 +02:00
parent a811db6ea1
commit 18a7251918

View File

@ -68,8 +68,8 @@ void sm510_base_device::op_lb()
switch (m_bl)
{
case 0: hi = 0; break;
case 1: hi = 0; break;
case 2: hi = 0; break;
case 1: hi = 3; break;
case 2: hi = 3; break;
case 3: hi = 3; break;
}
m_bl |= (hi << 2 & 0xc);
@ -290,9 +290,9 @@ void sm510_base_device::op_add11()
void sm510_base_device::op_adx()
{
// ADX x: add immediate value to ACC, skip next on carry
// ADX x: add immediate value to ACC, skip next on carry except if x = 10
m_acc += (m_op & 0xf);
m_skip = ((m_acc & 0x10) != 0);
m_skip = ((m_op & 0xf) != 10 && (m_acc & 0x10) != 0);
m_acc &= 0xf;
}