summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/hp80_io/82937.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/hp80_io/82937.cpp')
-rw-r--r--src/devices/bus/hp80_io/82937.cpp50
1 files changed, 27 insertions, 23 deletions
diff --git a/src/devices/bus/hp80_io/82937.cpp b/src/devices/bus/hp80_io/82937.cpp
index e5aff4fac43..6f36b5991fc 100644
--- a/src/devices/bus/hp80_io/82937.cpp
+++ b/src/devices/bus/hp80_io/82937.cpp
@@ -328,29 +328,33 @@ const tiny_rom_entry *hp82937_io_card_device::device_rom_region() const
return ROM_NAME(hp82937);
}
-MACHINE_CONFIG_START(hp82937_io_card_device::device_add_mconfig)
- MCFG_DEVICE_ADD("cpu" , I8049 , XTAL(11'000'000))
- MCFG_DEVICE_IO_MAP(cpu_io_map)
- MCFG_MCS48_PORT_T0_IN_CB(READLINE(*this, hp82937_io_card_device , t0_r))
- MCFG_MCS48_PORT_T1_IN_CB(READLINE("xlator" , hp_1mb5_device , int_r))
- MCFG_MCS48_PORT_P1_IN_CB(READ8(*this, hp82937_io_card_device , p1_r))
- MCFG_MCS48_PORT_P1_OUT_CB(WRITE8(*this, hp82937_io_card_device , p1_w))
- MCFG_MCS48_PORT_P2_IN_CB(READ8(*this, hp82937_io_card_device , dio_r))
- MCFG_MCS48_PORT_P2_OUT_CB(WRITE8(*this, hp82937_io_card_device , dio_w))
-
- MCFG_DEVICE_ADD("xlator" , HP_1MB5 , 0)
- MCFG_1MB5_IRL_HANDLER(WRITELINE(*this, hp82937_io_card_device , irl_w))
- MCFG_1MB5_HALT_HANDLER(WRITELINE(*this, hp82937_io_card_device , halt_w))
- MCFG_1MB5_RESET_HANDLER(WRITELINE(*this, hp82937_io_card_device , reset_w))
-
- MCFG_IEEE488_SLOT_ADD("ieee_dev" , 0 , hp_ieee488_devices , nullptr)
- MCFG_IEEE488_SLOT_ADD("ieee_rem" , 0 , remote488_devices , nullptr)
- MCFG_IEEE488_BUS_ADD()
- MCFG_IEEE488_IFC_CALLBACK(WRITELINE(*this, hp82937_io_card_device , ieee488_ctrl_w))
- MCFG_IEEE488_ATN_CALLBACK(WRITELINE(*this, hp82937_io_card_device , ieee488_ctrl_w))
- MCFG_IEEE488_REN_CALLBACK(WRITELINE(*this, hp82937_io_card_device , ieee488_ctrl_w))
- MCFG_IEEE488_EOI_CALLBACK(WRITELINE(*this, hp82937_io_card_device , ieee488_ctrl_w))
-MACHINE_CONFIG_END
+void hp82937_io_card_device::device_add_mconfig(machine_config &config)
+{
+ I8049(config, m_cpu, XTAL(11'000'000));
+ m_cpu->set_addrmap(AS_IO, &hp82937_io_card_device::cpu_io_map);
+ m_cpu->t0_in_cb().set(FUNC(hp82937_io_card_device::t0_r));
+ m_cpu->t1_in_cb().set("xlator", FUNC(hp_1mb5_device::int_r));
+ m_cpu->p1_in_cb().set(FUNC(hp82937_io_card_device::p1_r));
+ m_cpu->p1_out_cb().set(FUNC(hp82937_io_card_device::p1_w));
+ m_cpu->p2_in_cb().set(FUNC(hp82937_io_card_device::dio_r));
+ m_cpu->p2_out_cb().set(FUNC(hp82937_io_card_device::dio_w));
+
+ HP_1MB5(config, m_translator, 0);
+ m_translator->irl_handler().set(FUNC(hp82937_io_card_device::irl_w));
+ m_translator->halt_handler().set(FUNC(hp82937_io_card_device::halt_w));
+ m_translator->reset_handler().set(FUNC(hp82937_io_card_device::reset_w));
+
+ ieee488_slot_device &ieee_dev(IEEE488_SLOT(config, "ieee_dev", 0));
+ hp_ieee488_devices(ieee_dev);
+ ieee488_slot_device &ieee_rem(IEEE488_SLOT(config, "ieee_rem", 0));
+ remote488_devices(ieee_rem);
+
+ IEEE488(config, m_ieee488, 0);
+ m_ieee488->ifc_callback().set(FUNC(hp82937_io_card_device::ieee488_ctrl_w));
+ m_ieee488->atn_callback().set(FUNC(hp82937_io_card_device::ieee488_ctrl_w));
+ m_ieee488->ren_callback().set(FUNC(hp82937_io_card_device::ieee488_ctrl_w));
+ m_ieee488->eoi_callback().set(FUNC(hp82937_io_card_device::ieee488_ctrl_w));
+}
// device type definition
DEFINE_DEVICE_TYPE(HP82937_IO_CARD, hp82937_io_card_device, "hp82937", "HP82937 card")