summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/ql/exp.cpp
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2018-05-11 19:20:32 +1000
committer Vas Crabb <vas@vastheman.com>2018-05-11 19:20:32 +1000
commitde781d1d84e064956df88bfec929b573d4800789 (patch)
treefe770224fb9a446deec18493f2410cc60d27969a /src/devices/bus/ql/exp.cpp
parentbd9f203b655134ab33da3c1d5c7a8bde302c63d0 (diff)
move couple more slots across (nw)
Diffstat (limited to 'src/devices/bus/ql/exp.cpp')
-rw-r--r--src/devices/bus/ql/exp.cpp28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/devices/bus/ql/exp.cpp b/src/devices/bus/ql/exp.cpp
index 24b62b08015..433f8e257ff 100644
--- a/src/devices/bus/ql/exp.cpp
+++ b/src/devices/bus/ql/exp.cpp
@@ -29,9 +29,17 @@ DEFINE_DEVICE_TYPE(QL_EXPANSION_SLOT, ql_expansion_slot_device, "ql_expansion_sl
device_ql_expansion_card_interface::device_ql_expansion_card_interface(const machine_config &mconfig, device_t &device) :
device_slot_card_interface(mconfig, device),
+ m_slot(dynamic_cast<ql_expansion_slot_device *>(device.owner())),
m_romoeh(0)
{
- m_slot = dynamic_cast<ql_expansion_slot_device *>(device.owner());
+}
+
+
+void device_ql_expansion_card_interface::interface_post_start()
+{
+ device_slot_card_interface::interface_post_start();
+
+ device().save_item(NAME(m_romoeh));
}
@@ -59,15 +67,29 @@ ql_expansion_slot_device::ql_expansion_slot_device(const machine_config &mconfig
// device_start - device-specific startup
//-------------------------------------------------
-void ql_expansion_slot_device::device_start()
+void ql_expansion_slot_device::device_validity_check(validity_checker &valid) const
{
- m_card = dynamic_cast<device_ql_expansion_card_interface *>(get_card_device());
+ device_t *const card(get_card_device());
+ if (card && !dynamic_cast<device_ql_expansion_card_interface *>(card))
+ osd_printf_error("Card device %s (%s) does not implement device_ql_expansion_card_interface\n", card->tag(), card->name());
+}
+void ql_expansion_slot_device::device_resolve_objects()
+{
// resolve callbacks
m_write_ipl0l.resolve_safe();
m_write_ipl1l.resolve_safe();
m_write_berrl.resolve_safe();
m_write_extintl.resolve_safe();
+
+ m_card = dynamic_cast<device_ql_expansion_card_interface *>(get_card_device());
+}
+
+void ql_expansion_slot_device::device_start()
+{
+ device_t *const card(get_card_device());
+ if (card && !m_card)
+ throw emu_fatalerror("ql_expansion_slot_device: card device %s (%s) does not implement device_ql_expansion_card_interface\n", card->tag(), card->name());
}