diff options
Diffstat (limited to 'src/devices/bus/msx_cart/cartridge.h')
-rw-r--r-- | src/devices/bus/msx_cart/cartridge.h | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/src/devices/bus/msx_cart/cartridge.h b/src/devices/bus/msx_cart/cartridge.h index 529d2f0a081..381ec09e566 100644 --- a/src/devices/bus/msx_cart/cartridge.h +++ b/src/devices/bus/msx_cart/cartridge.h @@ -10,26 +10,19 @@ void msx_cart(device_slot_interface &device); void msx_yamaha_60pin(device_slot_interface &device); // 60 pin expansion slots as found in yamaha machines -class msx_slot_cartridge_device; - class msx_cart_interface : public device_slot_card_interface { - friend class msx_slot_cartridge_device; - public: + template <class Object> void set_out_irq_cb(Object &&cb) { m_out_irq_cb.set_callback(std::forward<Object>(cb)); } + // This is called after loading cartridge contents and allows the cartridge // implementation to perform some additional initialization based on the // cartridge contents. virtual void initialize_cartridge() { } - virtual void interface_pre_start() override { assert(m_exp != nullptr); } // reading and writing - virtual uint8_t read_cart(offs_t offset) { return 0xff; } - virtual void write_cart(offs_t offset, uint8_t data) { } - - DECLARE_WRITE_LINE_MEMBER(irq_out); - address_space &memory_space() const; - address_space &io_space() const; + virtual DECLARE_READ8_MEMBER(read_cart) { return 0xff; } + virtual DECLARE_WRITE8_MEMBER(write_cart) { } // ROM/RAM/SRAM management // Mainly used by the cartridge slot when loading images @@ -50,13 +43,13 @@ public: protected: msx_cart_interface(const machine_config &mconfig, device_t &device); + virtual void interface_pre_start() override { m_out_irq_cb.resolve_safe(); } + std::vector<uint8_t> m_rom; std::vector<uint8_t> m_ram; std::vector<uint8_t> m_rom_vlm5030; std::vector<uint8_t> m_sram; - -private: - msx_slot_cartridge_device *m_exp; + devcb_write_line m_out_irq_cb; }; |