diff options
Diffstat (limited to 'src/devices/bus/a800/a8sio.cpp')
-rw-r--r-- | src/devices/bus/a800/a8sio.cpp | 46 |
1 files changed, 18 insertions, 28 deletions
diff --git a/src/devices/bus/a800/a8sio.cpp b/src/devices/bus/a800/a8sio.cpp index 45fdb47ba45..c7e134a4e46 100644 --- a/src/devices/bus/a800/a8sio.cpp +++ b/src/devices/bus/a800/a8sio.cpp @@ -41,7 +41,7 @@ // GLOBAL VARIABLES //************************************************************************** -DEFINE_DEVICE_TYPE(A8SIO, a8sio_device, "a8sio", "Atari 8 bit SIO Slot") +DEFINE_DEVICE_TYPE(A8SIO, a8sio_device, "a8sio", "Atari 8-bit SIO Slot") //************************************************************************** // LIVE DEVICE @@ -53,7 +53,7 @@ DEFINE_DEVICE_TYPE(A8SIO, a8sio_device, "a8sio", "Atari 8 bit SIO Slot") a8sio_device::a8sio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, A8SIO, tag, owner, clock) - , device_slot_interface(mconfig, *this) + , device_single_card_slot_interface<device_a8sio_card_interface>(mconfig, *this) , m_out_clock_in_cb(*this) , m_out_data_in_cb(*this) , m_out_proceed_cb(*this) @@ -71,19 +71,9 @@ a8sio_device::a8sio_device(const machine_config &mconfig, const char *tag, devic void a8sio_device::device_resolve_objects() { - m_device = dynamic_cast<device_a8sio_card_interface *>(get_card_device()); - + m_device = get_card_device(); if (m_device) - { m_device->set_a8sio_device(this); - } - - // resolve callbacks - m_out_clock_in_cb.resolve_safe(); - m_out_data_in_cb.resolve_safe(); - m_out_proceed_cb.resolve_safe(); - m_out_audio_in_cb.resolve_safe(); - m_out_interrupt_cb.resolve_safe(); } //------------------------------------------------- @@ -107,51 +97,51 @@ device_a8sio_card_interface *a8sio_device::get_a8sio_card() return m_device; } -WRITE_LINE_MEMBER( a8sio_device::clock_in_w ) +void a8sio_device::clock_in_w(int state) { m_out_clock_in_cb(state); } -WRITE_LINE_MEMBER( a8sio_device::clock_out_w ) +void a8sio_device::clock_out_w(int state) { if (m_device) m_device->clock_out_w(state); } -WRITE_LINE_MEMBER( a8sio_device::data_in_w ) +void a8sio_device::data_in_w(int state) { m_out_data_in_cb(state); } -WRITE_LINE_MEMBER( a8sio_device::data_out_w ) +void a8sio_device::data_out_w(int state) { if (m_device) m_device->data_out_w(state); } -WRITE_LINE_MEMBER( a8sio_device::command_w ) +void a8sio_device::command_w(int state) { if (m_device) m_device->command_w(state); } -WRITE_LINE_MEMBER( a8sio_device::motor_w ) +void a8sio_device::motor_w(int state) { if (m_device) m_device->motor_w(state); } -WRITE_LINE_MEMBER( a8sio_device::proceed_w ) +void a8sio_device::proceed_w(int state) { m_out_proceed_cb(state); } -WRITE8_MEMBER( a8sio_device::audio_in_w ) +void a8sio_device::audio_in_w(uint8_t data) { m_out_audio_in_cb(data); } -WRITE_LINE_MEMBER( a8sio_device::interrupt_w ) +void a8sio_device::interrupt_w(int state) { m_out_interrupt_cb(state); } @@ -166,7 +156,7 @@ WRITE_LINE_MEMBER( a8sio_device::interrupt_w ) //------------------------------------------------- device_a8sio_card_interface::device_a8sio_card_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device) + : device_interface(device, "a8sio") , m_a8sio(nullptr) { } @@ -185,24 +175,24 @@ void device_a8sio_card_interface::set_a8sio_device(a8sio_device *sio) m_a8sio = sio; } -WRITE_LINE_MEMBER( device_a8sio_card_interface::clock_out_w ) +void device_a8sio_card_interface::clock_out_w(int state) { } -WRITE_LINE_MEMBER( device_a8sio_card_interface::data_out_w ) +void device_a8sio_card_interface::data_out_w(int state) { } -WRITE_LINE_MEMBER( device_a8sio_card_interface::command_w ) +void device_a8sio_card_interface::command_w(int state) { } -WRITE_LINE_MEMBER( device_a8sio_card_interface::motor_w ) +void device_a8sio_card_interface::motor_w(int state) { //printf("device_a8sio_card_interface::motor_w %d\n", state); } -WRITE_LINE_MEMBER( device_a8sio_card_interface::ready_w ) +void device_a8sio_card_interface::ready_w(int state) { } |