diff options
Diffstat (limited to 'src/mame/drivers/wangpc.cpp')
-rw-r--r-- | src/mame/drivers/wangpc.cpp | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/src/mame/drivers/wangpc.cpp b/src/mame/drivers/wangpc.cpp index c941b9d3e6b..a69de0c446a 100644 --- a/src/mame/drivers/wangpc.cpp +++ b/src/mame/drivers/wangpc.cpp @@ -1275,11 +1275,12 @@ void wangpc_state::on_disk1_unload(floppy_image_device *image) // MACHINE_CONFIG( wangpc ) //------------------------------------------------- -MACHINE_CONFIG_START(wangpc_state::wangpc) - MCFG_DEVICE_ADD(I8086_TAG, I8086, 8000000) - MCFG_DEVICE_PROGRAM_MAP(wangpc_mem) - MCFG_DEVICE_IO_MAP(wangpc_io) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(I8259A_TAG, pic8259_device, inta_cb) +void wangpc_state::wangpc(machine_config &config) +{ + I8086(config, m_maincpu, 8000000); + m_maincpu->set_addrmap(AS_PROGRAM, &wangpc_state::wangpc_mem); + m_maincpu->set_addrmap(AS_IO, &wangpc_state::wangpc_io); + m_maincpu->set_irq_acknowledge_callback(I8259A_TAG, FUNC(pic8259_device::inta_cb)); //config.m_perfect_cpu_quantum = subtag(I8086_TAG); // devices @@ -1351,29 +1352,29 @@ MACHINE_CONFIG_START(wangpc_state::wangpc) WANGPC_KEYBOARD(config, "wangpckb").txd_handler().set(m_uart, FUNC(im6402_device::write_rri)); // bus - MCFG_WANGPC_BUS_ADD() - MCFG_WANGPC_BUS_IRQ2_CALLBACK(WRITELINE(*this, wangpc_state, bus_irq2_w)) - MCFG_WANGPC_BUS_IRQ3_CALLBACK(WRITELINE(I8259A_TAG, pic8259_device, ir3_w)) - MCFG_WANGPC_BUS_IRQ4_CALLBACK(WRITELINE(I8259A_TAG, pic8259_device, ir4_w)) - MCFG_WANGPC_BUS_IRQ5_CALLBACK(WRITELINE(I8259A_TAG, pic8259_device, ir5_w)) - MCFG_WANGPC_BUS_IRQ6_CALLBACK(WRITELINE(I8259A_TAG, pic8259_device, ir6_w)) - MCFG_WANGPC_BUS_IRQ7_CALLBACK(WRITELINE(I8259A_TAG, pic8259_device, ir7_w)) - MCFG_WANGPC_BUS_DRQ1_CALLBACK(WRITELINE(AM9517A_TAG, am9517a_device, dreq1_w)) - MCFG_WANGPC_BUS_DRQ2_CALLBACK(WRITELINE(AM9517A_TAG, am9517a_device, dreq2_w)) - MCFG_WANGPC_BUS_DRQ3_CALLBACK(WRITELINE(AM9517A_TAG, am9517a_device, dreq3_w)) - MCFG_WANGPC_BUS_IOERROR_CALLBACK(INPUTLINE(I8086_TAG, INPUT_LINE_NMI)) - MCFG_WANGPC_BUS_SLOT_ADD("slot1", 1, wangpc_cards, nullptr) - MCFG_WANGPC_BUS_SLOT_ADD("slot2", 2, wangpc_cards, "mvc") - MCFG_WANGPC_BUS_SLOT_ADD("slot3", 3, wangpc_cards, nullptr) - MCFG_WANGPC_BUS_SLOT_ADD("slot4", 4, wangpc_cards, nullptr) - MCFG_WANGPC_BUS_SLOT_ADD("slot5", 5, wangpc_cards, nullptr) + WANGPC_BUS(config, m_bus, 0); + m_bus->irq2_wr_callback().set(FUNC(wangpc_state::bus_irq2_w)); + m_bus->irq3_wr_callback().set(m_pic, FUNC(pic8259_device::ir3_w)); + m_bus->irq4_wr_callback().set(m_pic, FUNC(pic8259_device::ir4_w)); + m_bus->irq5_wr_callback().set(m_pic, FUNC(pic8259_device::ir5_w)); + m_bus->irq6_wr_callback().set(m_pic, FUNC(pic8259_device::ir6_w)); + m_bus->irq7_wr_callback().set(m_pic, FUNC(pic8259_device::ir7_w)); + m_bus->drq1_wr_callback().set(m_dmac, FUNC(am9517a_device::dreq1_w)); + m_bus->drq2_wr_callback().set(m_dmac, FUNC(am9517a_device::dreq2_w)); + m_bus->drq3_wr_callback().set(m_dmac, FUNC(am9517a_device::dreq3_w)); + m_bus->ioerror_wr_callback().set_inputline(m_maincpu, INPUT_LINE_NMI); + WANGPC_BUS_SLOT(config, "slot1", wangpc_cards, nullptr, 1); + WANGPC_BUS_SLOT(config, "slot2", wangpc_cards, "mvc", 2); + WANGPC_BUS_SLOT(config, "slot3", wangpc_cards, nullptr, 3); + WANGPC_BUS_SLOT(config, "slot4", wangpc_cards, nullptr, 4); + WANGPC_BUS_SLOT(config, "slot5", wangpc_cards, nullptr, 5); // internal ram RAM(config, RAM_TAG).set_default_size("128K"); // software list SOFTWARE_LIST(config, "flop_list").set_original("wangpc"); -MACHINE_CONFIG_END +} |