summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/snes/snes_slot.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/snes/snes_slot.h')
-rw-r--r--src/devices/bus/snes/snes_slot.h36
1 files changed, 20 insertions, 16 deletions
diff --git a/src/devices/bus/snes/snes_slot.h b/src/devices/bus/snes/snes_slot.h
index 91f61e88f4d..9d63a1ba9c2 100644
--- a/src/devices/bus/snes/snes_slot.h
+++ b/src/devices/bus/snes/snes_slot.h
@@ -111,14 +111,14 @@ public:
virtual ~device_sns_cart_interface();
// reading and writing
- virtual DECLARE_READ8_MEMBER(read_l) { return 0xff; } // ROM access in range [00-7f]
- virtual DECLARE_READ8_MEMBER(read_h) { return 0xff; } // ROM access in range [80-ff]
- virtual DECLARE_READ8_MEMBER(read_ram) { if (!m_nvram.empty()) return m_nvram[offset & (m_nvram.size()-1)]; else return 0xff; } // NVRAM access
- virtual DECLARE_WRITE8_MEMBER(write_l) { } // used by carts with subslots
- virtual DECLARE_WRITE8_MEMBER(write_h) { } // used by carts with subslots
- virtual DECLARE_WRITE8_MEMBER(write_ram) { if (!m_nvram.empty()) m_nvram[offset & (m_nvram.size()-1)] = data; } // NVRAM access
- virtual DECLARE_READ8_MEMBER(chip_read) { return 0xff; }
- virtual DECLARE_WRITE8_MEMBER(chip_write) { }
+ virtual uint8_t read_l(offs_t offset) { return 0xff; } // ROM access in range [00-7f]
+ virtual uint8_t read_h(offs_t offset) { return 0xff; } // ROM access in range [80-ff]
+ virtual uint8_t read_ram(offs_t offset) { if (!m_nvram.empty()) return m_nvram[offset & (m_nvram.size()-1)]; else return 0xff; } // NVRAM access
+ virtual void write_l(offs_t offset, uint8_t data) { } // used by carts with subslots
+ virtual void write_h(offs_t offset, uint8_t data) { } // used by carts with subslots
+ virtual void write_ram(offs_t offset, uint8_t data) { if (!m_nvram.empty()) m_nvram[offset & (m_nvram.size()-1)] = data; } // NVRAM access
+ virtual uint8_t chip_read(offs_t offset) { return 0xff; }
+ virtual void chip_write(offs_t offset, uint8_t data) { }
virtual void speedup_addon_bios_access() {}
void rom_alloc(uint32_t size, const char *tag);
@@ -142,6 +142,7 @@ protected:
device_sns_cart_interface(const machine_config &mconfig, device_t &device);
DECLARE_WRITE_LINE_MEMBER(write_irq);
+ uint8_t read_open_bus();
// internal state
uint8_t *m_rom;
@@ -168,6 +169,7 @@ public:
// configuration
auto irq_callback() { return m_irq_callback.bind(); }
+ auto open_bus_callback() { return m_open_bus_callback.bind(); }
// device-level overrides
virtual void device_start() override;
@@ -198,16 +200,17 @@ public:
virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override;
// reading and writing
- DECLARE_READ8_MEMBER(read_l);
- DECLARE_READ8_MEMBER(read_h);
- DECLARE_READ8_MEMBER(read_ram);
- DECLARE_WRITE8_MEMBER(write_l);
- DECLARE_WRITE8_MEMBER(write_h);
- DECLARE_WRITE8_MEMBER(write_ram);
- DECLARE_READ8_MEMBER(chip_read);
- DECLARE_WRITE8_MEMBER(chip_write);
+ uint8_t read_l(offs_t offset);
+ uint8_t read_h(offs_t offset);
+ uint8_t read_ram(offs_t offset);
+ void write_l(offs_t offset, uint8_t data);
+ void write_h(offs_t offset, uint8_t data);
+ void write_ram(offs_t offset, uint8_t data);
+ uint8_t chip_read(offs_t offset);
+ void chip_write(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER(write_irq) { m_irq_callback(state); }
+ uint8_t read_open_bus() { return m_open_bus_callback(); }
// in order to support legacy dumps + add-on CPU dump appended at the end of the file, we
// check if the required data is present and update bank map accordingly
@@ -230,6 +233,7 @@ protected:
private:
devcb_write_line m_irq_callback;
+ devcb_read8 m_open_bus_callback;
};
// ======================> sns_cart_slot_device