From abfe54b137ef79088e68e43800fe56dc7ea2784f Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Fri, 19 Oct 2018 19:47:11 +0200 Subject: [PATCH] rs232: some more MCFG removal (nw) --- src/devices/bus/compucolor/floppy.h | 20 ++++++------ src/mame/drivers/bw12.cpp | 18 +++++------ src/mame/drivers/bw2.cpp | 6 ++-- src/mame/drivers/c900.cpp | 6 ++-- src/mame/drivers/cgc7900.cpp | 12 +++---- src/mame/drivers/cgenie.cpp | 6 ++-- src/mame/drivers/clcd.cpp | 10 +++--- src/mame/drivers/compucolor.cpp | 12 +++---- src/mame/drivers/cybiko.cpp | 20 ++++++------ src/mame/drivers/decstation.cpp | 16 ++++----- src/mame/drivers/dectalk.cpp | 6 ++-- src/mame/drivers/decwritr.cpp | 6 ++-- src/mame/drivers/dvk_ksm.cpp | 10 +++--- src/mame/drivers/ep64.cpp | 8 ++--- src/mame/drivers/fccpu30.cpp | 24 +++++++------- src/mame/drivers/fmtowns.cpp | 8 ++--- src/mame/drivers/force68k.cpp | 12 +++---- src/mame/drivers/gkigt.cpp | 6 ++-- src/mame/drivers/guab.cpp | 8 ++--- src/mame/drivers/h89.cpp | 19 +++++------ src/mame/drivers/hk68v10.cpp | 6 ++-- src/mame/drivers/ibm6580.cpp | 16 ++++----- src/mame/drivers/isbc.cpp | 50 ++++++++++++++--------------- src/mame/drivers/isbc8010.cpp | 14 ++++---- src/mame/drivers/kyocera.cpp | 18 +++++------ src/mame/drivers/mcb216.cpp | 8 ++--- src/mame/drivers/pcat_dyn.cpp | 14 ++++---- src/mame/drivers/pk8020.cpp | 8 ++--- src/mame/drivers/px4.cpp | 10 +++--- src/mame/drivers/qx10.cpp | 10 +++--- src/mame/drivers/rainbow.cpp | 28 ++++++++-------- src/mame/drivers/rex6000.cpp | 24 +++++++------- src/mame/drivers/sdk80.cpp | 29 +++++++++-------- src/mame/drivers/sdk86.cpp | 23 ++++++------- src/mame/drivers/sitcom.cpp | 4 +-- src/mame/drivers/sm7238.cpp | 16 ++++----- src/mame/drivers/twinkle.cpp | 22 ++++++------- src/mame/drivers/unixpc.cpp | 8 ++--- src/mame/drivers/vt240.cpp | 18 +++++------ 39 files changed, 279 insertions(+), 280 deletions(-) diff --git a/src/devices/bus/compucolor/floppy.h b/src/devices/bus/compucolor/floppy.h index e879517a30b..63e9c78782a 100644 --- a/src/devices/bus/compucolor/floppy.h +++ b/src/devices/bus/compucolor/floppy.h @@ -16,17 +16,6 @@ #include "imagedev/floppy.h" - -//************************************************************************** -// INTERFACE MACROS -//************************************************************************** - -#define MCFG_COMPUCOLOR_FLOPPY_PORT_ADD(_tag, _slot_intf, _def_slot) \ - MCFG_DEVICE_ADD(_tag, COMPUCOLOR_FLOPPY_PORT, 0) \ - MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false) - - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -50,6 +39,15 @@ protected: class compucolor_floppy_port_device : public rs232_port_device { public: + template + compucolor_floppy_port_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt) + : rs232_port_device(mconfig, tag, owner, 0) + { + option_reset(); + opts(*this); + set_default_option(dflt); + set_fixed(false); + } compucolor_floppy_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); DECLARE_WRITE_LINE_MEMBER( rw_w ) { if (m_dev) m_dev->rw_w(state); } diff --git a/src/mame/drivers/bw12.cpp b/src/mame/drivers/bw12.cpp index 1a26bd62754..dc4b8ad955e 100644 --- a/src/mame/drivers/bw12.cpp +++ b/src/mame/drivers/bw12.cpp @@ -602,7 +602,7 @@ MACHINE_CONFIG_START(bw12_state::common) MCFG_PIT8253_CLK0(XTAL(1'843'200)) MCFG_PIT8253_OUT0_HANDLER(WRITELINE(*this, bw12_state, pit_out0_w)) MCFG_PIT8253_CLK1(XTAL(1'843'200)) - MCFG_PIT8253_OUT1_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, rxtxcb_w)) + MCFG_PIT8253_OUT1_HANDLER(WRITELINE(m_sio, z80dart_device, rxtxcb_w)) MCFG_PIT8253_CLK2(XTAL(1'843'200)) MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, bw12_state, pit_out2_w)) @@ -620,15 +620,15 @@ MACHINE_CONFIG_START(bw12_state::common) m_kbc->control().set(FUNC(bw12_state::ay3600_control_r)); m_kbc->data_ready().set(FUNC(bw12_state::ay3600_data_ready_w)); - MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, ctsa_w)) + rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_sio, FUNC(z80dart_device::rxa_w)); + rs232a.dcd_handler().set(m_sio, FUNC(z80dart_device::dcda_w)); + rs232a.cts_handler().set(m_sio, FUNC(z80dart_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, ctsb_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_sio, FUNC(z80dart_device::rxb_w)); + rs232b.dcd_handler().set(m_sio, FUNC(z80dart_device::dcdb_w)); + rs232b.cts_handler().set(m_sio, FUNC(z80dart_device::ctsb_w)); /* printer */ MCFG_DEVICE_ADD(CENTRONICS_TAG, CENTRONICS, centronics_devices, "printer") diff --git a/src/mame/drivers/bw2.cpp b/src/mame/drivers/bw2.cpp index 564a3d000af..4840fde41f5 100644 --- a/src/mame/drivers/bw2.cpp +++ b/src/mame/drivers/bw2.cpp @@ -588,9 +588,9 @@ MACHINE_CONFIG_START(bw2_state::bw2) m_uart->dtr_handler().set(RS232_TAG, FUNC(rs232_port_device::write_dtr)); m_uart->rts_handler().set(RS232_TAG, FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart, i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE(m_uart, i8251_device, write_dsr)) + rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); + rs232.rxd_handler().set(m_uart, FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set(m_uart, FUNC(i8251_device::write_dsr)); WD2797(config, m_fdc, 16_MHz_XTAL / 16); m_fdc->intrq_wr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); diff --git a/src/mame/drivers/c900.cpp b/src/mame/drivers/c900.cpp index 40ba63b7b8a..6be497e54ce 100644 --- a/src/mame/drivers/c900.cpp +++ b/src/mame/drivers/c900.cpp @@ -112,9 +112,9 @@ MACHINE_CONFIG_START(c900_state::c900) scc.out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts)); //scc.out_int_callback().set("rs232", FUNC(c900_state::scc_int)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER (WRITELINE ("scc", scc8030_device, rxb_w)) - MCFG_RS232_CTS_HANDLER (WRITELINE ("scc", scc8030_device, ctsb_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set("scc", FUNC(scc8030_device::rxb_w)); + rs232.cts_handler().set("scc", FUNC(scc8030_device::ctsb_w)); MACHINE_CONFIG_END ROM_START( c900 ) diff --git a/src/mame/drivers/cgc7900.cpp b/src/mame/drivers/cgc7900.cpp index d14c727179c..ae9e76055a4 100644 --- a/src/mame/drivers/cgc7900.cpp +++ b/src/mame/drivers/cgc7900.cpp @@ -505,9 +505,9 @@ MACHINE_CONFIG_START(cgc7900_state::cgc7900) m_i8251_0->rxrdy_handler().set(FUNC(cgc7900_state::irq<0xf>)); m_i8251_0->txrdy_handler().set(FUNC(cgc7900_state::irq<0x3>)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "null_modem") - MCFG_RS232_RXD_HANDLER(WRITELINE(INS8251_0_TAG, i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE(INS8251_0_TAG, i8251_device, write_dsr)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "null_modem")); + rs232.rxd_handler().set(m_i8251_0, FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set(m_i8251_0, FUNC(i8251_device::write_dsr)); I8251(config, m_i8251_1, 0); m_i8251_1->txd_handler().set("rs449", FUNC(rs232_port_device::write_txd)); @@ -516,9 +516,9 @@ MACHINE_CONFIG_START(cgc7900_state::cgc7900) m_i8251_1->rxrdy_handler().set(FUNC(cgc7900_state::irq<0x8>)); m_i8251_1->txrdy_handler().set(FUNC(cgc7900_state::irq<0x1>)); - MCFG_DEVICE_ADD("rs449", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(INS8251_1_TAG, i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE(INS8251_1_TAG, i8251_device, write_dsr)) + rs232_port_device &rs449(RS232_PORT(config, "rs449", default_rs232_devices, nullptr)); + rs449.rxd_handler().set(m_i8251_1, FUNC(i8251_device::write_rxd)); + rs449.dsr_handler().set(m_i8251_1, FUNC(i8251_device::write_dsr)); MACHINE_CONFIG_END /*************************************************************************** diff --git a/src/mame/drivers/cgenie.cpp b/src/mame/drivers/cgenie.cpp index d725aff113d..491d06eca38 100644 --- a/src/mame/drivers/cgenie.cpp +++ b/src/mame/drivers/cgenie.cpp @@ -472,9 +472,9 @@ MACHINE_CONFIG_START(cgenie_state::cgenie) MCFG_SOFTWARE_LIST_ADD("cass_list", "cgenie_cass") // serial port - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(*this, cgenie_state, rs232_rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(*this, cgenie_state, rs232_dcd_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); + rs232.rxd_handler().set(FUNC(cgenie_state::rs232_rx_w)); + rs232.dcd_handler().set(FUNC(cgenie_state::rs232_dcd_w)); // cartridge expansion slot MCFG_CG_EXP_SLOT_ADD("exp") diff --git a/src/mame/drivers/clcd.cpp b/src/mame/drivers/clcd.cpp index 9d702084db6..e65106d4198 100644 --- a/src/mame/drivers/clcd.cpp +++ b/src/mame/drivers/clcd.cpp @@ -684,11 +684,11 @@ MACHINE_CONFIG_START(clcd_state::clcd) m_acia->rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); m_acia->dtr_handler().set("rs232", FUNC(rs232_port_device::write_dtr)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("acia", mos6551_device, write_rxd)) - MCFG_RS232_DCD_HANDLER(WRITELINE("acia", mos6551_device, write_dcd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("acia", mos6551_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE("via1", via6522_device, write_pb4)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); + rs232.rxd_handler().set(m_acia, FUNC(mos6551_device::write_rxd)); + rs232.dcd_handler().set(m_acia, FUNC(mos6551_device::write_dcd)); + rs232.dsr_handler().set(m_acia, FUNC(mos6551_device::write_dsr)); + rs232.cts_handler().set("via1", FUNC(via6522_device::write_pb4)); CENTRONICS(config, m_centronics, centronics_devices, nullptr); m_centronics->busy_handler().set("via1", FUNC(via6522_device::write_pb6)).invert(); diff --git a/src/mame/drivers/compucolor.cpp b/src/mame/drivers/compucolor.cpp index 5e834e34369..80340822e16 100644 --- a/src/mame/drivers/compucolor.cpp +++ b/src/mame/drivers/compucolor.cpp @@ -425,14 +425,14 @@ MACHINE_CONFIG_START(compucolor2_state::compucolor2) m_mioc->xi_callback().set(FUNC(compucolor2_state::xi_r)); m_mioc->xo_callback().set(FUNC(compucolor2_state::xo_w)); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(TMS5501_TAG, tms5501_device, rcv_w)) + RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); + m_rs232->rxd_handler().set(m_mioc, FUNC(tms5501_device::rcv_w)); - MCFG_COMPUCOLOR_FLOPPY_PORT_ADD("cd0", compucolor_floppy_port_devices, "floppy") - MCFG_RS232_RXD_HANDLER(WRITELINE(TMS5501_TAG, tms5501_device, rcv_w)) + COMPUCOLOR_FLOPPY_PORT(config, m_floppy0, compucolor_floppy_port_devices, "floppy"); + m_floppy0->rxd_handler().set(m_mioc, FUNC(tms5501_device::rcv_w)); - MCFG_COMPUCOLOR_FLOPPY_PORT_ADD("cd1", compucolor_floppy_port_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(TMS5501_TAG, tms5501_device, rcv_w)) + COMPUCOLOR_FLOPPY_PORT(config, m_floppy1, compucolor_floppy_port_devices, nullptr); + m_floppy1->rxd_handler().set(m_mioc, FUNC(tms5501_device::rcv_w)); // internal ram RAM(config, RAM_TAG).set_default_size("32K").set_extra_options("8K,16K"); diff --git a/src/mame/drivers/cybiko.cpp b/src/mame/drivers/cybiko.cpp index d05e76022f1..669087491e5 100644 --- a/src/mame/drivers/cybiko.cpp +++ b/src/mame/drivers/cybiko.cpp @@ -390,8 +390,8 @@ static DEVICE_INPUT_DEFAULTS_START( debug_serial ) // set up debug port to defau DEVICE_INPUT_DEFAULTS_END MACHINE_CONFIG_START(cybiko_state::cybikov1_debug_serial) - MCFG_DEVICE_MODIFY("debug_serial") - MCFG_RS232_RXD_HANDLER(WRITELINE("maincpu:sci2", h8_sci_device, rx_w)) + auto &debug_serial(*subdevice("debug_serial")); + debug_serial.rxd_handler().set("maincpu:sci2", FUNC(h8_sci_device::rx_w)); MCFG_DEVICE_MODIFY("maincpu:sci2") MCFG_H8_SCI_TX_CALLBACK(WRITELINE("debug_serial", rs232_port_device, write_txd)) MACHINE_CONFIG_END @@ -420,10 +420,10 @@ MACHINE_CONFIG_START(cybiko_state::cybikov1_base) RAM(config, m_ram).set_default_size("512K").set_extra_options("1M"); /* serial debug port */ - MCFG_DEVICE_ADD ("debug_serial", RS232_PORT, default_rs232_devices, nullptr) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("null_modem", debug_serial) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", debug_serial) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("pty", debug_serial) + rs232_port_device &debug_serial(RS232_PORT(config, "debug_serial", default_rs232_devices, nullptr)); + debug_serial.set_option_device_input_defaults("null_modem", DEVICE_INPUT_DEFAULTS_NAME(debug_serial)); + debug_serial.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(debug_serial)); + debug_serial.set_option_device_input_defaults("pty", DEVICE_INPUT_DEFAULTS_NAME(debug_serial)); /* quickload */ MCFG_QUICKLOAD_ADD("quickload", cybiko_state, cybiko, "bin,nv", 0) @@ -473,8 +473,8 @@ MACHINE_CONFIG_START(cybiko_state::cybikov2) m_ram->set_default_size("256K").set_extra_options("512K,1M"); /* serial debug port */ - MCFG_DEVICE_MODIFY("debug_serial") - MCFG_RS232_RXD_HANDLER(WRITELINE("maincpu:sci2", h8_sci_device, rx_w)) + auto &debug_serial(*subdevice("debug_serial")); + debug_serial.rxd_handler().set("maincpu:sci2", FUNC(h8_sci_device::rx_w)); MCFG_DEVICE_MODIFY("maincpu:sci2") MCFG_H8_SCI_TX_CALLBACK(WRITELINE("debug_serial", rs232_port_device, write_txd)) MACHINE_CONFIG_END @@ -494,8 +494,8 @@ MACHINE_CONFIG_START(cybiko_state::cybikoxt) m_ram->set_default_size("2M"); /* serial debug port */ - MCFG_DEVICE_MODIFY("debug_serial") - MCFG_RS232_RXD_HANDLER(WRITELINE("maincpu:sci2", h8_sci_device, rx_w)) + auto &debug_serial(*subdevice("debug_serial")); + debug_serial.rxd_handler().set("maincpu:sci2", FUNC(h8_sci_device::rx_w)); MCFG_DEVICE_MODIFY("maincpu:sci2") MCFG_H8_SCI_TX_CALLBACK(WRITELINE("debug_serial", rs232_port_device, write_txd)) diff --git a/src/mame/drivers/decstation.cpp b/src/mame/drivers/decstation.cpp index f74e430c0b7..1cedabfbda5 100644 --- a/src/mame/drivers/decstation.cpp +++ b/src/mame/drivers/decstation.cpp @@ -397,15 +397,15 @@ MACHINE_CONFIG_START(decstation_state::kn02ba) MCFG_DEVICE_ADD("lk201", LK201, 0) MCFG_LK201_TX_HANDLER(WRITELINE("scc1", z80scc_device, rxb_w)) - MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("scc0", z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("scc0", z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("scc0", z80scc_device, ctsa_w)) + rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_scc0, FUNC(z80scc_device::rxa_w)); + rs232a.dcd_handler().set(m_scc0, FUNC(z80scc_device::dcda_w)); + rs232a.cts_handler().set(m_scc0, FUNC(z80scc_device::ctsa_w)); - MCFG_DEVICE_ADD("rs232b", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("scc0", z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("scc0", z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("scc0", z80scc_device, ctsb_w)) + rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_scc0, FUNC(z80scc_device::rxb_w)); + rs232b.dcd_handler().set(m_scc0, FUNC(z80scc_device::dcdb_w)); + rs232b.cts_handler().set(m_scc0, FUNC(z80scc_device::ctsb_w)); MCFG_NSCSI_BUS_ADD("scsibus") MCFG_NSCSI_ADD("scsibus:0", dec_scsi_devices, "harddisk", false) diff --git a/src/mame/drivers/dectalk.cpp b/src/mame/drivers/dectalk.cpp index ab044202346..61728babbcb 100644 --- a/src/mame/drivers/dectalk.cpp +++ b/src/mame/drivers/dectalk.cpp @@ -880,7 +880,7 @@ MACHINE_CONFIG_START(dectalk_state::dectalk) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", M68000, XTAL(20'000'000)/2) /* E74 20MHz OSC (/2) */ MCFG_DEVICE_PROGRAM_MAP(m68k_mem) - MCFG_DEVICE_ADD("duart", SCN2681, XTAL(3'686'400)) // MC2681 DUART ; Y3 3.6864MHz xtal */ + MCFG_DEVICE_ADD(m_duart, SCN2681, XTAL(3'686'400)) // MC2681 DUART ; Y3 3.6864MHz xtal */ MCFG_MC68681_IRQ_CALLBACK(WRITELINE(*this, dectalk_state, duart_irq_handler)) MCFG_MC68681_A_TX_CALLBACK(WRITELINE(*this, dectalk_state, duart_txa)) MCFG_MC68681_B_TX_CALLBACK(WRITELINE("rs232", rs232_port_device, write_txd)) @@ -909,8 +909,8 @@ MACHINE_CONFIG_START(dectalk_state::dectalk) /* Y2 is a 3.579545 MHz xtal for the dtmf decoder chip */ - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("duart", scn2681_device, rx_b_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(m_duart, FUNC(scn2681_device::rx_b_w)); MACHINE_CONFIG_END diff --git a/src/mame/drivers/decwritr.cpp b/src/mame/drivers/decwritr.cpp index e1e2b450db7..ead4c944006 100644 --- a/src/mame/drivers/decwritr.cpp +++ b/src/mame/drivers/decwritr.cpp @@ -456,9 +456,9 @@ MACHINE_CONFIG_START(decwriter_state::la120) MCFG_INPUT_MERGER_ANY_HIGH("mainint") MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", 0)) - MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("usart", i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("usart", i8251_device, write_dsr)) + rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); + rs232.rxd_handler().set("usart", FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set("usart", FUNC(i8251_device::write_dsr)); */ ER1400(config, m_nvm); diff --git a/src/mame/drivers/dvk_ksm.cpp b/src/mame/drivers/dvk_ksm.cpp index 7f2ce0b4754..ca204512c90 100644 --- a/src/mame/drivers/dvk_ksm.cpp +++ b/src/mame/drivers/dvk_ksm.cpp @@ -447,13 +447,13 @@ MACHINE_CONFIG_START(ksm_state::ksm) // D42 - serial connection to host I8251(config, m_i8251line, 0); - m_i8251line->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); + m_i8251line->txd_handler().set(m_rs232, FUNC(rs232_port_device::write_txd)); m_i8251line->rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir3_w)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "null_modem") - MCFG_RS232_RXD_HANDLER(WRITELINE("i8251line", i8251_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("i8251line", i8251_device, write_cts)) - MCFG_RS232_DSR_HANDLER(WRITELINE("i8251line", i8251_device, write_dsr)) + RS232_PORT(config, m_rs232, default_rs232_devices, "null_modem"); + m_rs232->rxd_handler().set(m_i8251line, FUNC(i8251_device::write_rxd)); + m_rs232->cts_handler().set(m_i8251line, FUNC(i8251_device::write_cts)); + m_rs232->dsr_handler().set(m_i8251line, FUNC(i8251_device::write_dsr)); // D41 - serial connection to MS7004 keyboard I8251(config, m_i8251kbd, 0); diff --git a/src/mame/drivers/ep64.cpp b/src/mame/drivers/ep64.cpp index 50c0475ae9a..5f6dc493815 100644 --- a/src/mame/drivers/ep64.cpp +++ b/src/mame/drivers/ep64.cpp @@ -578,10 +578,10 @@ MACHINE_CONFIG_START(ep64_state::ep64) // video hardware MCFG_NICK_ADD(NICK_TAG, SCREEN_TAG, XTAL(8'000'000)) - MCFG_NICK_VIRQ_CALLBACK(WRITELINE(DAVE_TAG, dave_device, int1_w)) + MCFG_NICK_VIRQ_CALLBACK(WRITELINE(m_dave, dave_device, int1_w)) // sound hardware - MCFG_DAVE_ADD(DAVE_TAG, XTAL(8'000'000), dave_64k_mem, dave_io) + MCFG_DAVE_ADD(m_dave, XTAL(8'000'000), dave_64k_mem, dave_io) MCFG_DAVE_IRQ_CALLBACK(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0)) // devices @@ -595,8 +595,8 @@ MACHINE_CONFIG_START(ep64_state::ep64) MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, ep64_state, write_centronics_busy)) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_CTS_HANDLER(WRITELINE(DAVE_TAG, dave_device, int2_w)) + RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); + m_rs232->rxd_handler().set(m_dave, FUNC(dave_device::int2_w)); MCFG_CASSETTE_ADD(CASSETTE1_TAG) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED) diff --git a/src/mame/drivers/fccpu30.cpp b/src/mame/drivers/fccpu30.cpp index 506dc0e00e9..712016c0f88 100644 --- a/src/mame/drivers/fccpu30.cpp +++ b/src/mame/drivers/fccpu30.cpp @@ -713,21 +713,21 @@ MACHINE_CONFIG_START(cpu30_state::cpu30) /* DUSCC2 interrupt signal REQN is connected to LOCAL IRQ5 of the FGA-002 and level is programmable */ MCFG_DUSCC_OUT_INT_CB(WRITELINE("fga002", fga002_device, lirq5_w)) - MCFG_DEVICE_ADD(RS232P1_TAG, RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("duscc", duscc68562_device, rxb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("duscc", duscc68562_device, ctsb_w)) + rs232_port_device &rs232p1(RS232_PORT(config, RS232P1_TAG, default_rs232_devices, "terminal")); + rs232p1.rxd_handler().set(m_dusccterm, FUNC(duscc68562_device::rxb_w)); + rs232p1.cts_handler().set(m_dusccterm, FUNC(duscc68562_device::ctsb_w)); - MCFG_DEVICE_ADD(RS232P2_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("duscc2", duscc68562_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("duscc2", duscc68562_device, ctsa_w)) + rs232_port_device &rs232p2(RS232_PORT(config, RS232P2_TAG, default_rs232_devices, nullptr)); + rs232p2.rxd_handler().set("duscc2", FUNC(duscc68562_device::rxa_w)); + rs232p2.cts_handler().set("duscc2", FUNC(duscc68562_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232P3_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("duscc2", duscc68562_device, rxb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("duscc2", duscc68562_device, ctsb_w)) + rs232_port_device &rs232p3(RS232_PORT(config, RS232P3_TAG, default_rs232_devices, nullptr)); + rs232p3.rxd_handler().set("duscc2", FUNC(duscc68562_device::rxb_w)); + rs232p3.cts_handler().set("duscc2", FUNC(duscc68562_device::ctsb_w)); - MCFG_DEVICE_ADD(RS232P4_TAG, RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("duscc", duscc68562_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("duscc", duscc68562_device, ctsa_w)) + rs232_port_device &rs232p4(RS232_PORT(config, RS232P4_TAG, default_rs232_devices, "terminal")); + rs232p4.rxd_handler().set(m_dusccterm, FUNC(duscc68562_device::rxa_w)); + rs232p4.cts_handler().set(m_dusccterm, FUNC(duscc68562_device::ctsa_w)); /* PIT Parallel Interface and Timer device, assumed strapped for on board clock */ PIT68230(config, m_pit1, XTAL(16'000'000) / 2); // The PIT clock is not verified on schema but reversed from behaviour diff --git a/src/mame/drivers/fmtowns.cpp b/src/mame/drivers/fmtowns.cpp index 656db340a54..4d4c470d875 100644 --- a/src/mame/drivers/fmtowns.cpp +++ b/src/mame/drivers/fmtowns.cpp @@ -2866,10 +2866,10 @@ MACHINE_CONFIG_START(towns_state::towns_base) m_i8251->rts_handler().set("rs232c", FUNC(rs232_port_device::write_rts)); m_i8251->txd_handler().set("rs232c", FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD("rs232c", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("i8251",i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("i8251",i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE("i8251",i8251_device, write_cts)) + rs232_port_device &rs232c(RS232_PORT(config, "rs232c", default_rs232_devices, nullptr)); + rs232c.rxd_handler().set(m_i8251, FUNC(i8251_device::write_rxd)); + rs232c.dsr_handler().set(m_i8251, FUNC(i8251_device::write_dsr)); + rs232c.cts_handler().set(m_i8251, FUNC(i8251_device::write_cts)); MCFG_FMT_ICMEMCARD_ADD("icmemcard") diff --git a/src/mame/drivers/force68k.cpp b/src/mame/drivers/force68k.cpp index 4c2f72b8933..cb7a66ad7d7 100644 --- a/src/mame/drivers/force68k.cpp +++ b/src/mame/drivers/force68k.cpp @@ -558,18 +558,18 @@ MACHINE_CONFIG_START(force68k_state::fccpu1) m_aciahost->txd_handler().set("rs232host", FUNC(rs232_port_device::write_txd)); m_aciahost->rts_handler().set("rs232host", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232host", RS232_PORT, default_rs232_devices, "null_modem") - MCFG_RS232_RXD_HANDLER(WRITELINE("aciahost", acia6850_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("aciahost", acia6850_device, write_cts)) + rs232_port_device &rs232host(RS232_PORT(config, "rs232host", default_rs232_devices, "null_modem")); + rs232host.rxd_handler().set(m_aciahost, FUNC(acia6850_device::write_rxd)); + rs232host.cts_handler().set(m_aciahost, FUNC(acia6850_device::write_cts)); /* P4/Terminal Port config */ ACIA6850(config, m_aciaterm, 0); m_aciaterm->txd_handler().set("rs232trm", FUNC(rs232_port_device::write_txd)); m_aciaterm->rts_handler().set("rs232trm", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232trm", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("aciaterm", acia6850_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("aciaterm", acia6850_device, write_cts)) + rs232_port_device &rs232trm(RS232_PORT(config, "rs232trm", default_rs232_devices, "terminal")); + rs232trm.rxd_handler().set(m_aciaterm, FUNC(acia6850_device::write_rxd)); + rs232trm.cts_handler().set(m_aciaterm, FUNC(acia6850_device::write_cts)); /* P5/Remote Port config */ ACIA6850(config, m_aciaremt, 0); diff --git a/src/mame/drivers/gkigt.cpp b/src/mame/drivers/gkigt.cpp index 690d5bd7226..93f59f3fa01 100644 --- a/src/mame/drivers/gkigt.cpp +++ b/src/mame/drivers/gkigt.cpp @@ -619,9 +619,9 @@ MACHINE_CONFIG_START(igt_gameking_state::igt_gameking) MCFG_DEVICE_ADD("quart2", SC28C94, XTAL(24'000'000) / 6) MCFG_MC68681_IRQ_CALLBACK(INPUTLINE("maincpu", I960_IRQ0)) - MCFG_DEVICE_ADD("diag", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("quart1", sc28c94_device, rx_d_w)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + rs232_port_device &diag(RS232_PORT(config, "diag", default_rs232_devices, nullptr)); + diag.rxd_handler().set("quart1", FUNC(sc28c94_device::rx_d_w)); + diag.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_igt_gameking) diff --git a/src/mame/drivers/guab.cpp b/src/mame/drivers/guab.cpp index 03a1690f7f9..cd8280ac891 100644 --- a/src/mame/drivers/guab.cpp +++ b/src/mame/drivers/guab.cpp @@ -534,10 +534,10 @@ MACHINE_CONFIG_START(guab_state::guab) acia1.rts_handler().set("rs232_1", FUNC(rs232_port_device::write_rts)); acia1.irq_handler().set_inputline("maincpu", 4); - MCFG_DEVICE_ADD("rs232_1", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("acia6850_1", acia6850_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("acia6850_1", acia6850_device, write_cts)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("keyboard", acia_1_rs232_defaults) + rs232_port_device &rs232(RS232_PORT(config, "rs232_1", default_rs232_devices, nullptr)); + rs232.rxd_handler().set("acia6850_1", FUNC(acia6850_device::write_rxd)); + rs232.cts_handler().set("acia6850_1", FUNC(acia6850_device::write_cts)); + rs232.set_option_device_input_defaults("keyboard", DEVICE_INPUT_DEFAULTS_NAME(acia_1_rs232_defaults)); clock_device &acia_clock(CLOCK(config, "acia_clock", 153600)); // source? the ptm doesn't seem to output any common baud values acia_clock.signal_handler().set("acia6850_1", FUNC(acia6850_device::write_txc)); diff --git a/src/mame/drivers/h89.cpp b/src/mame/drivers/h89.cpp index 6dd41e6938c..becea35114b 100644 --- a/src/mame/drivers/h89.cpp +++ b/src/mame/drivers/h89.cpp @@ -185,21 +185,22 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) DEVICE_INPUT_DEFAULTS_END -MACHINE_CONFIG_START(h89_state::h89) +void h89_state::h89(machine_config & config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(12'288'000) / 6) - MCFG_DEVICE_PROGRAM_MAP(h89_mem) - MCFG_DEVICE_IO_MAP(h89_io) + Z80(config, m_maincpu, XTAL(12'288'000) / 6); + m_maincpu->set_addrmap(AS_PROGRAM, &h89_state::h89_mem); + m_maincpu->set_addrmap(AS_IO, &h89_state::h89_io); ins8250_device &uart(INS8250(config, "ins8250", XTAL(1'843'200))); uart.out_tx_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("ins8250", ins8250_uart_device, rx_w)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, "terminal")); + rs232.rxd_handler().set("ins8250", FUNC(ins8250_uart_device::rx_w)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); - MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer", h89_state, h89_irq_timer, attotime::from_hz(100)) -MACHINE_CONFIG_END + TIMER(config, "irq_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(h89_state::h89_irq_timer), this), attotime::from_hz(100)); +} /* ROM definition */ ROM_START( h89 ) diff --git a/src/mame/drivers/hk68v10.cpp b/src/mame/drivers/hk68v10.cpp index fbacf6cebf6..935d25039c6 100644 --- a/src/mame/drivers/hk68v10.cpp +++ b/src/mame/drivers/hk68v10.cpp @@ -350,9 +350,9 @@ MACHINE_CONFIG_START(hk68v10_state::hk68v10) m_sccterm->out_dtra_callback().set("rs232trm", FUNC(rs232_port_device::write_dtr)); m_sccterm->out_rtsa_callback().set("rs232trm", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232trm", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(m_sccterm, scc8530_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_sccterm, scc8530_device, ctsa_w)) + rs232_port_device &rs232trm(RS232_PORT(config, "rs232trm", default_rs232_devices, "terminal")); + rs232trm.rxd_handler().set(m_sccterm, FUNC(scc8530_device::rxa_w)); + rs232trm.cts_handler().set(m_sccterm, FUNC(scc8530_device::ctsa_w)); MCFG_VME_DEVICE_ADD("vme") MCFG_VME_SLOT_ADD("vme", 1, hk68_vme_cards, nullptr) diff --git a/src/mame/drivers/ibm6580.cpp b/src/mame/drivers/ibm6580.cpp index 092c062daca..98310683fbc 100644 --- a/src/mame/drivers/ibm6580.cpp +++ b/src/mame/drivers/ibm6580.cpp @@ -938,10 +938,10 @@ MACHINE_CONFIG_START(ibm6580_state::ibm6580) upd8251a.rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w)); upd8251a.txrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w)); - MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("upd8251a", i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("upd8251a", i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE("upd8251a", i8251_device, write_cts)) + rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, nullptr)); + rs232a.rxd_handler().set("upd8251a", FUNC(i8251_device::write_rxd)); + rs232a.dsr_handler().set("upd8251a", FUNC(i8251_device::write_dsr)); + rs232a.cts_handler().set("upd8251a", FUNC(i8251_device::write_cts)); i8251_device &upd8251b(I8251(config, "upd8251b", 0)); upd8251b.txd_handler().set("rs232b", FUNC(rs232_port_device::write_txd)); @@ -950,10 +950,10 @@ MACHINE_CONFIG_START(ibm6580_state::ibm6580) upd8251b.rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w)); upd8251b.txrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w)); - MCFG_DEVICE_ADD("rs232b", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("upd8251b", i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("upd8251b", i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE("upd8251b", i8251_device, write_cts)) + rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, nullptr)); + rs232b.rxd_handler().set("upd8251b", FUNC(i8251_device::write_rxd)); + rs232b.dsr_handler().set("upd8251b", FUNC(i8251_device::write_dsr)); + rs232b.cts_handler().set("upd8251b", FUNC(i8251_device::write_cts)); MCFG_SOFTWARE_LIST_ADD("flop_list", "ibm6580") MACHINE_CONFIG_END diff --git a/src/mame/drivers/isbc.cpp b/src/mame/drivers/isbc.cpp index 9e738703524..aeef4555fb9 100644 --- a/src/mame/drivers/isbc.cpp +++ b/src/mame/drivers/isbc.cpp @@ -347,11 +347,11 @@ MACHINE_CONFIG_START(isbc_state::isbc86) m_uart8251->rxrdy_handler().set("pic_0", FUNC(pic8259_device::ir6_w)); /* video hardware */ - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart8251, i8251_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart8251, i8251_device, write_cts)) - MCFG_RS232_DSR_HANDLER(WRITELINE(m_uart8251, i8251_device, write_dsr)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", isbc86_terminal) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(m_uart8251, FUNC(i8251_device::write_rxd)); + rs232.cts_handler().set(m_uart8251, FUNC(i8251_device::write_cts)); + rs232.dsr_handler().set(m_uart8251, FUNC(i8251_device::write_dsr)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(isbc86_terminal)); MACHINE_CONFIG_END MACHINE_CONFIG_START(isbc_state::rpc86) @@ -381,11 +381,11 @@ MACHINE_CONFIG_START(isbc_state::rpc86) m_uart8251->txrdy_handler().set("pic_0", FUNC(pic8259_device::ir7_w)); /* video hardware */ - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("uart8251", i8251_device, write_rxd)) - //MCFG_RS232_CTS_HANDLER(WRITELINE("uart8251", i8251_device, write_cts)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart8251", i8251_device, write_dsr)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", isbc286_terminal) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(m_uart8251, FUNC(i8251_device::write_rxd)); + //rs232.cts_handler().set(m_uart8251, FUNC(i8251_device::write_cts)); + rs232.dsr_handler().set(m_uart8251, FUNC(i8251_device::write_dsr)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(isbc286_terminal)); MCFG_ISBX_SLOT_ADD("sbx1", 0, isbx_cards, nullptr) //MCFG_ISBX_SLOT_MINTR0_CALLBACK(WRITELINE("pic_0", pic8259_device, ir3_w)) @@ -484,28 +484,28 @@ MACHINE_CONFIG_START(isbc_state::isbc286) m_uart8274->out_int_callback().set("pic_0", FUNC(pic8259_device::ir6_w)); #endif - MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, nullptr) + rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, nullptr)); #if 0 - MCFG_RS232_RXD_HANDLER(WRITELINE("uart8274", z80dart_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("uart8274", z80dart_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart8274", z80dart_device, ctsa_w)) + rs232a.rxd_handler().set(m_uart8274, FUNC(z80dart_device::rxa_w)); + rs232a.dcd_handler().set(m_uart8274, FUNC(z80dart_device::dcda_w)); + rs232a.cts_handler().set(m_uart8274, FUNC(z80dart_device::ctsa_w)); #else - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart8274, i8274_new_device, ctsa_w)) + rs232a.rxd_handler().set(m_uart8274, FUNC(i8274_new_device::rxa_w)); + rs232a.dcd_handler().set(m_uart8274, FUNC(i8274_new_device::dcda_w)); + rs232a.cts_handler().set(m_uart8274, FUNC(i8274_new_device::ctsa_w)); #endif - MCFG_DEVICE_ADD("rs232b", RS232_PORT, default_rs232_devices, "terminal") + rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, "terminal")); #if 0 - MCFG_RS232_RXD_HANDLER(WRITELINE("uart8274", z80dart_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("uart8274", z80dart_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart8274", z80dart_device, ctsb_w)) + rs232b.rxd_handler().set(m_uart8274, FUNC(z80dart_device::rxb_w)); + rs232b.dcd_handler().set(m_uart8274, FUNC(z80dart_device::dcdb_w)); + rs232b.cts_handler().set(m_uart8274, FUNC(z80dart_device::ctsb_w)); #else - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart8274, i8274_new_device, ctsb_w)) + rs232b.rxd_handler().set(m_uart8274, FUNC(i8274_new_device::rxb_w)); + rs232b.dcd_handler().set(m_uart8274, FUNC(i8274_new_device::dcdb_w)); + rs232b.cts_handler().set(m_uart8274, FUNC(i8274_new_device::ctsb_w)); #endif - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", isbc286_terminal) + rs232b.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(isbc286_terminal)); MCFG_ISBX_SLOT_ADD("sbx1", 0, isbx_cards, nullptr) MCFG_ISBX_SLOT_MINTR0_CALLBACK(WRITELINE("pic_1", pic8259_device, ir3_w)) diff --git a/src/mame/drivers/isbc8010.cpp b/src/mame/drivers/isbc8010.cpp index 21e76fd841b..a6c4b4017fa 100644 --- a/src/mame/drivers/isbc8010.cpp +++ b/src/mame/drivers/isbc8010.cpp @@ -182,14 +182,14 @@ MACHINE_CONFIG_START(isbc8010_state::isbc8010) m_usart->dtr_handler().set(RS232_TAG, FUNC(rs232_port_device::write_dtr)); m_usart->rts_handler().set(RS232_TAG, FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD(I8255A_1_TAG, I8255A, 0) - MCFG_DEVICE_ADD(I8255A_2_TAG, I8255A, 0) + I8255A(config, m_ppi_0); + I8255A(config, m_ppi_1); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_cts)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + RS232_PORT(config, m_rs232, default_rs232_devices, "terminal"); + m_rs232->rxd_handler().set(m_usart, FUNC(i8251_device::write_rxd)); + m_rs232->dsr_handler().set(m_usart, FUNC(i8251_device::write_dsr)); + m_rs232->cts_handler().set(m_usart, FUNC(i8251_device::write_cts)); + m_rs232->set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); MCFG_DEVICE_ADD("usart_clock", CLOCK, XTAL(18'432'000)/60) MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, isbc8010_state, usart_clock_tick)) diff --git a/src/mame/drivers/kyocera.cpp b/src/mame/drivers/kyocera.cpp index c8ad6c26c48..1a490e5da5c 100644 --- a/src/mame/drivers/kyocera.cpp +++ b/src/mame/drivers/kyocera.cpp @@ -1374,8 +1374,8 @@ MACHINE_CONFIG_START(kc85_state::kc85) IM6402(config, m_uart, 0, 0); m_uart->tro_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart, im6402_device, write_rri)) + rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); + rs232.rxd_handler().set(m_uart, FUNC(im6402_device::write_rri)); MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, kc85_state, write_centronics_busy)) @@ -1424,8 +1424,8 @@ MACHINE_CONFIG_START(pc8201_state::pc8201) IM6402(config, m_uart, 0, 0); m_uart->tro_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart, im6402_device, write_rri)) + rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); + rs232.rxd_handler().set(m_uart, FUNC(im6402_device::write_rri)); MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, kc85_state, write_centronics_busy)) @@ -1484,8 +1484,8 @@ MACHINE_CONFIG_START(trsm100_state::trsm100) IM6402(config, m_uart, 0, 0); m_uart->tro_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart, im6402_device, write_rri)) + rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); + rs232.rxd_handler().set(m_uart, FUNC(im6402_device::write_rri)); MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") MCFG_CASSETTE_ADD("cassette") @@ -1544,9 +1544,9 @@ MACHINE_CONFIG_START(tandy200_state::tandy200) i8251.dtr_handler().set(RS232_TAG, FUNC(rs232_port_device::write_dtr)); i8251.rts_handler().set(RS232_TAG, FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(I8251_TAG, i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE(I8251_TAG, i8251_device, write_dsr)) + rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); + rs232.rxd_handler().set(I8251_TAG, FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set(I8251_TAG, FUNC(i8251_device::write_dsr)); // MCFG_MC14412_ADD(MC14412_TAG, XTAL(1'000'000)) MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") diff --git a/src/mame/drivers/mcb216.cpp b/src/mame/drivers/mcb216.cpp index bed9565e0a0..a6ca9952aec 100644 --- a/src/mame/drivers/mcb216.cpp +++ b/src/mame/drivers/mcb216.cpp @@ -132,8 +132,8 @@ MACHINE_CONFIG_START(mcb216_state::mcb216) m_tms5501->xmt_callback().set("rs232", FUNC(rs232_port_device::write_txd)); m_tms5501->int_callback().set_inputline("maincpu", 0); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("tms5501", tms5501_device, rcv_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(m_tms5501, FUNC(tms5501_device::rcv_w)); MACHINE_CONFIG_END MACHINE_CONFIG_START(mcb216_state::cb308) @@ -149,8 +149,8 @@ MACHINE_CONFIG_START(mcb216_state::cb308) m_tms5501->xmt_callback().set("rs232", FUNC(rs232_port_device::write_txd)); m_tms5501->int_callback().set_inputline("maincpu", 0); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("tms5501", tms5501_device, rcv_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(m_tms5501, FUNC(tms5501_device::rcv_w)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/pcat_dyn.cpp b/src/mame/drivers/pcat_dyn.cpp index 72ff59519f0..68f39874ebc 100644 --- a/src/mame/drivers/pcat_dyn.cpp +++ b/src/mame/drivers/pcat_dyn.cpp @@ -197,13 +197,13 @@ MACHINE_CONFIG_START(pcat_dyn_state::pcat_dyn) uart.out_rts_callback().set("serport", FUNC(rs232_port_device::write_rts)); uart.out_int_callback().set("pic8259_1", FUNC(pic8259_device::ir4_w)); - MCFG_DEVICE_ADD( "serport", RS232_PORT, pcat_dyn_com, "msmouse" ) - MCFG_SLOT_FIXED(true) - MCFG_RS232_RXD_HANDLER(WRITELINE("ns16550", ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("ns16550", ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("ns16550", ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("ns16550", ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("ns16550", ins8250_uart_device, cts_w)) + rs232_port_device &serport(RS232_PORT(config, "serport", pcat_dyn_com, "msmouse")); + serport.set_fixed(true); + serport.rxd_handler().set("ns16550", FUNC(ins8250_uart_device::rx_w)); + serport.dcd_handler().set("ns16550", FUNC(ins8250_uart_device::dcd_w)); + serport.dsr_handler().set("ns16550", FUNC(ins8250_uart_device::dsr_w)); + serport.ri_handler().set("ns16550", FUNC(ins8250_uart_device::ri_w)); + serport.cts_handler().set("ns16550", FUNC(ins8250_uart_device::cts_w)); MCFG_DEVICE_ADD("isa", ISA8, 0) MCFG_ISA8_CPU("maincpu") diff --git a/src/mame/drivers/pk8020.cpp b/src/mame/drivers/pk8020.cpp index 7532358a663..df4816d16db 100644 --- a/src/mame/drivers/pk8020.cpp +++ b/src/mame/drivers/pk8020.cpp @@ -238,10 +238,10 @@ MACHINE_CONFIG_START(pk8020_state::pk8020) m_rs232->rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir1_w)); m_rs232->txrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("i8251line", i8251_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("i8251line", i8251_device, write_cts)) - MCFG_RS232_DSR_HANDLER(WRITELINE("i8251line", i8251_device, write_dsr)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); + rs232.rxd_handler().set(m_rs232, FUNC(i8251_device::write_rxd)); + rs232.cts_handler().set(m_rs232, FUNC(i8251_device::write_cts)); + rs232.dsr_handler().set(m_rs232, FUNC(i8251_device::write_dsr)); I8251(config, m_lan, 0); diff --git a/src/mame/drivers/px4.cpp b/src/mame/drivers/px4.cpp index 0d443f09eda..b582b4e5251 100644 --- a/src/mame/drivers/px4.cpp +++ b/src/mame/drivers/px4.cpp @@ -1535,11 +1535,11 @@ MACHINE_CONFIG_START(px4_state::px4) MCFG_EPSON_SIO_PIN(WRITELINE(*this, px4_state, sio_pin_w)) // rs232 port - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(*this, px4_state, rs232_rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(*this, px4_state, rs232_dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(*this, px4_state, rs232_dsr_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(*this, px4_state, rs232_cts_w)) + RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); + m_rs232->rxd_handler().set(FUNC(px4_state::rs232_rx_w)); + m_rs232->dcd_handler().set(FUNC(px4_state::rs232_dcd_w)); + m_rs232->dsr_handler().set(FUNC(px4_state::rs232_dsr_w)); + m_rs232->cts_handler().set(FUNC(px4_state::rs232_cts_w)); // rom capsules MCFG_GENERIC_CARTSLOT_ADD("capsule1", generic_plain_slot, "px4_cart") diff --git a/src/mame/drivers/qx10.cpp b/src/mame/drivers/qx10.cpp index b94c8b8e409..52201c6c584 100644 --- a/src/mame/drivers/qx10.cpp +++ b/src/mame/drivers/qx10.cpp @@ -777,7 +777,7 @@ MACHINE_CONFIG_START(qx10_state::qx10) UPD7201(config, m_scc, MAIN_CLK/4); // channel b clock set by pit2 channel 2 // Channel A: Keyboard - m_scc->out_txda_callback().set("kbd", FUNC(rs232_port_device::write_txd)); + m_scc->out_txda_callback().set(m_kbd, FUNC(rs232_port_device::write_txd)); // Channel B: RS232 m_scc->out_txdb_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd)); m_scc->out_dtrb_callback().set(RS232_TAG, FUNC(rs232_port_device::write_dtr)); @@ -814,11 +814,11 @@ MACHINE_CONFIG_START(qx10_state::qx10) FLOPPY_CONNECTOR(config, m_floppy[0], qx10_floppies, "525dd", floppy_image_device::default_floppy_formats); FLOPPY_CONNECTOR(config, m_floppy[1], qx10_floppies, "525dd", floppy_image_device::default_floppy_formats); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc, upd7201_device, rxb_w)) + rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); + rs232.rxd_handler().set(m_scc, FUNC(upd7201_device::rxb_w)); - MCFG_DEVICE_ADD("kbd", RS232_PORT, keyboard, "qx10") - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc, z80dart_device, rxa_w)) + RS232_PORT(config, m_kbd, keyboard, "qx10"); + m_kbd->rxd_handler().set(m_scc, FUNC(upd7201_device::rxa_w)); /* internal ram */ RAM(config, RAM_TAG).set_default_size("256K"); diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp index 37bcfef0172..6c370bb5707 100644 --- a/src/mame/drivers/rainbow.cpp +++ b/src/mame/drivers/rainbow.cpp @@ -3312,27 +3312,25 @@ MACHINE_CONFIG_START(rainbow_state::rainbow) UPD7201_NEW(config, m_mpsc, 24.0734_MHz_XTAL / 5 / 2); // 2.4073 MHz (nominally 2.5 MHz) m_mpsc->out_int_callback().set(FUNC(rainbow_state::mpsc_irq)); - m_mpsc->out_txda_callback().set("comm", FUNC(rs232_port_device::write_txd)); + m_mpsc->out_txda_callback().set(m_comm_port, FUNC(rs232_port_device::write_txd)); m_mpsc->out_txdb_callback().set("printer", FUNC(rs232_port_device::write_txd)); // RTS and DTR outputs are not connected - MCFG_DEVICE_ADD("comm", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, ctsa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, dcda_w)) + RS232_PORT(config, m_comm_port, default_rs232_devices, nullptr); + m_comm_port->rxd_handler().set(m_mpsc, FUNC(upd7201_new_device::rxa_w)); + m_comm_port->cts_handler().set(m_mpsc, FUNC(upd7201_new_device::ctsa_w)); + m_comm_port->dcd_handler().set(m_mpsc, FUNC(upd7201_new_device::dcda_w)); - MCFG_DEVICE_ADD("printer", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, ctsb_w)) // actually DTR + rs232_port_device &printer(RS232_PORT(config, "printer", default_rs232_devices, nullptr)); + printer.rxd_handler().set(m_mpsc, FUNC(upd7201_new_device::rxb_w)); + printer.dcd_handler().set(m_mpsc, FUNC(upd7201_new_device::ctsb_w)); // actually DTR - MCFG_DEVICE_MODIFY("comm") - MCFG_SLOT_OPTION_ADD("microsoft_mouse", MSFT_HLE_SERIAL_MOUSE) - MCFG_SLOT_OPTION_ADD("logitech_mouse", LOGITECH_HLE_SERIAL_MOUSE) - MCFG_SLOT_OPTION_ADD("msystems_mouse", MSYSTEMS_HLE_SERIAL_MOUSE) - MCFG_SLOT_DEFAULT_OPTION("logitech_mouse") + m_comm_port->option_add("microsoft_mouse", MSFT_HLE_SERIAL_MOUSE); + m_comm_port->option_add("logitech_mouse", LOGITECH_HLE_SERIAL_MOUSE); + m_comm_port->option_add("msystems_mouse", MSYSTEMS_HLE_SERIAL_MOUSE); + m_comm_port->set_default_option("logitech_mouse"); - MCFG_DEVICE_MODIFY("printer") - MCFG_SLOT_DEFAULT_OPTION("printer") + printer.set_default_option("printer"); I8251(config, m_kbd8251, 24.0734_MHz_XTAL / 5 / 2); m_kbd8251->txd_handler().set(FUNC(rainbow_state::kbd_tx)); diff --git a/src/mame/drivers/rex6000.cpp b/src/mame/drivers/rex6000.cpp index 92973c5e49b..cc605ff6e1b 100644 --- a/src/mame/drivers/rex6000.cpp +++ b/src/mame/drivers/rex6000.cpp @@ -927,12 +927,12 @@ MACHINE_CONFIG_START(rex6000_state::rex6000) m_uart->out_rts_callback().set("serport", FUNC(rs232_port_device::write_rts)); m_uart->out_int_callback().set(FUNC(rex6000_state::serial_irq)); - MCFG_DEVICE_ADD( "serport", RS232_PORT, default_rs232_devices, nullptr ) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(m_uart, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(m_uart, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart, ins8250_uart_device, cts_w)) + rs232_port_device &serport(RS232_PORT(config, "serport", default_rs232_devices, nullptr)); + serport.rxd_handler().set(m_uart, FUNC(ins8250_uart_device::rx_w)); + serport.dcd_handler().set(m_uart, FUNC(ins8250_uart_device::dcd_w)); + serport.dsr_handler().set(m_uart, FUNC(ins8250_uart_device::dsr_w)); + serport.ri_handler().set(m_uart, FUNC(ins8250_uart_device::ri_w)); + serport.cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w)); /* quickload */ MCFG_QUICKLOAD_ADD("quickload", rex6000_state, rex6000, "rex,ds2", 0) @@ -977,12 +977,12 @@ MACHINE_CONFIG_START(oz750_state::oz750) m_uart->out_rts_callback().set("serport", FUNC(rs232_port_device::write_rts)); m_uart->out_int_callback().set(FUNC(rex6000_state::serial_irq)); - MCFG_DEVICE_ADD( "serport", RS232_PORT, default_rs232_devices, nullptr ) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(m_uart, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(m_uart, ins8250_uart_device, ri_w)) - //MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart, ins8250_uart_device, cts_w)) + rs232_port_device &serport(RS232_PORT(config, "serport", default_rs232_devices, nullptr)); + serport.rxd_handler().set(m_uart, FUNC(ins8250_uart_device::rx_w)); + serport.dcd_handler().set(m_uart, FUNC(ins8250_uart_device::dcd_w)); + serport.dsr_handler().set(m_uart, FUNC(ins8250_uart_device::dsr_w)); + serport.ri_handler().set(m_uart, FUNC(ins8250_uart_device::ri_w)); + //serport.cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w)); /* video hardware */ MCFG_SCREEN_ADD("screen", LCD) diff --git a/src/mame/drivers/sdk80.cpp b/src/mame/drivers/sdk80.cpp index 1a3be1c2c6f..a271dcb4822 100644 --- a/src/mame/drivers/sdk80.cpp +++ b/src/mame/drivers/sdk80.cpp @@ -121,29 +121,30 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) // set up terminal to default to DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 ) DEVICE_INPUT_DEFAULTS_END -MACHINE_CONFIG_START(sdk80_state::sdk80) +void sdk80_state::sdk80(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080A, XTAL(18'432'000)/9) - MCFG_DEVICE_PROGRAM_MAP(sdk80_mem) - MCFG_DEVICE_IO_MAP(sdk80_io) + I8080A(config, m_maincpu, XTAL(18'432'000)/9); + m_maincpu->set_addrmap(AS_PROGRAM, &sdk80_state::sdk80_mem); + m_maincpu->set_addrmap(AS_IO, &sdk80_state::sdk80_io); I8251(config, m_usart, 0); m_usart->txd_handler().set(RS232_TAG, FUNC(rs232_port_device::write_txd)); m_usart->dtr_handler().set(RS232_TAG, FUNC(rs232_port_device::write_dtr)); m_usart->rts_handler().set(RS232_TAG, FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD(I8255A_0_TAG, I8255A, 0) - MCFG_DEVICE_ADD(I8255A_1_TAG, I8255A, 0) + I8255A(config, m_ppi_0); + I8255A(config, m_ppi_1); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_cts)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + RS232_PORT(config, m_rs232, default_rs232_devices, "terminal"); + m_rs232->rxd_handler().set(m_usart, FUNC(i8251_device::write_rxd)); + m_rs232->dsr_handler().set(m_usart, FUNC(i8251_device::write_dsr)); + m_rs232->cts_handler().set(m_usart, FUNC(i8251_device::write_cts)); + m_rs232->set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); - MCFG_DEVICE_ADD("usart_clock", CLOCK, XTAL(18'432'000)/60) - MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, sdk80_state, usart_clock_tick)) -MACHINE_CONFIG_END + clock_device &clock(CLOCK(config, "usart_clock", XTAL(18'432'000)/60)); + clock.signal_handler().set(FUNC(sdk80_state::usart_clock_tick)); +} /* ROM definition */ ROM_START( sdk80 ) diff --git a/src/mame/drivers/sdk86.cpp b/src/mame/drivers/sdk86.cpp index 62232115d66..490d855cad0 100644 --- a/src/mame/drivers/sdk86.cpp +++ b/src/mame/drivers/sdk86.cpp @@ -145,11 +145,12 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_2 ) DEVICE_INPUT_DEFAULTS_END -MACHINE_CONFIG_START(sdk86_state::sdk86) +void sdk86_state::sdk86(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8086, XTAL(14'745'600)/3) /* divided down by i8284 clock generator; jumper selection allows it to be slowed to 2.5MHz, hence changing divider from 3 to 6 */ - MCFG_DEVICE_PROGRAM_MAP(sdk86_mem) - MCFG_DEVICE_IO_MAP(sdk86_io) + I8086(config, m_maincpu, XTAL(14'745'600)/3); /* divided down by i8284 clock generator; jumper selection allows it to be slowed to 2.5MHz, hence changing divider from 3 to 6 */ + m_maincpu->set_addrmap(AS_PROGRAM, &sdk86_state::sdk86_mem); + m_maincpu->set_addrmap(AS_IO, &sdk86_state::sdk86_io); /* video hardware */ config.set_default_layout(layout_sdk86); @@ -160,10 +161,10 @@ MACHINE_CONFIG_START(sdk86_state::sdk86) i8251.dtr_handler().set(RS232_TAG, FUNC(rs232_port_device::write_dtr)); i8251.rts_handler().set(I8251_TAG, FUNC(i8251_device::write_cts)); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(I8251_TAG, i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE(I8251_TAG, i8251_device, write_dsr)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, "terminal")); + rs232.rxd_handler().set(I8251_TAG, FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set(I8251_TAG, FUNC(i8251_device::write_dsr)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); clock_device &usart_clock(CLOCK(config, "usart_clock", XTAL(14'745'600)/3/16)); usart_clock.signal_handler().set(I8251_TAG, FUNC(i8251_device::write_txc)); @@ -176,9 +177,9 @@ MACHINE_CONFIG_START(sdk86_state::sdk86) kbdc.in_shift_callback().set_constant(0); // Shift key kbdc.in_ctrl_callback().set_constant(0); - MCFG_DEVICE_ADD("port1", I8255A, 0) - MCFG_DEVICE_ADD("port2", I8255A, 0) -MACHINE_CONFIG_END + I8255A(config, "port1"); + I8255A(config, "port2"); +} /* ROM definition */ ROM_START( sdk86 ) diff --git a/src/mame/drivers/sitcom.cpp b/src/mame/drivers/sitcom.cpp index ef26cbdbda6..e2c062a321d 100644 --- a/src/mame/drivers/sitcom.cpp +++ b/src/mame/drivers/sitcom.cpp @@ -372,8 +372,8 @@ MACHINE_CONFIG_START(sitcom_state::sitcom) MCFG_DL1414_UPDATE_HANDLER(WRITE16(*this, sitcom_state, update_ds<1>)) // host interface - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "null_modem") - MCFG_RS232_RXD_HANDLER(WRITELINE(*this, sitcom_state, update_rxd)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "null_modem")); + rs232.rxd_handler().set(FUNC(sitcom_state::update_rxd)); MCFG_SOFTWARE_LIST_ADD("bitb_list", "sitcom") config.set_default_layout(layout_sitcom); diff --git a/src/mame/drivers/sm7238.cpp b/src/mame/drivers/sm7238.cpp index 1a1c26dafda..38170e09129 100644 --- a/src/mame/drivers/sm7238.cpp +++ b/src/mame/drivers/sm7238.cpp @@ -406,10 +406,10 @@ MACHINE_CONFIG_START(sm7238_state::sm7238) m_i8251line->rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); m_i8251line->rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir1_w)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "null_modem") - MCFG_RS232_RXD_HANDLER(WRITELINE("i8251line", i8251_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("i8251line", i8251_device, write_cts)) - MCFG_RS232_DSR_HANDLER(WRITELINE("i8251line", i8251_device, write_dsr)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "null_modem")); + rs232.rxd_handler().set(m_i8251line, FUNC(i8251_device::write_rxd)); + rs232.cts_handler().set(m_i8251line, FUNC(i8251_device::write_cts)); + rs232.dsr_handler().set(m_i8251line, FUNC(i8251_device::write_dsr)); // serial connection to KM-035 keyboard I8251(config, m_i8251kbd, 0); @@ -424,10 +424,10 @@ MACHINE_CONFIG_START(sm7238_state::sm7238) I8251(config, m_i8251prn, 0); m_i8251prn->rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir3_w)); - MCFG_DEVICE_ADD("prtr", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("i8251prn", i8251_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("i8251prn", i8251_device, write_cts)) - MCFG_RS232_DSR_HANDLER(WRITELINE("i8251prn", i8251_device, write_dsr)) + rs232_port_device &prtr(RS232_PORT(config, "prtr", default_rs232_devices, nullptr)); + prtr.rxd_handler().set(m_i8251prn, FUNC(i8251_device::write_rxd)); + prtr.cts_handler().set(m_i8251prn, FUNC(i8251_device::write_cts)); + prtr.dsr_handler().set(m_i8251prn, FUNC(i8251_device::write_dsr)); MACHINE_CONFIG_END ROM_START( sm7238 ) diff --git a/src/mame/drivers/twinkle.cpp b/src/mame/drivers/twinkle.cpp index b656674bda5..8470176ad3d 100644 --- a/src/mame/drivers/twinkle.cpp +++ b/src/mame/drivers/twinkle.cpp @@ -1109,19 +1109,19 @@ MACHINE_CONFIG_START(twinkle_state::twinkle) m_ata->irq_handler().set(FUNC(twinkle_state::spu_ata_irq)); m_ata->dmarq_handler().set(FUNC(twinkle_state::spu_ata_dmarq)); - MCFG_DEVICE_ADD("rtc", RTC65271, 0) + RTC65271(config, "rtc", 0); - MCFG_DEVICE_ADD("fdc37c665gt", FDC37C665GT, XTAL(24'000'000)) + FDC37C665GT(config, "fdc37c665gt", XTAL(24'000'000)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, 0) - MCFG_SLOT_OPTION_ADD("xvd701", JVC_XVD701) -// MCFG_SLOT_OPTION_ADD("xvs1100", JVC_XVS1100) // 8th mix only - MCFG_SLOT_DEFAULT_OPTION("xvd701") - MCFG_RS232_RXD_HANDLER(WRITELINE("fdc37c665gt:uart2", ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("fdc37c665gt:uart2", ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("fdc37c665gt:uart2", ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("fdc37c665gt:uart2", ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("fdc37c665gt:uart2", ins8250_uart_device, cts_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", 0)); + rs232.option_add("xvd701", JVC_XVD701); +// rs232.option_add("xvs1100", JVC_XVS1100); // 8th mix only + rs232.set_default_option("xvd701"); + rs232.rxd_handler().set("fdc37c665gt:uart2", FUNC(ins8250_uart_device::rx_w)); + rs232.dcd_handler().set("fdc37c665gt:uart2", FUNC(ins8250_uart_device::dcd_w)); + rs232.dsr_handler().set("fdc37c665gt:uart2", FUNC(ins8250_uart_device::dsr_w)); + rs232.ri_handler().set("fdc37c665gt:uart2", FUNC(ins8250_uart_device::ri_w)); + rs232.cts_handler().set("fdc37c665gt:uart2", FUNC(ins8250_uart_device::cts_w)); ns16550_device &uart(*subdevice("fdc37c665gt:uart2")); uart.out_tx_callback().set("rs232", FUNC(rs232_port_device::write_txd)); diff --git a/src/mame/drivers/unixpc.cpp b/src/mame/drivers/unixpc.cpp index 33a9c640971..b71015bb4ab 100644 --- a/src/mame/drivers/unixpc.cpp +++ b/src/mame/drivers/unixpc.cpp @@ -398,10 +398,10 @@ MACHINE_CONFIG_START(unixpc_state::unixpc) // TODO: RTC //MCFG_DEVICE_ADD("rtc", TC8250, 32.768_kHz_XTAL) - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("mpsc", upd7201_new_device, rxa_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("mpsc", upd7201_new_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("mpsc", upd7201_new_device, ctsa_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); + rs232.rxd_handler().set("mpsc", FUNC(upd7201_new_device::rxa_w)); + rs232.dsr_handler().set("mpsc", FUNC(upd7201_new_device::dcda_w)); + rs232.cts_handler().set("mpsc", FUNC(upd7201_new_device::ctsa_w)); MCFG_DEVICE_ADD("printer", CENTRONICS, centronics_devices, nullptr) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("printlatch", "printer") diff --git a/src/mame/drivers/vt240.cpp b/src/mame/drivers/vt240.cpp index 938eaf4142b..3e872ede8b2 100644 --- a/src/mame/drivers/vt240.cpp +++ b/src/mame/drivers/vt240.cpp @@ -681,9 +681,9 @@ MACHINE_CONFIG_START(vt240_state::vt240) MCFG_UPD7220_BLANK_CALLBACK(INPUTLINE("charcpu", I8085_RST55_LINE)) MCFG_VIDEO_SET_SCREEN("screen") - MCFG_DEVICE_ADD("duart", SCN2681, XTAL(7'372'800) / 2) + MCFG_DEVICE_ADD(m_duart, SCN2681, XTAL(7'372'800) / 2) MCFG_MC68681_IRQ_CALLBACK(WRITELINE(*this, vt240_state, irq13_w)) - MCFG_MC68681_A_TX_CALLBACK(WRITELINE("host", rs232_port_device, write_txd)) + MCFG_MC68681_A_TX_CALLBACK(WRITELINE(m_host, rs232_port_device, write_txd)) MCFG_MC68681_B_TX_CALLBACK(WRITELINE("printer", rs232_port_device, write_txd)) MCFG_MC68681_OUTPORT_CALLBACK(WRITE8(*this, vt240_state, duartout_w)) @@ -699,14 +699,14 @@ MACHINE_CONFIG_START(vt240_state::vt240) MCFG_DEVICE_ADD("keyboard_clock", CLOCK, 4800 * 64) // 8251 is set to /64 on the clock input MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, vt240_state, write_keyboard_clock)) - MCFG_DEVICE_ADD("host", RS232_PORT, default_rs232_devices, "null_modem") - MCFG_RS232_RXD_HANDLER(WRITELINE("duart", scn2681_device, rx_a_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("duart", scn2681_device, ip5_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("duart", scn2681_device, ip0_w)) + RS232_PORT(config, m_host, default_rs232_devices, "null_modem"); + m_host->rxd_handler().set(m_duart, FUNC(scn2681_device::rx_a_w)); + m_host->dsr_handler().set(m_duart, FUNC(scn2681_device::ip5_w)); + m_host->cts_handler().set(m_duart, FUNC(scn2681_device::ip0_w)); - MCFG_DEVICE_ADD("printer", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("duart", scn2681_device, rx_b_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("duart", scn2681_device, ip1_w)) + rs232_port_device &printer(RS232_PORT(config, "printer", default_rs232_devices, nullptr)); + printer.rxd_handler().set(m_duart, FUNC(scn2681_device::rx_b_w)); + printer.dsr_handler().set(m_duart, FUNC(scn2681_device::ip1_w)); X2212(config, "x2212"); MACHINE_CONFIG_END