diff options
Diffstat (limited to 'src/devices/cpu/mcs40/mcs40.h')
-rw-r--r-- | src/devices/cpu/mcs40/mcs40.h | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/devices/cpu/mcs40/mcs40.h b/src/devices/cpu/mcs40/mcs40.h index d8ca4059631..80f0d1e44d8 100644 --- a/src/devices/cpu/mcs40/mcs40.h +++ b/src/devices/cpu/mcs40/mcs40.h @@ -51,7 +51,7 @@ public: template <typename... T> void set_ram_status_map(T &&... args) { set_addrmap(AS_RAM_STATUS, std::forward<T>(args)...); } template <typename... T> void set_ram_ports_map(T &&... args) { set_addrmap(AS_RAM_PORTS, std::forward<T>(args)...); } template <typename... T> void set_program_memory_map(T &&... args) { set_addrmap(AS_PROGRAM_MEMORY, std::forward<T>(args)...); } - template <typename... T> void set_bus_cycle_cb(T &&... args) { m_bus_cycle_cb = bus_cycle_delegate(std::forward<T>(args)...); } + template <typename... T> void set_bus_cycle_cb(T &&... args) { m_bus_cycle_cb.set(std::forward<T>(args)...); } auto i4289_pm_cb() { return m_4289_pm_cb.bind(); } auto i4289_f_l_cb() { return m_4289_f_l_cb.bind(); } @@ -62,8 +62,8 @@ public: // 4008/4009 or 4289 outputs u8 get_4289_a() const { return m_4289_a; } // 8-bit address u8 get_4289_c() const { return m_4289_c; } // 4-bit chip select - DECLARE_READ_LINE_MEMBER(get_4289_pm) const { return BIT(m_4289_pm, 0); } // 0 = active - DECLARE_READ_LINE_MEMBER(get_4289_f_l) const { return BIT(m_4289_f_l, 0); } // 1 = odd, 0 = even + int get_4289_pm() const { return BIT(m_4289_pm, 0); } // 0 = active + int get_4289_f_l() const { return BIT(m_4289_f_l, 0); } // 1 = odd, 0 = even protected: enum class cycle : u8 { OP, IM, IN }; @@ -82,8 +82,8 @@ protected: unsigned cr_mask); // device_t implementation - void device_start() override; - void device_reset() override; + void device_start() override ATTR_COLD; + void device_reset() override ATTR_COLD; // device_execute_interface implementation virtual void execute_run() override; @@ -182,18 +182,19 @@ private: // address spaces address_space_config const m_space_config[7]; address_space *m_spaces[7]; - memory_access_cache<0, 0, ENDIANNESS_LITTLE> *m_cache; + memory_access<12, 0, 0, ENDIANNESS_LITTLE>::cache m_cache; // bus snooping callback - bus_cycle_delegate m_bus_cycle_cb; + bus_cycle_delegate m_bus_cycle_cb; // output callbacks - devcb_write_line m_sync_cb; - devcb_write_line m_cm_rom_cb[2], m_cm_ram_cb[4]; - devcb_write_line m_cy_cb, m_stp_ack_cb; + devcb_write_line m_sync_cb; + devcb_write_line::array<2> m_cm_rom_cb; + devcb_write_line::array<4> m_cm_ram_cb; + devcb_write_line m_cy_cb, m_stp_ack_cb; // 4008/4009 or 4289 output callbacks - devcb_write_line m_4289_pm_cb, m_4289_f_l_cb; + devcb_write_line m_4289_pm_cb, m_4289_f_l_cb; // configuration bool const m_extended_cm; @@ -253,12 +254,12 @@ public: template <unsigned N> auto cm_ram_cb() { return mcs40_cpu_device_base::cm_ram_cb<N>(); } i4004_cpu_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); + virtual ~i4004_cpu_device(); protected: using mcs40_cpu_device_base::mcs40_cpu_device_base; // device_execute_interface implementation - virtual u32 execute_input_lines() const override; virtual void execute_set_input(int inputnum, int state) override; // device_disasm_interface implementation @@ -282,13 +283,13 @@ public: using mcs40_cpu_device_base::stp_ack_cb; i4040_cpu_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock); + virtual ~i4040_cpu_device(); protected: // device_disasm_interface implementation virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; // device_execute_interface implementation - virtual u32 execute_input_lines() const override; virtual void execute_set_input(int inputnum, int state) override; // mcs40_cpu_device_base implementation |