diff options
Diffstat (limited to 'src/devices/bus/spectrum/exp.cpp')
-rw-r--r-- | src/devices/bus/spectrum/exp.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/devices/bus/spectrum/exp.cpp b/src/devices/bus/spectrum/exp.cpp index c365f3644f3..06a338ffd8a 100644 --- a/src/devices/bus/spectrum/exp.cpp +++ b/src/devices/bus/spectrum/exp.cpp @@ -69,12 +69,26 @@ spectrum_expansion_slot_device::~spectrum_expansion_slot_device() //------------------------------------------------- +// device_validity_check - device-specific checks +//------------------------------------------------- + +void spectrum_expansion_slot_device::device_validity_check(validity_checker &valid) const +{ + device_t *const card(get_card_device()); + if (card && !dynamic_cast<device_spectrum_expansion_interface *>(card)) + osd_printf_error("Card device %s (%s) does not implement device_spectrum_expansion_interface\n", card->tag(), card->name()); +} + +//------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- void spectrum_expansion_slot_device::device_start() { - m_card = dynamic_cast<device_spectrum_expansion_interface *>(get_card_device()); + device_t *const card_device(get_card_device()); + m_card = dynamic_cast<device_spectrum_expansion_interface *>(card_device); + if (card_device && !m_card) + throw emu_fatalerror("spectrum_expansion_slot_device: card device %s (%s) does not implement device_spectrum_expansion_interface\n", card_device->tag(), card_device->name()); // resolve callbacks m_irq_handler.resolve_safe(); @@ -87,10 +101,6 @@ void spectrum_expansion_slot_device::device_start() void spectrum_expansion_slot_device::device_reset() { - if (get_card_device()) - { - get_card_device()->reset(); - } } //------------------------------------------------- |