From f94677ec4bf98d892b13e23efa6e23a94caa5fe3 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 8 Dec 2024 15:50:58 -0500 Subject: h8_dma: Handle forced aborts --- src/devices/cpu/h8/h8_dma.cpp | 2 +- src/devices/cpu/h8/h8_dma.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/devices/cpu/h8/h8_dma.cpp b/src/devices/cpu/h8/h8_dma.cpp index 3edb36c70e0..9ba510fff06 100644 --- a/src/devices/cpu/h8/h8_dma.cpp +++ b/src/devices/cpu/h8/h8_dma.cpp @@ -79,7 +79,7 @@ void h8gen_dma_device::start_stop_test() } else { if(m_dmach[i >> 1] && (m_dmach[i >> 1]->m_state[i & 1].m_flags & h8_dma_state::ACTIVE)) { logerror("forced abort %d\n", i); - exit(0); + m_dmach[i >> 1]->abort(i & 1); } } } diff --git a/src/devices/cpu/h8/h8_dma.h b/src/devices/cpu/h8/h8_dma.h index 0a4426cf29e..6a6dc246cb6 100644 --- a/src/devices/cpu/h8/h8_dma.h +++ b/src/devices/cpu/h8/h8_dma.h @@ -181,6 +181,7 @@ public: bool transfer_test_interrupt(int vector); void set_dreq(int state); void start(int submodule); + void abort(int submodule) { dma_done(submodule); } protected: required_device m_cpu; -- cgit v1.2.3