summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/microdec.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/microdec.cpp')
-rw-r--r--src/mame/drivers/microdec.cpp75
1 files changed, 37 insertions, 38 deletions
diff --git a/src/mame/drivers/microdec.cpp b/src/mame/drivers/microdec.cpp
index 65e0d88e879..4093dd1aae6 100644
--- a/src/mame/drivers/microdec.cpp
+++ b/src/mame/drivers/microdec.cpp
@@ -190,49 +190,48 @@ void microdec_state::init_microdec()
membank("bankw0")->configure_entry(0, &main[0x1000]);
}
-MACHINE_CONFIG_START(microdec_state::microdec)
+void microdec_state::microdec(machine_config &config)
+{
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(16'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(microdec_mem)
- MCFG_DEVICE_IO_MAP(microdec_io)
+ Z80(config, m_maincpu, 16_MHz_XTAL / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &microdec_state::microdec_mem);
+ m_maincpu->set_addrmap(AS_IO, &microdec_state::microdec_io);
/* video hardware */
- MCFG_DEVICE_ADD("uart_clock", CLOCK, 153600)
- MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE("uart1", i8251_device, write_txc))
- MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE("uart1", i8251_device, write_rxc))
- MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE("uart2", i8251_device, write_txc))
- MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE("uart2", i8251_device, write_rxc))
-
- MCFG_DEVICE_ADD("uart1", I8251, 0)
- MCFG_I8251_TXD_HANDLER(WRITELINE("rs232a", rs232_port_device, write_txd))
- MCFG_I8251_DTR_HANDLER(WRITELINE("rs232a", rs232_port_device, write_dtr))
- MCFG_I8251_RTS_HANDLER(WRITELINE("rs232a", rs232_port_device, write_rts))
-
- MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, "terminal")
- MCFG_RS232_RXD_HANDLER(WRITELINE("uart1", i8251_device, write_rxd))
- MCFG_RS232_DSR_HANDLER(WRITELINE("uart1", i8251_device, write_dsr))
- MCFG_RS232_CTS_HANDLER(WRITELINE("uart1", i8251_device, write_cts))
-
- MCFG_DEVICE_ADD("uart2", I8251, 0)
- MCFG_I8251_TXD_HANDLER(WRITELINE("rs232b", rs232_port_device, write_txd))
- MCFG_I8251_DTR_HANDLER(WRITELINE("rs232b", rs232_port_device, write_dtr))
- MCFG_I8251_RTS_HANDLER(WRITELINE("rs232b", rs232_port_device, write_rts))
-
- MCFG_DEVICE_ADD("rs232b", RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE("uart2", i8251_device, write_rxd))
- MCFG_RS232_DSR_HANDLER(WRITELINE("uart2", i8251_device, write_dsr))
- MCFG_RS232_CTS_HANDLER(WRITELINE("uart2", i8251_device, write_cts))
-
- MCFG_UPD765A_ADD("fdc", true, true)
- MCFG_UPD765_INTRQ_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", microdec_floppies, "525hd", floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- //MCFG_FLOPPY_DRIVE_ADD("fdc:1", microdec_floppies, "525hd", floppy_image_device::default_floppy_formats)
- //MCFG_FLOPPY_DRIVE_SOUND(true)
+ clock_device &uart_clock(CLOCK(config, "uart_clock", 153600));
+ uart_clock.signal_handler().set("uart1", FUNC(i8251_device::write_txc));
+ uart_clock.signal_handler().append("uart1", FUNC(i8251_device::write_rxc));
+ uart_clock.signal_handler().append("uart2", FUNC(i8251_device::write_txc));
+ uart_clock.signal_handler().append("uart2", FUNC(i8251_device::write_rxc));
+
+ i8251_device &uart1(I8251(config, "uart1", 0));
+ uart1.txd_handler().set("rs232a", FUNC(rs232_port_device::write_txd));
+ uart1.dtr_handler().set("rs232a", FUNC(rs232_port_device::write_dtr));
+ uart1.rts_handler().set("rs232a", FUNC(rs232_port_device::write_rts));
+
+ rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, "terminal"));
+ rs232a.rxd_handler().set("uart1", FUNC(i8251_device::write_rxd));
+ rs232a.dsr_handler().set("uart1", FUNC(i8251_device::write_dsr));
+ rs232a.cts_handler().set("uart1", FUNC(i8251_device::write_cts));
+
+ i8251_device &uart2(I8251(config, "uart2", 0));
+ uart2.txd_handler().set("rs232b", FUNC(rs232_port_device::write_txd));
+ uart2.dtr_handler().set("rs232b", FUNC(rs232_port_device::write_dtr));
+ uart2.rts_handler().set("rs232b", FUNC(rs232_port_device::write_rts));
+
+ rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, nullptr));
+ rs232b.rxd_handler().set("uart2", FUNC(i8251_device::write_rxd));
+ rs232b.dsr_handler().set("uart2", FUNC(i8251_device::write_dsr));
+ rs232b.cts_handler().set("uart2", FUNC(i8251_device::write_cts));
+
+ UPD765A(config, m_fdc, true, true);
+ m_fdc->intrq_wr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ FLOPPY_CONNECTOR(config, "fdc:0", microdec_floppies, "525hd", floppy_image_device::default_floppy_formats).enable_sound(true);
+ //FLOPPY_CONNECTOR(config, "fdc:1", microdec_floppies, "525hd", floppy_image_device::default_floppy_formats).enable_sound(true);
// software lists
- MCFG_SOFTWARE_LIST_ADD("flop_list", "md2_flop")
-MACHINE_CONFIG_END
+ SOFTWARE_LIST(config, "flop_list").set_original("md2_flop");
+}
/* ROM definition */
ROM_START( md2 )