diff options
author | Ivan Vangelista <mesgnet@yahoo.it> | 2018-08-24 23:02:43 +0200 |
---|---|---|
committer | Ivan Vangelista <mesgnet@yahoo.it> | 2018-08-24 23:02:43 +0200 |
commit | 1e445ab370775fb1e62f135fdba902b02a5929cc (patch) | |
tree | 34e3a3a32c4244f52d45d33f40d2f8bdb9d0bf1d | |
parent | dabf58e85af92a40c410fe502170a042b7e41f95 (diff) |
z8536.cpp, z80sti.cpp: deMCGF; z80sio.cpp: started deMCFG (nw)
29 files changed, 178 insertions, 240 deletions
diff --git a/src/devices/bus/ecbbus/grip.cpp b/src/devices/bus/ecbbus/grip.cpp index 776519555a7..7a98f57bb1d 100644 --- a/src/devices/bus/ecbbus/grip.cpp +++ b/src/devices/bus/ecbbus/grip.cpp @@ -148,7 +148,7 @@ void ecb_grip21_device::grip_io(address_map &map) // AM_RANGE(0x15, 0x15) AM_WRITE(cc2_w) map(0x16, 0x16).w(FUNC(ecb_grip21_device::flash_w)); map(0x17, 0x17).w(FUNC(ecb_grip21_device::vol1_w)); - map(0x20, 0x2f).rw(Z80STI_TAG, FUNC(z80sti_device::read), FUNC(z80sti_device::write)); + map(0x20, 0x2f).rw(m_sti, FUNC(z80sti_device::read), FUNC(z80sti_device::write)); map(0x30, 0x30).rw(FUNC(ecb_grip21_device::lrs_r), FUNC(ecb_grip21_device::lrs_w)); map(0x40, 0x40).r(FUNC(ecb_grip21_device::stat_r)); map(0x50, 0x50).w(MC6845_TAG, FUNC(mc6845_device::address_w)); @@ -433,8 +433,8 @@ MACHINE_CONFIG_START(ecb_grip21_device::device_add_mconfig) MCFG_MC6845_SHOW_BORDER_AREA(true) MCFG_MC6845_CHAR_WIDTH(8) MCFG_MC6845_UPDATE_ROW_CB(ecb_grip21_device, crtc_update_row) - MCFG_MC6845_OUT_DE_CB(WRITELINE(Z80STI_TAG, z80sti_device, i1_w)) - MCFG_MC6845_OUT_CUR_CB(WRITELINE(Z80STI_TAG, z80sti_device, i1_w)) + MCFG_MC6845_OUT_DE_CB(WRITELINE(m_sti, z80sti_device, i1_w)) + MCFG_MC6845_OUT_CUR_CB(WRITELINE(m_sti, z80sti_device, i1_w)) // MCFG_MC6845_ADD(HD6345_TAG, HD6345, SCREEN_TAG, XTAL(16'000'000)/4) @@ -444,12 +444,12 @@ MACHINE_CONFIG_START(ecb_grip21_device::device_add_mconfig) MCFG_I8255_IN_PORTB_CB(READ8(*this, ecb_grip21_device, ppi_pb_r)) MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, ecb_grip21_device, ppi_pc_w)) - MCFG_DEVICE_ADD(Z80STI_TAG, Z80STI, XTAL(16'000'000)/4) - MCFG_Z80STI_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0)) - MCFG_Z80STI_IN_GPIO_CB(READ8(*this, ecb_grip21_device, sti_gpio_r)) - MCFG_Z80STI_OUT_TBO_CB(WRITELINE(*this, ecb_grip21_device, speaker_w)) - MCFG_Z80STI_OUT_TCO_CB(WRITELINE(Z80STI_TAG, z80sti_device, tc_w)) - MCFG_Z80STI_OUT_TDO_CB(WRITELINE(Z80STI_TAG, z80sti_device, tc_w)) + Z80STI(config, m_sti, XTAL(16'000'000)/4); + m_sti->out_int_cb().set_inputline(Z80_TAG, INPUT_LINE_IRQ0); + m_sti->in_gpio_cb().set(FUNC(ecb_grip21_device::sti_gpio_r)); + m_sti->out_tbo_cb().set(FUNC(ecb_grip21_device::speaker_w)); + m_sti->out_tco_cb().set(m_sti, FUNC(z80sti_device::tc_w)); + m_sti->out_tdo_cb().set(m_sti, FUNC(z80sti_device::tc_w)); MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, ecb_grip21_device, write_centronics_busy)) diff --git a/src/devices/machine/z80sti.h b/src/devices/machine/z80sti.h index e0926a98dc0..521630dbe13 100644 --- a/src/devices/machine/z80sti.h +++ b/src/devices/machine/z80sti.h @@ -39,40 +39,6 @@ //************************************************************************** -// DEVICE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_Z80STI_RXCLOCK(_clock) \ - downcast<z80sti_device &>(*device).set_rx_clock(_clock); - -#define MCFG_Z80STI_TXCLOCK(_clock) \ - downcast<z80sti_device &>(*device).set_tx_clock(_clock); - -#define MCFG_Z80STI_OUT_INT_CB(_devcb) \ - downcast<z80sti_device &>(*device).set_out_int_callback(DEVCB_##_devcb); - -#define MCFG_Z80STI_IN_GPIO_CB(_devcb) \ - downcast<z80sti_device &>(*device).set_in_gpio_callback(DEVCB_##_devcb); - -#define MCFG_Z80STI_OUT_GPIO_CB(_devcb) \ - downcast<z80sti_device &>(*device).set_out_gpio_callback(DEVCB_##_devcb); - -#define MCFG_Z80STI_OUT_SO_CB(_devcb) \ - downcast<z80sti_device &>(*device).set_out_so_callback(DEVCB_##_devcb); - -#define MCFG_Z80STI_OUT_TAO_CB(_devcb) \ - downcast<z80sti_device &>(*device).set_out_tao_callback(DEVCB_##_devcb); - -#define MCFG_Z80STI_OUT_TBO_CB(_devcb) \ - downcast<z80sti_device &>(*device).set_out_tbo_callback(DEVCB_##_devcb); - -#define MCFG_Z80STI_OUT_TCO_CB(_devcb) \ - downcast<z80sti_device &>(*device).set_out_tco_callback(DEVCB_##_devcb); - -#define MCFG_Z80STI_OUT_TDO_CB(_devcb) \ - downcast<z80sti_device &>(*device).set_out_tdo_callback(DEVCB_##_devcb); - -//************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -86,14 +52,14 @@ public: // construction/destruction z80sti_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template <class Object> devcb_base &set_out_int_callback(Object &&cb) { return m_out_int_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_in_gpio_callback(Object &&cb) { return m_in_gpio_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_out_gpio_callback(Object &&cb) { return m_out_gpio_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_out_so_callback(Object &&cb) { return m_out_so_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_out_tao_callback(Object &&cb) { return m_out_tao_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_out_tbo_callback(Object &&cb) { return m_out_tbo_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_out_tco_callback(Object &&cb) { return m_out_tco_cb.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_out_tdo_callback(Object &&cb) { return m_out_tdo_cb.set_callback(std::forward<Object>(cb)); } + auto out_int_cb() { return m_out_int_cb.bind(); } + auto in_gpio_cb() { return m_in_gpio_cb.bind(); } + auto out_gpio_cb() { return m_out_gpio_cb.bind(); } + auto out_so_cb() { return m_out_so_cb.bind(); } + auto out_tao_cb() { return m_out_tao_cb.bind(); } + auto out_tbo_cb() { return m_out_tbo_cb.bind(); } + auto out_tco_cb() { return m_out_tco_cb.bind(); } + auto out_tdo_cb() { return m_out_tdo_cb.bind(); } void set_rx_clock(int clock) { m_rx_clock = clock; } void set_tx_clock(int clock) { m_tx_clock = clock; } diff --git a/src/devices/machine/z8536.h b/src/devices/machine/z8536.h index a0b0ab9b56c..19265344156 100644 --- a/src/devices/machine/z8536.h +++ b/src/devices/machine/z8536.h @@ -59,34 +59,6 @@ #include "machine/z80daisy.h" - -//************************************************************************** -// INTERFACE CONFIGURATION MACROS -//************************************************************************** - -#define MCFG_Z8536_IRQ_CALLBACK(_write) \ - downcast<z8536_device &>(*device).set_irq_wr_callback(DEVCB_##_write); - -#define MCFG_Z8536_PA_IN_CALLBACK(_read) \ - downcast<z8536_device &>(*device).set_pa_rd_callback(DEVCB_##_read); - -#define MCFG_Z8536_PA_OUT_CALLBACK(_write) \ - downcast<z8536_device &>(*device).set_pa_wr_callback(DEVCB_##_write); - -#define MCFG_Z8536_PB_IN_CALLBACK(_read) \ - downcast<z8536_device &>(*device).set_pb_rd_callback(DEVCB_##_read); - -#define MCFG_Z8536_PB_OUT_CALLBACK(_write) \ - downcast<z8536_device &>(*device).set_pb_wr_callback(DEVCB_##_write); - -#define MCFG_Z8536_PC_IN_CALLBACK(_read) \ - downcast<z8536_device &>(*device).set_pc_rd_callback(DEVCB_##_read); - -#define MCFG_Z8536_PC_OUT_CALLBACK(_write) \ - downcast<z8536_device &>(*device).set_pc_wr_callback(DEVCB_##_write); - - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -97,13 +69,13 @@ class cio_base_device : public device_t { public: - template <class Object> devcb_base &set_irq_wr_callback(Object &&cb) { return m_write_irq.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_pa_rd_callback(Object &&cb) { return m_read_pa.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_pa_wr_callback(Object &&cb) { return m_write_pa.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_pb_rd_callback(Object &&cb) { return m_read_pb.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_pb_wr_callback(Object &&cb) { return m_write_pb.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_pc_rd_callback(Object &&cb) { return m_read_pc.set_callback(std::forward<Object>(cb)); } - template <class Object> devcb_base &set_pc_wr_callback(Object &&cb) { return m_write_pc.set_callback(std::forward<Object>(cb)); } + auto irq_wr_cb() { return m_write_irq.bind(); } + auto pa_rd_cb() { return m_read_pa.bind(); } + auto pa_wr_cb() { return m_write_pa.bind(); } + auto pb_rd_cb() { return m_read_pb.bind(); } + auto pb_wr_cb() { return m_write_pb.bind(); } + auto pc_rd_cb() { return m_read_pc.bind(); } + auto pc_wr_cb() { return m_write_pc.bind(); } DECLARE_WRITE_LINE_MEMBER( pa0_w ) { external_port_w(PORT_A, 0, state); } DECLARE_WRITE_LINE_MEMBER( pa1_w ) { external_port_w(PORT_A, 1, state); } diff --git a/src/mame/drivers/a7150.cpp b/src/mame/drivers/a7150.cpp index c3051668f92..134c0984ad9 100644 --- a/src/mame/drivers/a7150.cpp +++ b/src/mame/drivers/a7150.cpp @@ -540,14 +540,14 @@ MACHINE_CONFIG_START(a7150_state::a7150) m_ctc->zc_callback<0>().append(Z80SIO_TAG, FUNC(z80sio_device::txca_w)); m_ctc->zc_callback<1>().set(Z80SIO_TAG, FUNC(z80sio_device::rxtxcb_w)); - MCFG_DEVICE_ADD(Z80SIO_TAG, Z80SIO, XTAL(16'000'000)/4) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("gfxcpu", INPUT_LINE_IRQ0)) - MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_rts)) - MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE(*this, a7150_state, kgs_iml_w)) -// MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE(*this, a7150_state, kgs_ifss_loopback_w)) + z80sio_device& sio(Z80SIO(config, Z80SIO_TAG, XTAL(16'000'000)/4)); + sio.out_int_callback().set_inputline(m_gfxcpu, INPUT_LINE_IRQ0); + sio.out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd)); + sio.out_dtra_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr)); + sio.out_rtsa_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts)); + sio.out_txdb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd)); + sio.out_dtrb_callback().set(FUNC(a7150_state::kgs_iml_w)); + //sio.out_rtsb_callback().set(FUNC(a7150_state::kgs_ifss_loopback_w)); // V.24 port (graphics tablet) MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, "loopback") diff --git a/src/mame/drivers/abc1600.cpp b/src/mame/drivers/abc1600.cpp index 4666e19c419..a064ca26307 100644 --- a/src/mame/drivers/abc1600.cpp +++ b/src/mame/drivers/abc1600.cpp @@ -921,20 +921,20 @@ MACHINE_CONFIG_START(abc1600_state::abc1600) SCC8530(config, m_scc, 64_MHz_XTAL / 16); m_scc->intrq_callback().set_inputline(MC68008P8_TAG, M68K_IRQ_5); - MCFG_DEVICE_ADD(Z8536B1_TAG, Z8536, 64_MHz_XTAL / 16) - MCFG_Z8536_IRQ_CALLBACK(INPUTLINE(MC68008P8_TAG, M68K_IRQ_2)) - MCFG_Z8536_PA_IN_CALLBACK(READ8(*this, abc1600_state, cio_pa_r)) - MCFG_Z8536_PB_IN_CALLBACK(READ8(*this, abc1600_state, cio_pb_r)) - MCFG_Z8536_PB_OUT_CALLBACK(WRITE8(*this, abc1600_state, cio_pb_w)) - MCFG_Z8536_PC_IN_CALLBACK(READ8(*this, abc1600_state, cio_pc_r)) - MCFG_Z8536_PC_OUT_CALLBACK(WRITE8(*this, abc1600_state, cio_pc_w)) + Z8536(config, m_cio, 64_MHz_XTAL / 16); + m_cio->irq_wr_cb().set_inputline(MC68008P8_TAG, M68K_IRQ_2); + m_cio->pa_rd_cb().set(FUNC(abc1600_state::cio_pa_r)); + m_cio->pb_rd_cb().set(FUNC(abc1600_state::cio_pb_r)); + m_cio->pb_wr_cb().set(FUNC(abc1600_state::cio_pb_w)); + m_cio->pc_rd_cb().set(FUNC(abc1600_state::cio_pc_r)); + m_cio->pc_wr_cb().set(FUNC(abc1600_state::cio_pc_w)); MCFG_NMC9306_ADD(NMC9306_TAG) MCFG_E0516_ADD(E050_C16PC_TAG, 32.768_kHz_XTAL) MCFG_DEVICE_ADD(SAB1797_02P_TAG, FD1797, 64_MHz_XTAL / 64) - MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(Z8536B1_TAG, z8536_device, pb7_w)) + MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(m_cio, z8536_device, pb7_w)) MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, abc1600_state, fdc_drq_w)) MCFG_FLOPPY_DRIVE_ADD(SAB1797_02P_TAG":0", abc1600_floppies, nullptr, floppy_image_device::default_floppy_formats) @@ -952,18 +952,18 @@ MACHINE_CONFIG_START(abc1600_state::abc1600) MCFG_ABC_KEYBOARD_OUT_KEYDOWN_HANDLER(WRITELINE(Z8470AB1_TAG, z80dart_device, dcdb_w)) MCFG_ABCBUS_SLOT_ADD("bus0i", abc1600bus_cards, nullptr) - MCFG_ABCBUS_SLOT_IRQ_CALLBACK(WRITELINE(Z8536B1_TAG, z8536_device, pa7_w)) + MCFG_ABCBUS_SLOT_IRQ_CALLBACK(WRITELINE(m_cio, z8536_device, pa7_w)) MCFG_ABCBUS_SLOT_ADD("bus0x", abc1600bus_cards, nullptr) - MCFG_ABCBUS_SLOT_IRQ_CALLBACK(WRITELINE(Z8536B1_TAG, z8536_device, pa6_w)) + MCFG_ABCBUS_SLOT_IRQ_CALLBACK(WRITELINE(m_cio, z8536_device, pa6_w)) MCFG_ABCBUS_SLOT_NMI_CALLBACK(WRITELINE(*this, abc1600_state, nmi_w)) - MCFG_ABCBUS_SLOT_XINT2_CALLBACK(WRITELINE(Z8536B1_TAG, z8536_device, pa2_w)) - MCFG_ABCBUS_SLOT_XINT3_CALLBACK(WRITELINE(Z8536B1_TAG, z8536_device, pa3_w)) - MCFG_ABCBUS_SLOT_XINT4_CALLBACK(WRITELINE(Z8536B1_TAG, z8536_device, pa4_w)) - MCFG_ABCBUS_SLOT_XINT5_CALLBACK(WRITELINE(Z8536B1_TAG, z8536_device, pa5_w)) + MCFG_ABCBUS_SLOT_XINT2_CALLBACK(WRITELINE(m_cio, z8536_device, pa2_w)) + MCFG_ABCBUS_SLOT_XINT3_CALLBACK(WRITELINE(m_cio, z8536_device, pa3_w)) + MCFG_ABCBUS_SLOT_XINT4_CALLBACK(WRITELINE(m_cio, z8536_device, pa4_w)) + MCFG_ABCBUS_SLOT_XINT5_CALLBACK(WRITELINE(m_cio, z8536_device, pa5_w)) MCFG_ABCBUS_SLOT_ADD("bus1", abc1600bus_cards, nullptr) - MCFG_ABCBUS_SLOT_IRQ_CALLBACK(WRITELINE(Z8536B1_TAG, z8536_device, pa1_w)) + MCFG_ABCBUS_SLOT_IRQ_CALLBACK(WRITELINE(m_cio, z8536_device, pa1_w)) MCFG_ABCBUS_SLOT_ADD("bus2", abc1600bus_cards, "4105") - MCFG_ABCBUS_SLOT_IRQ_CALLBACK(WRITELINE(Z8536B1_TAG, z8536_device, pa0_w)) + MCFG_ABCBUS_SLOT_IRQ_CALLBACK(WRITELINE(m_cio, z8536_device, pa0_w)) //MCFG_ABCBUS_SLOT_PREN_CALLBACK(WRITELINE(Z8410AB1_2_TAG, z80dma_device, iei_w)) MCFG_ABCBUS_SLOT_TRRQ_CALLBACK(WRITELINE(Z8410AB1_2_TAG, z80dma_device, rdy_w)) diff --git a/src/mame/drivers/abc80x.cpp b/src/mame/drivers/abc80x.cpp index 6d501a1eca6..74dfa9d2044 100644 --- a/src/mame/drivers/abc80x.cpp +++ b/src/mame/drivers/abc80x.cpp @@ -1067,14 +1067,14 @@ MACHINE_CONFIG_START(abc800_state::common) m_ctc->zc_callback<2>().append(m_dart, FUNC(z80dart_device::txca_w)); MCFG_TIMER_DRIVER_ADD_PERIODIC(TIMER_CTC_TAG, abc800_state, ctc_tick, attotime::from_hz(ABC800_X01/2/2/2)) - MCFG_DEVICE_ADD(Z80SIO_TAG, Z80SIO, ABC800_X01/2/2) - MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_rts)) - MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE(*this, abc800_state, sio_txdb_w)) - MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE(*this, abc800_state, sio_dtrb_w)) - MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE(*this, abc800_state, sio_rtsb_w)) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0)) + Z80SIO(config, m_sio, ABC800_X01/2/2); + m_sio->out_txda_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd)); + m_sio->out_dtra_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr)); + m_sio->out_rtsa_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts)); + m_sio->out_txdb_callback().set(FUNC(abc800_state::sio_txdb_w)); + m_sio->out_dtrb_callback().set(FUNC(abc800_state::sio_dtrb_w)); + m_sio->out_rtsb_callback().set(FUNC(abc800_state::sio_rtsb_w)); + m_sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); MCFG_DEVICE_ADD(Z80DART_TAG, Z80DART, ABC800_X01/2/2) MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd)) @@ -1093,9 +1093,9 @@ MACHINE_CONFIG_START(abc800_state::common) MCFG_RS232_CTS_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, ctsa_w)) MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80sio_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(Z80SIO_TAG, z80sio_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(Z80SIO_TAG, z80sio_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_sio, z80sio_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_sio, z80sio_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_sio, z80sio_device, ctsa_w)) MCFG_ABC_KEYBOARD_PORT_ADD(ABC_KEYBOARD_PORT_TAG, nullptr) MCFG_ABC_KEYBOARD_OUT_RX_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxb_w)) diff --git a/src/mame/drivers/altos5.cpp b/src/mame/drivers/altos5.cpp index 746039d0a6e..76b829df42e 100644 --- a/src/mame/drivers/altos5.cpp +++ b/src/mame/drivers/altos5.cpp @@ -445,14 +445,14 @@ MACHINE_CONFIG_START(altos5_state::altos5) // Channel B - printer MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_DEVICE_ADD("sio", Z80SIO, 8_MHz_XTAL / 2) + z80sio_device& sio(Z80SIO(config, "sio", 8_MHz_XTAL / 2)); // Channel A - console #2 // WRDY connects to (altos5_state, fdc_intrq_w) // Channel B - console #1 - MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs232", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("rs232", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("rs232", rs232_port_device, write_rts)) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + sio.out_txdb_callback().set("rs232", FUNC(rs232_port_device::write_txd)); + sio.out_dtrb_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); + sio.out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts)); + sio.out_int_callback().set_inputline("maincpu", INPUT_LINE_IRQ0); z80ctc_device &ctc(Z80CTC(config, "ctc", 8_MHz_XTAL / 2)); ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); diff --git a/src/mame/drivers/altos8600.cpp b/src/mame/drivers/altos8600.cpp index f6b73c48c08..91e7e5800f8 100644 --- a/src/mame/drivers/altos8600.cpp +++ b/src/mame/drivers/altos8600.cpp @@ -757,24 +757,24 @@ MACHINE_CONFIG_START(altos8600_state::altos8600) RAM(config, RAM_TAG).set_default_size("1M");//.set_extra_options("512K"); - MCFG_DEVICE_ADD("uart8274", I8274_NEW, 16_MHz_XTAL/4) - MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232a", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232a", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232a", rs232_port_device, write_rts)) - MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs232b", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("rs232b", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("rs232b", rs232_port_device, write_rts)) - MCFG_Z80SIO_OUT_INT_CB(WRITELINE("pic8259_1", pic8259_device, ir7_w)) + I8274_NEW(config, m_uart8274, 16_MHz_XTAL/4); + m_uart8274->out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd)); + m_uart8274->out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr)); + m_uart8274->out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts)); + m_uart8274->out_txdb_callback().set("rs232b", FUNC(rs232_port_device::write_txd)); + m_uart8274->out_dtrb_callback().set("rs232b", FUNC(rs232_port_device::write_dtr)); + m_uart8274->out_rtsb_callback().set("rs232b", FUNC(rs232_port_device::write_rts)); + m_uart8274->out_int_callback().set("pic8259_1", FUNC(pic8259_device::ir7_w)); MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("uart8274", i8274_new_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("uart8274", i8274_new_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart8274", i8274_new_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart8274, i8274_new_device, ctsa_w)) MCFG_DEVICE_ADD("rs232b", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("uart8274", i8274_new_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("uart8274", i8274_new_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart8274", i8274_new_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart8274, i8274_new_device, ctsb_w)) MCFG_DEVICE_ADD("ppi", I8255A, 0) diff --git a/src/mame/drivers/apricotf.cpp b/src/mame/drivers/apricotf.cpp index 07cc1fb7153..a917824c7a0 100644 --- a/src/mame/drivers/apricotf.cpp +++ b/src/mame/drivers/apricotf.cpp @@ -369,8 +369,8 @@ MACHINE_CONFIG_START(f1_state::act_f1) /* Devices */ MCFG_DEVICE_ADD(APRICOT_KEYBOARD_TAG, APRICOT_KEYBOARD, 0) - MCFG_DEVICE_ADD(Z80SIO2_TAG, Z80SIO, 2500000) - MCFG_Z80SIO_OUT_INT_CB(WRITELINE("irqs", input_merger_device, in_w<0>)) + Z80SIO(config, m_sio, 2500000); + m_sio->out_int_callback().set("irqs", FUNC(input_merger_device::in_w<0>)); MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, 2500000) MCFG_Z80CTC_INTR_CB(WRITELINE("irqs", input_merger_device, in_w<1>)) @@ -378,7 +378,7 @@ MACHINE_CONFIG_START(f1_state::act_f1) MCFG_Z80CTC_ZC2_CB(WRITELINE(*this, f1_state, ctc_z2_w)) MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer") - MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(Z80SIO2_TAG, z80sio_device, ctsa_w)) + MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(m_sio, z80sio_device, ctsa_w)) MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG) diff --git a/src/mame/drivers/att4425.cpp b/src/mame/drivers/att4425.cpp index d4fe1d767af..a73ea90542f 100644 --- a/src/mame/drivers/att4425.cpp +++ b/src/mame/drivers/att4425.cpp @@ -260,27 +260,27 @@ MACHINE_CONFIG_START(att4425_state::att4425) MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, XTAL(32'000'000)) // XXX MCFG_Z80CTC_INTR_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0)) #ifdef notdef - MCFG_Z80CTC_ZC0_CB(WRITELINE(Z80SIO_TAG, z80sio_device, rxca_w)) - MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(Z80SIO_TAG, z80sio_device, txca_w)) - MCFG_Z80CTC_ZC2_CB(WRITELINE(Z80SIO_TAG, z80sio_device, rxtxcb_w)) + MCFG_Z80CTC_ZC0_CB(WRITELINE(m_sio, z80sio_device, rxca_w)) + MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(m_sio, z80sio_device, txca_w)) + MCFG_Z80CTC_ZC2_CB(WRITELINE(m_sio, z80sio_device, rxtxcb_w)) #endif - MCFG_DEVICE_ADD(Z80SIO_TAG, Z80SIO, 4800) // XXX - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0)) - MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_rts)) - MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd)) + Z80SIO(config, m_sio, 4800); // XXX + m_sio->out_int_callback().set_inputline(Z80_TAG, INPUT_LINE_IRQ0); + m_sio->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd)); + m_sio->out_dtra_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr)); + m_sio->out_rtsa_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts)); + m_sio->out_txdb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd)); // host MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, "null_modem") - MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80sio_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(Z80SIO_TAG, z80sio_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(Z80SIO_TAG, z80sio_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_sio, z80sio_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_sio, z80sio_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_sio, z80sio_device, ctsa_w)) // aux printer? MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, "printer") - MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80sio_device, rxb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_sio, z80sio_device, rxb_w)) // XXX MCFG_DEVICE_ADD("line_clock", CLOCK, 9600*64) diff --git a/src/mame/drivers/c900.cpp b/src/mame/drivers/c900.cpp index b23960da184..8f7433e29ce 100644 --- a/src/mame/drivers/c900.cpp +++ b/src/mame/drivers/c900.cpp @@ -103,7 +103,7 @@ MACHINE_CONFIG_START(c900_state::c900) MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_c900) MCFG_PALETTE_ADD_MONOCHROME("palette") - MCFG_DEVICE_ADD("cio", Z8036, 6'000'000) + Z8036(config, "cio", 6'000'000); MCFG_DEVICE_ADD("scc", SCC8030, 6'000'000) // 5'850'000 is the ideal figure /* Port B */ diff --git a/src/mame/drivers/ccs300.cpp b/src/mame/drivers/ccs300.cpp index 3a1366331f9..089b178547c 100644 --- a/src/mame/drivers/ccs300.cpp +++ b/src/mame/drivers/ccs300.cpp @@ -129,11 +129,11 @@ MACHINE_CONFIG_START(ccs300_state::ccs300) uart_clock.signal_handler().append("sio", FUNC(z80sio_device::rxca_w)); /* Devices */ - MCFG_DEVICE_ADD("sio", Z80SIO, XTAL(4'000'000)) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts)) + z80sio_device& sio(Z80SIO(config, "sio", XTAL(4'000'000))); + sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + sio.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); + 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)) diff --git a/src/mame/drivers/dlair.cpp b/src/mame/drivers/dlair.cpp index 9a93bc9c2c7..6c4aeafef13 100644 --- a/src/mame/drivers/dlair.cpp +++ b/src/mame/drivers/dlair.cpp @@ -777,8 +777,8 @@ MACHINE_CONFIG_START(dlair_state::dleuro) MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_Z80CTC_ZC0_CB(WRITELINE(*this, dlair_state, write_speaker)) - MCFG_DEVICE_ADD("sio", Z80SIO, MASTER_CLOCK_EURO/4 /* same as "maincpu" */) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + z80sio_device& sio(Z80SIO(config, "sio", MASTER_CLOCK_EURO/4 /* same as "maincpu" */)); + sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); // TODO: hook up tx and rx callbacks MCFG_WATCHDOG_ADD("watchdog") diff --git a/src/mame/drivers/duet16.cpp b/src/mame/drivers/duet16.cpp index ef636f2dcfc..9908e3eab07 100644 --- a/src/mame/drivers/duet16.cpp +++ b/src/mame/drivers/duet16.cpp @@ -388,8 +388,8 @@ MACHINE_CONFIG_START(duet16_state::duet16) itm.o3_callback().append("itm", FUNC(ptm6840_device::set_c2)); itm.irq_callback().set(m_tmint, FUNC(input_merger_device::in_w<0>)); - MCFG_DEVICE_ADD("sio", UPD7201_NEW, 8_MHz_XTAL / 2) - MCFG_Z80SIO_OUT_INT_CB(WRITELINE("pic", pic8259_device, ir1_w)) // INT5 + upd7201_new_device& sio(UPD7201_NEW(config, "sio", 8_MHz_XTAL / 2)); + sio.out_int_callback().set("pic", FUNC(pic8259_device::ir1_w)); // INT5 MCFG_DEVICE_ADD("kbusart", I8251, 8_MHz_XTAL / 4) MCFG_I8251_TXD_HANDLER(WRITELINE("kbd", rs232_port_device, write_txd)) diff --git a/src/mame/drivers/gridcomp.cpp b/src/mame/drivers/gridcomp.cpp index 6c1995b4ed2..d18a022bd1b 100644 --- a/src/mame/drivers/gridcomp.cpp +++ b/src/mame/drivers/gridcomp.cpp @@ -421,7 +421,7 @@ MACHINE_CONFIG_START(gridcomp_state::grid1101) MCFG_IEEE488_REN_CALLBACK(WRITELINE("hpib", tms9914_device, ren_w)) MCFG_IEEE488_SLOT_ADD("ieee_rem", 0, remote488_devices, nullptr) - MCFG_DEVICE_ADD("uart8274", I8274_NEW, XTAL(4'032'000)) + I8274_NEW(config, m_uart8274, XTAL(4'032'000)); MCFG_DEVICE_ADD("modem", I8255, 0) diff --git a/src/mame/drivers/hk68v10.cpp b/src/mame/drivers/hk68v10.cpp index b3a4bafc41f..e0641938d19 100644 --- a/src/mame/drivers/hk68v10.cpp +++ b/src/mame/drivers/hk68v10.cpp @@ -342,7 +342,7 @@ MACHINE_CONFIG_START(hk68v10_state::hk68v10) MCFG_DEVICE_ADD("maincpu", M68010, 10_MHz_XTAL) MCFG_DEVICE_PROGRAM_MAP (hk68v10_mem) - MCFG_DEVICE_ADD("cio", Z8536, SCC_CLOCK) + Z8536(config, "cio", SCC_CLOCK); /* Terminal Port config */ MCFG_DEVICE_ADD("scc", SCC8530N, SCC_CLOCK) diff --git a/src/mame/drivers/isbc.cpp b/src/mame/drivers/isbc.cpp index b20a9f0566b..ac51247f888 100644 --- a/src/mame/drivers/isbc.cpp +++ b/src/mame/drivers/isbc.cpp @@ -449,7 +449,7 @@ MACHINE_CONFIG_START(isbc_state::isbc286) MCFG_PIT8253_OUT0_HANDLER(WRITELINE("pic_0", pic8259_device, ir0_w)) MCFG_PIT8253_CLK1(XTAL(22'118'400)/18) // MCFG_PIT8253_OUT1_HANDLER(WRITELINE("uart8274", z80dart_device, rxtxcb_w)) - MCFG_PIT8253_OUT1_HANDLER(WRITELINE("uart8274", i8274_new_device, rxtxcb_w)) + MCFG_PIT8253_OUT1_HANDLER(WRITELINE(m_uart8274, i8274_new_device, rxtxcb_w)) MCFG_PIT8253_CLK2(XTAL(22'118'400)/18) MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, isbc_state, isbc286_tmr2_w)) @@ -477,15 +477,15 @@ MACHINE_CONFIG_START(isbc_state::isbc286) MCFG_Z80DART_OUT_RTSB_CB(WRITELINE("rs232b", rs232_port_device, write_rts)) MCFG_Z80DART_OUT_INT_CB(WRITELINE(*this, isbc_state, isbc_uart8274_irq)) #else - MCFG_DEVICE_ADD("uart8274", I8274_NEW, XTAL(16'000'000)/4) - MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232a", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232a", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232a", rs232_port_device, write_rts)) - MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs232b", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("rs232b", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("rs232b", rs232_port_device, write_rts)) + I8274_NEW(config, m_uart8274, XTAL(16'000'000)/4); + m_uart8274->out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd)); + m_uart8274->out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr)); + m_uart8274->out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts)); + m_uart8274->out_txdb_callback().set("rs232b", FUNC(rs232_port_device::write_txd)); + m_uart8274->out_dtrb_callback().set("rs232b", FUNC(rs232_port_device::write_dtr)); + m_uart8274->out_rtsb_callback().set("rs232b", FUNC(rs232_port_device::write_rts)); // MCFG_Z80SIO_OUT_INT_CB(WRITELINE(*this, isbc_state, isbc_uart8274_irq)) - MCFG_Z80SIO_OUT_INT_CB(WRITELINE("pic_0", pic8259_device, ir6_w)) + m_uart8274->out_int_callback().set("pic_0", FUNC(pic8259_device::ir6_w)); #endif MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, nullptr) @@ -494,9 +494,9 @@ MACHINE_CONFIG_START(isbc_state::isbc286) MCFG_RS232_DCD_HANDLER(WRITELINE("uart8274", z80dart_device, dcda_w)) MCFG_RS232_CTS_HANDLER(WRITELINE("uart8274", z80dart_device, ctsa_w)) #else - MCFG_RS232_RXD_HANDLER(WRITELINE("uart8274", i8274_new_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("uart8274", i8274_new_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart8274", i8274_new_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart8274, i8274_new_device, ctsa_w)) #endif MCFG_DEVICE_ADD("rs232b", RS232_PORT, default_rs232_devices, "terminal") @@ -505,9 +505,9 @@ MACHINE_CONFIG_START(isbc_state::isbc286) MCFG_RS232_DCD_HANDLER(WRITELINE("uart8274", z80dart_device, dcdb_w)) MCFG_RS232_CTS_HANDLER(WRITELINE("uart8274", z80dart_device, ctsb_w)) #else - MCFG_RS232_RXD_HANDLER(WRITELINE("uart8274", i8274_new_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("uart8274", i8274_new_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart8274", i8274_new_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart8274, i8274_new_device, ctsb_w)) #endif MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", isbc286_terminal) diff --git a/src/mame/drivers/k8915.cpp b/src/mame/drivers/k8915.cpp index c28625d3584..d0c16e2f3be 100644 --- a/src/mame/drivers/k8915.cpp +++ b/src/mame/drivers/k8915.cpp @@ -158,10 +158,10 @@ MACHINE_CONFIG_START(k8915_state::k8915) MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL(4'915'200) / 2) MCFG_Z80CTC_ZC2_CB(WRITELINE("sio", z80sio_device, rxtxcb_w)) - MCFG_DEVICE_ADD("sio", Z80SIO, XTAL(4'915'200) / 2) - MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs232", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("rs232", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("rs232", rs232_port_device, write_rts)) + z80sio_device& sio(Z80SIO(config, "sio", XTAL(4'915'200) / 2)); + sio.out_txdb_callback().set("rs232", FUNC(rs232_port_device::write_txd)); + sio.out_dtrb_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); + sio.out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts)); MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "keyboard") MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxb_w)) diff --git a/src/mame/drivers/kaypro.cpp b/src/mame/drivers/kaypro.cpp index 24ec3ce48bf..27a26ff0b95 100644 --- a/src/mame/drivers/kaypro.cpp +++ b/src/mame/drivers/kaypro.cpp @@ -255,12 +255,12 @@ MACHINE_CONFIG_START(kaypro_state::kayproii) MCFG_Z80PIO_IN_PA_CB(READ8(*this, kaypro_state, pio_system_r)) MCFG_Z80PIO_OUT_PA_CB(WRITE8(*this, kaypro_state, kayproii_pio_system_w)) - MCFG_DEVICE_ADD("sio", Z80SIO, 20_MHz_XTAL / 8) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("serial", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("serial", rs232_port_device, write_rts)) - MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("serial", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("kbd", kaypro_10_keyboard_device, txd_w)) + z80sio_device& sio(Z80SIO(config, "sio", 20_MHz_XTAL / 8)); + sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + sio.out_txda_callback().set("serial", FUNC(rs232_port_device::write_txd)); + sio.out_dtra_callback().set("serial", FUNC(rs232_port_device::write_dtr)); + sio.out_rtsa_callback().set("serial", FUNC(rs232_port_device::write_rts)); + sio.out_txdb_callback().set("kbd", FUNC(kaypro_10_keyboard_device::txd_w)); MCFG_DEVICE_ADD("fdc", FD1793, 20_MHz_XTAL / 20) MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, kaypro_state, fdc_intrq_w)) @@ -344,16 +344,16 @@ MACHINE_CONFIG_START(kaypro_state::kaypro484) serprn.rxd_handler().append("sio_2", FUNC(z80sio_device::synca_w)); serprn.cts_handler().set("sio_2", FUNC(z80sio_device::ctsa_w)); - MCFG_DEVICE_ADD("sio_1", Z80SIO, 16_MHz_XTAL / 4) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) // FIXME: use a combiner - MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("modem", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("modem", rs232_port_device, write_rts)) - MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("modem", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("kbd", kaypro_10_keyboard_device, txd_w)) + z80sio_device& sio_1(Z80SIO(config, "sio_1", 16_MHz_XTAL / 4)); + sio_1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); // FIXME: use a combiner + sio_1.out_txda_callback().set("modem", FUNC(rs232_port_device::write_txd)); + sio_1.out_dtra_callback().set("modem", FUNC(rs232_port_device::write_dtr)); + sio_1.out_rtsa_callback().set("modem", FUNC(rs232_port_device::write_rts)); + sio_1.out_txdb_callback().set("kbd", FUNC(kaypro_10_keyboard_device::txd_w)); - MCFG_DEVICE_ADD("sio_2", Z80SIO, 16_MHz_XTAL / 4) /* extra sio for modem and printer */ - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) // FIXME: use a combiner - MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("serprn", rs232_port_device, write_txd)) + z80sio_device& sio_2(Z80SIO(config, "sio_2", 16_MHz_XTAL / 4)); /* extra sio for modem and printer */ + sio_2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); // FIXME: use a combiner + sio_2.out_txda_callback().set("serprn", FUNC(rs232_port_device::write_txd)); com8116_device &brg(COM8116(config, "brg", XTAL(5'068'800))); // WD1943, SMC8116 brg.fr_handler().set("sio_1", FUNC(z80sio_device::rxca_w)); diff --git a/src/mame/drivers/m79152pc.cpp b/src/mame/drivers/m79152pc.cpp index efab0bd4678..c5f9728593a 100644 --- a/src/mame/drivers/m79152pc.cpp +++ b/src/mame/drivers/m79152pc.cpp @@ -161,21 +161,21 @@ MACHINE_CONFIG_START(m79152pc_state::m79152pc) MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL(4'000'000)) //MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_DEVICE_ADD("uart", Z80SIO, XTAL(4'000'000)) - //MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts)) - //MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs232a", rs232_port_device, write_txd)) - //MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("rs232a", rs232_port_device, write_dtr)) - //MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("rs232a", rs232_port_device, write_rts)) + Z80SIO(config, m_uart, XTAL(4'000'000)); + //m_uart->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + m_uart->out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); + m_uart->out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); + m_uart->out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); + //m_uart->out_txdb_callback().set("rs232a", FUNC(rs232_port_device::write_txd)); + //m_uart->out_dtrb_callback().set("rs232a", FUNC(rs232_port_device::write_dtr)); + //m_uart->out_rtsb_callback().set("rs232a", FUNC(rs232_port_device::write_rts)); MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "keyboard") - MCFG_RS232_RXD_HANDLER(WRITELINE("uart", z80sio_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("uart", z80sio_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart, z80sio_device, rxa_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart, z80sio_device, ctsa_w)) //MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, "terminal") - //MCFG_RS232_RXD_HANDLER(WRITELINE("uart", z80sio_device, rxb_w)) - //MCFG_RS232_CTS_HANDLER(WRITELINE("uart", z80sio_device, ctsb_w)) + //MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart, z80sio_device, rxb_w)) + //MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart, z80sio_device, ctsb_w)) MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/mz2500.cpp b/src/mame/drivers/mz2500.cpp index c84ddf84767..820aeab7b9c 100644 --- a/src/mame/drivers/mz2500.cpp +++ b/src/mame/drivers/mz2500.cpp @@ -1819,7 +1819,7 @@ MACHINE_CONFIG_START(mz2500_state::mz2500) MCFG_Z80PIO_OUT_PA_CB(WRITE8(*this, mz2500_state, mz2500_pio1_porta_w)) MCFG_Z80PIO_IN_PB_CB(READ8(*this, mz2500_state, mz2500_pio1_porta_r)) - MCFG_DEVICE_ADD("z80sio", Z80SIO, 6000000) + Z80SIO(config, "z80sio", 6000000); MCFG_DEVICE_ADD(RP5C15_TAG, RP5C15, 32.768_kHz_XTAL) MCFG_RP5C15_OUT_ALARM_CB(WRITELINE(*this, mz2500_state, mz2500_rtc_alarm_irq)) diff --git a/src/mame/drivers/nanos.cpp b/src/mame/drivers/nanos.cpp index f61ab398414..bb1199b1108 100644 --- a/src/mame/drivers/nanos.cpp +++ b/src/mame/drivers/nanos.cpp @@ -503,11 +503,11 @@ MACHINE_CONFIG_START(nanos_state::nanos) MCFG_DEVICE_ADD(m_pio_1, Z80PIO, XTAL(4'000'000)) MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_DEVICE_ADD(m_sio_0, Z80SIO, XTAL(4'000'000)) - MCFG_Z80SIO_OUT_INT_CB(WRITELINE(*this, nanos_state, z80daisy_interrupt)) + Z80SIO(config, m_sio_0, XTAL(4'000'000)); + m_sio_0->out_int_callback().set(FUNC(nanos_state::z80daisy_interrupt)); - MCFG_DEVICE_ADD(m_sio_1, Z80SIO, XTAL(4'000'000)) - MCFG_Z80SIO_OUT_INT_CB(WRITELINE(*this, nanos_state, z80daisy_interrupt)) + Z80SIO(config, m_sio_1, XTAL(4'000'000)); + m_sio_1->out_int_callback().set(FUNC(nanos_state::z80daisy_interrupt)); MCFG_DEVICE_ADD(m_pio, Z80PIO, XTAL(4'000'000)) MCFG_Z80PIO_IN_PA_CB(READ8(*this, nanos_state, port_a_r)) diff --git a/src/mame/drivers/pcm.cpp b/src/mame/drivers/pcm.cpp index 58c9b3449ac..b7a75ad0afb 100644 --- a/src/mame/drivers/pcm.cpp +++ b/src/mame/drivers/pcm.cpp @@ -293,7 +293,7 @@ MACHINE_CONFIG_START(pcm_state::pcm) MCFG_Z80PIO_IN_PB_CB(READ8(*this, pcm_state, pcm_85_r)) MCFG_Z80PIO_OUT_PB_CB(WRITE8(*this, pcm_state, pcm_85_w)) - MCFG_DEVICE_ADD("sio", Z80SIO, XTAL(10'000'000) /4) + Z80SIO(config, "sio", XTAL(10'000'000) /4); Z80CTC(config, m_ctc_u, 10_MHz_XTAL / 4); m_ctc_u->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); diff --git a/src/mame/drivers/polyplay.cpp b/src/mame/drivers/polyplay.cpp index 2652d8c1350..7f724b8d678 100644 --- a/src/mame/drivers/polyplay.cpp +++ b/src/mame/drivers/polyplay.cpp @@ -329,8 +329,8 @@ MACHINE_CONFIG_START(polyplay_state::polyplay_zrepp) MCFG_DEVICE_IO_MAP(polyplay_io_zrepp) /* devices */ - MCFG_DEVICE_ADD(Z80SIO_TAG, Z80SIO, POLYPLAY_MAIN_CLOCK / 4) /* UB8560D */ - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE(Z80CPU_TAG, INPUT_LINE_IRQ0)) + Z80SIO(config, m_z80sio, POLYPLAY_MAIN_CLOCK / 4); /* UB8560D */ + m_z80sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); MACHINE_CONFIG_END diff --git a/src/mame/drivers/proconn.cpp b/src/mame/drivers/proconn.cpp index 08d8216704f..c3b29977d27 100644 --- a/src/mame/drivers/proconn.cpp +++ b/src/mame/drivers/proconn.cpp @@ -320,7 +320,7 @@ MACHINE_CONFIG_START(proconn_state::proconn) MCFG_DEVICE_ADD("z80ctc", Z80CTC, 4000000) MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_DEVICE_ADD("z80sio", Z80SIO, 4000000) /* ?? Mhz */ + Z80SIO(config, m_z80sio, 4000000); /* ?? Mhz */ SPEAKER(config, "lspeaker").front_left(); SPEAKER(config, "rspeaker").front_right(); diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp index b3cd2a86824..727f3b514b1 100644 --- a/src/mame/drivers/rainbow.cpp +++ b/src/mame/drivers/rainbow.cpp @@ -3310,20 +3310,20 @@ MACHINE_CONFIG_START(rainbow_state::rainbow) m_dbrg->fr_handler().set(FUNC(rainbow_state::dbrg_fr_w)); m_dbrg->ft_handler().set(FUNC(rainbow_state::dbrg_ft_w)); - MCFG_DEVICE_ADD("mpsc", UPD7201_NEW, 24.0734_MHz_XTAL / 5 / 2) // 2.4073 MHz (nominally 2.5 MHz) - MCFG_Z80SIO_OUT_INT_CB(WRITELINE(*this, rainbow_state, mpsc_irq)) - MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("comm", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("printer", rs232_port_device, write_txd)) + UPD7201_NEW(config, m_mpsc, 24.0734_MHz_XTAL / 5 / 2); // 2.4073 MHz (nominally 2.5 MHz) + m_mpsc->out_int_callback().set(FUNC(rainbow_state::mpsc_irq)); + m_mpsc->out_txda_callback().set("comm", FUNC(rs232_port_device::write_txd)); + m_mpsc->out_txdb_callback().set("printer", FUNC(rs232_port_device::write_txd)); // RTS and DTR outputs are not connected MCFG_DEVICE_ADD("comm", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("mpsc", upd7201_new_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("mpsc", upd7201_new_device, ctsa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("mpsc", upd7201_new_device, dcda_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, rxa_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, ctsa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, dcda_w)) MCFG_DEVICE_ADD("printer", RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("mpsc", upd7201_new_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("mpsc", upd7201_new_device, ctsb_w)) // actually DTR + MCFG_RS232_RXD_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, ctsb_w)) // actually DTR MCFG_DEVICE_MODIFY("comm") MCFG_SLOT_OPTION_ADD("microsoft_mouse", MSFT_SERIAL_MOUSE) diff --git a/src/mame/drivers/rt1715.cpp b/src/mame/drivers/rt1715.cpp index 247e65dcaed..2cd7d6d1136 100644 --- a/src/mame/drivers/rt1715.cpp +++ b/src/mame/drivers/rt1715.cpp @@ -314,7 +314,7 @@ MACHINE_CONFIG_START(rt1715_state::rt1715) MCFG_Z80CTC_ZC0_CB(WRITELINE("a29", z80sio_device, txca_w)) MCFG_Z80CTC_ZC2_CB(WRITELINE("a29", z80sio_device, rxtxcb_w)) - MCFG_DEVICE_ADD("a29", Z80SIO, 9.832_MHz_XTAL / 4) + Z80SIO(config, "a29", 9.832_MHz_XTAL / 4); /* floppy */ MCFG_DEVICE_ADD("a71", Z80PIO, 9.832_MHz_XTAL / 4) diff --git a/src/mame/drivers/ts803.cpp b/src/mame/drivers/ts803.cpp index 79b169ef8c5..3b55dab096c 100644 --- a/src/mame/drivers/ts803.cpp +++ b/src/mame/drivers/ts803.cpp @@ -450,9 +450,9 @@ MACHINE_CONFIG_START(ts803_state::ts803) dart_clock.signal_handler().set("dart", FUNC(z80dart_device::txca_w)); dart_clock.signal_handler().append("dart", FUNC(z80dart_device::rxca_w)); - MCFG_DEVICE_ADD("sti", Z80STI, 16_MHz_XTAL / 4) - MCFG_Z80STI_OUT_TBO_CB(WRITELINE("dart", z80dart_device, rxtxcb_w)) - MCFG_Z80STI_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + z80sti_device& sti(Z80STI(config, "sti", 16_MHz_XTAL / 4)); + sti.out_tbo_cb().set("dart", FUNC(z80dart_device::rxtxcb_w)); + sti.out_int_cb().set_inputline("maincpu", INPUT_LINE_IRQ0); MCFG_DEVICE_ADD("dart", Z80DART, 16_MHz_XTAL / 4) MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) diff --git a/src/mame/drivers/unixpc.cpp b/src/mame/drivers/unixpc.cpp index f716877dae9..e912f2e858c 100644 --- a/src/mame/drivers/unixpc.cpp +++ b/src/mame/drivers/unixpc.cpp @@ -385,10 +385,10 @@ MACHINE_CONFIG_START(unixpc_state::unixpc) MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, unixpc_state, wd2797_drq_w)) MCFG_FLOPPY_DRIVE_ADD("wd2797:0", unixpc_floppies, "525dd", floppy_image_device::default_floppy_formats) - MCFG_DEVICE_ADD("mpsc", UPD7201_NEW, 19.6608_MHz_XTAL / 8) - MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts)) + upd7201_new_device& mpsc(UPD7201_NEW(config, "mpsc", 19.6608_MHz_XTAL / 8)); + mpsc.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); + mpsc.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); + mpsc.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); MCFG_DEVICE_ADD("kbc", ACIA6850, 0) |