summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/c64/ieee488.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/c64/ieee488.cpp')
-rw-r--r--src/devices/bus/c64/ieee488.cpp28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/devices/bus/c64/ieee488.cpp b/src/devices/bus/c64/ieee488.cpp
index ef33798bdfc..ee07023f2cc 100644
--- a/src/devices/bus/c64/ieee488.cpp
+++ b/src/devices/bus/c64/ieee488.cpp
@@ -141,18 +141,22 @@ WRITE8_MEMBER( c64_ieee488_device::tpi_pc_w )
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(c64_ieee488_device::device_add_mconfig)
- MCFG_DEVICE_ADD(MOS6525_TAG, TPI6525, 0)
- MCFG_TPI6525_IN_PA_CB(READ8(*this, c64_ieee488_device, tpi_pa_r))
- MCFG_TPI6525_OUT_PA_CB(WRITE8(*this, c64_ieee488_device, tpi_pa_w))
- MCFG_TPI6525_IN_PB_CB(READ8(IEEE488_TAG, ieee488_device, dio_r))
- MCFG_TPI6525_OUT_PB_CB(WRITE8(IEEE488_TAG, ieee488_device, host_dio_w))
- MCFG_TPI6525_IN_PC_CB(READ8(*this, c64_ieee488_device, tpi_pc_r))
- MCFG_TPI6525_OUT_PC_CB(WRITE8(*this, c64_ieee488_device, tpi_pc_w))
-
- MCFG_CBM_IEEE488_ADD(nullptr)
- MCFG_C64_PASSTHRU_EXPANSION_SLOT_ADD()
-MACHINE_CONFIG_END
+void c64_ieee488_device::device_add_mconfig(machine_config &config)
+{
+ TPI6525(config, m_tpi, 0);
+ m_tpi->in_pa_cb().set(FUNC(c64_ieee488_device::tpi_pa_r));
+ m_tpi->out_pa_cb().set(FUNC(c64_ieee488_device::tpi_pa_w));
+ m_tpi->in_pb_cb().set(m_bus, FUNC(ieee488_device::dio_r));
+ m_tpi->out_pb_cb().set(m_bus, FUNC(ieee488_device::host_dio_w));
+ m_tpi->in_pc_cb().set(FUNC(c64_ieee488_device::tpi_pc_r));
+ m_tpi->out_pc_cb().set(FUNC(c64_ieee488_device::tpi_pc_w));
+
+ IEEE488(config, m_bus, 0);
+ ieee488_slot_device::add_cbm_defaults(config, nullptr);
+
+ C64_EXPANSION_SLOT(config, m_exp, c64_expansion_cards, nullptr);
+ m_exp->set_passthrough();
+}