From c5f8c29d1c72fcc49771abe360dd73c8eb404917 Mon Sep 17 00:00:00 2001 From: mooglyguy Date: Tue, 4 Sep 2018 22:05:25 +0200 Subject: -in8250: De-MCFG, nw --- src/devices/bus/hp_dio/hp98644.cpp | 19 +++-- src/devices/bus/isa/com.cpp | 140 +++++++++++++++++----------------- src/devices/bus/nubus/bootbug.cpp | 18 ++--- src/devices/bus/pofo/hpc102.cpp | 20 ++--- src/devices/bus/s100/wunderbus.cpp | 64 ++++++++-------- src/devices/bus/svi3x8/slot/sv805.cpp | 18 ++--- src/devices/machine/fdc37c93x.cpp | 23 +++--- src/devices/machine/ins8250.h | 23 ------ src/devices/machine/vrc5074.cpp | 16 ++-- src/mame/drivers/aristmk5.cpp | 40 +++++----- src/mame/drivers/avigo.cpp | 10 +-- src/mame/drivers/cdc721.cpp | 42 +++++----- src/mame/drivers/firebeat.cpp | 37 ++++----- src/mame/drivers/fromanc2.cpp | 8 +- src/mame/drivers/h19.cpp | 4 +- src/mame/drivers/h89.cpp | 4 +- src/mame/drivers/ibmpcjr.cpp | 10 +-- src/mame/drivers/imds.cpp | 11 +-- src/mame/drivers/magtouch.cpp | 8 +- src/mame/drivers/meritm.cpp | 10 ++- src/mame/drivers/mtouchxl.cpp | 9 ++- src/mame/drivers/pc1512.cpp | 30 ++++---- src/mame/drivers/pcat_dyn.cpp | 11 +-- src/mame/drivers/pcat_nit.cpp | 19 +++-- src/mame/drivers/pcw16.cpp | 41 +++++----- src/mame/drivers/rex6000.cpp | 40 +++++----- src/mame/drivers/tv990.cpp | 22 +++--- src/mame/drivers/twinkle.cpp | 8 +- src/mame/drivers/zrt80.cpp | 5 +- 29 files changed, 346 insertions(+), 364 deletions(-) diff --git a/src/devices/bus/hp_dio/hp98644.cpp b/src/devices/bus/hp_dio/hp98644.cpp index 72129571c5e..5ac97e3826b 100644 --- a/src/devices/bus/hp_dio/hp98644.cpp +++ b/src/devices/bus/hp_dio/hp98644.cpp @@ -26,18 +26,17 @@ DEFINE_DEVICE_TYPE(HPDIO_98644, dio16_98644_device, "dio98644", "HP98644A Asynch #define INS8250_TAG "ins8250" MACHINE_CONFIG_START( dio16_98644_device::device_add_mconfig ) - MCFG_DEVICE_ADD(INS8250_TAG, INS8250, XTAL(2'457'600)) - - MCFG_INS8250_OUT_TX_CB(WRITELINE(RS232_TAG, rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE(RS232_TAG, rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE(RS232_TAG, rs232_port_device, write_rts)) + INS8250(config, m_uart, XTAL(2'457'600)); + 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)); MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(INS8250_TAG, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(INS8250_TAG, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(INS8250_TAG, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(INS8250_TAG, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(INS8250_TAG, ins8250_uart_device, cts_w)) + 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 //************************************************************************** diff --git a/src/devices/bus/isa/com.cpp b/src/devices/bus/isa/com.cpp index 9a26665f5c3..57393a52500 100644 --- a/src/devices/bus/isa/com.cpp +++ b/src/devices/bus/isa/com.cpp @@ -34,54 +34,54 @@ DEFINE_DEVICE_TYPE(ISA8_COM, isa8_com_device, "isa_com", "Communications Adapter //------------------------------------------------- MACHINE_CONFIG_START(isa8_com_device::device_add_mconfig) - MCFG_DEVICE_ADD( "uart_0", INS8250, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport0", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport0", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport0", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, isa8_com_device, pc_com_interrupt_1)) - MCFG_DEVICE_ADD( "uart_1", INS8250, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport1", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport1", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport1", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, isa8_com_device, pc_com_interrupt_2)) - /*MCFG_DEVICE_ADD( "uart_2", INS8250, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport2", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport2", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport2", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, isa8_com_device, pc_com_interrupt_1)) - MCFG_DEVICE_ADD( "uart_3", INS8250, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport3", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport3", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport3", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, isa8_com_device, pc_com_interrupt_2))*/ + 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)); + uart0.out_rts_callback().set("serport0", FUNC(rs232_port_device::write_rts)); + uart0.out_int_callback().set(FUNC(isa8_com_device::pc_com_interrupt_1)); + ins8250_device &uart1(INS8250(config, "uart_1", XTAL(1'843'200))); + uart1.out_tx_callback().set("serport1", FUNC(rs232_port_device::write_txd)); + uart1.out_dtr_callback().set("serport1", FUNC(rs232_port_device::write_dtr)); + uart1.out_rts_callback().set("serport1", FUNC(rs232_port_device::write_rts)); + uart1.out_int_callback().set(FUNC(isa8_com_device::pc_com_interrupt_2)); + /*ins8250_device &uart2(INS8250(config, "uart_2", XTAL(1'843'200))); + uart2.out_tx_callback().set("serport2", FUNC(rs232_port_device::write_txd)); + uart2.out_dtr_callback().set("serport2", FUNC(rs232_port_device::write_dtr)); + uart2.out_rts_callback().set("serport2", FUNC(rs232_port_device::write_rts)); + uart2.out_int_callback().set(FUNC(isa8_com_device::pc_com_interrupt_1)); + ins8250_device &uart3(INS8250(config, "uart_3", XTAL(1'843'200))); + uart3.out_tx_callback().set("serport3", FUNC(rs232_port_device::write_txd)); + 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, "microsoft_mouse" ) - MCFG_RS232_RXD_HANDLER(WRITELINE("uart_0", ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("uart_0", ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart_0", ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("uart_0", ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart_0", ins8250_uart_device, cts_w)) + 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("uart_1", ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("uart_1", ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart_1", ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("uart_1", ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart_1", ins8250_uart_device, cts_w)) + 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)) //MCFG_DEVICE_ADD( "serport2", RS232_PORT, isa_com, nullptr ) - //MCFG_RS232_RXD_HANDLER(WRITELINE("uart_1", ins8250_uart_device, rx_w)) - //MCFG_RS232_DCD_HANDLER(WRITELINE("uart_1", ins8250_uart_device, dcd_w)) - //MCFG_RS232_DSR_HANDLER(WRITELINE("uart_1", ins8250_uart_device, dsr_w)) - //MCFG_RS232_RI_HANDLER(WRITELINE("uart_1", ins8250_uart_device, ri_w)) - //MCFG_RS232_CTS_HANDLER(WRITELINE("uart_1", ins8250_uart_device, cts_w)) + //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)) //MCFG_DEVICE_ADD( "serport3", RS232_PORT, isa_com, nullptr ) - //MCFG_RS232_RXD_HANDLER(WRITELINE("uart_2", ins8250_uart_device, rx_w)) - //MCFG_RS232_DCD_HANDLER(WRITELINE("uart_2", ins8250_uart_device, dcd_w)) - //MCFG_RS232_DSR_HANDLER(WRITELINE("uart_2", ins8250_uart_device, dsr_w)) - //MCFG_RS232_RI_HANDLER(WRITELINE("uart_2", ins8250_uart_device, ri_w)) - //MCFG_RS232_CTS_HANDLER(WRITELINE("uart_2", ins8250_uart_device, cts_w)) + //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 //************************************************************************** @@ -136,39 +136,39 @@ DEFINE_DEVICE_TYPE(ISA8_COM_AT, isa8_com_at_device, "isa_com_at", "Communication //------------------------------------------------- MACHINE_CONFIG_START(isa8_com_at_device::device_add_mconfig) - MCFG_DEVICE_ADD( "uart_0", NS16450, XTAL(1'843'200) ) /* Verified: IBM P/N 6320947 Serial/Parallel card uses an NS16450N */ - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport0", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport0", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport0", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, isa8_com_device, pc_com_interrupt_1)) - MCFG_DEVICE_ADD( "uart_1", NS16450, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport1", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport1", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport1", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, isa8_com_device, pc_com_interrupt_2)) - /*MCFG_DEVICE_ADD( "uart_2", NS16450, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport2", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport2", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport2", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, isa8_com_device, pc_com_interrupt_1)) - MCFG_DEVICE_ADD( "uart_3", NS16450, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport3", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport3", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport3", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, isa8_com_device, pc_com_interrupt_2))*/ + 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)); + uart0.out_rts_callback().set("serport0", FUNC(rs232_port_device::write_rts)); + uart0.out_int_callback().set(FUNC(isa8_com_device::pc_com_interrupt_1)); + ns16450_device &uart1(NS16450(config, "uart_1", XTAL(1'843'200))); + uart1.out_tx_callback().set("serport1", FUNC(rs232_port_device::write_txd)); + uart1.out_dtr_callback().set("serport1", FUNC(rs232_port_device::write_dtr)); + uart1.out_rts_callback().set("serport1", FUNC(rs232_port_device::write_rts)); + uart1.out_int_callback().set(FUNC(isa8_com_device::pc_com_interrupt_2)); + /*ns16450_device &uart2(NS16450(config, "uart_2", XTAL(1'843'200))); + uart2.out_tx_callback().set("serport2", FUNC(rs232_port_device::write_txd)); + uart2.out_dtr_callback().set("serport2", FUNC(rs232_port_device::write_dtr)); + uart2.out_rts_callback().set("serport2", FUNC(rs232_port_device::write_rts)); + uart2.out_int_callback().set(FUNC(isa8_com_device::pc_com_interrupt_1)); + ns16450_device &uart3(NS16450(config, "uart_3", XTAL(1'843'200))); + uart3.out_tx_callback().set("serport3", FUNC(rs232_port_device::write_txd)); + 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, "microsoft_mouse" ) - MCFG_RS232_RXD_HANDLER(WRITELINE("uart_0", ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("uart_0", ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart_0", ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("uart_0", ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart_0", ins8250_uart_device, cts_w)) + 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("uart_1", ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("uart_1", ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart_1", ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("uart_1", ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart_1", ins8250_uart_device, cts_w)) + 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)) // MCFG_DEVICE_ADD( "serport2", RS232_PORT, isa_com, nullptr ) // MCFG_DEVICE_ADD( "serport3", RS232_PORT, isa_com, nullptr ) diff --git a/src/devices/bus/nubus/bootbug.cpp b/src/devices/bus/nubus/bootbug.cpp index 436e5a339e0..b466946ded0 100644 --- a/src/devices/bus/nubus/bootbug.cpp +++ b/src/devices/bus/nubus/bootbug.cpp @@ -47,17 +47,17 @@ DEFINE_DEVICE_TYPE(NUBUS_BOOTBUG, nubus_bootbug_device, "nb_btbug", "Brigent Boo //------------------------------------------------- MACHINE_CONFIG_START(nubus_bootbug_device::device_add_mconfig) - MCFG_DEVICE_ADD( "uart_0", NS16450, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport0", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport0", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport0", rs232_port_device, write_rts)) + 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)); MCFG_DEVICE_ADD( "serport0", RS232_PORT, isa_com, "terminal" ) - MCFG_RS232_RXD_HANDLER(WRITELINE("uart_0", ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("uart_0", ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("uart_0", ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("uart_0", ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart_0", ins8250_uart_device, cts_w)) + 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 //------------------------------------------------- diff --git a/src/devices/bus/pofo/hpc102.cpp b/src/devices/bus/pofo/hpc102.cpp index 0ad264a9051..f473b0c7d78 100644 --- a/src/devices/bus/pofo/hpc102.cpp +++ b/src/devices/bus/pofo/hpc102.cpp @@ -34,18 +34,18 @@ DEFINE_DEVICE_TYPE(POFO_HPC102, pofo_hpc102_device, "pofo_hpc102", "Atari Portfo //------------------------------------------------- MACHINE_CONFIG_START(pofo_hpc102_device::device_add_mconfig) - MCFG_DEVICE_ADD(M82C50A_TAG, INS8250, XTAL(1'843'200)) // should be INS8250A - MCFG_INS8250_OUT_TX_CB(WRITELINE(RS232_TAG, rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE(RS232_TAG, rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE(RS232_TAG, rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, device_portfolio_expansion_slot_interface, eint_w)) + 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(M82C50A_TAG, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(M82C50A_TAG, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(M82C50A_TAG, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(M82C50A_TAG, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(M82C50A_TAG, ins8250_uart_device, cts_w)) + 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 diff --git a/src/devices/bus/s100/wunderbus.cpp b/src/devices/bus/s100/wunderbus.cpp index 490929ec252..c05d56197c3 100644 --- a/src/devices/bus/s100/wunderbus.cpp +++ b/src/devices/bus/s100/wunderbus.cpp @@ -92,45 +92,45 @@ MACHINE_CONFIG_START(s100_wunderbus_device::device_add_mconfig) MCFG_PIC8259_OUT_INT_CB(WRITELINE(*this, s100_wunderbus_device, pic_int_w)) MCFG_PIC8259_IN_SP_CB(CONSTANT(1)) - MCFG_DEVICE_ADD(INS8250_1_TAG, INS8250, XTAL(18'432'000)/10) - MCFG_INS8250_OUT_TX_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(I8259A_TAG, pic8259_device, ir3_w)) - - MCFG_DEVICE_ADD(INS8250_2_TAG, INS8250, XTAL(18'432'000)/10) - MCFG_INS8250_OUT_TX_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(I8259A_TAG, pic8259_device, ir4_w)) - - MCFG_DEVICE_ADD(INS8250_3_TAG, INS8250, XTAL(18'432'000)/10) - MCFG_INS8250_OUT_TX_CB(WRITELINE(RS232_C_TAG, rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE(RS232_C_TAG, rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE(RS232_C_TAG, rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(I8259A_TAG, pic8259_device, ir5_w)) + INS8250(config, m_ace1, XTAL(18'432'000)/10); + m_ace1->out_tx_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd)); + m_ace1->out_dtr_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr)); + m_ace1->out_rts_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts)); + m_ace1->out_int_callback().set(I8259A_TAG, FUNC(pic8259_device::ir3_w)); + + INS8250(config, m_ace2, XTAL(18'432'000)/10); + m_ace2->out_tx_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd)); + m_ace2->out_dtr_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr)); + m_ace2->out_rts_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts)); + m_ace2->out_int_callback().set(I8259A_TAG, FUNC(pic8259_device::ir4_w)); + + INS8250(config, m_ace3, XTAL(18'432'000)/10); + m_ace3->out_tx_callback().set(RS232_C_TAG, FUNC(rs232_port_device::write_txd)); + m_ace3->out_dtr_callback().set(RS232_C_TAG, FUNC(rs232_port_device::write_dtr)); + 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(INS8250_1_TAG, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(INS8250_1_TAG, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(INS8250_1_TAG, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(INS8250_1_TAG, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(INS8250_1_TAG, ins8250_uart_device, cts_w)) + 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) MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(INS8250_2_TAG, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(INS8250_2_TAG, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(INS8250_2_TAG, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(INS8250_2_TAG, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(INS8250_2_TAG, ins8250_uart_device, cts_w)) + 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)) MCFG_DEVICE_ADD(RS232_C_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(INS8250_3_TAG, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(INS8250_3_TAG, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(INS8250_3_TAG, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(INS8250_3_TAG, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(INS8250_3_TAG, ins8250_uart_device, cts_w)) + 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)) MCFG_UPD1990A_ADD(UPD1990C_TAG, XTAL(32'768), NOOP, WRITELINE(DEVICE_SELF, s100_wunderbus_device, rtc_tp_w)) MACHINE_CONFIG_END diff --git a/src/devices/bus/svi3x8/slot/sv805.cpp b/src/devices/bus/svi3x8/slot/sv805.cpp index 4bdbd583c97..8ef0db95127 100644 --- a/src/devices/bus/svi3x8/slot/sv805.cpp +++ b/src/devices/bus/svi3x8/slot/sv805.cpp @@ -21,17 +21,17 @@ DEFINE_DEVICE_TYPE(SV805, sv805_device, "sv805", "SV-805 RS-232 Interface") //------------------------------------------------- MACHINE_CONFIG_START(sv805_device::device_add_mconfig) - MCFG_DEVICE_ADD("uart", INS8250, XTAL(3'072'000)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, sv805_device, uart_intr_w)) - MCFG_INS8250_OUT_TX_CB(WRITELINE("rs232", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("rs232", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("rs232", rs232_port_device, write_rts)) + 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)); MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr) - 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_CTS_HANDLER(WRITELINE("uart", ins8250_uart_device, cts_w)) + 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 diff --git a/src/devices/machine/fdc37c93x.cpp b/src/devices/machine/fdc37c93x.cpp index eaf83cd6d28..c61716f2c4e 100644 --- a/src/devices/machine/fdc37c93x.cpp +++ b/src/devices/machine/fdc37c93x.cpp @@ -250,17 +250,20 @@ MACHINE_CONFIG_START(fdc37c93x_device::device_add_mconfig) // parallel port MCFG_DEVICE_ADD("lpt", PC_LPT, 0) MCFG_PC_LPT_IRQ_HANDLER(WRITELINE(*this, fdc37c93x_device, irq_parallel_w)) + // serial ports - MCFG_DEVICE_ADD("uart_0", NS16450, XTAL(1'843'200)) // or NS16550 ? - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, fdc37c93x_device, irq_serial1_w)) - MCFG_INS8250_OUT_TX_CB(WRITELINE(*this, fdc37c93x_device, txd_serial1_w)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE(*this, fdc37c93x_device, dtr_serial1_w)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE(*this, fdc37c93x_device, rts_serial1_w)) - MCFG_DEVICE_ADD("uart_1", NS16450, XTAL(1'843'200)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, fdc37c93x_device, irq_serial2_w)) - MCFG_INS8250_OUT_TX_CB(WRITELINE(*this, fdc37c93x_device, txd_serial2_w)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE(*this, fdc37c93x_device, dtr_serial2_w)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE(*this, fdc37c93x_device, rts_serial2_w)) + NS16450(config, pc_serial1_comdev, XTAL(1'843'200)); // or NS16550 ? + pc_serial1_comdev->out_int_callback().set(FUNC(fdc37c93x_device::irq_serial1_w)); + pc_serial1_comdev->out_tx_callback().set(FUNC(fdc37c93x_device::txd_serial1_w)); + pc_serial1_comdev->out_dtr_callback().set(FUNC(fdc37c93x_device::dtr_serial1_w)); + pc_serial1_comdev->out_rts_callback().set(FUNC(fdc37c93x_device::rts_serial1_w)); + + NS16450(config, pc_serial2_comdev, XTAL(1'843'200)); + pc_serial2_comdev->out_int_callback().set(FUNC(fdc37c93x_device::irq_serial2_w)); + pc_serial2_comdev->out_tx_callback().set(FUNC(fdc37c93x_device::txd_serial2_w)); + pc_serial2_comdev->out_dtr_callback().set(FUNC(fdc37c93x_device::dtr_serial2_w)); + pc_serial2_comdev->out_rts_callback().set(FUNC(fdc37c93x_device::rts_serial2_w)); + // RTC MCFG_DS12885_ADD("rtc") MCFG_MC146818_IRQ_HANDLER(WRITELINE(*this, fdc37c93x_device, irq_rtc_w)) diff --git a/src/devices/machine/ins8250.h b/src/devices/machine/ins8250.h index af68f36887b..0db2e4598cf 100644 --- a/src/devices/machine/ins8250.h +++ b/src/devices/machine/ins8250.h @@ -158,27 +158,4 @@ DECLARE_DEVICE_TYPE(INS8250, ins8250_device) DECLARE_DEVICE_TYPE(NS16450, ns16450_device) DECLARE_DEVICE_TYPE(NS16550, ns16550_device) - -/*************************************************************************** - DEVICE CONFIGURATION MACROS -***************************************************************************/ - -#define MCFG_INS8250_OUT_TX_CB(_devcb) \ - downcast(*device).set_out_tx_callback(DEVCB_##_devcb); - -#define MCFG_INS8250_OUT_DTR_CB(_devcb) \ - downcast(*device).set_out_dtr_callback(DEVCB_##_devcb); - -#define MCFG_INS8250_OUT_RTS_CB(_devcb) \ - downcast(*device).set_out_rts_callback(DEVCB_##_devcb); - -#define MCFG_INS8250_OUT_INT_CB(_devcb) \ - downcast(*device).set_out_int_callback(DEVCB_##_devcb); - -#define MCFG_INS8250_OUT_OUT1_CB(_devcb) \ - downcast(*device).set_out_out1_callback(DEVCB_##_devcb); - -#define MCFG_INS8250_OUT_OUT2_CB(_devcb) \ - downcast(*device).set_out_out2_callback(DEVCB_##_devcb); - #endif // MAME_MACHINE_INS8250_H diff --git a/src/devices/machine/vrc5074.cpp b/src/devices/machine/vrc5074.cpp index dd275031b76..bbd8aa14158 100644 --- a/src/devices/machine/vrc5074.cpp +++ b/src/devices/machine/vrc5074.cpp @@ -144,16 +144,16 @@ void vrc5074_device::target1_map(address_map &map) } MACHINE_CONFIG_START(vrc5074_device::device_add_mconfig) - MCFG_DEVICE_ADD("uart", NS16550, DERIVED_CLOCK(1, 12)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, vrc5074_device, uart_irq_callback)) - MCFG_INS8250_OUT_TX_CB(WRITELINE("ttys00", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("ttys00", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("ttys00", rs232_port_device, write_rts)) + 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)); 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)) + 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 vrc5074_device::vrc5074_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : diff --git a/src/mame/drivers/aristmk5.cpp b/src/mame/drivers/aristmk5.cpp index c8d7ebe5ae1..7f7e0ab6678 100644 --- a/src/mame/drivers/aristmk5.cpp +++ b/src/mame/drivers/aristmk5.cpp @@ -2060,28 +2060,28 @@ MACHINE_CONFIG_START(aristmk5_state::aristmk5) NVRAM(config, "nvram", nvram_device::DEFAULT_NONE); // TL16C452FN U71 - MCFG_DEVICE_ADD("uart_0a", NS16450, MASTER_CLOCK / 9) - MCFG_INS8250_OUT_INT_CB(WRITELINE("uart_irq", input_merger_device, in_w<0>)) - MCFG_DEVICE_ADD("uart_0b", NS16450, MASTER_CLOCK / 9) - MCFG_INS8250_OUT_INT_CB(WRITELINE("uart_irq", input_merger_device, in_w<1>)) + ns16450_device &uart0a(NS16450(config, "uart_0a", MASTER_CLOCK / 9)); + uart0a.out_int_callback().set("uart_irq", FUNC(input_merger_device::in_w<0>)); + ns16450_device &uart0b(NS16450(config, "uart_0b", MASTER_CLOCK / 9)); + uart0b.out_int_callback().set("uart_irq", FUNC(input_merger_device::in_w<1>)); // TL16C452FN U72 - MCFG_DEVICE_ADD("uart_1a", NS16450, MASTER_CLOCK / 9) - MCFG_INS8250_OUT_INT_CB(WRITELINE("uart_irq", input_merger_device, in_w<2>)) - MCFG_DEVICE_ADD("uart_1b", NS16450, MASTER_CLOCK / 9) - MCFG_INS8250_OUT_INT_CB(WRITELINE("uart_irq", input_merger_device, in_w<3>)) + ns16450_device &uart1a(NS16450(config, "uart_1a", MASTER_CLOCK / 9)); + uart1a.out_int_callback().set("uart_irq", FUNC(input_merger_device::in_w<2>)); + ns16450_device &uart1b(NS16450(config, "uart_1b", MASTER_CLOCK / 9)); + uart1b.out_int_callback().set("uart_irq", FUNC(input_merger_device::in_w<3>)); // COMM port 4 - 5 - MCFG_DEVICE_ADD("uart_2a", NS16450, MASTER_CLOCK / 9) -// MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, aristmk5_state, uart_irq_callback)) - MCFG_DEVICE_ADD("uart_2b", NS16450, MASTER_CLOCK / 9) -// MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, aristmk5_state, uart_irq_callback)) + NS16450(config, "uart_2a", MASTER_CLOCK / 9); +// MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, FUNC(input_merger_device::in_w<4>)); + NS16450(config, "uart_2b", MASTER_CLOCK / 9); +// MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, FUNC(input_merger_device::in_w<5>)); // COMM port 6 - 7 - MCFG_DEVICE_ADD("uart_3a", NS16450, MASTER_CLOCK / 9) -// MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, aristmk5_state, uart_irq_callback)) - MCFG_DEVICE_ADD("uart_3b", NS16450, MASTER_CLOCK / 9) -// MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, aristmk5_state, uart_irq_callback)) + NS16450(config, "uart_3a", MASTER_CLOCK / 9); +// MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, FUNC(input_merger_device::in_w<6>)); + NS16450(config, "uart_3b", MASTER_CLOCK / 9); +// MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, FUNC(input_merger_device::in_w<7>)); MCFG_INPUT_MERGER_ANY_HIGH("uart_irq") MCFG_INPUT_MERGER_OUTPUT_HANDLER(WRITELINE(*this, aristmk5_state, uart_irq_callback)) @@ -2113,8 +2113,8 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(aristmk5_state::aristmk5_touch) aristmk5(config); - MCFG_DEVICE_MODIFY("uart_0a") - MCFG_INS8250_OUT_TX_CB(WRITELINE("microtouch", microtouch_device, rx)) + subdevice("uart_0a") + ->out_tx_callback().set("microtouch", FUNC(microtouch_device::rx)); MCFG_MICROTOUCH_ADD("microtouch", 2400, WRITELINE("uart_0a", ins8250_uart_device, rx_w)) MACHINE_CONFIG_END @@ -2127,8 +2127,8 @@ MACHINE_CONFIG_END MACHINE_CONFIG_START(aristmk5_state::aristmk5_usa_touch) aristmk5_usa(config); - MCFG_DEVICE_MODIFY("uart_0a") - MCFG_INS8250_OUT_TX_CB(WRITELINE("microtouch", microtouch_device, rx)) + subdevice("uart_0a") + ->out_tx_callback().set("microtouch", FUNC(microtouch_device::rx)); MCFG_MICROTOUCH_ADD("microtouch", 2400, WRITELINE("uart_0a", ins8250_uart_device, rx_w)) MACHINE_CONFIG_END diff --git a/src/mame/drivers/avigo.cpp b/src/mame/drivers/avigo.cpp index b1aa1fbc27a..6bd2117758f 100644 --- a/src/mame/drivers/avigo.cpp +++ b/src/mame/drivers/avigo.cpp @@ -756,11 +756,11 @@ MACHINE_CONFIG_START(avigo_state::avigo) MCFG_DEVICE_IO_MAP(avigo_io) MCFG_QUANTUM_TIME(attotime::from_hz(60)) - MCFG_DEVICE_ADD( "ns16550", NS16550, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, avigo_state, com_interrupt)) + 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_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)) diff --git a/src/mame/drivers/cdc721.cpp b/src/mame/drivers/cdc721.cpp index f7c3f1eb563..0a79492e570 100644 --- a/src/mame/drivers/cdc721.cpp +++ b/src/mame/drivers/cdc721.cpp @@ -348,11 +348,11 @@ MACHINE_CONFIG_START(cdc721_state::cdc721) ledlatch.bit_handler<6>().set_output("prog3").invert(); ledlatch.bit_handler<7>().set_output("dsr").invert(); - MCFG_DEVICE_ADD("comuart", INS8250, 1.8432_MHz_XTAL) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, cdc721_state, int_w<0>)) - MCFG_INS8250_OUT_TX_CB(WRITELINE("comm", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("comm", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("comm", rs232_port_device, write_rts)) + ins8250_device &comuart(INS8250(config, "comuart", 1.8432_MHz_XTAL)); + comuart.out_int_callback().set(FUNC(cdc721_state::int_w<0>)); + comuart.out_tx_callback().set("comm", FUNC(rs232_port_device::write_txd)); + 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)) @@ -361,18 +361,18 @@ MACHINE_CONFIG_START(cdc721_state::cdc721) MCFG_RS232_CTS_HANDLER(WRITELINE("comuart", ins8250_device, cts_w)) MCFG_RS232_RI_HANDLER(WRITELINE("comuart", ins8250_device, ri_w)) - MCFG_DEVICE_ADD("kbduart", INS8250, 1.8432_MHz_XTAL) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, cdc721_state, int_w<5>)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE(*this, cdc721_state, foreign_char_bank_w<2>)) - //MCFG_INS8250_OUT_RTS_CB(WRITELINE(*this, cdc721_state, alarm_high_low_w)) - MCFG_INS8250_OUT_OUT1_CB(WRITELINE(*this, cdc721_state, foreign_char_bank_w<1>)) - MCFG_INS8250_OUT_OUT2_CB(WRITELINE(*this, cdc721_state, foreign_char_bank_w<0>)) + ins8250_device &kbduart(INS8250(config, "kbduart", 1.8432_MHz_XTAL)); + kbduart.out_int_callback().set(FUNC(cdc721_state::int_w<5>)); + kbduart.out_dtr_callback().set(FUNC(cdc721_state::foreign_char_bank_w<2>)); + //kbduart.out_rts_callback().set(FUNC(cdc721_state::alarm_high_low_w)); + kbduart.out_out1_callback().set(FUNC(cdc721_state::foreign_char_bank_w<1>)); + kbduart.out_out2_callback().set(FUNC(cdc721_state::foreign_char_bank_w<0>)); - MCFG_DEVICE_ADD("pauart", INS8250, 1.8432_MHz_XTAL) - MCFG_INS8250_OUT_INT_CB(WRITELINE("int2", input_merger_device, in_w<1>)) - MCFG_INS8250_OUT_TX_CB(WRITELINE("cha", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("cha", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("cha", rs232_port_device, write_rts)) + ins8250_device &pauart(INS8250(config, "pauart", 1.8432_MHz_XTAL)); + pauart.out_int_callback().set("int2", FUNC(input_merger_device::in_w<1>)); + pauart.out_tx_callback().set("cha", FUNC(rs232_port_device::write_txd)); + 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)) @@ -381,11 +381,11 @@ MACHINE_CONFIG_START(cdc721_state::cdc721) MCFG_RS232_CTS_HANDLER(WRITELINE("pauart", ins8250_device, cts_w)) MCFG_RS232_RI_HANDLER(WRITELINE("pauart", ins8250_device, ri_w)) - MCFG_DEVICE_ADD("pbuart", INS8250, 1.8432_MHz_XTAL) - MCFG_INS8250_OUT_INT_CB(WRITELINE("int2", input_merger_device, in_w<0>)) - MCFG_INS8250_OUT_TX_CB(WRITELINE("chb", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("chb", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("chb", rs232_port_device, write_rts)) + ins8250_device &pbuart(INS8250(config, "pbuart", 1.8432_MHz_XTAL)); + pbuart.out_int_callback().set("int2", FUNC(input_merger_device::in_w<0>)); + pbuart.out_tx_callback().set("chb", FUNC(rs232_port_device::write_txd)); + 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)) diff --git a/src/mame/drivers/firebeat.cpp b/src/mame/drivers/firebeat.cpp index 40cdc1c55ff..407433be345 100644 --- a/src/mame/drivers/firebeat.cpp +++ b/src/mame/drivers/firebeat.cpp @@ -1223,14 +1223,14 @@ MACHINE_CONFIG_START(firebeat_state::firebeat) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_DEVICE_ADD("duart_com", PC16552D, 0) // pgmd to 9600baud - MCFG_DEVICE_ADD("duart_com:chan0", NS16550, XTAL(19'660'800)) - MCFG_DEVICE_ADD("duart_com:chan1", NS16550, XTAL(19'660'800)) - MCFG_DEVICE_ADD("duart_midi", PC16552D, 0) // in all memory maps, pgmd to 31250baud - MCFG_DEVICE_ADD("duart_midi:chan0", NS16550, XTAL(24'000'000)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, firebeat_state, midi_uart_ch0_irq_callback)) - MCFG_DEVICE_ADD("duart_midi:chan1", NS16550, XTAL(24'000'000)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, firebeat_state, midi_uart_ch1_irq_callback)) + PC16552D(config, "duart_com", 0); // pgmd to 9600baud + NS16550(config, "duart_com:chan0", XTAL(19'660'800)); + NS16550(config, "duart_com:chan1", XTAL(19'660'800)); + PC16552D(config, "duart_midi", 0); // in all memory maps, pgmd to 31250baud + ns16550_device &midi_chan0(NS16550(config, "duart_midi:chan0", XTAL(24'000'000))); + midi_chan0.out_int_callback().set(FUNC(firebeat_state::midi_uart_ch0_irq_callback)); + ns16550_device &midi_chan1(NS16550(config, "duart_midi:chan1", XTAL(24'000'000))); + midi_chan1.out_int_callback().set(FUNC(firebeat_state::midi_uart_ch1_irq_callback)); MACHINE_CONFIG_END MACHINE_CONFIG_START(firebeat_state::firebeat2) @@ -1292,16 +1292,17 @@ MACHINE_CONFIG_START(firebeat_state::firebeat2) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_DEVICE_ADD("duart_com", PC16552D, 0) - MCFG_DEVICE_ADD("duart_com:chan0", NS16550, XTAL(19'660'800)) - MCFG_DEVICE_ADD("duart_com:chan1", NS16550, XTAL(19'660'800)) - MCFG_DEVICE_ADD("duart_midi", PC16552D, 0) - MCFG_DEVICE_ADD("duart_midi:chan0", NS16550, XTAL(24'000'000)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, firebeat_state, midi_uart_ch0_irq_callback)) - MCFG_DEVICE_ADD("duart_midi:chan1", NS16550, XTAL(24'000'000)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, firebeat_state, midi_uart_ch1_irq_callback)) - MCFG_MIDI_KBD_ADD("kbd0", WRITELINE("duart_midi:chan0", ins8250_uart_device, rx_w), 31250) - MCFG_MIDI_KBD_ADD("kbd1", WRITELINE("duart_midi:chan1", ins8250_uart_device, rx_w), 31250) + PC16552D(config, "duart_com", 0); + NS16550(config, "duart_com:chan0", XTAL(19'660'800)); + NS16550(config, "duart_com:chan1", XTAL(19'660'800)); + PC16552D(config, "duart_midi", 0); + ns16550_device &midi_chan0(NS16550(config, "duart_midi:chan0", XTAL(24'000'000))); + midi_chan0.out_int_callback().set(FUNC(firebeat_state::midi_uart_ch0_irq_callback)); + ns16550_device &midi_chan1(NS16550(config, "duart_midi:chan1", XTAL(24'000'000))); + midi_chan1.out_int_callback().set(FUNC(firebeat_state::midi_uart_ch1_irq_callback)); + + MCFG_MIDI_KBD_ADD("kbd0", WRITELINE(midi_chan0, ins8250_uart_device, rx_w), 31250) + MCFG_MIDI_KBD_ADD("kbd1", WRITELINE(midi_chan1, ins8250_uart_device, rx_w), 31250) MACHINE_CONFIG_END MACHINE_CONFIG_START(firebeat_state::firebeat_spu) diff --git a/src/mame/drivers/fromanc2.cpp b/src/mame/drivers/fromanc2.cpp index 8cc1008c5ee..0bc5fdb4fa4 100644 --- a/src/mame/drivers/fromanc2.cpp +++ b/src/mame/drivers/fromanc2.cpp @@ -636,10 +636,10 @@ MACHINE_CONFIG_START(fromanc2_state::fromanc4) EEPROM_93C46_16BIT(config, "eeprom"); - MCFG_DEVICE_ADD("uart", NS16550, 2000000) // actual type is TL16C550CFN; clock unknown - MCFG_INS8250_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_2)) - //MCFG_INS8250_OUT_TX_CB(WRITELINE("link", rs232_port_device, write_txd)) - //MCFG_INS8250_OUT_RTS_CB(WRITELINE("link", rs232_port_device, write_rts)) + NS16550(config, m_uart, 2000000); // actual type is TL16C550CFN; clock unknown + m_uart->out_int_callback().set_inputline("maincpu", M68K_IRQ_2); + //m_uart->out_tx_callback().set("link", FUNC(rs232_port_device::write_txd)); + //m_uart->out_rts_callback().set("link", FUNC(rs232_port_device::write_rts)); /* video hardware */ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "lpalette", gfx_fromancr) diff --git a/src/mame/drivers/h19.cpp b/src/mame/drivers/h19.cpp index 5a6b088ecca..5632f53ca72 100644 --- a/src/mame/drivers/h19.cpp +++ b/src/mame/drivers/h19.cpp @@ -544,8 +544,8 @@ MACHINE_CONFIG_START(h19_state::h19) MCFG_MC6845_UPDATE_ROW_CB(h19_state, crtc_update_row) MCFG_MC6845_OUT_VSYNC_CB(INPUTLINE("maincpu", INPUT_LINE_NMI)) // frame pulse - MCFG_DEVICE_ADD("ins8250", INS8250, INS8250_CLOCK) - MCFG_INS8250_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + ins8250_device &uart(INS8250(config, "ins8250", INS8250_CLOCK)); + uart.out_int_callback().set_inputline("maincpu", INPUT_LINE_IRQ0); MCFG_DEVICE_ADD(KBDC_TAG, MM5740, MM5740_CLOCK) MCFG_MM5740_MATRIX_X1(IOPORT("X1")) diff --git a/src/mame/drivers/h89.cpp b/src/mame/drivers/h89.cpp index 79f9fd64dd7..6dd41e6938c 100644 --- a/src/mame/drivers/h89.cpp +++ b/src/mame/drivers/h89.cpp @@ -191,8 +191,8 @@ MACHINE_CONFIG_START(h89_state::h89) MCFG_DEVICE_PROGRAM_MAP(h89_mem) MCFG_DEVICE_IO_MAP(h89_io) - MCFG_DEVICE_ADD( "ins8250", INS8250, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE(RS232_TAG, rs232_port_device, write_txd)) + ins8250_device &uart(INS8250(config, "ins8250", XTAL(1'843'200))); + uart.out_tx_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd)); MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, "terminal") MCFG_RS232_RXD_HANDLER(WRITELINE("ins8250", ins8250_uart_device, rx_w)) diff --git a/src/mame/drivers/ibmpcjr.cpp b/src/mame/drivers/ibmpcjr.cpp index de23ec2cd99..07774a1eef6 100644 --- a/src/mame/drivers/ibmpcjr.cpp +++ b/src/mame/drivers/ibmpcjr.cpp @@ -617,11 +617,11 @@ MACHINE_CONFIG_START(pcjr_state::ibmpcjr) ppi.out_pb_callback().set(FUNC(pcjr_state::pcjr_ppi_portb_w)); ppi.in_pc_callback().set(FUNC(pcjr_state::pcjr_ppi_portc_r)); - MCFG_DEVICE_ADD( "ins8250", INS8250, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE("pic8259", pic8259_device, ir3_w)) + ins8250_device &uart(INS8250(config, "ins8250", XTAL(1'843'200))); + uart.out_tx_callback().set("serport", FUNC(rs232_port_device::write_txd)); + uart.out_dtr_callback().set("serport", FUNC(rs232_port_device::write_dtr)); + uart.out_rts_callback().set("serport", FUNC(rs232_port_device::write_rts)); + uart.out_int_callback().set("pic8259", FUNC(pic8259_device::ir3_w)); MCFG_DEVICE_ADD( "serport", RS232_PORT, pcjr_com, nullptr ) MCFG_RS232_RXD_HANDLER(WRITELINE("ins8250", ins8250_uart_device, rx_w)) diff --git a/src/mame/drivers/imds.cpp b/src/mame/drivers/imds.cpp index 2471878bcd9..6d1ea0c0416 100644 --- a/src/mame/drivers/imds.cpp +++ b/src/mame/drivers/imds.cpp @@ -85,22 +85,13 @@ void imds_state::machine_reset() m_term_data = 0; } -//static const ins8250_interface imds_com_interface = -//{ -// 1843200, -// DEVCB_NOOP, -// nullptr, -// nullptr, -// nullptr -//}; - MACHINE_CONFIG_START(imds_state::imds) /* basic machine hardware */ MCFG_DEVICE_ADD("maincpu", I8080, 4_MHz_XTAL) // no idea of clock. MCFG_DEVICE_PROGRAM_MAP(imds_mem) MCFG_DEVICE_IO_MAP(imds_io) -// MCFG_INS8250_ADD( "ins8250", imds_com_interface ) +// INS8250(config, "ins8250", 1843200); /* video hardware */ MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) diff --git a/src/mame/drivers/magtouch.cpp b/src/mame/drivers/magtouch.cpp index 80ccbc65040..8a3abf4b812 100644 --- a/src/mame/drivers/magtouch.cpp +++ b/src/mame/drivers/magtouch.cpp @@ -205,9 +205,11 @@ MACHINE_CONFIG_START(magtouch_state::magtouch) MCFG_DEVICE_REPLACE("vga", TVGA9000_VGA, 0) pcat_common(config); - MCFG_DEVICE_ADD( "ns16450_0", NS16450, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("microtouch", microtouch_device, rx)) - MCFG_INS8250_OUT_INT_CB(WRITELINE("pic8259_1", pic8259_device, ir4_w)) + + ns16450_device &uart(NS16450(config, "ns16450_0", XTAL(1'843'200))); + uart.out_tx_callback().set("microtouch", FUNC(microtouch_device::rx)); + uart.out_int_callback().set("pic8259_1", FUNC(pic8259_device::ir4_w)); + MCFG_MICROTOUCH_ADD( "microtouch", 9600, WRITELINE("ns16450_0", ins8250_uart_device, rx_w) ) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); diff --git a/src/mame/drivers/meritm.cpp b/src/mame/drivers/meritm.cpp index d483aa7dbc6..e0698e81570 100644 --- a/src/mame/drivers/meritm.cpp +++ b/src/mame/drivers/meritm.cpp @@ -1165,8 +1165,9 @@ MACHINE_CONFIG_START(meritm_state::crt250_crt252_crt258) MCFG_MACHINE_START_OVERRIDE(meritm_state, crt250_crt252_crt258) - MCFG_DEVICE_ADD(m_uart, NS16550, UART_CLK) - MCFG_INS8250_OUT_TX_CB(WRITELINE(m_microtouch, microtouch_device, rx)) + NS16550(config, m_uart, UART_CLK); + m_uart->out_tx_callback().set(m_microtouch, FUNC(microtouch_device::rx)); + MCFG_MICROTOUCH_ADD(m_microtouch, 9600, WRITELINE(m_uart, ins8250_uart_device, rx_w)) MCFG_MICROTOUCH_TOUCH_CB(meritm_state, touch_coord_transform) MACHINE_CONFIG_END @@ -1183,8 +1184,9 @@ MACHINE_CONFIG_START(meritm_state::crt260) MCFG_WATCHDOG_TIME_INIT(attotime::from_msec(1200)) // DS1232, TD connected to VCC MCFG_MACHINE_START_OVERRIDE(meritm_state, crt260) - MCFG_DEVICE_ADD(m_uart, NS16550, UART_CLK) - MCFG_INS8250_OUT_TX_CB(WRITELINE(m_microtouch, microtouch_device, rx)) + NS16550(config, m_uart, UART_CLK); + m_uart->out_tx_callback().set(m_microtouch, FUNC(microtouch_device::rx)); + MCFG_MICROTOUCH_ADD(m_microtouch, 9600, WRITELINE(m_uart, ins8250_uart_device, rx_w)) MCFG_MICROTOUCH_TOUCH_CB(meritm_state, touch_coord_transform) MACHINE_CONFIG_END diff --git a/src/mame/drivers/mtouchxl.cpp b/src/mame/drivers/mtouchxl.cpp index 97d8acc2d3b..ea3a61469b8 100644 --- a/src/mame/drivers/mtouchxl.cpp +++ b/src/mame/drivers/mtouchxl.cpp @@ -226,10 +226,11 @@ MACHINE_CONFIG_START(mtxl_state::at486) MCFG_SLOT_OPTION_MACHINE_CONFIG("ide", cdrom) MCFG_DEVICE_ADD("isa1", ISA16_SLOT, 0, "mb:isabus", pc_isa16_cards, "svga_dm", true) // original is a gd-5440 - MCFG_DEVICE_ADD("ns16550", NS16550, XTAL(1'843'200)) - MCFG_INS8250_OUT_TX_CB(WRITELINE("microtouch", microtouch_device, rx)) - MCFG_INS8250_OUT_INT_CB(WRITELINE("mb:pic8259_master", pic8259_device, ir4_w)) - MCFG_MICROTOUCH_ADD("microtouch", 9600, WRITELINE("ns16550", ins8250_uart_device, rx_w)) + ns16550_device &uart(NS16550(config, "ns16550", XTAL(1'843'200))); + uart.out_tx_callback().set("microtouch", FUNC(microtouch_device::rx)); + uart.out_int_callback().set("mb:pic8259_master", FUNC(pic8259_device::ir4_w)); + + MCFG_MICROTOUCH_ADD("microtouch", 9600, WRITELINE(uart, ins8250_uart_device, rx_w)) MCFG_DEVICE_ADD("cs4231", AD1848, 0) MCFG_AD1848_IRQ_CALLBACK(WRITELINE("mb:pic8259_master", pic8259_device, ir5_w)) diff --git a/src/mame/drivers/pc1512.cpp b/src/mame/drivers/pc1512.cpp index 75113b1d322..c69a4d27f14 100644 --- a/src/mame/drivers/pc1512.cpp +++ b/src/mame/drivers/pc1512.cpp @@ -1216,11 +1216,11 @@ MACHINE_CONFIG_START(pc1512_state::pc1512) MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":0", pc1512_floppies, "525dd", pc1512_base_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":1", pc1512_floppies, nullptr, pc1512_base_state::floppy_formats) - MCFG_DEVICE_ADD(INS8250_TAG, INS8250, 1.8432_MHz_XTAL) - MCFG_INS8250_OUT_TX_CB(WRITELINE(RS232_TAG, rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE(RS232_TAG, rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE(RS232_TAG, rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(I8259A2_TAG, pic8259_device, ir4_w)) + INS8250(config, m_uart, 1.8432_MHz_XTAL); + 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(I8259A2_TAG, FUNC(pic8259_device::ir4_w)); MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, pc1512_state, write_centronics_ack)) @@ -1231,11 +1231,11 @@ MACHINE_CONFIG_START(pc1512_state::pc1512) 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(INS8250_TAG, ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(INS8250_TAG, ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE(INS8250_TAG, ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE(INS8250_TAG, ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(INS8250_TAG, ins8250_uart_device, cts_w)) + 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)) // ISA8 bus MCFG_DEVICE_ADD(ISA_BUS_TAG, ISA8, 0) @@ -1347,11 +1347,11 @@ MACHINE_CONFIG_START(pc1640_state::pc1640) MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":0", pc1512_floppies, "525dd", pc1512_base_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":1", pc1512_floppies, nullptr, pc1512_base_state::floppy_formats) - MCFG_DEVICE_ADD(INS8250_TAG, INS8250, 1.8432_MHz_XTAL) - MCFG_INS8250_OUT_TX_CB(WRITELINE(RS232_TAG, rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE(RS232_TAG, rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE(RS232_TAG, rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(I8259A2_TAG, pic8259_device, ir4_w)) + INS8250(config, m_uart, 1.8432_MHz_XTAL); + 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(I8259A2_TAG, FUNC(pic8259_device::ir4_w)); MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, pc1512_base_state, write_centronics_ack)) diff --git a/src/mame/drivers/pcat_dyn.cpp b/src/mame/drivers/pcat_dyn.cpp index 2a91174f4fc..86a80953f4f 100644 --- a/src/mame/drivers/pcat_dyn.cpp +++ b/src/mame/drivers/pcat_dyn.cpp @@ -192,11 +192,12 @@ MACHINE_CONFIG_START(pcat_dyn_state::pcat_dyn) NVRAM(config, "nvram").set_custom_handler(FUNC(pcat_dyn_state::nvram_init)); - MCFG_DEVICE_ADD( "ns16550", NS16550, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE("pic8259_1", pic8259_device, ir4_w)) + ns16550_device &uart(NS16550(config, "ns16550", XTAL(1'843'200))); + uart.out_tx_callback().set("serport", FUNC(rs232_port_device::write_txd)); + uart.out_dtr_callback().set("serport", FUNC(rs232_port_device::write_dtr)); + uart.out_rts_callback().set("serport", FUNC(rs232_port_device::write_rts)); + uart.out_int_callback().set("pic8259_1", FUNC(pic8259_device::ir4_w)); + MCFG_DEVICE_ADD( "serport", RS232_PORT, pcat_dyn_com, "msmouse" ) MCFG_SLOT_FIXED(true) MCFG_RS232_RXD_HANDLER(WRITELINE("ns16550", ins8250_uart_device, rx_w)) diff --git a/src/mame/drivers/pcat_nit.cpp b/src/mame/drivers/pcat_nit.cpp index 25518a4e6b7..5966c54379e 100644 --- a/src/mame/drivers/pcat_nit.cpp +++ b/src/mame/drivers/pcat_nit.cpp @@ -242,10 +242,12 @@ MACHINE_CONFIG_START(pcat_nit_state::pcat_nit) pcvideo_vga(config); pcat_common(config); - MCFG_DEVICE_ADD( "ns16450_0", NS16450, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("microtouch", microtouch_device, rx)) - MCFG_INS8250_OUT_INT_CB(WRITELINE("pic8259_1", pic8259_device, ir4_w)) - MCFG_MICROTOUCH_ADD( "microtouch", 9600, WRITELINE("ns16450_0", ins8250_uart_device, rx_w) ) // rate? + + ns16450_device &uart(NS16450(config, "ns16450_0", XTAL(1'843'200))); + uart.out_tx_callback().set("microtouch", FUNC(microtouch_device::rx)); + uart.out_int_callback().set("pic8259_1", FUNC(pic8259_device::ir4_w)); + + MCFG_MICROTOUCH_ADD( "microtouch", 9600, WRITELINE(uart, ins8250_uart_device, rx_w) ) // rate? NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MACHINE_CONFIG_END @@ -261,10 +263,11 @@ MACHINE_CONFIG_START(pcat_nit_state::bonanza) pcvideo_cirrus_gd5428(config); pcat_common(config); - MCFG_DEVICE_ADD( "ns16450_0", NS16450, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("microtouch", microtouch_device, rx)) - MCFG_INS8250_OUT_INT_CB(WRITELINE("pic8259_1", pic8259_device, ir4_w)) - MCFG_MICROTOUCH_ADD( "microtouch", 9600, WRITELINE("ns16450_0", ins8250_uart_device, rx_w) ) // rate? + ns16450_device &uart(NS16450(config, "ns16450_0", XTAL(1'843'200))); + uart.out_tx_callback().set("microtouch", FUNC(microtouch_device::rx)); + uart.out_int_callback().set("pic8259_1", FUNC(pic8259_device::ir4_w)); + + MCFG_MICROTOUCH_ADD( "microtouch", 9600, WRITELINE(uart, ins8250_uart_device, rx_w) ) // rate? NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); MACHINE_CONFIG_END diff --git a/src/mame/drivers/pcw16.cpp b/src/mame/drivers/pcw16.cpp index 65f5d006122..b2d963db4e0 100644 --- a/src/mame/drivers/pcw16.cpp +++ b/src/mame/drivers/pcw16.cpp @@ -1017,29 +1017,30 @@ MACHINE_CONFIG_START(pcw16_state::pcw16) MCFG_DEVICE_IO_MAP(pcw16_io) MCFG_QUANTUM_TIME(attotime::from_hz(60)) + ns16550_device &uart1(NS16550(config, "ns16550_1", XTAL(1'843'200))); /* TODO: Verify uart model */ + uart1.out_tx_callback().set("serport1", FUNC(rs232_port_device::write_txd)); + uart1.out_dtr_callback().set("serport1", FUNC(rs232_port_device::write_dtr)); + uart1.out_rts_callback().set("serport1", FUNC(rs232_port_device::write_rts)); + uart1.out_int_callback().set(FUNC(pcw16_state::pcw16_com_interrupt_1)); - MCFG_DEVICE_ADD( "ns16550_1", NS16550, XTAL(1'843'200) ) /* TODO: Verify uart model */ - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport1", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport1", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport1", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, pcw16_state, pcw16_com_interrupt_1)) MCFG_DEVICE_ADD( "serport1", RS232_PORT, pcw16_com, "msystems_mouse" ) - MCFG_RS232_RXD_HANDLER(WRITELINE("ns16550_1", ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("ns16550_1", ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("ns16550_1", ins8250_uart_device, dsr_w)) - MCFG_RS232_RI_HANDLER(WRITELINE("ns16550_1", ins8250_uart_device, ri_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("ns16550_1", ins8250_uart_device, cts_w)) - - MCFG_DEVICE_ADD( "ns16550_2", NS16550, XTAL(1'843'200) ) /* TODO: Verify uart model */ - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport2", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport2", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport2", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, pcw16_state, pcw16_com_interrupt_2)) + 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)) + + NS16550(config, m_uart2, XTAL(1'843'200)); /* TODO: Verify uart model */ + m_uart2->out_tx_callback().set("serport2", FUNC(rs232_port_device::write_txd)); + m_uart2->out_dtr_callback().set("serport2", FUNC(rs232_port_device::write_dtr)); + m_uart2->out_rts_callback().set("serport2", FUNC(rs232_port_device::write_rts)); + m_uart2->out_int_callback().set(FUNC(pcw16_state::pcw16_com_interrupt_2)); + MCFG_DEVICE_ADD( "serport2", RS232_PORT, pcw16_com, nullptr ) - MCFG_RS232_RXD_HANDLER(WRITELINE("ns16550_2", ins8250_uart_device, rx_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("ns16550_2", ins8250_uart_device, dcd_w)) - MCFG_RS232_DSR_HANDLER(WRITELINE("ns16550_2", ins8250_uart_device, dsr_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("ns16550_2", ins8250_uart_device, cts_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart2, ins8250_uart_device, rx_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart2, ins8250_uart_device, dcd_w)) + MCFG_RS232_DSR_HANDLER(WRITELINE(m_uart2, ins8250_uart_device, dsr_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart2, ins8250_uart_device, cts_w)) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/rex6000.cpp b/src/mame/drivers/rex6000.cpp index e3b40385c44..94686d8a17c 100644 --- a/src/mame/drivers/rex6000.cpp +++ b/src/mame/drivers/rex6000.cpp @@ -921,18 +921,18 @@ MACHINE_CONFIG_START(rex6000_state::rex6000) ADDRESS_MAP_BANK(config, "bank0").set_map(&rex6000_state::rex6000_banked_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x2000); ADDRESS_MAP_BANK(config, "bank1").set_map(&rex6000_state::rex6000_banked_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x2000); - MCFG_DEVICE_ADD( "ns16550", NS16550, XTAL(1'843'200) ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, rex6000_state, serial_irq)) + 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_int_callback().set(FUNC(rex6000_state::serial_irq)); 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)) + 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)) /* quickload */ MCFG_QUICKLOAD_ADD("quickload", rex6000_state, rex6000, "rex,ds2", 0) @@ -971,18 +971,18 @@ MACHINE_CONFIG_START(oz750_state::oz750) MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer1", rex6000_state, irq_timer1, attotime::from_hz(64)) MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer2", rex6000_state, irq_timer2, attotime::from_hz(8192)) - MCFG_DEVICE_ADD( "ns16550", NS16550, XTAL(9'830'400) / 4 ) - MCFG_INS8250_OUT_TX_CB(WRITELINE("serport", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("serport", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("serport", rs232_port_device, write_rts)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, rex6000_state, serial_irq)) + NS16550(config, m_uart, XTAL(9'830'400) / 4); + 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_int_callback().set(FUNC(rex6000_state::serial_irq)); 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)) + 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)) /* video hardware */ MCFG_SCREEN_ADD("screen", LCD) diff --git a/src/mame/drivers/tv990.cpp b/src/mame/drivers/tv990.cpp index b40f1817799..98f9b93e127 100644 --- a/src/mame/drivers/tv990.cpp +++ b/src/mame/drivers/tv990.cpp @@ -387,17 +387,17 @@ MACHINE_CONFIG_START(tv990_state::tv990) MCFG_SCREEN_REFRESH_RATE(60) MCFG_PALETTE_ADD_MONOCHROME_HIGHLIGHT("palette") - MCFG_DEVICE_ADD( UART0_TAG, NS16450, XTAL(3'686'400) ) - MCFG_INS8250_OUT_DTR_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_rts)) - MCFG_INS8250_OUT_TX_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, tv990_state, uart0_irq)) - - MCFG_DEVICE_ADD( UART1_TAG, NS16450, XTAL(3'686'400) ) - MCFG_INS8250_OUT_DTR_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_rts)) - MCFG_INS8250_OUT_TX_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd)) - MCFG_INS8250_OUT_INT_CB(WRITELINE(*this, tv990_state, uart1_irq)) + NS16450(config, m_uart0, XTAL(3'686'400)); + m_uart0->out_dtr_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_dtr)); + m_uart0->out_rts_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_rts)); + m_uart0->out_tx_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); + m_uart0->out_int_callback().set(FUNC(tv990_state::uart0_irq)); + + NS16450(config, m_uart1, XTAL(3'686'400)); + m_uart1->out_dtr_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_dtr)); + m_uart1->out_rts_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_rts)); + m_uart1->out_tx_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); + m_uart1->out_int_callback().set(FUNC(tv990_state::uart1_irq)); MCFG_DEVICE_ADD(LPT_TAG, PC_LPT, 0) MCFG_PC_LPT_IRQ_HANDLER(WRITELINE(*this, tv990_state, lpt_irq)) diff --git a/src/mame/drivers/twinkle.cpp b/src/mame/drivers/twinkle.cpp index eb77403c176..a689054312f 100644 --- a/src/mame/drivers/twinkle.cpp +++ b/src/mame/drivers/twinkle.cpp @@ -1116,10 +1116,10 @@ MACHINE_CONFIG_START(twinkle_state::twinkle) MCFG_RS232_RI_HANDLER(WRITELINE("fdc37c665gt:uart2", ins8250_uart_device, ri_w)) MCFG_RS232_CTS_HANDLER(WRITELINE("fdc37c665gt:uart2", ins8250_uart_device, cts_w)) - MCFG_DEVICE_MODIFY("fdc37c665gt:uart2") - MCFG_INS8250_OUT_TX_CB(WRITELINE("rs232", rs232_port_device, write_txd)) - MCFG_INS8250_OUT_DTR_CB(WRITELINE("rs232", rs232_port_device, write_dtr)) - MCFG_INS8250_OUT_RTS_CB(WRITELINE("rs232", rs232_port_device, write_rts)) + ins8250_device &uart(*subdevice("fdc37c665gt:uart2")); + uart.out_tx_callback().set("rs232", FUNC(rs232_port_device::write_txd)); + uart.out_dtr_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); + uart.out_rts_callback().set("rs232", FUNC(rs232_port_device::write_rts)); /* video hardware */ MCFG_PSXGPU_ADD( "maincpu", "gpu", CXD8561Q, 0x200000, XTAL(53'693'175) ) diff --git a/src/mame/drivers/zrt80.cpp b/src/mame/drivers/zrt80.cpp index ceee36980e8..e1290b76fea 100644 --- a/src/mame/drivers/zrt80.cpp +++ b/src/mame/drivers/zrt80.cpp @@ -302,8 +302,9 @@ MACHINE_CONFIG_START(zrt80_state::zrt80) MCFG_MC6845_CHAR_WIDTH(8) /*?*/ MCFG_MC6845_UPDATE_ROW_CB(zrt80_state, crtc_update_row) - MCFG_DEVICE_ADD( "ins8250", INS8250, 2457600 ) - MCFG_INS8250_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + INS8250(config, m_8250, 2457600); + m_8250->out_int_callback().set_inputline("maincpu", INPUT_LINE_IRQ0); + MCFG_DEVICE_ADD("keyboard", GENERIC_KEYBOARD, 0) MCFG_GENERIC_KEYBOARD_CB(PUT(zrt80_state, kbd_put)) MACHINE_CONFIG_END -- cgit v1.2.3