From 03cb340505b7b858a2bce6992eb934bf25ddff3e Mon Sep 17 00:00:00 2001 From: cracyc Date: Fri, 8 Sep 2023 16:21:45 -0500 Subject: hd63450: only halt cpu in max transfer rate mode --- src/devices/machine/hd63450.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/devices/machine/hd63450.cpp b/src/devices/machine/hd63450.cpp index 6cc4ad92fc2..d726a0c64a7 100644 --- a/src/devices/machine/hd63450.cpp +++ b/src/devices/machine/hd63450.cpp @@ -293,9 +293,10 @@ void hd63450_device::dma_transfer_start(int channel) // Burst transfers will halt the CPU until the transfer is complete // max rate transfer hold the bus - if (((m_reg[channel].dcr & 0xc0) == 0x00) || ((m_reg[channel].ocr & 3) == 1)) // Burst transfer + if (((m_reg[channel].dcr & 0xc0) == 0x00)) // Burst transfer { - m_cpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); + if((m_reg[channel].ocr & 3) == 1) // TODO: proper cycle stealing + m_cpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); m_timer[channel]->adjust(attotime::zero, channel, m_burst_clock[channel]); } else if (!(m_reg[channel].ocr & 2)) -- cgit v1.2.3