diff options
Diffstat (limited to 'src/devices/bus/ss50/interface.cpp')
-rw-r--r-- | src/devices/bus/ss50/interface.cpp | 41 |
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) |