diff options
Diffstat (limited to 'src/mame/machine')
-rw-r--r-- | src/mame/machine/dmac_0266.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/mame/machine/dmac_0266.cpp b/src/mame/machine/dmac_0266.cpp index 0e65a33af87..e3343baa8e0 100644 --- a/src/mame/machine/dmac_0266.cpp +++ b/src/mame/machine/dmac_0266.cpp @@ -143,12 +143,15 @@ void dmac_0266_device::dma_check(void *ptr, s32 param) * adapter waits for more data that the DMAC is not ready to supply. * It's not clear how the real hardware works - for now this hack * continues to read and discard data from the device, or write - * arbitrary zero bytes to it until it deasserts the request line. + * arbitrary zero bytes to it until it asserts EOP (driven by IRQ). */ - if (m_control & DIRECTION) - m_dma_r(); - else - m_dma_w(0); + if (!(m_status & INTERRUPT)) + { + if (m_control & DIRECTION) + m_dma_r(); + else + m_dma_w(0); + } return; } |