diff options
Diffstat (limited to 'src/devices/bus/svi3x8/expander/expander.cpp')
-rw-r--r-- | src/devices/bus/svi3x8/expander/expander.cpp | 50 |
1 files changed, 17 insertions, 33 deletions
diff --git a/src/devices/bus/svi3x8/expander/expander.cpp b/src/devices/bus/svi3x8/expander/expander.cpp index e9653827fcf..6c305e47082 100644 --- a/src/devices/bus/svi3x8/expander/expander.cpp +++ b/src/devices/bus/svi3x8/expander/expander.cpp @@ -29,14 +29,15 @@ DEFINE_DEVICE_TYPE(SVI_EXPANDER, svi_expander_device, "svi_expander", "SVI 318/3 svi_expander_device::svi_expander_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, SVI_EXPANDER, tag, owner, clock), - device_slot_interface(mconfig, *this), + device_single_card_slot_interface<device_svi_expander_interface>(mconfig, *this), + device_mixer_interface(mconfig, *this), m_module(nullptr), m_int_handler(*this), m_romdis_handler(*this), m_ramdis_handler(*this), m_ctrl1_handler(*this), m_ctrl2_handler(*this), - m_excsr_handler(*this), + m_excsr_handler(*this, 0xff), m_excsw_handler(*this) { } @@ -56,24 +57,7 @@ svi_expander_device::~svi_expander_device() void svi_expander_device::device_start() { // get inserted module - m_module = dynamic_cast<device_svi_expander_interface *>(get_card_device()); - - // resolve callbacks - m_int_handler.resolve_safe(); - m_romdis_handler.resolve_safe(); - m_ramdis_handler.resolve_safe(); - m_ctrl1_handler.resolve_safe(); - m_ctrl2_handler.resolve_safe(); - m_excsr_handler.resolve_safe(0xff); - m_excsw_handler.resolve_safe(); -} - -//------------------------------------------------- -// device_reset - device-specific reset -//------------------------------------------------- - -void svi_expander_device::device_reset() -{ + m_module = get_card_device(); } //------------------------------------------------- @@ -114,28 +98,28 @@ void svi_expander_device::iorq_w(offs_t offset, uint8_t data) m_module->iorq_w(offset, data); } -WRITE_LINE_MEMBER( svi_expander_device::bk21_w ) +void svi_expander_device::bk21_w(int state) { - if (m_module) - m_module->bk21_w(state); + if (m_module) + m_module->bk21_w(state); } -WRITE_LINE_MEMBER( svi_expander_device::bk22_w ) +void svi_expander_device::bk22_w(int state) { - if (m_module) - m_module->bk22_w(state); + if (m_module) + m_module->bk22_w(state); } -WRITE_LINE_MEMBER( svi_expander_device::bk31_w ) +void svi_expander_device::bk31_w(int state) { - if (m_module) - m_module->bk31_w(state); + if (m_module) + m_module->bk31_w(state); } -WRITE_LINE_MEMBER( svi_expander_device::bk32_w ) +void svi_expander_device::bk32_w(int state) { - if (m_module) - m_module->bk32_w(state); + if (m_module) + m_module->bk32_w(state); } @@ -148,7 +132,7 @@ WRITE_LINE_MEMBER( svi_expander_device::bk32_w ) //------------------------------------------------- device_svi_expander_interface::device_svi_expander_interface(const machine_config &mconfig, device_t &device) : - device_slot_card_interface(mconfig, device) + device_interface(device, "svi3x8exp") { m_expander = dynamic_cast<svi_expander_device *>(device.owner()); } |