summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/chessmachine.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/chessmachine.h')
-rw-r--r--src/devices/machine/chessmachine.h20
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;
};