z80scc.cpp: Reset Highest IUS command is available on NMOS versions too according to manuals

This commit is contained in:
AJR 2023-06-06 23:21:28 -04:00
parent f3f10eef0f
commit 7f62c836be

View File

@ -1799,24 +1799,17 @@ void z80scc_channel::do_sccreg_wr0(uint8_t data)
priority conditions to request interrupts. This command allows the use of the internal
daisy chain (even in systems without an external daisy chain) and is the last operation in
an interrupt service routine. */
if (m_uart->m_variant & z80scc_device::SET_NMOS)
LOGCMD("Reset Highest IUS\n");
// loop over all interrupt sources
for (auto & elem : m_uart->m_int_state)
{
logerror("WR0_RESET_HIGHEST_IUS command not supported on NMOS\n");
}
else
{
LOGCMD("Reset Highest IUS\n");
// loop over all interrupt sources
for (auto & elem : m_uart->m_int_state)
// find the first interrupt under service
if (elem & Z80_DAISY_IEO)
{
// find the first interrupt under service
if (elem & Z80_DAISY_IEO)
{
LOGCMD("- found IUS bit to clear\n");
elem = 0; // Clear IUS bit (called IEO in z80 daisy lingo)
m_uart->check_interrupts();
break;
}
LOGCMD("- found IUS bit to clear\n");
elem = 0; // Clear IUS bit (called IEO in z80 daisy lingo)
m_uart->check_interrupts();
break;
}
}
break;