summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/ss50/interface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/ss50/interface.cpp')
-rw-r--r--src/devices/bus/ss50/interface.cpp41
1 files changed, 21 insertions, 20 deletions
diff --git a/src/devices/bus/ss50/interface.cpp b/src/devices/bus/ss50/interface.cpp
index ea0da186afd..af39817693b 100644
--- a/src/devices/bus/ss50/interface.cpp
+++ b/src/devices/bus/ss50/interface.cpp
@@ -103,12 +103,12 @@ DEFINE_DEVICE_TYPE(SS50_INTERFACE, ss50_interface_port_device, "ss50_interface",
// ss50_interface_port_device - construction
//-------------------------------------------------
-ss50_interface_port_device::ss50_interface_port_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : device_t(mconfig, SS50_INTERFACE, tag, owner, clock),
- device_slot_interface(mconfig, *this),
- m_irq_cb(*this),
- m_firq_cb(*this),
- m_card(nullptr)
+ss50_interface_port_device::ss50_interface_port_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) :
+ device_t(mconfig, SS50_INTERFACE, tag, owner, clock),
+ device_single_card_slot_interface<ss50_card_interface>(mconfig, *this),
+ m_irq_cb(*this),
+ m_firq_cb(*this),
+ m_card(nullptr)
{
}
@@ -120,12 +120,7 @@ ss50_interface_port_device::ss50_interface_port_device(const machine_config &mco
void ss50_interface_port_device::device_resolve_objects()
{
- logerror("Resolving objects...\n");
-
- m_irq_cb.resolve_safe();
- m_firq_cb.resolve_safe();
-
- m_card = dynamic_cast<ss50_card_interface *>(get_card_device());
+ m_card = get_card_device();
if (m_card != nullptr)
m_card->m_slot = this;
}
@@ -173,31 +168,31 @@ void ss50_interface_port_device::write(offs_t offset, u8 data)
// fN_w - baud rate clocks for serial interfaces
//-------------------------------------------------
-WRITE_LINE_MEMBER(ss50_interface_port_device::f110_w)
+void ss50_interface_port_device::f110_w(int state)
{
if (m_card != nullptr)
m_card->f110_w(state);
}
-WRITE_LINE_MEMBER(ss50_interface_port_device::f150_9600_w)
+void ss50_interface_port_device::f150_9600_w(int state)
{
if (m_card != nullptr)
m_card->f150_9600_w(state);
}
-WRITE_LINE_MEMBER(ss50_interface_port_device::f300_w)
+void ss50_interface_port_device::f300_w(int state)
{
if (m_card != nullptr)
m_card->f300_w(state);
}
-WRITE_LINE_MEMBER(ss50_interface_port_device::f600_4800_w)
+void ss50_interface_port_device::f600_4800_w(int state)
{
if (m_card != nullptr)
m_card->f600_4800_w(state);
}
-WRITE_LINE_MEMBER(ss50_interface_port_device::f600_1200_w)
+void ss50_interface_port_device::f600_1200_w(int state)
{
if (m_card != nullptr)
m_card->f600_1200_w(state);
@@ -214,10 +209,16 @@ template class device_finder<ss50_card_interface, true>;
// ss50_card_interface - construction
//-------------------------------------------------
-ss50_card_interface::ss50_card_interface(const machine_config &mconfig, device_t &device)
- : device_slot_card_interface(mconfig, device),
- m_slot(nullptr)
+ss50_card_interface::ss50_card_interface(const machine_config &mconfig, device_t &device) :
+ device_interface(device, "ss50card"),
+ m_slot(nullptr)
+{
+}
+
+void ss50_card_interface::interface_pre_start()
{
+ if (!m_slot)
+ throw device_missing_dependencies();
}
void ss50_default_2rs_devices(device_slot_interface &device)