diff options
Diffstat (limited to 'src/devices/machine/chessmachine.h')
-rw-r--r-- | src/devices/machine/chessmachine.h | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/devices/machine/chessmachine.h b/src/devices/machine/chessmachine.h index d07ac764e5b..d9f9a6ea1be 100644 --- a/src/devices/machine/chessmachine.h +++ b/src/devices/machine/chessmachine.h @@ -12,7 +12,6 @@ #pragma once #include "cpu/arm/arm.h" -#include "machine/timer.h" class chessmachine_device : public device_t @@ -31,36 +30,33 @@ public: protected: // device-level overrides - virtual void device_start() override; + virtual void device_start() override ATTR_COLD; virtual void device_reset_after_children() override { reset_w(1); } - virtual void device_add_mconfig(machine_config &config) override; - virtual void device_post_load() override { install_bootrom(m_bootrom_enabled); } + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; - virtual const tiny_rom_entry *device_rom_region() const override; + virtual const tiny_rom_entry *device_rom_region() const override ATTR_COLD; private: required_device<arm_cpu_device> m_maincpu; - required_region_ptr<u32> m_bootrom; - required_shared_ptr<u32> m_ram; - required_device<timer_device> m_disable_bootrom; + memory_view m_boot_view; devcb_write_line m_data_out; + emu_timer *m_boot_timer; + u8 m_latch[2]; - bool m_bootrom_enabled; void data0_w_sync(s32 param); void data1_w_sync(s32 param); void reset_w_sync(s32 param); - void install_bootrom(bool enable); - TIMER_DEVICE_CALLBACK_MEMBER(disable_bootrom) { install_bootrom(false); } + TIMER_CALLBACK_MEMBER(disable_bootrom) { m_boot_view.disable(); } u32 disable_bootrom_r(); 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); + void main_map(address_map &map) ATTR_COLD; }; |