diff options
Diffstat (limited to 'src/devices/machine/z80dma.cpp')
| -rw-r--r-- | src/devices/machine/z80dma.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/devices/machine/z80dma.cpp b/src/devices/machine/z80dma.cpp index 21ef334bd5f..e99f71e8c7c 100644 --- a/src/devices/machine/z80dma.cpp +++ b/src/devices/machine/z80dma.cpp @@ -894,10 +894,10 @@ void z80dma_device::write(u8 data) TIMER_CALLBACK_MEMBER(z80dma_device::rdy_write_callback) { // normalize state - const bool is_ready = m_force_ready || (param == READY_ACTIVE_HIGH); - m_status = (m_status & 0xfd) | (!is_ready << 1); + m_rdy = param; + m_status = (m_status & 0xfd) | (!is_ready() << 1); - if (is_ready && INT_ON_READY) + if (is_ready() && INT_ON_READY) { trigger_interrupt(INT_RDY); } @@ -909,11 +909,6 @@ TIMER_CALLBACK_MEMBER(z80dma_device::rdy_write_callback) void z80dma_device::rdy_w(int state) { LOGLINE("Z80DMA RDY: %d Active High: %d\n", state, READY_ACTIVE_HIGH); - - // update RDY immediately so the state machine can react to it - m_rdy = state; - - // synchronize the side effects machine().scheduler().synchronize(timer_expired_delegate(FUNC(z80dma_device::rdy_write_callback), this), state); } |
