summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/devices/machine/68307.cpp8
-rw-r--r--src/devices/machine/68307.h2
2 files changed, 10 insertions, 0 deletions
diff --git a/src/devices/machine/68307.cpp b/src/devices/machine/68307.cpp
index 3d670d40e4a..ae13e090488 100644
--- a/src/devices/machine/68307.cpp
+++ b/src/devices/machine/68307.cpp
@@ -90,6 +90,14 @@ void m68307_cpu_device::device_reset()
set_ipl(0);
}
+void m68307_cpu_device::m68k_reset_peripherals()
+{
+ m_duart->reset();
+
+ if (m_m68307MBUS) m_m68307MBUS->reset();
+ if (m_m68307TIMER) m_m68307TIMER->reset();
+}
+
/* todo: is it possible to calculate the address map based on CS when they change
and install handlers? Going through this logic for every memory access is
diff --git a/src/devices/machine/68307.h b/src/devices/machine/68307.h
index 591d0c9cced..6d5ef10b61c 100644
--- a/src/devices/machine/68307.h
+++ b/src/devices/machine/68307.h
@@ -44,6 +44,8 @@ protected:
virtual uint32_t execute_min_cycles() const override { return 4; }
virtual uint32_t execute_max_cycles() const override { return 158; }
+ virtual void m68k_reset_peripherals() override;
+
private:
void set_ipl(int level);
DECLARE_WRITE_LINE_MEMBER(timer0_interrupt);