diff options
Diffstat (limited to 'src/mame/drivers/wangpc.cpp')
-rw-r--r-- | src/mame/drivers/wangpc.cpp | 65 |
1 files changed, 34 insertions, 31 deletions
diff --git a/src/mame/drivers/wangpc.cpp b/src/mame/drivers/wangpc.cpp index 4b0c4da1326..9c448093a7d 100644 --- a/src/mame/drivers/wangpc.cpp +++ b/src/mame/drivers/wangpc.cpp @@ -876,7 +876,7 @@ WRITE8_MEMBER( wangpc_state::memw_w ) READ8_MEMBER( wangpc_state::ior2_r ) { if (m_disable_dreq2) - return m_bus->dack_r(space, 2); + return m_bus->dack_r(2); else return m_fdc->dma_r(); } @@ -884,7 +884,7 @@ READ8_MEMBER( wangpc_state::ior2_r ) WRITE8_MEMBER( wangpc_state::iow2_w ) { if (m_disable_dreq2) - m_bus->dack_w(space, 2, data); + m_bus->dack_w(2, data); else m_fdc->dma_w(data); } @@ -1272,15 +1272,16 @@ void wangpc_state::on_disk1_unload(floppy_image_device *image) //************************************************************************** //------------------------------------------------- -// MACHINE_CONFIG( wangpc ) +// 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) - //MCFG_QUANTUM_PERFECT_CPU(I8086_TAG) +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 AM9517A(config, m_dmac, 4000000); @@ -1330,10 +1331,10 @@ MACHINE_CONFIG_START(wangpc_state::wangpc) UPD765A(config, m_fdc, 8'000'000, false, false); m_fdc->intrq_wr_callback().set(FUNC(wangpc_state::fdc_irq)); m_fdc->drq_wr_callback().set(FUNC(wangpc_state::fdc_drq)); - MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", wangpc_floppies, "525dd", wangpc_state::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", wangpc_floppies, "525dd", wangpc_state::floppy_formats) + FLOPPY_CONNECTOR(config, UPD765_TAG ":0", wangpc_floppies, "525dd", wangpc_state::floppy_formats); + FLOPPY_CONNECTOR(config, UPD765_TAG ":1", wangpc_floppies, "525dd", wangpc_state::floppy_formats); - MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer"); + CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->set_data_input_buffer(m_cent_data_in); m_centronics->ack_handler().set(FUNC(wangpc_state::write_centronics_ack)); m_centronics->busy_handler().set(FUNC(wangpc_state::write_centronics_busy)); @@ -1341,7 +1342,9 @@ MACHINE_CONFIG_START(wangpc_state::wangpc) m_centronics->perror_handler().set(FUNC(wangpc_state::write_centronics_perror)); INPUT_BUFFER(config, m_cent_data_in); - MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) + + OUTPUT_LATCH(config, m_cent_data_out); + m_centronics->set_output_latch(*m_cent_data_out); rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); rs232.rxd_handler().set(m_epci, FUNC(mc2661_device::rx_w)); @@ -1349,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 - MCFG_SOFTWARE_LIST_ADD("flop_list", "wangpc") -MACHINE_CONFIG_END + SOFTWARE_LIST(config, "flop_list").set_original("wangpc"); +} |