diff options
Diffstat (limited to 'src/devices/cpu/mc68hc11/mc68hc11.h')
-rw-r--r-- | src/devices/cpu/mc68hc11/mc68hc11.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/devices/cpu/mc68hc11/mc68hc11.h b/src/devices/cpu/mc68hc11/mc68hc11.h index 9ad9a84492d..01e2477c17b 100644 --- a/src/devices/cpu/mc68hc11/mc68hc11.h +++ b/src/devices/cpu/mc68hc11/mc68hc11.h @@ -20,7 +20,7 @@ DECLARE_DEVICE_TYPE(MC68HC11F1, mc68hc11f1_device) DECLARE_DEVICE_TYPE(MC68HC11K1, mc68hc11k1_device) DECLARE_DEVICE_TYPE(MC68HC11M0, mc68hc11m0_device) -class mc68hc11_cpu_device : public cpu_device +class mc68hc11_cpu_device : public cpu_device, public device_nvram_interface { public: // port configuration @@ -51,6 +51,8 @@ public: auto in_spi2_data_callback() { return m_spi2_data_input_cb.bind(); } auto out_spi2_data_callback() { return m_spi2_data_output_cb.bind(); } + void set_default_config(uint8_t data) { assert(!configured()); m_config = data & m_config_mask; } + protected: mc68hc11_cpu_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, uint16_t ram_size, uint16_t reg_block_size, uint16_t rom_size, uint16_t eeprom_size, uint8_t init_value, uint8_t config_mask, uint8_t option_mask); @@ -71,6 +73,12 @@ protected: // device_memory_interface overrides virtual space_config_vector memory_space_config() const override; + // device_nvram_interface overrides + virtual bool nvram_can_write() override; + virtual bool nvram_read(util::read_stream &file) override; + virtual bool nvram_write(util::write_stream &file) override; + virtual void nvram_default() override; + // device_state_interface overrides virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; @@ -117,6 +125,8 @@ protected: void config_w(uint8_t data); uint8_t init_r(); void init_w(uint8_t data); + uint8_t init2_r(); + void init2_w(uint8_t data); uint8_t option_r(); void option_w(uint8_t data); uint8_t scbd_r(offs_t offset); @@ -169,6 +179,8 @@ private: memory_view m_ram_view; memory_view m_reg_view; + memory_view m_eeprom_view; + optional_shared_ptr<uint8_t> m_eeprom_data; const uint16_t m_internal_ram_size; const uint16_t m_reg_block_size; // size of internal I/O space @@ -192,6 +204,7 @@ private: uint8_t m_tmsk2; uint8_t m_pactl; uint8_t m_init; + uint8_t m_init2; protected: uint8_t m_config; @@ -627,8 +640,6 @@ public: mc68hc11m0_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: - virtual void device_reset() override; - virtual void mc68hc11_reg_map(memory_view::memory_view_entry &block, offs_t base) override; }; |