diff options
Diffstat (limited to 'src/devices/cpu/8x300/8x300.h')
-rw-r--r-- | src/devices/cpu/8x300/8x300.h | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/src/devices/cpu/8x300/8x300.h b/src/devices/cpu/8x300/8x300.h index b37acb119e0..c4e36490b7f 100644 --- a/src/devices/cpu/8x300/8x300.h +++ b/src/devices/cpu/8x300/8x300.h @@ -46,35 +46,38 @@ public: n8x300_cpu_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); auto sc_callback() { return m_sc_callback.bind(); } - + auto wc_callback() { return m_wc_callback.bind(); } + auto mclk_callback() { return m_mclk_callback.bind(); } + auto lb_callback() { return m_lb_callback.bind(); } + auto rb_callback() { return m_rb_callback.bind(); } + auto iv_callback() { return m_iv_callback.bind(); } protected: n8x300_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - // device-level overrides - virtual void device_resolve_objects() override; + // device_t implementation virtual void device_start() override; virtual void device_reset() override; - // device_state_interface overrides + // device_state_interface implementation virtual void state_import(const device_state_entry &entry) override; - // device_execute_interface overrides + // device_execute_interface implementation virtual uint32_t execute_min_cycles() const noexcept override { return 1; } virtual uint32_t execute_max_cycles() const noexcept override { return 1; } virtual uint32_t execute_input_lines() const noexcept override { return 0; } virtual void execute_run() override; - // device_memory_interface overrides + // device_memory_interface implementation virtual space_config_vector memory_space_config() const override; - // device_disasm_interface overrides + // device_disasm_interface implementation virtual std::unique_ptr<util::disasm_interface> create_disassembler() override; virtual void set_reg(uint8_t reg, uint8_t val, bool xmit); virtual uint8_t get_reg(uint8_t reg); - void xmit_lb(uint8_t dst, uint8_t mask); - void xmit_rb(uint8_t dst, uint8_t mask); + void xmit_lb(uint8_t dst, uint8_t mask, bool with_sc, bool with_wc); + void xmit_rb(uint8_t dst, uint8_t mask, bool with_sc, bool with_wc); address_space_config m_program_config; address_space_config m_io_config; @@ -82,11 +85,16 @@ protected: int m_icount; bool m_increment_pc; - address_space *m_program; - memory_access_cache<1, -1, ENDIANNESS_BIG> *m_cache; - address_space *m_io; + memory_access<13, 1, -1, ENDIANNESS_BIG>::cache m_cache; + memory_access<13, 1, -1, ENDIANNESS_BIG>::specific m_program; + memory_access< 9, 0, 0, ENDIANNESS_BIG>::specific m_io; - devcb_write8 m_sc_callback; // Select Command (address latch) + devcb_write_line m_sc_callback; // address latch + devcb_write_line m_wc_callback; // data latch + devcb_write_line m_lb_callback; + devcb_write_line m_rb_callback; + devcb_write_line m_mclk_callback; + devcb_write8 m_iv_callback; uint16_t m_PC; // Program Counter uint16_t m_AR; // Address Register |