diff options
Diffstat (limited to 'src/devices/cpu/f8/f8.h')
-rw-r--r-- | src/devices/cpu/f8/f8.h | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/devices/cpu/f8/f8.h b/src/devices/cpu/f8/f8.h index e8851da127e..da621d3a306 100644 --- a/src/devices/cpu/f8/f8.h +++ b/src/devices/cpu/f8/f8.h @@ -20,6 +20,9 @@ public: // construction/destruction f8_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); + // used by F3850 systems that override the normal zero reset address + auto romc08_callback() { return m_romc08_callback.bind(); } + protected: enum { @@ -29,24 +32,24 @@ protected: F8_H, F8_K, F8_Q }; - // device-level overrides + // device_t implementation virtual void device_start() override; virtual void device_reset() override; - // device_execute_interface overrides + // device_execute_interface implementation virtual u32 execute_min_cycles() const noexcept override { return 4; } virtual u32 execute_max_cycles() const noexcept override { return 26; } virtual u32 execute_input_lines() const noexcept override { return 1; } virtual void execute_run() override; virtual void execute_set_input(int inputnum, int state) override; - // device_memory_interface overrides + // device_memory_interface implementation virtual space_config_vector memory_space_config() const override; - // device_state_interface overrides + // device_state_interface implementation virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; - // device_disasm_interface overrides + // device_disasm_interface implementation virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; private: @@ -56,6 +59,8 @@ private: address_space_config m_regs_config; address_space_config m_io_config; + devcb_read8 m_romc08_callback; + u16 m_pc0; /* program counter 0 */ u16 m_pc1; /* program counter 1 */ u16 m_dc0; /* data counter 0 */ @@ -66,10 +71,9 @@ private: u8 m_dbus; /* data bus value */ u16 m_io; /* last I/O address */ u16 m_irq_vector; - address_space *m_program; - memory_access_cache<0, 0, ENDIANNESS_BIG> *m_cache; - memory_access_cache<0, 0, ENDIANNESS_BIG> *m_r; - address_space *m_iospace; + memory_access<16, 0, 0, ENDIANNESS_BIG>::cache m_program; + memory_access<6, 0, 0, ENDIANNESS_BIG>::cache m_r; + memory_access<8, 0, 0, ENDIANNESS_BIG>::specific m_ios; int m_icount; int m_irq_request; |