Fixed stuck decrementer interrupt.

This commit is contained in:
Michael Zapf 2013-10-21 18:42:10 +00:00
parent 81c146cc3b
commit ac3c6db75e

View File

@ -1353,10 +1353,13 @@ void tms9995_device::int_prefetch_and_decode()
{
m_int_pending = 0;
if (m_int1_active && intmask >= 1 && check_int) m_int_pending |= PENDING_LEVEL1;
if (m_int_overflow && intmask >= 2 && check_int) m_int_pending |= PENDING_OVERFLOW;
if (m_int_decrementer && intmask >= 3 && check_int) m_int_pending |= PENDING_DECR;
if (m_int4_active && intmask >= 4 && check_int) m_int_pending |= PENDING_LEVEL4;
if (check_int)
{
if (m_int1_active && intmask >= 1) m_int_pending |= PENDING_LEVEL1;
if (m_int_overflow && intmask >= 2) m_int_pending |= PENDING_OVERFLOW;
if (m_int_decrementer && intmask >= 3) m_int_pending |= PENDING_DECR;
if (m_int4_active && intmask >= 4) m_int_pending |= PENDING_LEVEL4;
}
if (m_int_pending!=0)
{
@ -2057,6 +2060,7 @@ void tms9995_device::trigger_decrementer()
m_int_decrementer = true;
}
}
else m_int_decrementer = false;
}
}