summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/svi3x8/expander/expander.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/svi3x8/expander/expander.cpp')
-rw-r--r--src/devices/bus/svi3x8/expander/expander.cpp50
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());
}