diff options
Diffstat (limited to 'src/devices/machine/chessmachine.h')
-rw-r--r-- | src/devices/machine/chessmachine.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/devices/machine/chessmachine.h b/src/devices/machine/chessmachine.h index dbfae309751..388e9f9db22 100644 --- a/src/devices/machine/chessmachine.h +++ b/src/devices/machine/chessmachine.h @@ -12,6 +12,7 @@ #pragma once #include "cpu/arm/arm.h" +#include "machine/timer.h" class chessmachine_device : public device_t @@ -31,14 +32,16 @@ public: protected: // device-level overrides virtual void device_start() override; - virtual void device_reset_after_children() override { m_maincpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE); } + virtual void device_reset_after_children() override { reset_w(1); } virtual void device_add_mconfig(machine_config &config) override; virtual const tiny_rom_entry *device_rom_region() const override; private: required_device<arm_cpu_device> m_maincpu; - required_region_ptr<u8> m_bootstrap; + required_region_ptr<u32> m_bootstrap; + required_shared_ptr<u32> m_ram; + required_device<timer_device> m_disable_bootstrap; devcb_write_line m_data_out; @@ -46,8 +49,13 @@ private: void sync0_callback(void *ptr, s32 param); void sync1_callback(void *ptr, s32 param); - DECLARE_READ8_MEMBER(internal_r) { return m_latch[0]; } - DECLARE_WRITE8_MEMBER(internal_w) { m_latch[1] = data & 1; m_data_out(m_latch[1]); } + bool m_bootstrap_enabled; + TIMER_DEVICE_CALLBACK_MEMBER(disable_bootstrap) { m_bootstrap_enabled = false; } + u32 disable_bootstrap_r(); + u32 bootstrap_r(offs_t offset); + + u8 internal_r() { return m_latch[0]; } + void internal_w(u8 data) { m_latch[1] = data & 1; m_data_out(m_latch[1]); } void main_map(address_map &map); }; |