summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/msx_cart/cartridge.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/msx_cart/cartridge.h')
-rw-r--r--src/devices/bus/msx_cart/cartridge.h21
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;
};