From 8bb25d0245ecc1c18fbde13b18b888c89083f5d2 Mon Sep 17 00:00:00 2001 From: Vas Crabb Date: Sun, 4 Mar 2018 00:53:49 +1100 Subject: [PATCH] move devcb resolution to device_resolve_objects for RS232 and Sun keyboard ports (nw) --- src/devices/bus/rs232/rs232.cpp | 21 ++++++++++++--------- src/devices/bus/rs232/rs232.h | 1 + src/devices/bus/sunkbd/sunkbd.cpp | 6 +++++- src/devices/bus/sunkbd/sunkbd.h | 1 + 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/devices/bus/rs232/rs232.cpp b/src/devices/bus/rs232/rs232.cpp index a60b1d69542..61b6908b322 100644 --- a/src/devices/bus/rs232/rs232.cpp +++ b/src/devices/bus/rs232/rs232.cpp @@ -47,8 +47,8 @@ rs232_port_device::rs232_port_device(const machine_config &mconfig, const char * { } -rs232_port_device::rs232_port_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) - : device_t(mconfig, type, tag, owner, clock), +rs232_port_device::rs232_port_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, type, tag, owner, clock), device_slot_interface(mconfig, *this), m_rxd(0), m_dcd(0), @@ -77,7 +77,7 @@ void rs232_port_device::device_config_complete() m_dev = dynamic_cast(get_card_device()); } -void rs232_port_device::device_start() +void rs232_port_device::device_resolve_objects() { m_rxd_handler.resolve_safe(); m_dcd_handler.resolve_safe(); @@ -86,7 +86,10 @@ void rs232_port_device::device_start() m_cts_handler.resolve_safe(); m_rxc_handler.resolve_safe(); m_txc_handler.resolve_safe(); +} +void rs232_port_device::device_start() +{ save_item(NAME(m_rxd)); save_item(NAME(m_dcd)); save_item(NAME(m_dsr)); @@ -110,30 +113,30 @@ void rs232_port_device::device_start() WRITE_LINE_MEMBER( rs232_port_device::write_txd ) { - if(m_dev) + if (m_dev) m_dev->input_txd(state); } WRITE_LINE_MEMBER( rs232_port_device::write_dtr ) { - if(m_dev) + if (m_dev) m_dev->input_dtr(state); } WRITE_LINE_MEMBER( rs232_port_device::write_rts ) { - if(m_dev) + if (m_dev) m_dev->input_rts(state); } WRITE_LINE_MEMBER( rs232_port_device::write_etc ) { - if(m_dev) + if (m_dev) m_dev->input_etc(state); } -device_rs232_port_interface::device_rs232_port_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device) +device_rs232_port_interface::device_rs232_port_interface(const machine_config &mconfig, device_t &device) : + device_slot_card_interface(mconfig, device) { m_port = dynamic_cast(device.owner()); } diff --git a/src/devices/bus/rs232/rs232.h b/src/devices/bus/rs232/rs232.h index 266bba34ca1..adc121694ef 100644 --- a/src/devices/bus/rs232/rs232.h +++ b/src/devices/bus/rs232/rs232.h @@ -150,6 +150,7 @@ public: protected: rs232_port_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + virtual void device_resolve_objects() override; virtual void device_start() override; virtual void device_config_complete() override; diff --git a/src/devices/bus/sunkbd/sunkbd.cpp b/src/devices/bus/sunkbd/sunkbd.cpp index 55ccea6f5e9..63f7509ef61 100644 --- a/src/devices/bus/sunkbd/sunkbd.cpp +++ b/src/devices/bus/sunkbd/sunkbd.cpp @@ -52,10 +52,14 @@ void sun_keyboard_port_device::device_config_complete() } -void sun_keyboard_port_device::device_start() +void sun_keyboard_port_device::device_resolve_objects() { m_rxd_handler.resolve_safe(); +} + +void sun_keyboard_port_device::device_start() +{ save_item(NAME(m_rxd)); m_rxd = 1; diff --git a/src/devices/bus/sunkbd/sunkbd.h b/src/devices/bus/sunkbd/sunkbd.h index 67634efb57e..e1ea42198ef 100644 --- a/src/devices/bus/sunkbd/sunkbd.h +++ b/src/devices/bus/sunkbd/sunkbd.h @@ -36,6 +36,7 @@ public: protected: sun_keyboard_port_device(machine_config const &mconfig, device_type type, char const *tag, device_t *owner, uint32_t clock); + virtual void device_resolve_objects() override; virtual void device_start() override; virtual void device_config_complete() override;