diff --git a/src/devices/bus/interpro/sr/edge.cpp b/src/devices/bus/interpro/sr/edge.cpp index 68a64e69d6e..55d31fbc42a 100644 --- a/src/devices/bus/interpro/sr/edge.cpp +++ b/src/devices/bus/interpro/sr/edge.cpp @@ -477,11 +477,11 @@ MACHINE_CONFIG_START(mpcb828_device::device_add_mconfig) MCFG_DEVICE_ADD("ramdac", BT458, 83'020'800) - MCFG_DEVICE_ADD("scc", SCC8530N, 4.9152_MHz_XTAL) - MCFG_Z80SCC_OUT_INT_CB(WRITELINE(DEVICE_SELF, mpcb828_device, scc_irq)) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("kbd", interpro_keyboard_port_device, write_txd)) + SCC8530N(config, m_scc, 4.9152_MHz_XTAL); + m_scc->out_int_callback().set(FUNC(mpcb828_device::scc_irq)); + m_scc->out_txda_callback().set("kbd", FUNC(interpro_keyboard_port_device::write_txd)); - INTERPRO_KEYBOARD_PORT(config, "kbd", interpro_keyboard_devices, "hle_en_us").rxd_handler_cb().set("scc", FUNC(z80scc_device::rxa_w)); + INTERPRO_KEYBOARD_PORT(config, "kbd", interpro_keyboard_devices, "hle_en_us").rxd_handler_cb().set(m_scc, FUNC(z80scc_device::rxa_w)); MACHINE_CONFIG_END /* @@ -506,11 +506,11 @@ MACHINE_CONFIG_START(mpcb849_device::device_add_mconfig) MCFG_DEVICE_ADD("ramdac", BT458, 0) // unconfirmed clock - MCFG_DEVICE_ADD("scc", SCC8530N, 4.9152_MHz_XTAL) - MCFG_Z80SCC_OUT_INT_CB(WRITELINE(DEVICE_SELF, mpcb849_device, scc_irq)) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("kbd", interpro_keyboard_port_device, write_txd)) + SCC8530N(config, m_scc, 4.9152_MHz_XTAL); + m_scc->out_int_callback().set(FUNC(mpcb849_device::scc_irq)); + m_scc->out_txda_callback().set("kbd", FUNC(interpro_keyboard_port_device::write_txd)); - INTERPRO_KEYBOARD_PORT(config, "kbd", interpro_keyboard_devices, "hle_en_us").rxd_handler_cb().set("scc", FUNC(z80scc_device::rxa_w)); + INTERPRO_KEYBOARD_PORT(config, "kbd", interpro_keyboard_devices, "hle_en_us").rxd_handler_cb().set(m_scc, FUNC(z80scc_device::rxa_w)); MACHINE_CONFIG_END /* @@ -555,9 +555,9 @@ MACHINE_CONFIG_START(msmt094_device::device_add_mconfig) //MCFG_DEVICE_ADD("dsp3", TMS32030, 40_MHz_XTAL) // FIXME: actually Z0853006VSC - MCFG_DEVICE_ADD("scc", SCC8530N, 4.9152_MHz_XTAL) - MCFG_Z80SCC_OUT_INT_CB(WRITELINE(DEVICE_SELF, msmt094_device, scc_irq)) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("kbd", interpro_keyboard_port_device, write_txd)) + scc8530_device& scc(SCC8530N(config, "scc", 4.9152_MHz_XTAL)); + scc.out_int_callback().set(FUNC(msmt094_device::scc_irq)); + scc.out_txda_callback().set("kbd", FUNC(interpro_keyboard_port_device::write_txd)); INTERPRO_KEYBOARD_PORT(config, "kbd", interpro_keyboard_devices, "hle_en_us").rxd_handler_cb().set("scc", FUNC(z80scc_device::rxa_w)); MACHINE_CONFIG_END diff --git a/src/devices/bus/isa/eis_sad8852.cpp b/src/devices/bus/isa/eis_sad8852.cpp index e7d64f06f2c..4f2b5a0c856 100644 --- a/src/devices/bus/isa/eis_sad8852.cpp +++ b/src/devices/bus/isa/eis_sad8852.cpp @@ -204,7 +204,7 @@ MACHINE_CONFIG_START(isa16_sad8852_device::device_add_mconfig) MCFG_DEVICE_PROGRAM_MAP( sad8852_mem ) MCFG_DEVICE_IO_MAP(sad8852_io) - MCFG_DEVICE_ADD("terminal", I8274_NEW, XTAL(12'000'000) / 3) // Needs verification + I8274_NEW(config, "terminal", XTAL(12'000'000) / 3); // Needs verification MACHINE_CONFIG_END isa16_sad8852_device::isa16_sad8852_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : diff --git a/src/devices/bus/nubus/quadralink.cpp b/src/devices/bus/nubus/quadralink.cpp index 28eb2fdf025..f38a0f3b57b 100644 --- a/src/devices/bus/nubus/quadralink.cpp +++ b/src/devices/bus/nubus/quadralink.cpp @@ -38,33 +38,33 @@ DEFINE_DEVICE_TYPE(NUBUS_QUADRALINK, nubus_quadralink_device, "nb_qdlink", "Appl //------------------------------------------------- MACHINE_CONFIG_START(nubus_quadralink_device::device_add_mconfig) - MCFG_DEVICE_ADD("scc1", SCC8530N, 3.6864_MHz_XTAL) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("serport0", rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE("serport1", rs232_port_device, write_txd)) + SCC8530N(config, m_scc1, 3.6864_MHz_XTAL); + m_scc1->out_txda_callback().set("serport0", FUNC(rs232_port_device::write_txd)); + m_scc1->out_txdb_callback().set("serport1", FUNC(rs232_port_device::write_txd)); - MCFG_DEVICE_ADD("scc2", SCC8530N, 3.6864_MHz_XTAL) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("serport2", rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE("serport3", rs232_port_device, write_txd)) + SCC8530N(config, m_scc2, 3.6864_MHz_XTAL); + m_scc2->out_txda_callback().set("serport2", FUNC(rs232_port_device::write_txd)); + m_scc2->out_txdb_callback().set("serport3", FUNC(rs232_port_device::write_txd)); MCFG_DEVICE_ADD("serport0", RS232_PORT, isa_com, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("scc1", z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("scc1", z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("scc1", z80scc_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc1, z80scc_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc1, z80scc_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc1, z80scc_device, ctsa_w)) MCFG_DEVICE_ADD("serport1", RS232_PORT, isa_com, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("scc1", z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("scc1", z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("scc1", z80scc_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc1, z80scc_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc1, z80scc_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc1, z80scc_device, ctsb_w)) MCFG_DEVICE_ADD("serport2", RS232_PORT, isa_com, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("scc2", z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("scc2", z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("scc2", z80scc_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w)) MCFG_DEVICE_ADD("serport3", RS232_PORT, isa_com, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE("scc2", z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("scc2", z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("scc2", z80scc_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w)) MACHINE_CONFIG_END //------------------------------------------------- diff --git a/src/devices/bus/vme/vme_mzr8300.cpp b/src/devices/bus/vme/vme_mzr8300.cpp index 158845770e4..ab6f70857e3 100644 --- a/src/devices/bus/vme/vme_mzr8300.cpp +++ b/src/devices/bus/vme/vme_mzr8300.cpp @@ -125,12 +125,12 @@ DEFINE_DEVICE_TYPE(VME_MZR8300, vme_mzr8300_card_device, "mzr8300", "Mizar 8300 //------------------------------------------------- MACHINE_CONFIG_START(vme_mzr8300_card_device::device_add_mconfig) - MCFG_DEVICE_ADD("sio0", UPD7201_NEW, XTAL(4'000'000)) - MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs232p1", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("rs232p1", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("rs232p1", rs232_port_device, write_rts)) + upd7201_new_device& sio0(UPD7201_NEW(config, "sio0", XTAL(4'000'000))); + sio0.out_txdb_callback().set("rs232p1", FUNC(rs232_port_device::write_txd)); + sio0.out_dtrb_callback().set("rs232p1", FUNC(rs232_port_device::write_dtr)); + sio0.out_rtsb_callback().set("rs232p1", FUNC(rs232_port_device::write_rts)); - MCFG_DEVICE_ADD("sio1", UPD7201_NEW, XTAL(4'000'000)) + UPD7201_NEW(config, "sio1", XTAL(4'000'000)); MCFG_DEVICE_ADD("rs232p1", RS232_PORT, default_rs232_devices, "terminal") MCFG_RS232_RXD_HANDLER(WRITELINE("sio0", upd7201_new_device, rxb_w)) diff --git a/src/devices/machine/8530scc.h b/src/devices/machine/8530scc.h index c95d2d7bdc7..d0a41a6af96 100644 --- a/src/devices/machine/8530scc.h +++ b/src/devices/machine/8530scc.h @@ -11,9 +11,6 @@ #ifndef MAME_MACHINE_8530SCC_H #define MAME_MACHINE_8530SCC_H -#define MCFG_Z8530_INTRQ_CALLBACK(_write) \ - downcast(*device).set_intrq_wr_callback(DEVCB_##_write); - class scc8530_t : public device_t { public: @@ -31,7 +28,6 @@ public: scc8530_t(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_intrq_wr_callback(Object &&cb) { return intrq_cb.set_callback(std::forward(cb)); } auto intrq_callback() { return intrq_cb.bind(); } uint8_t get_reg_a(int reg); diff --git a/src/devices/machine/z80scc.cpp b/src/devices/machine/z80scc.cpp index a4a9c3ebe68..dd967d6af27 100644 --- a/src/devices/machine/z80scc.cpp +++ b/src/devices/machine/z80scc.cpp @@ -390,10 +390,11 @@ DEFINE_DEVICE_TYPE(SCC8523L, scc8523l_device, "scc8523l", "Zilog Z85 //------------------------------------------------- // device_add_mconfig - add device configuration //------------------------------------------------- -MACHINE_CONFIG_START(z80scc_device::device_add_mconfig) - MCFG_DEVICE_ADD(CHANA_TAG, Z80SCC_CHANNEL, 0) - MCFG_DEVICE_ADD(CHANB_TAG, Z80SCC_CHANNEL, 0) -MACHINE_CONFIG_END +void z80scc_device::device_add_mconfig(machine_config &config) +{ + Z80SCC_CHANNEL(config, CHANA_TAG, 0); + Z80SCC_CHANNEL(config, CHANB_TAG, 0); +} //************************************************************************** diff --git a/src/devices/machine/z80scc.h b/src/devices/machine/z80scc.h index b4c92f01385..259536290da 100644 --- a/src/devices/machine/z80scc.h +++ b/src/devices/machine/z80scc.h @@ -44,57 +44,6 @@ #define Z80SCC_USE_LOCAL_BRG 0 -#define MCFG_Z80SCC_OFFSETS(_rxa, _txa, _rxb, _txb) \ - downcast(*device).configure_channels(_rxa, _txa, _rxb, _txb); - -#define MCFG_Z80SCC_OUT_INT_CB(_devcb) \ - downcast(*device).set_out_int_callback(DEVCB_##_devcb); - -// Port A callbacks -#define MCFG_Z80SCC_OUT_TXDA_CB(_devcb) \ - downcast(*device).set_out_txd_callback<0>(DEVCB_##_devcb); - -#define MCFG_Z80SCC_OUT_DTRA_CB(_devcb) \ - downcast(*device).set_out_dtr_callback<0>(DEVCB_##_devcb); - -#define MCFG_Z80SCC_OUT_RTSA_CB(_devcb) \ - downcast(*device).set_out_rts_callback<0>(DEVCB_##_devcb); - -#define MCFG_Z80SCC_OUT_WREQA_CB(_devcb) \ - downcast(*device).set_out_wreq_callback<0>(DEVCB_##_devcb); - -#define MCFG_Z80SCC_OUT_SYNCA_CB(_devcb) \ - downcast(*device).set_out_sync_callback<0>(DEVCB_##_devcb); - -#define MCFG_Z80SCC_OUT_RXDRQA_CB(_devcb) \ - downcast(*device).set_out_rxdrq_callback<0>(DEVCB_##_devcb); - -#define MCFG_Z80SCC_OUT_TXDRQA_CB(_devcb) \ - downcast(*device).set_out_txdrq_callback<0>(DEVCB_##_devcb); - -// Port B callbacks -#define MCFG_Z80SCC_OUT_TXDB_CB(_devcb) \ - downcast(*device).set_out_txd_callback<1>(DEVCB_##_devcb); - -#define MCFG_Z80SCC_OUT_DTRB_CB(_devcb) \ - downcast(*device).set_out_dtr_callback<1>(DEVCB_##_devcb); - -#define MCFG_Z80SCC_OUT_RTSB_CB(_devcb) \ - downcast(*device).set_out_rts_callback<1>(DEVCB_##_devcb); - -#define MCFG_Z80SCC_OUT_WREQB_CB(_devcb) \ - downcast(*device).set_out_wreq_callback<1>(DEVCB_##_devcb); - -#define MCFG_Z80SCC_OUT_SYNCB_CB(_devcb) \ - downcast(*device).set_out_sync_callback<1>(DEVCB_##_devcb); - -#define MCFG_Z80SCC_OUT_RXDRQB_CB(_devcb) \ - downcast(*device).set_out_rxdrq_callback<1>(DEVCB_##_devcb); - -#define MCFG_Z80SCC_OUT_TXDRQB_CB(_devcb) \ - downcast(*device).set_out_txdrq_callback<1>(DEVCB_##_devcb); - - //************************************************************************** // TYPE DEFINITIONS //************************************************************************** @@ -378,15 +327,6 @@ class z80scc_device : public device_t, public device_z80daisy_interface friend class z80scc_channel; public: - template devcb_base &set_out_txd_callback(Object &&cb) { return m_out_txd_cb[N].set_callback(std::forward(cb)); } - template devcb_base &set_out_dtr_callback(Object &&cb) { return m_out_dtr_cb[N].set_callback(std::forward(cb)); } - template devcb_base &set_out_rts_callback(Object &&cb) { return m_out_rts_cb[N].set_callback(std::forward(cb)); } - template devcb_base &set_out_wreq_callback(Object &&cb) { return m_out_wreq_cb[N].set_callback(std::forward(cb)); } - template devcb_base &set_out_sync_callback(Object &&cb) { return m_out_sync_cb[N].set_callback(std::forward(cb)); } - template devcb_base &set_out_rxdrq_callback(Object &&cb) { return m_out_rxdrq_cb[N].set_callback(std::forward(cb)); } - template devcb_base &set_out_txdrq_callback(Object &&cb) { return m_out_txdrq_cb[N].set_callback(std::forward(cb)); } - template devcb_base &set_out_int_callback(Object &&cb) { return m_out_int_cb.set_callback(std::forward(cb)); } - auto out_txda_callback() { return m_out_txd_cb[0].bind(); } auto out_dtra_callback() { return m_out_dtr_cb[0].bind(); } auto out_rtsa_callback() { return m_out_rts_cb[0].bind(); } diff --git a/src/devices/machine/z80sio.h b/src/devices/machine/z80sio.h index 3c629208d64..eff587dc281 100644 --- a/src/devices/machine/z80sio.h +++ b/src/devices/machine/z80sio.h @@ -66,57 +66,6 @@ #define SIO_CHANA_TAG "cha" #define SIO_CHANB_TAG "chb" -/* Generic macros */ -#define MCFG_Z80SIO_OUT_INT_CB(_devcb) \ - downcast(*device).set_out_int_callback(DEVCB_##_devcb); - -#define MCFG_Z80SIO_CPU(_cputag) \ - downcast(*device).set_cputag(_cputag); - -// Port A callbacks -#define MCFG_Z80SIO_OUT_TXDA_CB(_devcb) \ - downcast(*device).set_out_txd_callback<0>(DEVCB_##_devcb); - -#define MCFG_Z80SIO_OUT_DTRA_CB(_devcb) \ - downcast(*device).set_out_dtr_callback<0>(DEVCB_##_devcb); - -#define MCFG_Z80SIO_OUT_RTSA_CB(_devcb) \ - downcast(*device).set_out_rts_callback<0>(DEVCB_##_devcb); - -#define MCFG_Z80SIO_OUT_WRDYA_CB(_devcb) \ - downcast(*device).set_out_wrdy_callback<0>(DEVCB_##_devcb); - -#define MCFG_Z80SIO_OUT_SYNCA_CB(_devcb) \ - downcast(*device).set_out_sync_callback<0>(DEVCB_##_devcb); - -#define MCFG_Z80SIO_OUT_RXDRQA_CB(_devcb) \ - downcast(*device).set_out_rxdrq_callback<0>(DEVCB_##_devcb); - -#define MCFG_Z80SIO_OUT_TXDRQA_CB(_devcb) \ - downcast(*device).set_out_txdrq_callback<0>(DEVCB_##_devcb); - -// Port B callbacks -#define MCFG_Z80SIO_OUT_TXDB_CB(_devcb) \ - downcast(*device).set_out_txd_callback<1>(DEVCB_##_devcb); - -#define MCFG_Z80SIO_OUT_DTRB_CB(_devcb) \ - downcast(*device).set_out_dtr_callback<1>(DEVCB_##_devcb); - -#define MCFG_Z80SIO_OUT_RTSB_CB(_devcb) \ - downcast(*device).set_out_rts_callback<1>(DEVCB_##_devcb); - -#define MCFG_Z80SIO_OUT_WRDYB_CB(_devcb) \ - downcast(*device).set_out_wrdy_callback<1>(DEVCB_##_devcb); - -#define MCFG_Z80SIO_OUT_SYNCB_CB(_devcb) \ - downcast(*device).set_out_sync_callback<1>(DEVCB_##_devcb); - -#define MCFG_Z80SIO_OUT_RXDRQB_CB(_devcb) \ - downcast(*device).set_out_rxdrq_callback<1>(DEVCB_##_devcb); - -#define MCFG_Z80SIO_OUT_TXDRQB_CB(_devcb) \ - downcast(*device).set_out_txdrq_callback<1>(DEVCB_##_devcb); - //************************************************************************** // TYPE DEFINITIONS @@ -338,15 +287,6 @@ public: // construction/destruction z80sio_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - template devcb_base &set_out_txd_callback(Object &&cb) { return m_out_txd_cb[N].set_callback(std::forward(cb)); } - template devcb_base &set_out_dtr_callback(Object &&cb) { return m_out_dtr_cb[N].set_callback(std::forward(cb)); } - template devcb_base &set_out_rts_callback(Object &&cb) { return m_out_rts_cb[N].set_callback(std::forward(cb)); } - template devcb_base &set_out_wrdy_callback(Object &&cb) { return m_out_wrdy_cb[N].set_callback(std::forward(cb)); } - template devcb_base &set_out_sync_callback(Object &&cb) { return m_out_sync_cb[N].set_callback(std::forward(cb)); } - template devcb_base &set_out_int_callback(Object &&cb) { return m_out_int_cb.set_callback(std::forward(cb)); } - template devcb_base &set_out_rxdrq_callback(Object &&cb) { return m_out_rxdrq_cb[N].set_callback(std::forward(cb)); } - template devcb_base &set_out_txdrq_callback(Object &&cb) { return m_out_txdrq_cb[N].set_callback(std::forward(cb)); } - auto out_txda_callback() { return m_out_txd_cb[0].bind(); } auto out_txdb_callback() { return m_out_txd_cb[1].bind(); } auto out_dtra_callback() { return m_out_dtr_cb[0].bind(); } diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp index 9f78a00f45a..fcea7a31d80 100644 --- a/src/mame/drivers/apple2gs.cpp +++ b/src/mame/drivers/apple2gs.cpp @@ -4665,20 +4665,20 @@ MACHINE_CONFIG_START( apple2gs_state::apple2gs ) ADDRESS_MAP_BANK(config, A2GS_B04000_TAG).set_map(&apple2gs_state::rb4000bank_map).set_options(ENDIANNESS_LITTLE, 8, 32, 0x8000); /* serial */ - MCFG_DEVICE_ADD(SCC_TAG, SCC85C30, A2GS_14M/2) - MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, apple2gs_state, scc_irq_w)) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd)) + SCC85C30(config, m_scc, A2GS_14M/2); + m_scc->out_int_callback().set(FUNC(apple2gs_state::scc_irq_w)); + m_scc->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); + m_scc->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC_TAG, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC_TAG, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC_TAG, z80scc_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc, z80scc_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc, z80scc_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc, z80scc_device, ctsa_w)) MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC_TAG, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC_TAG, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC_TAG, z80scc_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc, z80scc_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc, z80scc_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc, z80scc_device, ctsb_w)) /* slot devices */ MCFG_DEVICE_ADD("a2bus", A2BUS, 0) diff --git a/src/mame/drivers/atarist.cpp b/src/mame/drivers/atarist.cpp index 9783c49ee86..8712e0f1ee4 100644 --- a/src/mame/drivers/atarist.cpp +++ b/src/mame/drivers/atarist.cpp @@ -2305,7 +2305,7 @@ MACHINE_CONFIG_START(megaste_state::megaste) MCFG_DEVICE_MODIFY(M68000_TAG) MCFG_DEVICE_PROGRAM_MAP(megaste_map) MCFG_DEVICE_ADD(RP5C15_TAG, RP5C15, XTAL(32'768)) - MCFG_DEVICE_ADD(Z8530_TAG, SCC8530, Y2/4) + SCC8530(config, Z8530_TAG, Y2/4); /* internal ram */ m_ram->set_default_size("4M") // Mega STe 4 diff --git a/src/mame/drivers/aussiebyte.cpp b/src/mame/drivers/aussiebyte.cpp index 4ac252dac0f..74e90812a9b 100644 --- a/src/mame/drivers/aussiebyte.cpp +++ b/src/mame/drivers/aussiebyte.cpp @@ -559,18 +559,18 @@ MACHINE_CONFIG_START(aussiebyte_state::aussiebyte) m_pio2->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); m_pio2->out_pa_callback().set(FUNC(aussiebyte_state::port20_w)); - MCFG_DEVICE_ADD("sio1", Z80SIO, 16_MHz_XTAL / 4) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_Z80SIO_OUT_WRDYA_CB(WRITELINE(*this, aussiebyte_state, sio1_rdya_w)) - MCFG_Z80SIO_OUT_WRDYB_CB(WRITELINE(*this, aussiebyte_state, sio1_rdyb_w)) + z80sio_device& sio1(Z80SIO(config, "sio1", 16_MHz_XTAL / 4)); + sio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + sio1.out_wrdya_callback().set(FUNC(aussiebyte_state::sio1_rdya_w)); + sio1.out_wrdyb_callback().set(FUNC(aussiebyte_state::sio1_rdyb_w)); - MCFG_DEVICE_ADD("sio2", Z80SIO, 16_MHz_XTAL / 4) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_Z80SIO_OUT_WRDYA_CB(WRITELINE(*this, aussiebyte_state, sio2_rdya_w)) - MCFG_Z80SIO_OUT_WRDYB_CB(WRITELINE(*this, aussiebyte_state, sio2_rdyb_w)) - 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& sio2(Z80SIO(config, "sio2", 16_MHz_XTAL / 4)); + sio2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + sio2.out_wrdya_callback().set(FUNC(aussiebyte_state::sio2_rdya_w)); + sio2.out_wrdyb_callback().set(FUNC(aussiebyte_state::sio2_rdyb_w)); + sio2.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); + sio2.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); + sio2.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "keyboard") MCFG_RS232_RXD_HANDLER(WRITELINE("sio2", z80sio_device, rxa_w)) diff --git a/src/mame/drivers/bigbord2.cpp b/src/mame/drivers/bigbord2.cpp index c42788ffbe7..88abd275837 100644 --- a/src/mame/drivers/bigbord2.cpp +++ b/src/mame/drivers/bigbord2.cpp @@ -573,18 +573,18 @@ MACHINE_CONFIG_START(bigbord2_state::bigbord2) MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, bigbord2_state, io_read_byte)) MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, bigbord2_state, io_write_byte)) - MCFG_DEVICE_ADD("sio", Z80SIO, MAIN_CLOCK) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_Z80SIO_OUT_SYNCA_CB(WRITELINE("ctc1", z80ctc_device, trg2)) - MCFG_Z80SIO_OUT_WRDYA_CB(WRITELINE(*this, bigbord2_state, sio_wrdya_w)) - MCFG_Z80SIO_OUT_WRDYB_CB(WRITELINE(*this, bigbord2_state, sio_wrdyb_w)) + Z80SIO(config, m_sio, MAIN_CLOCK); + m_sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + m_sio->out_synca_callback().set("ctc1", FUNC(z80ctc_device::trg2)); + m_sio->out_wrdya_callback().set(FUNC(bigbord2_state::sio_wrdya_w)); + m_sio->out_wrdyb_callback().set(FUNC(bigbord2_state::sio_wrdyb_w)); MCFG_DEVICE_ADD("ctc1", Z80CTC, MAIN_CLOCK) MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) MCFG_DEVICE_ADD("ctc2", Z80CTC, MAIN_CLOCK) MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_Z80CTC_ZC0_CB(WRITELINE("sio", z80sio_device, rxtxcb_w)) // to SIO Ch B + MCFG_Z80CTC_ZC0_CB(WRITELINE(m_sio, z80sio_device, rxtxcb_w)) // to SIO Ch B MCFG_Z80CTC_ZC1_CB(WRITELINE(*this, bigbord2_state, ctc_z1_w)) // to SIO Ch A MCFG_Z80CTC_ZC2_CB(WRITELINE("ctc2", z80ctc_device, trg3)) diff --git a/src/mame/drivers/c900.cpp b/src/mame/drivers/c900.cpp index 8f7433e29ce..40ba63b7b8a 100644 --- a/src/mame/drivers/c900.cpp +++ b/src/mame/drivers/c900.cpp @@ -105,12 +105,12 @@ MACHINE_CONFIG_START(c900_state::c900) Z8036(config, "cio", 6'000'000); - MCFG_DEVICE_ADD("scc", SCC8030, 6'000'000) // 5'850'000 is the ideal figure + scc8030_device& scc(SCC8030(config, "scc", 6'000'000)); // 5'850'000 is the ideal figure /* Port B */ - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE("rs232", rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_DTRB_CB(WRITELINE("rs232", rs232_port_device, write_dtr)) - MCFG_Z80SCC_OUT_RTSB_CB(WRITELINE("rs232", rs232_port_device, write_rts)) - //MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, c900_state, scc_int)) + scc.out_txdb_callback().set("rs232", FUNC(rs232_port_device::write_txd)); + scc.out_dtrb_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); + scc.out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts)); + //scc.out_int_callback().set("rs232", FUNC(c900_state::scc_int)); MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") MCFG_RS232_RXD_HANDLER (WRITELINE ("scc", scc8030_device, rxb_w)) diff --git a/src/mame/drivers/codata.cpp b/src/mame/drivers/codata.cpp index 7fa5f64e27c..c98605ee3ee 100644 --- a/src/mame/drivers/codata.cpp +++ b/src/mame/drivers/codata.cpp @@ -67,12 +67,12 @@ MACHINE_CONFIG_START(codata_state::codata) MCFG_DEVICE_ADD("maincpu",M68000, XTAL(16'000'000) / 2) MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_ADD("uart", UPD7201_NEW, XTAL(16'000'000) / 4) - MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs423a", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs423a", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs423a", rs232_port_device, write_rts)) - MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs423b", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_5)) + upd7201_new_device& uart(UPD7201_NEW(config, "uart", 16_MHz_XTAL / 4)); + uart.out_txda_callback().set("rs423a", FUNC(rs232_port_device::write_txd)); + uart.out_dtra_callback().set("rs423a", FUNC(rs232_port_device::write_dtr)); + uart.out_rtsa_callback().set("rs423a", FUNC(rs232_port_device::write_rts)); + uart.out_txdb_callback().set("rs423b", FUNC(rs232_port_device::write_txd)); + uart.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_5); am9513_device &timer(AM9513A(config, "timer", 16_MHz_XTAL / 4)); timer.out1_cb().set_nop(); // Timer 1 = "Abort/Reset" (watchdog) diff --git a/src/mame/drivers/decstation.cpp b/src/mame/drivers/decstation.cpp index 43d4973902c..5593bad0c25 100644 --- a/src/mame/drivers/decstation.cpp +++ b/src/mame/drivers/decstation.cpp @@ -228,13 +228,13 @@ MACHINE_CONFIG_START(decstation_state::kn02da) MCFG_MC146818_IRQ_HANDLER(WRITELINE("ioga", dec_ioga_device, rtc_irq_w)) MCFG_MC146818_BINARY(true) - MCFG_DEVICE_ADD("scc0", SCC85C30, XTAL(14'745'600)/2) - //MCFG_Z80SCC_OUT_INT_CB(WRITELINE("ioga", dec_ioga_device, scc0_irq_w)) + SCC85C30(config, m_scc0, XTAL(14'745'600)/2); + //m_scc0->out_int_callback().set("ioga", FUNC(dec_ioga_device::scc0_irq_w)); - MCFG_DEVICE_ADD("scc1", SCC85C30, XTAL(14'745'600)/2) - //MCFG_Z80SCC_OUT_INT_CB(WRITELINE("ioga", dec_ioga_device, scc1_irq_w)) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("rs232a", rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE("rs232b", rs232_port_device, write_txd)) + SCC85C30(config, m_scc1, XTAL(14'745'600)/2); + //m_scc1->out_int_callback().set("ioga", FUNC(dec_ioga_device::scc1_irq_w)); + m_scc1->out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd)); + m_scc1->out_txdb_callback().set("rs232b", FUNC(rs232_port_device::write_txd)); MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, "terminal") MCFG_RS232_RXD_HANDLER(WRITELINE("scc1", z80scc_device, rxa_w)) diff --git a/src/mame/drivers/dsb46.cpp b/src/mame/drivers/dsb46.cpp index b837f49e93e..ea34b754a7f 100644 --- a/src/mame/drivers/dsb46.cpp +++ b/src/mame/drivers/dsb46.cpp @@ -123,11 +123,11 @@ MACHINE_CONFIG_START(dsb46_state::dsb46) ctc_clock.signal_handler().append("ctc1", FUNC(z80ctc_device::trg2)); /* Devices */ - MCFG_DEVICE_ADD("sio", Z80SIO, XTAL(24'000'000) / 6) - 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", 24_MHz_XTAL / 6)); + 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/ft68m.cpp b/src/mame/drivers/ft68m.cpp index dfeb86ae78e..5de78e3389b 100644 --- a/src/mame/drivers/ft68m.cpp +++ b/src/mame/drivers/ft68m.cpp @@ -89,12 +89,12 @@ MACHINE_CONFIG_START(ft68m_state::ft68m) MCFG_DEVICE_ADD("maincpu", M68000, XTAL(19'660'800) / 2) MCFG_DEVICE_PROGRAM_MAP(mem_map) - MCFG_DEVICE_ADD("mpsc", UPD7201_NEW, 0) - 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_INT_CB(INPUTLINE("maincpu", M68K_IRQ_5)) + upd7201_new_device& mpsc(UPD7201_NEW(config, "mpsc", 0)); + mpsc.out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd)); + mpsc.out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr)); + mpsc.out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts)); + mpsc.out_txdb_callback().set("rs232b", FUNC(rs232_port_device::write_txd)); + mpsc.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_5); am9513_device &stc(AM9513A(config, "stc", XTAL(19'660'800) / 8)); stc.out2_cb().set_inputline(m_maincpu, M68K_IRQ_6); diff --git a/src/mame/drivers/hk68v10.cpp b/src/mame/drivers/hk68v10.cpp index e0641938d19..fbacf6cebf6 100644 --- a/src/mame/drivers/hk68v10.cpp +++ b/src/mame/drivers/hk68v10.cpp @@ -345,14 +345,14 @@ MACHINE_CONFIG_START(hk68v10_state::hk68v10) Z8536(config, "cio", SCC_CLOCK); /* Terminal Port config */ - MCFG_DEVICE_ADD("scc", SCC8530N, SCC_CLOCK) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("rs232trm", rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_DTRA_CB(WRITELINE("rs232trm", rs232_port_device, write_dtr)) - MCFG_Z80SCC_OUT_RTSA_CB(WRITELINE("rs232trm", rs232_port_device, write_rts)) + SCC8530N(config, m_sccterm, SCC_CLOCK); + m_sccterm->out_txda_callback().set("rs232trm", FUNC(rs232_port_device::write_txd)); + m_sccterm->out_dtra_callback().set("rs232trm", FUNC(rs232_port_device::write_dtr)); + m_sccterm->out_rtsa_callback().set("rs232trm", FUNC(rs232_port_device::write_rts)); MCFG_DEVICE_ADD("rs232trm", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("scc", scc8530_device, rxa_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("scc", scc8530_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_sccterm, scc8530_device, rxa_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_sccterm, scc8530_device, ctsa_w)) MCFG_VME_DEVICE_ADD("vme") MCFG_VME_SLOT_ADD("vme", 1, hk68_vme_cards, nullptr) diff --git a/src/mame/drivers/hotstuff.cpp b/src/mame/drivers/hotstuff.cpp index c649b6f7bd7..8f09949a8de 100644 --- a/src/mame/drivers/hotstuff.cpp +++ b/src/mame/drivers/hotstuff.cpp @@ -115,11 +115,11 @@ MACHINE_CONFIG_START(hotstuff_state::hotstuff) MCFG_PALETTE_ADD("palette", 0x200) - MCFG_DEVICE_ADD("scc1", SCC8530N, 4915200) - MCFG_Z80SCC_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_4)) + scc8530_device& scc1(SCC8530N(config, "scc1", 4915200)); + scc1.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_4); - MCFG_DEVICE_ADD("scc2", SCC8530N, 4915200) - MCFG_Z80SCC_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_5)) + scc8530_device& scc2(SCC8530N(config, "scc2", 4915200)); + scc2.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_5); MCFG_DEVICE_ADD("rtc", MC146818, XTAL(32'768)) MCFG_MC146818_IRQ_HANDLER(INPUTLINE("maincpu", M68K_IRQ_1)) diff --git a/src/mame/drivers/indigo.cpp b/src/mame/drivers/indigo.cpp index e856147d46c..9f9fbf94df1 100644 --- a/src/mame/drivers/indigo.cpp +++ b/src/mame/drivers/indigo.cpp @@ -603,7 +603,7 @@ MACHINE_CONFIG_START(indigo_state::indigo3k) SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("scc", SCC8530, 7000000) + SCC8530(config, m_scc, 7000000); MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0) MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "cdrom", SCSICD, SCSI_ID_6) diff --git a/src/mame/drivers/isbc.cpp b/src/mame/drivers/isbc.cpp index ac51247f888..7b10f99a956 100644 --- a/src/mame/drivers/isbc.cpp +++ b/src/mame/drivers/isbc.cpp @@ -484,7 +484,7 @@ MACHINE_CONFIG_START(isbc_state::isbc286) 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)) +// m_uart8274->out_int_callback().set(FUNC(isbc_state::isbc_uart8274_irq)); m_uart8274->out_int_callback().set("pic_0", FUNC(pic8259_device::ir6_w)); #endif diff --git a/src/mame/drivers/jade.cpp b/src/mame/drivers/jade.cpp index 2210bff7fb2..bd96121266e 100644 --- a/src/mame/drivers/jade.cpp +++ b/src/mame/drivers/jade.cpp @@ -77,11 +77,11 @@ MACHINE_CONFIG_START(jade_state::jade) CLOCK(config, "trg0", 4_MHz_XTAL / 2).signal_handler().set("ctc2", FUNC(z80ctc_device::trg0)); /* Devices */ - MCFG_DEVICE_ADD("sio", Z80SIO, XTAL(4'000'000)) - //MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) // no evidence of a daisy chain because IM2 is not set - 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", 4_MHz_XTAL)); + //sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); // no evidence of a daisy chain because IM2 is not set + 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/mbee.cpp b/src/mame/drivers/mbee.cpp index 6324fe929b7..dbe2515160e 100644 --- a/src/mame/drivers/mbee.cpp +++ b/src/mame/drivers/mbee.cpp @@ -847,7 +847,7 @@ MACHINE_CONFIG_START(mbee_state::mbeett) MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbeett) MCFG_DEVICE_REMOVE("quickload") MCFG_DEVICE_REMOVE("quickload2") - MCFG_DEVICE_ADD("scc", SCC8530, 4000000) // clock unknown + SCC8530(config, "scc", 4000000); // clock unknown MACHINE_CONFIG_END /* Unused roms: diff --git a/src/mame/drivers/mc8030.cpp b/src/mame/drivers/mc8030.cpp index 6a12da64087..be216b3e7df 100644 --- a/src/mame/drivers/mc8030.cpp +++ b/src/mame/drivers/mc8030.cpp @@ -231,12 +231,11 @@ MACHINE_CONFIG_START(mc8030_state::mc8030) uart_clock.signal_handler().set("asp_sio", FUNC(z80sio_device::txca_w)); uart_clock.signal_handler().append("asp_sio", FUNC(z80sio_device::rxca_w)); - MCFG_DEVICE_ADD("asp_sio", Z80SIO, 4800) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + z80sio_device& sio(Z80SIO(config, "asp_sio", 4800)); // SIO CH A in = keyboard; out = beeper; CH B = IFSS (??) - 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)) + 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, "keyboard") MCFG_RS232_RXD_HANDLER(WRITELINE("asp_sio", z80sio_device, rxa_w)) diff --git a/src/mame/drivers/mccpm.cpp b/src/mame/drivers/mccpm.cpp index 218a0f34a1d..302c89cc0c0 100644 --- a/src/mame/drivers/mccpm.cpp +++ b/src/mame/drivers/mccpm.cpp @@ -91,11 +91,11 @@ MACHINE_CONFIG_START(mccpm_state::mccpm) uart_clock.signal_handler().set("sio", FUNC(z80sio_device::txca_w)); uart_clock.signal_handler().append("sio", FUNC(z80sio_device::rxca_w)); - 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/mes.cpp b/src/mame/drivers/mes.cpp index 4a2476cfe29..d6d3a8ed9de 100644 --- a/src/mame/drivers/mes.cpp +++ b/src/mame/drivers/mes.cpp @@ -150,7 +150,7 @@ MACHINE_CONFIG_START(mes_state::mes) MCFG_DEVICE_ADD("ctc", Z80CTC, 0) MCFG_DEVICE_ADD("pio", Z80PIO, 0) - MCFG_DEVICE_ADD("sio", Z80SIO, 0) + Z80SIO(config, "sio", 0); MCFG_DEVICE_ADD("keybd", GENERIC_KEYBOARD, 0) MCFG_GENERIC_KEYBOARD_CB(PUT(mes_state, kbd_put)) diff --git a/src/mame/drivers/micro3d.cpp b/src/mame/drivers/micro3d.cpp index 5a619db197c..158e4b3ca16 100644 --- a/src/mame/drivers/micro3d.cpp +++ b/src/mame/drivers/micro3d.cpp @@ -318,8 +318,8 @@ MACHINE_CONFIG_START(micro3d_state::micro3d) MCFG_DEVICE_PROGRAM_MAP(drmath_prg) MCFG_DEVICE_DATA_MAP(drmath_data) - MCFG_DEVICE_ADD("scc", SCC8530N, 32_MHz_XTAL / 2 / 2) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE("monitor_drmath", rs232_port_device, write_txd)) + scc8530_device& scc(SCC8530N(config, "scc", 32_MHz_XTAL / 2 / 2)); + scc.out_txdb_callback().set("monitor_drmath", FUNC(rs232_port_device::write_txd)); rs232_port_device &monitor_drmath(RS232_PORT(config, "monitor_drmath", default_rs232_devices, nullptr)); monitor_drmath.rxd_handler().set("scc", FUNC(z80scc_device::rxb_w)); diff --git a/src/mame/drivers/mvme147.cpp b/src/mame/drivers/mvme147.cpp index acece7fa57b..f4ceba450a3 100644 --- a/src/mame/drivers/mvme147.cpp +++ b/src/mame/drivers/mvme147.cpp @@ -658,16 +658,16 @@ MACHINE_CONFIG_START(mvme147_state::mvme147) MCFG_DEVICE_ADD("m48t18", M48T02, 0) /* t08 differs only in accepted voltage levels compared to t18 */ /* Terminal Port config */ - MCFG_DEVICE_ADD("scc", SCC85C30, SCC_CLOCK) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE("rs232trm", rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_DTRA_CB(WRITELINE("rs232trm", rs232_port_device, write_dtr)) - MCFG_Z80SCC_OUT_RTSA_CB(WRITELINE("rs232trm", rs232_port_device, write_rts)) + SCC85C30(config, m_sccterm, SCC_CLOCK); + m_sccterm->out_txda_callback().set("rs232trm", FUNC(rs232_port_device::write_txd)); + m_sccterm->out_dtra_callback().set("rs232trm", FUNC(rs232_port_device::write_dtr)); + m_sccterm->out_rtsa_callback().set("rs232trm", FUNC(rs232_port_device::write_rts)); MCFG_DEVICE_ADD("rs232trm", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER (WRITELINE ("scc", scc85c30_device, rxa_w)) - MCFG_RS232_CTS_HANDLER (WRITELINE ("scc", scc85c30_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER (WRITELINE(m_sccterm, scc85c30_device, rxa_w)) + MCFG_RS232_CTS_HANDLER (WRITELINE(m_sccterm, scc85c30_device, ctsa_w)) - MCFG_DEVICE_ADD("scc2", SCC85C30, SCC_CLOCK) + SCC85C30(config, m_sccterm2, SCC_CLOCK); MACHINE_CONFIG_END /* ROM definitions */ diff --git a/src/mame/drivers/octopus.cpp b/src/mame/drivers/octopus.cpp index 31f82a117a5..d5c7bb0621f 100644 --- a/src/mame/drivers/octopus.cpp +++ b/src/mame/drivers/octopus.cpp @@ -969,7 +969,7 @@ MACHINE_CONFIG_START(octopus_state::octopus) MCFG_PIT8253_CLK0(2457500) // DART channel A MCFG_PIT8253_OUT0_HANDLER(WRITELINE(*this, octopus_state,serial_clock_w)) // being able to write both Rx and Tx clocks at one time would be nice MCFG_PIT8253_CLK1(2457500) // DART channel B - MCFG_PIT8253_OUT1_HANDLER(WRITELINE("serial",z80sio_device,rxtxcb_w)) + MCFG_PIT8253_OUT1_HANDLER(WRITELINE(m_serial,z80sio_device,rxtxcb_w)) MCFG_PIT8253_CLK2(2457500) // speaker frequency MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, octopus_state,spk_freq_w)) @@ -977,12 +977,12 @@ MACHINE_CONFIG_START(octopus_state::octopus) MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) - MCFG_DEVICE_ADD("serial", Z80SIO, 16_MHz_XTAL / 4) // clock rate not mentioned in tech manual - MCFG_Z80SIO_OUT_INT_CB(WRITELINE("pic_master",pic8259_device, ir1_w)) - MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("serial_a",rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("serial_b",rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("serial_a",rs232_port_device, write_rts)) - MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("serial_b",rs232_port_device, write_rts)) + Z80SIO(config, m_serial, 16_MHz_XTAL / 4); // clock rate not mentioned in tech manual + m_serial->out_int_callback().set("pic_master", FUNC(pic8259_device::ir1_w)); + m_serial->out_txda_callback().set("serial_a", FUNC(rs232_port_device::write_txd)); + m_serial->out_txdb_callback().set("serial_b", FUNC(rs232_port_device::write_txd)); + m_serial->out_rtsa_callback().set("serial_a", FUNC(rs232_port_device::write_rts)); + m_serial->out_rtsb_callback().set("serial_b", FUNC(rs232_port_device::write_rts)); rs232_port_device &serial_a(RS232_PORT(config, "serial_a", default_rs232_devices, nullptr)); serial_a.rxd_handler().set(m_serial, FUNC(z80sio_device::rxa_w)); diff --git a/src/mame/drivers/onyx.cpp b/src/mame/drivers/onyx.cpp index db135958d7e..fc08a2b0856 100644 --- a/src/mame/drivers/onyx.cpp +++ b/src/mame/drivers/onyx.cpp @@ -162,14 +162,14 @@ MACHINE_CONFIG_START(onyx_state::c8002) MCFG_DEVICE_ADD("ctc1", Z80CTC, XTAL(16'000'000) /4) MCFG_DEVICE_ADD("ctc2", Z80CTC, XTAL(16'000'000) /4) MCFG_DEVICE_ADD("ctc3", Z80CTC, XTAL(16'000'000) /4) - MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL(16'000'000) /4) - 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_DEVICE_ADD("sio2", Z80SIO, XTAL(16'000'000) /4) - MCFG_DEVICE_ADD("sio3", Z80SIO, XTAL(16'000'000) /4) - MCFG_DEVICE_ADD("sio4", Z80SIO, XTAL(16'000'000) /4) - MCFG_DEVICE_ADD("sio5", Z80SIO, XTAL(16'000'000) /4) + Z80SIO(config, m_sio[0], XTAL(16'000'000) /4); + m_sio[0]->out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd)); + m_sio[0]->out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); + m_sio[0]->out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts)); + Z80SIO(config, m_sio[1], XTAL(16'000'000) /4); + Z80SIO(config, m_sio[2], XTAL(16'000'000) /4); + Z80SIO(config, m_sio[3], XTAL(16'000'000) /4); + Z80SIO(config, m_sio[4], XTAL(16'000'000) /4); MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") MCFG_RS232_RXD_HANDLER(WRITELINE("sio1", z80sio_device, rxa_w)) @@ -183,10 +183,10 @@ MACHINE_CONFIG_START(onyx_state::c8002) sio1s_clock.signal_handler().set("sio1s", FUNC(z80sio_device::rxtxcb_w)); //sio1s_clock.signal_handler().append("sio1s", FUNC(z80sio_device::txca_w)); - MCFG_DEVICE_ADD("sio1s", Z80SIO, XTAL(16'000'000) /4) - MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("rs232s", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("rs232s", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("rs232s", rs232_port_device, write_rts)) + z80sio_device& sio1s(Z80SIO(config, "sio1s", XTAL(16'000'000) /4)); + sio1s.out_txdb_callback().set("rs232s", FUNC(rs232_port_device::write_txd)); + sio1s.out_dtrb_callback().set("rs232s", FUNC(rs232_port_device::write_dtr)); + sio1s.out_rtsb_callback().set("rs232s", FUNC(rs232_port_device::write_rts)); MCFG_DEVICE_ADD("rs232s", RS232_PORT, default_rs232_devices, "terminal") MCFG_RS232_RXD_HANDLER(WRITELINE("sio1s", z80sio_device, rxb_w)) @@ -257,8 +257,8 @@ MACHINE_CONFIG_START(onyx_state::c5000) //MCFG_MACHINE_RESET_OVERRIDE(onyx_state, c8002) MCFG_DEVICE_ADD("sio1_clock", CLOCK, 614400) - MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE("sio1", z80sio_device, rxtxcb_w)) - //MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE("sio1" ,z80sio_device, txca_w)) + MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(m_sio[0], z80sio_device, rxtxcb_w)) + //MCFG_DEVCB_CHAIN_OUTPUT(WRITELINE(m_sio[0] ,z80sio_device, txca_w)) /* peripheral hardware */ //MCFG_DEVICE_ADD("pio1", Z80PIO, XTAL(16'000'000)/4) @@ -268,17 +268,18 @@ MACHINE_CONFIG_START(onyx_state::c5000) //MCFG_DEVICE_ADD("ctc1", Z80CTC, XTAL(16'000'000) /4) //MCFG_DEVICE_ADD("ctc2", Z80CTC, XTAL(16'000'000) /4) //MCFG_DEVICE_ADD("ctc3", Z80CTC, XTAL(16'000'000) /4) - MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL(16'000'000) /4) - 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(config, m_sio[0], XTAL(16'000'000) /4); + m_sio[0]->out_txdb_callback().set("rs232", FUNC(rs232_port_device::write_txd)); + m_sio[0]->out_dtrb_callback().set("rs232", FUNC(rs232_port_device::write_dtr)); + m_sio[0]->out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts)); MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER(WRITELINE("sio1", z80sio_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE("sio1", z80sio_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE("sio1", z80sio_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_sio[0], z80sio_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_sio[0], z80sio_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_sio[0], z80sio_device, ctsb_w)) - //MCFG_DEVICE_ADD("sio2", Z80SIO, XTAL(16'000'000) /4) + //MCFG_DEVICE_ADD(m_sio[1]", Z80SIO, XTAL(16'000'000) /4) MACHINE_CONFIG_END diff --git a/src/mame/drivers/p8k.cpp b/src/mame/drivers/p8k.cpp index cadcf6628f9..4e94c0b5d90 100644 --- a/src/mame/drivers/p8k.cpp +++ b/src/mame/drivers/p8k.cpp @@ -448,18 +448,18 @@ MACHINE_CONFIG_START(p8k_state::p8k) // Baud Gen 0, Baud Gen 1, Baud Gen 2, MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_DEVICE_ADD("sio", Z80SIO, XTAL(4'000'000)) - 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)) + z80sio_device& sio(Z80SIO(config, "sio", XTAL(4'000'000))); + 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(m_maincpu, INPUT_LINE_IRQ0); MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxb_w)) MCFG_RS232_CTS_HANDLER(WRITELINE("sio", z80sio_device, ctsb_w)) - MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL(4'000'000)) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + z80sio_device& sio1(Z80SIO(config, "sio1", XTAL(4'000'000))); + sio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); MCFG_DEVICE_ADD("pio0", Z80PIO, 1229000) MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) @@ -505,18 +505,18 @@ MACHINE_CONFIG_START(p8k_state::p8k_16) MCFG_DEVICE_ADD("ctc1", Z80CTC, XTAL(4'000'000)) MCFG_Z80CTC_INTR_CB(WRITELINE(*this, p8k_state, p8k_16_daisy_interrupt)) - MCFG_DEVICE_ADD("sio", Z80SIO, XTAL(4'000'000)) - 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(WRITELINE(*this, p8k_state, p8k_16_daisy_interrupt)) + z80sio_device& sio(Z80SIO(config, "sio", XTAL(4'000'000))); + 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(FUNC(p8k_state::p8k_16_daisy_interrupt)); MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal") MCFG_RS232_RXD_HANDLER(WRITELINE("sio", z80sio_device, rxb_w)) MCFG_RS232_CTS_HANDLER(WRITELINE("sio", z80sio_device, ctsb_w)) - MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL(4'000'000)) - MCFG_Z80SIO_OUT_INT_CB(WRITELINE(*this, p8k_state, p8k_16_daisy_interrupt)) + z80sio_device& sio1(Z80SIO(config, "sio1", XTAL(4'000'000))); + sio1.out_int_callback().set(FUNC(p8k_state::p8k_16_daisy_interrupt)); MCFG_DEVICE_ADD("pio0", Z80PIO, XTAL(4'000'000)) MCFG_Z80PIO_OUT_INT_CB(WRITELINE(*this, p8k_state, p8k_16_daisy_interrupt)) diff --git a/src/mame/drivers/pm68k.cpp b/src/mame/drivers/pm68k.cpp index c8020e6c8d9..ec009f21cb8 100644 --- a/src/mame/drivers/pm68k.cpp +++ b/src/mame/drivers/pm68k.cpp @@ -63,13 +63,13 @@ MACHINE_CONFIG_START(pm68k_state::pm68k) MCFG_DEVICE_ADD("maincpu", M68000, 8000000) MCFG_DEVICE_PROGRAM_MAP(pm68k_mem) - MCFG_DEVICE_ADD("mpsc", I8274_NEW, 0) - 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_device& mpsc(I8274_NEW(config, "mpsc", 0)); + mpsc.out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd)); + mpsc.out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr)); + mpsc.out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts)); + mpsc.out_txdb_callback().set("rs232b", FUNC(rs232_port_device::write_txd)); + mpsc.out_dtrb_callback().set("rs232b", FUNC(rs232_port_device::write_dtr)); + mpsc.out_rtsb_callback().set("rs232b", FUNC(rs232_port_device::write_rts)); am9513_device &stc(AM9513(config, "stc", 4000000)); stc.out4_cb().set("mpsc", FUNC(i8274_new_device::rxca_w)); diff --git a/src/mame/drivers/sun2.cpp b/src/mame/drivers/sun2.cpp index c6a32ed90f9..4d0ffe3503a 100644 --- a/src/mame/drivers/sun2.cpp +++ b/src/mame/drivers/sun2.cpp @@ -647,11 +647,11 @@ MACHINE_CONFIG_START(sun2_state::sun2vme) MCFG_INPUT_MERGER_ANY_HIGH("irq5") // 74LS05 open collectors MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", M68K_IRQ_5)) - MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 19.6608_MHz_XTAL / 4) - MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 19.6608_MHz_XTAL / 4) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_6)) + SCC8530N(config, SCC1_TAG, 19.6608_MHz_XTAL / 4); + scc8530_device& scc2(SCC8530N(config, SCC2_TAG, 19.6608_MHz_XTAL / 4)); + scc2.out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); + scc2.out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); + scc2.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_6); MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w)) @@ -700,11 +700,11 @@ MACHINE_CONFIG_START(sun2_state::sun2mbus) MCFG_INPUT_MERGER_ANY_HIGH("irq5") // 74LS05 open collectors MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", M68K_IRQ_5)) - MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 39.3216_MHz_XTAL / 8) - MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 39.3216_MHz_XTAL / 8) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_INT_CB(INPUTLINE("maincpu", M68K_IRQ_6)) + SCC8530N(config, SCC1_TAG, 39.3216_MHz_XTAL / 8); + scc8530_device& scc2(SCC8530N(config, SCC2_TAG, 39.3216_MHz_XTAL / 8)); + scc2.out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); + scc2.out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); + scc2.out_int_callback().set_inputline(m_maincpu, M68K_IRQ_6); MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w)) diff --git a/src/mame/drivers/sun3.cpp b/src/mame/drivers/sun3.cpp index df958ac6cfe..a77c9a523fd 100644 --- a/src/mame/drivers/sun3.cpp +++ b/src/mame/drivers/sun3.cpp @@ -999,24 +999,24 @@ MACHINE_CONFIG_START(sun3_state::sun3) MCFG_TIMER_DRIVER_ADD_PERIODIC("timer", sun3_state, sun3_timer, attotime::from_hz(100)) - MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 4.9152_MHz_XTAL) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(KEYBOARD_TAG, sun_keyboard_port_device, write_txd)) + SCC8530N(config, m_scc1, 4.9152_MHz_XTAL); + m_scc1->out_txda_callback().set(KEYBOARD_TAG, FUNC(sun_keyboard_port_device::write_txd)); SUNKBD_PORT(config, KEYBOARD_TAG, default_sun_keyboard_devices, "type3hle").rxd_handler().set(m_scc1, FUNC(z80scc_device::rxa_w)); - MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 4.9152_MHz_XTAL) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd)) + SCC8530N(config, m_scc2, 4.9152_MHz_XTAL); + m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); + m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w)) MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w)) MACHINE_CONFIG_END // Sun 3/60 @@ -1083,24 +1083,24 @@ MACHINE_CONFIG_START(sun3_state::sun3_50) // MMU Type 3 device space ADDRESS_MAP_BANK(config, "type3").set_map(&sun3_state::vmetype3space_map).set_options(ENDIANNESS_BIG, 32, 32, 0x80000000); - MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 4.9152_MHz_XTAL) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(KEYBOARD_TAG, sun_keyboard_port_device, write_txd)) + SCC8530N(config, m_scc1, 4.9152_MHz_XTAL); + m_scc1->out_txda_callback().set(KEYBOARD_TAG, FUNC(sun_keyboard_port_device::write_txd)); SUNKBD_PORT(config, KEYBOARD_TAG, default_sun_keyboard_devices, "type3hle").rxd_handler().set(m_scc1, FUNC(z80scc_device::rxa_w)); - MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 4.9152_MHz_XTAL) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd)) + SCC8530N(config, m_scc2, 4.9152_MHz_XTAL); + m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); + m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w)) MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w)) MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/sun3x.cpp b/src/mame/drivers/sun3x.cpp index cc901cf8d88..1607affc44a 100644 --- a/src/mame/drivers/sun3x.cpp +++ b/src/mame/drivers/sun3x.cpp @@ -595,24 +595,24 @@ MACHINE_CONFIG_START(sun3x_state::sun3_80) MCFG_DEVICE_ADD(TIMEKEEPER_TAG, M48T02, 0) - MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 4.9152_MHz_XTAL) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(KEYBOARD_TAG, sun_keyboard_port_device, write_txd)) + SCC8530N(config, m_scc1, 4.9152_MHz_XTAL); + m_scc1->out_txda_callback().set(KEYBOARD_TAG, FUNC(sun_keyboard_port_device::write_txd)); SUNKBD_PORT(config, KEYBOARD_TAG, default_sun_keyboard_devices, "type3hle").rxd_handler().set(m_scc1, FUNC(z80scc_device::rxa_w)); - MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 4.9152_MHz_XTAL) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd)) + SCC8530N(config, m_scc2, 4.9152_MHz_XTAL); + m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); + m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w)) MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w)) MCFG_DEVICE_ADD("scsi", SCSI_PORT, 0) MCFG_SCSIDEV_ADD("scsi:" SCSI_PORT_DEVICE1, "harddisk", SCSIHD, SCSI_ID_6) @@ -641,20 +641,20 @@ MACHINE_CONFIG_START(sun3x_state::sun3_460) MCFG_DEVICE_ADD(TIMEKEEPER_TAG, M48T02, 0) - MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 4.9152_MHz_XTAL) - MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 4.9152_MHz_XTAL) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd)) + SCC8530N(config, m_scc1, 4.9152_MHz_XTAL); + SCC8530N(config, m_scc2, 4.9152_MHz_XTAL); + m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); + m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w)) MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w)) MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/sun4.cpp b/src/mame/drivers/sun4.cpp index a670d1e38e3..20b6e9762ef 100644 --- a/src/mame/drivers/sun4.cpp +++ b/src/mame/drivers/sun4.cpp @@ -1923,27 +1923,28 @@ MACHINE_CONFIG_START(sun4_state::sun4) ADDRESS_MAP_BANK(config, "type1").set_map(&sun4_state::type1space_s4_map).set_options(ENDIANNESS_BIG, 32, 32, 0x80000000); // Keyboard/mouse - MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 4.9152_MHz_XTAL) - MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, sun4_state, scc1_int)) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(KEYBOARD_TAG, sun_keyboard_port_device, write_txd)) + SCC8530N(config, m_scc1, 4.9152_MHz_XTAL); + m_scc1->out_int_callback().set(FUNC(sun4_state::scc1_int)); + m_scc1->out_txda_callback().set(KEYBOARD_TAG, FUNC(sun_keyboard_port_device::write_txd)); SUNKBD_PORT(config, KEYBOARD_TAG, default_sun_keyboard_devices, "type4hle").rxd_handler().set(m_scc1, FUNC(z80scc_device::rxa_w)); // RS232 serial ports - MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 4.9152_MHz_XTAL) - MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, sun4_state, scc2_int)) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd)) + SCC8530N(config, m_scc2, 4.9152_MHz_XTAL); + m_scc2->out_int_callback().set(FUNC(sun4_state::scc2_int)); + m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); + m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); + MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w)) MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w)) MCFG_NSCSI_BUS_ADD("scsibus") MCFG_NSCSI_ADD("scsibus:0", sun_scsi_devices, "harddisk", false) @@ -1977,27 +1978,27 @@ MACHINE_CONFIG_START(sun4_state::sun4c) ADDRESS_MAP_BANK(config, "type1").set_map(&sun4_state::type1space_map).set_options(ENDIANNESS_BIG, 32, 32, 0x80000000); // Keyboard/mouse - MCFG_DEVICE_ADD(SCC1_TAG, SCC8530N, 4.9152_MHz_XTAL) - MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, sun4_state, scc1_int)) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(KEYBOARD_TAG, sun_keyboard_port_device, write_txd)) + SCC8530N(config, m_scc1, 4.9152_MHz_XTAL); + m_scc1->out_int_callback().set(FUNC(sun4_state::scc1_int)); + m_scc1->out_txda_callback().set(KEYBOARD_TAG, FUNC(sun_keyboard_port_device::write_txd)); SUNKBD_PORT(config, KEYBOARD_TAG, default_sun_keyboard_devices, "type5hle").rxd_handler().set(m_scc1, FUNC(z80scc_device::rxa_w)); // RS232 serial ports - MCFG_DEVICE_ADD(SCC2_TAG, SCC8530N, 4.9152_MHz_XTAL) - MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, sun4_state, scc2_int)) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd)) + SCC8530N(config, m_scc2, 4.9152_MHz_XTAL); + m_scc2->out_int_callback().set(FUNC(sun4_state::scc2_int)); + m_scc2->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); + m_scc2->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsa_w)) MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC2_TAG, z80scc_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc2, z80scc_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc2, z80scc_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc2, z80scc_device, ctsb_w)) MCFG_NSCSI_BUS_ADD("scsibus") MCFG_NSCSI_ADD("scsibus:0", sun_scsi_devices, "harddisk", false) diff --git a/src/mame/drivers/sys2900.cpp b/src/mame/drivers/sys2900.cpp index 52ba62ba3ab..090749163dc 100644 --- a/src/mame/drivers/sys2900.cpp +++ b/src/mame/drivers/sys2900.cpp @@ -160,8 +160,8 @@ MACHINE_CONFIG_START(sys2900_state::sys2900) MCFG_DEVICE_ADD("ctc", Z80CTC, 0) MCFG_DEVICE_ADD("pio", Z80PIO, 0) - MCFG_DEVICE_ADD("sio1", Z80SIO, 0) - MCFG_DEVICE_ADD("sio2", Z80SIO, 0) + Z80SIO(config, "sio1", 0); + Z80SIO(config, "sio2", 0); MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mame/drivers/systec.cpp b/src/mame/drivers/systec.cpp index 1c5122376f4..cce923910d7 100644 --- a/src/mame/drivers/systec.cpp +++ b/src/mame/drivers/systec.cpp @@ -95,11 +95,11 @@ MACHINE_CONFIG_START(systec_state::systec) 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)) // no evidence of a daisy chain because IM2 is not set - 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))); + //sio2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); // no evidence of a daisy chain because IM2 is not set + 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/ts816.cpp b/src/mame/drivers/ts816.cpp index 759b8e5b9a4..c1706da9907 100644 --- a/src/mame/drivers/ts816.cpp +++ b/src/mame/drivers/ts816.cpp @@ -274,26 +274,26 @@ MACHINE_CONFIG_START(ts816_state::ts816) MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0) MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ts816_state, kbd_put)) - //MCFG_DEVICE_ADD("sio0", Z80SIO, XTAL(16'000'000) / 4) - //MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_DEVICE_ADD("sio1", Z80SIO, XTAL(16'000'000) / 4) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_DEVICE_ADD("sio2", Z80SIO, XTAL(16'000'000) / 4) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_DEVICE_ADD("sio3", Z80SIO, XTAL(16'000'000) / 4) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_DEVICE_ADD("sio4", Z80SIO, XTAL(16'000'000) / 4) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_DEVICE_ADD("sio5", Z80SIO, XTAL(16'000'000) / 4) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_DEVICE_ADD("sio6", Z80SIO, XTAL(16'000'000) / 4) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_DEVICE_ADD("sio7", Z80SIO, XTAL(16'000'000) / 4) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_DEVICE_ADD("sio8", Z80SIO, XTAL(16'000'000) / 4) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) - MCFG_DEVICE_ADD("sio9", Z80SIO, XTAL(16'000'000) / 4) - MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) + //z80sio_device& sio0(Z80SIO(config, "sio0", XTAL(16'000'000) / 4)); + //sio0.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + z80sio_device& sio1(Z80SIO(config, "sio1", XTAL(16'000'000) / 4)); + sio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + z80sio_device& sio2(Z80SIO(config, "sio2", XTAL(16'000'000) / 4)); + sio2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + z80sio_device& sio3(Z80SIO(config, "sio3", XTAL(16'000'000) / 4)); + sio3.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + z80sio_device& sio4(Z80SIO(config, "sio4", XTAL(16'000'000) / 4)); + sio4.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + z80sio_device& sio5(Z80SIO(config, "sio5", XTAL(16'000'000) / 4)); + sio5.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + z80sio_device& sio6(Z80SIO(config, "sio6", XTAL(16'000'000) / 4)); + sio6.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + z80sio_device& sio7(Z80SIO(config, "sio7", XTAL(16'000'000) / 4)); + sio7.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + z80sio_device& sio8(Z80SIO(config, "sio8", XTAL(16'000'000) / 4)); + sio8.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + z80sio_device& sio9(Z80SIO(config, "sio9", XTAL(16'000'000) / 4)); + sio9.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); MCFG_DEVICE_ADD("pio", Z80PIO, XTAL(16'000'000) / 4) MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0)) diff --git a/src/mame/drivers/v102.cpp b/src/mame/drivers/v102.cpp index de8d3508eeb..0feb16f30cc 100644 --- a/src/mame/drivers/v102.cpp +++ b/src/mame/drivers/v102.cpp @@ -93,8 +93,8 @@ MACHINE_CONFIG_START(v102_state::v102) EEPROM_2804(config, "eeprom"); - MCFG_DEVICE_ADD("mpsc", UPD7201_NEW, XTAL(18'575'000) / 5) // divider not verified - MCFG_Z80SIO_OUT_INT_CB(WRITELINE("mainirq", input_merger_device, in_w<0>)) + upd7201_new_device& mpsc(UPD7201_NEW(config, "mpsc", XTAL(18'575'000) / 5)); // divider not verified + mpsc.out_int_callback().set("mainirq", FUNC(input_merger_device::in_w<0>)); MCFG_DEVICE_ADD("usart", I8251, XTAL(18'575'000) / 5) // divider not verified MCFG_I8251_RXRDY_HANDLER(WRITELINE("mainirq", input_merger_device, in_w<1>)) diff --git a/src/mame/drivers/v550.cpp b/src/mame/drivers/v550.cpp index 5c030b6248f..e140b347155 100644 --- a/src/mame/drivers/v550.cpp +++ b/src/mame/drivers/v550.cpp @@ -120,8 +120,8 @@ MACHINE_CONFIG_START(v550_state::v550) MCFG_DEVICE_ADD("usart", I8251, 34.846_MHz_XTAL / 16) // NEC D8251AC MCFG_I8251_RXRDY_HANDLER(WRITELINE("mainint", input_merger_device, in_w<1>)) - MCFG_DEVICE_ADD("mpsc", UPD7201_NEW, 34.846_MHz_XTAL / 16) // NEC D7201C - MCFG_Z80SIO_OUT_INT_CB(WRITELINE("mainint", input_merger_device, in_w<0>)) + upd7201_new_device& mpsc(UPD7201_NEW(config, "mpsc", 34.846_MHz_XTAL / 16)); // NEC D7201C + mpsc.out_int_callback().set("mainint", FUNC(input_merger_device::in_w<0>)); INPUT_MERGER_ANY_HIGH(config, "mainint").output_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); diff --git a/src/mame/drivers/x68k.cpp b/src/mame/drivers/x68k.cpp index 9f70168cd64..7218c0d5b40 100644 --- a/src/mame/drivers/x68k.cpp +++ b/src/mame/drivers/x68k.cpp @@ -1634,7 +1634,7 @@ MACHINE_CONFIG_START(x68k_state::x68000) MCFG_HD63450_DMA_READ_0_CB(READ8("upd72065", upd72065_device, mdma_r)) MCFG_HD63450_DMA_WRITE_0_CB(WRITE8("upd72065", upd72065_device, mdma_w)) - MCFG_DEVICE_ADD("scc", SCC8530, 40_MHz_XTAL / 8) + SCC8530(config, m_scc, 40_MHz_XTAL / 8); MCFG_DEVICE_ADD("rp5c15", RP5C15, 32.768_kHz_XTAL) MCFG_RP5C15_OUT_ALARM_CB(WRITELINE("mc68901", mc68901_device, i0_w)) @@ -1756,8 +1756,7 @@ MACHINE_CONFIG_START(x68k_state::x68030) MCFG_DEVICE_MODIFY("hd63450") MCFG_DEVICE_CLOCK(50_MHz_XTAL / 4) - MCFG_DEVICE_MODIFY("scc") - MCFG_DEVICE_CLOCK(20_MHz_XTAL / 4) + m_scc->set_clock(20_MHz_XTAL / 4); MCFG_DEVICE_MODIFY("mb89352") MCFG_DEVICE_CLOCK(20_MHz_XTAL / 4) MACHINE_CONFIG_END diff --git a/src/mame/machine/ioc2.cpp b/src/mame/machine/ioc2.cpp index 390a50dc443..a3366cfac65 100644 --- a/src/mame/machine/ioc2.cpp +++ b/src/mame/machine/ioc2.cpp @@ -49,24 +49,24 @@ ioport_constructor ioc2_device::device_input_ports() const } MACHINE_CONFIG_START(ioc2_device::device_add_mconfig) - MCFG_DEVICE_ADD(SCC_TAG, SCC85230, SCC_PCLK) - MCFG_Z80SCC_OFFSETS(SCC_RXA_CLK.value(), SCC_TXA_CLK.value(), SCC_RXB_CLK.value(), SCC_TXB_CLK.value()) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_DTRA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_dtr)) - MCFG_Z80SCC_OUT_RTSA_CB(WRITELINE(RS232A_TAG, rs232_port_device, write_rts)) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_DTRB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_dtr)) - MCFG_Z80SCC_OUT_RTSB_CB(WRITELINE(RS232B_TAG, rs232_port_device, write_rts)) + SCC85230(config, m_scc, SCC_PCLK); + m_scc->configure_channels(SCC_RXA_CLK.value(), SCC_TXA_CLK.value(), SCC_RXB_CLK.value(), SCC_TXB_CLK.value()); + m_scc->out_txda_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_txd)); + m_scc->out_dtra_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_dtr)); + m_scc->out_rtsa_callback().set(RS232A_TAG, FUNC(rs232_port_device::write_rts)); + m_scc->out_txdb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_txd)); + m_scc->out_dtrb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_dtr)); + m_scc->out_rtsb_callback().set(RS232B_TAG, FUNC(rs232_port_device::write_rts)); MCFG_DEVICE_ADD(RS232A_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC_TAG, scc85230_device, ctsa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC_TAG, scc85230_device, dcda_w)) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC_TAG, scc85230_device, rxa_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc, scc85230_device, ctsa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc, scc85230_device, dcda_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc, scc85230_device, rxa_w)) MCFG_DEVICE_ADD(RS232B_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_CTS_HANDLER(WRITELINE(SCC_TAG, scc85230_device, ctsb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(SCC_TAG, scc85230_device, dcdb_w)) - MCFG_RS232_RXD_HANDLER(WRITELINE(SCC_TAG, scc85230_device, rxb_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc, scc85230_device, ctsb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc, scc85230_device, dcdb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc, scc85230_device, rxb_w)) PC_LPT(config, m_pi1, 0); diff --git a/src/mame/machine/iteagle_fpga.cpp b/src/mame/machine/iteagle_fpga.cpp index 3b9db40f5ad..f7f80cffae6 100644 --- a/src/mame/machine/iteagle_fpga.cpp +++ b/src/mame/machine/iteagle_fpga.cpp @@ -57,21 +57,21 @@ MACHINE_CONFIG_START(iteagle_fpga_device::device_add_mconfig) // RS232 serial ports // The console terminal (com1) operates at 38400 baud - MCFG_DEVICE_ADD(AM85C30_TAG, SCC85C30, 7.3728_MHz_XTAL) - MCFG_Z80SCC_OFFSETS((7.3728_MHz_XTAL).value(), 0, (7.3728_MHz_XTAL).value(), 0) - MCFG_Z80SCC_OUT_INT_CB(WRITELINE(*this, iteagle_fpga_device, serial_interrupt)) - MCFG_Z80SCC_OUT_TXDA_CB(WRITELINE(COM2_TAG, rs232_port_device, write_txd)) - MCFG_Z80SCC_OUT_TXDB_CB(WRITELINE(COM1_TAG, rs232_port_device, write_txd)) + SCC85C30(config, m_scc1, 7.3728_MHz_XTAL); + m_scc1->configure_channels((7.3728_MHz_XTAL).value(), 0, (7.3728_MHz_XTAL).value(), 0); + m_scc1->out_int_callback().set(FUNC(iteagle_fpga_device::serial_interrupt)); + m_scc1->out_txda_callback().set(COM2_TAG, FUNC(rs232_port_device::write_txd)); + m_scc1->out_txdb_callback().set(COM1_TAG, FUNC(rs232_port_device::write_txd)); MCFG_DEVICE_ADD(COM1_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(AM85C30_TAG, scc85c30_device, rxb_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(AM85C30_TAG, scc85c30_device, dcdb_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(AM85C30_TAG, scc85c30_device, ctsb_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc1, scc85c30_device, rxb_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc1, scc85c30_device, dcdb_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc1, scc85c30_device, ctsb_w)) MCFG_DEVICE_ADD(COM2_TAG, RS232_PORT, default_rs232_devices, nullptr) - MCFG_RS232_RXD_HANDLER(WRITELINE(AM85C30_TAG, scc85c30_device, rxa_w)) - MCFG_RS232_DCD_HANDLER(WRITELINE(AM85C30_TAG, scc85c30_device, dcda_w)) - MCFG_RS232_CTS_HANDLER(WRITELINE(AM85C30_TAG, scc85c30_device, ctsa_w)) + MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc1, scc85c30_device, rxa_w)) + MCFG_RS232_DCD_HANDLER(WRITELINE(m_scc1, scc85c30_device, dcda_w)) + MCFG_RS232_CTS_HANDLER(WRITELINE(m_scc1, scc85c30_device, ctsa_w)) MACHINE_CONFIG_END void iteagle_fpga_device::device_start()