From 79d02cf7df965b6003bbe0a22c1760bf42a5f4bf Mon Sep 17 00:00:00 2001 From: AJR Date: Fri, 22 Mar 2019 12:40:24 -0400 Subject: mc68307: Add override for RESET instruction (nw) --- src/devices/machine/68307.cpp | 8 ++++++++ src/devices/machine/68307.h | 2 ++ 2 files changed, 10 insertions(+) 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); -- cgit v1.2.3