summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/sbus/sbus.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/sbus/sbus.cpp')
-rw-r--r--src/devices/bus/sbus/sbus.cpp15
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;