diff --git a/src/devices/bus/adamnet/spi.cpp b/src/devices/bus/adamnet/spi.cpp index eaeb9e59348..27a3bdcad82 100644 --- a/src/devices/bus/adamnet/spi.cpp +++ b/src/devices/bus/adamnet/spi.cpp @@ -82,7 +82,7 @@ MACHINE_CONFIG_START(adam_spi_device::device_add_mconfig) MCFG_DEVICE_ADD(MC2661_TAG, MC2661, XTAL(4'915'200)) - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) + RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr); centronics_device ¢ronics(CENTRONICS(config, "centronics", centronics_devices, "printer")); centronics.set_data_input_buffer("cent_data_in"); diff --git a/src/devices/bus/cpc/cpc_rs232.cpp b/src/devices/bus/cpc/cpc_rs232.cpp index 10f63d71f84..603e5e64625 100644 --- a/src/devices/bus/cpc/cpc_rs232.cpp +++ b/src/devices/bus/cpc/cpc_rs232.cpp @@ -47,11 +47,11 @@ MACHINE_CONFIG_START(cpc_rs232_device::device_add_mconfig) m_dart->out_dtra_callback().set(m_rs232, FUNC(rs232_port_device::write_dtr)); m_dart->out_rtsa_callback().set(m_rs232, FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232",RS232_PORT,default_rs232_devices,nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart,z80dart_device,rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_dart,z80dart_device,dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_dart,z80dart_device,ctsa_w)) -// MCFG_RS232_RI_HANDLER(WRITELINE(m_dart,z80dart_device,ria_w)) + RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); + m_rs232->rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w)); + m_rs232->dcd_handler().set(m_dart, FUNC(z80dart_device::dcda_w)); + m_rs232->cts_handler().set(m_dart, FUNC(z80dart_device::ctsa_w)); +// m_rs232->ri_handler().set(m_dart, FUNC(z80dart_device::ria_w)); // pass-through MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0) diff --git a/src/devices/bus/ieee488/shark.cpp b/src/devices/bus/ieee488/shark.cpp index 8e2a60985ef..1e160b6c310 100644 --- a/src/devices/bus/ieee488/shark.cpp +++ b/src/devices/bus/ieee488/shark.cpp @@ -80,16 +80,17 @@ void mshark_device::mshark_io(address_map &map) // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(mshark_device::device_add_mconfig) +void mshark_device::device_add_mconfig(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD(I8085_TAG, I8085A, 1000000) - MCFG_DEVICE_PROGRAM_MAP(mshark_mem) - MCFG_DEVICE_IO_MAP(mshark_io) + I8085A(config, m_maincpu, 1000000); + m_maincpu->set_addrmap(AS_PROGRAM, &mshark_device::mshark_mem); + m_maincpu->set_addrmap(AS_IO, &mshark_device::mshark_io); // devices - MCFG_HARDDISK_ADD("harddisk1") - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) -MACHINE_CONFIG_END + HARDDISK(config, "harddisk1", 0); + RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr); +} //------------------------------------------------- diff --git a/src/devices/bus/ieee488/softbox.cpp b/src/devices/bus/ieee488/softbox.cpp index 66c5caf8969..63208f7ce9e 100644 --- a/src/devices/bus/ieee488/softbox.cpp +++ b/src/devices/bus/ieee488/softbox.cpp @@ -244,10 +244,10 @@ MACHINE_CONFIG_START(softbox_device::device_add_mconfig) 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)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + 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)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); i8255_device &ppi0(I8255A(config, I8255_0_TAG)); ppi0.in_pa_callback().set(FUNC(softbox_device::ppi0_pa_r)); diff --git a/src/devices/bus/isa/com.cpp b/src/devices/bus/isa/com.cpp index bd2b500d611..e9ad68ebee3 100644 --- a/src/devices/bus/isa/com.cpp +++ b/src/devices/bus/isa/com.cpp @@ -39,7 +39,8 @@ DEFINE_DEVICE_TYPE(ISA8_COM, isa8_com_device, "isa_com", "Communications Adapter // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(isa8_com_device::device_add_mconfig) +void isa8_com_device::device_add_mconfig(machine_config &config) +{ ins8250_device &uart0(INS8250(config, "uart_0", XTAL(1'843'200))); uart0.out_tx_callback().set("serport0", FUNC(rs232_port_device::write_txd)); uart0.out_dtr_callback().set("serport0", FUNC(rs232_port_device::write_dtr)); @@ -61,34 +62,34 @@ MACHINE_CONFIG_START(isa8_com_device::device_add_mconfig) uart3.out_rts_callback().set("serport3", FUNC(rs232_port_device::write_rts)); uart3.out_int_callback().set(FUNC(isa8_com_device::pc_com_interrupt_2));*/ - MCFG_DEVICE_ADD( "serport0", RS232_PORT, isa_com, "logitech_mouse" ) - MCFG_RS232_RXD_HANDLER(WRITELINE(uart0, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(uart0, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(uart0, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(uart0, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(uart0, ins8250_uart_device, cts_w)) + rs232_port_device &serport0(RS232_PORT(config, "serport0", isa_com, "logitech_mouse")); + serport0.rxd_handler().set(uart0, FUNC(ins8250_uart_device::rx_w)); + serport0.dcd_handler().set(uart0, FUNC(ins8250_uart_device::dcd_w)); + serport0.dsr_handler().set(uart0, FUNC(ins8250_uart_device::dsr_w)); + serport0.ri_handler().set(uart0, FUNC(ins8250_uart_device::ri_w)); + serport0.cts_handler().set(uart0, FUNC(ins8250_uart_device::cts_w)); - MCFG_DEVICE_ADD( "serport1", RS232_PORT, isa_com, nullptr ) - MCFG_RS232_RXD_HANDLER(WRITELINE(uart1, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(uart1, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(uart1, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(uart1, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(uart1, ins8250_uart_device, cts_w)) + rs232_port_device &serport1(RS232_PORT(config, "serport1", isa_com, nullptr)); + serport1.rxd_handler().set(uart1, FUNC(ins8250_uart_device::rx_w)); + serport1.dcd_handler().set(uart1, FUNC(ins8250_uart_device::dcd_w)); + serport1.dsr_handler().set(uart1, FUNC(ins8250_uart_device::dsr_w)); + serport1.ri_handler().set(uart1, FUNC(ins8250_uart_device::ri_w)); + serport1.cts_handler().set(uart1, FUNC(ins8250_uart_device::cts_w)); - //MCFG_DEVICE_ADD( "serport2", RS232_PORT, isa_com, nullptr ) - //MCFG_RS232_RXD_HANDLER(WRITELINE(uart2, ins8250_uart_device, rx_w)) - //MCFG_RS232_DCD_HANDLER(WRITELINE(uart2, ins8250_uart_device, dcd_w)) - //MCFG_RS232_DSR_HANDLER(WRITELINE(uart2, ins8250_uart_device, dsr_w)) - //MCFG_RS232_RI_HANDLER(WRITELINE(uart2, ins8250_uart_device, ri_w)) - //MCFG_RS232_CTS_HANDLER(WRITELINE(uart2, ins8250_uart_device, cts_w)) + //rs232_port_device &serport2(RS232_PORT(config, "serport2", isa_com, nullptr)); + //serport2.rxd_handler().set(uart2, FUNC(ins8250_uart_device::rx_w)); + //serport2.dcd_handler().set(uart2, FUNC(ins8250_uart_device::dcd_w)); + //serport2.dsr_handler().set(uart2, FUNC(ins8250_uart_device::dsr_w)); + //serport2.ri_handler().set(uart2, FUNC(ins8250_uart_device::ri_w)); + //serport2.cts_handler().set(uart2, FUNC(ins8250_uart_device::cts_w)); - //MCFG_DEVICE_ADD( "serport3", RS232_PORT, isa_com, nullptr ) - //MCFG_RS232_RXD_HANDLER(WRITELINE(uart3, ins8250_uart_device, rx_w)) - //MCFG_RS232_DCD_HANDLER(WRITELINE(uart3, ins8250_uart_device, dcd_w)) - //MCFG_RS232_DSR_HANDLER(WRITELINE(uart3, ins8250_uart_device, dsr_w)) - //MCFG_RS232_RI_HANDLER(WRITELINE(uart3, ins8250_uart_device, ri_w)) - //MCFG_RS232_CTS_HANDLER(WRITELINE(uart3, ins8250_uart_device, cts_w)) -MACHINE_CONFIG_END + //rs232_port_device &serport3(RS232_PORT(config, "serport3", isa_com, nullptr)); + //serport3.rxd_handler().set(uart3, FUNC(ins8250_uart_device::rx_w)); + //serport3.dcd_handler().set(uart3, FUNC(ins8250_uart_device::dcd_w)); + //serport3.dsr_handler().set(uart3, FUNC(ins8250_uart_device::dsr_w)); + //serport3.ri_handler().set(uart3, FUNC(ins8250_uart_device::ri_w)); + //serport3.cts_handler().set(uart3, FUNC(ins8250_uart_device::cts_w)); +} //************************************************************************** // LIVE DEVICE @@ -141,7 +142,8 @@ DEFINE_DEVICE_TYPE(ISA8_COM_AT, isa8_com_at_device, "isa_com_at", "Communication // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(isa8_com_at_device::device_add_mconfig) +void isa8_com_at_device::device_add_mconfig(machine_config &config) +{ ns16450_device &uart0(NS16450(config, "uart_0", XTAL(1'843'200))); /* Verified: IBM P/N 6320947 Serial/Parallel card uses an NS16450N */ uart0.out_tx_callback().set("serport0", FUNC(rs232_port_device::write_txd)); uart0.out_dtr_callback().set("serport0", FUNC(rs232_port_device::write_dtr)); @@ -162,23 +164,24 @@ MACHINE_CONFIG_START(isa8_com_at_device::device_add_mconfig) uart3.out_dtr_callback().set("serport3", FUNC(rs232_port_device::write_dtr)); uart3.out_rts_callback().set("serport3", FUNC(rs232_port_device::write_rts)); uart3.out_int_callback().set(FUNC(isa8_com_device::pc_com_interrupt_2));*/ - MCFG_DEVICE_ADD( "serport0", RS232_PORT, isa_com, "logitech_mouse" ) - MCFG_RS232_RXD_HANDLER(WRITELINE(uart0, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(uart0, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(uart0, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(uart0, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(uart0, ins8250_uart_device, cts_w)) - MCFG_DEVICE_ADD( "serport1", RS232_PORT, isa_com, nullptr ) - MCFG_RS232_RXD_HANDLER(WRITELINE(uart1, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(uart1, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(uart1, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(uart1, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(uart1, ins8250_uart_device, cts_w)) + rs232_port_device &serport0(RS232_PORT(config, "serport0", isa_com, "logitech_mouse")); + serport0.rxd_handler().set(uart0, FUNC(ins8250_uart_device::rx_w)); + serport0.dcd_handler().set(uart0, FUNC(ins8250_uart_device::dcd_w)); + serport0.dsr_handler().set(uart0, FUNC(ins8250_uart_device::dsr_w)); + serport0.ri_handler().set(uart0, FUNC(ins8250_uart_device::ri_w)); + serport0.cts_handler().set(uart0, FUNC(ins8250_uart_device::cts_w)); -// MCFG_DEVICE_ADD( "serport2", RS232_PORT, isa_com, nullptr ) -// MCFG_DEVICE_ADD( "serport3", RS232_PORT, isa_com, nullptr ) -MACHINE_CONFIG_END + rs232_port_device &serport1(RS232_PORT(config, "serport1", isa_com, nullptr)); + serport1.rxd_handler().set(uart1, FUNC(ins8250_uart_device::rx_w)); + serport1.dcd_handler().set(uart1, FUNC(ins8250_uart_device::dcd_w)); + serport1.dsr_handler().set(uart1, FUNC(ins8250_uart_device::dsr_w)); + serport1.ri_handler().set(uart1, FUNC(ins8250_uart_device::ri_w)); + serport1.cts_handler().set(uart1, FUNC(ins8250_uart_device::cts_w)); + + //RS232_PORT(config, "serport2", isa_com, nullptr); + //RS232_PORT(config, "serport3", isa_com, nullptr); +} //------------------------------------------------- // isa8_com_device - constructor diff --git a/src/devices/bus/isa/myb3k_com.cpp b/src/devices/bus/isa/myb3k_com.cpp index b99e54216e5..a3f2fd79879 100644 --- a/src/devices/bus/isa/myb3k_com.cpp +++ b/src/devices/bus/isa/myb3k_com.cpp @@ -39,12 +39,12 @@ MACHINE_CONFIG_START(isa8_myb3k_com_device::device_add_mconfig) m_usart->rxrdy_handler().set(FUNC(isa8_myb3k_com_device::com_int_rx)); m_usart->txrdy_handler().set(FUNC(isa8_myb3k_com_device::com_int_tx)); - MCFG_DEVICE_ADD( "com1", RS232_PORT, isa8_myb3k_com, nullptr ) - MCFG_RS232_RXD_HANDLER(WRITELINE("usart", i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("usart", i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE("usart", i8251_device, write_cts)) - MCFG_RS232_RI_HANDLER(WRITELINE(*this, isa8_myb3k_com_device, ri_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(*this, isa8_myb3k_com_device, dcd_w)) + rs232_port_device &com1(RS232_PORT(config, "com1", isa8_myb3k_com, nullptr)); + com1.rxd_handler().set(m_usart, FUNC(i8251_device::write_rxd)); + com1.dsr_handler().set(m_usart, FUNC(i8251_device::write_dsr)); + com1.cts_handler().set(m_usart, FUNC(i8251_device::write_cts)); + com1.ri_handler().set(FUNC(isa8_myb3k_com_device::ri_w)); + com1.dcd_handler().set(FUNC(isa8_myb3k_com_device::dcd_w)); // TODO: configure RxC and TxC from RS232 connector when these are defined is rs232.h /* Timer chip */ diff --git a/src/devices/bus/newbrain/eim.cpp b/src/devices/bus/newbrain/eim.cpp index 592b5c55432..2bafd008eb6 100644 --- a/src/devices/bus/newbrain/eim.cpp +++ b/src/devices/bus/newbrain/eim.cpp @@ -90,7 +90,7 @@ MACHINE_CONFIG_START(newbrain_eim_device::device_add_mconfig) ACIA6850(config, m_acia, 0); m_acia->irq_handler().set(FUNC(newbrain_eim_device::acia_interrupt)); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) + RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr); MCFG_NEWBRAIN_EXPANSION_SLOT_ADD(NEWBRAIN_EXPANSION_SLOT_TAG, XTAL(16'000'000)/8, newbrain_expansion_cards, "fdc") diff --git a/src/devices/bus/nubus/bootbug.cpp b/src/devices/bus/nubus/bootbug.cpp index b466946ded0..bebfda194fa 100644 --- a/src/devices/bus/nubus/bootbug.cpp +++ b/src/devices/bus/nubus/bootbug.cpp @@ -46,19 +46,20 @@ DEFINE_DEVICE_TYPE(NUBUS_BOOTBUG, nubus_bootbug_device, "nb_btbug", "Brigent Boo // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(nubus_bootbug_device::device_add_mconfig) - ns16450_device &uart(NS16450(config, "uart_0", XTAL(1'843'200))); - uart.out_tx_callback().set("serport0", FUNC(rs232_port_device::write_txd)); - uart.out_dtr_callback().set("serport0", FUNC(rs232_port_device::write_dtr)); - uart.out_rts_callback().set("serport0", FUNC(rs232_port_device::write_rts)); +void nubus_bootbug_device::device_add_mconfig(machine_config &config) +{ + NS16450(config, m_uart, XTAL(1'843'200)); + m_uart->out_tx_callback().set("serport0", FUNC(rs232_port_device::write_txd)); + m_uart->out_dtr_callback().set("serport0", FUNC(rs232_port_device::write_dtr)); + m_uart->out_rts_callback().set("serport0", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD( "serport0", RS232_PORT, isa_com, "terminal" ) - MCFG_RS232_RXD_HANDLER(WRITELINE(uart, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(uart, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(uart, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(uart, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(uart, ins8250_uart_device, cts_w)) -MACHINE_CONFIG_END + rs232_port_device &serport0(RS232_PORT(config, "serport0", isa_com, "terminal")); + serport0.rxd_handler().set(m_uart, FUNC(ins8250_uart_device::rx_w)); + serport0.dcd_handler().set(m_uart, FUNC(ins8250_uart_device::dcd_w)); + serport0.dsr_handler().set(m_uart, FUNC(ins8250_uart_device::dsr_w)); + serport0.ri_handler().set(m_uart, FUNC(ins8250_uart_device::ri_w)); + serport0.cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w)); +} //------------------------------------------------- // rom_region - device-specific ROM region diff --git a/src/devices/bus/nubus/quadralink.cpp b/src/devices/bus/nubus/quadralink.cpp index a2d138874e6..9ba40a99748 100644 --- a/src/devices/bus/nubus/quadralink.cpp +++ b/src/devices/bus/nubus/quadralink.cpp @@ -37,7 +37,8 @@ DEFINE_DEVICE_TYPE(NUBUS_QUADRALINK, nubus_quadralink_device, "nb_qdlink", "Appl // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(nubus_quadralink_device::device_add_mconfig) +void nubus_quadralink_device::device_add_mconfig(machine_config &config) +{ SCC8530N(config, m_scc1, 3.6864_MHz_XTAL); m_scc1->out_txda_callback().set("serport0", FUNC(rs232_port_device::write_txd)); m_scc1->out_txdb_callback().set("serport1", FUNC(rs232_port_device::write_txd)); @@ -46,26 +47,26 @@ MACHINE_CONFIG_START(nubus_quadralink_device::device_add_mconfig) m_scc2->out_txda_callback().set("serport2", FUNC(rs232_port_device::write_txd)); m_scc2->out_txdb_callback().set("serport3", FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD("serport0", RS232_PORT, isa_com, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc1, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc1, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc1, z80scc_device, ctsa_w)) + rs232_port_device &serport0(RS232_PORT(config, "serport0", isa_com, nullptr)); + serport0.rxd_handler().set(m_scc1, FUNC(z80scc_device::rxa_w)); + serport0.dcd_handler().set(m_scc1, FUNC(z80scc_device::dcda_w)); + serport0.cts_handler().set(m_scc1, FUNC(z80scc_device::ctsa_w)); - MCFG_DEVICE_ADD("serport1", RS232_PORT, isa_com, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc1, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc1, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc1, z80scc_device, ctsb_w)) + rs232_port_device &serport1(RS232_PORT(config, "serport1", isa_com, nullptr)); + serport1.rxd_handler().set(m_scc1, FUNC(z80scc_device::rxb_w)); + serport1.dcd_handler().set(m_scc1, FUNC(z80scc_device::dcdb_w)); + serport1.cts_handler().set(m_scc1, FUNC(z80scc_device::ctsb_w)); - MCFG_DEVICE_ADD("serport2", RS232_PORT, isa_com, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w)) + rs232_port_device &serport2(RS232_PORT(config, "serport2", isa_com, nullptr)); + serport2.rxd_handler().set(m_scc2, FUNC(z80scc_device::rxa_w)); + serport2.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcda_w)); + serport2.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsa_w)); - MCFG_DEVICE_ADD("serport3", RS232_PORT, isa_com, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w)) -MACHINE_CONFIG_END + rs232_port_device &serport3(RS232_PORT(config, "serport3", isa_com, nullptr)); + serport3.rxd_handler().set(m_scc2, FUNC(z80scc_device::rxb_w)); + serport3.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcdb_w)); + serport3.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsb_w)); +} //------------------------------------------------- // rom_region - device-specific ROM region diff --git a/src/devices/bus/pofo/hpc102.cpp b/src/devices/bus/pofo/hpc102.cpp index f473b0c7d78..298b36c7cbe 100644 --- a/src/devices/bus/pofo/hpc102.cpp +++ b/src/devices/bus/pofo/hpc102.cpp @@ -33,20 +33,21 @@ DEFINE_DEVICE_TYPE(POFO_HPC102, pofo_hpc102_device, "pofo_hpc102", "Atari Portfo // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(pofo_hpc102_device::device_add_mconfig) +void pofo_hpc102_device::device_add_mconfig(machine_config &config) +{ INS8250(config, m_uart, XTAL(1'843'200)); // should be INS8250A m_uart->out_tx_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd)); m_uart->out_dtr_callback().set(RS232_TAG, FUNC(rs232_port_device::write_dtr)); m_uart->out_rts_callback().set(RS232_TAG, FUNC(rs232_port_device::write_rts)); m_uart->out_int_callback().set(FUNC(device_portfolio_expansion_slot_interface::eint_w)); - MCFG_DEVICE_ADD(RS232_TAG, 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)) -MACHINE_CONFIG_END + rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); + rs232.rxd_handler().set(m_uart, FUNC(ins8250_uart_device::rx_w)); + rs232.dcd_handler().set(m_uart, FUNC(ins8250_uart_device::dcd_w)); + rs232.dsr_handler().set(m_uart, FUNC(ins8250_uart_device::dsr_w)); + rs232.ri_handler().set(m_uart, FUNC(ins8250_uart_device::ri_w)); + rs232.cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w)); +} //************************************************************************** diff --git a/src/devices/bus/rs232/rs232.h b/src/devices/bus/rs232/rs232.h index b58f876cb48..461101ee5bb 100644 --- a/src/devices/bus/rs232/rs232.h +++ b/src/devices/bus/rs232/rs232.h @@ -8,30 +8,6 @@ #include "diserial.h" -#define MCFG_RS232_RXD_HANDLER(_devcb) \ - downcast(*device).set_rxd_handler(DEVCB_##_devcb); - -#define MCFG_RS232_DCD_HANDLER(_devcb) \ - downcast(*device).set_dcd_handler(DEVCB_##_devcb); - -#define MCFG_RS232_DSR_HANDLER(_devcb) \ - downcast(*device).set_dsr_handler(DEVCB_##_devcb); - -#define MCFG_RS232_RI_HANDLER(_devcb) \ - downcast(*device).set_ri_handler(DEVCB_##_devcb); - -#define MCFG_RS232_SI_HANDLER(_devcb) \ - downcast(*device).set_si_handler(DEVCB_##_devcb); - -#define MCFG_RS232_CTS_HANDLER(_devcb) \ - downcast(*device).set_cts_handler(DEVCB_##_devcb); - -#define MCFG_RS232_RXC_HANDLER(_devcb) \ - downcast(*device).set_rxc_handler(DEVCB_##_devcb); - -#define MCFG_RS232_TXC_HANDLER(_devcb) \ - downcast(*device).set_txc_handler(DEVCB_##_devcb); - #define RS232_BAUD_110 (0x00) #define RS232_BAUD_150 (0x01) #define RS232_BAUD_300 (0x02) @@ -135,14 +111,6 @@ public: virtual ~rs232_port_device(); // static configuration helpers - template devcb_base &set_rxd_handler(Object &&cb) { return m_rxd_handler.set_callback(std::forward(cb)); } - template devcb_base &set_dcd_handler(Object &&cb) { return m_dcd_handler.set_callback(std::forward(cb)); } - template devcb_base &set_dsr_handler(Object &&cb) { return m_dsr_handler.set_callback(std::forward(cb)); } - template devcb_base &set_ri_handler(Object &&cb) { return m_ri_handler.set_callback(std::forward(cb)); } - template devcb_base &set_si_handler(Object &&cb) { return m_si_handler.set_callback(std::forward(cb)); } - template devcb_base &set_cts_handler(Object &&cb) { return m_cts_handler.set_callback(std::forward(cb)); } - template devcb_base &set_rxc_handler(Object &&cb) { return m_rxc_handler.set_callback(std::forward(cb)); } - template devcb_base &set_txc_handler(Object &&cb) { return m_txc_handler.set_callback(std::forward(cb)); } auto rxd_handler() { return m_rxd_handler.bind(); } auto dcd_handler() { return m_dcd_handler.bind(); } auto dsr_handler() { return m_dsr_handler.bind(); } diff --git a/src/devices/bus/s100/wunderbus.cpp b/src/devices/bus/s100/wunderbus.cpp index cb483a7a381..7606ea447e5 100644 --- a/src/devices/bus/s100/wunderbus.cpp +++ b/src/devices/bus/s100/wunderbus.cpp @@ -110,27 +110,27 @@ MACHINE_CONFIG_START(s100_wunderbus_device::device_add_mconfig) m_ace3->out_rts_callback().set(RS232_C_TAG, FUNC(rs232_port_device::write_rts)); m_ace3->out_int_callback().set(I8259A_TAG, FUNC(pic8259_device::ir5_w)); - MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(m_ace1, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_ace1, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(m_ace1, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(m_ace1, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_ace1, ins8250_uart_device, cts_w)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, "terminal")); + rs232a.rxd_handler().set(m_ace1, FUNC(ins8250_uart_device::rx_w)); + rs232a.dcd_handler().set(m_ace1, FUNC(ins8250_uart_device::dcd_w)); + rs232a.dsr_handler().set(m_ace1, FUNC(ins8250_uart_device::dsr_w)); + rs232a.ri_handler().set(m_ace1, FUNC(ins8250_uart_device::ri_w)); + rs232a.cts_handler().set(m_ace1, FUNC(ins8250_uart_device::cts_w)); + rs232a.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); - MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_ace2, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_ace2, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(m_ace2, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(m_ace2, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_ace2, ins8250_uart_device, cts_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_ace2, FUNC(ins8250_uart_device::rx_w)); + rs232b.dcd_handler().set(m_ace2, FUNC(ins8250_uart_device::dcd_w)); + rs232b.dsr_handler().set(m_ace2, FUNC(ins8250_uart_device::dsr_w)); + rs232b.ri_handler().set(m_ace2, FUNC(ins8250_uart_device::ri_w)); + rs232b.cts_handler().set(m_ace2, FUNC(ins8250_uart_device::cts_w)); - MCFG_DEVICE_ADD(RS232_C_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_ace3, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_ace3, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(m_ace3, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(m_ace3, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_ace3, ins8250_uart_device, cts_w)) + rs232_port_device &rs232c(RS232_PORT(config, RS232_C_TAG, default_rs232_devices, nullptr)); + rs232c.rxd_handler().set(m_ace3, FUNC(ins8250_uart_device::rx_w)); + rs232c.dcd_handler().set(m_ace3, FUNC(ins8250_uart_device::dcd_w)); + rs232c.dsr_handler().set(m_ace3, FUNC(ins8250_uart_device::dsr_w)); + rs232c.ri_handler().set(m_ace3, FUNC(ins8250_uart_device::ri_w)); + rs232c.cts_handler().set(m_ace3, FUNC(ins8250_uart_device::cts_w)); UPD1990A(config, m_rtc); m_rtc->tp_callback().set(FUNC(s100_wunderbus_device::rtc_tp_w)); diff --git a/src/devices/bus/ss50/mpc.cpp b/src/devices/bus/ss50/mpc.cpp index ff606f5e087..eeff1928e92 100644 --- a/src/devices/bus/ss50/mpc.cpp +++ b/src/devices/bus/ss50/mpc.cpp @@ -111,9 +111,9 @@ MACHINE_CONFIG_START(ss50_mpc_device::device_add_mconfig) //m_pia->irqa_handler().set(FUNC(ss50_mpc_device::pia_irq_w)); //m_pia->irqb_handler().set(FUNC(ss50_mpc_device::pia_irq_w)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(*this, ss50_mpc_device, serial_input_w)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(FUNC(ss50_mpc_device::serial_input_w)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); MCFG_INPUT_MERGER_ALL_HIGH("outgate") MCFG_INPUT_MERGER_OUTPUT_HANDLER(WRITELINE("rs232", rs232_port_device, write_txd)) diff --git a/src/devices/bus/ss50/mps.cpp b/src/devices/bus/ss50/mps.cpp index a638a0c80ff..dab93db2cd3 100644 --- a/src/devices/bus/ss50/mps.cpp +++ b/src/devices/bus/ss50/mps.cpp @@ -96,16 +96,17 @@ DEVICE_INPUT_DEFAULTS_END // machine configuration //------------------------------------------------- -MACHINE_CONFIG_START(ss50_mps_device::device_add_mconfig) +void ss50_mps_device::device_add_mconfig(machine_config &config) +{ ACIA6850(config, m_acia, 0); m_acia->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); //m_acia->rts_handler().set(FUNC(ss50_mps_device::reader_control_w)); m_acia->irq_handler().set(FUNC(ss50_mps_device::acia_irq_w)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("acia", acia6850_device, write_rxd)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) -MACHINE_CONFIG_END + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(m_acia, FUNC(acia6850_device::write_rxd)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); +} //------------------------------------------------- diff --git a/src/devices/bus/svi3x8/slot/sv805.cpp b/src/devices/bus/svi3x8/slot/sv805.cpp index 8ef0db95127..bc4dc77c19f 100644 --- a/src/devices/bus/svi3x8/slot/sv805.cpp +++ b/src/devices/bus/svi3x8/slot/sv805.cpp @@ -20,19 +20,20 @@ DEFINE_DEVICE_TYPE(SV805, sv805_device, "sv805", "SV-805 RS-232 Interface") // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(sv805_device::device_add_mconfig) +void sv805_device::device_add_mconfig(machine_config &config) +{ INS8250(config, m_uart, XTAL(3'072'000)); m_uart->out_int_callback().set(FUNC(sv805_device::uart_intr_w)); - m_uart->out_tx_callback().set("rs232", FUNC(rs232_port_device::write_txd)); - m_uart->out_dtr_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); - m_uart->out_rts_callback().set("rs232", FUNC(rs232_port_device::write_rts)); + m_uart->out_tx_callback().set(m_rs232, FUNC(rs232_port_device::write_txd)); + m_uart->out_dtr_callback().set(m_rs232, FUNC(rs232_port_device::write_dtr)); + m_uart->out_rts_callback().set(m_rs232, FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", 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_CTS_HANDLER(WRITELINE(m_uart, ins8250_uart_device, cts_w)) -MACHINE_CONFIG_END + RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); + m_rs232->rxd_handler().set(m_uart, FUNC(ins8250_uart_device::rx_w)); + m_rs232->dcd_handler().set(m_uart, FUNC(ins8250_uart_device::dcd_w)); + m_rs232->dsr_handler().set(m_uart, FUNC(ins8250_uart_device::dsr_w)); + m_rs232->cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w)); +} //************************************************************************** diff --git a/src/devices/bus/ti8x/graphlinkhle.cpp b/src/devices/bus/ti8x/graphlinkhle.cpp index 1b2cc9c2465..ecdec035b06 100644 --- a/src/devices/bus/ti8x/graphlinkhle.cpp +++ b/src/devices/bus/ti8x/graphlinkhle.cpp @@ -49,10 +49,11 @@ void graph_link_hle_device::device_reset() } -MACHINE_CONFIG_START(graph_link_hle_device::device_add_mconfig) - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(*this, graph_link_hle_device, rx_w)) -MACHINE_CONFIG_END +void graph_link_hle_device::device_add_mconfig(machine_config &config) +{ + RS232_PORT(config, m_serial_port, default_rs232_devices, nullptr); + m_serial_port->rxd_handler().set(FUNC(graph_link_hle_device::rx_w)); +} void graph_link_hle_device::byte_collision() diff --git a/src/devices/bus/vme/vme_fccpu20.cpp b/src/devices/bus/vme/vme_fccpu20.cpp index 27ae34c6679..d6e6f075fe8 100644 --- a/src/devices/bus/vme/vme_fccpu20.cpp +++ b/src/devices/bus/vme/vme_fccpu20.cpp @@ -298,20 +298,20 @@ MACHINE_CONFIG_START(vme_fccpu20_device::device_add_mconfig) mpcc3.out_int_cb().set("bim", FUNC(bim68153_device::int3_w)); // MPCC - RS232 - MCFG_DEVICE_ADD(RS232P1_TAG, RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER (WRITELINE ("mpcc", mpcc68561_device, write_rx)) - MCFG_RS232_CTS_HANDLER (WRITELINE ("mpcc", mpcc68561_device, cts_w)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + rs232_port_device &rs232p1(RS232_PORT(config, RS232P1_TAG, default_rs232_devices, "terminal")); + rs232p1.rxd_handler().set(m_mpcc, FUNC(mpcc68561_device::write_rx)); + rs232p1.cts_handler().set(m_mpcc, FUNC(mpcc68561_device::cts_w)); + rs232p1.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); // MPCC2 - RS232 - MCFG_DEVICE_ADD(RS232P2_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER (WRITELINE ("mpcc2", mpcc68561_device, write_rx)) - MCFG_RS232_CTS_HANDLER (WRITELINE ("mpcc2", mpcc68561_device, cts_w)) + rs232_port_device &rs232p2(RS232_PORT(config, RS232P2_TAG, default_rs232_devices, nullptr)); + rs232p2.rxd_handler().set(m_mpcc2, FUNC(mpcc68561_device::write_rx)); + rs232p2.cts_handler().set(m_mpcc2, FUNC(mpcc68561_device::cts_w)); // MPCC3 - RS232 - MCFG_DEVICE_ADD(RS232P3_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER (WRITELINE ("mpcc3", mpcc68561_device, write_rx)) - MCFG_RS232_CTS_HANDLER (WRITELINE ("mpcc3", mpcc68561_device, cts_w)) + rs232_port_device &rs232p3(RS232_PORT(config, RS232P3_TAG, default_rs232_devices, nullptr)); + rs232p3.rxd_handler().set(m_mpcc3, FUNC(mpcc68561_device::write_rx)); + rs232p3.cts_handler().set(m_mpcc3, FUNC(mpcc68561_device::cts_w)); MACHINE_CONFIG_END MACHINE_CONFIG_START(vme_fccpu20_card_device::device_add_mconfig) diff --git a/src/devices/bus/vme/vme_fcisio.cpp b/src/devices/bus/vme/vme_fcisio.cpp index 1880e7bc9cf..c220f358ca8 100644 --- a/src/devices/bus/vme/vme_fcisio.cpp +++ b/src/devices/bus/vme/vme_fcisio.cpp @@ -300,13 +300,13 @@ MACHINE_CONFIG_START(vme_fcisio1_card_device::device_add_mconfig) MCFG_DUSCC_OUT_DTRB_CB(WRITELINE(RS232P2_TAG, rs232_port_device, write_dtr)) MCFG_DUSCC_OUT_RTSB_CB(WRITELINE(RS232P2_TAG, rs232_port_device, write_rts)) /* RS232 for DUSCC 0 */ - MCFG_DEVICE_ADD(RS232P1_TAG, RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER (WRITELINE ("duscc0", duscc68562_device, rxa_w)) - MCFG_RS232_CTS_HANDLER (WRITELINE ("duscc0", duscc68562_device, ctsa_w)) + rs232_port_device &rs232p1(RS232_PORT(config, RS232P1_TAG, default_rs232_devices, "terminal")); + rs232p1.rxd_handler().set(m_duscc0, FUNC(duscc68562_device::rxa_w)); + rs232p1.cts_handler().set(m_duscc0, FUNC(duscc68562_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232P2_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER (WRITELINE ("duscc0", duscc68562_device, rxb_w)) - MCFG_RS232_CTS_HANDLER (WRITELINE ("duscc0", duscc68562_device, ctsb_w)) + rs232_port_device &rs232p2(RS232_PORT(config, RS232P2_TAG, default_rs232_devices, nullptr)); + rs232p2.rxd_handler().set(m_duscc0, FUNC(duscc68562_device::rxb_w)); + rs232p2.cts_handler().set(m_duscc0, FUNC(duscc68562_device::ctsb_w)); MCFG_DUSCC68562_ADD("duscc1", DUSCC_CLOCK, 0, 0, 0, 0 ) /* Port 3 on DUSCC 1 Port A */ @@ -318,13 +318,13 @@ MACHINE_CONFIG_START(vme_fcisio1_card_device::device_add_mconfig) MCFG_DUSCC_OUT_DTRB_CB(WRITELINE(RS232P4_TAG, rs232_port_device, write_dtr)) MCFG_DUSCC_OUT_RTSB_CB(WRITELINE(RS232P4_TAG, rs232_port_device, write_rts)) /* RS232 for DUSCC 1 */ - MCFG_DEVICE_ADD(RS232P3_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER (WRITELINE ("duscc1", duscc68562_device, rxa_w)) - MCFG_RS232_CTS_HANDLER (WRITELINE ("duscc1", duscc68562_device, ctsa_w)) + rs232_port_device &rs232p3(RS232_PORT(config, RS232P3_TAG, default_rs232_devices, nullptr)); + rs232p3.rxd_handler().set(m_duscc1, FUNC(duscc68562_device::rxa_w)); + rs232p3.cts_handler().set(m_duscc1, FUNC(duscc68562_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232P4_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER (WRITELINE ("duscc1", duscc68562_device, rxb_w)) - MCFG_RS232_CTS_HANDLER (WRITELINE ("duscc1", duscc68562_device, ctsb_w)) + rs232_port_device &rs232p4(RS232_PORT(config, RS232P4_TAG, default_rs232_devices, nullptr)); + rs232p4.rxd_handler().set(m_duscc1, FUNC(duscc68562_device::rxb_w)); + rs232p4.cts_handler().set(m_duscc1, FUNC(duscc68562_device::ctsb_w)); MCFG_DUSCC68562_ADD("duscc2", DUSCC_CLOCK, 0, 0, 0, 0 ) /* Port 5 on DUSCC 2 Port A */ @@ -336,13 +336,13 @@ MACHINE_CONFIG_START(vme_fcisio1_card_device::device_add_mconfig) MCFG_DUSCC_OUT_DTRB_CB(WRITELINE(RS232P6_TAG, rs232_port_device, write_dtr)) MCFG_DUSCC_OUT_RTSB_CB(WRITELINE(RS232P6_TAG, rs232_port_device, write_rts)) /* RS232 for DUSCC 2 */ - MCFG_DEVICE_ADD(RS232P5_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 &rs232p5(RS232_PORT(config, RS232P5_TAG, default_rs232_devices, nullptr)); + rs232p5.rxd_handler().set(m_duscc2, FUNC(duscc68562_device::rxa_w)); + rs232p5.cts_handler().set(m_duscc2, FUNC(duscc68562_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232P6_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 &rs232p6(RS232_PORT(config, RS232P6_TAG, default_rs232_devices, nullptr)); + rs232p6.rxd_handler().set(m_duscc2, FUNC(duscc68562_device::rxb_w)); + rs232p6.cts_handler().set(m_duscc2, FUNC(duscc68562_device::ctsb_w)); MCFG_DUSCC68562_ADD("duscc3", DUSCC_CLOCK, 0, 0, 0, 0 ) /* Port 7 on DUSCC 3 Port A */ @@ -354,13 +354,13 @@ MACHINE_CONFIG_START(vme_fcisio1_card_device::device_add_mconfig) MCFG_DUSCC_OUT_DTRB_CB(WRITELINE(RS232P8_TAG, rs232_port_device, write_dtr)) MCFG_DUSCC_OUT_RTSB_CB(WRITELINE(RS232P8_TAG, rs232_port_device, write_rts)) /* RS232 for DUSCC 4 */ - MCFG_DEVICE_ADD(RS232P7_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE ("duscc3", duscc68562_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE ("duscc3", duscc68562_device, ctsa_w)) + rs232_port_device &rs232p7(RS232_PORT(config, RS232P7_TAG, default_rs232_devices, nullptr)); + rs232p7.rxd_handler().set(m_duscc3, FUNC(duscc68562_device::rxa_w)); + rs232p7.cts_handler().set(m_duscc3, FUNC(duscc68562_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232P8_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE ("duscc3", duscc68562_device, rxb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE ("duscc3", duscc68562_device, ctsb_w)) + rs232_port_device &rs232p8(RS232_PORT(config, RS232P8_TAG, default_rs232_devices, nullptr)); + rs232p8.rxd_handler().set(m_duscc3, FUNC(duscc68562_device::rxb_w)); + rs232p8.cts_handler().set(m_duscc3, FUNC(duscc68562_device::ctsb_w)); PIT68230(config, m_pit, XTAL(20'000'000) / 2); m_pit->pb_in_callback().set(FUNC(vme_fcisio1_card_device::config_rd)); diff --git a/src/devices/bus/vme/vme_hcpu30.cpp b/src/devices/bus/vme/vme_hcpu30.cpp index 830d5a05b68..8aa4afe371e 100644 --- a/src/devices/bus/vme/vme_hcpu30.cpp +++ b/src/devices/bus/vme/vme_hcpu30.cpp @@ -135,13 +135,13 @@ MACHINE_CONFIG_START(vme_hcpu30_card_device::device_add_mconfig) MCFG_DUSCC_OUT_RTSB_CB(WRITELINE(RS232P2_TAG, rs232_port_device, write_rts)) // MCFG_DUSCC_OUT_INT_CB(WRITELINE() - MCFG_DEVICE_ADD (RS232P1_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 &rs232p1(RS232_PORT(config, RS232P1_TAG, default_rs232_devices, "terminal")); + rs232p1.rxd_handler().set(m_dusccterm, FUNC(duscc68562_device::rxa_w)); + rs232p1.cts_handler().set(m_dusccterm, FUNC(duscc68562_device::ctsa_w)); - MCFG_DEVICE_ADD (RS232P2_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER (WRITELINE ("duscc", duscc68562_device, rxb_w)) - MCFG_RS232_CTS_HANDLER (WRITELINE ("duscc", duscc68562_device, ctsb_w)) + rs232_port_device &rs232p2(RS232_PORT(config, RS232P2_TAG, default_rs232_devices, nullptr)); + rs232p2.rxd_handler().set(m_dusccterm, FUNC(duscc68562_device::rxb_w)); + rs232p2.cts_handler().set(m_dusccterm, FUNC(duscc68562_device::ctsb_w)); MACHINE_CONFIG_END /* Boot vector handler, the PCB hardwires the first 8 bytes from 0xff800000 to 0x0 at reset */ diff --git a/src/devices/bus/vme/vme_mzr8300.cpp b/src/devices/bus/vme/vme_mzr8300.cpp index ab6f70857e3..ca00a00a674 100644 --- a/src/devices/bus/vme/vme_mzr8300.cpp +++ b/src/devices/bus/vme/vme_mzr8300.cpp @@ -124,7 +124,8 @@ DEFINE_DEVICE_TYPE(VME_MZR8300, vme_mzr8300_card_device, "mzr8300", "Mizar 8300 // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(vme_mzr8300_card_device::device_add_mconfig) +void vme_mzr8300_card_device::device_add_mconfig(machine_config &config) +{ upd7201_new_device& sio0(UPD7201_NEW(config, "sio0", XTAL(4'000'000))); sio0.out_txdb_callback().set("rs232p1", FUNC(rs232_port_device::write_txd)); sio0.out_dtrb_callback().set("rs232p1", FUNC(rs232_port_device::write_dtr)); @@ -132,9 +133,9 @@ MACHINE_CONFIG_START(vme_mzr8300_card_device::device_add_mconfig) UPD7201_NEW(config, "sio1", XTAL(4'000'000)); - MCFG_DEVICE_ADD("rs232p1", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("sio0", upd7201_new_device, rxb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("sio0", upd7201_new_device, ctsb_w)) + rs232_port_device &rs232p1(RS232_PORT(config, "rs232p1", default_rs232_devices, "terminal")); + rs232p1.rxd_handler().set("sio0", FUNC(upd7201_new_device::rxb_w)); + rs232p1.cts_handler().set("sio0", FUNC(upd7201_new_device::ctsb_w)); am9513_device &stc(AM9513(config, "stc", 4_MHz_XTAL)); stc.out1_cb().set("sio0", FUNC(upd7201_new_device::rxca_w)); @@ -145,7 +146,7 @@ MACHINE_CONFIG_START(vme_mzr8300_card_device::device_add_mconfig) stc.out3_cb().append("sio1", FUNC(upd7201_new_device::txca_w)); stc.out4_cb().set("sio1", FUNC(upd7201_new_device::rxcb_w)); stc.out4_cb().append("sio1", FUNC(upd7201_new_device::txcb_w)); -MACHINE_CONFIG_END +} //************************************************************************** diff --git a/src/devices/bus/vtech/memexp/rs232.cpp b/src/devices/bus/vtech/memexp/rs232.cpp index ad8504c5d0c..cf21b7ee006 100644 --- a/src/devices/bus/vtech/memexp/rs232.cpp +++ b/src/devices/bus/vtech/memexp/rs232.cpp @@ -34,10 +34,11 @@ const tiny_rom_entry *vtech_rs232_interface_device::device_rom_region() const // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(vtech_rs232_interface_device::device_add_mconfig) - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(*this, vtech_rs232_interface_device, rs232_rx_w)) -MACHINE_CONFIG_END +void vtech_rs232_interface_device::device_add_mconfig(machine_config &config) +{ + RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); + m_rs232->rxd_handler().set(FUNC(vtech_rs232_interface_device::rs232_rx_w)); +} //************************************************************************** diff --git a/src/devices/machine/ie15.cpp b/src/devices/machine/ie15.cpp index eed7555a657..9a9c38233b7 100644 --- a/src/devices/machine/ie15.cpp +++ b/src/devices/machine/ie15.cpp @@ -580,8 +580,8 @@ MACHINE_CONFIG_START(ie15_device::ie15core) IE15_KEYBOARD(config, m_keyboard, 0) .keyboard_cb().set(FUNC(ie15_device::kbd_put)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "null_modem") - MCFG_RS232_RXD_HANDLER(WRITELINE(*this, ie15_device, serial_rx_callback)) + RS232_PORT(config, m_rs232, default_rs232_devices, "null_modem"); + m_rs232->rxd_handler().set(FUNC(ie15_device::serial_rx_callback)); SPEAKER(config, "mono").front_center(); MCFG_DEVICE_ADD("beeper", BEEP, 2400) diff --git a/src/devices/machine/vrc5074.cpp b/src/devices/machine/vrc5074.cpp index bbd8aa14158..34305f9e096 100644 --- a/src/devices/machine/vrc5074.cpp +++ b/src/devices/machine/vrc5074.cpp @@ -143,18 +143,19 @@ void vrc5074_device::target1_map(address_map &map) map(0x00000000, 0xFFFFFFFF).rw(FUNC(vrc5074_device::target1_r), FUNC(vrc5074_device::target1_w)); } -MACHINE_CONFIG_START(vrc5074_device::device_add_mconfig) - ns16550_device &uart(NS16550(config, "uart", DERIVED_CLOCK(1, 12))); - uart.out_int_callback().set(FUNC(vrc5074_device::uart_irq_callback)); - uart.out_tx_callback().set("ttys00", FUNC(rs232_port_device::write_txd)); - uart.out_dtr_callback().set("ttys00", FUNC(rs232_port_device::write_dtr)); - uart.out_rts_callback().set("ttys00", FUNC(rs232_port_device::write_rts)); +void vrc5074_device::device_add_mconfig(machine_config &config) +{ + NS16550(config, m_uart, DERIVED_CLOCK(1, 12)); + m_uart->out_int_callback().set(FUNC(vrc5074_device::uart_irq_callback)); + m_uart->out_tx_callback().set("ttys00", FUNC(rs232_port_device::write_txd)); + m_uart->out_dtr_callback().set("ttys00", FUNC(rs232_port_device::write_dtr)); + m_uart->out_rts_callback().set("ttys00", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("ttys00", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(uart, ns16550_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(uart, ns16550_device, dcd_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(uart, ns16550_device, cts_w)) -MACHINE_CONFIG_END + rs232_port_device &ttys00(RS232_PORT(config, "ttys00", default_rs232_devices, nullptr)); + ttys00.rxd_handler().set(m_uart, FUNC(ns16550_device::rx_w)); + ttys00.dcd_handler().set(m_uart, FUNC(ns16550_device::dcd_w)); + ttys00.cts_handler().set(m_uart, FUNC(ns16550_device::cts_w)); +} vrc5074_device::vrc5074_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : pci_host_device(mconfig, VRC5074, tag, owner, clock), diff --git a/src/mame/drivers/avigo.cpp b/src/mame/drivers/avigo.cpp index 0a6c2f17481..97734c8cadc 100644 --- a/src/mame/drivers/avigo.cpp +++ b/src/mame/drivers/avigo.cpp @@ -757,17 +757,17 @@ MACHINE_CONFIG_START(avigo_state::avigo) MCFG_QUANTUM_TIME(attotime::from_hz(60)) NS16550(config, m_uart, XTAL(1'843'200)); - m_uart->out_tx_callback().set("serport", FUNC(rs232_port_device::write_txd)); - m_uart->out_dtr_callback().set("serport", FUNC(rs232_port_device::write_dtr)); - m_uart->out_rts_callback().set("serport", FUNC(rs232_port_device::write_rts)); + m_uart->out_tx_callback().set(m_serport, FUNC(rs232_port_device::write_txd)); + m_uart->out_dtr_callback().set(m_serport, FUNC(rs232_port_device::write_dtr)); + m_uart->out_rts_callback().set(m_serport, FUNC(rs232_port_device::write_rts)); m_uart->out_int_callback().set(FUNC(avigo_state::com_interrupt)); - MCFG_DEVICE_ADD( "serport", RS232_PORT, default_rs232_devices, nullptr ) - 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(config, m_serport, default_rs232_devices, nullptr); + m_serport->rxd_handler().set(m_uart, FUNC(ins8250_uart_device::rx_w)); + m_serport->dcd_handler().set(m_uart, FUNC(ins8250_uart_device::dcd_w)); + m_serport->dsr_handler().set(m_uart, FUNC(ins8250_uart_device::dsr_w)); + m_serport->ri_handler().set(m_uart, FUNC(ins8250_uart_device::ri_w)); + m_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/binbug.cpp b/src/mame/drivers/binbug.cpp index b0fe4b8efe8..5294579dc83 100644 --- a/src/mame/drivers/binbug.cpp +++ b/src/mame/drivers/binbug.cpp @@ -320,8 +320,7 @@ MACHINE_CONFIG_START(binbug_state::binbug) MCFG_PALETTE_ADD_MONOCHROME("palette") /* Keyboard */ - MCFG_DEVICE_ADD("keyboard", RS232_PORT, default_rs232_devices, "keyboard") - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("keyboard", keyboard) + RS232_PORT(config, m_rs232, default_rs232_devices, "keyboard").set_option_device_input_defaults("keyboard", DEVICE_INPUT_DEFAULTS_NAME(keyboard)); /* Cassette */ MCFG_CASSETTE_ADD( "cassette" ) diff --git a/src/mame/drivers/bitgraph.cpp b/src/mame/drivers/bitgraph.cpp index 81b5c99a942..7da4e8ffb34 100644 --- a/src/mame/drivers/bitgraph.cpp +++ b/src/mame/drivers/bitgraph.cpp @@ -505,33 +505,33 @@ MACHINE_CONFIG_START(bitgraph_state::bg_motherboard) ACIA6850(config, m_acia0, 0); m_acia0->txd_handler().set(RS232_H_TAG, FUNC(rs232_port_device::write_txd)); m_acia0->rts_handler().set(RS232_H_TAG, FUNC(rs232_port_device::write_rts)); - m_acia0->irq_handler().set_inputline(M68K_TAG, M68K_IRQ_1); + m_acia0->irq_handler().set_inputline(m_maincpu, M68K_IRQ_1); - MCFG_DEVICE_ADD(RS232_H_TAG, RS232_PORT, default_rs232_devices, "null_modem") - MCFG_RS232_RXD_HANDLER(WRITELINE(ACIA0_TAG, acia6850_device, write_rxd)) - MCFG_RS232_DCD_HANDLER(WRITELINE(ACIA0_TAG, acia6850_device, write_dcd)) - MCFG_RS232_CTS_HANDLER(WRITELINE(ACIA0_TAG, acia6850_device, write_cts)) + rs232_port_device &rs232h(RS232_PORT(config, RS232_H_TAG, default_rs232_devices, "null_modem")); + rs232h.rxd_handler().set(m_acia0, FUNC(acia6850_device::write_rxd)); + rs232h.dcd_handler().set(m_acia0, FUNC(acia6850_device::write_dcd)); + rs232h.cts_handler().set(m_acia0, FUNC(acia6850_device::write_cts)); ACIA6850(config, m_acia1, 0); m_acia1->txd_handler().set(RS232_K_TAG, FUNC(rs232_port_device::write_txd)); m_acia1->rts_handler().set(RS232_K_TAG, FUNC(rs232_port_device::write_rts)); - m_acia1->irq_handler().set_inputline(M68K_TAG, M68K_IRQ_1); + m_acia1->irq_handler().set_inputline(m_maincpu, M68K_IRQ_1); - MCFG_DEVICE_ADD(RS232_K_TAG, RS232_PORT, default_rs232_devices, "keyboard") - MCFG_RS232_RXD_HANDLER(WRITELINE(ACIA1_TAG, acia6850_device, write_rxd)) - MCFG_RS232_DCD_HANDLER(WRITELINE(ACIA1_TAG, acia6850_device, write_dcd)) - MCFG_RS232_CTS_HANDLER(WRITELINE(ACIA1_TAG, acia6850_device, write_cts)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("keyboard", kbd_rs232_defaults) + rs232_port_device &rs232k(RS232_PORT(config, RS232_K_TAG, default_rs232_devices, "keyboard")); + rs232k.rxd_handler().set(m_acia1, FUNC(acia6850_device::write_rxd)); + rs232k.dcd_handler().set(m_acia1, FUNC(acia6850_device::write_dcd)); + rs232k.cts_handler().set(m_acia1, FUNC(acia6850_device::write_cts)); + rs232k.set_option_device_input_defaults("keyboard", DEVICE_INPUT_DEFAULTS_NAME(kbd_rs232_defaults)); ACIA6850(config, m_acia2, 0); m_acia2->txd_handler().set(RS232_D_TAG, FUNC(rs232_port_device::write_txd)); m_acia2->rts_handler().set(RS232_D_TAG, FUNC(rs232_port_device::write_rts)); - m_acia2->irq_handler().set_inputline(M68K_TAG, M68K_IRQ_1); + m_acia2->irq_handler().set_inputline(m_maincpu, M68K_IRQ_1); - MCFG_DEVICE_ADD(RS232_D_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(ACIA2_TAG, acia6850_device, write_rxd)) - MCFG_RS232_DCD_HANDLER(WRITELINE(ACIA2_TAG, acia6850_device, write_dcd)) - MCFG_RS232_CTS_HANDLER(WRITELINE(ACIA2_TAG, acia6850_device, write_cts)) + rs232_port_device &rs232d(RS232_PORT(config, RS232_D_TAG, default_rs232_devices, nullptr)); + rs232d.rxd_handler().set(m_acia2, FUNC(acia6850_device::write_rxd)); + rs232d.dcd_handler().set(m_acia2, FUNC(acia6850_device::write_dcd)); + rs232d.cts_handler().set(m_acia2, FUNC(acia6850_device::write_cts)); // XXX actual part may be something else COM8116(config, m_dbrga, 5.0688_MHz_XTAL); @@ -581,40 +581,40 @@ MACHINE_CONFIG_START(bitgraph_state::bg_ppu) MACHINE_CONFIG_END #endif -MACHINE_CONFIG_START(bitgraph_state::bitgrpha) - MCFG_DEVICE_ADD(M68K_TAG, M68000, XTAL(6'900'000)) - MCFG_DEVICE_PROGRAM_MAP(bitgrapha_mem) +void bitgraph_state::bitgrpha(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(6'900'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &bitgraph_state::bitgrapha_mem); bg_motherboard(config); - MCFG_DEVICE_ADD("system_clock", CLOCK, 40) - MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, bitgraph_state, system_clock_write)) + CLOCK(config, "system_clock", 40).signal_handler().set(FUNC(bitgraph_state::system_clock_write)); ACIA6850(config, m_acia3, 0); m_acia3->txd_handler().set(RS232_M_TAG, FUNC(rs232_port_device::write_txd)); m_acia3->rts_handler().set(RS232_M_TAG, FUNC(rs232_port_device::write_rts)); m_acia3->irq_handler().set_inputline(M68K_TAG, M68K_IRQ_1); - MCFG_DEVICE_ADD(RS232_M_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(ACIA3_TAG, acia6850_device, write_rxd)) - MCFG_RS232_DCD_HANDLER(WRITELINE(ACIA3_TAG, acia6850_device, write_dcd)) - MCFG_RS232_CTS_HANDLER(WRITELINE(ACIA3_TAG, acia6850_device, write_cts)) + rs232_port_device &rs232m(RS232_PORT(config, RS232_M_TAG, default_rs232_devices, nullptr)); + rs232m.rxd_handler().set(m_acia3, FUNC(acia6850_device::write_rxd)); + rs232m.dcd_handler().set(m_acia3, FUNC(acia6850_device::write_dcd)); + rs232m.cts_handler().set(m_acia3, FUNC(acia6850_device::write_cts)); RAM(config, RAM_TAG).set_default_size("128K"); -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(bitgraph_state::bitgrphb) - MCFG_DEVICE_ADD(M68K_TAG, M68000, XTAL(6'900'000)) - MCFG_DEVICE_PROGRAM_MAP(bitgraphb_mem) +void bitgraph_state::bitgrphb(machine_config &config) +{ + M68000(config, m_maincpu, XTAL(6'900'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &bitgraph_state::bitgraphb_mem); bg_motherboard(config); // bg_ppu(config); - MCFG_DEVICE_ADD("system_clock", CLOCK, 1040) - MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, bitgraph_state, system_clock_write)) + CLOCK(config, "system_clock", 1040).signal_handler().set(FUNC(bitgraph_state::system_clock_write)); RAM(config, RAM_TAG).set_default_size("512K"); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( bitgrpha ) diff --git a/src/mame/drivers/bullet.cpp b/src/mame/drivers/bullet.cpp index ef29571bc24..9c487187e11 100644 --- a/src/mame/drivers/bullet.cpp +++ b/src/mame/drivers/bullet.cpp @@ -1166,12 +1166,12 @@ MACHINE_CONFIG_START(bullet_state::bullet) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) - MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart, z80dart_device, rxa_w)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, "terminal")); + rs232a.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w)); + rs232a.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); - MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart, z80dart_device, rxb_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_dart, FUNC(z80dart_device::rxb_w)); // software lists MCFG_SOFTWARE_LIST_ADD("flop_list", "wmbullet") @@ -1246,12 +1246,12 @@ MACHINE_CONFIG_START(bulletf_state::bulletf) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) - MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart, z80dart_device, rxa_w)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, "terminal")); + rs232a.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w)); + rs232a.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); - MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart, z80dart_device, rxb_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_dart, FUNC(z80dart_device::rxb_w)); MCFG_DEVICE_ADD(SCSIBUS_TAG, SCSI_PORT, 0) MCFG_SCSI_BSY_HANDLER(WRITELINE("scsi_ctrl_in", input_buffer_device, write_bit3)) diff --git a/src/mame/drivers/candela.cpp b/src/mame/drivers/candela.cpp index c7a159bdcfa..19ec8d3242c 100644 --- a/src/mame/drivers/candela.cpp +++ b/src/mame/drivers/candela.cpp @@ -669,9 +669,10 @@ DEVICE_INPUT_DEFAULTS_END #define CAN09T_BAUDGEN_CLOCK 1.8432_MHz_XTAL #define CAN09T_ACIA_CLOCK (CAN09T_BAUDGEN_CLOCK / 12) -MACHINE_CONFIG_START(can09t_state::can09t) - MCFG_DEVICE_ADD("maincpu", MC6809, 4.9152_MHz_XTAL) // IPL crystal - MCFG_DEVICE_PROGRAM_MAP(can09t_map) +void can09t_state::can09t(machine_config &config) +{ + MC6809(config, m_maincpu, 4.9152_MHz_XTAL); // IPL crystal + m_maincpu->set_addrmap(AS_PROGRAM, &can09t_state::can09t_map); /* --PIA inits----------------------- */ PIA6821(config, m_syspia, 0); // CPU board @@ -704,13 +705,12 @@ MACHINE_CONFIG_START(can09t_state::can09t) ACIA6850(config, m_acia, 0); m_acia->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); m_acia->rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("acia", acia6850_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("acia", acia6850_device, write_cts)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(m_acia, FUNC(acia6850_device::write_rxd)); + rs232.cts_handler().set(m_acia, FUNC(acia6850_device::write_cts)); - MCFG_DEVICE_ADD ("acia_clock", CLOCK, CAN09T_ACIA_CLOCK) - MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, can09t_state, write_acia_clock)) -MACHINE_CONFIG_END + CLOCK(config, "acia_clock", CAN09T_ACIA_CLOCK).signal_handler().set(FUNC(can09t_state::write_acia_clock)); +} #define CAN09_X1_CLOCK 22.1184_MHz_XTAL /* UKI 22118.40 Khz */ #define CAN09_CPU_CLOCK (CAN09_X1_CLOCK / 16) /* ~1.38MHz Divider needs to be check but is the most likelly */ diff --git a/src/mame/drivers/cdc721.cpp b/src/mame/drivers/cdc721.cpp index b570cbdd3b0..3b1557f78c2 100644 --- a/src/mame/drivers/cdc721.cpp +++ b/src/mame/drivers/cdc721.cpp @@ -355,12 +355,12 @@ MACHINE_CONFIG_START(cdc721_state::cdc721) comuart.out_dtr_callback().set("comm", FUNC(rs232_port_device::write_dtr)); comuart.out_rts_callback().set("comm", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("comm", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("comuart", ins8250_device, rx_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("comuart", ins8250_device, dsr_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("comuart", ins8250_device, dcd_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("comuart", ins8250_device, cts_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("comuart", ins8250_device, ri_w)) + rs232_port_device &comm(RS232_PORT(config, "comm", default_rs232_devices, nullptr)); + comm.rxd_handler().set("comuart", FUNC(ins8250_device::rx_w)); + comm.dsr_handler().set("comuart", FUNC(ins8250_device::dsr_w)); + comm.dcd_handler().set("comuart", FUNC(ins8250_device::dcd_w)); + comm.cts_handler().set("comuart", FUNC(ins8250_device::cts_w)); + comm.ri_handler().set("comuart", FUNC(ins8250_device::ri_w)); ins8250_device &kbduart(INS8250(config, "kbduart", 1.8432_MHz_XTAL)); kbduart.out_int_callback().set(FUNC(cdc721_state::int_w<5>)); @@ -375,12 +375,12 @@ MACHINE_CONFIG_START(cdc721_state::cdc721) pauart.out_dtr_callback().set("cha", FUNC(rs232_port_device::write_dtr)); pauart.out_rts_callback().set("cha", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("cha", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("pauart", ins8250_device, rx_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("pauart", ins8250_device, dsr_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("pauart", ins8250_device, dcd_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("pauart", ins8250_device, cts_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("pauart", ins8250_device, ri_w)) + rs232_port_device &cha(RS232_PORT(config, "cha", default_rs232_devices, nullptr)); + cha.rxd_handler().set("pauart", FUNC(ins8250_device::rx_w)); + cha.dsr_handler().set("pauart", FUNC(ins8250_device::dsr_w)); + cha.dcd_handler().set("pauart", FUNC(ins8250_device::dcd_w)); + cha.cts_handler().set("pauart", FUNC(ins8250_device::cts_w)); + cha.ri_handler().set("pauart", FUNC(ins8250_device::ri_w)); ins8250_device &pbuart(INS8250(config, "pbuart", 1.8432_MHz_XTAL)); pbuart.out_int_callback().set("int2", FUNC(input_merger_device::in_w<0>)); @@ -388,12 +388,12 @@ MACHINE_CONFIG_START(cdc721_state::cdc721) pbuart.out_dtr_callback().set("chb", FUNC(rs232_port_device::write_dtr)); pbuart.out_rts_callback().set("chb", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("chb", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("pbuart", ins8250_device, rx_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("pbuart", ins8250_device, dsr_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("pbuart", ins8250_device, dcd_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("pbuart", ins8250_device, cts_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("pbuart", ins8250_device, ri_w)) + rs232_port_device &chb(RS232_PORT(config, "chb", default_rs232_devices, nullptr)); + chb.rxd_handler().set("pbuart", FUNC(ins8250_device::rx_w)); + chb.dsr_handler().set("pbuart", FUNC(ins8250_device::dsr_w)); + chb.dcd_handler().set("pbuart", FUNC(ins8250_device::dcd_w)); + chb.cts_handler().set("pbuart", FUNC(ins8250_device::cts_w)); + chb.ri_handler().set("pbuart", FUNC(ins8250_device::ri_w)); MCFG_INPUT_MERGER_ANY_HIGH("int2") // 74S05 (open collector) MCFG_INPUT_MERGER_OUTPUT_HANDLER(WRITELINE(*this, cdc721_state, int_w<2>)) diff --git a/src/mame/drivers/cm1800.cpp b/src/mame/drivers/cm1800.cpp index 99066fa20aa..9307be3cd83 100644 --- a/src/mame/drivers/cm1800.cpp +++ b/src/mame/drivers/cm1800.cpp @@ -97,11 +97,12 @@ void cm1800_state::machine_reset() m_uart->write_cs(0); } -MACHINE_CONFIG_START(cm1800_state::cm1800) +void cm1800_state::cm1800(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8080, XTAL(2'000'000)) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) + I8080(config, m_maincpu, XTAL(2'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &cm1800_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &cm1800_state::io_map); /* video hardware */ AY51013(config, m_uart); // exact uart type is unknown @@ -111,8 +112,8 @@ MACHINE_CONFIG_START(cm1800_state::cm1800) m_uart->write_so_callback().set("rs232", FUNC(rs232_port_device::write_txd)); m_uart->set_auto_rdav(true); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") -MACHINE_CONFIG_END + RS232_PORT(config, "rs232", default_rs232_devices, "terminal"); +} /* ROM definition */ ROM_START( cm1800 ) diff --git a/src/mame/drivers/coco12.cpp b/src/mame/drivers/coco12.cpp index f727080da08..1a340cd1cc0 100644 --- a/src/mame/drivers/coco12.cpp +++ b/src/mame/drivers/coco12.cpp @@ -467,9 +467,9 @@ MACHINE_CONFIG_START(coco12_state::coco) MCFG_CASSETTE_FORMATS(coco_cassette_formats) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED) - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, "printer") - MCFG_RS232_DCD_HANDLER(WRITELINE(PIA1_TAG, pia6821_device, ca1_w)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("printer", printer) + rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, "printer")); + rs232.dcd_handler().set(PIA1_TAG, FUNC(pia6821_device::ca1_w)); + rs232.set_option_device_input_defaults("printer", DEVICE_INPUT_DEFAULTS_NAME(printer)); cococart_slot_device &cartslot(COCOCART_SLOT(config, CARTRIDGE_TAG, DERIVED_CLOCK(1, 1), coco_cart, "pak")); cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded diff --git a/src/mame/drivers/coco3.cpp b/src/mame/drivers/coco3.cpp index 1f76dd9be0f..1cdfd8759b8 100644 --- a/src/mame/drivers/coco3.cpp +++ b/src/mame/drivers/coco3.cpp @@ -277,9 +277,9 @@ MACHINE_CONFIG_START(coco3_state::coco3) MCFG_CASSETTE_FORMATS(coco_cassette_formats) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_PLAY | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED) - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, "printer") - MCFG_RS232_DCD_HANDLER(WRITELINE(PIA1_TAG, pia6821_device, ca1_w)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("printer", printer) + rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, "printer")); + rs232.dcd_handler().set(PIA1_TAG, FUNC(pia6821_device::ca1_w)); + rs232.set_option_device_input_defaults("printer", DEVICE_INPUT_DEFAULTS_NAME(printer)); cococart_slot_device &cartslot(COCOCART_SLOT(config, CARTRIDGE_TAG, DERIVED_CLOCK(1, 1), coco_cart, "fdcv11")); cartslot.cart_callback().set([this] (int state) { cart_w(state != 0); }); // lambda because name is overloaded diff --git a/src/mame/drivers/codata.cpp b/src/mame/drivers/codata.cpp index c98605ee3ee..b4b1d915ff1 100644 --- a/src/mame/drivers/codata.cpp +++ b/src/mame/drivers/codata.cpp @@ -62,10 +62,11 @@ void codata_state::machine_reset() m_maincpu->reset(); } -MACHINE_CONFIG_START(codata_state::codata) +void codata_state::codata(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",M68000, XTAL(16'000'000) / 2) - MCFG_DEVICE_PROGRAM_MAP(mem_map) + M68000(config, m_maincpu, XTAL(16'000'000) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &codata_state::mem_map); upd7201_new_device& uart(UPD7201_NEW(config, "uart", 16_MHz_XTAL / 4)); uart.out_txda_callback().set("rs423a", FUNC(rs232_port_device::write_txd)); @@ -83,14 +84,14 @@ MACHINE_CONFIG_START(codata_state::codata) timer.out5_cb().set("uart", FUNC(upd7201_new_device::rxcb_w)); timer.out5_cb().append("uart", FUNC(upd7201_new_device::txcb_w)); - MCFG_DEVICE_ADD("rs423a", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("uart", upd7201_new_device, rxa_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart", upd7201_new_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart", upd7201_new_device, ctsa_w)) + rs232_port_device &rs423a(RS232_PORT(config, "rs423a", default_rs232_devices, "terminal")); + rs423a.rxd_handler().set("uart", FUNC(upd7201_new_device::rxa_w)); + rs423a.dsr_handler().set("uart", FUNC(upd7201_new_device::dcda_w)); + rs423a.cts_handler().set("uart", FUNC(upd7201_new_device::ctsa_w)); - MCFG_DEVICE_ADD("rs423b", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("uart", upd7201_new_device, rxb_w)) -MACHINE_CONFIG_END + rs232_port_device &rs423b(RS232_PORT(config, "rs423b", default_rs232_devices, nullptr)); + rs423b.rxd_handler().set("uart", FUNC(upd7201_new_device::rxb_w)); +} /* ROM definition */ ROM_START( codata ) diff --git a/src/mame/drivers/compis.cpp b/src/mame/drivers/compis.cpp index a7ad6f25013..ce6b4accee4 100644 --- a/src/mame/drivers/compis.cpp +++ b/src/mame/drivers/compis.cpp @@ -791,15 +791,15 @@ MACHINE_CONFIG_START(compis_state::compis) MCFG_TIMER_DRIVER_ADD_PERIODIC("tape", compis_state, tape_tick, attotime::from_hz(44100)) - MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_mpsc, z80dart_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_mpsc, z80dart_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_mpsc, z80dart_device, ctsa_w)) + rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_mpsc, FUNC(z80dart_device::rxa_w)); + rs232a.dcd_handler().set(m_mpsc, FUNC(z80dart_device::dcda_w)); + rs232a.cts_handler().set(m_mpsc, FUNC(z80dart_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_mpsc, z80dart_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_mpsc, z80dart_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_mpsc, z80dart_device, ctsb_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_mpsc, FUNC(z80dart_device::rxb_w)); + rs232b.dcd_handler().set(m_mpsc, FUNC(z80dart_device::dcdb_w)); + rs232b.cts_handler().set(m_mpsc, FUNC(z80dart_device::ctsb_w)); MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, compis_state, write_centronics_busy)) diff --git a/src/mame/drivers/didact.cpp b/src/mame/drivers/didact.cpp index a7115cd01f4..5e2651d8be7 100644 --- a/src/mame/drivers/didact.cpp +++ b/src/mame/drivers/didact.cpp @@ -612,7 +612,7 @@ MACHINE_CONFIG_START(md6802_state::md6802) MCFG_TIMER_DRIVER_ADD_PERIODIC("artwork_timer", md6802_state, scan_artwork, attotime::from_hz(10)) - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) + RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); MACHINE_CONFIG_END MACHINE_CONFIG_START(mp68a_state::mp68a) diff --git a/src/mame/drivers/digel804.cpp b/src/mame/drivers/digel804.cpp index 09dcf177c17..0301faaf4cb 100644 --- a/src/mame/drivers/digel804.cpp +++ b/src/mame/drivers/digel804.cpp @@ -74,8 +74,8 @@ public: driver_device(mconfig, type, tag), m_ram(*this, RAM_TAG), m_maincpu(*this, "maincpu"), - m_speaker(*this, "speaker"), m_acia(*this, "acia"), + m_speaker(*this, "speaker"), m_vfd(*this, "vfd"), m_kb(*this, "74c923"), m_rambank(*this, "bankedram"), @@ -119,11 +119,11 @@ protected: void z80_io_1_4(address_map &map); required_device m_ram; + required_device m_maincpu; + required_device m_acia; private: - required_device m_maincpu; required_device m_speaker; - required_device m_acia; required_device m_vfd; required_device m_kb; required_memory_bank m_rambank; @@ -633,7 +633,7 @@ WRITE_LINE_MEMBER( ep804_state::ep804_acia_irq_w ) MACHINE_CONFIG_START(digel804_state::digel804) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 3.6864_MHz_XTAL/2) /* Z80A, X1(aka E0 on schematics): 3.6864Mhz */ + MCFG_DEVICE_ADD(m_maincpu, Z80, 3.6864_MHz_XTAL/2) /* Z80A, X1(aka E0 on schematics): 3.6864Mhz */ MCFG_DEVICE_PROGRAM_MAP(z80_mem_804_1_4) MCFG_DEVICE_IO_MAP(z80_io_1_4) MCFG_QUANTUM_TIME(attotime::from_hz(60)) @@ -651,19 +651,19 @@ MACHINE_CONFIG_START(digel804_state::digel804) MCFG_MM74C922_X4_CALLBACK(IOPORT("LINE3")) /* acia */ - mos6551_device &acia(MOS6551(config, "acia", 0)); - acia.set_xtal(3.6864_MHz_XTAL/2); - acia.irq_handler().set(FUNC(digel804_state::acia_irq_w)); - acia.txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); - acia.rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); - acia.dtr_handler().set("rs232", FUNC(rs232_port_device::write_dtr)); + MOS6551(config, m_acia, 0); + m_acia->set_xtal(3.6864_MHz_XTAL/2); + m_acia->irq_handler().set(FUNC(digel804_state::acia_irq_w)); + m_acia->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); + 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, "null_modem") - MCFG_RS232_RXD_HANDLER(WRITELINE("acia", mos6551_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("acia", mos6551_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE("acia", mos6551_device, write_cts)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("null_modem", digel804_rs232_defaults) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", digel804_rs232_defaults) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "null_modem")); + rs232.rxd_handler().set(m_acia, FUNC(mos6551_device::write_rxd)); + rs232.dsr_handler().set(m_acia, FUNC(mos6551_device::write_dsr)); + rs232.cts_handler().set(m_acia, FUNC(mos6551_device::write_cts)); + rs232.set_option_device_input_defaults("null_modem", DEVICE_INPUT_DEFAULTS_NAME(digel804_rs232_defaults)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(digel804_rs232_defaults)); RAM(config, m_ram).set_default_size("256K").set_extra_options("32K,64K,128K"); @@ -673,18 +673,19 @@ MACHINE_CONFIG_START(digel804_state::digel804) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MACHINE_CONFIG_END -MACHINE_CONFIG_START(ep804_state::ep804) +void ep804_state::ep804(machine_config &config) +{ digel804(config); /* basic machine hardware */ - MCFG_DEVICE_MODIFY("maincpu") /* Z80, X1(aka E0 on schematics): 3.6864Mhz */ - MCFG_DEVICE_PROGRAM_MAP(z80_mem_804_1_2) - MCFG_DEVICE_IO_MAP(z80_io_1_2) + /* Z80, X1(aka E0 on schematics): 3.6864Mhz */ + m_maincpu->set_addrmap(AS_PROGRAM, &ep804_state::z80_mem_804_1_2); + m_maincpu->set_addrmap(AS_IO, &ep804_state::z80_io_1_2); - subdevice("acia")->irq_handler().set(FUNC(ep804_state::ep804_acia_irq_w)); + m_acia->irq_handler().set(FUNC(ep804_state::ep804_acia_irq_w)); m_ram->set_default_size("32K").set_extra_options("64K"); -MACHINE_CONFIG_END +} diff --git a/src/mame/drivers/dmax8000.cpp b/src/mame/drivers/dmax8000.cpp index b798edda7a5..8ff18e22820 100644 --- a/src/mame/drivers/dmax8000.cpp +++ b/src/mame/drivers/dmax8000.cpp @@ -177,11 +177,11 @@ MACHINE_CONFIG_START(dmax8000_state::dmax8000) dart1.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); dart1.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("dart1", z80dart_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("dart1", z80dart_device, dcda_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("dart1", z80dart_device, ria_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("dart1", z80dart_device, ctsa_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set("dart1", FUNC(z80dart_device::rxa_w)); + rs232.dcd_handler().set("dart1", FUNC(z80dart_device::dcda_w)); + rs232.ri_handler().set("dart1", FUNC(z80dart_device::ria_w)); + rs232.cts_handler().set("dart1", FUNC(z80dart_device::ctsa_w)); Z80DART(config, "dart2", 4'000'000); // RS232 ports diff --git a/src/mame/drivers/dsb46.cpp b/src/mame/drivers/dsb46.cpp index cc19c141f1b..07713c93836 100644 --- a/src/mame/drivers/dsb46.cpp +++ b/src/mame/drivers/dsb46.cpp @@ -49,9 +49,11 @@ public: void init_dsb46(); +protected: + virtual void machine_reset() override; + private: DECLARE_WRITE8_MEMBER(port1a_w); - DECLARE_MACHINE_RESET(dsb46); void dsb46_io(address_map &map); void dsb46_mem(address_map &map); required_device m_maincpu; @@ -88,7 +90,7 @@ void dsb46_state::init_dsb46() membank("write")->configure_entry(0, &RAM[0x00000]); } -MACHINE_RESET_MEMBER( dsb46_state,dsb46 ) +void dsb46_state::machine_reset() { membank("read")->set_entry(0); membank("write")->set_entry(0); @@ -108,15 +110,14 @@ static const z80_daisy_config daisy_chain[] = }; -MACHINE_CONFIG_START(dsb46_state::dsb46) +void dsb46_state::dsb46(machine_config &config) +{ // basic machine hardware Z80(config, m_maincpu, XTAL(24'000'000) / 6); m_maincpu->set_addrmap(AS_PROGRAM, &dsb46_state::dsb46_mem); m_maincpu->set_addrmap(AS_IO, &dsb46_state::dsb46_io); m_maincpu->set_daisy_config(daisy_chain); - MCFG_MACHINE_RESET_OVERRIDE(dsb46_state, dsb46) - /* video hardware */ clock_device &ctc_clock(CLOCK(config, "ctc_clock", 1.8432_MHz_XTAL)); ctc_clock.signal_handler().set("ctc1", FUNC(z80ctc_device::trg0)); @@ -129,9 +130,9 @@ MACHINE_CONFIG_START(dsb46_state::dsb46) sio.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); sio.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("sio", z80sio_device, ctsa_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set("sio", FUNC(z80sio_device::rxa_w)); + rs232.cts_handler().set("sio", FUNC(z80sio_device::ctsa_w)); z80ctc_device &ctc1(Z80CTC(config, "ctc1", 24_MHz_XTAL / 6)); ctc1.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); @@ -139,7 +140,7 @@ MACHINE_CONFIG_START(dsb46_state::dsb46) ctc1.zc_callback<0>().append("sio", FUNC(z80sio_device::txca_w)); ctc1.zc_callback<2>().set("sio", FUNC(z80sio_device::rxcb_w)); ctc1.zc_callback<2>().append("sio", FUNC(z80sio_device::txcb_w)); -MACHINE_CONFIG_END +} ROM_START( dsb46 ) ROM_REGION( 0x10800, "maincpu", 0 ) diff --git a/src/mame/drivers/e100.cpp b/src/mame/drivers/e100.cpp index e228345f121..bc954eaa86f 100644 --- a/src/mame/drivers/e100.cpp +++ b/src/mame/drivers/e100.cpp @@ -575,7 +575,7 @@ MACHINE_CONFIG_START(e100_state::e100) m_pia2->irqa_handler().set_inputline("maincpu", M6800_IRQ_LINE); /* Serial port support */ - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) + RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); /* Cassette support - E100 uses 300 baud Kansas City Standard with 1200/2400 Hz modulation */ /* NOTE on usage: mame e100 -window -cass -ui_active diff --git a/src/mame/drivers/einstein.cpp b/src/mame/drivers/einstein.cpp index a284efde7fc..b5b06e263b2 100644 --- a/src/mame/drivers/einstein.cpp +++ b/src/mame/drivers/einstein.cpp @@ -652,10 +652,10 @@ MACHINE_CONFIG_START(einstein_state::einstein) ic_i060.dtr_handler().set("rs232", FUNC(rs232_port_device::write_dtr)); // rs232 port - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(IC_I060, i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE(IC_I060, i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE(IC_I060, i8251_device, write_cts)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); + rs232.rxd_handler().set(IC_I060, FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set(IC_I060, FUNC(i8251_device::write_dsr)); + rs232.cts_handler().set(IC_I060, FUNC(i8251_device::write_cts)); // floppy WD1770(config, m_fdc, XTAL_X002); diff --git a/src/mame/drivers/et3400.cpp b/src/mame/drivers/et3400.cpp index a6daa5d1114..eb86741f3fc 100644 --- a/src/mame/drivers/et3400.cpp +++ b/src/mame/drivers/et3400.cpp @@ -234,8 +234,7 @@ MACHINE_CONFIG_START(et3400_state::et3400) m_pia->readpa_handler().set(FUNC(et3400_state::pia_ar)); m_pia->readpb_handler().set(FUNC(et3400_state::pia_br)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + RS232_PORT(config, m_rs232, default_rs232_devices, "terminal").set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); for (std::size_t i = 0; i < 6; i++) LS259(config, m_displatch[i]); diff --git a/src/mame/drivers/eurocom2.cpp b/src/mame/drivers/eurocom2.cpp index 3c8faedabc8..eb6086d8f33 100644 --- a/src/mame/drivers/eurocom2.cpp +++ b/src/mame/drivers/eurocom2.cpp @@ -468,9 +468,9 @@ MACHINE_CONFIG_START(eurocom2_state::eurocom2) ACIA6850(config, m_acia, 0); m_acia->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); m_acia->rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("acia", acia6850_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("acia", acia6850_device, write_cts)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); + rs232.rxd_handler().set(m_acia, FUNC(acia6850_device::write_rxd)); + rs232.cts_handler().set(m_acia, FUNC(acia6850_device::write_cts)); FD1793(config, m_fdc, 2_MHz_XTAL / 2); // m_fdc->intrq_wr_callback().set_inputline(m_maincpu, M6809_IRQ_LINE); diff --git a/src/mame/drivers/exp85.cpp b/src/mame/drivers/exp85.cpp index f83b43f7306..6e88f5e0e50 100644 --- a/src/mame/drivers/exp85.cpp +++ b/src/mame/drivers/exp85.cpp @@ -203,8 +203,7 @@ MACHINE_CONFIG_START(exp85_state::exp85) MCFG_CASSETTE_ADD("cassette") MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED) - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + RS232_PORT(config, "rs232", default_rs232_devices, "terminal").set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); /* internal ram */ RAM(config, RAM_TAG).set_default_size("256").set_extra_options("4K"); diff --git a/src/mame/drivers/ft68m.cpp b/src/mame/drivers/ft68m.cpp index 5de78e3389b..3997b708ba9 100644 --- a/src/mame/drivers/ft68m.cpp +++ b/src/mame/drivers/ft68m.cpp @@ -83,11 +83,11 @@ void ft68m_state::machine_reset() m_maincpu->reset(); } -MACHINE_CONFIG_START(ft68m_state::ft68m) - +void ft68m_state::ft68m(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, XTAL(19'660'800) / 2) - MCFG_DEVICE_PROGRAM_MAP(mem_map) + M68000(config, m_maincpu, XTAL(19'660'800) / 2); + m_maincpu->set_addrmap(AS_PROGRAM, &ft68m_state::mem_map); upd7201_new_device& mpsc(UPD7201_NEW(config, "mpsc", 0)); mpsc.out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd)); @@ -104,14 +104,14 @@ MACHINE_CONFIG_START(ft68m_state::ft68m) stc.out5_cb().set("mpsc", FUNC(upd7201_new_device::rxcb_w)); stc.out5_cb().append("mpsc", FUNC(upd7201_new_device::txcb_w)); - MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, "terminal") - 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 &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, "terminal")); + rs232a.rxd_handler().set("mpsc", FUNC(upd7201_new_device::rxa_w)); + rs232a.dsr_handler().set("mpsc", FUNC(upd7201_new_device::dcda_w)); + rs232a.cts_handler().set("mpsc", FUNC(upd7201_new_device::ctsa_w)); - MCFG_DEVICE_ADD("rs232b", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("mpsc", upd7201_new_device, rxb_w)) -MACHINE_CONFIG_END + rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, nullptr)); + rs232b.rxd_handler().set("mpsc", FUNC(upd7201_new_device::rxb_w)); +} /* ROM definition */ ROM_START( ft68m ) diff --git a/src/mame/drivers/gimix.cpp b/src/mame/drivers/gimix.cpp index de9b3238d3a..d67c164b3fd 100644 --- a/src/mame/drivers/gimix.cpp +++ b/src/mame/drivers/gimix.cpp @@ -527,21 +527,21 @@ MACHINE_CONFIG_START(gimix_state::gimix) m_acia4->txd_handler().set("serial4", FUNC(rs232_port_device::write_txd)); m_acia4->rts_handler().set("serial4", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("serial1",RS232_PORT, default_rs232_devices,nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("acia1",acia6850_device,write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("acia1",acia6850_device,write_cts)) + rs232_port_device &serial1(RS232_PORT(config, "serial1", default_rs232_devices, nullptr)); + serial1.rxd_handler().set(m_acia1, FUNC(acia6850_device::write_rxd)); + serial1.cts_handler().set(m_acia1, FUNC(acia6850_device::write_cts)); - MCFG_DEVICE_ADD("serial2",RS232_PORT, default_rs232_devices,"terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("acia2",acia6850_device,write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("acia2",acia6850_device,write_cts)) + rs232_port_device &serial2(RS232_PORT(config, "serial2", default_rs232_devices, "terminal")); + serial2.rxd_handler().set(m_acia2, FUNC(acia6850_device::write_rxd)); + serial2.cts_handler().set(m_acia2, FUNC(acia6850_device::write_cts)); - MCFG_DEVICE_ADD("serial3",RS232_PORT, default_rs232_devices,nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("acia3",acia6850_device,write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("acia3",acia6850_device,write_cts)) + rs232_port_device &serial3(RS232_PORT(config, "serial3", default_rs232_devices, nullptr)); + serial3.rxd_handler().set(m_acia3, FUNC(acia6850_device::write_rxd)); + serial3.cts_handler().set(m_acia3, FUNC(acia6850_device::write_cts)); - MCFG_DEVICE_ADD("serial4",RS232_PORT, default_rs232_devices,nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("acia4",acia6850_device,write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("acia4",acia6850_device,write_cts)) + rs232_port_device &serial4(RS232_PORT(config, "serial4", default_rs232_devices, nullptr)); + serial4.rxd_handler().set(m_acia4, FUNC(acia6850_device::write_rxd)); + serial4.cts_handler().set(m_acia4, FUNC(acia6850_device::write_cts)); clock_device &acia_clock(CLOCK(config, "acia_clock", 153600)); acia_clock.signal_handler().set(m_acia1, FUNC(acia6850_device::write_txc)); diff --git a/src/mame/drivers/hp2640.cpp b/src/mame/drivers/hp2640.cpp index 7bdae4af2ac..de334235867 100644 --- a/src/mame/drivers/hp2640.cpp +++ b/src/mame/drivers/hp2640.cpp @@ -987,11 +987,11 @@ MACHINE_CONFIG_START(hp2645_state::hp2645) config.set_default_layout(layout_hp2640); // RS232 - MCFG_DEVICE_ADD("rs232" , RS232_PORT, default_rs232_devices , nullptr) + RS232_PORT(config, m_rs232, default_rs232_devices , nullptr); // UART (TR1602B) AY51013(config, m_uart); - m_uart->read_si_callback().set("rs232", FUNC(rs232_port_device::rxd_r)); + m_uart->read_si_callback().set(m_rs232, FUNC(rs232_port_device::rxd_r)); m_uart->write_so_callback().set(FUNC(hp2645_state::async_txd_w)); m_uart->write_dav_callback().set(FUNC(hp2645_state::async_dav_w)); m_uart->set_auto_rdav(true); diff --git a/src/mame/drivers/ht68k.cpp b/src/mame/drivers/ht68k.cpp index 95d7de41428..654fc908e50 100644 --- a/src/mame/drivers/ht68k.cpp +++ b/src/mame/drivers/ht68k.cpp @@ -142,8 +142,8 @@ MACHINE_CONFIG_START(ht68k_state::ht68k) MCFG_MC68681_B_TX_CALLBACK(WRITELINE(*this, ht68k_state, duart_txb)) MCFG_MC68681_OUTPORT_CALLBACK(WRITE8(*this, ht68k_state, duart_output)) - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("duart68681", mc68681_device, rx_a_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(m_duart, FUNC(mc68681_device::rx_a_w)); WD1770(config, m_fdc, 8_MHz_XTAL); diff --git a/src/mame/drivers/hunter2.cpp b/src/mame/drivers/hunter2.cpp index bd185d1ff87..192b51a0344 100644 --- a/src/mame/drivers/hunter2.cpp +++ b/src/mame/drivers/hunter2.cpp @@ -414,9 +414,9 @@ MACHINE_CONFIG_START(hunter2_state::hunter2) MCFG_NSC810_TIMER0_OUT(WRITELINE(*this, hunter2_state,timer0_out)) MCFG_NSC810_TIMER1_OUT(WRITELINE(*this, hunter2_state,timer1_out)) - MCFG_DEVICE_ADD("serial",RS232_PORT, default_rs232_devices,nullptr) - MCFG_RS232_CTS_HANDLER(WRITELINE(*this, hunter2_state,cts_w)) - MCFG_RS232_RXD_HANDLER(WRITELINE(*this, hunter2_state,rxd_w)) + RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); + m_rs232->cts_handler().set(FUNC(hunter2_state::cts_w)); + m_rs232->rxd_handler().set(FUNC(hunter2_state::rxd_w)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); diff --git a/src/mame/drivers/hx20.cpp b/src/mame/drivers/hx20.cpp index d2eae4d7ca3..a31cdd0fb42 100644 --- a/src/mame/drivers/hx20.cpp +++ b/src/mame/drivers/hx20.cpp @@ -932,7 +932,7 @@ MACHINE_CONFIG_START(hx20_state::hx20) MC146818(config, m_rtc, 4.194304_MHz_XTAL); m_rtc->irq().set(FUNC(hx20_state::rtc_irq_w)); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) + RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr); MCFG_CASSETTE_ADD(CASSETTE_TAG) MCFG_EPSON_SIO_ADD("sio", "tf20") MCFG_EPSON_SIO_RX(WRITELINE(*this, hx20_state, sio_rx_w)) diff --git a/src/mame/drivers/indiana.cpp b/src/mame/drivers/indiana.cpp index 6c68971be71..a62913da155 100644 --- a/src/mame/drivers/indiana.cpp +++ b/src/mame/drivers/indiana.cpp @@ -114,9 +114,9 @@ MACHINE_CONFIG_START(indiana_state::indiana) mfp.set_tx_clock(0); mfp.out_so_cb().set("keyboard", FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD("keyboard", RS232_PORT, default_rs232_devices, "keyboard") - MCFG_RS232_RXD_HANDLER(WRITELINE(MFP_TAG, mc68901_device, write_rx)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("keyboard", keyboard) + rs232_port_device &keyboard(RS232_PORT(config, "keyboard", default_rs232_devices, "keyboard")); + keyboard.rxd_handler().set(MFP_TAG, FUNC(mc68901_device::write_rx)); + keyboard.set_option_device_input_defaults("keyboard", DEVICE_INPUT_DEFAULTS_NAME(keyboard)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/jade.cpp b/src/mame/drivers/jade.cpp index bd96121266e..bd08133b0b5 100644 --- a/src/mame/drivers/jade.cpp +++ b/src/mame/drivers/jade.cpp @@ -62,11 +62,12 @@ static INPUT_PORTS_START( jade ) INPUT_PORTS_END -MACHINE_CONFIG_START(jade_state::jade) +void jade_state::jade(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) + Z80(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &jade_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &jade_state::io_map); Z80CTC(config, "ctc1", 4_MHz_XTAL); @@ -83,10 +84,10 @@ MACHINE_CONFIG_START(jade_state::jade) sio.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); sio.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("sio", z80sio_device, ctsa_w)) -MACHINE_CONFIG_END + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set("sio", FUNC(z80sio_device::rxa_w)); + rs232.cts_handler().set("sio", FUNC(z80sio_device::ctsa_w)); +} /* ROM definition */ ROM_START( jade ) diff --git a/src/mame/drivers/jupiter.cpp b/src/mame/drivers/jupiter.cpp index 67fc829ecbd..eb449a3bfbf 100644 --- a/src/mame/drivers/jupiter.cpp +++ b/src/mame/drivers/jupiter.cpp @@ -282,35 +282,36 @@ void jupiter3_state::machine_reset() // MACHINE_CONFIG( jupiter ) //------------------------------------------------- -MACHINE_CONFIG_START(jupiter2_state::jupiter2) +void jupiter2_state::jupiter2(machine_config &config) +{ // basic machine hardware - MCFG_DEVICE_ADD(MCM6571AP_TAG, M6800, 2000000) - MCFG_DEVICE_PROGRAM_MAP(jupiter2_mem) + M6800(config, m_maincpu, 2000000); + m_maincpu->set_addrmap(AS_PROGRAM, &jupiter2_state::jupiter2_mem); // devices FD1771(config, INS1771N1_TAG, 1000000); - MCFG_FLOPPY_DRIVE_ADD(INS1771N1_TAG":0", jupiter_floppies, "525ssdd", floppy_image_device::default_floppy_formats) - MCFG_FLOPPY_DRIVE_ADD(INS1771N1_TAG":1", jupiter_floppies, nullptr, floppy_image_device::default_floppy_formats) + FLOPPY_CONNECTOR(config, INS1771N1_TAG":0", jupiter_floppies, "525ssdd", floppy_image_device::default_floppy_formats); + FLOPPY_CONNECTOR(config, INS1771N1_TAG":1", jupiter_floppies, nullptr, floppy_image_device::default_floppy_formats); ACIA6850(config, m_acia0, XTAL(2'000'000)); // unknown frequency m_acia0->txd_handler().set("serial0", FUNC(rs232_port_device::write_txd)); m_acia0->rts_handler().set("serial0", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("serial0", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("acia0", acia6850_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("acia0", acia6850_device, write_cts)) + rs232_port_device &serial0(RS232_PORT(config, "serial0", default_rs232_devices, "terminal")); + serial0.rxd_handler().set(m_acia0, FUNC(acia6850_device::write_rxd)); + serial0.cts_handler().set(m_acia0, FUNC(acia6850_device::write_cts)); ACIA6850(config, m_acia1, XTAL(2'000'000)); // unknown frequency m_acia1->txd_handler().set("serial1", FUNC(rs232_port_device::write_txd)); m_acia1->rts_handler().set("serial1", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("serial1", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("acia1", acia6850_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("acia1", acia6850_device, write_cts)) + rs232_port_device &serial1(RS232_PORT(config, "serial1", default_rs232_devices, "terminal")); + serial1.rxd_handler().set(m_acia1, FUNC(acia6850_device::write_rxd)); + serial1.cts_handler().set(m_acia1, FUNC(acia6850_device::write_cts)); // internal ram RAM(config, RAM_TAG).set_default_size("64K"); -MACHINE_CONFIG_END +} //------------------------------------------------- diff --git a/src/mame/drivers/lft.cpp b/src/mame/drivers/lft.cpp index ddaf9c809f6..5d8a88c93c5 100644 --- a/src/mame/drivers/lft.cpp +++ b/src/mame/drivers/lft.cpp @@ -83,11 +83,12 @@ void lft_state::machine_reset() { } -MACHINE_CONFIG_START(lft_state::lft) +void lft_state::lft(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I80186, 16_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) + I80186(config, m_maincpu, 16_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &lft_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &lft_state::io_map); // Devices MM58167(config, m_rtc, 32.768_kHz_XTAL); @@ -97,20 +98,20 @@ MACHINE_CONFIG_START(lft_state::lft) m_scc->out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr)); m_scc->out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc, scc8530_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc, scc8530_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc, scc8530_device, ctsa_w)) + rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_scc, FUNC(scc8530_device::rxa_w)); + rs232a.dcd_handler().set(m_scc, FUNC(scc8530_device::dcda_w)); + rs232a.cts_handler().set(m_scc, FUNC(scc8530_device::ctsa_w)); m_scc->out_txdb_callback().set("rs232b", FUNC(rs232_port_device::write_txd)); m_scc->out_dtrb_callback().set("rs232b", FUNC(rs232_port_device::write_dtr)); m_scc->out_rtsb_callback().set("rs232b", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232b", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc, scc8530_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc, scc8530_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc, scc8530_device, ctsb_w)) -MACHINE_CONFIG_END + rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, "terminal")); + rs232b.rxd_handler().set(m_scc, FUNC(scc8530_device::rxb_w)); + rs232b.dcd_handler().set(m_scc, FUNC(scc8530_device::dcdb_w)); + rs232b.cts_handler().set(m_scc, FUNC(scc8530_device::ctsb_w)); +} /* ROM definition */ diff --git a/src/mame/drivers/mc1502.cpp b/src/mame/drivers/mc1502.cpp index 8c3c7d3cd6c..2b377058b87 100644 --- a/src/mame/drivers/mc1502.cpp +++ b/src/mame/drivers/mc1502.cpp @@ -270,10 +270,10 @@ MACHINE_CONFIG_START(mc1502_state::mc1502) m_upd8251->txrdy_handler().set("pic8259", FUNC(pic8259_device::ir7_w)); m_upd8251->syndet_handler().set(FUNC(mc1502_state::mc1502_i8251_syndet)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("upd8251", i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("upd8251", i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE("upd8251", i8251_device, write_cts)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); + rs232.rxd_handler().set(m_upd8251, FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set(m_upd8251, FUNC(i8251_device::write_dsr)); + rs232.cts_handler().set(m_upd8251, FUNC(i8251_device::write_cts)); MCFG_DEVICE_ADD("isa", ISA8, 0) MCFG_ISA8_CPU("maincpu") diff --git a/src/mame/drivers/mc8030.cpp b/src/mame/drivers/mc8030.cpp index d8a349c14af..1d0008daa7a 100644 --- a/src/mame/drivers/mc8030.cpp +++ b/src/mame/drivers/mc8030.cpp @@ -237,9 +237,9 @@ MACHINE_CONFIG_START(mc8030_state::mc8030) sio.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); sio.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "keyboard") - MCFG_RS232_RXD_HANDLER(WRITELINE("asp_sio", z80sio_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("asp_sio", z80sio_device, ctsa_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "keyboard")); + rs232.rxd_handler().set("asp_sio", FUNC(z80sio_device::rxa_w)); + rs232.cts_handler().set("asp_sio", FUNC(z80sio_device::ctsa_w)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/mccpm.cpp b/src/mame/drivers/mccpm.cpp index abff5e29dcb..721265346df 100644 --- a/src/mame/drivers/mccpm.cpp +++ b/src/mame/drivers/mccpm.cpp @@ -80,11 +80,12 @@ void mccpm_state::machine_reset() memcpy(m_p_ram, bios, 0x1000); } -MACHINE_CONFIG_START(mccpm_state::mccpm) +void mccpm_state::mccpm(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(mccpm_mem) - MCFG_DEVICE_IO_MAP(mccpm_io) + Z80(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &mccpm_state::mccpm_mem); + m_maincpu->set_addrmap(AS_IO, &mccpm_state::mccpm_io); /* Devices */ clock_device &uart_clock(CLOCK(config, "uart_clock", 153600)); @@ -97,12 +98,12 @@ MACHINE_CONFIG_START(mccpm_state::mccpm) sio.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); sio.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("sio", z80sio_device, ctsa_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set("sio", FUNC(z80sio_device::rxa_w)); + rs232.cts_handler().set("sio", FUNC(z80sio_device::ctsa_w)); Z80PIO(config, "pio", XTAL(4'000'000)); -MACHINE_CONFIG_END +} /* ROM definition */ ROM_START( mccpm ) diff --git a/src/mame/drivers/mfabfz.cpp b/src/mame/drivers/mfabfz.cpp index fd2c520e10b..4aa0429258e 100644 --- a/src/mame/drivers/mfabfz.cpp +++ b/src/mame/drivers/mfabfz.cpp @@ -99,7 +99,8 @@ void mfabfz_state::machine_reset() } -MACHINE_CONFIG_START(mfabfz_state::mfabfz) +void mfabfz_state::mfabfz(machine_config &config) +{ /* basic machine hardware */ I8085A(config, m_maincpu, 4_MHz_XTAL / 2); m_maincpu->set_addrmap(AS_PROGRAM, &mfabfz_state::mfabfz_mem); @@ -115,14 +116,14 @@ MACHINE_CONFIG_START(mfabfz_state::mfabfz) uart1.dtr_handler().set("rs232", FUNC(rs232_port_device::write_dtr)); uart1.rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", 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)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set("uart1", FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set("uart1", FUNC(i8251_device::write_dsr)); + rs232.cts_handler().set("uart1", FUNC(i8251_device::write_cts)); // uart2 - cassette - clock comes from 2MHz through a divider consisting of 4 chips and some jumpers. I8251(config, "uart2", 0); -MACHINE_CONFIG_END +} static DEVICE_INPUT_DEFAULTS_START( terminal ) DEVICE_INPUT_DEFAULTS( "RS232_RXBAUD", 0xff, RS232_BAUD_4800 ) diff --git a/src/mame/drivers/mice.cpp b/src/mame/drivers/mice.cpp index 4159256be1f..52b0a067f86 100644 --- a/src/mame/drivers/mice.cpp +++ b/src/mame/drivers/mice.cpp @@ -160,11 +160,12 @@ static DEVICE_INPUT_DEFAULTS_START( mice2_terminal ) DEVICE_INPUT_DEFAULTS_END -MACHINE_CONFIG_START(mice_state::mice) +void mice_state::mice(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", I8085A, 6.144_MHz_XTAL) - MCFG_DEVICE_PROGRAM_MAP(mice_mem) - MCFG_DEVICE_IO_MAP(mice_io) + I8085A(config, m_maincpu, 6.144_MHz_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &mice_state::mice_mem); + m_maincpu->set_addrmap(AS_IO, &mice_state::mice_io); i8251_device &uart(I8251(config, "uart", 6.144_MHz_XTAL / 2)); uart.txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); @@ -173,36 +174,35 @@ MACHINE_CONFIG_START(mice_state::mice) uart.txrdy_handler().set_inputline("maincpu", I8085_RST65_LINE); uart.rxrdy_handler().set_inputline("maincpu", I8085_RST75_LINE); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("uart", i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart", i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart", i8251_device, write_cts)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", mice_terminal) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set("uart", FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set("uart", FUNC(i8251_device::write_dsr)); + rs232.cts_handler().set("uart", FUNC(i8251_device::write_cts)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(mice_terminal)); i8155_device &rpt(I8155(config, "rpt", 6.144_MHz_XTAL / 2)); rpt.in_pc_callback().set_ioport("BAUD"); rpt.out_to_callback().set("uart", FUNC(i8251_device::write_txc)); rpt.out_to_callback().append("uart", FUNC(i8251_device::write_rxc)); - I8255(config, "ppi", 0); -MACHINE_CONFIG_END + I8255(config, "ppi"); +} -MACHINE_CONFIG_START(mice_state::mice2) +void mice_state::mice2(machine_config &config) +{ mice(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(mice2_mem) - MCFG_DEVICE_IO_MAP(mice2_io) + m_maincpu->set_addrmap(AS_PROGRAM, &mice_state::mice2_mem); + m_maincpu->set_addrmap(AS_IO, &mice_state::mice2_io); - MCFG_DEVICE_MODIFY("rs232") - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", mice2_terminal) + subdevice("rs232")->set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(mice2_terminal)); - MCFG_DEVICE_ADD("rttppi1", I8255, 0) - MCFG_DEVICE_ADD("rttppi2", I8255, 0) - MCFG_DEVICE_ADD("rttppi3", I8255, 0) - MCFG_DEVICE_ADD("rttppi4", I8255, 0) - MCFG_DEVICE_ADD("rttppi5", I8255, 0) - MCFG_DEVICE_ADD("rtt8155", I8155, 0) -MACHINE_CONFIG_END + I8255(config, "rttppi1"); + I8255(config, "rttppi2"); + I8255(config, "rttppi3"); + I8255(config, "rttppi4"); + I8255(config, "rttppi5"); + I8155(config, "rtt8155", 0); +} /* ROM definitions */ ROM_START( mice_6502 ) diff --git a/src/mame/drivers/micro20.cpp b/src/mame/drivers/micro20.cpp index dfd18596394..fc0667db97a 100644 --- a/src/mame/drivers/micro20.cpp +++ b/src/mame/drivers/micro20.cpp @@ -173,9 +173,9 @@ MACHINE_CONFIG_START(micro20_state::micro20) MCFG_DEVICE_ADD(DUART_A_TAG, MC68681, 3.6864_MHz_XTAL) MCFG_MC68681_A_TX_CALLBACK(WRITELINE("rs232", rs232_port_device, write_txd)) - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(DUART_A_TAG, mc68681_device, rx_a_w)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(DUART_A_TAG, FUNC(mc68681_device::rx_a_w)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); MCFG_DEVICE_ADD(DUART_B_TAG, MC68681, 3.6864_MHz_XTAL) diff --git a/src/mame/drivers/ms0515.cpp b/src/mame/drivers/ms0515.cpp index 8f40218318b..e583f0839c8 100644 --- a/src/mame/drivers/ms0515.cpp +++ b/src/mame/drivers/ms0515.cpp @@ -551,14 +551,14 @@ MACHINE_CONFIG_START(ms0515_state::ms0515) // serial connection to printer 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(FUNC(ms0515_state::irq9_w)); m_i8251line->txrdy_handler().set(FUNC(ms0515_state::irq8_w)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_i8251line, i8251_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_i8251line, i8251_device, write_cts)) - MCFG_RS232_DSR_HANDLER(WRITELINE(m_i8251line, i8251_device, write_dsr)) + RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); + 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)); // MCFG_DEVICE_ADD("line_clock", CLOCK, 4800*16) // 8251 is set to /16 on the clock input // MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, ms0515_state, write_line_clock)) diff --git a/src/mame/drivers/mx2178.cpp b/src/mame/drivers/mx2178.cpp index 18b3b2352e7..cf4500065eb 100644 --- a/src/mame/drivers/mx2178.cpp +++ b/src/mame/drivers/mx2178.cpp @@ -133,7 +133,7 @@ void mx2178_state::machine_reset() MACHINE_CONFIG_START(mx2178_state::mx2178) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(18'869'600) / 5) // guess + MCFG_DEVICE_ADD(m_maincpu, Z80, XTAL(18'869'600) / 5) // guess MCFG_DEVICE_PROGRAM_MAP(mx2178_mem) MCFG_DEVICE_IO_MAP(mx2178_io) @@ -163,20 +163,20 @@ MACHINE_CONFIG_START(mx2178_state::mx2178) acia6850_device &acia1(ACIA6850(config, "acia1", 0)); acia1.txd_handler().set("rs232a", FUNC(rs232_port_device::write_txd)); acia1.rts_handler().set("rs232a", FUNC(rs232_port_device::write_rts)); - acia1.irq_handler().set_inputline("maincpu", INPUT_LINE_IRQ0); + acia1.irq_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); - MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("acia1", acia6850_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("acia1", acia6850_device, write_cts)) + rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, nullptr)); + rs232a.rxd_handler().set("acia1", FUNC(acia6850_device::write_rxd)); + rs232a.cts_handler().set("acia1", FUNC(acia6850_device::write_cts)); acia6850_device &acia2(ACIA6850(config, "acia2", 0)); acia2.txd_handler().set("rs232b", FUNC(rs232_port_device::write_txd)); acia2.rts_handler().set("rs232b", FUNC(rs232_port_device::write_rts)); - acia2.irq_handler().set_inputline("maincpu", INPUT_LINE_IRQ0); + acia2.irq_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); - MCFG_DEVICE_ADD("rs232b", RS232_PORT, default_rs232_devices, "keyboard") - MCFG_RS232_RXD_HANDLER(WRITELINE("acia2", acia6850_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("acia2", acia6850_device, write_cts)) + rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, "keyboard")); + rs232b.rxd_handler().set("acia2", FUNC(acia6850_device::write_rxd)); + rs232b.cts_handler().set("acia2", FUNC(acia6850_device::write_cts)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/newbrain.cpp b/src/mame/drivers/newbrain.cpp index f5c187f2d07..7cbc246be9c 100644 --- a/src/mame/drivers/newbrain.cpp +++ b/src/mame/drivers/newbrain.cpp @@ -837,8 +837,8 @@ MACHINE_CONFIG_START(newbrain_state::newbrain) MCFG_CASSETTE_ADD(CASSETTE2_TAG) MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED) - MCFG_DEVICE_ADD(RS232_V24_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_DEVICE_ADD(RS232_PRN_TAG, RS232_PORT, default_rs232_devices, nullptr) + RS232_PORT(config, RS232_V24_TAG, default_rs232_devices, nullptr); + RS232_PORT(config, RS232_PRN_TAG, default_rs232_devices, nullptr); // internal ram RAM(config, RAM_TAG).set_default_size("32K"); diff --git a/src/mame/drivers/ngen.cpp b/src/mame/drivers/ngen.cpp index 07b8a9001ab..20c207bc365 100644 --- a/src/mame/drivers/ngen.cpp +++ b/src/mame/drivers/ngen.cpp @@ -973,17 +973,17 @@ MACHINE_CONFIG_START(ngen_state::ngen) m_iouart->out_rtsa_callback().set("rs232_a", FUNC(rs232_port_device::write_rts)); m_iouart->out_rtsb_callback().set("rs232_b", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232_a", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("iouart", upd7201_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("iouart", upd7201_device, ctsa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("iouart", upd7201_device, dcda_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("iouart", upd7201_device, ria_w)) + rs232_port_device &rs232a(RS232_PORT(config, "rs232_a", default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_iouart, FUNC(upd7201_device::rxa_w)); + rs232a.cts_handler().set(m_iouart, FUNC(upd7201_device::ctsa_w)); + rs232a.dcd_handler().set(m_iouart, FUNC(upd7201_device::dcda_w)); + rs232a.ri_handler().set(m_iouart, FUNC(upd7201_device::ria_w)); - MCFG_DEVICE_ADD("rs232_b", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("iouart", upd7201_device, rxb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("iouart", upd7201_device, ctsb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("iouart", upd7201_device, dcdb_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("iouart", upd7201_device, rib_w)) + rs232_port_device &rs232b(RS232_PORT(config, "rs232_b", default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_iouart, FUNC(upd7201_device::rxb_w)); + rs232b.cts_handler().set(m_iouart, FUNC(upd7201_device::ctsb_w)); + rs232b.dcd_handler().set(m_iouart, FUNC(upd7201_device::dcdb_w)); + rs232b.ri_handler().set(m_iouart, FUNC(upd7201_device::rib_w)); // TODO: SCN2652 MPCC (not implemented), used for RS-422 cluster communications? @@ -1004,8 +1004,8 @@ MACHINE_CONFIG_START(ngen_state::ngen) I8251(config, m_viduart, 0); // main clock unknown, Rx/Tx clocks are 19.53kHz // m_viduart->txempty_handler().set(m_pic, FUNC(pic8259_device::ir4_w)); m_viduart->txd_handler().set("keyboard", FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD("keyboard", RS232_PORT, keyboard, "ngen") - MCFG_RS232_RXD_HANDLER(WRITELINE(m_viduart, i8251_device, write_rxd)) + rs232_port_device &kbd(RS232_PORT(config, "keyboard", keyboard, "ngen")); + kbd.rxd_handler().set(m_viduart, FUNC(i8251_device::write_rxd)); MCFG_DEVICE_ADD("refresh_clock", CLOCK, 19200*16) // should be 19530Hz MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, ngen_state,timer_clk_out)) @@ -1085,17 +1085,17 @@ MACHINE_CONFIG_START(ngen386_state::ngen386) m_iouart->out_rtsa_callback().set("rs232_a", FUNC(rs232_port_device::write_rts)); m_iouart->out_rtsb_callback().set("rs232_b", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232_a", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("iouart", upd7201_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("iouart", upd7201_device, ctsa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("iouart", upd7201_device, dcda_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("iouart", upd7201_device, ria_w)) + rs232_port_device &rs232a(RS232_PORT(config, "rs232_a", default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_iouart, FUNC(upd7201_device::rxa_w)); + rs232a.cts_handler().set(m_iouart, FUNC(upd7201_device::ctsa_w)); + rs232a.dcd_handler().set(m_iouart, FUNC(upd7201_device::dcda_w)); + rs232a.ri_handler().set(m_iouart, FUNC(upd7201_device::ria_w)); - MCFG_DEVICE_ADD("rs232_b", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("iouart", upd7201_device, rxb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("iouart", upd7201_device, ctsb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("iouart", upd7201_device, dcdb_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("iouart", upd7201_device, rib_w)) + rs232_port_device &rs232b(RS232_PORT(config, "rs232_b", default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_iouart, FUNC(upd7201_device::rxb_w)); + rs232b.cts_handler().set(m_iouart, FUNC(upd7201_device::ctsb_w)); + rs232b.dcd_handler().set(m_iouart, FUNC(upd7201_device::dcdb_w)); + rs232b.ri_handler().set(m_iouart, FUNC(upd7201_device::rib_w)); // TODO: SCN2652 MPCC (not implemented), used for RS-422 cluster communications? @@ -1116,8 +1116,8 @@ MACHINE_CONFIG_START(ngen386_state::ngen386) I8251(config, m_viduart, 0); // main clock unknown, Rx/Tx clocks are 19.53kHz // m_viduart->txempty_handler().set("pic", FUNC(pic8259_device::ir4_w)); m_viduart->txd_handler().set("keyboard", FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD("keyboard", RS232_PORT, keyboard, "ngen") - MCFG_RS232_RXD_HANDLER(WRITELINE(m_viduart, i8251_device, write_rxd)) + rs232_port_device &kbd(RS232_PORT(config, "keyboard", keyboard, "ngen")); + kbd.rxd_handler().set(m_viduart, FUNC(i8251_device::write_rxd)); MCFG_DEVICE_ADD("refresh_clock", CLOCK, 19200*16) // should be 19530Hz MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, ngen386_state,timer_clk_out)) diff --git a/src/mame/drivers/octopus.cpp b/src/mame/drivers/octopus.cpp index 85b40554c79..536dc880d30 100644 --- a/src/mame/drivers/octopus.cpp +++ b/src/mame/drivers/octopus.cpp @@ -966,12 +966,12 @@ MACHINE_CONFIG_START(octopus_state::octopus) m_kb_uart->rxrdy_handler().set("pic_slave", FUNC(pic8259_device::ir4_w)); m_kb_uart->dtr_handler().set(FUNC(octopus_state::spk_w)); m_kb_uart->rts_handler().set(FUNC(octopus_state::beep_w)); - MCFG_DEVICE_ADD("keyboard_port", RS232_PORT, keyboard, "octopus") - MCFG_RS232_RXD_HANDLER(WRITELINE("keyboard", i8251_device, write_rxd)) + rs232_port_device &keyboard_port(RS232_PORT(config, "keyboard_port", keyboard, "octopus")); + keyboard_port.rxd_handler().set(m_kb_uart, FUNC(i8251_device::write_rxd)); MCFG_DEVICE_ADD("keyboard_clock_rx", CLOCK, 9600 * 64) - MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE("keyboard",i8251_device,write_rxc)) + MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(m_kb_uart,i8251_device,write_rxc)) MCFG_DEVICE_ADD("keyboard_clock_tx", CLOCK, 1200 * 64) - MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE("keyboard",i8251_device,write_txc)) + MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(m_kb_uart,i8251_device,write_txc)) FD1793(config, m_fdc, 16_MHz_XTAL / 8); m_fdc->intrq_wr_callback().set(m_pic1, FUNC(pic8259_device::ir5_w)); diff --git a/src/mame/drivers/okean240.cpp b/src/mame/drivers/okean240.cpp index 5bcc07378c7..6629ceac625 100644 --- a/src/mame/drivers/okean240.cpp +++ b/src/mame/drivers/okean240.cpp @@ -518,10 +518,10 @@ MACHINE_CONFIG_START(okean240_state::okean240t) uart.dtr_handler().set("rs232", FUNC(rs232_port_device::write_dtr)); uart.rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("uart", i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart", i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart", i8251_device, write_cts)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set("uart", FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set("uart", FUNC(i8251_device::write_dsr)); + rs232.cts_handler().set("uart", FUNC(i8251_device::write_cts)); I8255(config, m_ppikbd); m_ppikbd->in_pa_callback().set(FUNC(okean240_state::okean240_port40_r)); @@ -538,7 +538,7 @@ MACHINE_CONFIG_START(okean240_state::okean240t) pit.out_handler<1>().set("uart", FUNC(i8251_device::write_txc)); pit.out_handler<1>().append("uart", FUNC(i8251_device::write_rxc)); - MCFG_DEVICE_ADD("pic", PIC8259, 0) + PIC8259(config, "pic", 0); /* video hardware */ MCFG_SCREEN_ADD("screen1", RASTER) @@ -557,11 +557,7 @@ MACHINE_CONFIG_START(okean240_state::okean240a) MCFG_DEVICE_MODIFY("maincpu") MCFG_DEVICE_IO_MAP(okean240a_io) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_okean240a) - MCFG_DEVICE_REMOVE("rs232") - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "keyboard") - MCFG_RS232_RXD_HANDLER(WRITELINE("uart", i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart", i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart", i8251_device, write_cts)) + subdevice("rs232")->set_default_option("keyboard"); m_ppikbd->in_pa_callback().set(FUNC(okean240_state::okean240a_port40_r)); m_ppikbd->in_pb_callback().set(FUNC(okean240_state::okean240a_port41_r)); diff --git a/src/mame/drivers/onyx.cpp b/src/mame/drivers/onyx.cpp index ab8e520e82e..2159d1f04a4 100644 --- a/src/mame/drivers/onyx.cpp +++ b/src/mame/drivers/onyx.cpp @@ -64,7 +64,6 @@ public: void subio(address_map &map); void submem(address_map &map); private: - DECLARE_MACHINE_RESET(c8002); void z8002_m1_w(uint8_t data); required_device m_maincpu; // z8002 or z80 depending on driver @@ -79,10 +78,6 @@ static INPUT_PORTS_START( c8002 ) INPUT_PORTS_END -MACHINE_RESET_MEMBER(onyx_state, c8002) -{ -} - void onyx_state::c8002_mem(address_map &map) { map(0x00000, 0x00fff).rom().share("share0"); @@ -136,7 +131,8 @@ void onyx_state::subio(address_map &map) ****************************************************************************/ -MACHINE_CONFIG_START(onyx_state::c8002) +void onyx_state::c8002(machine_config &config) +{ /* basic machine hardware */ z8002_device& maincpu(Z8002(config, m_maincpu, XTAL(4'000'000))); //maincpu.set_daisy_config(main_daisy_chain); @@ -149,8 +145,6 @@ MACHINE_CONFIG_START(onyx_state::c8002) subcpu.set_addrmap(AS_PROGRAM, &onyx_state::submem); subcpu.set_addrmap(AS_IO, &onyx_state::subio); - MCFG_MACHINE_RESET_OVERRIDE(onyx_state, c8002) - clock_device &sio1_clock(CLOCK(config, "sio1_clock", 307200)); sio1_clock.signal_handler().set(m_sio[0], FUNC(z80sio_device::rxca_w)); sio1_clock.signal_handler().append(m_sio[0], FUNC(z80sio_device::txca_w)); @@ -172,10 +166,10 @@ MACHINE_CONFIG_START(onyx_state::c8002) Z80SIO(config, m_sio[3], XTAL(16'000'000) /4); Z80SIO(config, m_sio[4], XTAL(16'000'000) /4); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("sio1", z80sio_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("sio1", z80sio_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("sio1", z80sio_device, ctsa_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(m_sio[0], FUNC(z80sio_device::rxa_w)); + rs232.dcd_handler().set(m_sio[0], FUNC(z80sio_device::dcda_w)); + rs232.cts_handler().set(m_sio[0], FUNC(z80sio_device::ctsa_w)); Z80PIO(config, "pio1s", XTAL(16'000'000)/4); //z80pio_device& pio1s(Z80PIO(config, "pio1s", XTAL(16'000'000)/4)); @@ -190,11 +184,11 @@ MACHINE_CONFIG_START(onyx_state::c8002) sio1s.out_dtrb_callback().set("rs232s", FUNC(rs232_port_device::write_dtr)); sio1s.out_rtsb_callback().set("rs232s", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232s", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("sio1s", z80sio_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("sio1s", z80sio_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("sio1s", z80sio_device, ctsb_w)) -MACHINE_CONFIG_END + rs232_port_device &rs232s(RS232_PORT(config, "rs232s", default_rs232_devices, "terminal")); + rs232s.rxd_handler().set("sio1s", FUNC(z80sio_device::rxb_w)); + rs232s.dcd_handler().set("sio1s", FUNC(z80sio_device::dcdb_w)); + rs232s.cts_handler().set("sio1s", FUNC(z80sio_device::ctsb_w)); +} /* ROM definition */ ROM_START( c8002 ) @@ -250,18 +244,17 @@ void onyx_state::c5000_io(address_map &map) map(0x10, 0x13).rw(m_sio[0], FUNC(z80sio_device::cd_ba_r), FUNC(z80sio_device::cd_ba_w)); } -MACHINE_CONFIG_START(onyx_state::c5000) +void onyx_state::c5000(machine_config &config) +{ /* basic machine hardware */ z80_device& maincpu(Z80(config, m_maincpu, XTAL(16'000'000) / 4)); //maincpu.set_daisy_config(sub_daisy_chain); maincpu.set_addrmap(AS_PROGRAM, &onyx_state::c5000_mem); maincpu.set_addrmap(AS_IO, &onyx_state::c5000_io); - //MCFG_MACHINE_RESET_OVERRIDE(onyx_state, c8002) - - MCFG_DEVICE_ADD("sio1_clock", CLOCK, 614400) - MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(m_sio[0], z80sio_device, rxtxcb_w)) - //MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(m_sio[0] ,z80sio_device, txca_w)) + clock_device &sio1_clock(CLOCK(config, "sio1_clock", 614400)); + sio1_clock.signal_handler().set(m_sio[0], FUNC(z80sio_device::rxtxcb_w)); + //sio1_clock.signal_handler().append(m_sio[0], FUNC(z80sio_device::txca_w)); /* peripheral hardware */ //Z80PIO(config, m_pio[0], XTAL(16'000'000)/4); @@ -277,13 +270,13 @@ MACHINE_CONFIG_START(onyx_state::c5000) m_sio[0]->out_dtrb_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); m_sio[0]->out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(m_sio[0], z80sio_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_sio[0], z80sio_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_sio[0], z80sio_device, ctsb_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(m_sio[0], FUNC(z80sio_device::rxb_w)); + rs232.dcd_handler().set(m_sio[0], FUNC(z80sio_device::dcdb_w)); + rs232.cts_handler().set(m_sio[0], FUNC(z80sio_device::ctsb_w)); - //MCFG_DEVICE_ADD(m_sio[1]", Z80SIO, XTAL(16'000'000) /4) -MACHINE_CONFIG_END + //Z80SIO(config, m_sio[1], XTAL(16'000'000) /4); +} ROM_START( c5000 ) diff --git a/src/mame/drivers/p8k.cpp b/src/mame/drivers/p8k.cpp index 47d836d0b44..ad4a5a80b5f 100644 --- a/src/mame/drivers/p8k.cpp +++ b/src/mame/drivers/p8k.cpp @@ -455,9 +455,9 @@ MACHINE_CONFIG_START(p8k_state::p8k) sio.out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts)); sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("sio", z80sio_device, ctsb_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set("sio", FUNC(z80sio_device::rxb_w)); + rs232.cts_handler().set("sio", FUNC(z80sio_device::ctsb_w)); z80sio_device& sio1(Z80SIO(config, "sio1", XTAL(4'000'000))); sio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); @@ -512,9 +512,9 @@ MACHINE_CONFIG_START(p8k_state::p8k_16) sio.out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts)); sio.out_int_callback().set(FUNC(p8k_state::p8k_16_daisy_interrupt)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("sio", z80sio_device, ctsb_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set("sio", FUNC(z80sio_device::rxb_w)); + rs232.cts_handler().set("sio", FUNC(z80sio_device::ctsb_w)); z80sio_device& sio1(Z80SIO(config, "sio1", XTAL(4'000'000))); sio1.out_int_callback().set(FUNC(p8k_state::p8k_16_daisy_interrupt)); diff --git a/src/mame/drivers/pipbug.cpp b/src/mame/drivers/pipbug.cpp index 5cdc6e2b112..326ac03298a 100644 --- a/src/mame/drivers/pipbug.cpp +++ b/src/mame/drivers/pipbug.cpp @@ -162,15 +162,15 @@ QUICKLOAD_LOAD_MEMBER( pipbug_state, pipbug ) MACHINE_CONFIG_START(pipbug_state::pipbug) /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", S2650, XTAL(1'000'000)) + MCFG_DEVICE_ADD(m_maincpu, S2650, XTAL(1'000'000)) MCFG_DEVICE_PROGRAM_MAP(pipbug_mem) MCFG_DEVICE_DATA_MAP(pipbug_data) MCFG_S2650_FLAG_OUTPUT(WRITELINE("rs232", rs232_port_device, write_txd)) /* video hardware */ - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(INPUTLINE("maincpu", S2650_SENSE_LINE)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + RS232_PORT(config, m_rs232, default_rs232_devices, "terminal"); + m_rs232->rxd_handler().set_inputline(m_maincpu, S2650_SENSE_LINE); + m_rs232->set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); /* quickload */ MCFG_QUICKLOAD_ADD("quickload", pipbug_state, pipbug, "pgm", 1) diff --git a/src/mame/drivers/pm68k.cpp b/src/mame/drivers/pm68k.cpp index ec009f21cb8..74cadc49838 100644 --- a/src/mame/drivers/pm68k.cpp +++ b/src/mame/drivers/pm68k.cpp @@ -58,10 +58,11 @@ void pm68k_state::machine_reset() m_maincpu->reset(); } -MACHINE_CONFIG_START(pm68k_state::pm68k) +void pm68k_state::pm68k(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68000, 8000000) - MCFG_DEVICE_PROGRAM_MAP(pm68k_mem) + M68000(config, m_maincpu, 8000000); + m_maincpu->set_addrmap(AS_PROGRAM, &pm68k_state::pm68k_mem); i8274_new_device& mpsc(I8274_NEW(config, "mpsc", 0)); mpsc.out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd)); @@ -77,16 +78,16 @@ MACHINE_CONFIG_START(pm68k_state::pm68k) stc.out5_cb().set("mpsc", FUNC(i8274_new_device::rxcb_w)); stc.out5_cb().append("mpsc", FUNC(i8274_new_device::txcb_w)); - MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("mpsc", i8274_new_device, rxa_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("mpsc", i8274_new_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("mpsc", i8274_new_device, ctsa_w)) + rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, "terminal")); + rs232a.rxd_handler().set("mpsc", FUNC(i8274_new_device::rxa_w)); + rs232a.dsr_handler().set("mpsc", FUNC(i8274_new_device::dcda_w)); + rs232a.cts_handler().set("mpsc", FUNC(i8274_new_device::ctsa_w)); - MCFG_DEVICE_ADD("rs232b", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("mpsc", i8274_new_device, rxb_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("mpsc", i8274_new_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("mpsc", i8274_new_device, ctsb_w)) -MACHINE_CONFIG_END + rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, nullptr)); + rs232b.rxd_handler().set("mpsc", FUNC(i8274_new_device::rxb_w)); + rs232b.dsr_handler().set("mpsc", FUNC(i8274_new_device::dcdb_w)); + rs232b.cts_handler().set("mpsc", FUNC(i8274_new_device::ctsb_w)); +} /* ROM definition */ ROM_START( pm68k ) diff --git a/src/mame/drivers/proteus3.cpp b/src/mame/drivers/proteus3.cpp index 1b193e970b8..1a37cbaf089 100644 --- a/src/mame/drivers/proteus3.cpp +++ b/src/mame/drivers/proteus3.cpp @@ -421,9 +421,9 @@ MACHINE_CONFIG_START(proteus3_state::proteus3) m_acia2->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); m_acia2->rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "keyboard") - MCFG_RS232_RXD_HANDLER(WRITELINE("acia2", acia6850_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("acia2", acia6850_device, write_cts)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "keyboard")); + rs232.rxd_handler().set(m_acia2, FUNC(acia6850_device::write_rxd)); + rs232.cts_handler().set(m_acia2, FUNC(acia6850_device::write_cts)); /* Bit Rate Generator */ MC14411(config, m_brg, XTAL(1'843'200)); // crystal needs verification but is the likely one diff --git a/src/mame/drivers/ptcsol.cpp b/src/mame/drivers/ptcsol.cpp index 8689557de59..cc151ef77e9 100644 --- a/src/mame/drivers/ptcsol.cpp +++ b/src/mame/drivers/ptcsol.cpp @@ -774,11 +774,11 @@ MACHINE_CONFIG_START(sol20_state::sol20) m_uart->set_rx_clock(4800.0); m_uart->set_auto_rdav(true); // ROD (pin 4) tied to RDD (pin 18) - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) + RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); AY51013(config, m_uart_s); // TMS6011NC - m_uart_s->read_si_callback().set("rs232", FUNC(rs232_port_device::rxd_r)); - m_uart_s->write_so_callback().set("rs232", FUNC(rs232_port_device::write_txd)); + m_uart_s->read_si_callback().set(m_rs232, FUNC(rs232_port_device::rxd_r)); + m_uart_s->write_so_callback().set(m_rs232, FUNC(rs232_port_device::write_txd)); m_uart_s->set_tx_clock(4800.0); m_uart_s->set_rx_clock(4800.0); m_uart_s->set_auto_rdav(true); // ROD (pin 4) tied to RDD (pin 18) diff --git a/src/mame/drivers/pulsar.cpp b/src/mame/drivers/pulsar.cpp index 5caa3e4732b..481537ccbad 100644 --- a/src/mame/drivers/pulsar.cpp +++ b/src/mame/drivers/pulsar.cpp @@ -66,8 +66,10 @@ public: void init_pulsar(); +protected: + virtual void machine_reset() override; + private: - DECLARE_MACHINE_RESET(pulsar); TIMER_CALLBACK_MEMBER(pulsar_reset); DECLARE_WRITE8_MEMBER(ppi_pa_w); DECLARE_WRITE8_MEMBER(ppi_pb_w); @@ -186,7 +188,7 @@ static void pulsar_floppies(device_slot_interface &device) static INPUT_PORTS_START( pulsar ) INPUT_PORTS_END -MACHINE_RESET_MEMBER( pulsar_state, pulsar ) +void pulsar_state::machine_reset() { machine().scheduler().timer_set(attotime::from_usec(3), timer_expired_delegate(FUNC(pulsar_state::pulsar_reset),this)); membank("bankr0")->set_entry(0); // point at rom @@ -209,14 +211,14 @@ void pulsar_state::init_pulsar() membank("bankw1")->configure_entry(0, &main[0xf800]); } -MACHINE_CONFIG_START(pulsar_state::pulsar) +void pulsar_state::pulsar(machine_config &config) +{ /* basic machine hardware */ Z80(config, m_maincpu, 4_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &pulsar_state::mem_map); m_maincpu->set_addrmap(AS_IO, &pulsar_state::io_map); m_maincpu->set_daisy_config(daisy_chain_intf); - MCFG_MACHINE_RESET_OVERRIDE(pulsar_state, pulsar) /* Devices */ i8255_device &ppi(I8255(config, "ppi")); @@ -225,7 +227,7 @@ MACHINE_CONFIG_START(pulsar_state::pulsar) ppi.in_pc_callback().set(FUNC(pulsar_state::ppi_pc_r)); ppi.out_pc_callback().set(FUNC(pulsar_state::ppi_pc_w)); - MCFG_DEVICE_ADD("rtc", MSM5832, 32.768_kHz_XTAL) + MSM5832(config, "rtc", 32.768_kHz_XTAL); z80dart_device& dart(Z80DART(config, "dart", 4_MHz_XTAL)); dart.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); @@ -233,10 +235,10 @@ MACHINE_CONFIG_START(pulsar_state::pulsar) dart.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); dart.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("dart", z80dart_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("dart", z80dart_device, ctsa_w)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set("dart", FUNC(z80dart_device::rxa_w)); + rs232.cts_handler().set("dart", FUNC(z80dart_device::ctsa_w)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); com8116_device &brg(COM8116(config, "brg", 5.0688_MHz_XTAL)); // Schematic has the labels for FT and FR the wrong way around, but the pin numbers are correct. @@ -246,11 +248,9 @@ MACHINE_CONFIG_START(pulsar_state::pulsar) brg.ft_handler().append("dart", FUNC(z80dart_device::rxcb_w)); FD1797(config, m_fdc, 4_MHz_XTAL / 2); - MCFG_FLOPPY_DRIVE_ADD("fdc:0", pulsar_floppies, "flop", floppy_image_device::default_floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", pulsar_floppies, "flop", floppy_image_device::default_floppy_formats) - MCFG_FLOPPY_DRIVE_SOUND(true) -MACHINE_CONFIG_END + FLOPPY_CONNECTOR(config, "fdc:0", pulsar_floppies, "flop", floppy_image_device::default_floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, "fdc:1", pulsar_floppies, "flop", floppy_image_device::default_floppy_formats).enable_sound(true); +} /* ROM definition */ ROM_START( pulsarlb ) diff --git a/src/mame/drivers/pve500.cpp b/src/mame/drivers/pve500.cpp index fd5e7d285db..b8a22543273 100644 --- a/src/mame/drivers/pve500.cpp +++ b/src/mame/drivers/pve500.cpp @@ -360,7 +360,8 @@ WRITE8_MEMBER(pve500_state::io_sel_w) } } -MACHINE_CONFIG_START(pve500_state::pve500) +void pve500_state::pve500(machine_config &config) +{ /* Main CPU */ TMPZ84C015(config, m_maincpu, 12_MHz_XTAL / 2); // TMPZ84C015BF-6 m_maincpu->set_addrmap(AS_PROGRAM, &pve500_state::maincpu_prg); @@ -380,17 +381,17 @@ MACHINE_CONFIG_START(pve500_state::pve500) sio.out_txdb_callback().set("edl_inout", FUNC(rs232_port_device::write_txd)); /* Secondary CPU */ - MCFG_DEVICE_ADD("subcpu", TMPZ84C015, 12_MHz_XTAL / 2) /* TMPZ84C015BF-6 */ - MCFG_DEVICE_PROGRAM_MAP(subcpu_prg) - MCFG_DEVICE_IO_MAP(subcpu_io) - MCFG_TMPZ84C015_OUT_DTRA_CB(WRITELINE(*this, pve500_state, cxdio_reset_w)) - MCFG_TMPZ84C015_OUT_DTRB_CB(WRITELINE(*this, pve500_state, external_monitor_w)) - MCFG_TMPZ84C015_OUT_TXDA_CB(WRITELINE("switcher", rs232_port_device, write_txd)) - MCFG_TMPZ84C015_OUT_TXDB_CB(WRITELINE("serial_mixer", rs232_port_device, write_txd)) + TMPZ84C015(config, m_subcpu, 12_MHz_XTAL / 2); /* TMPZ84C015BF-6 */ + m_subcpu->set_addrmap(AS_PROGRAM, &pve500_state::subcpu_prg); + m_subcpu->set_addrmap(AS_IO, &pve500_state::subcpu_io); + m_subcpu->out_dtra_callback().set(FUNC(pve500_state::cxdio_reset_w)); + m_subcpu->out_dtrb_callback().set(FUNC(pve500_state::external_monitor_w)); + m_subcpu->out_txda_callback().set("switcher", FUNC(rs232_port_device::write_txd)); + m_subcpu->out_txdb_callback().set("serial_mixer", FUNC(rs232_port_device::write_txd)); // PIO callbacks - MCFG_TMPZ84C015_IN_PA_CB(READ8(*this, pve500_state, eeprom_r)) - MCFG_TMPZ84C015_OUT_PA_CB(WRITE8(*this, pve500_state, eeprom_w)) + m_subcpu->in_pa_callback().set(FUNC(pve500_state::eeprom_r)); + m_subcpu->out_pa_callback().set(FUNC(pve500_state::eeprom_w)); // ICG3: I/O Expander CXD1095(config, m_cxdio, 0); @@ -401,33 +402,31 @@ MACHINE_CONFIG_START(pve500_state::pve500) m_cxdio->out_porte_cb().set(FUNC(pve500_state::io_sel_w)); /* Search Dial MCUs */ - MCFG_DEVICE_ADD("dial_mcu_left", MB88201, 4_MHz_XTAL) /* PLAYER DIAL MCU */ - MCFG_DEVICE_DISABLE() - MCFG_DEVICE_ADD("dial_mcu_right", MB88201, 4_MHz_XTAL) /* RECORDER DIAL MCU */ - MCFG_DEVICE_DISABLE() + MB88201(config, "dial_mcu_left", 4_MHz_XTAL).set_disable(); /* PLAYER DIAL MCU */ + MB88201(config, "dial_mcu_right", 4_MHz_XTAL).set_disable(); /* RECORDER DIAL MCU */ /* Serial EEPROM (128 bytes, 8-bit data organization) */ /* The EEPROM stores the setup data */ EEPROM_MSM16911_8BIT(config, "eeprom"); /* FIX-ME: These are actually RS422 ports (except EDL IN/OUT which is indeed an RS232 port)*/ - MCFG_DEVICE_ADD("recorder", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("maincpu", tmpz84c015_device, rxa_w)) + rs232_port_device &recorder(RS232_PORT(config, "recorder", default_rs232_devices, nullptr)); + recorder.rxd_handler().set(m_maincpu, FUNC(tmpz84c015_device::rxa_w)); - MCFG_DEVICE_ADD("player1", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("maincpu", tmpz84c015_device, rxb_w)) + rs232_port_device &player1(RS232_PORT(config, "player1", default_rs232_devices, nullptr)); + player1.rxd_handler().set(m_maincpu, FUNC(tmpz84c015_device::rxb_w)); - MCFG_DEVICE_ADD("player2", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("external_sio", z80dart_device, rxa_w)) + rs232_port_device &player2(RS232_PORT(config, "player2", default_rs232_devices, nullptr)); + player2.rxd_handler().set("external_sio", FUNC(z80dart_device::rxa_w)); - MCFG_DEVICE_ADD("edl_inout", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("external_sio", z80dart_device, rxb_w)) + rs232_port_device &edl_inout(RS232_PORT(config, "edl_inout", default_rs232_devices, nullptr)); + edl_inout.rxd_handler().set("external_sio", FUNC(z80dart_device::rxb_w)); - MCFG_DEVICE_ADD("switcher", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("subcpu", tmpz84c015_device, rxa_w)) + rs232_port_device &switcher(RS232_PORT(config, "switcher", default_rs232_devices, nullptr)); + switcher.rxd_handler().set(m_subcpu, FUNC(tmpz84c015_device::rxa_w)); - MCFG_DEVICE_ADD("serial_mixer", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("subcpu", tmpz84c015_device, rxb_w)) + rs232_port_device &serial_mixer(RS232_PORT(config, "serial_mixer", default_rs232_devices, nullptr)); + serial_mixer.rxd_handler().set(m_subcpu, FUNC(tmpz84c015_device::rxb_w)); clock_device &clk1(CLOCK(config, "clk1", 12_MHz_XTAL / 20)); clk1.signal_handler().set(m_maincpu, FUNC(tmpz84c015_device::rxca_w)); @@ -449,10 +448,8 @@ MACHINE_CONFIG_START(pve500_state::pve500) /* audio hardware */ SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("buzzer", BEEP, 12_MHz_XTAL / 3200) // 3.75 kHz CLK2 coming out of IC D4 (frequency divider circuitry) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.05) - -MACHINE_CONFIG_END + BEEP(config, "buzzer", 12_MHz_XTAL / 3200).add_route(ALL_OUTPUTS, "mono", 0.05); // 3.75 kHz CLK2 coming out of IC D4 (frequency divider circuitry) +} ROM_START( pve500 ) ROM_REGION( 0x10000, "maincpu", 0 ) diff --git a/src/mame/drivers/qtsbc.cpp b/src/mame/drivers/qtsbc.cpp index 04b6ef94c76..eea67dee318 100644 --- a/src/mame/drivers/qtsbc.cpp +++ b/src/mame/drivers/qtsbc.cpp @@ -474,11 +474,12 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 ) DEVICE_INPUT_DEFAULTS_END -MACHINE_CONFIG_START(qtsbc_state::qtsbc) +void qtsbc_state::qtsbc(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, 4_MHz_XTAL) // Mostek MK3880 - MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_IO_MAP(io_map) + Z80(config, m_maincpu, 4_MHz_XTAL); // Mostek MK3880 + m_maincpu->set_addrmap(AS_PROGRAM, &qtsbc_state::mem_map); + m_maincpu->set_addrmap(AS_IO, &qtsbc_state::io_map); /* video hardware */ PIT8253(config, m_pit, 0); // U9 @@ -489,15 +490,15 @@ MACHINE_CONFIG_START(qtsbc_state::qtsbc) m_pit->out_handler<1>().set(m_pit, FUNC(pit8253_device::write_clk2)); I8251(config, m_usart, 0); // U8 - m_usart->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); + m_usart->txd_handler().set(m_rs232, FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("usart", i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("usart", i8251_device, write_dsr)) // actually from pin 11, "Reverse Channel Transmit" - MCFG_RS232_CTS_HANDLER(WRITELINE(*this, qtsbc_state, rts_loopback_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("rs232", rs232_port_device, write_dtr)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) // must be exactly here -MACHINE_CONFIG_END + 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)); // actually from pin 11, "Reverse Channel Transmit" + m_rs232->cts_handler().set(FUNC(qtsbc_state::rts_loopback_w)); + m_rs232->dcd_handler().set(m_rs232, FUNC(rs232_port_device::write_dtr)); + m_rs232->set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); +} /* ROM definition */ ROM_START( qtsbc ) diff --git a/src/mame/drivers/sapi1.cpp b/src/mame/drivers/sapi1.cpp index 221b40e557c..99124916915 100644 --- a/src/mame/drivers/sapi1.cpp +++ b/src/mame/drivers/sapi1.cpp @@ -701,12 +701,11 @@ MACHINE_CONFIG_START(sapi1_state::sapi3a) AY51013(config, m_uart); // Tesla MHB1012 m_uart->set_tx_clock(XTAL(12'288'000) / 80); // not actual rate? m_uart->set_rx_clock(XTAL(12'288'000) / 80); // not actual rate? - m_uart->read_si_callback().set("v24", FUNC(rs232_port_device::rxd_r)); - m_uart->write_so_callback().set("v24", FUNC(rs232_port_device::write_txd)); + m_uart->read_si_callback().set(m_v24, FUNC(rs232_port_device::rxd_r)); + m_uart->write_so_callback().set(m_v24, FUNC(rs232_port_device::write_txd)); m_uart->set_auto_rdav(true); // RDAV not actually tied to RDE, but pulsed by K155AG3 (=74123N): R25=22k, C14=220 - MCFG_DEVICE_ADD("v24", RS232_PORT, default_rs232_devices, "terminal") - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + RS232_PORT(config, m_v24, default_rs232_devices, "terminal").set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); /* internal ram */ RAM(config, RAM_TAG).set_default_size("64K"); diff --git a/src/mame/drivers/scopus.cpp b/src/mame/drivers/scopus.cpp index 1228aa52d88..4a3fc845596 100644 --- a/src/mame/drivers/scopus.cpp +++ b/src/mame/drivers/scopus.cpp @@ -191,10 +191,10 @@ MACHINE_CONFIG_START(sagitta180_state::sagitta180) uart.dtr_handler().set("rs232", FUNC(rs232_port_device::write_dtr)); uart.rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("uart", i8251_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart", i8251_device, write_cts)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart", i8251_device, write_dsr)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); + rs232.rxd_handler().set("uart", FUNC(i8251_device::write_rxd)); + rs232.cts_handler().set("uart", FUNC(i8251_device::write_cts)); + rs232.dsr_handler().set("uart", FUNC(i8251_device::write_dsr)); clock_device &uart_clock(CLOCK(config, "uart_clock", 19218)); // 19218 / 19222 ? guesses... uart_clock.signal_handler().set("uart", FUNC(i8251_device::write_txc)); diff --git a/src/mame/drivers/seattlecmp.cpp b/src/mame/drivers/seattlecmp.cpp index eaedcf1ab3f..0b8e8e38fa3 100644 --- a/src/mame/drivers/seattlecmp.cpp +++ b/src/mame/drivers/seattlecmp.cpp @@ -133,11 +133,11 @@ MACHINE_CONFIG_START(seattle_comp_state::seattle) uart.rxrdy_handler().set("pic2", FUNC(pic8259_device::ir1_w)); uart.txrdy_handler().set("pic2", FUNC(pic8259_device::ir5_w)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("uart", i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart", i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart", i8251_device, write_cts)) - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) // must be exactly here + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set("uart", FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set("uart", FUNC(i8251_device::write_dsr)); + rs232.cts_handler().set("uart", FUNC(i8251_device::write_cts)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/selz80.cpp b/src/mame/drivers/selz80.cpp index 86a85115e09..ace9dad4f5b 100644 --- a/src/mame/drivers/selz80.cpp +++ b/src/mame/drivers/selz80.cpp @@ -236,10 +236,10 @@ MACHINE_CONFIG_START(selz80_state::selz80) uart.dtr_handler().set("rs232", FUNC(rs232_port_device::write_dtr)); uart.rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("uart", i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart", i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart", i8251_device, write_cts)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); + rs232.rxd_handler().set("uart", FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set("uart", FUNC(i8251_device::write_dsr)); + rs232.cts_handler().set("uart", FUNC(i8251_device::write_cts)); i8279_device &kbdc(I8279(config, "i8279", 5000000 / 2)); // based on divider kbdc.out_sl_callback().set(FUNC(selz80_state::scanlines_w)); // scan SL lines diff --git a/src/mame/drivers/softbox.cpp b/src/mame/drivers/softbox.cpp index 7ec99a421fe..699130f946d 100644 --- a/src/mame/drivers/softbox.cpp +++ b/src/mame/drivers/softbox.cpp @@ -371,11 +371,11 @@ MACHINE_CONFIG_START(softbox_state::softbox) 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, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(I8251_TAG, i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE(I8251_TAG, i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE(I8251_TAG, i8251_device, write_cts)) - 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.cts_handler().set(I8251_TAG, FUNC(i8251_device::write_cts)); + rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); i8255_device &ppi0(I8255A(config, I8255_0_TAG)); ppi0.in_pa_callback().set(FUNC(softbox_state::ppi0_pa_r)); diff --git a/src/mame/drivers/sorcerer.cpp b/src/mame/drivers/sorcerer.cpp index 668ffe80a90..aada01930c0 100644 --- a/src/mame/drivers/sorcerer.cpp +++ b/src/mame/drivers/sorcerer.cpp @@ -434,8 +434,7 @@ MACHINE_CONFIG_START(sorcerer_state::sorcerer) m_uart->set_rx_clock(ES_UART_CLOCK); m_uart->set_auto_rdav(true); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "null_modem") - MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal) + RS232_PORT(config, "rs232", default_rs232_devices, "null_modem").set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); /* printer */ MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "covox") diff --git a/src/mame/drivers/sun2.cpp b/src/mame/drivers/sun2.cpp index 2576bd8fbff..a7ae02f5ccd 100644 --- a/src/mame/drivers/sun2.cpp +++ b/src/mame/drivers/sun2.cpp @@ -653,15 +653,15 @@ MACHINE_CONFIG_START(sun2_state::sun2vme) scc2.out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); scc2.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_6); - MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsa_w)) + rs232_port_device &rs232a(RS232_PORT(config, RS232A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(SCC2_TAG, FUNC(z80scc_device::rxa_w)); + rs232a.dcd_handler().set(SCC2_TAG, FUNC(z80scc_device::dcda_w)); + rs232a.cts_handler().set(SCC2_TAG, FUNC(z80scc_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsb_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(SCC2_TAG, FUNC(z80scc_device::rxb_w)); + rs232b.dcd_handler().set(SCC2_TAG, FUNC(z80scc_device::dcdb_w)); + rs232b.cts_handler().set(SCC2_TAG, FUNC(z80scc_device::ctsb_w)); MACHINE_CONFIG_END MACHINE_CONFIG_START(sun2_state::sun2mbus) @@ -706,17 +706,17 @@ MACHINE_CONFIG_START(sun2_state::sun2mbus) scc2.out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); scc2.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_6); - MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsa_w)) + rs232_port_device &rs232a(RS232_PORT(config, RS232A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(SCC2_TAG, FUNC(z80scc_device::rxa_w)); + rs232a.dcd_handler().set(SCC2_TAG, FUNC(z80scc_device::dcda_w)); + rs232a.cts_handler().set(SCC2_TAG, FUNC(z80scc_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsb_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(SCC2_TAG, FUNC(z80scc_device::rxb_w)); + rs232b.dcd_handler().set(SCC2_TAG, FUNC(z80scc_device::dcdb_w)); + rs232b.cts_handler().set(SCC2_TAG, FUNC(z80scc_device::ctsb_w)); - MCFG_DEVICE_ADD("rtc", MM58167, 32.768_kHz_XTAL) + MM58167(config, "rtc", 32.768_kHz_XTAL); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/sun3.cpp b/src/mame/drivers/sun3.cpp index 0e51c328214..68a5c9863f1 100644 --- a/src/mame/drivers/sun3.cpp +++ b/src/mame/drivers/sun3.cpp @@ -1049,15 +1049,15 @@ MACHINE_CONFIG_START(sun3_state::sun3) m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w)) + rs232_port_device &rs232a(RS232_PORT(config, RS232A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_scc2, FUNC(z80scc_device::rxa_w)); + rs232a.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcda_w)); + rs232a.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_scc2, FUNC(z80scc_device::rxb_w)); + rs232b.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcdb_w)); + rs232b.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsb_w)); AM79C90(config, m_lance, 10'000'000); // clock is a guess @@ -1152,15 +1152,15 @@ MACHINE_CONFIG_START(sun3_state::sun3_50) m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w)) + rs232_port_device &rs232a(RS232_PORT(config, RS232A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_scc2, FUNC(z80scc_device::rxa_w)); + rs232a.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcda_w)); + rs232a.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_scc2, FUNC(z80scc_device::rxb_w)); + rs232b.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcdb_w)); + rs232b.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsb_w)); MCFG_NSCSI_BUS_ADD("scsibus") MCFG_NSCSI_ADD("scsibus:0", scsi_devices, nullptr, false) diff --git a/src/mame/drivers/sun3x.cpp b/src/mame/drivers/sun3x.cpp index 43010631bd1..062c8d3265e 100644 --- a/src/mame/drivers/sun3x.cpp +++ b/src/mame/drivers/sun3x.cpp @@ -608,15 +608,15 @@ MACHINE_CONFIG_START(sun3x_state::sun3_80) m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w)) + rs232_port_device &rs232a(RS232_PORT(config, RS232A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_scc2, FUNC(z80scc_device::rxa_w)); + rs232a.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcda_w)); + rs232a.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_scc2, FUNC(z80scc_device::rxb_w)); + rs232b.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcdb_w)); + rs232b.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsb_w)); MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0) MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "harddisk", SCSIHD, SCSI_ID_6) @@ -638,28 +638,29 @@ MACHINE_CONFIG_START(sun3x_state::sun3_80) MCFG_SCREEN_REFRESH_RATE(72) MACHINE_CONFIG_END -MACHINE_CONFIG_START(sun3x_state::sun3_460) +void sun3x_state::sun3_460(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", M68030, 33000000) - MCFG_DEVICE_PROGRAM_MAP(sun3_460_mem) + M68030(config, m_maincpu, 33000000); + m_maincpu->set_addrmap(AS_PROGRAM, &sun3x_state::sun3_460_mem); - MCFG_DEVICE_ADD(TIMEKEEPER_TAG, M48T02, 0) + M48T02(config, TIMEKEEPER_TAG, 0); SCC8530N(config, m_scc1, 4.9152_MHz_XTAL); SCC8530N(config, m_scc2, 4.9152_MHz_XTAL); m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w)) + rs232_port_device &rs232a(RS232_PORT(config, RS232A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_scc2, FUNC(z80scc_device::rxa_w)); + rs232a.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcda_w)); + rs232a.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w)) -MACHINE_CONFIG_END + rs232_port_device &rs232b(RS232_PORT(config, RS232B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_scc2, FUNC(z80scc_device::rxb_w)); + rs232b.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcdb_w)); + rs232b.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsb_w)); +} /* ROM definition */ diff --git a/src/mame/drivers/sun4.cpp b/src/mame/drivers/sun4.cpp index b3866f9442c..afffcf4368f 100644 --- a/src/mame/drivers/sun4.cpp +++ b/src/mame/drivers/sun4.cpp @@ -1916,16 +1916,15 @@ MACHINE_CONFIG_START(sun4_state::sun4) m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); + rs232_port_device &rs232a(RS232_PORT(config, RS232A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_scc2, FUNC(z80scc_device::rxa_w)); + rs232a.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcda_w)); + rs232a.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w)) - - MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_scc2, FUNC(z80scc_device::rxb_w)); + rs232b.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcdb_w)); + rs232b.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsb_w)); MCFG_NSCSI_BUS_ADD("scsibus") MCFG_NSCSI_ADD("scsibus:0", sun_scsi_devices, "harddisk", false) @@ -1990,15 +1989,15 @@ MACHINE_CONFIG_START(sun4_state::sun4c) m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w)) + rs232_port_device &rs232a(RS232_PORT(config, RS232A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_scc2, FUNC(z80scc_device::rxa_w)); + rs232a.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcda_w)); + rs232a.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsa_w)); - MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_scc2, FUNC(z80scc_device::rxb_w)); + rs232b.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcdb_w)); + rs232b.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsb_w)); MCFG_NSCSI_BUS_ADD("scsibus") MCFG_NSCSI_ADD("scsibus:0", sun_scsi_devices, "harddisk", false) diff --git a/src/mame/drivers/sys9002.cpp b/src/mame/drivers/sys9002.cpp index ce93ab675a7..793ddbfabfd 100644 --- a/src/mame/drivers/sys9002.cpp +++ b/src/mame/drivers/sys9002.cpp @@ -154,22 +154,22 @@ MACHINE_CONFIG_START(sys9002_state::sys9002) uart1.dtr_handler().set("rs232a", FUNC(rs232_port_device::write_dtr)); uart1.rts_handler().set("rs232a", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, nullptr) - 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_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", uart1) + rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, nullptr)); + 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)); + rs232a.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(uart1)); i8251_device &uart2(I8251(config, "uart2", 0)); // enabled for transmit only, 8 bits odd parity, x64 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)); - MCFG_DEVICE_ADD("rs232b", RS232_PORT, default_rs232_devices, "terminal") - 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_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", uart2) + rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, "terminal")); + 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)); + rs232b.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(uart2)); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/systec.cpp b/src/mame/drivers/systec.cpp index cce923910d7..86d424c02c2 100644 --- a/src/mame/drivers/systec.cpp +++ b/src/mame/drivers/systec.cpp @@ -84,11 +84,12 @@ void systec_state::machine_reset() } -MACHINE_CONFIG_START(systec_state::systec) +void systec_state::systec(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu", Z80, XTAL(16'000'000) / 4) - MCFG_DEVICE_PROGRAM_MAP(systec_mem) - MCFG_DEVICE_IO_MAP(systec_io) + Z80(config, m_maincpu, XTAL(16'000'000) / 4); + m_maincpu->set_addrmap(AS_PROGRAM, &systec_state::systec_mem); + m_maincpu->set_addrmap(AS_IO, &systec_state::systec_io); clock_device &uart_clock(CLOCK(config, "uart_clock", 153600)); uart_clock.signal_handler().set("sio", FUNC(z80sio_device::txca_w)); @@ -101,10 +102,10 @@ MACHINE_CONFIG_START(systec_state::systec) sio.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); sio.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("sio", z80sio_device, ctsa_w)) -MACHINE_CONFIG_END + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set("sio", FUNC(z80sio_device::rxa_w)); + rs232.cts_handler().set("sio", FUNC(z80sio_device::ctsa_w)); +} /* ROM definition */ diff --git a/src/mame/drivers/tandy2k.cpp b/src/mame/drivers/tandy2k.cpp index 1f6c268c532..7aa830a52b3 100644 --- a/src/mame/drivers/tandy2k.cpp +++ b/src/mame/drivers/tandy2k.cpp @@ -825,15 +825,15 @@ MACHINE_CONFIG_START(tandy2k_state::tandy2k) m_i8255a->out_pc_callback().set(FUNC(tandy2k_state::ppi_pc_w)); I8251(config, m_uart, 0); - m_uart->txd_handler().set(RS232_TAG, FUNC(rs232_port_device::write_txd)); - 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)); + m_uart->txd_handler().set(m_rs232, FUNC(rs232_port_device::write_txd)); + m_uart->dtr_handler().set(m_rs232, FUNC(rs232_port_device::write_dtr)); + m_uart->rts_handler().set(m_rs232, FUNC(rs232_port_device::write_rts)); m_uart->rxrdy_handler().set(FUNC(tandy2k_state::rxrdy_w)); m_uart->txrdy_handler().set(FUNC(tandy2k_state::txrdy_w)); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_dsr)) + RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); + m_rs232->rxd_handler().set(m_uart, FUNC(i8251_device::write_rxd)); + m_rs232->dsr_handler().set(m_uart, FUNC(i8251_device::write_dsr)); // TODO pin 15 external transmit clock // TODO pin 17 external receiver clock diff --git a/src/mame/drivers/tavernie.cpp b/src/mame/drivers/tavernie.cpp index 6d11f3fec54..e42203747f8 100644 --- a/src/mame/drivers/tavernie.cpp +++ b/src/mame/drivers/tavernie.cpp @@ -327,9 +327,9 @@ MACHINE_CONFIG_START(tavernie_state::cpu09) acia.txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); acia.rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("acia", acia6850_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE("acia", acia6850_device, write_cts)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set("acia", FUNC(acia6850_device::write_rxd)); + rs232.cts_handler().set("acia", FUNC(acia6850_device::write_cts)); clock_device &acia_clock(CLOCK(config, "acia_clock", 153600)); acia_clock.signal_handler().set("acia", FUNC(acia6850_device::write_txc)); diff --git a/src/mame/drivers/tiki100.cpp b/src/mame/drivers/tiki100.cpp index 5d46bc5c1d8..ffc4c6b0ae3 100644 --- a/src/mame/drivers/tiki100.cpp +++ b/src/mame/drivers/tiki100.cpp @@ -752,11 +752,11 @@ MACHINE_CONFIG_START(tiki100_state::tiki100) MCFG_FLOPPY_DRIVE_ADD(FD1797_TAG":0", tiki100_floppies, "525qd", tiki100_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD(FD1797_TAG":1", tiki100_floppies, "525qd", tiki100_state::floppy_formats) - MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart, z80dart_device, rxa_w)) + rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_dart, FUNC(z80dart_device::rxa_w)); - MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart, z80dart_device, rxb_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_dart, FUNC(z80dart_device::rxb_w)); CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->set_data_input_buffer("cent_data_in"); diff --git a/src/mame/drivers/ts803.cpp b/src/mame/drivers/ts803.cpp index 03c0f52c2a2..18d06b3f9f5 100644 --- a/src/mame/drivers/ts803.cpp +++ b/src/mame/drivers/ts803.cpp @@ -458,8 +458,8 @@ MACHINE_CONFIG_START(ts803_state::ts803) dart.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); dart.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "keyboard") - MCFG_RS232_RXD_HANDLER(WRITELINE("dart", z80dart_device, rxa_w)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "keyboard")); + rs232.rxd_handler().set("dart", FUNC(z80dart_device::rxa_w)); /* floppy disk */ FD1793(config, m_fdc, 1_MHz_XTAL); diff --git a/src/mame/drivers/tti.cpp b/src/mame/drivers/tti.cpp index b0cdd64be79..97ad14dacdb 100644 --- a/src/mame/drivers/tti.cpp +++ b/src/mame/drivers/tti.cpp @@ -58,10 +58,11 @@ void tti_state::prg_map(address_map &map) map(0x80070, 0x80077).w("bitlatch", FUNC(ls259_device::write_d0)); } -MACHINE_CONFIG_START(tti_state::tti) - MCFG_DEVICE_ADD("maincpu", M68008, 20_MHz_XTAL / 2) // guess - MCFG_DEVICE_PROGRAM_MAP(prg_map) - MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(tti_state, intack) +void tti_state::tti(machine_config &config) +{ + M68008(config, m_maincpu, 20_MHz_XTAL / 2); // guess + m_maincpu->set_addrmap(AS_PROGRAM, &tti_state::prg_map); + m_maincpu->set_irq_acknowledge_callback(FUNC(tti_state::intack)); MC68901(config, m_mfp, 20_MHz_XTAL / 2); // guess m_mfp->set_timer_clock(20_MHz_XTAL / 2); // guess @@ -70,8 +71,8 @@ MACHINE_CONFIG_START(tti_state::tti) m_mfp->out_so_cb().set("rs232", FUNC(rs232_port_device::write_txd)); m_mfp->out_irq_cb().set_inputline("maincpu", M68K_IRQ_5); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("mfp", mc68901_device, write_rx)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal")); + rs232.rxd_handler().set(m_mfp, FUNC(mc68901_device::write_rx)); EEPROM_X24C44_16BIT(config, "novram").do_callback().set("mfp", FUNC(mc68901_device::i0_w)); @@ -79,7 +80,7 @@ MACHINE_CONFIG_START(tti_state::tti) bitlatch.q_out_cb<0>().set("novram", FUNC(eeprom_serial_x24c44_device::di_write)); bitlatch.q_out_cb<1>().set("novram", FUNC(eeprom_serial_x24c44_device::clk_write)); bitlatch.q_out_cb<2>().set("novram", FUNC(eeprom_serial_x24c44_device::cs_write)); -MACHINE_CONFIG_END +} ROM_START( tti ) ROM_REGION( 0x8000, "maincpu", 0 ) diff --git a/src/mame/drivers/v1050.cpp b/src/mame/drivers/v1050.cpp index d6ad0852bc8..2508cb7be57 100644 --- a/src/mame/drivers/v1050.cpp +++ b/src/mame/drivers/v1050.cpp @@ -1091,9 +1091,9 @@ MACHINE_CONFIG_START(v1050_state::v1050) m_uart_sio->rxrdy_handler().set(FUNC(v1050_state::sio_rxrdy_w)); m_uart_sio->txrdy_handler().set(FUNC(v1050_state::sio_txrdy_w)); - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(I8251A_SIO_TAG, i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE(I8251A_SIO_TAG, i8251_device, write_dsr)) + rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); + rs232.rxd_handler().set(m_uart_sio, FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set(m_uart_sio, FUNC(i8251_device::write_dsr)); MCFG_DEVICE_ADD(CLOCK_SIO_TAG, CLOCK, 16_MHz_XTAL/4) MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, v1050_state, write_sio_clock)) diff --git a/src/mame/drivers/vector4.cpp b/src/mame/drivers/vector4.cpp index 1d338f6b3c6..9b3a5e0ecd6 100644 --- a/src/mame/drivers/vector4.cpp +++ b/src/mame/drivers/vector4.cpp @@ -64,11 +64,12 @@ void vector4_state::machine_reset() } -MACHINE_CONFIG_START(vector4_state::vector4) +void vector4_state::vector4(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD("maincpu",Z80, XTAL(4'000'000)) - MCFG_DEVICE_PROGRAM_MAP(vector4_mem) - MCFG_DEVICE_IO_MAP(vector4_io) + Z80(config, m_maincpu, XTAL(4'000'000)); + m_maincpu->set_addrmap(AS_PROGRAM, &vector4_state::vector4_mem); + m_maincpu->set_addrmap(AS_IO, &vector4_state::vector4_io); /* video hardware */ clock_device &uart_clock(CLOCK(config, "uart_clock", 153600)); @@ -84,31 +85,31 @@ MACHINE_CONFIG_START(vector4_state::vector4) uart1.dtr_handler().set("rs232a", FUNC(rs232_port_device::write_dtr)); uart1.rts_handler().set("rs232a", FUNC(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)) + 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)); - 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)) + 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)); i8251_device &uart3(I8251(config, "uart3", 0)); uart3.txd_handler().set("rs232c", FUNC(rs232_port_device::write_txd)); uart3.dtr_handler().set("rs232c", FUNC(rs232_port_device::write_dtr)); uart3.rts_handler().set("rs232c", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("rs232c", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("uart3", i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart3", i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart3", i8251_device, write_cts)) -MACHINE_CONFIG_END + rs232_port_device &rs232c(RS232_PORT(config, "rs232c", default_rs232_devices, nullptr)); + rs232c.rxd_handler().set("uart3", FUNC(i8251_device::write_rxd)); + rs232c.dsr_handler().set("uart3", FUNC(i8251_device::write_dsr)); + rs232c.cts_handler().set("uart3", FUNC(i8251_device::write_cts)); +} /* ROM definition */ ROM_START( vector4 ) diff --git a/src/mame/drivers/votrpss.cpp b/src/mame/drivers/votrpss.cpp index 2406bf53c2d..e36f0209a60 100644 --- a/src/mame/drivers/votrpss.cpp +++ b/src/mame/drivers/votrpss.cpp @@ -271,10 +271,10 @@ MACHINE_CONFIG_START(votrpss_state::votrpss) uart.rts_handler().set("rs232", FUNC(rs232_port_device::write_rts)); // when serial is chosen, and you select terminal, nothing shows (by design). You can only type commands in. - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("uart", i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart", i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart", i8251_device, write_cts)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); + rs232.rxd_handler().set("uart", FUNC(i8251_device::write_rxd)); + rs232.dsr_handler().set("uart", FUNC(i8251_device::write_dsr)); + rs232.cts_handler().set("uart", FUNC(i8251_device::write_cts)); pit8253_device &pit(PIT8253(config, "pit", 0)); pit.set_clk<0>(8_MHz_XTAL); // Timer 0: baud rate gen for 8251 diff --git a/src/mame/drivers/wangpc.cpp b/src/mame/drivers/wangpc.cpp index 5126269d9c3..922f098a411 100644 --- a/src/mame/drivers/wangpc.cpp +++ b/src/mame/drivers/wangpc.cpp @@ -1342,8 +1342,8 @@ MACHINE_CONFIG_START(wangpc_state::wangpc) INPUT_BUFFER(config, m_cent_data_in); MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) - MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCN2661_TAG, mc2661_device, rx_w)) + rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr)); + rs232.rxd_handler().set(m_epci, FUNC(mc2661_device::rx_w)); WANGPC_KEYBOARD(config, "wangpckb").txd_handler().set(m_uart, FUNC(im6402_device::write_rri)); diff --git a/src/mame/drivers/xerox820.cpp b/src/mame/drivers/xerox820.cpp index 52f557e53c9..f46b03960a6 100644 --- a/src/mame/drivers/xerox820.cpp +++ b/src/mame/drivers/xerox820.cpp @@ -641,11 +641,11 @@ MACHINE_CONFIG_START(xerox820_state::xerox820) m_sio->out_rtsb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts)); m_sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); - MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_sio, z80sio0_device, rxa_w)) + rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_sio, FUNC(z80sio0_device::rxa_w)); - MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_sio, z80sio0_device, rxb_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_sio, FUNC(z80sio0_device::rxb_w)); com8116_device &dbrg(COM8116(config, COM8116_TAG, 5.0688_MHz_XTAL)); dbrg.fr_handler().set(m_sio, FUNC(z80dart_device::rxca_w)); @@ -730,11 +730,11 @@ MACHINE_CONFIG_START(xerox820ii_state::xerox820ii) m_sio->out_rtsb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts)); m_sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); - MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_sio, z80sio0_device, rxa_w)) + rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_sio, FUNC(z80sio0_device::rxa_w)); - MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_sio, z80sio0_device, rxb_w)) + rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr)); + rs232b.rxd_handler().set(m_sio, FUNC(z80sio0_device::rxb_w)); com8116_device &dbrg(COM8116(config, COM8116_TAG, 5.0688_MHz_XTAL)); dbrg.fr_handler().set(m_sio, FUNC(z80dart_device::rxca_w)); diff --git a/src/mame/drivers/xor100.cpp b/src/mame/drivers/xor100.cpp index 4fa4b8b013f..01927f5577b 100644 --- a/src/mame/drivers/xor100.cpp +++ b/src/mame/drivers/xor100.cpp @@ -489,19 +489,19 @@ MACHINE_CONFIG_START(xor100_state::xor100) m_uart_a->dtr_handler().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr)); m_uart_a->rts_handler().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart_a, i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE(m_uart_a, i8251_device, write_dsr)) + rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr)); + rs232a.rxd_handler().set(m_uart_a, FUNC(i8251_device::write_rxd)); + rs232a.dsr_handler().set(m_uart_a, FUNC(i8251_device::write_dsr)); I8251(config, m_uart_b, 0/*8_MHz_XTAL / 2,*/); m_uart_b->txd_handler().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd)); m_uart_b->dtr_handler().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr)); m_uart_b->rts_handler().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart_b, i8251_device, write_rxd)) - MCFG_RS232_DSR_HANDLER(WRITELINE(m_uart_b, i8251_device, write_dsr)) - MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart_b, i8251_device, write_cts)) + rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, "terminal")); + rs232b.rxd_handler().set(m_uart_b, FUNC(i8251_device::write_rxd)); + rs232b.dsr_handler().set(m_uart_b, FUNC(i8251_device::write_dsr)); + rs232b.cts_handler().set(m_uart_b, FUNC(i8251_device::write_cts)); com8116_device &brg(COM8116(config, COM5016_TAG, 5.0688_MHz_XTAL)); brg.fr_handler().set(m_uart_a, FUNC(i8251_device::write_txc)); diff --git a/src/mame/drivers/zorba.cpp b/src/mame/drivers/zorba.cpp index 74bce8a0af0..9323820383e 100644 --- a/src/mame/drivers/zorba.cpp +++ b/src/mame/drivers/zorba.cpp @@ -237,10 +237,10 @@ MACHINE_CONFIG_START(zorba_state::zorba) // J2 EIA RS232/internal modem // TODO: this has additional lines compared to a regular RS232 port (TxC in, RxC in, RxC out, speaker in, power) - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart0, i8251_device, write_rxd)) // TODO: this line has a LED attached - MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart0, i8251_device, write_cts)) // TODO: this line has a LED attached - MCFG_RS232_DSR_HANDLER(WRITELINE(m_uart0, i8251_device, write_dsr)) + rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr)); + rs232.rxd_handler().set(m_uart0, FUNC(i8251_device::write_rxd)); // TODO: this line has a LED attached + rs232.cts_handler().set(m_uart0, FUNC(i8251_device::write_cts)); // TODO: this line has a LED attached + rs232.dsr_handler().set(m_uart0, FUNC(i8251_device::write_dsr)); // J3 Parallel printer MCFG_CENTRONICS_OUTPUT_LATCH_ADD("parprndata", "parprn") @@ -251,8 +251,8 @@ MACHINE_CONFIG_START(zorba_state::zorba) parprn.select_handler().set(FUNC(zorba_state::printer_select_w)); // J3 Serial printer - MCFG_DEVICE_ADD("serprn", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart1, i8251_device, write_rxd)) // TODO: this line has a LED attached + rs232_port_device &serprn(RS232_PORT(config, "serprn", default_rs232_devices, nullptr)); + serprn.rxd_handler().set(m_uart1, FUNC(i8251_device::write_rxd)); // TODO: this line has a LED attached // J6 TTL-level serial keyboard ZORBA_KEYBOARD(config, "keyboard").rxd_cb().set(m_uart2, FUNC(i8251_device::write_rxd)); diff --git a/src/mame/machine/thomson.cpp b/src/mame/machine/thomson.cpp index 7b5243cc1d2..0d7c7e7f379 100644 --- a/src/mame/machine/thomson.cpp +++ b/src/mame/machine/thomson.cpp @@ -530,10 +530,10 @@ MACHINE_CONFIG_START(to7_io_line_device::device_add_mconfig) m_pia_io->irqa_handler().set("^mainfirq", FUNC(input_merger_device::in_w<1>)); m_pia_io->irqb_handler().set("^mainfirq", FUNC(input_merger_device::in_w<1>)); - MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(*this, to7_io_line_device, write_rxd)) - MCFG_RS232_CTS_HANDLER(WRITELINE(*this, to7_io_line_device, write_cts)) - MCFG_RS232_DSR_HANDLER(WRITELINE(*this, to7_io_line_device, write_dsr)) + RS232_PORT(config, m_rs232, default_rs232_devices, nullptr); + m_rs232->rxd_handler().set(FUNC(to7_io_line_device::write_rxd)); + m_rs232->cts_handler().set(FUNC(to7_io_line_device::write_cts)); + m_rs232->dsr_handler().set(FUNC(to7_io_line_device::write_dsr)); MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer") MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(THOM_PIA_IO, pia6821_device, cb1_w))