diff options
Diffstat (limited to 'src/devices/bus/hp80_io/82937.cpp')
-rw-r--r-- | src/devices/bus/hp80_io/82937.cpp | 50 |
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") |