diff options
Diffstat (limited to 'src/devices/bus/sbus/sbus.cpp')
-rw-r--r-- | src/devices/bus/sbus/sbus.cpp | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/src/devices/bus/sbus/sbus.cpp b/src/devices/bus/sbus/sbus.cpp index 8409d8a2598..67ef9571fe3 100644 --- a/src/devices/bus/sbus/sbus.cpp +++ b/src/devices/bus/sbus/sbus.cpp @@ -42,7 +42,7 @@ sbus_slot_device::sbus_slot_device(const machine_config &mconfig, const char *ta sbus_slot_device::sbus_slot_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock) - , device_slot_interface(mconfig, *this) + , device_single_card_slot_interface<device_sbus_card_interface>(mconfig, *this) , m_sbus(*this, finder_base::DUMMY_TAG) , m_slot(-1) { @@ -52,24 +52,17 @@ void sbus_slot_device::device_validity_check(validity_checker &valid) const { if (m_slot < 0 || m_slot > 2) osd_printf_error("Slot %d out of range for Sun SBus\n", m_slot); - - device_t *const card(get_card_device()); - if (card && !dynamic_cast<device_sbus_card_interface *>(card)) - osd_printf_error("Card device %s (%s) does not implement device_sbus_card_interface\n", card->tag(), card->name()); } void sbus_slot_device::device_resolve_objects() { - device_sbus_card_interface *const sbus_card(dynamic_cast<device_sbus_card_interface *>(get_card_device())); + device_sbus_card_interface *const sbus_card(get_card_device()); if (sbus_card) sbus_card->set_sbus(m_sbus, m_slot); } void sbus_slot_device::device_start() { - device_t *const card(get_card_device()); - if (card && !dynamic_cast<device_sbus_card_interface *>(card)) - throw emu_fatalerror("sbus_slot_device: card device %s (%s) does not implement device_sbus_card_interface\n", card->tag(), card->name()); } @@ -170,7 +163,7 @@ void sbus_device::set_irq_line(int state, int line) device_sbus_card_interface::device_sbus_card_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device) + : device_interface(device, "sbus") , m_sbus_finder(device, finder_base::DUMMY_TAG) , m_sbus(nullptr) , m_slot(-1) @@ -190,8 +183,6 @@ void device_sbus_card_interface::interface_validity_check(validity_checker &vali void device_sbus_card_interface::interface_pre_start() { - device_slot_card_interface::interface_pre_start(); - if (!m_sbus) { m_sbus = m_sbus_finder; |