summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/devices/bus/cbus/pc9801_86.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/devices/bus/cbus/pc9801_86.cpp b/src/devices/bus/cbus/pc9801_86.cpp
index 5ff31bca84b..9106e22887b 100644
--- a/src/devices/bus/cbus/pc9801_86.cpp
+++ b/src/devices/bus/cbus/pc9801_86.cpp
@@ -448,7 +448,10 @@ u8 pc9801_86_device::queue_pop()
{
u8 ret = m_queue[m_tail++];
m_tail %= QUEUE_SIZE;
- m_count = (m_count - 1) % QUEUE_SIZE; // dangel resets the fifo after filling it completely so maybe it expects an underflow
+ // TODO: dangel resets the fifo after filling it completely so maybe it expects an underflow
+ // this breaks win95, that expects FIFO empty flags to stay consistant
+ //m_count = (m_count - 1) % QUEUE_SIZE;
+ m_count = std::max(m_count - 1, 0);
return ret;
}
@@ -503,7 +506,8 @@ TIMER_CALLBACK_MEMBER(pc9801_86_device::dac_tick)
{
//LOGDAC("\tIRQ set\n");
m_pcmirq = true;
- //m_bus->int_w<5>(ASSERT_LINE);
+ // win95 expects edge triggers
+ m_irqs->in_w<1>(CLEAR_LINE);
m_irqs->in_w<1>(ASSERT_LINE);
}
}