diff options
Diffstat (limited to 'src/devices/bus/msx_slot/sony08.h')
-rw-r--r-- | src/devices/bus/msx_slot/sony08.h | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/src/devices/bus/msx_slot/sony08.h b/src/devices/bus/msx_slot/sony08.h index 74c8fd95f35..22538a74a18 100644 --- a/src/devices/bus/msx_slot/sony08.h +++ b/src/devices/bus/msx_slot/sony08.h @@ -15,32 +15,29 @@ DECLARE_DEVICE_TYPE(MSX_SLOT_SONY08, msx_slot_sony08_device) class msx_slot_sony08_device : public device_t, public msx_internal_slot_interface { public: - msx_slot_sony08_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + msx_slot_sony08_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock); // configuration helpers - void set_rom_start(const char *region, uint32_t offset) { m_rom_region.set_tag(region); m_region_offset = offset; } - - virtual uint8_t read(offs_t offset) override; - virtual void write(offs_t offset, uint8_t data) override; + void set_rom_start(const char *region, u32 offset) { m_rom_region.set_tag(region); m_region_offset = offset; } protected: virtual void device_start() override; - virtual void device_post_load() override; + virtual void device_reset() override; virtual void device_add_mconfig(machine_config &config) override; - void restore_banks(); - private: + static constexpr size_t SRAM_SIZE = 0x4000; + + template <int Bank> void bank_w(u8 data); + required_device<nvram_device> m_nvram; required_memory_region m_rom_region; - uint32_t m_region_offset; - const uint8_t *m_rom; - uint8_t m_selected_bank[8]; - const uint8_t *m_bank_base[8]; - uint8_t m_sram[0x4000]; - - void map_bank(int bank); + memory_bank_array_creator<6> m_rombank; + memory_view m_view0; + memory_view m_view1; + u32 m_region_offset; + std::vector<u8> m_sram; }; |