diff options
Diffstat (limited to 'src/devices/bus/s100/s100.cpp')
-rw-r--r-- | src/devices/bus/s100/s100.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/devices/bus/s100/s100.cpp b/src/devices/bus/s100/s100.cpp index 23333ce500f..67a5df55124 100644 --- a/src/devices/bus/s100/s100.cpp +++ b/src/devices/bus/s100/s100.cpp @@ -28,19 +28,25 @@ DEFINE_DEVICE_TYPE(S100_SLOT, s100_slot_device, "s100_slot", "S100 slot") //------------------------------------------------- device_s100_card_interface::device_s100_card_interface(const machine_config &mconfig, device_t &device) : - device_slot_card_interface(mconfig, device), + device_interface(device, "s100bus"), m_bus(nullptr), m_next(nullptr) { } +void device_s100_card_interface::interface_pre_start() +{ + if (!m_bus) + throw device_missing_dependencies(); +} + //------------------------------------------------- // s100_slot_device - constructor //------------------------------------------------- s100_slot_device::s100_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, S100_SLOT, tag, owner, clock), - device_slot_interface(mconfig, *this), + device_single_card_slot_interface<device_s100_card_interface>(mconfig, *this), m_bus(*this, DEVICE_SELF_OWNER) { } @@ -52,8 +58,9 @@ s100_slot_device::s100_slot_device(const machine_config &mconfig, const char *ta void s100_slot_device::device_start() { - device_s100_card_interface *dev = dynamic_cast<device_s100_card_interface *>(get_card_device()); - if (dev) m_bus->add_card(dev); + device_s100_card_interface *const dev = get_card_device(); + if (dev) + m_bus->add_card(dev); } |