diff options
Diffstat (limited to 'src/devices/bus/snes/snes_slot.cpp')
-rw-r--r-- | src/devices/bus/snes/snes_slot.cpp | 51 |
1 files changed, 33 insertions, 18 deletions
diff --git a/src/devices/bus/snes/snes_slot.cpp b/src/devices/bus/snes/snes_slot.cpp index f85f198f257..7af674e9f6d 100644 --- a/src/devices/bus/snes/snes_slot.cpp +++ b/src/devices/bus/snes/snes_slot.cpp @@ -177,6 +177,18 @@ WRITE_LINE_MEMBER(device_sns_cart_interface::write_irq) m_slot->write_irq(state); } +//------------------------------------------------- +// read_open_bus - read from the open bus +//------------------------------------------------- + +uint8_t device_sns_cart_interface::read_open_bus() +{ + if (m_slot != nullptr) + return m_slot->read_open_bus(); + + return 0xff; +} + //************************************************************************** // LIVE DEVICE //************************************************************************** @@ -191,7 +203,8 @@ base_sns_cart_slot_device::base_sns_cart_slot_device(const machine_config &mconf m_addon(ADDON_NONE), m_type(SNES_MODE20), m_cart(nullptr), - m_irq_callback(*this) + m_irq_callback(*this), + m_open_bus_callback(*this) { } @@ -225,9 +238,11 @@ base_sns_cart_slot_device::~base_sns_cart_slot_device() void base_sns_cart_slot_device::device_start() { m_cart = dynamic_cast<device_sns_cart_interface *>(get_card_device()); - m_cart->m_slot = this; + if (m_cart != nullptr) + m_cart->m_slot = this; m_irq_callback.resolve_safe(); + m_open_bus_callback.resolve_safe(0xff); } @@ -1060,34 +1075,34 @@ std::string base_sns_cart_slot_device::get_default_card_software(get_default_car read -------------------------------------------------*/ -READ8_MEMBER(base_sns_cart_slot_device::read_l) +uint8_t base_sns_cart_slot_device::read_l(offs_t offset) { if (m_cart) - return m_cart->read_l(space, offset); + return m_cart->read_l(offset); else return 0xff; } -READ8_MEMBER(base_sns_cart_slot_device::read_h) +uint8_t base_sns_cart_slot_device::read_h(offs_t offset) { if (m_cart) - return m_cart->read_h(space, offset); + return m_cart->read_h(offset); else return 0xff; } -READ8_MEMBER(base_sns_cart_slot_device::read_ram) +uint8_t base_sns_cart_slot_device::read_ram(offs_t offset) { if (m_cart) - return m_cart->read_ram(space, offset); + return m_cart->read_ram(offset); else return 0xff; } -READ8_MEMBER(base_sns_cart_slot_device::chip_read) +uint8_t base_sns_cart_slot_device::chip_read(offs_t offset) { if (m_cart) - return m_cart->chip_read(space, offset); + return m_cart->chip_read(offset); else return 0xff; } @@ -1096,28 +1111,28 @@ READ8_MEMBER(base_sns_cart_slot_device::chip_read) write -------------------------------------------------*/ -WRITE8_MEMBER(base_sns_cart_slot_device::write_l) +void base_sns_cart_slot_device::write_l(offs_t offset, uint8_t data) { if (m_cart) - m_cart->write_l(space, offset, data); + m_cart->write_l(offset, data); } -WRITE8_MEMBER(base_sns_cart_slot_device::write_h) +void base_sns_cart_slot_device::write_h(offs_t offset, uint8_t data) { if (m_cart) - m_cart->write_h(space, offset, data); + m_cart->write_h(offset, data); } -WRITE8_MEMBER(base_sns_cart_slot_device::write_ram) +void base_sns_cart_slot_device::write_ram(offs_t offset, uint8_t data) { if (m_cart) - m_cart->write_ram(space, offset, data); + m_cart->write_ram(offset, data); } -WRITE8_MEMBER(base_sns_cart_slot_device::chip_write) +void base_sns_cart_slot_device::chip_write(offs_t offset, uint8_t data) { if (m_cart) - m_cart->chip_write(space, offset, data); + m_cart->chip_write(offset, data); } |