summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2018-08-30 20:15:32 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2018-08-30 20:15:32 +0200
commit4f6c56b47f94431064c436014eafc12721626ccc (patch)
tree2f9d2c87485c7edb78479e22927a6eda49285011
parentb9d16de49045b7b7147872cf96433445c11d665e (diff)
z80daisy_generic, z80dart, z80dma: removed MCFG macros (nw)
z80_daisy: first part of MCFG macro removal (nw)
-rw-r--r--src/devices/bus/abcbus/lux21046.cpp18
-rw-r--r--src/devices/bus/abcbus/sio.cpp9
-rw-r--r--src/devices/bus/cpc/cpc_rs232.cpp18
-rw-r--r--src/devices/bus/epson_sio/tf20.cpp8
-rw-r--r--src/devices/bus/wangpc/rtc.cpp6
-rw-r--r--src/devices/cpu/z80/tmpz84c011.h74
-rw-r--r--src/devices/cpu/z80/tmpz84c015.cpp44
-rw-r--r--src/devices/cpu/z80/z80.h3
-rw-r--r--src/devices/machine/z80daisy_generic.h14
-rw-r--r--src/devices/machine/z80dart.h68
-rw-r--r--src/devices/machine/z80dma.h33
-rw-r--r--src/mame/audio/cinemat.cpp8
-rw-r--r--src/mame/audio/efo_zsu.cpp8
-rw-r--r--src/mame/audio/nichisnd.cpp20
-rw-r--r--src/mame/drivers/a5105.cpp10
-rw-r--r--src/mame/drivers/a7150.cpp8
-rw-r--r--src/mame/drivers/abc80.cpp8
-rw-r--r--src/mame/drivers/abc80x.cpp26
-rw-r--r--src/mame/drivers/altos2.cpp10
-rw-r--r--src/mame/drivers/altos5.cpp10
-rw-r--r--src/mame/drivers/ampro.cpp11
-rw-r--r--src/mame/drivers/astrocde.cpp9
-rw-r--r--src/mame/drivers/att4425.cpp8
-rw-r--r--src/mame/drivers/attache.cpp18
-rw-r--r--src/mame/drivers/aussiebyte.cpp8
-rw-r--r--src/mame/drivers/avt.cpp12
-rw-r--r--src/mame/drivers/babbage.cpp11
-rw-r--r--src/mame/drivers/bbcbc.cpp10
-rw-r--r--src/mame/drivers/bcs3.cpp18
-rw-r--r--src/mame/drivers/bigbord2.cpp14
-rw-r--r--src/mame/drivers/binbug.cpp10
-rw-r--r--src/mame/drivers/br8641.cpp10
-rw-r--r--src/mame/drivers/bullet.cpp88
-rw-r--r--src/mame/drivers/c80.cpp8
-rw-r--r--src/mame/drivers/cchasm.cpp9
-rw-r--r--src/mame/drivers/ccs300.cpp10
-rw-r--r--src/mame/drivers/compis.cpp30
-rw-r--r--src/mame/drivers/cpzodiac.cpp10
-rw-r--r--src/mame/drivers/czk80.cpp21
-rw-r--r--src/mame/drivers/dlair.cpp10
-rw-r--r--src/mame/drivers/dmax8000.cpp10
-rw-r--r--src/mame/drivers/dsb46.cpp10
-rw-r--r--src/mame/drivers/einstein.cpp24
-rw-r--r--src/mame/drivers/excali64.cpp14
-rw-r--r--src/mame/drivers/gp_1.cpp10
-rw-r--r--src/mame/drivers/gp_2.cpp10
-rw-r--r--src/mame/drivers/hazelgr.cpp10
-rw-r--r--src/mame/drivers/huebler.cpp14
-rw-r--r--src/mame/drivers/isbc.cpp16
-rw-r--r--src/mame/drivers/jankenmn.cpp10
-rw-r--r--src/mame/drivers/joctronic.cpp26
-rw-r--r--src/mame/drivers/kaypro.cpp16
-rw-r--r--src/mame/drivers/kdt6.cpp8
-rw-r--r--src/mame/drivers/kenseim.cpp24
-rw-r--r--src/mame/drivers/llc.cpp16
-rw-r--r--src/mame/drivers/m5.cpp15
-rw-r--r--src/mame/drivers/mbee.cpp16
-rw-r--r--src/mame/drivers/mcr.cpp30
-rw-r--r--src/mame/drivers/mcr3.cpp14
-rw-r--r--src/mame/drivers/meritm.cpp26
-rw-r--r--src/mame/drivers/mmm.cpp10
-rw-r--r--src/mame/drivers/mpf1.cpp30
-rw-r--r--src/mame/drivers/mtx.cpp18
-rw-r--r--src/mame/drivers/nanos.cpp10
-rw-r--r--src/mame/drivers/nbmj9195.cpp168
-rw-r--r--src/mame/drivers/nichild.cpp24
-rw-r--r--src/mame/drivers/osbexec.cpp10
-rw-r--r--src/mame/drivers/p8k.cpp29
-rw-r--r--src/mame/drivers/pasopia.cpp11
-rw-r--r--src/mame/drivers/pasopia7.cpp11
-rw-r--r--src/mame/drivers/pbaction.cpp14
-rw-r--r--src/mame/drivers/pcm.cpp10
-rw-r--r--src/mame/drivers/pipeline.cpp8
-rw-r--r--src/mame/drivers/polyplay.cpp23
-rw-r--r--src/mame/drivers/proconn.cpp11
-rw-r--r--src/mame/drivers/pulsar.cpp21
-rw-r--r--src/mame/drivers/pve500.cpp8
-rw-r--r--src/mame/drivers/qvt103.cpp10
-rw-r--r--src/mame/drivers/rc702.cpp10
-rw-r--r--src/mame/drivers/rt1715.cpp11
-rw-r--r--src/mame/drivers/senjyo.cpp8
-rw-r--r--src/mame/drivers/stargame.cpp10
-rw-r--r--src/mame/drivers/super6.cpp8
-rw-r--r--src/mame/drivers/super80.cpp18
-rw-r--r--src/mame/drivers/superslave.cpp10
-rw-r--r--src/mame/drivers/tiki100.cpp30
-rw-r--r--src/mame/drivers/trs80m2.cpp58
-rw-r--r--src/mame/drivers/ts802.cpp33
-rw-r--r--src/mame/drivers/ts803.cpp16
-rw-r--r--src/mame/drivers/ts816.cpp16
-rw-r--r--src/mame/drivers/univac.cpp10
-rw-r--r--src/mame/drivers/vcs80.cpp8
-rw-r--r--src/mame/drivers/x1.cpp15
-rw-r--r--src/mame/drivers/x1twin.cpp8
-rw-r--r--src/mame/drivers/xerox820.cpp40
-rw-r--r--src/mame/drivers/z9001.cpp10
-rw-r--r--src/mame/drivers/zorba.cpp14
-rw-r--r--src/mame/includes/abc80.h2
-rw-r--r--src/mame/includes/abc80x.h2
-rw-r--r--src/mame/includes/astrocde.h5
-rw-r--r--src/mame/includes/aussiebyte.h2
-rw-r--r--src/mame/includes/c80.h2
-rw-r--r--src/mame/includes/cchasm.h3
-rw-r--r--src/mame/includes/huebler.h7
-rw-r--r--src/mame/includes/kaypro.h2
-rw-r--r--src/mame/includes/llc.h2
-rw-r--r--src/mame/includes/m5.h3
-rw-r--r--src/mame/includes/mbee.h2
-rw-r--r--src/mame/includes/mcr.h2
-rw-r--r--src/mame/includes/mpf1.h2
-rw-r--r--src/mame/includes/mtx.h3
-rw-r--r--src/mame/includes/pbaction.h3
-rw-r--r--src/mame/includes/polyplay.h3
-rw-r--r--src/mame/includes/super6.h2
-rw-r--r--src/mame/includes/super80.h2
-rw-r--r--src/mame/includes/tiki100.h2
-rw-r--r--src/mame/includes/trs80m2.h2
-rw-r--r--src/mame/includes/vcs80.h2
-rw-r--r--src/mame/includes/x1.h4
-rw-r--r--src/mame/machine/acs8600_ics.cpp9
-rw-r--r--src/mame/machine/acs8600_ics.h3
-rw-r--r--src/mame/machine/inder_sb.cpp8
-rw-r--r--src/mame/machine/inder_sb.h2
123 files changed, 853 insertions, 1034 deletions
diff --git a/src/devices/bus/abcbus/lux21046.cpp b/src/devices/bus/abcbus/lux21046.cpp
index 3b20f164cdf..984193f5e66 100644
--- a/src/devices/bus/abcbus/lux21046.cpp
+++ b/src/devices/bus/abcbus/lux21046.cpp
@@ -161,7 +161,7 @@ void luxor_55_21046_device::luxor_55_21046_io(address_map &map)
map(0x58, 0x58).mirror(0x0007).select(0xff00).r(FUNC(luxor_55_21046_device::_9a_r));
map(0x68, 0x6b).mirror(0xff00).r(SAB1793_TAG, FUNC(fd1793_device::read));
map(0x78, 0x7b).mirror(0xff00).w(SAB1793_TAG, FUNC(fd1793_device::write));
- map(0x80, 0x80).mirror(0xff77).rw(Z80DMA_TAG, FUNC(z80dma_device::bus_r), FUNC(z80dma_device::bus_w));
+ map(0x80, 0x80).mirror(0xff77).rw(m_dma, FUNC(z80dma_device::bus_r), FUNC(z80dma_device::bus_w));
}
@@ -296,17 +296,17 @@ MACHINE_CONFIG_START(luxor_55_21046_device::device_add_mconfig)
MCFG_DEVICE_PROGRAM_MAP(luxor_55_21046_mem)
MCFG_DEVICE_IO_MAP(luxor_55_21046_io)
- MCFG_DEVICE_ADD(Z80DMA_TAG, Z80DMA, 16_MHz_XTAL / 4)
- MCFG_Z80DMA_OUT_BUSREQ_CB(INPUTLINE(Z80_TAG, INPUT_LINE_HALT))
- MCFG_Z80DMA_OUT_INT_CB(WRITELINE(*this, luxor_55_21046_device, dma_int_w))
- MCFG_Z80DMA_IN_MREQ_CB(READ8(*this, luxor_55_21046_device, memory_read_byte))
- MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(*this, luxor_55_21046_device, memory_write_byte))
- MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, luxor_55_21046_device, io_read_byte))
- MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, luxor_55_21046_device, io_write_byte))
+ Z80DMA(config, m_dma, 16_MHz_XTAL / 4);
+ m_dma->out_busreq_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
+ m_dma->out_int_callback().set(FUNC(luxor_55_21046_device::dma_int_w));
+ m_dma->in_mreq_callback().set(FUNC(luxor_55_21046_device::memory_read_byte));
+ m_dma->out_mreq_callback().set(FUNC(luxor_55_21046_device::memory_write_byte));
+ m_dma->in_iorq_callback().set(FUNC(luxor_55_21046_device::io_read_byte));
+ m_dma->out_iorq_callback().set(FUNC(luxor_55_21046_device::io_write_byte));
MCFG_DEVICE_ADD(SAB1793_TAG, FD1793, 16_MHz_XTAL / 16)
MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, luxor_55_21046_device, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(Z80DMA_TAG, z80dma_device, rdy_w))
+ MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(m_dma, z80dma_device, rdy_w))
MACHINE_CONFIG_END
MACHINE_CONFIG_START(abc830_device::device_add_mconfig)
diff --git a/src/devices/bus/abcbus/sio.cpp b/src/devices/bus/abcbus/sio.cpp
index 1521e5b7459..326d4f07a73 100644
--- a/src/devices/bus/abcbus/sio.cpp
+++ b/src/devices/bus/abcbus/sio.cpp
@@ -76,10 +76,11 @@ const tiny_rom_entry *abc_sio_device::device_rom_region() const
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(abc_sio_device::device_add_mconfig)
- MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, XTAL(4'915'200))
- MCFG_DEVICE_ADD(Z80SIO_TAG, Z80DART, 0)
-MACHINE_CONFIG_END
+void abc_sio_device::device_add_mconfig(machine_config &config)
+{
+ Z80CTC(config, m_ctc, XTAL(4'915'200));
+ Z80DART(config, m_sio, 0);
+}
diff --git a/src/devices/bus/cpc/cpc_rs232.cpp b/src/devices/bus/cpc/cpc_rs232.cpp
index 5b2e9e374d2..a0f09dd5ac5 100644
--- a/src/devices/bus/cpc/cpc_rs232.cpp
+++ b/src/devices/bus/cpc/cpc_rs232.cpp
@@ -34,7 +34,7 @@ ROM_END
// device machine config
MACHINE_CONFIG_START(cpc_rs232_device::device_add_mconfig)
- MCFG_DEVICE_ADD("pit", PIT8253, 0)
+ MCFG_DEVICE_ADD(m_pit, PIT8253, 0)
MCFG_PIT8253_CLK0(2000000)
MCFG_PIT8253_CLK1(2000000)
MCFG_PIT8253_CLK2(2000000)
@@ -42,16 +42,16 @@ MACHINE_CONFIG_START(cpc_rs232_device::device_add_mconfig)
MCFG_PIT8253_OUT1_HANDLER(WRITELINE(*this, cpc_rs232_device, pit_out1_w))
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, cpc_rs232_device, pit_out2_w))
- MCFG_DEVICE_ADD("dart", Z80DART, XTAL(4'000'000))
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts))
+ Z80DART(config, m_dart, XTAL(4'000'000));
+ m_dart->out_txda_callback().set(m_rs232, FUNC(rs232_port_device::write_txd));
+ m_dart->out_dtra_callback().set(m_rs232, FUNC(rs232_port_device::write_dtr));
+ m_dart->out_rtsa_callback().set(m_rs232, FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232",RS232_PORT,default_rs232_devices,nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE("dart",z80dart_device,rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE("dart",z80dart_device,dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE("dart",z80dart_device,ctsa_w))
-// MCFG_RS232_RI_HANDLER(WRITELINE("dart",z80dart_device,ria_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart,z80dart_device,rxa_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_dart,z80dart_device,dcda_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_dart,z80dart_device,ctsa_w))
+// MCFG_RS232_RI_HANDLER(WRITELINE(m_dart,z80dart_device,ria_w))
// pass-through
MCFG_DEVICE_ADD("exp", CPC_EXPANSION_SLOT, 0)
diff --git a/src/devices/bus/epson_sio/tf20.cpp b/src/devices/bus/epson_sio/tf20.cpp
index 85ac6d3a358..1ba26849112 100644
--- a/src/devices/bus/epson_sio/tf20.cpp
+++ b/src/devices/bus/epson_sio/tf20.cpp
@@ -39,7 +39,7 @@ void epson_tf20_device::cpu_io(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
- map(0xf0, 0xf3).rw("3a", FUNC(upd7201_device::ba_cd_r), FUNC(upd7201_device::ba_cd_w));
+ map(0xf0, 0xf3).rw(m_mpsc, FUNC(upd7201_device::ba_cd_r), FUNC(upd7201_device::ba_cd_w));
map(0xf6, 0xf6).r(FUNC(epson_tf20_device::rom_disable_r));
map(0xf7, 0xf7).portr("tf20_dip");
map(0xf8, 0xf8).rw(FUNC(epson_tf20_device::upd765_tc_r), FUNC(epson_tf20_device::fdc_control_w));
@@ -96,9 +96,9 @@ MACHINE_CONFIG_START(epson_tf20_device::device_add_mconfig)
RAM(config, "ram").set_default_size("64K");
// upd7201 serial interface
- MCFG_DEVICE_ADD("3a", UPD7201, XTAL_CR1 / 2)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(*this, epson_tf20_device, txda_w))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(*this, epson_tf20_device, dtra_w))
+ UPD7201(config, m_mpsc, XTAL_CR1 / 2);
+ m_mpsc->out_txda_callback().set(FUNC(epson_tf20_device::txda_w));
+ m_mpsc->out_dtra_callback().set(FUNC(epson_tf20_device::dtra_w));
// floppy disk controller
MCFG_UPD765A_ADD("5a", true, true)
diff --git a/src/devices/bus/wangpc/rtc.cpp b/src/devices/bus/wangpc/rtc.cpp
index 794510e142b..dbff0547a4f 100644
--- a/src/devices/bus/wangpc/rtc.cpp
+++ b/src/devices/bus/wangpc/rtc.cpp
@@ -70,7 +70,7 @@ void wangpc_rtc_device::wangpc_rtc_mem(address_map &map)
void wangpc_rtc_device::wangpc_rtc_io(address_map &map)
{
map.global_mask(0xff);
- map(0x00, 0x03).rw(Z80SIO_TAG, FUNC(z80sio0_device::cd_ba_r), FUNC(z80sio0_device::cd_ba_w));
+ map(0x00, 0x03).rw(m_sio, FUNC(z80sio0_device::cd_ba_r), FUNC(z80sio0_device::cd_ba_w));
map(0x10, 0x1f).rw(AM9517A_TAG, FUNC(am9517a_device::read), FUNC(am9517a_device::write));
map(0x20, 0x23).rw(Z80CTC_0_TAG, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
map(0x30, 0x30); //AM_WRITE(clear_char_w)
@@ -119,8 +119,8 @@ MACHINE_CONFIG_START(wangpc_rtc_device::device_add_mconfig)
MCFG_DEVICE_ADD(Z80CTC_1_TAG, Z80CTC, 2000000)
MCFG_Z80CTC_INTR_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
- MCFG_DEVICE_ADD(Z80SIO_TAG, Z80SIO0, 2000000)
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
+ Z80SIO0(config, m_sio, 2000000);
+ m_sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
MACHINE_CONFIG_END
diff --git a/src/devices/cpu/z80/tmpz84c011.h b/src/devices/cpu/z80/tmpz84c011.h
index bef9986698c..013416cbd9e 100644
--- a/src/devices/cpu/z80/tmpz84c011.h
+++ b/src/devices/cpu/z80/tmpz84c011.h
@@ -23,50 +23,6 @@
// For daisy chain configuration, insert this:
#define TMPZ84C011_DAISY_INTERNAL { "tmpz84c011_ctc" }
-// CTC callbacks
-#define MCFG_TMPZ84C011_ZC0_CB(_devcb) \
- downcast<tmpz84c011_device &>(*device).set_zc0_callback(DEVCB_##_devcb);
-
-#define MCFG_TMPZ84C011_ZC1_CB(_devcb) \
- downcast<tmpz84c011_device &>(*device).set_zc1_callback(DEVCB_##_devcb);
-
-#define MCFG_TMPZ84C011_ZC2_CB(_devcb) \
- downcast<tmpz84c011_device &>(*device).set_zc2_callback(DEVCB_##_devcb);
-
-
-// I/O callbacks
-#define MCFG_TMPZ84C011_PORTA_READ_CB(_devcb) \
- downcast<tmpz84c011_device &>(*device).set_inportsa_cb(DEVCB_##_devcb);
-
-#define MCFG_TMPZ84C011_PORTB_READ_CB(_devcb) \
- downcast<tmpz84c011_device &>(*device).set_inportsb_cb(DEVCB_##_devcb);
-
-#define MCFG_TMPZ84C011_PORTC_READ_CB(_devcb) \
- downcast<tmpz84c011_device &>(*device).set_inportsc_cb(DEVCB_##_devcb);
-
-#define MCFG_TMPZ84C011_PORTD_READ_CB(_devcb) \
- downcast<tmpz84c011_device &>(*device).set_inportsd_cb(DEVCB_##_devcb);
-
-#define MCFG_TMPZ84C011_PORTE_READ_CB(_devcb) \
- downcast<tmpz84c011_device &>(*device).set_inportse_cb(DEVCB_##_devcb);
-
-
-#define MCFG_TMPZ84C011_PORTA_WRITE_CB(_devcb) \
- downcast<tmpz84c011_device &>(*device).set_outportsa_cb(DEVCB_##_devcb);
-
-#define MCFG_TMPZ84C011_PORTB_WRITE_CB(_devcb) \
- downcast<tmpz84c011_device &>(*device).set_outportsb_cb(DEVCB_##_devcb);
-
-#define MCFG_TMPZ84C011_PORTC_WRITE_CB(_devcb) \
- downcast<tmpz84c011_device &>(*device).set_outportsc_cb(DEVCB_##_devcb);
-
-#define MCFG_TMPZ84C011_PORTD_WRITE_CB(_devcb) \
- downcast<tmpz84c011_device &>(*device).set_outportsd_cb(DEVCB_##_devcb);
-
-#define MCFG_TMPZ84C011_PORTE_WRITE_CB(_devcb) \
- downcast<tmpz84c011_device &>(*device).set_outportse_cb(DEVCB_##_devcb);
-
-
/***************************************************************************
TYPE DEFINITIONS
***************************************************************************/
@@ -77,21 +33,21 @@ public:
tmpz84c011_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t);
// configuration helpers
- template<class Object> devcb_base &set_zc0_callback(Object &&cb) { return m_zc0_cb.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_zc1_callback(Object &&cb) { return m_zc1_cb.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_zc2_callback(Object &&cb) { return m_zc2_cb.set_callback(std::forward<Object>(cb)); }
-
- template<class Object> devcb_base &set_outportsa_cb(Object &&cb) { return m_outportsa.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_outportsb_cb(Object &&cb) { return m_outportsb.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_outportsc_cb(Object &&cb) { return m_outportsc.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_outportsd_cb(Object &&cb) { return m_outportsd.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_outportse_cb(Object &&cb) { return m_outportse.set_callback(std::forward<Object>(cb)); }
-
- template<class Object> devcb_base &set_inportsa_cb(Object &&cb) { return m_inportsa.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_inportsb_cb(Object &&cb) { return m_inportsb.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_inportsc_cb(Object &&cb) { return m_inportsc.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_inportsd_cb(Object &&cb) { return m_inportsd.set_callback(std::forward<Object>(cb)); }
- template<class Object> devcb_base &set_inportse_cb(Object &&cb) { return m_inportse.set_callback(std::forward<Object>(cb)); }
+ auto zc0_callback() { return m_zc0_cb.bind(); }
+ auto zc1_callback() { return m_zc1_cb.bind(); }
+ auto zc2_callback() { return m_zc2_cb.bind(); }
+
+ auto out_pa_callback() { return m_outportsa.bind(); }
+ auto out_pb_callback() { return m_outportsb.bind(); }
+ auto out_pc_callback() { return m_outportsc.bind(); }
+ auto out_pd_callback() { return m_outportsd.bind(); }
+ auto out_pe_callback() { return m_outportse.bind(); }
+
+ auto in_pa_callback() { return m_inportsa.bind(); }
+ auto in_pb_callback() { return m_inportsb.bind(); }
+ auto in_pc_callback() { return m_inportsc.bind(); }
+ auto in_pd_callback() { return m_inportsd.bind(); }
+ auto in_pe_callback() { return m_inportse.bind(); }
// CTC public interface
DECLARE_WRITE_LINE_MEMBER( trg0 ) { m_ctc->trg0(state); }
diff --git a/src/devices/cpu/z80/tmpz84c015.cpp b/src/devices/cpu/z80/tmpz84c015.cpp
index 78e515ecece..894cf5d7ad8 100644
--- a/src/devices/cpu/z80/tmpz84c015.cpp
+++ b/src/devices/cpu/z80/tmpz84c015.cpp
@@ -19,9 +19,9 @@ DEFINE_DEVICE_TYPE(TMPZ84C015, tmpz84c015_device, "tmpz84c015", "Toshiba TMPZ84C
void tmpz84c015_device::tmpz84c015_internal_io_map(address_map &map)
{
- map(0x10, 0x13).mirror(0xff00).rw("tmpz84c015_ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
- map(0x18, 0x1b).mirror(0xff00).rw("tmpz84c015_sio", FUNC(z80dart_device::ba_cd_r), FUNC(z80dart_device::ba_cd_w));
- map(0x1c, 0x1f).mirror(0xff00).rw("tmpz84c015_pio", FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt));
+ map(0x10, 0x13).mirror(0xff00).rw(m_ctc, FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
+ map(0x18, 0x1b).mirror(0xff00).rw(m_sio, FUNC(z80dart_device::ba_cd_r), FUNC(z80dart_device::ba_cd_w));
+ map(0x1c, 0x1f).mirror(0xff00).rw(m_pio, FUNC(z80pio_device::read_alt), FUNC(z80pio_device::write_alt));
map(0xf4, 0xf4).mirror(0xff00).w(FUNC(tmpz84c015_device::irq_priority_w));
}
@@ -180,25 +180,25 @@ WRITE8_MEMBER(tmpz84c015_device::irq_priority_w)
MACHINE_CONFIG_START(tmpz84c015_device::device_add_mconfig)
/* basic machine hardware */
- MCFG_DEVICE_ADD("tmpz84c015_sio", Z80SIO0, DERIVED_CLOCK(1,1))
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(DEVICE_SELF, INPUT_LINE_IRQ0))
-
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(*this, tmpz84c015_device, out_txda_cb_trampoline_w))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(*this, tmpz84c015_device, out_dtra_cb_trampoline_w))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(*this, tmpz84c015_device, out_rtsa_cb_trampoline_w))
- MCFG_Z80DART_OUT_WRDYA_CB(WRITELINE(*this, tmpz84c015_device, out_wrdya_cb_trampoline_w))
- MCFG_Z80DART_OUT_SYNCA_CB(WRITELINE(*this, tmpz84c015_device, out_synca_cb_trampoline_w))
-
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(*this, tmpz84c015_device, out_txdb_cb_trampoline_w))
- MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(*this, tmpz84c015_device, out_dtrb_cb_trampoline_w))
- MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(*this, tmpz84c015_device, out_rtsb_cb_trampoline_w))
- MCFG_Z80DART_OUT_WRDYB_CB(WRITELINE(*this, tmpz84c015_device, out_wrdyb_cb_trampoline_w))
- MCFG_Z80DART_OUT_SYNCB_CB(WRITELINE(*this, tmpz84c015_device, out_syncb_cb_trampoline_w))
-
- MCFG_Z80DART_OUT_RXDRQA_CB(WRITELINE(*this, tmpz84c015_device, out_rxdrqa_cb_trampoline_w))
- MCFG_Z80DART_OUT_TXDRQA_CB(WRITELINE(*this, tmpz84c015_device, out_txdrqa_cb_trampoline_w))
- MCFG_Z80DART_OUT_RXDRQB_CB(WRITELINE(*this, tmpz84c015_device, out_rxdrqb_cb_trampoline_w))
- MCFG_Z80DART_OUT_TXDRQB_CB(WRITELINE(*this, tmpz84c015_device, out_txdrqb_cb_trampoline_w))
+ Z80SIO0(config, m_sio, DERIVED_CLOCK(1,1));
+ m_sio->out_int_callback().set_inputline(DEVICE_SELF, INPUT_LINE_IRQ0);
+
+ m_sio->out_txda_callback().set(FUNC(tmpz84c015_device::out_txda_cb_trampoline_w));
+ m_sio->out_dtra_callback().set(FUNC(tmpz84c015_device::out_dtra_cb_trampoline_w));
+ m_sio->out_rtsa_callback().set(FUNC(tmpz84c015_device::out_rtsa_cb_trampoline_w));
+ m_sio->out_wrdya_callback().set(FUNC(tmpz84c015_device::out_wrdya_cb_trampoline_w));
+ m_sio->out_synca_callback().set(FUNC(tmpz84c015_device::out_synca_cb_trampoline_w));
+
+ m_sio->out_txdb_callback().set(FUNC(tmpz84c015_device::out_txdb_cb_trampoline_w));
+ m_sio->out_dtrb_callback().set(FUNC(tmpz84c015_device::out_dtrb_cb_trampoline_w));
+ m_sio->out_rtsb_callback().set(FUNC(tmpz84c015_device::out_rtsb_cb_trampoline_w));
+ m_sio->out_wrdyb_callback().set(FUNC(tmpz84c015_device::out_wrdyb_cb_trampoline_w));
+ m_sio->out_syncb_callback().set(FUNC(tmpz84c015_device::out_syncb_cb_trampoline_w));
+
+ m_sio->out_rxdrqa_callback().set(FUNC(tmpz84c015_device::out_rxdrqa_cb_trampoline_w));
+ m_sio->out_txdrqa_callback().set(FUNC(tmpz84c015_device::out_txdrqa_cb_trampoline_w));
+ m_sio->out_rxdrqb_callback().set(FUNC(tmpz84c015_device::out_rxdrqb_cb_trampoline_w));
+ m_sio->out_txdrqb_callback().set(FUNC(tmpz84c015_device::out_txdrqb_cb_trampoline_w));
MCFG_DEVICE_ADD("tmpz84c015_ctc", Z80CTC, DERIVED_CLOCK(1,1) )
MCFG_Z80CTC_INTR_CB(INPUTLINE(DEVICE_SELF, INPUT_LINE_IRQ0))
diff --git a/src/devices/cpu/z80/z80.h b/src/devices/cpu/z80/z80.h
index a8380f8bf0e..3a95d183b4a 100644
--- a/src/devices/cpu/z80/z80.h
+++ b/src/devices/cpu/z80/z80.h
@@ -48,6 +48,9 @@ public:
template<class Object> devcb_base &set_irqack_cb(Object &&cb) { return m_irqack_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_refresh_cb(Object &&cb) { return m_refresh_cb.set_callback(std::forward<Object>(cb)); }
template<class Object> devcb_base &set_halt_cb(Object &&cb) { return m_halt_cb.set_callback(std::forward<Object>(cb)); }
+ auto irqack_cb() { return m_irqack_cb.bind(); }
+ auto refresh_cb() { return m_refresh_cb.bind(); }
+ auto halt_cb() { return m_halt_cb.bind(); }
protected:
z80_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
diff --git a/src/devices/machine/z80daisy_generic.h b/src/devices/machine/z80daisy_generic.h
index 1270abf8659..d26b50e6ee7 100644
--- a/src/devices/machine/z80daisy_generic.h
+++ b/src/devices/machine/z80daisy_generic.h
@@ -15,18 +15,6 @@
//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_Z80DAISY_GENERIC_ADD(_tag, _vector) \
- MCFG_DEVICE_ADD(_tag, Z80DAISY_GENERIC, 0) \
- downcast<z80daisy_generic_device &>(*device).set_vector(_vector); \
-
-#define MCFG_Z80DAISY_GENERIC_INT_CB(_devcb) \
- downcast<z80daisy_generic_device &>(*device).set_int_handler(DEVCB_##_devcb);
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -37,7 +25,7 @@ public:
z80daisy_generic_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// callbacks
- template <class Object> devcb_base &set_int_handler(Object &&cb) { return m_int_handler.set_callback(std::forward<Object>(cb)); }
+ auto int_handler() { return m_int_handler.bind(); }
// configuration
void set_vector(uint8_t vector) { m_vector = vector; }
diff --git a/src/devices/machine/z80dart.h b/src/devices/machine/z80dart.h
index b539d2e6a02..6abceefa5d9 100644
--- a/src/devices/machine/z80dart.h
+++ b/src/devices/machine/z80dart.h
@@ -152,59 +152,6 @@
//**************************************************************************
-// DEVICE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_Z80DART_OFFSETS(_rxa, _txa, _rxb, _txb) \
- downcast<z80dart_device &>(*device).configure_channels(_rxa, _txa, _rxb, _txb);
-
-#define MCFG_Z80DART_OUT_TXDA_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_txda_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DART_OUT_DTRA_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_dtra_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DART_OUT_RTSA_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_rtsa_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DART_OUT_WRDYA_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_wrdya_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DART_OUT_SYNCA_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_synca_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DART_OUT_TXDB_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_txdb_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DART_OUT_DTRB_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_dtrb_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DART_OUT_RTSB_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_rtsb_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DART_OUT_WRDYB_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_wrdyb_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DART_OUT_SYNCB_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_syncb_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DART_OUT_INT_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_int_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DART_OUT_RXDRQA_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_rxdrqa_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DART_OUT_TXDRQA_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_txdrqa_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DART_OUT_RXDRQB_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_rxdrqb_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DART_OUT_TXDRQB_CB(_devcb) \
- downcast<z80dart_device &>(*device).set_out_txdrqb_callback(DEVCB_##_devcb);
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -447,21 +394,6 @@ public:
// construction/destruction
z80dart_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template <class Object> devcb_base &set_out_txda_callback(Object &&cb) { return m_out_txda_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_dtra_callback(Object &&cb) { return m_out_dtra_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_rtsa_callback(Object &&cb) { return m_out_rtsa_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_wrdya_callback(Object &&cb) { return m_out_wrdya_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_synca_callback(Object &&cb) { return m_out_synca_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_txdb_callback(Object &&cb) { return m_out_txdb_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_dtrb_callback(Object &&cb) { return m_out_dtrb_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_rtsb_callback(Object &&cb) { return m_out_rtsb_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_wrdyb_callback(Object &&cb) { return m_out_wrdyb_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_syncb_callback(Object &&cb) { return m_out_syncb_cb.set_callback(std::forward<Object>(cb)); }
- 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_out_rxdrqa_callback(Object &&cb) { return m_out_rxdrqa_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_txdrqa_callback(Object &&cb) { return m_out_txdrqa_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_rxdrqb_callback(Object &&cb) { return m_out_rxdrqb_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_txdrqb_callback(Object &&cb) { return m_out_txdrqb_cb.set_callback(std::forward<Object>(cb)); }
auto out_txda_callback() { return m_out_txda_cb.bind(); }
auto out_dtra_callback() { return m_out_dtra_cb.bind(); }
auto out_rtsa_callback() { return m_out_rtsa_cb.bind(); }
diff --git a/src/devices/machine/z80dma.h b/src/devices/machine/z80dma.h
index f6f8091e31c..37409927de3 100644
--- a/src/devices/machine/z80dma.h
+++ b/src/devices/machine/z80dma.h
@@ -38,32 +38,6 @@
//**************************************************************************
-// DEVICE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_Z80DMA_OUT_BUSREQ_CB(_devcb) \
- downcast<z80dma_device &>(*device).set_out_busreq_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DMA_OUT_INT_CB(_devcb) \
- downcast<z80dma_device &>(*device).set_out_int_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DMA_OUT_BAO_CB(_devcb) \
- downcast<z80dma_device &>(*device).set_out_bao_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DMA_IN_MREQ_CB(_devcb) \
- downcast<z80dma_device &>(*device).set_in_mreq_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DMA_OUT_MREQ_CB(_devcb) \
- downcast<z80dma_device &>(*device).set_out_mreq_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DMA_IN_IORQ_CB(_devcb) \
- downcast<z80dma_device &>(*device).set_in_iorq_callback(DEVCB_##_devcb);
-
-#define MCFG_Z80DMA_OUT_IORQ_CB(_devcb) \
- downcast<z80dma_device &>(*device).set_out_iorq_callback(DEVCB_##_devcb);
-
-
-//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@@ -77,13 +51,6 @@ public:
// construction/destruction
z80dma_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template <class Object> devcb_base &set_out_busreq_callback(Object &&cb) { return m_out_busreq_cb.set_callback(std::forward<Object>(cb)); }
- 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_out_bao_callback(Object &&cb) { return m_out_bao_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_in_mreq_callback(Object &&cb) { return m_in_mreq_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_mreq_callback(Object &&cb) { return m_out_mreq_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_in_iorq_callback(Object &&cb) { return m_in_iorq_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_out_iorq_callback(Object &&cb) { return m_out_iorq_cb.set_callback(std::forward<Object>(cb)); }
auto out_busreq_callback() { return m_out_busreq_cb.bind(); }
auto out_int_callback() { return m_out_int_cb.bind(); }
auto out_bao_callback() { return m_out_bao_cb.bind(); }
diff --git a/src/mame/audio/cinemat.cpp b/src/mame/audio/cinemat.cpp
index 031f11b3112..e522219264c 100644
--- a/src/mame/audio/cinemat.cpp
+++ b/src/mame/audio/cinemat.cpp
@@ -1395,10 +1395,10 @@ static const z80_daisy_config daisy_chain[] =
MACHINE_CONFIG_START(demon_state::demon_sound)
/* basic machine hardware */
- MCFG_DEVICE_ADD("audiocpu", Z80, 3579545)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(demon_sound_map)
- MCFG_DEVICE_IO_MAP(demon_sound_ports)
+ z80_device& audiocpu(Z80(config, "audiocpu", 3579545));
+ audiocpu.set_daisy_config(daisy_chain);
+ audiocpu.set_addrmap(AS_PROGRAM, &demon_state::demon_sound_map);
+ audiocpu.set_addrmap(AS_IO, &demon_state::demon_sound_ports);
MCFG_DEVICE_ADD("ctc", Z80CTC, 3579545 /* same as "audiocpu" */)
MCFG_Z80CTC_INTR_CB(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
diff --git a/src/mame/audio/efo_zsu.cpp b/src/mame/audio/efo_zsu.cpp
index a847c98a177..4e05805236f 100644
--- a/src/mame/audio/efo_zsu.cpp
+++ b/src/mame/audio/efo_zsu.cpp
@@ -191,10 +191,10 @@ TIMER_CALLBACK_MEMBER(cedar_magnet_sound_device::reset_assert_callback)
MACHINE_CONFIG_START(efo_zsu_device::device_add_mconfig)
- MCFG_DEVICE_ADD("soundcpu", Z80, 4000000)
- MCFG_DEVICE_PROGRAM_MAP(zsu_map)
- MCFG_DEVICE_IO_MAP(zsu_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ z80_device& soundcpu(Z80(config, "soundcpu", 4000000));
+ soundcpu.set_addrmap(AS_PROGRAM, &efo_zsu_device::zsu_map);
+ soundcpu.set_addrmap(AS_IO, &efo_zsu_device::zsu_io);
+ soundcpu.set_daisy_config(daisy_chain);
MCFG_DEVICE_ADD("ctc0", Z80CTC, 4000000)
MCFG_Z80CTC_INTR_CB(WRITELINE("soundirq", input_merger_device, in_w<0>))
diff --git a/src/mame/audio/nichisnd.cpp b/src/mame/audio/nichisnd.cpp
index a73a7ef5b9b..5235d4f9849 100644
--- a/src/mame/audio/nichisnd.cpp
+++ b/src/mame/audio/nichisnd.cpp
@@ -79,16 +79,16 @@ static const z80_daisy_config daisy_chain[] =
MACHINE_CONFIG_START(nichisnd_device::device_add_mconfig)
- MCFG_DEVICE_ADD("audiocpu", TMPZ84C011, 8000000) /* TMPZ84C011, 8.00 MHz */
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(nichisnd_map)
- MCFG_DEVICE_IO_MAP(nichisnd_io_map)
- MCFG_TMPZ84C011_PORTD_READ_CB(READ8("soundlatch", generic_latch_8_device, read))
- MCFG_TMPZ84C011_PORTA_WRITE_CB(WRITE8(*this, nichisnd_device, soundbank_w))
- MCFG_TMPZ84C011_PORTB_WRITE_CB(WRITE8("dac1", dac_byte_interface, data_w))
- MCFG_TMPZ84C011_PORTC_WRITE_CB(WRITE8("dac2", dac_byte_interface, data_w))
- MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(*this, nichisnd_device, soundlatch_clear_w))
- MCFG_TMPZ84C011_ZC0_CB(WRITELINE("audiocpu", tmpz84c011_device, trg3))
+ tmpz84c011_device& audiocpu(TMPZ84C011(config, "audiocpu", 8000000)); /* TMPZ84C011, 8.00 MHz */
+ audiocpu.set_daisy_config(daisy_chain);
+ audiocpu.set_addrmap(AS_PROGRAM, &nichisnd_device::nichisnd_map);
+ audiocpu.set_addrmap(AS_IO, &nichisnd_device::nichisnd_io_map);
+ audiocpu.in_pd_callback().set(m_soundlatch, FUNC(generic_latch_8_device::read));
+ audiocpu.out_pa_callback().set(FUNC(nichisnd_device::soundbank_w));
+ audiocpu.out_pb_callback().set("dac1", FUNC(dac_byte_interface::data_w));
+ audiocpu.out_pc_callback().set("dac2", FUNC(dac_byte_interface::data_w));
+ audiocpu.out_pe_callback().set(FUNC(nichisnd_device::soundlatch_clear_w));
+ audiocpu.zc0_callback().set(FUNC(tmpz84c011_device::trg3));
/* sound hardware */
SPEAKER(config, "speaker").front_center();
diff --git a/src/mame/drivers/a5105.cpp b/src/mame/drivers/a5105.cpp
index 6a84ce93084..41c90aa43de 100644
--- a/src/mame/drivers/a5105.cpp
+++ b/src/mame/drivers/a5105.cpp
@@ -89,7 +89,7 @@ private:
uint8_t m_memsel[4];
virtual void machine_reset() override;
virtual void video_start() override;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<screen_device> m_screen;
required_device<upd7220_device> m_hgdc;
required_device<cassette_image_device> m_cass;
@@ -571,10 +571,10 @@ static const z80_daisy_config a5105_daisy_chain[] =
MACHINE_CONFIG_START(a5105_state::a5105)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(15'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(a5105_mem)
- MCFG_DEVICE_IO_MAP(a5105_io)
- MCFG_Z80_DAISY_CHAIN(a5105_daisy_chain)
+ Z80(config, m_maincpu, XTAL(15'000'000) / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &a5105_state::a5105_mem);
+ m_maincpu->set_addrmap(AS_IO, &a5105_state::a5105_io);
+ m_maincpu->set_daisy_config(a5105_daisy_chain);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/a7150.cpp b/src/mame/drivers/a7150.cpp
index 56652a50223..183362b8d12 100644
--- a/src/mame/drivers/a7150.cpp
+++ b/src/mame/drivers/a7150.cpp
@@ -516,10 +516,10 @@ MACHINE_CONFIG_START(a7150_state::a7150)
ISBC_215G(config, "isbc_215g", 0, 0x4a, m_maincpu).irq_callback().set(m_pic8259, FUNC(pic8259_device::ir5_w));
// KGS K7070 graphics terminal controlling ABG K7072 framebuffer
- MCFG_DEVICE_ADD("gfxcpu", Z80, XTAL(16'000'000)/4)
- MCFG_DEVICE_PROGRAM_MAP(k7070_cpu_mem)
- MCFG_DEVICE_IO_MAP(k7070_cpu_io)
- MCFG_Z80_DAISY_CHAIN(k7070_daisy_chain)
+ Z80(config, m_gfxcpu, XTAL(16'000'000)/4);
+ m_gfxcpu->set_addrmap(AS_PROGRAM, &a7150_state::k7070_cpu_mem);
+ m_gfxcpu->set_addrmap(AS_IO, &a7150_state::k7070_cpu_io);
+ m_gfxcpu->set_daisy_config(k7070_daisy_chain);
ADDRESS_MAP_BANK(config, m_video_bankdev, 0);
m_video_bankdev->set_map(&a7150_state::k7070_cpu_banked);
diff --git a/src/mame/drivers/abc80.cpp b/src/mame/drivers/abc80.cpp
index a86917d7c0b..53bc5e7b7b3 100644
--- a/src/mame/drivers/abc80.cpp
+++ b/src/mame/drivers/abc80.cpp
@@ -487,10 +487,10 @@ QUICKLOAD_LOAD_MEMBER( abc80_state, bac )
MACHINE_CONFIG_START(abc80_state::abc80)
// basic machine hardware
- MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(11'980'800)/2/2) // 2.9952 MHz
- MCFG_DEVICE_PROGRAM_MAP(abc80_mem)
- MCFG_DEVICE_IO_MAP(abc80_io)
- MCFG_Z80_DAISY_CHAIN(abc80_daisy_chain)
+ Z80(config, m_maincpu, XTAL(11'980'800)/2/2); // 2.9952 MHz
+ m_maincpu->set_addrmap(AS_PROGRAM, &abc80_state::abc80_mem);
+ m_maincpu->set_addrmap(AS_IO, &abc80_state::abc80_io);
+ m_maincpu->set_daisy_config(abc80_daisy_chain);
// video hardware
abc80_video(config);
diff --git a/src/mame/drivers/abc80x.cpp b/src/mame/drivers/abc80x.cpp
index 85ef5656302..3f1994437f9 100644
--- a/src/mame/drivers/abc80x.cpp
+++ b/src/mame/drivers/abc80x.cpp
@@ -1054,9 +1054,9 @@ QUICKLOAD_LOAD_MEMBER( abc800_state, bac )
MACHINE_CONFIG_START(abc800_state::common)
// basic machine hardware
- MCFG_DEVICE_ADD(Z80_TAG, Z80, ABC800_X01/2/2)
- MCFG_Z80_DAISY_CHAIN(abc800_daisy_chain)
- MCFG_DEVICE_OPCODES_MAP(abc800_m1)
+ Z80(config, m_maincpu, ABC800_X01/2/2);
+ m_maincpu->set_daisy_config(abc800_daisy_chain);
+ m_maincpu->set_addrmap(AS_OPCODES, &abc800_state::abc800_m1);
// peripheral hardware
Z80CTC(config, m_ctc, ABC800_X01/2/2);
@@ -1126,9 +1126,8 @@ MACHINE_CONFIG_START(abc800c_state::abc800c)
common(config);
// basic machine hardware
- MCFG_DEVICE_MODIFY(Z80_TAG)
- MCFG_DEVICE_PROGRAM_MAP(abc800c_mem)
- MCFG_DEVICE_IO_MAP(abc800c_io)
+ m_maincpu->set_addrmap(AS_PROGRAM, &abc800c_state::abc800c_mem);
+ m_maincpu->set_addrmap(AS_IO, &abc800c_state::abc800c_io);
// video hardware
abc800c_video(config);
@@ -1154,9 +1153,8 @@ MACHINE_CONFIG_START(abc800m_state::abc800m)
common(config);
// basic machine hardware
- MCFG_DEVICE_MODIFY(Z80_TAG)
- MCFG_DEVICE_PROGRAM_MAP(abc800m_mem)
- MCFG_DEVICE_IO_MAP(abc800m_io)
+ m_maincpu->set_addrmap(AS_PROGRAM, &abc800m_state::abc800m_mem);
+ m_maincpu->set_addrmap(AS_IO, &abc800m_state::abc800m_io);
// video hardware
abc800m_video(config);
@@ -1182,9 +1180,8 @@ MACHINE_CONFIG_START(abc802_state::abc802)
common(config);
// basic machine hardware
- MCFG_DEVICE_MODIFY(Z80_TAG)
- MCFG_DEVICE_PROGRAM_MAP(abc802_mem)
- MCFG_DEVICE_IO_MAP(abc802_io)
+ m_maincpu->set_addrmap(AS_PROGRAM, &abc802_state::abc802_mem);
+ m_maincpu->set_addrmap(AS_IO, &abc802_state::abc802_io);
// video hardware
abc802_video(config);
@@ -1212,9 +1209,8 @@ MACHINE_CONFIG_START(abc806_state::abc806)
common(config);
// basic machine hardware
- MCFG_DEVICE_MODIFY(Z80_TAG)
- MCFG_DEVICE_PROGRAM_MAP(abc806_mem)
- MCFG_DEVICE_IO_MAP(abc806_io)
+ m_maincpu->set_addrmap(AS_PROGRAM, &abc806_state::abc806_mem);
+ m_maincpu->set_addrmap(AS_IO, &abc806_state::abc806_io);
// video hardware
abc806_video(config);
diff --git a/src/mame/drivers/altos2.cpp b/src/mame/drivers/altos2.cpp
index 7261f9778a5..b9ba88922af 100644
--- a/src/mame/drivers/altos2.cpp
+++ b/src/mame/drivers/altos2.cpp
@@ -47,7 +47,7 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<x2210_device> m_novram;
required_region_ptr<u8> m_p_chargen;
required_shared_ptr<u8> m_p_videoram;
@@ -102,10 +102,10 @@ static const z80_daisy_config daisy_chain[] =
MACHINE_CONFIG_START(altos2_state::altos2)
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu, Z80, XTAL(4'000'000)) // unknown clock
- MCFG_DEVICE_PROGRAM_MAP(mem_map)
- MCFG_DEVICE_IO_MAP(io_map)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, XTAL(4'000'000)); // unknown clock
+ m_maincpu->set_addrmap(AS_PROGRAM, &altos2_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &altos2_state::io_map);
+ m_maincpu->set_daisy_config(daisy_chain);
clock_device &ctc_clock(CLOCK(config, "ctc_clock", 4915200)); // ctc & dart connections are guesswork
ctc_clock.signal_handler().set("ctc", FUNC(z80ctc_device::trg0));
diff --git a/src/mame/drivers/altos5.cpp b/src/mame/drivers/altos5.cpp
index d1168a4d730..c81fd7e1f4c 100644
--- a/src/mame/drivers/altos5.cpp
+++ b/src/mame/drivers/altos5.cpp
@@ -69,7 +69,7 @@ private:
uint8_t convert(offs_t offset, bool state);
void setup_banks(uint8_t source);
virtual void machine_reset() override;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80pio_device> m_pio0;
required_device<z80dma_device> m_dma;
required_device<fd1797_device> m_fdc;
@@ -410,10 +410,10 @@ void altos5_state::init_altos5()
MACHINE_CONFIG_START(altos5_state::altos5)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 8_MHz_XTAL / 2)
- MCFG_DEVICE_PROGRAM_MAP(mem_map)
- MCFG_DEVICE_IO_MAP(io_map)
- MCFG_Z80_DAISY_CHAIN(daisy_chain_intf)
+ Z80(config, m_maincpu, 8_MHz_XTAL / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &altos5_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &altos5_state::io_map);
+ m_maincpu->set_daisy_config(daisy_chain_intf);
clock_device &ctc_clock(CLOCK(config, "ctc_clock", 8_MHz_XTAL / 4)); // 2MHz
ctc_clock.signal_handler().set("ctc", FUNC(z80ctc_device::trg0));
diff --git a/src/mame/drivers/ampro.cpp b/src/mame/drivers/ampro.cpp
index a233bab84da..935b96daa0d 100644
--- a/src/mame/drivers/ampro.cpp
+++ b/src/mame/drivers/ampro.cpp
@@ -58,7 +58,7 @@ private:
void ampro_io(address_map &map);
void ampro_mem(address_map &map);
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80dart_device> m_dart;
required_device<z80ctc_device> m_ctc;
required_device<wd1772_device> m_fdc;
@@ -154,10 +154,11 @@ void ampro_state::init_ampro()
MACHINE_CONFIG_START(ampro_state::ampro)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 16_MHz_XTAL / 4)
- MCFG_DEVICE_PROGRAM_MAP(ampro_mem)
- MCFG_DEVICE_IO_MAP(ampro_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain_intf)
+ Z80(config, m_maincpu, 16_MHz_XTAL / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ampro_state::ampro_mem);
+ m_maincpu->set_addrmap(AS_IO, &ampro_state::ampro_io);
+ m_maincpu->set_daisy_config(daisy_chain_intf);
+
MCFG_MACHINE_RESET_OVERRIDE(ampro_state, ampro)
clock_device &ctc_clock(CLOCK(config, "ctc_clock", 16_MHz_XTAL / 8)); // 2MHz
diff --git a/src/mame/drivers/astrocde.cpp b/src/mame/drivers/astrocde.cpp
index faa4760d5bd..a6b0e3f0630 100644
--- a/src/mame/drivers/astrocde.cpp
+++ b/src/mame/drivers/astrocde.cpp
@@ -116,7 +116,6 @@
#include "emu.h"
#include "includes/astrocde.h"
-#include "cpu/z80/z80.h"
#include "machine/z80daisy.h"
#include "machine/z80ctc.h"
#include "machine/nvram.h"
@@ -1513,10 +1512,10 @@ MACHINE_CONFIG_START(tenpindx_state::tenpindx)
MCFG_DEVICE_PROGRAM_MAP(profpac_map)
MCFG_DEVICE_IO_MAP(port_map_16col_pattern_tenpindx)
- MCFG_DEVICE_ADD("sub", Z80, ASTROCADE_CLOCK/4) /* real clock unknown */
- MCFG_Z80_DAISY_CHAIN(tenpin_daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(sub_map)
- MCFG_DEVICE_IO_MAP(sub_io_map)
+ Z80(config, m_subcpu, ASTROCADE_CLOCK/4); /* real clock unknown */
+ m_subcpu->set_daisy_config(tenpin_daisy_chain);
+ m_subcpu->set_addrmap(AS_PROGRAM, &tenpindx_state::sub_map);
+ m_subcpu->set_addrmap(AS_IO, &tenpindx_state::sub_io_map);
MCFG_DEVICE_ADD("ctc", Z80CTC, ASTROCADE_CLOCK/4 /* same as "sub" */)
MCFG_Z80CTC_INTR_CB(INPUTLINE("sub", INPUT_LINE_IRQ0))
diff --git a/src/mame/drivers/att4425.cpp b/src/mame/drivers/att4425.cpp
index 283524085cf..d1d038361bb 100644
--- a/src/mame/drivers/att4425.cpp
+++ b/src/mame/drivers/att4425.cpp
@@ -240,10 +240,10 @@ static const z80_daisy_config att4425_daisy_chain[] =
MACHINE_CONFIG_START(att4425_state::att4425)
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(32'000'000)/8) // XXX
- MCFG_DEVICE_PROGRAM_MAP(att4425_mem)
- MCFG_DEVICE_IO_MAP(att4425_io)
- MCFG_Z80_DAISY_CHAIN(att4425_daisy_chain)
+ Z80(config, m_maincpu, XTAL(32'000'000)/8); // XXX
+ m_maincpu->set_addrmap(AS_PROGRAM, &att4425_state::att4425_mem);
+ m_maincpu->set_addrmap(AS_IO, &att4425_state::att4425_io);
+ m_maincpu->set_daisy_config(att4425_daisy_chain);
/* video hardware */
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green())
diff --git a/src/mame/drivers/attache.cpp b/src/mame/drivers/attache.cpp
index 238957dfa13..e21824d1f76 100644
--- a/src/mame/drivers/attache.cpp
+++ b/src/mame/drivers/attache.cpp
@@ -196,7 +196,7 @@ protected:
void attache_io(address_map &map);
void attache_map(address_map &map);
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_memory_region m_rom;
required_device<ram_device> m_ram;
required_memory_region m_char_rom;
@@ -1122,10 +1122,10 @@ void attache816_state::machine_reset()
}
MACHINE_CONFIG_START(attache_state::attache)
- MCFG_DEVICE_ADD("maincpu", Z80, 8_MHz_XTAL / 2)
- MCFG_DEVICE_PROGRAM_MAP(attache_map)
- MCFG_DEVICE_IO_MAP(attache_io)
- MCFG_Z80_DAISY_CHAIN(attache_daisy_chain)
+ Z80(config, m_maincpu, 8_MHz_XTAL / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &attache_state::attache_map);
+ m_maincpu->set_addrmap(AS_IO, &attache_state::attache_io);
+ m_maincpu->set_daisy_config(attache_daisy_chain);
MCFG_QUANTUM_TIME(attotime::from_hz(60))
@@ -1200,10 +1200,10 @@ MACHINE_CONFIG_START(attache_state::attache)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(attache816_state::attache816)
- MCFG_DEVICE_ADD("maincpu", Z80, 8_MHz_XTAL / 2)
- MCFG_DEVICE_PROGRAM_MAP(attache_map)
- MCFG_DEVICE_IO_MAP(attache816_io)
- MCFG_Z80_DAISY_CHAIN(attache_daisy_chain)
+ Z80(config, m_maincpu, 8_MHz_XTAL / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &attache816_state::attache_map);
+ m_maincpu->set_addrmap(AS_IO, &attache816_state::attache_io);
+ m_maincpu->set_daisy_config(attache_daisy_chain);
MCFG_QUANTUM_TIME(attotime::from_hz(60))
diff --git a/src/mame/drivers/aussiebyte.cpp b/src/mame/drivers/aussiebyte.cpp
index 74e90812a9b..3076baedeb1 100644
--- a/src/mame/drivers/aussiebyte.cpp
+++ b/src/mame/drivers/aussiebyte.cpp
@@ -497,10 +497,10 @@ void aussiebyte_state::machine_reset()
MACHINE_CONFIG_START(aussiebyte_state::aussiebyte)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 16_MHz_XTAL / 4)
- MCFG_DEVICE_PROGRAM_MAP(aussiebyte_map)
- MCFG_DEVICE_IO_MAP(aussiebyte_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain_intf)
+ Z80(config, m_maincpu, 16_MHz_XTAL / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &aussiebyte_state::aussiebyte_map);
+ m_maincpu->set_addrmap(AS_IO, &aussiebyte_state::aussiebyte_io);
+ m_maincpu->set_daisy_config(daisy_chain_intf);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/avt.cpp b/src/mame/drivers/avt.cpp
index f175dddfc3e..27d5f3664f3 100644
--- a/src/mame/drivers/avt.cpp
+++ b/src/mame/drivers/avt.cpp
@@ -439,7 +439,7 @@ class avt_state : public driver_device
public:
avt_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
- , m_maincpu(*this,"maincpu")
+ , m_maincpu(*this, "maincpu")
, m_crtc(*this, "crtc")
, m_pio0(*this, "pio0")
, m_pio1(*this, "pio1")
@@ -470,7 +470,7 @@ private:
tilemap_t *m_bg_tilemap;
uint8_t m_crtc_vreg[0x100],m_crtc_index;
virtual void video_start() override;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<mc6845_device> m_crtc;
required_device<z80pio_device> m_pio0;
required_device<z80pio_device> m_pio1;
@@ -963,10 +963,10 @@ WRITE_LINE_MEMBER( avt_state::avtbingo_w )
MACHINE_CONFIG_START(avt_state::avt)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, CPU_CLOCK) /* guess */
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(avt_map)
- MCFG_DEVICE_IO_MAP(avt_portmap)
+ Z80(config, m_maincpu, CPU_CLOCK); /* guess */
+ m_maincpu->set_daisy_config(daisy_chain);
+ m_maincpu->set_addrmap(AS_PROGRAM, &avt_state::avt_map);
+ m_maincpu->set_addrmap(AS_IO, &avt_state::avt_portmap);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/babbage.cpp b/src/mame/drivers/babbage.cpp
index 675b4c364c1..82bf3cd55ee 100644
--- a/src/mame/drivers/babbage.cpp
+++ b/src/mame/drivers/babbage.cpp
@@ -65,7 +65,7 @@ private:
uint8_t m_prev_key;
bool m_step;
virtual void machine_start() override { m_digits.resolve(); }
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80pio_device> m_pio_1;
required_device<z80pio_device> m_pio_2;
required_device<z80ctc_device> m_ctc;
@@ -232,10 +232,11 @@ TIMER_DEVICE_CALLBACK_MEMBER(babbage_state::keyboard_callback)
MACHINE_CONFIG_START(babbage_state::babbage)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MAIN_CLOCK) //2.5MHz
- MCFG_DEVICE_PROGRAM_MAP(babbage_map)
- MCFG_DEVICE_IO_MAP(babbage_io)
- MCFG_Z80_DAISY_CHAIN(babbage_daisy_chain)
+
+ Z80(config, m_maincpu, MAIN_CLOCK); //2.5MHz
+ m_maincpu->set_addrmap(AS_PROGRAM, &babbage_state::babbage_map);
+ m_maincpu->set_addrmap(AS_IO, &babbage_state::babbage_io);
+ m_maincpu->set_daisy_config(babbage_daisy_chain);
/* video hardware */
config.set_default_layout(layout_babbage);
diff --git a/src/mame/drivers/bbcbc.cpp b/src/mame/drivers/bbcbc.cpp
index 3fa5e1c20ac..005ac12cd9b 100644
--- a/src/mame/drivers/bbcbc.cpp
+++ b/src/mame/drivers/bbcbc.cpp
@@ -56,7 +56,7 @@ private:
uint8_t m_input_select;
virtual void machine_start() override;
virtual void machine_reset() override;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80pio_device> m_z80pio;
required_ioport_array<3> m_buttons;
};
@@ -119,10 +119,10 @@ static const z80_daisy_config bbcbc_daisy_chain[] =
MACHINE_CONFIG_START(bbcbc_state::bbcbc)
- MCFG_DEVICE_ADD("maincpu", Z80, 10.6875_MHz_XTAL / 3)
- MCFG_DEVICE_PROGRAM_MAP(mem_map)
- MCFG_DEVICE_IO_MAP(io_map)
- MCFG_Z80_DAISY_CHAIN(bbcbc_daisy_chain)
+ Z80(config, m_maincpu, 10.6875_MHz_XTAL / 3);
+ m_maincpu->set_addrmap(AS_PROGRAM, &bbcbc_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &bbcbc_state::io_map);
+ m_maincpu->set_daisy_config(bbcbc_daisy_chain);
Z80PIO(config, m_z80pio, 10.6875_MHz_XTAL / 3);
//m_z80pio->out_pa_callback().set(???);
diff --git a/src/mame/drivers/bcs3.cpp b/src/mame/drivers/bcs3.cpp
index 3bb2a888e4b..8b06aa5ea64 100644
--- a/src/mame/drivers/bcs3.cpp
+++ b/src/mame/drivers/bcs3.cpp
@@ -96,7 +96,7 @@ private:
u8 s_rows;
u8 s_cols;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
required_region_ptr<u8> m_p_chargen;
required_shared_ptr<u8> m_p_videoram;
@@ -387,10 +387,10 @@ void bcs3_state::init_bcs3d()
MACHINE_CONFIG_START(bcs3_state::bcs3)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(5'000'000) /2)
- MCFG_DEVICE_PROGRAM_MAP(bcs3_mem)
- MCFG_DEVICE_IO_MAP(bcs3_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain_intf)
+ Z80(config, m_maincpu, XTAL(5'000'000) /2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &bcs3_state::bcs3_mem);
+ m_maincpu->set_addrmap(AS_IO, &bcs3_state::bcs3_io);
+ m_maincpu->set_daisy_config(daisy_chain_intf);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
@@ -414,10 +414,10 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(bcs3_state::bcs3a)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(7'000'000) /2)
- MCFG_DEVICE_PROGRAM_MAP(bcs3a_mem)
- MCFG_DEVICE_IO_MAP(bcs3_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain_intf)
+ Z80(config, m_maincpu, XTAL(7'000'000) /2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &bcs3_state::bcs3a_mem);
+ m_maincpu->set_addrmap(AS_IO, &bcs3_state::bcs3_io);
+ m_maincpu->set_daisy_config(daisy_chain_intf);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/bigbord2.cpp b/src/mame/drivers/bigbord2.cpp
index 88abd275837..ad2fb715885 100644
--- a/src/mame/drivers/bigbord2.cpp
+++ b/src/mame/drivers/bigbord2.cpp
@@ -565,13 +565,13 @@ MACHINE_CONFIG_START(bigbord2_state::bigbord2)
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, bigbord2_state, clock_w))
/* devices */
- MCFG_DEVICE_ADD("dma", Z80DMA, MAIN_CLOCK)
- MCFG_Z80DMA_OUT_BUSREQ_CB(WRITELINE(*this, bigbord2_state, busreq_w))
- MCFG_Z80DMA_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_Z80DMA_IN_MREQ_CB(READ8(*this, bigbord2_state, memory_read_byte))
- MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(*this, bigbord2_state, memory_write_byte))
- MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, bigbord2_state, io_read_byte))
- MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, bigbord2_state, io_write_byte))
+ Z80DMA(config, m_dma, MAIN_CLOCK);
+ m_dma->out_busreq_callback().set(FUNC(bigbord2_state::busreq_w));
+ m_dma->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ m_dma->in_mreq_callback().set(FUNC(bigbord2_state::memory_read_byte));
+ m_dma->out_mreq_callback().set(FUNC(bigbord2_state::memory_write_byte));
+ m_dma->in_iorq_callback().set(FUNC(bigbord2_state::io_read_byte));
+ m_dma->out_iorq_callback().set(FUNC(bigbord2_state::io_write_byte));
Z80SIO(config, m_sio, MAIN_CLOCK);
m_sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
diff --git a/src/mame/drivers/binbug.cpp b/src/mame/drivers/binbug.cpp
index 7b8f9ebb6fb..59995610b0c 100644
--- a/src/mame/drivers/binbug.cpp
+++ b/src/mame/drivers/binbug.cpp
@@ -86,7 +86,7 @@ public:
DECLARE_QUICKLOAD_LOAD_MEMBER( binbug );
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
// needed by dg680 class
- required_device<cpu_device> m_maincpu;
+ required_device<cpu_device> m_maincpu; // S2650 or Z80
required_device<cassette_image_device> m_cass;
void binbug(machine_config &config);
@@ -537,10 +537,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(dg680_state::uart_tick)
MACHINE_CONFIG_START(dg680_state::dg680)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(8'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(dg680_mem)
- MCFG_DEVICE_IO_MAP(dg680_io)
- MCFG_Z80_DAISY_CHAIN(dg680_daisy_chain)
+ z80_device& maincpu(Z80(config, m_maincpu, XTAL(8'000'000) / 4));
+ maincpu.set_addrmap(AS_PROGRAM, &dg680_state::dg680_mem);
+ maincpu.set_addrmap(AS_IO, &dg680_state::dg680_io);
+ maincpu.set_daisy_config(dg680_daisy_chain);
/* video hardware */
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::amber())
diff --git a/src/mame/drivers/br8641.cpp b/src/mame/drivers/br8641.cpp
index da04a510f15..95c4d452321 100644
--- a/src/mame/drivers/br8641.cpp
+++ b/src/mame/drivers/br8641.cpp
@@ -54,7 +54,7 @@ public:
private:
uint8_t m_port08;
uint8_t m_port09;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80pio_device> m_pio1;
required_device<z80pio_device> m_pio2;
required_device<z80pio_device> m_pio3;
@@ -160,10 +160,10 @@ static const z80_daisy_config daisy_chain_intf[] =
MACHINE_CONFIG_START(brandt8641_state::brandt8641)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(4'000'000)) // U4 ,4MHz crystal on board
- MCFG_DEVICE_PROGRAM_MAP(brandt8641_mem)
- MCFG_DEVICE_IO_MAP(brandt8641_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain_intf)
+ Z80(config, m_maincpu, XTAL(4'000'000)); // U4 ,4MHz crystal on board
+ m_maincpu->set_addrmap(AS_PROGRAM, &brandt8641_state::brandt8641_mem);
+ m_maincpu->set_addrmap(AS_IO, &brandt8641_state::brandt8641_io);
+ m_maincpu->set_daisy_config(daisy_chain_intf);
/* sound hardware */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/bullet.cpp b/src/mame/drivers/bullet.cpp
index 93749e31694..d17e88a6a06 100644
--- a/src/mame/drivers/bullet.cpp
+++ b/src/mame/drivers/bullet.cpp
@@ -1117,29 +1117,29 @@ MACHINE_CONFIG_START(bullet_state::bullet)
MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, 16_MHz_XTAL / 4)
MCFG_Z80CTC_INTR_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
MCFG_Z80CTC_ZC0_CB(WRITELINE(*this, bullet_state, dart_rxtxca_w))
- MCFG_Z80CTC_ZC1_CB(WRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
+ MCFG_Z80CTC_ZC1_CB(WRITELINE(m_dart, z80dart_device, rxtxcb_w))
MCFG_Z80CTC_ZC2_CB(WRITELINE(Z80CTC_TAG, z80ctc_device, trg3))
MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", bullet_state, ctc_tick, attotime::from_hz(4.9152_MHz_XTAL /4))
- MCFG_DEVICE_ADD(Z80DART_TAG, Z80DART, 16_MHz_XTAL / 4)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_WRDYA_CB(WRITELINE(*this, bullet_state, dartardy_w))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_WRDYB_CB(WRITELINE(*this, bullet_state, dartbrdy_w))
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
-
- MCFG_DEVICE_ADD(Z80DMA_TAG, Z80DMA, 16_MHz_XTAL / 4)
- MCFG_Z80DMA_OUT_BUSREQ_CB(INPUTLINE(Z80_TAG, INPUT_LINE_HALT))
- MCFG_Z80DMA_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
- MCFG_Z80DMA_IN_MREQ_CB(READ8(*this, bullet_state, dma_mreq_r))
- MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(*this, bullet_state, dma_mreq_w))
- MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, bullet_state, io_read_byte))
- MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, bullet_state, io_write_byte))
+ Z80DART(config, m_dart, 16_MHz_XTAL / 4);
+ m_dart->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd));
+ m_dart->out_dtra_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr));
+ m_dart->out_rtsa_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts));
+ m_dart->out_wrdya_callback().set(FUNC(bullet_state::dartardy_w));
+ m_dart->out_txdb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd));
+ m_dart->out_dtrb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr));
+ m_dart->out_rtsb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts));
+ m_dart->out_wrdyb_callback().set(FUNC(bullet_state::dartbrdy_w));
+ m_dart->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+
+ Z80DMA(config, m_dmac, 16_MHz_XTAL / 4);
+ m_dmac->out_busreq_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
+ m_dmac->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ m_dmac->in_mreq_callback().set(FUNC(bullet_state::dma_mreq_r));
+ m_dmac->out_mreq_callback().set(FUNC(bullet_state::dma_mreq_w));
+ m_dmac->in_iorq_callback().set(FUNC(bullet_state::io_read_byte));
+ m_dmac->out_iorq_callback().set(FUNC(bullet_state::io_write_byte));
z80pio_device& pio(Z80PIO(config, Z80PIO_TAG, 16_MHz_XTAL / 4));
pio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
@@ -1147,7 +1147,7 @@ MACHINE_CONFIG_START(bullet_state::bullet)
pio.in_pb_callback().set(FUNC(bullet_state::pio_pb_r));
MCFG_DEVICE_ADD(MB8877_TAG, MB8877, 16_MHz_XTAL / 16)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(Z80DART_TAG, z80dart_device, dcda_w))
+ MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(m_dart, z80dart_device, dcda_w))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, bullet_state, fdc_drq_w))
MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":0", bullet_525_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":1", bullet_525_floppies, nullptr, floppy_image_device::default_floppy_formats)
@@ -1167,11 +1167,11 @@ MACHINE_CONFIG_START(bullet_state::bullet)
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, "terminal")
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart, z80dart_device, rxa_w))
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart, z80dart_device, rxb_w))
// software lists
MCFG_SOFTWARE_LIST_ADD("flop_list", "wmbullet")
@@ -1196,29 +1196,29 @@ MACHINE_CONFIG_START(bulletf_state::bulletf)
MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, 16_MHz_XTAL / 4)
MCFG_Z80CTC_INTR_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
MCFG_Z80CTC_ZC0_CB(WRITELINE(*this, bullet_state, dart_rxtxca_w))
- MCFG_Z80CTC_ZC1_CB(WRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
+ MCFG_Z80CTC_ZC1_CB(WRITELINE(m_dart, z80dart_device, rxtxcb_w))
MCFG_Z80CTC_ZC2_CB(WRITELINE(Z80CTC_TAG, z80ctc_device, trg3))
MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", bullet_state, ctc_tick, attotime::from_hz(4.9152_MHz_XTAL / 4))
- MCFG_DEVICE_ADD(Z80DART_TAG, Z80DART, 16_MHz_XTAL / 4)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_WRDYA_CB(WRITELINE(*this, bullet_state, dartardy_w))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_WRDYB_CB(WRITELINE(*this, bullet_state, dartbrdy_w))
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
-
- MCFG_DEVICE_ADD(Z80DMA_TAG, Z80DMA, 16_MHz_XTAL / 4)
- MCFG_Z80DMA_OUT_BUSREQ_CB(INPUTLINE(Z80_TAG, INPUT_LINE_HALT))
- MCFG_Z80DMA_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
- MCFG_Z80DMA_IN_MREQ_CB(READ8(*this, bullet_state, dma_mreq_r))
- MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(*this, bullet_state, dma_mreq_w))
- MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, bullet_state, io_read_byte))
- MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, bullet_state, io_write_byte))
+ Z80DART(config, m_dart, 16_MHz_XTAL / 4);
+ m_dart->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd));
+ m_dart->out_dtra_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr));
+ m_dart->out_rtsa_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts));
+ m_dart->out_wrdya_callback().set(FUNC(bullet_state::dartardy_w));
+ m_dart->out_txdb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd));
+ m_dart->out_dtrb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr));
+ m_dart->out_rtsb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts));
+ m_dart->out_wrdyb_callback().set(FUNC(bullet_state::dartbrdy_w));
+ m_dart->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+
+ Z80DMA(config, m_dmac, 16_MHz_XTAL / 4);
+ m_dmac->out_busreq_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
+ m_dmac->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ m_dmac->in_mreq_callback().set(FUNC(bullet_state::dma_mreq_r));
+ m_dmac->out_mreq_callback().set(FUNC(bullet_state::dma_mreq_w));
+ m_dmac->in_iorq_callback().set(FUNC(bullet_state::io_read_byte));
+ m_dmac->out_iorq_callback().set(FUNC(bullet_state::io_write_byte));
z80pio_device& pio(Z80PIO(config, Z80PIO_TAG, 16_MHz_XTAL / 4));
pio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
@@ -1228,7 +1228,7 @@ MACHINE_CONFIG_START(bulletf_state::bulletf)
pio.out_brdy_callback().set(FUNC(bulletf_state::cstrb_w));
MCFG_DEVICE_ADD(MB8877_TAG, MB8877, 16_MHz_XTAL / 16)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(Z80DART_TAG, z80dart_device, rib_w))
+ MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(m_dart, z80dart_device, rib_w))
MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, bullet_state, fdc_drq_w))
MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":0", bullet_525_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":1", bullet_525_floppies, nullptr, floppy_image_device::default_floppy_formats)
@@ -1247,11 +1247,11 @@ MACHINE_CONFIG_START(bulletf_state::bulletf)
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, "terminal")
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart, z80dart_device, rxa_w))
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart, z80dart_device, rxb_w))
MCFG_DEVICE_ADD(SCSIBUS_TAG, SCSI_PORT, 0)
MCFG_SCSI_BSY_HANDLER(WRITELINE("scsi_ctrl_in", input_buffer_device, write_bit3))
diff --git a/src/mame/drivers/c80.cpp b/src/mame/drivers/c80.cpp
index 6a614e5c8b5..6fc5b7466ef 100644
--- a/src/mame/drivers/c80.cpp
+++ b/src/mame/drivers/c80.cpp
@@ -256,10 +256,10 @@ void c80_state::machine_start()
MACHINE_CONFIG_START(c80_state::c80)
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, 2500000) /* U880D */
- MCFG_DEVICE_PROGRAM_MAP(c80_mem)
- MCFG_DEVICE_IO_MAP(c80_io)
- MCFG_Z80_DAISY_CHAIN(c80_daisy_chain)
+ Z80(config, m_maincpu, 2500000); /* U880D */
+ m_maincpu->set_addrmap(AS_PROGRAM, &c80_state::c80_mem);
+ m_maincpu->set_addrmap(AS_IO, &c80_state::c80_io);
+ m_maincpu->set_daisy_config(c80_daisy_chain);
/* video hardware */
config.set_default_layout(layout_c80);
diff --git a/src/mame/drivers/cchasm.cpp b/src/mame/drivers/cchasm.cpp
index 0b407e256ca..4d26b868371 100644
--- a/src/mame/drivers/cchasm.cpp
+++ b/src/mame/drivers/cchasm.cpp
@@ -17,7 +17,6 @@
#include "emu.h"
#include "includes/cchasm.h"
-#include "cpu/z80/z80.h"
#include "machine/z80daisy.h"
#include "cpu/m68000/m68000.h"
#include "machine/6840ptm.h"
@@ -153,10 +152,10 @@ MACHINE_CONFIG_START(cchasm_state::cchasm)
MCFG_DEVICE_ADD("maincpu", M68000, CCHASM_68K_CLOCK) /* 8 MHz (from schematics) */
MCFG_DEVICE_PROGRAM_MAP(memmap)
- MCFG_DEVICE_ADD("audiocpu", Z80, 3584229) /* 3.58 MHz (from schematics) */
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(sound_memmap)
- MCFG_DEVICE_IO_MAP(sound_portmap)
+ Z80(config, m_audiocpu, 3584229); /* 3.58 MHz (from schematics) */
+ m_audiocpu->set_daisy_config(daisy_chain);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &cchasm_state::sound_memmap);
+ m_audiocpu->set_addrmap(AS_IO, &cchasm_state::sound_portmap);
MCFG_DEVICE_ADD("ctc", Z80CTC, 3584229 /* same as "audiocpu" */)
MCFG_Z80CTC_INTR_CB(INPUTLINE("audiocpu", INPUT_LINE_IRQ0))
diff --git a/src/mame/drivers/ccs300.cpp b/src/mame/drivers/ccs300.cpp
index 506521f357b..e27a7ed6e0d 100644
--- a/src/mame/drivers/ccs300.cpp
+++ b/src/mame/drivers/ccs300.cpp
@@ -44,7 +44,7 @@ public:
void ccs300_io(address_map &map);
void ccs300_mem(address_map &map);
private:
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
};
void ccs300_state::ccs300_mem(address_map &map)
@@ -116,10 +116,10 @@ DEVICE_INPUT_DEFAULTS_END
MACHINE_CONFIG_START(ccs300_state::ccs300)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(4'000'000))
- MCFG_DEVICE_PROGRAM_MAP(ccs300_mem)
- MCFG_DEVICE_IO_MAP(ccs300_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, XTAL(4'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &ccs300_state::ccs300_mem);
+ m_maincpu->set_addrmap(AS_IO, &ccs300_state::ccs300_io);
+ m_maincpu->set_daisy_config(daisy_chain);
MCFG_MACHINE_RESET_OVERRIDE(ccs300_state, ccs300)
diff --git a/src/mame/drivers/compis.cpp b/src/mame/drivers/compis.cpp
index 69a3fadcd65..5306646ef6e 100644
--- a/src/mame/drivers/compis.cpp
+++ b/src/mame/drivers/compis.cpp
@@ -769,7 +769,7 @@ MACHINE_CONFIG_START(compis_state::compis)
MCFG_DEVICE_ADD(I8253_TAG, PIT8253, 0)
MCFG_PIT8253_CLK0(15.36_MHz_XTAL/8)
- MCFG_PIT8253_OUT0_HANDLER(WRITELINE(I8274_TAG, i8274_device, rxtxcb_w))
+ MCFG_PIT8253_OUT0_HANDLER(WRITELINE(m_mpsc, i8274_device, rxtxcb_w))
MCFG_PIT8253_CLK1(15.36_MHz_XTAL/8)
MCFG_PIT8253_CLK2(15.36_MHz_XTAL/8)
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, compis_state, tmr5_w))
@@ -787,14 +787,14 @@ MACHINE_CONFIG_START(compis_state::compis)
MCFG_DEVICE_ADD(COMPIS_KEYBOARD_TAG, COMPIS_KEYBOARD, 0)
MCFG_COMPIS_KEYBOARD_OUT_TX_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_rxd))
- MCFG_DEVICE_ADD(I8274_TAG, I8274, 15.36_MHz_XTAL/4)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_INT_CB(WRITELINE(I80186_TAG, i80186_cpu_device, int3_w))
+ I8274(config, m_mpsc, 15.36_MHz_XTAL/4);
+ m_mpsc->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd));
+ m_mpsc->out_dtra_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr));
+ m_mpsc->out_rtsa_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts));
+ m_mpsc->out_txdb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd));
+ m_mpsc->out_dtrb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr));
+ m_mpsc->out_rtsb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts));
+ m_mpsc->out_int_callback().set(m_maincpu, FUNC(i80186_cpu_device::int3_w));
MCFG_DEVICE_ADD(MM58174A_TAG, MM58274C, 32.768_kHz_XTAL)
MCFG_MM58274C_MODE24(1) // 24 hour
@@ -806,14 +806,14 @@ MACHINE_CONFIG_START(compis_state::compis)
MCFG_TIMER_DRIVER_ADD_PERIODIC("tape", compis_state, tape_tick, attotime::from_hz(44100))
MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(I8274_TAG, z80dart_device, rxa_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(I8274_TAG, z80dart_device, dcda_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(I8274_TAG, z80dart_device, ctsa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_mpsc, z80dart_device, rxa_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_mpsc, z80dart_device, dcda_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_mpsc, z80dart_device, ctsa_w))
MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(I8274_TAG, z80dart_device, rxb_w))
- MCFG_RS232_DCD_HANDLER(WRITELINE(I8274_TAG, z80dart_device, dcdb_w))
- MCFG_RS232_CTS_HANDLER(WRITELINE(I8274_TAG, z80dart_device, ctsb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_mpsc, z80dart_device, rxb_w))
+ MCFG_RS232_DCD_HANDLER(WRITELINE(m_mpsc, z80dart_device, dcdb_w))
+ MCFG_RS232_CTS_HANDLER(WRITELINE(m_mpsc, z80dart_device, ctsb_w))
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, compis_state, write_centronics_busy))
diff --git a/src/mame/drivers/cpzodiac.cpp b/src/mame/drivers/cpzodiac.cpp
index 170aa5e188e..39011926d72 100644
--- a/src/mame/drivers/cpzodiac.cpp
+++ b/src/mame/drivers/cpzodiac.cpp
@@ -51,7 +51,7 @@ public:
private:
virtual void machine_start() override;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_memory_bank m_bank;
@@ -163,10 +163,10 @@ static const z80_daisy_config daisy_chain[] =
MACHINE_CONFIG_START(cpzodiac_state::cpzodiac)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 12_MHz_XTAL/2)
- MCFG_DEVICE_PROGRAM_MAP(main_map)
- MCFG_DEVICE_IO_MAP(main_io_map)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, 12_MHz_XTAL/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &cpzodiac_state::main_map);
+ m_maincpu->set_addrmap(AS_IO, &cpzodiac_state::main_io_map);
+ m_maincpu->set_daisy_config(daisy_chain);
te7750_device &io(TE7750(config, "io", 0));
io.ios_cb().set_constant(4);
diff --git a/src/mame/drivers/czk80.cpp b/src/mame/drivers/czk80.cpp
index d3ebf864f1f..55fe855a3b6 100644
--- a/src/mame/drivers/czk80.cpp
+++ b/src/mame/drivers/czk80.cpp
@@ -74,7 +74,7 @@ private:
void czk80_io(address_map &map);
void czk80_mem(address_map &map);
uint8_t m_term_data;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<generic_terminal_device> m_terminal;
required_device<upd765a_device> m_fdc;
};
@@ -186,10 +186,11 @@ void czk80_state::kbd_put(u8 data)
MACHINE_CONFIG_START(czk80_state::czk80)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(16'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(czk80_mem)
- MCFG_DEVICE_IO_MAP(czk80_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, XTAL(16'000'000) / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &czk80_state::czk80_mem);
+ m_maincpu->set_addrmap(AS_IO, &czk80_state::czk80_io);
+ m_maincpu->set_daisy_config(daisy_chain);
+
MCFG_MACHINE_RESET_OVERRIDE(czk80_state, czk80)
MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0)
@@ -203,11 +204,11 @@ MACHINE_CONFIG_START(czk80_state::czk80)
MCFG_Z80CTC_ZC1_CB(WRITELINE(*this, czk80_state, ctc_z1_w))
MCFG_Z80CTC_ZC2_CB(WRITELINE(*this, czk80_state, ctc_z2_w))
- MCFG_DEVICE_ADD("dart", Z80DART, XTAL(16'000'000) / 4)
- //MCFG_Z80DART_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- //MCFG_Z80DART_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- //MCFG_Z80DART_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ z80dart_device& dart(Z80DART(config, "dart", XTAL(16'000'000) / 4));
+ //dart.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+ //dart.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
+ //dart.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts));
+ dart.out_int_callback().set_inputline("maincpu", INPUT_LINE_IRQ0);
z80pio_device& pio(Z80PIO(config, "pio", XTAL(16'000'000)/4));
pio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
diff --git a/src/mame/drivers/dlair.cpp b/src/mame/drivers/dlair.cpp
index 6c4aeafef13..70dadf8d65c 100644
--- a/src/mame/drivers/dlair.cpp
+++ b/src/mame/drivers/dlair.cpp
@@ -135,7 +135,7 @@ private:
void dleuro_map(address_map &map);
void dlus_map(address_map &map);
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
optional_device<speaker_sound_device> m_speaker;
optional_device<gfxdecode_device> m_gfxdecode;
optional_device<palette_device> m_palette;
@@ -768,10 +768,10 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(dlair_state::dleuro)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK_EURO/4)
- MCFG_Z80_DAISY_CHAIN(dleuro_daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(dleuro_map)
- MCFG_DEVICE_IO_MAP(dleuro_io_map)
+ Z80(config, m_maincpu, MASTER_CLOCK_EURO/4);
+ m_maincpu->set_daisy_config(dleuro_daisy_chain);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dlair_state::dleuro_map);
+ m_maincpu->set_addrmap(AS_IO, &dlair_state::dleuro_io_map);
MCFG_DEVICE_ADD("ctc", Z80CTC, MASTER_CLOCK_EURO/4 /* same as "maincpu" */)
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
diff --git a/src/mame/drivers/dmax8000.cpp b/src/mame/drivers/dmax8000.cpp
index 0dfadd4f1c3..853808a7199 100644
--- a/src/mame/drivers/dmax8000.cpp
+++ b/src/mame/drivers/dmax8000.cpp
@@ -172,10 +172,10 @@ MACHINE_CONFIG_START(dmax8000_state::dmax8000)
ctc.zc_callback<1>().set("dart2", FUNC(z80dart_device::rxtxcb_w));
ctc.zc_callback<2>().set("dart1", FUNC(z80dart_device::rxtxcb_w));
- MCFG_DEVICE_ADD("dart1", Z80DART, 4'000'000) // A = terminal; B = aux
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts))
+ z80dart_device& dart1(Z80DART(config, "dart1", 4'000'000)); // A = terminal; B = aux
+ dart1.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+ dart1.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
+ dart1.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("dart1", z80dart_device, rxa_w))
@@ -183,7 +183,7 @@ MACHINE_CONFIG_START(dmax8000_state::dmax8000)
MCFG_RS232_RI_HANDLER(WRITELINE("dart1", z80dart_device, ria_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("dart1", z80dart_device, ctsa_w))
- MCFG_DEVICE_ADD("dart2", Z80DART, 4'000'000) // RS232 ports
+ Z80DART(config, "dart2", 4'000'000); // RS232 ports
z80pio_device& pio1(Z80PIO(config, "pio1", 4'000'000));
pio1.out_pa_callback().set(FUNC(dmax8000_state::port0c_w));
diff --git a/src/mame/drivers/dsb46.cpp b/src/mame/drivers/dsb46.cpp
index ea34b754a7f..cc19c141f1b 100644
--- a/src/mame/drivers/dsb46.cpp
+++ b/src/mame/drivers/dsb46.cpp
@@ -54,7 +54,7 @@ private:
DECLARE_MACHINE_RESET(dsb46);
void dsb46_io(address_map &map);
void dsb46_mem(address_map &map);
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
};
void dsb46_state::dsb46_mem(address_map &map)
@@ -110,10 +110,10 @@ static const z80_daisy_config daisy_chain[] =
MACHINE_CONFIG_START(dsb46_state::dsb46)
// basic machine hardware
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(24'000'000) / 6)
- MCFG_DEVICE_PROGRAM_MAP(dsb46_mem)
- MCFG_DEVICE_IO_MAP(dsb46_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, XTAL(24'000'000) / 6);
+ m_maincpu->set_addrmap(AS_PROGRAM, &dsb46_state::dsb46_mem);
+ m_maincpu->set_addrmap(AS_IO, &dsb46_state::dsb46_io);
+ m_maincpu->set_daisy_config(daisy_chain);
MCFG_MACHINE_RESET_OVERRIDE(dsb46_state, dsb46)
diff --git a/src/mame/drivers/einstein.cpp b/src/mame/drivers/einstein.cpp
index 199a98a816b..a39a104cb79 100644
--- a/src/mame/drivers/einstein.cpp
+++ b/src/mame/drivers/einstein.cpp
@@ -119,7 +119,7 @@ private:
void einstein_scan_keyboard();
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80daisy_generic_device> m_keyboard_daisy;
required_device<z80daisy_generic_device> m_adc_daisy;
required_device<z80daisy_generic_device> m_fire_daisy;
@@ -579,10 +579,10 @@ static void einstein_floppies(device_slot_interface &device)
MACHINE_CONFIG_START(einstein_state::einstein)
/* basic machine hardware */
- MCFG_DEVICE_ADD(IC_I001, Z80, XTAL_X002 / 2)
- MCFG_DEVICE_PROGRAM_MAP(einstein_mem)
- MCFG_DEVICE_IO_MAP(einstein_io)
- MCFG_Z80_DAISY_CHAIN(einstein_daisy_chain)
+ Z80(config, m_maincpu, XTAL_X002 / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &einstein_state::einstein_mem);
+ m_maincpu->set_addrmap(AS_IO, &einstein_state::einstein_io);
+ m_maincpu->set_daisy_config(einstein_daisy_chain);
/* this is actually clocked at the system clock 4 MHz, but this would be too fast for our
driver. So we update at 50Hz and hope this is good enough. */
@@ -608,12 +608,12 @@ MACHINE_CONFIG_START(einstein_state::einstein)
ctc_trigger.signal_handler().append(IC_I058, FUNC(z80ctc_device::trg2));
/* Einstein daisy chain support for non-Z80 devices */
- MCFG_Z80DAISY_GENERIC_ADD("keyboard_daisy", 0xf7)
- MCFG_Z80DAISY_GENERIC_INT_CB(WRITELINE(*this, einstein_state, int_w<2>))
- MCFG_Z80DAISY_GENERIC_ADD("adc_daisy", 0xfb)
- MCFG_Z80DAISY_GENERIC_INT_CB(WRITELINE(*this, einstein_state, int_w<3>))
- MCFG_Z80DAISY_GENERIC_ADD("fire_daisy", 0xfd)
- MCFG_Z80DAISY_GENERIC_INT_CB(WRITELINE(*this, einstein_state, int_w<4>))
+ Z80DAISY_GENERIC(config, m_keyboard_daisy, 0xf7);
+ m_keyboard_daisy->int_handler().set(FUNC(einstein_state::int_w<2>));
+ Z80DAISY_GENERIC(config, m_adc_daisy, 0xfb);
+ m_adc_daisy->int_handler().set(FUNC(einstein_state::int_w<3>));
+ Z80DAISY_GENERIC(config, m_fire_daisy, 0xfd);
+ m_fire_daisy->int_handler().set(FUNC(einstein_state::int_w<4>));
/* video hardware */
tms9129_device &vdp(TMS9129(config, "vdp", 10.738635_MHz_XTAL));
@@ -629,7 +629,7 @@ MACHINE_CONFIG_START(einstein_state::einstein)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
adc0844_device &adc(ADC0844(config, "adc", 0));
- adc.intr_callback().set("adc_daisy", FUNC(z80daisy_generic_device::int_w));
+ adc.intr_callback().set(m_adc_daisy, FUNC(z80daisy_generic_device::int_w));
adc.ch1_callback().set_ioport("analogue_1_x");
adc.ch2_callback().set_ioport("analogue_1_y");
adc.ch3_callback().set_ioport("analogue_2_x");
diff --git a/src/mame/drivers/excali64.cpp b/src/mame/drivers/excali64.cpp
index fd77b9c7b63..e61be693a91 100644
--- a/src/mame/drivers/excali64.cpp
+++ b/src/mame/drivers/excali64.cpp
@@ -603,18 +603,18 @@ MACHINE_CONFIG_START(excali64_state::excali64)
MCFG_CASSETTE_ADD( "cassette" )
MCFG_DEVICE_ADD("fdc", WD2793, 16_MHz_XTAL / 16)
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE("dma", z80dma_device, rdy_w))
+ MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(m_dma, z80dma_device, rdy_w))
MCFG_FLOPPY_DRIVE_ADD("fdc:0", excali64_floppies, "525qd", excali64_state::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", excali64_floppies, "525qd", excali64_state::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_DEVICE_ADD("dma", Z80DMA, 16_MHz_XTAL / 4)
- MCFG_Z80DMA_OUT_BUSREQ_CB(WRITELINE(*this, excali64_state, busreq_w))
- MCFG_Z80DMA_IN_MREQ_CB(READ8(*this, excali64_state, memory_read_byte))
- MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(*this, excali64_state, memory_write_byte))
- MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, excali64_state, io_read_byte))
- MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, excali64_state, io_write_byte))
+ Z80DMA(config, m_dma, 16_MHz_XTAL / 4);
+ m_dma->out_busreq_callback().set(FUNC(excali64_state::busreq_w));
+ m_dma->in_mreq_callback().set(FUNC(excali64_state::memory_read_byte));
+ m_dma->out_mreq_callback().set(FUNC(excali64_state::memory_write_byte));
+ m_dma->in_iorq_callback().set(FUNC(excali64_state::io_read_byte));
+ m_dma->out_iorq_callback().set(FUNC(excali64_state::io_write_byte));
TTL74123(config, m_u12, 0);
m_u12->set_connection_type(TTL74123_GROUNDED); /* Hook up type (no idea what this means) */
diff --git a/src/mame/drivers/gp_1.cpp b/src/mame/drivers/gp_1.cpp
index 6fd5c627c62..b649163982d 100644
--- a/src/mame/drivers/gp_1.cpp
+++ b/src/mame/drivers/gp_1.cpp
@@ -71,7 +71,7 @@ private:
uint8_t m_segment[16];
virtual void machine_reset() override;
virtual void machine_start() override { m_digits.resolve(); }
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
optional_device<sn76477_device> m_sn;
required_ioport m_io_dsw0;
@@ -435,10 +435,10 @@ static const z80_daisy_config daisy_chain[] =
MACHINE_CONFIG_START(gp_1_state::gp_1)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 2457600)
- MCFG_DEVICE_PROGRAM_MAP(gp_1_map)
- MCFG_DEVICE_IO_MAP(gp_1_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, 2457600);
+ m_maincpu->set_addrmap(AS_PROGRAM, &gp_1_state::gp_1_map);
+ m_maincpu->set_addrmap(AS_IO, &gp_1_state::gp_1_io);
+ m_maincpu->set_daisy_config(daisy_chain);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/gp_2.cpp b/src/mame/drivers/gp_2.cpp
index 5ec3687f581..85986796ccd 100644
--- a/src/mame/drivers/gp_2.cpp
+++ b/src/mame/drivers/gp_2.cpp
@@ -78,7 +78,7 @@ private:
uint8_t m_segment[16];
virtual void machine_reset() override;
virtual void machine_start() override { m_digits.resolve(); }
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
required_ioport m_io_dsw0;
required_ioport m_io_dsw1;
@@ -584,10 +584,10 @@ static const z80_daisy_config daisy_chain[] =
MACHINE_CONFIG_START(gp_2_state::gp_2)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 2457600)
- MCFG_DEVICE_PROGRAM_MAP(gp_2_map)
- MCFG_DEVICE_IO_MAP(gp_2_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, 2457600);
+ m_maincpu->set_addrmap(AS_PROGRAM, &gp_2_state::gp_2_map);
+ m_maincpu->set_addrmap(AS_IO, &gp_2_state::gp_2_io);
+ m_maincpu->set_daisy_config(daisy_chain);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
diff --git a/src/mame/drivers/hazelgr.cpp b/src/mame/drivers/hazelgr.cpp
index b2b4f41335b..46141b86cce 100644
--- a/src/mame/drivers/hazelgr.cpp
+++ b/src/mame/drivers/hazelgr.cpp
@@ -28,7 +28,7 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
};
@@ -74,10 +74,10 @@ static const z80_daisy_config daisy_chain[] =
// All frequencies are guesswork, in an effort to get something to happen
MACHINE_CONFIG_START(haze_state::haze)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,2000000) /* ? MHz */
- MCFG_DEVICE_PROGRAM_MAP(mem_map)
- MCFG_DEVICE_IO_MAP(io_map)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, 2000000); /* ? MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &haze_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &haze_state::io_map);
+ m_maincpu->set_daisy_config(daisy_chain);
clock_device &ctc_clock(CLOCK(config, "ctc_clock", 1'000'000));
ctc_clock.signal_handler().set("ctc1", FUNC(z80ctc_device::trg3));
diff --git a/src/mame/drivers/huebler.cpp b/src/mame/drivers/huebler.cpp
index bf61d2251ef..ac7aacc2a0b 100644
--- a/src/mame/drivers/huebler.cpp
+++ b/src/mame/drivers/huebler.cpp
@@ -313,10 +313,10 @@ GFXDECODE_END
MACHINE_CONFIG_START(amu880_state::amu880)
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(10'000'000)/4) // U880D
- MCFG_DEVICE_PROGRAM_MAP(amu880_mem)
- MCFG_DEVICE_IO_MAP(amu880_io)
- MCFG_Z80_DAISY_CHAIN(amu880_daisy_chain)
+ Z80(config, m_maincpu, XTAL(10'000'000)/4); // U880D
+ m_maincpu->set_addrmap(AS_PROGRAM, &amu880_state::amu880_mem);
+ m_maincpu->set_addrmap(AS_IO, &amu880_state::amu880_io);
+ m_maincpu->set_daisy_config(amu880_daisy_chain);
MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", amu880_state, keyboard_tick, attotime::from_hz(1500))
@@ -336,14 +336,14 @@ MACHINE_CONFIG_START(amu880_state::amu880)
MCFG_Z80CTC_ZC2_CB(WRITELINE(*this, amu880_state, ctc_z2_w))
z80pio_device& pio1(Z80PIO(config, Z80PIO1_TAG, XTAL(10'000'000)/4));
- pio1.out_int_callback().set_inputline(Z80_TAG, INPUT_LINE_IRQ0);
+ pio1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
z80pio_device& pio2(Z80PIO(config, Z80PIO2_TAG, XTAL(10'000'000)/4));
- pio2.out_int_callback().set_inputline(Z80_TAG, INPUT_LINE_IRQ0);
+ pio2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
Z80SIO0(config, m_z80sio, XTAL(10'000'000)/4); // U856
m_z80sio->out_txda_callback().set(FUNC(amu880_state::cassette_w));
- m_z80sio->out_int_callback().set_inputline(Z80_TAG, INPUT_LINE_IRQ0);
+ m_z80sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
MCFG_CASSETTE_ADD("cassette")
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED)
diff --git a/src/mame/drivers/isbc.cpp b/src/mame/drivers/isbc.cpp
index 19fc24b10e0..730517e0490 100644
--- a/src/mame/drivers/isbc.cpp
+++ b/src/mame/drivers/isbc.cpp
@@ -468,14 +468,14 @@ MACHINE_CONFIG_START(isbc_state::isbc286)
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
#if 0
- MCFG_DEVICE_ADD("uart8274", I8274, XTAL(16'000'000)/4)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE("rs232a", rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE("rs232a", rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE("rs232a", rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE("rs232b", rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRB_CB(WRITELINE("rs232b", rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSB_CB(WRITELINE("rs232b", rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_INT_CB(WRITELINE(*this, isbc_state, isbc_uart8274_irq))
+ I8274(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));
+ m_uart8274->out_int_callback().set(FUNC(isbc_state::isbc_uart8274_irq));
#else
I8274_NEW(config, m_uart8274, XTAL(16'000'000)/4);
m_uart8274->out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd));
diff --git a/src/mame/drivers/jankenmn.cpp b/src/mame/drivers/jankenmn.cpp
index dab1e3d8e1f..6f7ead86d88 100644
--- a/src/mame/drivers/jankenmn.cpp
+++ b/src/mame/drivers/jankenmn.cpp
@@ -183,7 +183,7 @@ private:
void jankenmn_map(address_map &map);
void jankenmn_port_map(address_map &map);
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
output_finder<2> m_digits;
output_finder<16> m_lamps;
};
@@ -385,10 +385,10 @@ static const z80_daisy_config daisy_chain[] =
MACHINE_CONFIG_START(jankenmn_state::jankenmn)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK) /* 2.5 MHz */
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(jankenmn_map)
- MCFG_DEVICE_IO_MAP(jankenmn_port_map)
+ Z80(config, m_maincpu, MASTER_CLOCK); /* 2.5 MHz */
+ m_maincpu->set_daisy_config(daisy_chain);
+ m_maincpu->set_addrmap(AS_PROGRAM, &jankenmn_state::jankenmn_map);
+ m_maincpu->set_addrmap(AS_IO, &jankenmn_state::jankenmn_port_map);
MCFG_DEVICE_ADD("ppi8255_0", I8255, 0)
/* (10-13) Mode 0 - Ports A & B set as input, high C & low C as output. */
diff --git a/src/mame/drivers/joctronic.cpp b/src/mame/drivers/joctronic.cpp
index 9c318fc794c..9d73efba2aa 100644
--- a/src/mame/drivers/joctronic.cpp
+++ b/src/mame/drivers/joctronic.cpp
@@ -74,7 +74,7 @@ private:
void slalom03_sound_io_map(address_map &map);
void slalom03_sound_map(address_map &map);
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<ls259_device> m_mainlatch;
required_device<cpu_device> m_soundcpu;
optional_device<msm5205_device> m_oki;
@@ -337,10 +337,10 @@ INPUT_PORTS_END
MACHINE_CONFIG_START(joctronic_state::joctronic)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/4) // 3 MHz - uses WAIT
- MCFG_DEVICE_PROGRAM_MAP(maincpu_map) // 139
- MCFG_DEVICE_IO_MAP(maincpu_io_map)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, XTAL(12'000'000)/4); // 3 MHz - uses WAIT
+ m_maincpu->set_addrmap(AS_PROGRAM, &joctronic_state::maincpu_map); // 139
+ m_maincpu->set_addrmap(AS_IO, &joctronic_state::maincpu_io_map);
+ m_maincpu->set_daisy_config(daisy_chain);
MCFG_DEVICE_ADD("soundcpu", Z80, XTAL(12'000'000)/2) // 6 MHz - uses WAIT
MCFG_DEVICE_PROGRAM_MAP(joctronic_sound_map)
@@ -383,10 +383,10 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(joctronic_state::slalom03)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(12'000'000)/2) // 6 MHz - uses WAIT
- MCFG_DEVICE_PROGRAM_MAP(slalom03_maincpu_map) // 138, 368, 32
- MCFG_DEVICE_IO_MAP(maincpu_io_map)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, XTAL(12'000'000)/2); // 6 MHz - uses WAIT
+ m_maincpu->set_addrmap(AS_PROGRAM, &joctronic_state::slalom03_maincpu_map); // 138, 368, 32
+ m_maincpu->set_addrmap(AS_IO, &joctronic_state::maincpu_io_map);
+ m_maincpu->set_daisy_config(daisy_chain);
MCFG_DEVICE_ADD("soundcpu", Z80, XTAL(12'000'000)/2) // 6 MHz - uses WAIT
MCFG_DEVICE_PROGRAM_MAP(slalom03_sound_map)
@@ -434,11 +434,11 @@ MACHINE_CONFIG_START(joctronic_state::slalom03)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(joctronic_state::bldyrolr)
+void joctronic_state::bldyrolr(machine_config & config)
+{
slalom03(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(bldyrolr_maincpu_map)
-MACHINE_CONFIG_END
+ m_maincpu->set_addrmap(AS_PROGRAM, &joctronic_state::bldyrolr_maincpu_map);
+}
/*-------------------------------------------------------------------
diff --git a/src/mame/drivers/kaypro.cpp b/src/mame/drivers/kaypro.cpp
index 33b2ebc14e7..1cb1dff0271 100644
--- a/src/mame/drivers/kaypro.cpp
+++ b/src/mame/drivers/kaypro.cpp
@@ -197,10 +197,10 @@ static void kaypro_floppies(device_slot_interface &device)
MACHINE_CONFIG_START(kaypro_state::kayproii)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 20_MHz_XTAL / 8)
- MCFG_DEVICE_PROGRAM_MAP(kaypro_map)
- MCFG_DEVICE_IO_MAP(kayproii_io)
- MCFG_Z80_DAISY_CHAIN(kayproii_daisy_chain)
+ Z80(config, m_maincpu, 20_MHz_XTAL / 8);
+ m_maincpu->set_addrmap(AS_PROGRAM, &kaypro_state::kaypro_map);
+ m_maincpu->set_addrmap(AS_IO, &kaypro_state::kayproii_io);
+ m_maincpu->set_daisy_config(kayproii_daisy_chain);
MCFG_MACHINE_START_OVERRIDE(kaypro_state, kayproii )
MCFG_MACHINE_RESET_OVERRIDE(kaypro_state, kaypro )
@@ -286,10 +286,10 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(kaypro_state::kaypro484)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 16_MHz_XTAL / 4)
- MCFG_DEVICE_PROGRAM_MAP(kaypro_map)
- MCFG_DEVICE_IO_MAP(kaypro484_io)
- MCFG_Z80_DAISY_CHAIN(kaypro484_daisy_chain)
+ Z80(config, m_maincpu, 16_MHz_XTAL / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &kaypro_state::kaypro_map);
+ m_maincpu->set_addrmap(AS_IO, &kaypro_state::kaypro484_io);
+ m_maincpu->set_daisy_config(kaypro484_daisy_chain);
MCFG_MACHINE_RESET_OVERRIDE(kaypro_state, kaypro )
diff --git a/src/mame/drivers/kdt6.cpp b/src/mame/drivers/kdt6.cpp
index d8a76b955b8..dcd91a68ccb 100644
--- a/src/mame/drivers/kdt6.cpp
+++ b/src/mame/drivers/kdt6.cpp
@@ -617,10 +617,10 @@ static const z80_daisy_config daisy_chain_intf[] =
};
MACHINE_CONFIG_START(kdt6_state::psi98)
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(16'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(psi98_mem)
- MCFG_DEVICE_IO_MAP(psi98_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain_intf)
+ Z80(config, m_cpu, XTAL(16'000'000) / 4);
+ m_cpu->set_addrmap(AS_PROGRAM, &kdt6_state::psi98_mem);
+ m_cpu->set_addrmap(AS_IO, &kdt6_state::psi98_io);
+ m_cpu->set_daisy_config(daisy_chain_intf);
// video hardware
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green())
diff --git a/src/mame/drivers/kenseim.cpp b/src/mame/drivers/kenseim.cpp
index d47473dfc07..aec34d7a567 100644
--- a/src/mame/drivers/kenseim.cpp
+++ b/src/mame/drivers/kenseim.cpp
@@ -138,7 +138,7 @@ GND | 20
*/
-// note: I've kept this code out of cps1.c as there is likely to be a substantial amount of game specific code here ones all the extra hardware is emulated
+// note: I've kept this code out of cps1.cpp as there is likely to be a substantial amount of game specific code here ones all the extra hardware is emulated
#include "emu.h"
#include "cpu/z80/tmpz84c011.h"
@@ -481,17 +481,17 @@ MACHINE_CONFIG_START(kenseim_state::kenseim)
cps1_12MHz(config);
/* basic machine hardware */
- MCFG_DEVICE_ADD("gamecpu", TMPZ84C011, XTAL(16'000'000)/2) // tmpz84c011-8
- MCFG_Z80_DAISY_CHAIN(daisy_chain_gamecpu)
- MCFG_DEVICE_PROGRAM_MAP(kenseim_map)
- MCFG_DEVICE_IO_MAP(kenseim_io_map)
- MCFG_TMPZ84C011_PORTC_WRITE_CB(WRITE8(*this, kenseim_state, cpu_portc_w))
- MCFG_TMPZ84C011_PORTD_WRITE_CB(WRITE8(*this, kenseim_state, cpu_portd_w))
- MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(*this, kenseim_state, cpu_porte_w))
- MCFG_TMPZ84C011_PORTA_READ_CB(IOPORT("DSW1"))
- MCFG_TMPZ84C011_PORTB_READ_CB(IOPORT("DSW2"))
- MCFG_TMPZ84C011_PORTC_READ_CB(IOPORT("CAB-IN"))
- MCFG_TMPZ84C011_PORTD_READ_CB(READ8(*this, kenseim_state, cpu_portd_r))
+ tmpz84c011_device& gamecpu(TMPZ84C011(config, "gamecpu", XTAL(16'000'000)/2)); // tmpz84c011-8
+ gamecpu.set_daisy_config(daisy_chain_gamecpu);
+ gamecpu.set_addrmap(AS_PROGRAM, &kenseim_state::kenseim_map);
+ gamecpu.set_addrmap(AS_IO, &kenseim_state::kenseim_io_map);
+ gamecpu.out_pc_callback().set(FUNC(kenseim_state::cpu_portc_w));
+ gamecpu.out_pd_callback().set(FUNC(kenseim_state::cpu_portd_w));
+ gamecpu.out_pe_callback().set(FUNC(kenseim_state::cpu_porte_w));
+ gamecpu.in_pa_callback().set_ioport("DSW1");
+ gamecpu.in_pb_callback().set_ioport("DSW2");
+ gamecpu.in_pc_callback().set_ioport("CAB-IN");
+ gamecpu.in_pd_callback().set(FUNC(kenseim_state::cpu_portd_r));
MCFG_MB89363B_ADD("mb89363b")
// a,b,c always $80: all ports set as output
diff --git a/src/mame/drivers/llc.cpp b/src/mame/drivers/llc.cpp
index 06cf7bd8b95..4f7aa987a50 100644
--- a/src/mame/drivers/llc.cpp
+++ b/src/mame/drivers/llc.cpp
@@ -202,10 +202,10 @@ GFXDECODE_END
/* Machine driver */
MACHINE_CONFIG_START(llc_state::llc1)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(3'000'000))
- MCFG_Z80_DAISY_CHAIN(llc1_daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(llc1_mem)
- MCFG_DEVICE_IO_MAP(llc1_io)
+ Z80(config, m_maincpu, XTAL(3'000'000));
+ m_maincpu->set_daisy_config(llc1_daisy_chain);
+ m_maincpu->set_addrmap(AS_PROGRAM, &llc_state::llc1_mem);
+ m_maincpu->set_addrmap(AS_IO, &llc_state::llc1_io);
MCFG_MACHINE_START_OVERRIDE(llc_state, llc1 )
MCFG_MACHINE_RESET_OVERRIDE(llc_state, llc1 )
@@ -246,10 +246,10 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(llc_state::llc2)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(3'000'000))
- MCFG_Z80_DAISY_CHAIN(llc2_daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(llc2_mem)
- MCFG_DEVICE_IO_MAP(llc2_io)
+ Z80(config, m_maincpu, XTAL(3'000'000));
+ m_maincpu->set_daisy_config(llc2_daisy_chain);
+ m_maincpu->set_addrmap(AS_PROGRAM, &llc_state::llc2_mem);
+ m_maincpu->set_addrmap(AS_IO, &llc_state::llc2_io);
MCFG_MACHINE_RESET_OVERRIDE(llc_state, llc2 )
diff --git a/src/mame/drivers/m5.cpp b/src/mame/drivers/m5.cpp
index 883ff137ac6..add6b9017af 100644
--- a/src/mame/drivers/m5.cpp
+++ b/src/mame/drivers/m5.cpp
@@ -277,7 +277,6 @@ Few other notes:
#include "emu.h"
#include "includes/m5.h"
-#include "cpu/z80/z80.h"
#include "machine/z80daisy.h"
#include "machine/z80ctc.h"
#include "sound/sn76496.h"
@@ -1407,10 +1406,10 @@ void brno_state::machine_reset()
MACHINE_CONFIG_START(m5_state::m5)
// basic machine hardware
- MCFG_DEVICE_ADD(Z80_TAG, Z80, 14.318181_MHz_XTAL / 4)
- MCFG_DEVICE_PROGRAM_MAP(m5_mem)
- MCFG_DEVICE_IO_MAP(m5_io)
- MCFG_Z80_DAISY_CHAIN(m5_daisy_chain)
+ Z80(config, m_maincpu, 14.318181_MHz_XTAL / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &m5_state::m5_mem);
+ m_maincpu->set_addrmap(AS_IO, &m5_state::m5_io);
+ m_maincpu->set_daisy_config(m5_daisy_chain);
MCFG_DEVICE_ADD(Z80_FD5_TAG, Z80, 14.318181_MHz_XTAL / 4)
MCFG_DEVICE_PROGRAM_MAP(fd5_mem)
@@ -1503,10 +1502,8 @@ MACHINE_CONFIG_START(brno_state::brno)
m5(config);
// basic machine hardware
- MCFG_DEVICE_MODIFY(Z80_TAG)
- MCFG_DEVICE_PROGRAM_MAP(m5_mem_brno)
- MCFG_DEVICE_IO_MAP(brno_io)
-// MCFG_Z80_DAISY_CHAIN(m5_daisy_chain)
+ m_maincpu->set_addrmap(AS_PROGRAM, &brno_state::m5_mem_brno);
+ m_maincpu->set_addrmap(AS_IO, &brno_state::brno_io);
//remove devices used for fd5 floppy
diff --git a/src/mame/drivers/mbee.cpp b/src/mame/drivers/mbee.cpp
index 6c71e6a1263..a56a03fa10b 100644
--- a/src/mame/drivers/mbee.cpp
+++ b/src/mame/drivers/mbee.cpp
@@ -647,10 +647,10 @@ static void mbee_floppies(device_slot_interface &device)
MACHINE_CONFIG_START(mbee_state::mbee)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 12_MHz_XTAL / 6) /* 2 MHz */
- MCFG_DEVICE_PROGRAM_MAP(mbee_mem)
- MCFG_DEVICE_IO_MAP(mbee_io)
- MCFG_Z80_DAISY_CHAIN(mbee_daisy_chain)
+ Z80(config, m_maincpu, 12_MHz_XTAL / 6); /* 2 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &mbee_state::mbee_mem);
+ m_maincpu->set_addrmap(AS_IO, &mbee_state::mbee_io);
+ m_maincpu->set_daisy_config(mbee_daisy_chain);
MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee)
@@ -704,10 +704,10 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(mbee_state::mbeeic)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL_13_5MHz / 4) /* 3.37500 MHz */
- MCFG_DEVICE_PROGRAM_MAP(mbeeic_mem)
- MCFG_DEVICE_IO_MAP(mbeeic_io)
- MCFG_Z80_DAISY_CHAIN(mbee_daisy_chain)
+ Z80(config, m_maincpu, XTAL_13_5MHz / 4); /* 3.37500 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &mbee_state::mbeeic_mem);
+ m_maincpu->set_addrmap(AS_IO, &mbee_state::mbeeic_io);
+ m_maincpu->set_daisy_config(mbee_daisy_chain);
MCFG_MACHINE_RESET_OVERRIDE(mbee_state, mbee)
diff --git a/src/mame/drivers/mcr.cpp b/src/mame/drivers/mcr.cpp
index 03a6c62828e..69b2a888cd4 100644
--- a/src/mame/drivers/mcr.cpp
+++ b/src/mame/drivers/mcr.cpp
@@ -1752,10 +1752,11 @@ static const char *const twotiger_sample_names[] =
MACHINE_CONFIG_START(mcr_state::mcr_90009)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MAIN_OSC_MCR_I/8)
- MCFG_Z80_DAISY_CHAIN(mcr_daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(cpu_90009_map)
- MCFG_DEVICE_IO_MAP(cpu_90009_portmap)
+ Z80(config, m_maincpu, MAIN_OSC_MCR_I/8);
+ m_maincpu->set_daisy_config(mcr_daisy_chain);
+ m_maincpu->set_addrmap(AS_PROGRAM, &mcr_state::cpu_90009_map);
+ m_maincpu->set_addrmap(AS_IO, &mcr_state::cpu_90009_portmap);
+
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mcr_state, mcr_interrupt, "screen", 0, 1)
MCFG_DEVICE_ADD("ctc", Z80CTC, MAIN_OSC_MCR_I/8 /* same as "maincpu" */)
@@ -1805,9 +1806,8 @@ MACHINE_CONFIG_START(mcr_state::mcr_90010)
mcr_90009(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(cpu_90010_map)
- MCFG_DEVICE_IO_MAP(cpu_90010_portmap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &mcr_state::cpu_90010_map);
+ m_maincpu->set_addrmap(AS_IO, &mcr_state::cpu_90010_portmap);
/* video hardware */
MCFG_PALETTE_MODIFY("palette")
@@ -1852,10 +1852,9 @@ MACHINE_CONFIG_START(mcr_state::mcr_91490)
mcr_90010(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_CLOCK(5000000)
- MCFG_DEVICE_PROGRAM_MAP(cpu_91490_map)
- MCFG_DEVICE_IO_MAP(cpu_91490_portmap)
+ m_maincpu->set_clock(5000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &mcr_state::cpu_91490_map);
+ m_maincpu->set_addrmap(AS_IO, &mcr_state::cpu_91490_portmap);
MCFG_DEVICE_MODIFY("ctc")
MCFG_DEVICE_CLOCK(5000000 /* same as "maincpu" */)
@@ -1878,10 +1877,11 @@ MACHINE_CONFIG_START(mcr_nflfoot_state::mcr_91490_ipu)
mcr_91490_snt(config);
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_ipu, Z80, 7372800/2)
- MCFG_Z80_DAISY_CHAIN(mcr_ipu_daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(ipu_91695_map)
- MCFG_DEVICE_IO_MAP(ipu_91695_portmap)
+ Z80(config, m_ipu, 7372800/2);
+ m_ipu->set_daisy_config(mcr_ipu_daisy_chain);
+ m_ipu->set_addrmap(AS_PROGRAM, &mcr_nflfoot_state::ipu_91695_map);
+ m_ipu->set_addrmap(AS_IO, &mcr_nflfoot_state::ipu_91695_portmap);
+
MCFG_TIMER_MODIFY("scantimer")
MCFG_TIMER_DRIVER_CALLBACK(mcr_nflfoot_state, ipu_interrupt)
diff --git a/src/mame/drivers/mcr3.cpp b/src/mame/drivers/mcr3.cpp
index 552cce6b392..03bd561b0e5 100644
--- a/src/mame/drivers/mcr3.cpp
+++ b/src/mame/drivers/mcr3.cpp
@@ -1081,10 +1081,11 @@ GFXDECODE_END
MACHINE_CONFIG_START(mcr3_state::mcrmono)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(mcrmono_map)
- MCFG_DEVICE_IO_MAP(mcrmono_portmap)
- MCFG_Z80_DAISY_CHAIN(mcr_daisy_chain)
+ Z80(config, m_maincpu, MASTER_CLOCK/4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &mcr3_state::mcrmono_map);
+ m_maincpu->set_addrmap(AS_IO, &mcr3_state::mcrmono_portmap);
+ m_maincpu->set_daisy_config(mcr_daisy_chain);
+
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", mcr3_state, mcr_interrupt, "screen", 0, 1)
MCFG_DEVICE_ADD("ctc", Z80CTC, MASTER_CLOCK/4 /* same as "maincpu" */)
@@ -1163,9 +1164,8 @@ MACHINE_CONFIG_START(mcr3_state::mcrscroll)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(spyhunt_map)
- MCFG_DEVICE_IO_MAP(spyhunt_portmap)
+ m_maincpu->set_addrmap(AS_PROGRAM, &mcr3_state::spyhunt_map);
+ m_maincpu->set_addrmap(AS_IO, &mcr3_state::spyhunt_portmap);
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
diff --git a/src/mame/drivers/meritm.cpp b/src/mame/drivers/meritm.cpp
index 53cc296b096..c626c223c90 100644
--- a/src/mame/drivers/meritm.cpp
+++ b/src/mame/drivers/meritm.cpp
@@ -223,7 +223,7 @@ private:
required_device_array<v9938_device, 2> m_v9938;
optional_device<microtouch_device> m_microtouch;
optional_device<ns16550_device> m_uart;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
optional_memory_bank_array<3> m_banks;
required_memory_region m_region_maincpu;
optional_memory_region m_region_extra;
@@ -1101,10 +1101,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(meritm_state::vblank_end_tick)
}
MACHINE_CONFIG_START(meritm_state::crt250)
- MCFG_DEVICE_ADD(m_maincpu, Z80, SYSTEM_CLK/6)
- MCFG_DEVICE_PROGRAM_MAP(crt250_map)
- MCFG_DEVICE_IO_MAP(crt250_io_map)
- MCFG_Z80_DAISY_CHAIN(meritm_daisy_chain)
+ Z80(config, m_maincpu, SYSTEM_CLK/6);
+ m_maincpu->set_addrmap(AS_PROGRAM, &meritm_state::crt250_map);
+ m_maincpu->set_addrmap(AS_IO, &meritm_state::crt250_io_map);
+ m_maincpu->set_daisy_config(meritm_daisy_chain);
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, meritm_state, crt250_port_b_w)) // used LMP x DRIVE
@@ -1150,15 +1150,17 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(meritm_state::crt250_questions)
crt250(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(crt250_questions_map)
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &meritm_state::crt250_questions_map);
+
MCFG_MACHINE_START_OVERRIDE(meritm_state, crt250_questions)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(meritm_state::crt250_crt252_crt258)
crt250_questions(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(crt250_crt258_io_map)
+
+ m_maincpu->set_addrmap(AS_IO, &meritm_state::crt250_crt258_io_map);
+
MCFG_MACHINE_START_OVERRIDE(meritm_state, crt250_crt252_crt258)
MCFG_DEVICE_ADD(m_uart, NS16550, UART_CLK)
@@ -1169,9 +1171,9 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(meritm_state::crt260)
crt250(config);
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(map)
- MCFG_DEVICE_IO_MAP(io_map)
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &meritm_state::map);
+ m_maincpu->set_addrmap(AS_IO, &meritm_state::io_map);
MCFG_DEVICE_REMOVE("ppi8255")
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
diff --git a/src/mame/drivers/mmm.cpp b/src/mame/drivers/mmm.cpp
index d0b0d394eeb..8da2f58f904 100644
--- a/src/mame/drivers/mmm.cpp
+++ b/src/mame/drivers/mmm.cpp
@@ -33,7 +33,7 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
required_ioport_array<8> m_inputs;
u8 m_strobe;
@@ -175,10 +175,10 @@ static const z80_daisy_config mmm_daisy_chain[] =
MACHINE_CONFIG_START(mmm_state::mmm)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80,2000000) /* ? MHz */
- MCFG_DEVICE_PROGRAM_MAP(mem_map)
- MCFG_DEVICE_IO_MAP(io_map)
- MCFG_Z80_DAISY_CHAIN(mmm_daisy_chain)
+ Z80(config, m_maincpu, 2000000); /* ? MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &mmm_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &mmm_state::io_map);
+ m_maincpu->set_daisy_config(mmm_daisy_chain);
MCFG_DEVICE_ADD("ctc", Z80CTC, 2000000)
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
diff --git a/src/mame/drivers/mpf1.cpp b/src/mame/drivers/mpf1.cpp
index 0acdf1726bf..8ad13164092 100644
--- a/src/mame/drivers/mpf1.cpp
+++ b/src/mame/drivers/mpf1.cpp
@@ -358,11 +358,11 @@ void mpf1_state::machine_reset()
MACHINE_CONFIG_START(mpf1_state::mpf1)
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(3'579'545)/2)
- MCFG_DEVICE_PROGRAM_MAP(mpf1_map)
- MCFG_DEVICE_OPCODES_MAP(mpf1_step)
- MCFG_DEVICE_IO_MAP(mpf1_io_map)
- MCFG_Z80_DAISY_CHAIN(mpf1_daisy_chain)
+ Z80(config, m_maincpu, XTAL(3'579'545)/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpf1_state::mpf1_map);
+ m_maincpu->set_addrmap(AS_OPCODES, &mpf1_state::mpf1_step);
+ m_maincpu->set_addrmap(AS_IO, &mpf1_state::mpf1_io_map);
+ m_maincpu->set_daisy_config(mpf1_daisy_chain);
/* devices */
z80pio_device& pio(Z80PIO(config, Z80PIO_TAG, XTAL(3'579'545)/2));
@@ -392,11 +392,11 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(mpf1_state::mpf1b)
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(3'579'545)/2)
- MCFG_DEVICE_PROGRAM_MAP(mpf1b_map)
- MCFG_DEVICE_OPCODES_MAP(mpf1_step)
- MCFG_DEVICE_IO_MAP(mpf1b_io_map)
- MCFG_Z80_DAISY_CHAIN(mpf1_daisy_chain)
+ Z80(config, m_maincpu, XTAL(3'579'545)/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpf1_state::mpf1b_map);
+ m_maincpu->set_addrmap(AS_OPCODES, &mpf1_state::mpf1_step);
+ m_maincpu->set_addrmap(AS_IO, &mpf1_state::mpf1b_io_map);
+ m_maincpu->set_daisy_config(mpf1_daisy_chain);
/* devices */
z80pio_device& pio(Z80PIO(config, Z80PIO_TAG, XTAL(3'579'545)/2));
@@ -429,11 +429,11 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(mpf1_state::mpf1p)
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, 2500000)
- MCFG_DEVICE_PROGRAM_MAP(mpf1p_map)
- MCFG_DEVICE_OPCODES_MAP(mpf1_step)
- MCFG_DEVICE_IO_MAP(mpf1p_io_map)
- MCFG_Z80_DAISY_CHAIN(mpf1_daisy_chain)
+ Z80(config, m_maincpu, 2500000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &mpf1_state::mpf1p_map);
+ m_maincpu->set_addrmap(AS_OPCODES, &mpf1_state::mpf1_step);
+ m_maincpu->set_addrmap(AS_IO, &mpf1_state::mpf1p_io_map);
+ m_maincpu->set_daisy_config(mpf1_daisy_chain);
/* video hardware */
config.set_default_layout(layout_mpf1p);
diff --git a/src/mame/drivers/mtx.cpp b/src/mame/drivers/mtx.cpp
index ca375bc6431..c7d0cc45913 100644
--- a/src/mame/drivers/mtx.cpp
+++ b/src/mame/drivers/mtx.cpp
@@ -286,10 +286,10 @@ WRITE_LINE_MEMBER(mtx_state::mtx_tms9929a_interrupt)
MACHINE_CONFIG_START(mtx_state::mtx512)
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(4'000'000))
- MCFG_DEVICE_PROGRAM_MAP(mtx_mem)
- MCFG_DEVICE_IO_MAP(mtx_io)
- MCFG_Z80_DAISY_CHAIN(mtx_daisy_chain)
+ Z80(config, m_maincpu, XTAL(4'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &mtx_state::mtx_mem);
+ m_maincpu->set_addrmap(AS_IO, &mtx_state::mtx_io);
+ m_maincpu->set_daisy_config(mtx_daisy_chain);
MCFG_MACHINE_START_OVERRIDE(mtx_state,mtx512)
MCFG_MACHINE_RESET_OVERRIDE(mtx_state,mtx512)
@@ -360,13 +360,13 @@ void mtx_state::mtx500(machine_config &config)
MACHINE_CONFIG_START( rs128 )
-------------------------------------------------*/
-MACHINE_CONFIG_START(mtx_state::rs128)
+void mtx_state::rs128(machine_config &config)
+{
mtx512(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY(Z80_TAG)
- MCFG_DEVICE_IO_MAP(rs128_io)
- MCFG_Z80_DAISY_CHAIN(rs128_daisy_chain)
+ m_maincpu->set_addrmap(AS_IO, &mtx_state::rs128_io);
+ m_maincpu->set_daisy_config(rs128_daisy_chain);
/* devices */
Z80DART(config, m_z80dart, XTAL(4'000'000));
@@ -374,7 +374,7 @@ MACHINE_CONFIG_START(mtx_state::rs128)
/* internal ram */
m_ram->set_default_size("128K").set_extra_options("192K,320K,448K,512K");
-MACHINE_CONFIG_END
+}
/***************************************************************************
ROMS
diff --git a/src/mame/drivers/nanos.cpp b/src/mame/drivers/nanos.cpp
index 6f861789bd2..d39fadf3797 100644
--- a/src/mame/drivers/nanos.cpp
+++ b/src/mame/drivers/nanos.cpp
@@ -78,7 +78,7 @@ private:
uint8_t m_key_pressed;
uint8_t row_number(uint8_t code);
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80pio_device> m_pio;
required_device<z80pio_device> m_pio_0;
required_device<z80pio_device> m_pio_1;
@@ -467,10 +467,10 @@ GFXDECODE_END
MACHINE_CONFIG_START(nanos_state::nanos)
/* basic machine hardware */
- MCFG_DEVICE_ADD(m_maincpu,Z80, XTAL(4'000'000))
- MCFG_DEVICE_PROGRAM_MAP(mem_map)
- MCFG_DEVICE_IO_MAP(io_map)
- MCFG_Z80_DAISY_CHAIN(nanos_daisy_chain)
+ Z80(config, m_maincpu, XTAL(4'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &nanos_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &nanos_state::io_map);
+ m_maincpu->set_daisy_config(nanos_daisy_chain);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/nbmj9195.cpp b/src/mame/drivers/nbmj9195.cpp
index 6b71fcabbd2..0230b862896 100644
--- a/src/mame/drivers/nbmj9195.cpp
+++ b/src/mame/drivers/nbmj9195.cpp
@@ -2492,39 +2492,39 @@ static const z80_daisy_config daisy_chain_sound[] =
};
#define MSCOUTM_TMZ84C011_MAIN_PORTS \
- MCFG_TMPZ84C011_PORTA_READ_CB(IOPORT("SYSTEM")) \
- MCFG_TMPZ84C011_PORTA_WRITE_CB(WRITE8(*this, nbmj9195_state, mscoutm_inputportsel_w)) \
- MCFG_TMPZ84C011_PORTB_READ_CB(READ8(*this, nbmj9195_state, mscoutm_cpu_portb_r)) \
- MCFG_TMPZ84C011_PORTC_READ_CB(READ8(*this, nbmj9195_state, mscoutm_cpu_portc_r)) \
- MCFG_TMPZ84C011_PORTD_WRITE_CB(WRITE8(*this, nbmj9195_state, clutsel_w)) \
- MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(*this, nbmj9195_state, gfxflag2_w))
+ m_maincpu->in_pa_callback().set_ioport("SYSTEM"); \
+ m_maincpu->out_pa_callback().set(FUNC(nbmj9195_state::mscoutm_inputportsel_w)); \
+ m_maincpu->in_pb_callback().set(FUNC(nbmj9195_state::mscoutm_cpu_portb_r)); \
+ m_maincpu->in_pc_callback().set(FUNC(nbmj9195_state::mscoutm_cpu_portc_r)); \
+ m_maincpu->out_pd_callback().set(FUNC(nbmj9195_state::clutsel_w)); \
+ m_maincpu->out_pe_callback().set(FUNC(nbmj9195_state::gfxflag2_w));
#define OTHERS_TMZ84C011_MAIN_PORTS \
- MCFG_TMPZ84C011_PORTA_READ_CB(READ8(*this, nbmj9195_state, others_cpu_porta_r)) \
- MCFG_TMPZ84C011_PORTB_READ_CB(READ8(*this, nbmj9195_state, others_cpu_portb_r)) \
- MCFG_TMPZ84C011_PORTC_READ_CB(READ8(*this, nbmj9195_state, others_cpu_portc_r)) \
- MCFG_TMPZ84C011_PORTC_WRITE_CB(WRITE8(*this, nbmj9195_state, dipswbitsel_w)) \
- MCFG_TMPZ84C011_PORTD_WRITE_CB(WRITE8(*this, nbmj9195_state, clutsel_w)) \
- MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(*this, nbmj9195_state, outcoin_flag_w))
+ m_maincpu->in_pa_callback().set(FUNC(nbmj9195_state::others_cpu_porta_r)); \
+ m_maincpu->in_pb_callback().set(FUNC(nbmj9195_state::others_cpu_portb_r)); \
+ m_maincpu->in_pc_callback().set(FUNC(nbmj9195_state::others_cpu_portc_r)); \
+ m_maincpu->out_pc_callback().set(FUNC(nbmj9195_state::dipswbitsel_w)); \
+ m_maincpu->out_pd_callback().set(FUNC(nbmj9195_state::clutsel_w)); \
+ m_maincpu->out_pe_callback().set(FUNC(nbmj9195_state::outcoin_flag_w));
MACHINE_CONFIG_START(nbmj9195_state::NBMJDRV1_base)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", TMPZ84C011, 12000000/2) /* TMPZ84C011, 6.00 MHz */
- MCFG_Z80_DAISY_CHAIN(daisy_chain_main)
- MCFG_DEVICE_PROGRAM_MAP(sailorws_map)
- MCFG_DEVICE_IO_MAP(sailorws_io_map)
-
- MCFG_DEVICE_ADD("audiocpu", TMPZ84C011, 8000000) /* TMPZ84C011, 8.00 MHz */
- MCFG_Z80_DAISY_CHAIN(daisy_chain_sound)
- MCFG_DEVICE_PROGRAM_MAP(sailorws_sound_map)
- MCFG_DEVICE_IO_MAP(sailorws_sound_io_map)
- MCFG_TMPZ84C011_ZC0_CB(WRITELINE("audiocpu", tmpz84c011_device, trg3))
- MCFG_TMPZ84C011_PORTA_WRITE_CB(WRITE8(*this, nbmj9195_state, soundbank_w)) \
- MCFG_TMPZ84C011_PORTB_WRITE_CB(WRITE8("dac1", dac_byte_interface, data_w)) \
- MCFG_TMPZ84C011_PORTC_WRITE_CB(WRITE8("dac2", dac_byte_interface, data_w)) \
- MCFG_TMPZ84C011_PORTD_READ_CB(READ8("soundlatch", generic_latch_8_device, read)) \
- MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(*this, nbmj9195_state, soundcpu_porte_w))
+ TMPZ84C011(config, m_maincpu, 12000000/2); /* TMPZ84C011, 6.00 MHz */
+ m_maincpu->set_daisy_config(daisy_chain_main);
+ m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::sailorws_map);
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::sailorws_io_map);
+
+ tmpz84c011_device& audiocpu(TMPZ84C011(config, "audiocpu", 8000000)); /* TMPZ84C011, 8.00 MHz */
+ audiocpu.set_daisy_config(daisy_chain_sound);
+ audiocpu.set_addrmap(AS_PROGRAM, &nbmj9195_state::sailorws_sound_map);
+ audiocpu.set_addrmap(AS_IO, &nbmj9195_state::sailorws_sound_io_map);
+ audiocpu.zc0_callback().set(FUNC(tmpz84c011_device::trg3));
+ audiocpu.out_pa_callback().set(FUNC(nbmj9195_state::soundbank_w));
+ audiocpu.out_pb_callback().set("dac1", FUNC(dac_byte_interface::data_w));
+ audiocpu.out_pc_callback().set("dac2", FUNC(dac_byte_interface::data_w));
+ audiocpu.in_pd_callback().set(m_soundlatch, FUNC(generic_latch_8_device::read));
+ audiocpu.out_pe_callback().set(FUNC(nbmj9195_state::soundcpu_porte_w));
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
@@ -2557,7 +2557,6 @@ MACHINE_CONFIG_START(nbmj9195_state::NBMJDRV1)
NBMJDRV1_base(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
OTHERS_TMZ84C011_MAIN_PORTS
MACHINE_CONFIG_END
@@ -2566,7 +2565,6 @@ MACHINE_CONFIG_START(nbmj9195_state::NBMJDRV2)
NBMJDRV1_base(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
OTHERS_TMZ84C011_MAIN_PORTS
/* video hardware */
@@ -2578,7 +2576,6 @@ MACHINE_CONFIG_START(nbmj9195_state::NBMJDRV3)
NBMJDRV1_base(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
MSCOUTM_TMZ84C011_MAIN_PORTS
/* video hardware */
@@ -2595,9 +2592,8 @@ MACHINE_CONFIG_START(nbmj9195_state::mjuraden)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mjuraden_map)
- MCFG_DEVICE_IO_MAP(mjuraden_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::mjuraden_map);
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mjuraden_io_map);
MACHINE_CONFIG_END
@@ -2605,9 +2601,8 @@ MACHINE_CONFIG_START(nbmj9195_state::koinomp)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(koinomp_map)
- MCFG_DEVICE_IO_MAP(koinomp_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::koinomp_map);
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::koinomp_io_map);
MACHINE_CONFIG_END
@@ -2615,17 +2610,12 @@ MACHINE_CONFIG_START(nbmj9195_state::patimono)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(patimono_io_map)
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::patimono_io_map);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(nbmj9195_state::janbari)
- NBMJDRV1(config);
-
- /* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(patimono_io_map)
+ patimono(config);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MACHINE_CONFIG_END
@@ -2635,21 +2625,15 @@ MACHINE_CONFIG_START(nbmj9195_state::mmehyou)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(koinomp_map)
- MCFG_DEVICE_IO_MAP(mmehyou_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::koinomp_map);
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mmehyou_io_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(nbmj9195_state::ultramhm)
- NBMJDRV1(config);
-
- /* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(koinomp_map)
- MCFG_DEVICE_IO_MAP(koinomp_io_map)
+ koinomp(config);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MACHINE_CONFIG_END
@@ -2659,8 +2643,7 @@ MACHINE_CONFIG_START(nbmj9195_state::gal10ren)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(gal10ren_io_map)
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::gal10ren_io_map);
MACHINE_CONFIG_END
@@ -2668,8 +2651,7 @@ MACHINE_CONFIG_START(nbmj9195_state::renaiclb)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(renaiclb_io_map)
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::renaiclb_io_map);
MACHINE_CONFIG_END
@@ -2677,8 +2659,7 @@ MACHINE_CONFIG_START(nbmj9195_state::mjlaman)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(mjlaman_io_map)
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mjlaman_io_map);
MACHINE_CONFIG_END
@@ -2686,8 +2667,7 @@ MACHINE_CONFIG_START(nbmj9195_state::mkeibaou)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(mkeibaou_io_map)
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mkeibaou_io_map);
MACHINE_CONFIG_END
@@ -2695,8 +2675,7 @@ MACHINE_CONFIG_START(nbmj9195_state::pachiten)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(pachiten_io_map)
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::pachiten_io_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MACHINE_CONFIG_END
@@ -2713,8 +2692,7 @@ MACHINE_CONFIG_START(nbmj9195_state::sailorwr)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(sailorwr_io_map)
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::sailorwr_io_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MACHINE_CONFIG_END
@@ -2724,8 +2702,7 @@ MACHINE_CONFIG_START(nbmj9195_state::psailor1)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(psailor1_io_map)
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::psailor1_io_map);
MACHINE_CONFIG_END
@@ -2733,8 +2710,7 @@ MACHINE_CONFIG_START(nbmj9195_state::psailor2)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(psailor2_io_map)
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::psailor2_io_map);
MACHINE_CONFIG_END
@@ -2742,8 +2718,7 @@ MACHINE_CONFIG_START(nbmj9195_state::otatidai)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(otatidai_io_map)
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::otatidai_io_map);
MACHINE_CONFIG_END
@@ -2751,8 +2726,7 @@ MACHINE_CONFIG_START(nbmj9195_state::yosimoto)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(yosimoto_io_map)
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::yosimoto_io_map);
MACHINE_CONFIG_END
@@ -2760,8 +2734,7 @@ MACHINE_CONFIG_START(nbmj9195_state::yosimotm)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(yosimotm_io_map)
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::yosimotm_io_map);
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0);
MACHINE_CONFIG_END
@@ -2771,8 +2744,7 @@ MACHINE_CONFIG_START(nbmj9195_state::jituroku)
NBMJDRV1(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_IO_MAP(jituroku_io_map)
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::jituroku_io_map);
MACHINE_CONFIG_END
@@ -2780,9 +2752,8 @@ MACHINE_CONFIG_START(nbmj9195_state::ngpgal)
NBMJDRV2(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(ngpgal_map)
- MCFG_DEVICE_IO_MAP(ngpgal_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::ngpgal_map);
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::ngpgal_io_map);
MACHINE_CONFIG_END
@@ -2790,9 +2761,8 @@ MACHINE_CONFIG_START(nbmj9195_state::mjgottsu)
NBMJDRV2(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(ngpgal_map)
- MCFG_DEVICE_IO_MAP(mjgottsu_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::ngpgal_map);
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mjgottsu_io_map);
MACHINE_CONFIG_END
@@ -2801,8 +2771,8 @@ MACHINE_CONFIG_START(nbmj9195_state::bakuhatu)
/* basic machine hardware */
MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(ngpgal_map)
- MCFG_DEVICE_IO_MAP(mjgottsu_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::ngpgal_map);
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mjgottsu_io_map);
MACHINE_CONFIG_END
@@ -2810,9 +2780,8 @@ MACHINE_CONFIG_START(nbmj9195_state::cmehyou)
NBMJDRV2(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(ngpgal_map)
- MCFG_DEVICE_IO_MAP(cmehyou_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::ngpgal_map);
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::cmehyou_io_map);
MACHINE_CONFIG_END
@@ -2820,9 +2789,8 @@ MACHINE_CONFIG_START(nbmj9195_state::mjkoiura)
NBMJDRV2(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mjuraden_map)
- MCFG_DEVICE_IO_MAP(mjkoiura_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::mjuraden_map);
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mjkoiura_io_map);
MACHINE_CONFIG_END
@@ -2830,9 +2798,8 @@ MACHINE_CONFIG_START(nbmj9195_state::mkoiuraa)
NBMJDRV2(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mjuraden_map)
- MCFG_DEVICE_IO_MAP(mkoiuraa_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::mjuraden_map);
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mkoiuraa_io_map);
MACHINE_CONFIG_END
@@ -2840,9 +2807,8 @@ MACHINE_CONFIG_START(nbmj9195_state::mscoutm)
NBMJDRV3(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mscoutm_map)
- MCFG_DEVICE_IO_MAP(mscoutm_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::mscoutm_map);
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mscoutm_io_map);
MACHINE_CONFIG_END
@@ -2850,9 +2816,8 @@ MACHINE_CONFIG_START(nbmj9195_state::imekura)
NBMJDRV3(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mjegolf_map)
- MCFG_DEVICE_IO_MAP(imekura_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::mjegolf_map);
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::imekura_io_map);
MACHINE_CONFIG_END
@@ -2860,9 +2825,8 @@ MACHINE_CONFIG_START(nbmj9195_state::mjegolf)
NBMJDRV3(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY("maincpu")
- MCFG_DEVICE_PROGRAM_MAP(mjegolf_map)
- MCFG_DEVICE_IO_MAP(mjegolf_io_map)
+ m_maincpu->set_addrmap(AS_PROGRAM, &nbmj9195_state::mjegolf_map);
+ m_maincpu->set_addrmap(AS_IO, &nbmj9195_state::mjegolf_io_map);
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/nichild.cpp b/src/mame/drivers/nichild.cpp
index 6f190f115f1..91aeed4f902 100644
--- a/src/mame/drivers/nichild.cpp
+++ b/src/mame/drivers/nichild.cpp
@@ -69,7 +69,7 @@ private:
virtual void machine_start() override;
virtual void machine_reset() override;
- required_device<cpu_device> m_maincpu;
+ required_device<tmpz84c011_device> m_maincpu;
required_device<v9938_device> m_v9938;
required_region_ptr<uint8_t> m_gfxrom;
uint32_t m_gfx_bank;
@@ -233,17 +233,17 @@ INTERRUPT_GEN_MEMBER(nichild_state::vdp_irq)
MACHINE_CONFIG_START(nichild_state::nichild)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",TMPZ84C011,MAIN_CLOCK/4)
-// MCFG_Z80_DAISY_CHAIN(daisy_chain_main)
- MCFG_DEVICE_PROGRAM_MAP(nichild_map)
- MCFG_DEVICE_IO_MAP(nichild_io)
- MCFG_DEVICE_VBLANK_INT_DRIVER("screen", nichild_state, vdp_irq)
- MCFG_TMPZ84C011_PORTB_READ_CB(READ8(*this, nichild_state, mux_r))
- MCFG_TMPZ84C011_PORTA_WRITE_CB(WRITE8(*this, nichild_state, porta_w))
- MCFG_TMPZ84C011_PORTB_WRITE_CB(WRITE8(*this, nichild_state, portb_w))
- MCFG_TMPZ84C011_PORTC_WRITE_CB(WRITE8(*this, nichild_state, portc_w))
- MCFG_TMPZ84C011_PORTD_WRITE_CB(WRITE8(*this, nichild_state, portd_w))
- MCFG_TMPZ84C011_PORTE_WRITE_CB(WRITE8(*this, nichild_state, gfxbank_w))
+ TMPZ84C011(config, m_maincpu, MAIN_CLOCK/4);
+ //m_maincpu->set_daisy_config(daisy_chain_main);
+ m_maincpu->set_addrmap(AS_PROGRAM, &nichild_state::nichild_map);
+ m_maincpu->set_addrmap(AS_IO, &nichild_state::nichild_io);
+ m_maincpu->set_vblank_int("screen", FUNC(nichild_state::vdp_irq));
+ m_maincpu->in_pb_callback().set(FUNC(nichild_state::mux_r));
+ m_maincpu->out_pa_callback().set(FUNC(nichild_state::porta_w));
+ m_maincpu->out_pb_callback().set(FUNC(nichild_state::portb_w));
+ m_maincpu->out_pc_callback().set(FUNC(nichild_state::portc_w));
+ m_maincpu->out_pd_callback().set(FUNC(nichild_state::portd_w));
+ m_maincpu->out_pe_callback().set(FUNC(nichild_state::gfxbank_w));
/* video hardware */
MCFG_V9938_ADD("v9938", "screen", 0x40000, MAIN_CLOCK)
diff --git a/src/mame/drivers/osbexec.cpp b/src/mame/drivers/osbexec.cpp
index 44ee1622344..b3324e2adaa 100644
--- a/src/mame/drivers/osbexec.cpp
+++ b/src/mame/drivers/osbexec.cpp
@@ -54,7 +54,7 @@ public:
void init_osbexec();
private:
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<screen_device> m_screen;
required_device<mb8877_device> m_mb8877;
required_device<ram_device> m_messram;
@@ -528,10 +528,10 @@ static const z80_daisy_config osbexec_daisy_config[] =
MACHINE_CONFIG_START(osbexec_state::osbexec)
- MCFG_DEVICE_ADD(m_maincpu, Z80, MAIN_CLOCK/6)
- MCFG_DEVICE_PROGRAM_MAP(osbexec_mem)
- MCFG_DEVICE_IO_MAP(osbexec_io)
- MCFG_Z80_DAISY_CHAIN(osbexec_daisy_config)
+ Z80(config, m_maincpu, MAIN_CLOCK/6);
+ m_maincpu->set_addrmap(AS_PROGRAM, &osbexec_state::osbexec_mem);
+ m_maincpu->set_addrmap(AS_IO, &osbexec_state::osbexec_io);
+ m_maincpu->set_daisy_config(osbexec_daisy_config);
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_color(rgb_t::green());
diff --git a/src/mame/drivers/p8k.cpp b/src/mame/drivers/p8k.cpp
index 5aa1240db72..8b8997c6382 100644
--- a/src/mame/drivers/p8k.cpp
+++ b/src/mame/drivers/p8k.cpp
@@ -116,7 +116,7 @@ private:
void p8k_iomap(address_map &map);
void p8k_memmap(address_map &map);
- required_device<cpu_device> m_maincpu;
+ required_device<cpu_device> m_maincpu; // Z80 or Z8001 depending on the machine
optional_device<p8k_16_daisy_device> m_daisy;
optional_device<z80pio_device> m_pio2;
optional_device<i8272a_device> m_i8272;
@@ -417,20 +417,21 @@ GFXDECODE_END
MACHINE_CONFIG_START(p8k_state::p8k)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(4'000'000) )
- MCFG_Z80_DAISY_CHAIN(p8k_daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(p8k_memmap)
- MCFG_DEVICE_IO_MAP(p8k_iomap)
+ z80_device& maincpu(Z80(config, "maincpu", XTAL(4'000'000)));
+ maincpu.set_daisy_config(p8k_daisy_chain);
+ maincpu.set_addrmap(AS_PROGRAM, &p8k_state::p8k_memmap);
+ maincpu.set_addrmap(AS_IO, &p8k_state::p8k_iomap);
+
MCFG_MACHINE_RESET_OVERRIDE(p8k_state,p8k)
/* peripheral hardware */
- MCFG_DEVICE_ADD("dma", Z80DMA, XTAL(4'000'000))
- MCFG_Z80DMA_OUT_BUSREQ_CB(WRITELINE(*this, p8k_state, p8k_dma_irq_w))
- MCFG_Z80DMA_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_Z80DMA_IN_MREQ_CB(READ8(*this, p8k_state, memory_read_byte))
- MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(*this, p8k_state, memory_write_byte))
- MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, p8k_state, io_read_byte))
- MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, p8k_state, io_write_byte))
+ z80dma_device& dma(Z80DMA(config, "dma", XTAL(4'000'000)));
+ dma.out_busreq_callback().set(FUNC(p8k_state::p8k_dma_irq_w));
+ dma.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ dma.in_mreq_callback().set(FUNC(p8k_state::memory_read_byte));
+ dma.out_mreq_callback().set(FUNC(p8k_state::memory_write_byte));
+ dma.in_iorq_callback().set(FUNC(p8k_state::io_read_byte));
+ dma.out_iorq_callback().set(FUNC(p8k_state::io_write_byte));
clock_device &uart_clock(CLOCK(config, "uart_clock", 307200));
uart_clock.signal_handler().set("sio", FUNC(z80sio_device::txcb_w));
@@ -491,8 +492,8 @@ MACHINE_CONFIG_START(p8k_state::p8k_16)
MCFG_DEVICE_IO_MAP(p8k_16_iomap)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("p8k_16_daisy", p8k_16_daisy_device, irq_callback)
- MCFG_DEVICE_ADD("p8k_16_daisy", P8K_16_DAISY, 0)
- MCFG_Z80_DAISY_CHAIN(p8k_16_daisy_chain)
+ P8K_16_DAISY(config, m_daisy, 0);
+ m_daisy->set_daisy_config(p8k_16_daisy_chain);
clock_device &uart_clock(CLOCK(config, "uart_clock", 307200));
uart_clock.signal_handler().set("sio", FUNC(z80sio_device::txcb_w));
diff --git a/src/mame/drivers/pasopia.cpp b/src/mame/drivers/pasopia.cpp
index a2e8618584b..cf9fcca69ea 100644
--- a/src/mame/drivers/pasopia.cpp
+++ b/src/mame/drivers/pasopia.cpp
@@ -72,7 +72,7 @@ private:
emu_timer *m_pio_timer;
virtual void machine_start() override;
virtual void machine_reset() override;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_region_ptr<u8> m_p_chargen;
required_region_ptr<u8> m_p_vram;
required_device<i8255_device> m_ppi0;
@@ -288,10 +288,11 @@ We preset all banks here, so that bankswitching will incur no speed penalty.
MACHINE_CONFIG_START(pasopia_state::pasopia)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 4000000)
- MCFG_DEVICE_PROGRAM_MAP(pasopia_map)
- MCFG_DEVICE_IO_MAP(pasopia_io)
- MCFG_Z80_DAISY_CHAIN(pasopia_daisy)
+
+ Z80(config, m_maincpu, 4000000);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pasopia_state::pasopia_map);
+ m_maincpu->set_addrmap(AS_IO, &pasopia_state::pasopia_io);
+ m_maincpu->set_daisy_config(pasopia_daisy);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/pasopia7.cpp b/src/mame/drivers/pasopia7.cpp
index 81752f73fad..0c9ba749f85 100644
--- a/src/mame/drivers/pasopia7.cpp
+++ b/src/mame/drivers/pasopia7.cpp
@@ -130,7 +130,7 @@ private:
void draw_tv_screen(bitmap_ind16 &bitmap,const rectangle &cliprect,int width);
void draw_mixed_screen(bitmap_ind16 &bitmap,const rectangle &cliprect,int width);
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<screen_device> m_screen;
required_device<i8255_device> m_ppi0;
required_device<i8255_device> m_ppi1;
@@ -923,11 +923,10 @@ static void pasopia7_floppies(device_slot_interface &device)
MACHINE_CONFIG_START(pasopia7_state::p7_base)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(4'000'000))
- MCFG_DEVICE_PROGRAM_MAP(pasopia7_mem)
- MCFG_DEVICE_IO_MAP(pasopia7_io)
- MCFG_Z80_DAISY_CHAIN(p7_daisy)
-
+ Z80(config, m_maincpu, XTAL(4'000'000));
+ m_maincpu->set_addrmap(AS_PROGRAM, &pasopia7_state::pasopia7_mem);
+ m_maincpu->set_addrmap(AS_IO, &pasopia7_state::pasopia7_io);
+ m_maincpu->set_daisy_config(p7_daisy);
/* Audio */
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/pbaction.cpp b/src/mame/drivers/pbaction.cpp
index f5ad0127328..f0fa82c58aa 100644
--- a/src/mame/drivers/pbaction.cpp
+++ b/src/mame/drivers/pbaction.cpp
@@ -68,7 +68,6 @@ Stephh's notes (based on the game Z80 code and some tests) :
#include "emu.h"
#include "includes/pbaction.h"
-#include "cpu/z80/z80.h"
#include "sound/ay8910.h"
#include "machine/segacrpt_device.h"
#include "screen.h"
@@ -327,10 +326,10 @@ MACHINE_CONFIG_START(pbaction_state::pbaction)
MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* 4 MHz? */
MCFG_DEVICE_PROGRAM_MAP(pbaction_map)
- MCFG_DEVICE_ADD("audiocpu", Z80, 3072000)
- MCFG_DEVICE_PROGRAM_MAP(pbaction_sound_map)
- MCFG_DEVICE_IO_MAP(pbaction_sound_io_map)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_audiocpu, 3072000);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &pbaction_state::pbaction_sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &pbaction_state::pbaction_sound_io_map);
+ m_audiocpu->set_daisy_config(daisy_chain);
MCFG_DEVICE_ADD("ctc", Z80CTC, 3072000)
MCFG_Z80CTC_INTR_CB(ASSERTLINE("audiocpu", 0))
@@ -367,9 +366,8 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(pbaction_state::pbaction2)
pbaction(config);
- MCFG_DEVICE_MODIFY("audiocpu")
- MCFG_DEVICE_PROGRAM_MAP(pbaction2_sound_map)
- MCFG_Z80_SET_IRQACK_CALLBACK(WRITELINE(*this, pbaction_state, sound_irq_clear))
+ m_audiocpu->set_addrmap(AS_PROGRAM, &pbaction_state::pbaction2_sound_map);
+ m_audiocpu->irqack_cb().set(FUNC(pbaction_state::sound_irq_clear));
MACHINE_CONFIG_END
MACHINE_CONFIG_START(pbaction_state::pbactionx)
diff --git a/src/mame/drivers/pcm.cpp b/src/mame/drivers/pcm.cpp
index 4f521bd362b..487b1316a75 100644
--- a/src/mame/drivers/pcm.cpp
+++ b/src/mame/drivers/pcm.cpp
@@ -98,7 +98,7 @@ private:
bool m_cone;
uint8_t m_85;
virtual void machine_reset() override;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80pio_device> m_pio_s;
required_device<z80pio_device> m_pio_u;
required_device<z80ctc_device> m_ctc_s;
@@ -258,10 +258,10 @@ GFXDECODE_END
MACHINE_CONFIG_START(pcm_state::pcm)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(10'000'000) /4)
- MCFG_DEVICE_PROGRAM_MAP(pcm_mem)
- MCFG_DEVICE_IO_MAP(pcm_io)
- MCFG_Z80_DAISY_CHAIN(pcm_daisy_chain)
+ Z80(config, m_maincpu, XTAL(10'000'000) /4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pcm_state::pcm_mem);
+ m_maincpu->set_addrmap(AS_IO, &pcm_state::pcm_io);
+ m_maincpu->set_daisy_config(pcm_daisy_chain);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/pipeline.cpp b/src/mame/drivers/pipeline.cpp
index cf1bd9057b1..a7a58ce0928 100644
--- a/src/mame/drivers/pipeline.cpp
+++ b/src/mame/drivers/pipeline.cpp
@@ -365,10 +365,10 @@ MACHINE_CONFIG_START(pipeline_state::pipeline)
MCFG_DEVICE_ADD("maincpu", Z80, 7372800/2)
MCFG_DEVICE_PROGRAM_MAP(cpu0_mem)
- MCFG_DEVICE_ADD("audiocpu", Z80, 7372800/2)
- MCFG_Z80_DAISY_CHAIN(daisy_chain_sound)
- MCFG_DEVICE_PROGRAM_MAP(cpu1_mem)
- MCFG_DEVICE_IO_MAP(sound_port)
+ z80_device& audiocpu(Z80(config, "audiocpu", 7372800/2));
+ audiocpu.set_daisy_config(daisy_chain_sound);
+ audiocpu.set_addrmap(AS_PROGRAM, &pipeline_state::cpu1_mem);
+ audiocpu.set_addrmap(AS_IO, &pipeline_state::sound_port);
MCFG_DEVICE_ADD("mcu", M68705R3, 7372800/2)
MCFG_M68705_PORTA_W_CB(WRITE8(*this, pipeline_state, mcu_portA_w))
diff --git a/src/mame/drivers/polyplay.cpp b/src/mame/drivers/polyplay.cpp
index 9e1f33e4674..46d04b71828 100644
--- a/src/mame/drivers/polyplay.cpp
+++ b/src/mame/drivers/polyplay.cpp
@@ -129,7 +129,6 @@ playing the automaton. Bits 0-2 of PORTB control the organ.
#include "emu.h"
#include "includes/polyplay.h"
-#include "cpu/z80/z80.h"
#include "machine/z80daisy.h"
#include "screen.h"
@@ -279,11 +278,11 @@ GFXDECODE_END
/* the machine driver */
MACHINE_CONFIG_START(polyplay_state::polyplay_zre)
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80CPU_TAG, Z80, POLYPLAY_MAIN_CLOCK / 4) /* UB880D */
- MCFG_Z80_DAISY_CHAIN(daisy_chain_zre)
- MCFG_DEVICE_PROGRAM_MAP(polyplay_mem_zre)
- MCFG_DEVICE_IO_MAP(polyplay_io_zre)
- MCFG_DEVICE_PERIODIC_INT_DRIVER(polyplay_state, nmi_handler, 100) /* A302 - zero cross detection from AC (50Hz) */
+ Z80(config, m_maincpu, POLYPLAY_MAIN_CLOCK / 4); /* UB880D */
+ m_maincpu->set_daisy_config(daisy_chain_zre);
+ m_maincpu->set_addrmap(AS_PROGRAM, &polyplay_state::polyplay_mem_zre);
+ m_maincpu->set_addrmap(AS_IO, &polyplay_state::polyplay_io_zre);
+ m_maincpu->set_periodic_int(FUNC(polyplay_state::nmi_handler), attotime::from_hz(100)); /* A302 - zero cross detection from AC (50Hz) */
/* devices */
MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, POLYPLAY_MAIN_CLOCK / 4) /* UB857D */
@@ -319,19 +318,19 @@ MACHINE_CONFIG_START(polyplay_state::polyplay_zre)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MACHINE_CONFIG_END
-MACHINE_CONFIG_START(polyplay_state::polyplay_zrepp)
+void polyplay_state::polyplay_zrepp(machine_config &config)
+{
polyplay_zre(config);
/* basic machine hardware */
- MCFG_DEVICE_MODIFY(Z80CPU_TAG) /* UB880D */
- MCFG_Z80_DAISY_CHAIN(daisy_chain_zrepp)
- MCFG_DEVICE_PROGRAM_MAP(polyplay_mem_zrepp)
- MCFG_DEVICE_IO_MAP(polyplay_io_zrepp)
+ m_maincpu->set_daisy_config(daisy_chain_zrepp);
+ m_maincpu->set_addrmap(AS_PROGRAM, &polyplay_state::polyplay_mem_zrepp);
+ m_maincpu->set_addrmap(AS_IO, &polyplay_state::polyplay_io_zrepp);
/* devices */
Z80SIO(config, m_z80sio, POLYPLAY_MAIN_CLOCK / 4); /* UB8560D */
m_z80sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
-MACHINE_CONFIG_END
+}
/* ROM loading and mapping */
diff --git a/src/mame/drivers/proconn.cpp b/src/mame/drivers/proconn.cpp
index 443290a563c..2872ee91d0c 100644
--- a/src/mame/drivers/proconn.cpp
+++ b/src/mame/drivers/proconn.cpp
@@ -134,7 +134,7 @@ private:
// devices
optional_device<s16lf01_device> m_vfd;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device_array<z80pio_device, 5> m_z80pio;
required_device<z80ctc_device> m_z80ctc;
required_device<z80sio_device> m_z80sio;
@@ -266,10 +266,11 @@ void proconn_state::machine_reset()
}
MACHINE_CONFIG_START(proconn_state::proconn)
- MCFG_DEVICE_ADD("maincpu", Z80, 4000000) /* ?? Mhz */
- MCFG_Z80_DAISY_CHAIN(z80_daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(proconn_map)
- MCFG_DEVICE_IO_MAP(proconn_portmap)
+ Z80(config, m_maincpu, 4000000); /* ?? Mhz */
+ m_maincpu->set_daisy_config(z80_daisy_chain);
+ m_maincpu->set_addrmap(AS_PROGRAM, &proconn_state::proconn_map);
+ m_maincpu->set_addrmap(AS_IO, &proconn_state::proconn_portmap);
+
MCFG_S16LF01_ADD("vfd",0)
Z80PIO(config, m_z80pio[0], 4000000); /* ?? Mhz */
diff --git a/src/mame/drivers/pulsar.cpp b/src/mame/drivers/pulsar.cpp
index 65b3dcf6a41..61d9c26b0de 100644
--- a/src/mame/drivers/pulsar.cpp
+++ b/src/mame/drivers/pulsar.cpp
@@ -78,7 +78,7 @@ private:
void mem_map(address_map &map);
floppy_image_device *m_floppy;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<fd1797_device> m_fdc;
required_device<floppy_connector> m_floppy0;
required_device<floppy_connector> m_floppy1;
@@ -211,10 +211,11 @@ void pulsar_state::init_pulsar()
MACHINE_CONFIG_START(pulsar_state::pulsar)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 4_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(mem_map)
- MCFG_DEVICE_IO_MAP(io_map)
- MCFG_Z80_DAISY_CHAIN(daisy_chain_intf)
+ Z80(config, m_maincpu, 4_MHz_XTAL);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pulsar_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &pulsar_state::io_map);
+ m_maincpu->set_daisy_config(daisy_chain_intf);
+
MCFG_MACHINE_RESET_OVERRIDE(pulsar_state, pulsar)
/* Devices */
@@ -226,11 +227,11 @@ MACHINE_CONFIG_START(pulsar_state::pulsar)
MCFG_DEVICE_ADD("rtc", MSM5832, 32.768_kHz_XTAL)
- MCFG_DEVICE_ADD("dart", Z80DART, 4_MHz_XTAL)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ z80dart_device& dart(Z80DART(config, "dart", 4_MHz_XTAL));
+ dart.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+ dart.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
+ dart.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts));
+ dart.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("dart", z80dart_device, rxa_w))
diff --git a/src/mame/drivers/pve500.cpp b/src/mame/drivers/pve500.cpp
index 8bd673128cb..36ef29b6d1c 100644
--- a/src/mame/drivers/pve500.cpp
+++ b/src/mame/drivers/pve500.cpp
@@ -374,10 +374,10 @@ MACHINE_CONFIG_START(pve500_state::pve500)
MCFG_DEVICE_ADD("external_ctc", Z80CTC, 12_MHz_XTAL / 2)
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_DEVICE_ADD("external_sio", Z80SIO0, 12_MHz_XTAL / 2)
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE("player2", rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE("edl_inout", rs232_port_device, write_txd))
+ z80sio0_device& sio(Z80SIO0(config, "external_sio", 12_MHz_XTAL / 2));
+ sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ sio.out_txda_callback().set("player2", FUNC(rs232_port_device::write_txd));
+ sio.out_txdb_callback().set("edl_inout", FUNC(rs232_port_device::write_txd));
/* Secondary CPU */
MCFG_DEVICE_ADD("subcpu", TMPZ84C015, 12_MHz_XTAL / 2) /* TMPZ84C015BF-6 */
diff --git a/src/mame/drivers/qvt103.cpp b/src/mame/drivers/qvt103.cpp
index bda819393b2..71621eeb96b 100644
--- a/src/mame/drivers/qvt103.cpp
+++ b/src/mame/drivers/qvt103.cpp
@@ -32,7 +32,7 @@ private:
void io_map(address_map &map);
void mem_map(address_map &map);
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_region_ptr<u8> m_p_chargen;
};
@@ -68,10 +68,10 @@ static const z80_daisy_config daisy_chain[] =
};
MACHINE_CONFIG_START(qvt103_state::qvt103)
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(29'376'000) / 9) // divider guessed
- MCFG_DEVICE_PROGRAM_MAP(mem_map)
- MCFG_DEVICE_IO_MAP(io_map)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, XTAL(29'376'000) / 9); // divider guessed
+ m_maincpu->set_addrmap(AS_PROGRAM, &qvt103_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &qvt103_state::io_map);
+ m_maincpu->set_daisy_config(daisy_chain);
MCFG_DEVICE_ADD("ctc", Z80CTC, XTAL(29'376'000) / 9)
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
diff --git a/src/mame/drivers/rc702.cpp b/src/mame/drivers/rc702.cpp
index fc6d4e78350..e30dfa2b666 100644
--- a/src/mame/drivers/rc702.cpp
+++ b/src/mame/drivers/rc702.cpp
@@ -89,7 +89,7 @@ private:
bool m_eop;
bool m_dack1;
required_device<palette_device> m_palette;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_region_ptr<u8> m_p_chargen;
required_device<z80ctc_device> m_ctc1;
required_device<z80pio_device> m_pio;
@@ -329,10 +329,10 @@ static void floppies(device_slot_interface &device)
MACHINE_CONFIG_START(rc702_state::rc702)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(8'000'000) / 2)
- MCFG_DEVICE_PROGRAM_MAP(rc702_mem)
- MCFG_DEVICE_IO_MAP(rc702_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain_intf)
+ Z80(config, m_maincpu, XTAL(8'000'000) / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rc702_state::rc702_mem);
+ m_maincpu->set_addrmap(AS_IO, &rc702_state::rc702_io);
+ m_maincpu->set_daisy_config(daisy_chain_intf);
CLOCK(config, "ctc_clock", 614000).signal_handler().set(FUNC(rc702_state::clock_w));
diff --git a/src/mame/drivers/rt1715.cpp b/src/mame/drivers/rt1715.cpp
index c9f1ecee025..c07b1320eb8 100644
--- a/src/mame/drivers/rt1715.cpp
+++ b/src/mame/drivers/rt1715.cpp
@@ -59,7 +59,7 @@ private:
int m_led1_val;
int m_led2_val;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<ram_device> m_ram;
};
@@ -286,11 +286,10 @@ static const z80_daisy_config rt1715_daisy_chain[] =
MACHINE_CONFIG_START(rt1715_state::rt1715)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 9.832_MHz_XTAL / 4)
- MCFG_DEVICE_PROGRAM_MAP(rt1715_mem)
- MCFG_DEVICE_IO_MAP(rt1715_io)
- MCFG_Z80_DAISY_CHAIN(rt1715_daisy_chain)
-
+ Z80(config, m_maincpu, 9.832_MHz_XTAL / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &rt1715_state::rt1715_mem);
+ m_maincpu->set_addrmap(AS_IO, &rt1715_state::rt1715_io);
+ m_maincpu->set_daisy_config(rt1715_daisy_chain);
/* keyboard */
MCFG_DEVICE_ADD("keyboard", Z80, 683000)
diff --git a/src/mame/drivers/senjyo.cpp b/src/mame/drivers/senjyo.cpp
index 6e120ed45ed..00ea6ef9df6 100644
--- a/src/mame/drivers/senjyo.cpp
+++ b/src/mame/drivers/senjyo.cpp
@@ -555,10 +555,10 @@ MACHINE_CONFIG_START(senjyo_state::senjyo)
MCFG_DEVICE_PROGRAM_MAP(senjyo_map)
MCFG_DEVICE_VBLANK_INT_DRIVER("screen", senjyo_state, irq0_line_assert)
- MCFG_DEVICE_ADD("sub", Z80, 2000000) /* 2 MHz? */
- MCFG_Z80_DAISY_CHAIN(senjyo_daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(senjyo_sound_map)
- MCFG_DEVICE_IO_MAP(senjyo_sound_io_map)
+ z80_device& sub(Z80(config, "sub", 2000000)); /* 2 MHz? */
+ sub.set_daisy_config(senjyo_daisy_chain);
+ sub.set_addrmap(AS_PROGRAM, &senjyo_state::senjyo_sound_map);
+ sub.set_addrmap(AS_IO, &senjyo_state::senjyo_sound_io_map);
Z80PIO(config, m_pio, 2000000);
m_pio->out_int_callback().set_inputline("sub", INPUT_LINE_IRQ0);
diff --git a/src/mame/drivers/stargame.cpp b/src/mame/drivers/stargame.cpp
index e7cd7a4ab6a..40a10142284 100644
--- a/src/mame/drivers/stargame.cpp
+++ b/src/mame/drivers/stargame.cpp
@@ -40,7 +40,7 @@ private:
void maincpu_io(address_map &map);
void maincpu_map(address_map &map);
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
required_device<z80ctc_device> m_ctc;
};
@@ -105,10 +105,10 @@ static const z80_daisy_config daisy_chain[] =
MACHINE_CONFIG_START(stargame_state::stargame)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 15000000 / 4) // clock line marked as CK4 and derived from 15MHz crystal
- MCFG_DEVICE_PROGRAM_MAP(maincpu_map)
- MCFG_DEVICE_IO_MAP(maincpu_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, 15000000 / 4); // clock line marked as CK4 and derived from 15MHz crystal
+ m_maincpu->set_addrmap(AS_PROGRAM, &stargame_state::maincpu_map);
+ m_maincpu->set_addrmap(AS_IO, &stargame_state::maincpu_io);
+ m_maincpu->set_daisy_config(daisy_chain);
MCFG_DEVICE_ADD("audiocpu", Z80, 15000000 / 3) // ? check divider - clock line marked as CK6 and derived from 15MHz crystal
MCFG_DEVICE_PROGRAM_MAP(audiocpu_map)
diff --git a/src/mame/drivers/super6.cpp b/src/mame/drivers/super6.cpp
index 319787d7fb8..282b426ef76 100644
--- a/src/mame/drivers/super6.cpp
+++ b/src/mame/drivers/super6.cpp
@@ -445,10 +445,10 @@ void super6_state::machine_reset()
MACHINE_CONFIG_START(super6_state::super6)
// basic machine hardware
- MCFG_DEVICE_ADD(m_maincpu, Z80, 24_MHz_XTAL / 4)
- MCFG_DEVICE_PROGRAM_MAP(super6_mem)
- MCFG_DEVICE_IO_MAP(super6_io)
- //MCFG_Z80_DAISY_CHAIN(super6_daisy_chain)
+ Z80(config, m_maincpu, 24_MHz_XTAL / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &super6_state::super6_mem);
+ m_maincpu->set_addrmap(AS_IO, &super6_state::super6_io);
+ //m_maincpu->set_daisy_config(super6_daisy_chain);
// devices
MCFG_DEVICE_ADD(m_ctc, Z80CTC, 24_MHz_XTAL / 4)
diff --git a/src/mame/drivers/super80.cpp b/src/mame/drivers/super80.cpp
index cfd20124d33..6b1ecc5da4f 100644
--- a/src/mame/drivers/super80.cpp
+++ b/src/mame/drivers/super80.cpp
@@ -707,10 +707,11 @@ static const char *const relay_sample_names[] =
MACHINE_CONFIG_START(super80_state::super80)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 2 MHz */
- MCFG_DEVICE_PROGRAM_MAP(super80_map)
- MCFG_DEVICE_IO_MAP(super80_io)
- MCFG_Z80_DAISY_CHAIN(super80_daisy_chain)
+ Z80(config, m_maincpu, MASTER_CLOCK/6); /* 2 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &super80_state::super80_map);
+ m_maincpu->set_addrmap(AS_IO, &super80_state::super80_io);
+ m_maincpu->set_daisy_config(super80_daisy_chain);
+
MCFG_MACHINE_RESET_OVERRIDE(super80_state, super80)
Z80PIO(config, m_pio, MASTER_CLOCK/6);
@@ -794,10 +795,11 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(super80_state::super80v)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, MASTER_CLOCK/6) /* 2 MHz */
- MCFG_DEVICE_PROGRAM_MAP(super80v_map)
- MCFG_DEVICE_IO_MAP(super80v_io)
- MCFG_Z80_DAISY_CHAIN(super80_daisy_chain)
+ Z80(config, m_maincpu, MASTER_CLOCK/6); /* 2 MHz */
+ m_maincpu->set_addrmap(AS_PROGRAM, &super80_state::super80v_map);
+ m_maincpu->set_addrmap(AS_IO, &super80_state::super80v_io);
+ m_maincpu->set_daisy_config(super80_daisy_chain);
+
MCFG_MACHINE_RESET_OVERRIDE(super80_state, super80r)
Z80PIO(config, m_pio, MASTER_CLOCK/6);
diff --git a/src/mame/drivers/superslave.cpp b/src/mame/drivers/superslave.cpp
index 5bc3b3d1226..64a3b5d985e 100644
--- a/src/mame/drivers/superslave.cpp
+++ b/src/mame/drivers/superslave.cpp
@@ -73,7 +73,7 @@ private:
DECLARE_READ8_MEMBER( status_r );
DECLARE_WRITE8_MEMBER( cmd_w );
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<com8116_device> m_dbrg;
required_device<ram_device> m_ram;
required_device<rs232_port_device> m_rs232a;
@@ -363,10 +363,10 @@ void superslave_state::machine_reset()
MACHINE_CONFIG_START(superslave_state::superslave)
// basic machine hardware
- MCFG_DEVICE_ADD(m_maincpu, Z80, XTAL(8'000'000)/2)
- MCFG_DEVICE_PROGRAM_MAP(superslave_mem)
- MCFG_DEVICE_IO_MAP(superslave_io)
- MCFG_Z80_DAISY_CHAIN(superslave_daisy_chain)
+ Z80(config, m_maincpu, XTAL(8'000'000)/2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &superslave_state::superslave_mem);
+ m_maincpu->set_addrmap(AS_IO, &superslave_state::superslave_io);
+ m_maincpu->set_daisy_config(superslave_daisy_chain);
// devices
am9519_device &am9519(AM9519(config, AM9519_TAG, 0));
diff --git a/src/mame/drivers/tiki100.cpp b/src/mame/drivers/tiki100.cpp
index 8526b77efb8..5cac074c004 100644
--- a/src/mame/drivers/tiki100.cpp
+++ b/src/mame/drivers/tiki100.cpp
@@ -702,10 +702,10 @@ void tiki100_state::machine_reset()
MACHINE_CONFIG_START(tiki100_state::tiki100)
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, 8_MHz_XTAL / 2)
- MCFG_DEVICE_PROGRAM_MAP(tiki100_mem)
- MCFG_DEVICE_IO_MAP(tiki100_io)
- MCFG_Z80_DAISY_CHAIN(tiki100_daisy_chain)
+ Z80(config, m_maincpu, 8_MHz_XTAL / 2);
+ m_maincpu->set_addrmap(AS_PROGRAM, &tiki100_state::tiki100_mem);
+ m_maincpu->set_addrmap(AS_IO, &tiki100_state::tiki100_io);
+ m_maincpu->set_daisy_config(tiki100_daisy_chain);
/* video hardware */
MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
@@ -724,14 +724,14 @@ MACHINE_CONFIG_START(tiki100_state::tiki100)
MCFG_TIKI100_BUS_SLOT_ADD("slot3", nullptr)
/* devices */
- MCFG_DEVICE_ADD(Z80DART_TAG, Z80DART, 8_MHz_XTAL / 4)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
+ Z80DART(config, m_dart, 8_MHz_XTAL / 4);
+ m_dart->out_txda_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_txd));
+ m_dart->out_dtra_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_dtr));
+ m_dart->out_rtsa_callback().set(RS232_A_TAG, FUNC(rs232_port_device::write_rts));
+ m_dart->out_txdb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_txd));
+ m_dart->out_dtrb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr));
+ m_dart->out_rtsb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts));
+ m_dart->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
Z80PIO(config, m_pio, 8_MHz_XTAL / 4);
m_pio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
@@ -743,7 +743,7 @@ MACHINE_CONFIG_START(tiki100_state::tiki100)
MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, 8_MHz_XTAL / 4)
MCFG_Z80CTC_INTR_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
MCFG_Z80CTC_ZC0_CB(WRITELINE(*this, tiki100_state, bar0_w))
- MCFG_Z80CTC_ZC1_CB(WRITELINE(Z80DART_TAG, z80dart_device, rxtxcb_w))
+ MCFG_Z80CTC_ZC1_CB(WRITELINE(m_dart, z80dart_device, rxtxcb_w))
MCFG_Z80CTC_ZC2_CB(WRITELINE(*this, tiki100_state, bar2_w))
MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", tiki100_state, ctc_tick, attotime::from_hz(8_MHz_XTAL / 4))
@@ -753,10 +753,10 @@ MACHINE_CONFIG_START(tiki100_state::tiki100)
MCFG_FLOPPY_DRIVE_ADD(FD1797_TAG":1", tiki100_floppies, "525qd", tiki100_state::floppy_formats)
MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart, z80dart_device, rxa_w))
MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart, z80dart_device, rxb_w))
CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->set_data_input_buffer("cent_data_in");
diff --git a/src/mame/drivers/trs80m2.cpp b/src/mame/drivers/trs80m2.cpp
index 8081d8488ab..e608f00bcd9 100644
--- a/src/mame/drivers/trs80m2.cpp
+++ b/src/mame/drivers/trs80m2.cpp
@@ -709,10 +709,10 @@ void trs80m2_state::machine_reset()
MACHINE_CONFIG_START(trs80m2_state::trs80m2)
// basic machine hardware
- MCFG_DEVICE_ADD(Z80_TAG, Z80, 8_MHz_XTAL / 2)
- MCFG_Z80_DAISY_CHAIN(trs80m2_daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(z80_mem)
- MCFG_DEVICE_IO_MAP(z80_io)
+ Z80(config, m_maincpu, 8_MHz_XTAL / 2);
+ m_maincpu->set_daisy_config(trs80m2_daisy_chain);
+ m_maincpu->set_addrmap(AS_PROGRAM, &trs80m2_state::z80_mem);
+ m_maincpu->set_addrmap(AS_IO, &trs80m2_state::z80_io);
// video hardware
MCFG_SCREEN_ADD_MONOCHROME(SCREEN_TAG, RASTER, rgb_t::green())
@@ -734,7 +734,7 @@ MACHINE_CONFIG_START(trs80m2_state::trs80m2)
// devices
MCFG_DEVICE_ADD(FD1791_TAG, FD1791, 8_MHz_XTAL / 4)
MCFG_WD_FDC_INTRQ_CALLBACK(WRITE8(m_pio, z80pio_device, pa_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(Z80DMA_TAG, z80dma_device, rdy_w))
+ MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(m_dmac, z80dma_device, rdy_w))
MCFG_FLOPPY_DRIVE_ADD(FD1791_TAG":0", trs80m2_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1791_TAG":1", trs80m2_floppies, nullptr, floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1791_TAG":2", trs80m2_floppies, nullptr, floppy_image_device::default_floppy_formats)
@@ -748,13 +748,13 @@ MACHINE_CONFIG_START(trs80m2_state::trs80m2)
MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", trs80m2_state, ctc_tick, attotime::from_hz(8_MHz_XTAL / 2 / 2))
- MCFG_DEVICE_ADD(Z80DMA_TAG, Z80DMA, 8_MHz_XTAL / 2)
- MCFG_Z80DMA_OUT_BUSREQ_CB(INPUTLINE(Z80_TAG, INPUT_LINE_HALT))
- MCFG_Z80DMA_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
- MCFG_Z80DMA_IN_MREQ_CB(READ8(*this, trs80m2_state, read))
- MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(*this, trs80m2_state, write))
- MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, trs80m2_state, io_read_byte))
- MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, trs80m2_state, io_write_byte))
+ Z80DMA(config, m_dmac, 8_MHz_XTAL / 2);
+ m_dmac->out_busreq_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
+ m_dmac->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ m_dmac->in_mreq_callback().set(FUNC(trs80m2_state::read));
+ m_dmac->out_mreq_callback().set(FUNC(trs80m2_state::write));
+ m_dmac->in_iorq_callback().set(FUNC(trs80m2_state::io_read_byte));
+ m_dmac->out_iorq_callback().set(FUNC(trs80m2_state::io_write_byte));
Z80PIO(config, m_pio, 8_MHz_XTAL / 2);
m_pio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
@@ -763,8 +763,8 @@ MACHINE_CONFIG_START(trs80m2_state::trs80m2)
m_pio->out_pb_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
m_pio->out_brdy_callback().set(FUNC(trs80m2_state::strobe_w));
- MCFG_DEVICE_ADD(Z80SIO_TAG, Z80SIO0, 8_MHz_XTAL / 2)
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
+ z80sio0_device& sio(Z80SIO0(config, Z80SIO_TAG, 8_MHz_XTAL / 2));
+ sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(m_pio, z80pio_device, strobe_b))
@@ -792,11 +792,11 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(trs80m16_state::trs80m16)
// basic machine hardware
- MCFG_DEVICE_ADD(Z80_TAG, Z80, 8_MHz_XTAL / 2)
- MCFG_Z80_DAISY_CHAIN(trs80m2_daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(z80_mem)
- MCFG_DEVICE_IO_MAP(m16_z80_io)
- MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE(AM9519A_TAG, am9519_device, iack_cb)
+ Z80(config, m_maincpu, 8_MHz_XTAL / 2);
+ m_maincpu->set_daisy_config(trs80m2_daisy_chain);
+ m_maincpu->set_addrmap(AS_PROGRAM, &trs80m16_state::z80_mem);
+ m_maincpu->set_addrmap(AS_IO, &trs80m16_state::m16_z80_io);
+ m_maincpu->set_irq_acknowledge_callback(AM9519A_TAG, FUNC(am9519_device::iack_cb));
MCFG_DEVICE_ADD(M68000_TAG, M68000, 24_MHz_XTAL / 4)
MCFG_DEVICE_PROGRAM_MAP(m68000_mem)
@@ -822,7 +822,7 @@ MACHINE_CONFIG_START(trs80m16_state::trs80m16)
// devices
MCFG_DEVICE_ADD(FD1791_TAG, FD1791, 8_MHz_XTAL / 4)
MCFG_WD_FDC_INTRQ_CALLBACK(WRITE8(m_pio, z80pio_device, pa_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(Z80DMA_TAG, z80dma_device, rdy_w))
+ MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(m_dmac, z80dma_device, rdy_w))
MCFG_FLOPPY_DRIVE_ADD(FD1791_TAG":0", trs80m2_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1791_TAG":1", trs80m2_floppies, nullptr, floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1791_TAG":2", trs80m2_floppies, nullptr, floppy_image_device::default_floppy_formats)
@@ -836,13 +836,13 @@ MACHINE_CONFIG_START(trs80m16_state::trs80m16)
MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", trs80m2_state, ctc_tick, attotime::from_hz(8_MHz_XTAL / 2 / 2))
- MCFG_DEVICE_ADD(Z80DMA_TAG, Z80DMA, 8_MHz_XTAL / 2)
- MCFG_Z80DMA_OUT_BUSREQ_CB(INPUTLINE(Z80_TAG, INPUT_LINE_HALT))
- MCFG_Z80DMA_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
- MCFG_Z80DMA_IN_MREQ_CB(READ8(*this, trs80m2_state, read))
- MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(*this, trs80m2_state, write))
- MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, trs80m2_state, io_read_byte))
- MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, trs80m2_state, io_write_byte))
+ Z80DMA(config, m_dmac, 8_MHz_XTAL / 2);
+ m_dmac->out_busreq_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
+ m_dmac->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ m_dmac->in_mreq_callback().set(FUNC(trs80m2_state::read));
+ m_dmac->out_mreq_callback().set(FUNC(trs80m2_state::write));
+ m_dmac->in_iorq_callback().set(FUNC(trs80m2_state::io_read_byte));
+ m_dmac->out_iorq_callback().set(FUNC(trs80m2_state::io_write_byte));
Z80PIO(config, m_pio, 8_MHz_XTAL / 2);
m_pio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
@@ -851,8 +851,8 @@ MACHINE_CONFIG_START(trs80m16_state::trs80m16)
m_pio->out_pb_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
m_pio->out_brdy_callback().set(FUNC(trs80m2_state::strobe_w));
- MCFG_DEVICE_ADD(Z80SIO_TAG, Z80SIO0, 8_MHz_XTAL / 2)
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
+ z80sio0_device& sio(Z80SIO0(config, Z80SIO_TAG, 8_MHz_XTAL / 2));
+ sio.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
AM9519(config, m_uic, 0);
m_uic->out_int_callback().set_inputline(M68000_TAG, M68K_IRQ_5);
diff --git a/src/mame/drivers/ts802.cpp b/src/mame/drivers/ts802.cpp
index 8eca9a44c79..459c2e06aad 100644
--- a/src/mame/drivers/ts802.cpp
+++ b/src/mame/drivers/ts802.cpp
@@ -64,7 +64,7 @@ private:
uint8_t m_term_data;
address_space *m_mem;
address_space *m_io;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<generic_terminal_device> m_terminal;
};
@@ -190,29 +190,30 @@ void ts802_state::init_ts802()
MACHINE_CONFIG_START(ts802_state::ts802)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, 16_MHz_XTAL / 4)
- MCFG_DEVICE_PROGRAM_MAP(ts802_mem)
- MCFG_DEVICE_IO_MAP(ts802_io)
- //MCFG_Z80_DAISY_CHAIN(daisy_chain_intf) // causes problems
+ Z80(config, m_maincpu, 16_MHz_XTAL / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ts802_state::ts802_mem);
+ m_maincpu->set_addrmap(AS_IO, &ts802_state::ts802_io);
+ //m_maincpu->set_daisy_config(daisy_chain_intf); // causes problems
+
MCFG_MACHINE_RESET_OVERRIDE(ts802_state, ts802)
/* Devices */
MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0)
MCFG_GENERIC_TERMINAL_KEYBOARD_CB(PUT(ts802_state, kbd_put))
- MCFG_DEVICE_ADD("dma", Z80DMA, 16_MHz_XTAL / 4)
- MCFG_Z80DMA_OUT_BUSREQ_CB(INPUTLINE("maincpu", INPUT_LINE_HALT))
- MCFG_Z80DMA_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_Z80DMA_IN_MREQ_CB(READ8(*this, ts802_state, memory_read_byte))
- MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(*this, ts802_state, memory_write_byte))
- MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, ts802_state, io_read_byte))
- MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, ts802_state, io_write_byte))
+ z80dma_device& dma(Z80DMA(config, "dma", 16_MHz_XTAL / 4));
+ dma.out_busreq_callback().set_inputline(m_maincpu, INPUT_LINE_HALT);
+ dma.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ dma.in_mreq_callback().set(FUNC(ts802_state::memory_read_byte));
+ dma.out_mreq_callback().set(FUNC(ts802_state::memory_write_byte));
+ dma.in_iorq_callback().set(FUNC(ts802_state::io_read_byte));
+ dma.out_iorq_callback().set(FUNC(ts802_state::io_write_byte));
- MCFG_DEVICE_ADD("dart1", Z80DART, 16_MHz_XTAL / 4)
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ z80dart_device& dart1(Z80DART(config, "dart1", 16_MHz_XTAL / 4));
+ dart1.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- MCFG_DEVICE_ADD("dart2", Z80DART, 16_MHz_XTAL / 4)
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ z80dart_device& dart2(Z80DART(config, "dart2", 16_MHz_XTAL / 4));
+ dart2.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
MCFG_DEVICE_ADD("ctc", Z80CTC, 16_MHz_XTAL / 4)
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
diff --git a/src/mame/drivers/ts803.cpp b/src/mame/drivers/ts803.cpp
index 3b55dab096c..62062135e69 100644
--- a/src/mame/drivers/ts803.cpp
+++ b/src/mame/drivers/ts803.cpp
@@ -98,7 +98,7 @@ private:
virtual void machine_reset() override;
virtual void machine_start() override;
required_device<palette_device> m_palette;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<fd1793_device> m_fdc;
required_device<floppy_connector> m_floppy0;
required_device<floppy_connector> m_floppy1;
@@ -422,10 +422,10 @@ static const z80_daisy_config daisy_chain[] =
};
MACHINE_CONFIG_START(ts803_state::ts803)
- MCFG_DEVICE_ADD("maincpu", Z80, 16_MHz_XTAL / 4)
- MCFG_DEVICE_PROGRAM_MAP(ts803_mem)
- MCFG_DEVICE_IO_MAP(ts803_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, 16_MHz_XTAL / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ts803_state::ts803_mem);
+ m_maincpu->set_addrmap(AS_IO, &ts803_state::ts803_io);
+ m_maincpu->set_daisy_config(daisy_chain);
/* video hardware */
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green())
@@ -454,9 +454,9 @@ MACHINE_CONFIG_START(ts803_state::ts803)
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))
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd))
+ z80dart_device& dart(Z80DART(config, "dart", 16_MHz_XTAL / 4));
+ dart.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ dart.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "keyboard")
MCFG_RS232_RXD_HANDLER(WRITELINE("dart", z80dart_device, rxa_w))
diff --git a/src/mame/drivers/ts816.cpp b/src/mame/drivers/ts816.cpp
index c6972a3827b..27d26ce2e21 100644
--- a/src/mame/drivers/ts816.cpp
+++ b/src/mame/drivers/ts816.cpp
@@ -57,7 +57,7 @@ private:
bool m_endram;
void set_banks();
virtual void machine_reset() override;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<generic_terminal_device> m_terminal;
};
@@ -265,10 +265,10 @@ void ts816_state::init_ts816()
MACHINE_CONFIG_START(ts816_state::ts816)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(16'000'000) / 4)
- MCFG_DEVICE_PROGRAM_MAP(ts816_mem)
- MCFG_DEVICE_IO_MAP(ts816_io)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, XTAL(16'000'000) / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ts816_state::ts816_mem);
+ m_maincpu->set_addrmap(AS_IO, &ts816_state::ts816_io);
+ m_maincpu->set_daisy_config(daisy_chain);
/* video hardware */
MCFG_DEVICE_ADD(m_terminal, GENERIC_TERMINAL, 0)
@@ -306,9 +306,9 @@ MACHINE_CONFIG_START(ts816_state::ts816)
MCFG_DEVICE_ADD("ctc2", Z80CTC, XTAL(16'000'000) / 4)
MCFG_Z80CTC_INTR_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_DEVICE_ADD("dma", Z80DMA, XTAL(16'000'000) / 4)
- //MCFG_Z80DMA_OUT_BUSREQ_CB(WRITELINE(*this, ts816_state, busreq_w))
- MCFG_Z80DMA_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
+ z80dma_device& dma(Z80DMA(config, "dma", XTAL(16'000'000) / 4));
+ //dma.out_busreq_callback().set(FUNC(ts816_state::busreq_w));
+ dma.out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mame/drivers/univac.cpp b/src/mame/drivers/univac.cpp
index fd435d1c842..46cd26ca4fd 100644
--- a/src/mame/drivers/univac.cpp
+++ b/src/mame/drivers/univac.cpp
@@ -96,7 +96,7 @@ private:
virtual void machine_reset() override;
virtual void device_post_load() override;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<nvram_device> m_nvram;
required_device<z80ctc_device> m_ctc;
required_device<z80sio_device> m_uart;
@@ -314,10 +314,10 @@ static const z80_daisy_config daisy_chain[] =
MACHINE_CONFIG_START(univac_state::uts20)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu", Z80, XTAL(4'000'000)) // unknown clock
- MCFG_DEVICE_PROGRAM_MAP(mem_map)
- MCFG_DEVICE_IO_MAP(io_map)
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
+ Z80(config, m_maincpu, XTAL(4'000'000)); // unknown clock
+ m_maincpu->set_addrmap(AS_PROGRAM, &univac_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &univac_state::io_map);
+ m_maincpu->set_daisy_config(daisy_chain);
/* video hardware */
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::green())
diff --git a/src/mame/drivers/vcs80.cpp b/src/mame/drivers/vcs80.cpp
index dda437ae35e..638560b9d28 100644
--- a/src/mame/drivers/vcs80.cpp
+++ b/src/mame/drivers/vcs80.cpp
@@ -215,10 +215,10 @@ void vcs80_state::machine_start()
MACHINE_CONFIG_START(vcs80_state::vcs80)
/* basic machine hardware */
- MCFG_DEVICE_ADD(Z80_TAG, Z80, XTAL(5'000'000)/2) /* U880D */
- MCFG_DEVICE_PROGRAM_MAP(vcs80_mem)
- MCFG_DEVICE_IO_MAP(vcs80_io)
- MCFG_Z80_DAISY_CHAIN(vcs80_daisy_chain)
+ Z80(config, m_maincpu, XTAL(5'000'000)/2); /* U880D */
+ m_maincpu->set_addrmap(AS_PROGRAM, &vcs80_state::vcs80_mem);
+ m_maincpu->set_addrmap(AS_IO, &vcs80_state::vcs80_io);
+ m_maincpu->set_daisy_config(vcs80_daisy_chain);
/* keyboard timer */
MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", vcs80_state, vcs80_keyboard_tick, attotime::from_hz(1000))
diff --git a/src/mame/drivers/x1.cpp b/src/mame/drivers/x1.cpp
index ccb7418c222..54388a6e522 100644
--- a/src/mame/drivers/x1.cpp
+++ b/src/mame/drivers/x1.cpp
@@ -2201,10 +2201,10 @@ static void x1_floppies(device_slot_interface &device)
MACHINE_CONFIG_START(x1_state::x1)
/* basic machine hardware */
- MCFG_DEVICE_ADD("x1_cpu", Z80, MAIN_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(x1_mem)
- MCFG_DEVICE_IO_MAP(x1_io)
- MCFG_Z80_DAISY_CHAIN(x1_daisy)
+ Z80(config, m_maincpu, MAIN_CLOCK/4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &x1_state::x1_mem);
+ m_maincpu->set_addrmap(AS_IO, &x1_state::x1_io);
+ m_maincpu->set_daisy_config(x1_daisy);
ADDRESS_MAP_BANK(config, "iobank").set_map(&x1_state::x1_io_banks).set_options(ENDIANNESS_LITTLE, 8, 17, 0x10000);
@@ -2286,9 +2286,10 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(x1_state::x1turbo)
x1(config);
- MCFG_DEVICE_MODIFY("x1_cpu")
- MCFG_DEVICE_PROGRAM_MAP(x1turbo_mem)
- MCFG_Z80_DAISY_CHAIN(x1turbo_daisy)
+
+ m_maincpu->set_addrmap(AS_PROGRAM, &x1_state::x1turbo_mem);
+ m_maincpu->set_daisy_config(x1turbo_daisy);
+
MCFG_MACHINE_RESET_OVERRIDE(x1_state,x1turbo)
MCFG_DEVICE_MODIFY("iobank")
diff --git a/src/mame/drivers/x1twin.cpp b/src/mame/drivers/x1twin.cpp
index d3aaa2fc911..3ac4ef6a51c 100644
--- a/src/mame/drivers/x1twin.cpp
+++ b/src/mame/drivers/x1twin.cpp
@@ -412,10 +412,10 @@ static void x1_floppies(device_slot_interface &device)
MACHINE_CONFIG_START(x1twin_state::x1twin)
/* basic machine hardware */
- MCFG_DEVICE_ADD("x1_cpu", Z80, X1_MAIN_CLOCK/4)
- MCFG_DEVICE_PROGRAM_MAP(x1_mem)
- MCFG_DEVICE_IO_MAP(x1_io)
- MCFG_Z80_DAISY_CHAIN(x1_daisy)
+ Z80(config, m_maincpu, X1_MAIN_CLOCK/4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &x1twin_state::x1_mem);
+ m_maincpu->set_addrmap(AS_IO, &x1twin_state::x1_io);
+ m_maincpu->set_daisy_config(x1_daisy);
ADDRESS_MAP_BANK(config, "iobank").set_map(&x1_state::x1_io_banks).set_options(ENDIANNESS_LITTLE, 8, 17, 0x10000);
diff --git a/src/mame/drivers/xerox820.cpp b/src/mame/drivers/xerox820.cpp
index 0596f45d028..c61fcfb2d95 100644
--- a/src/mame/drivers/xerox820.cpp
+++ b/src/mame/drivers/xerox820.cpp
@@ -632,20 +632,20 @@ MACHINE_CONFIG_START(xerox820_state::xerox820)
MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG":0", xerox820_floppies, "sa400l", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG":1", xerox820_floppies, "sa400l", floppy_image_device::default_floppy_formats)
- MCFG_DEVICE_ADD(Z80SIO_TAG, Z80SIO0, 20_MHz_XTAL / 8)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
+ Z80SIO0(config, m_sio, 20_MHz_XTAL / 8);
+ 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));
+ m_sio->out_dtrb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr));
+ m_sio->out_rtsb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts));
+ m_sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80sio0_device, rxa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_sio, z80sio0_device, rxa_w))
MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80sio0_device, rxb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_sio, z80sio0_device, rxb_w))
com8116_device &dbrg(COM8116(config, COM8116_TAG, 5.0688_MHz_XTAL));
dbrg.fr_handler().set(m_sio, FUNC(z80dart_device::rxca_w));
@@ -721,20 +721,20 @@ MACHINE_CONFIG_START(xerox820ii_state::xerox820ii)
MCFG_FLOPPY_DRIVE_ADD(FD1797_TAG":0", xerox820_floppies, "sa450", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1797_TAG":1", xerox820_floppies, "sa450", floppy_image_device::default_floppy_formats)
- MCFG_DEVICE_ADD(Z80SIO_TAG, Z80SIO0, 16_MHz_XTAL / 4)
- MCFG_Z80DART_OUT_TXDA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSA_CB(WRITELINE(RS232_A_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_TXDB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_txd))
- MCFG_Z80DART_OUT_DTRB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_dtr))
- MCFG_Z80DART_OUT_RTSB_CB(WRITELINE(RS232_B_TAG, rs232_port_device, write_rts))
- MCFG_Z80DART_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
+ Z80SIO0(config, m_sio, 16_MHz_XTAL / 4);
+ 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));
+ m_sio->out_dtrb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_dtr));
+ m_sio->out_rtsb_callback().set(RS232_B_TAG, FUNC(rs232_port_device::write_rts));
+ m_sio->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80sio0_device, rxa_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_sio, z80sio0_device, rxa_w))
MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr)
- MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80sio0_device, rxb_w))
+ MCFG_RS232_RXD_HANDLER(WRITELINE(m_sio, z80sio0_device, rxb_w))
com8116_device &dbrg(COM8116(config, COM8116_TAG, 5.0688_MHz_XTAL));
dbrg.fr_handler().set(m_sio, FUNC(z80dart_device::rxca_w));
diff --git a/src/mame/drivers/z9001.cpp b/src/mame/drivers/z9001.cpp
index 336d723a0b7..49cc04b3457 100644
--- a/src/mame/drivers/z9001.cpp
+++ b/src/mame/drivers/z9001.cpp
@@ -74,7 +74,7 @@ private:
bool m_cassbit;
virtual void machine_reset() override;
//virtual void machine_start();
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<beep_device> m_beeper;
required_device<cassette_image_device> m_cass;
required_shared_ptr<uint8_t> m_p_colorram;
@@ -208,10 +208,10 @@ GFXDECODE_END
MACHINE_CONFIG_START(z9001_state::z9001)
/* basic machine hardware */
- MCFG_DEVICE_ADD("maincpu",Z80, XTAL(9'830'400) / 4)
- MCFG_DEVICE_PROGRAM_MAP(z9001_mem)
- MCFG_DEVICE_IO_MAP(z9001_io)
- MCFG_Z80_DAISY_CHAIN(z9001_daisy_chain)
+ Z80(config, m_maincpu, XTAL(9'830'400) / 4);
+ m_maincpu->set_addrmap(AS_PROGRAM, &z9001_state::z9001_mem);
+ m_maincpu->set_addrmap(AS_IO, &z9001_state::z9001_io);
+ m_maincpu->set_daisy_config(z9001_daisy_chain);
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/zorba.cpp b/src/mame/drivers/zorba.cpp
index e3da07ad940..e294d34f8f7 100644
--- a/src/mame/drivers/zorba.cpp
+++ b/src/mame/drivers/zorba.cpp
@@ -160,15 +160,15 @@ MACHINE_CONFIG_START(zorba_state::zorba)
MCFG_INPUT_MERGER_OUTPUT_HANDLER(WRITELINE(*this, zorba_state, irq_w<2>))
/* devices */
- MCFG_DEVICE_ADD(m_dma, Z80DMA, 24_MHz_XTAL / 6)
+ Z80DMA(config, m_dma, 24_MHz_XTAL / 6);
// busack on cpu connects to bai pin
- MCFG_Z80DMA_OUT_BUSREQ_CB(WRITELINE(*this, zorba_state, busreq_w)) //connects to busreq on cpu
- MCFG_Z80DMA_OUT_INT_CB(WRITELINE("irq0", input_merger_device, in_w<0>))
+ m_dma->out_busreq_callback().set(FUNC(zorba_state::busreq_w)); //connects to busreq on cpu
+ m_dma->out_int_callback().set("irq0", FUNC(input_merger_device::in_w<0>));
//ba0 - not connected
- MCFG_Z80DMA_IN_MREQ_CB(READ8(*this, zorba_state, memory_read_byte))
- MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(*this, zorba_state, memory_write_byte))
- MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, zorba_state, io_read_byte))
- MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, zorba_state, io_write_byte))
+ m_dma->in_mreq_callback().set(FUNC(zorba_state::memory_read_byte));
+ m_dma->out_mreq_callback().set(FUNC(zorba_state::memory_write_byte));
+ m_dma->in_iorq_callback().set(FUNC(zorba_state::io_read_byte));
+ m_dma->out_iorq_callback().set(FUNC(zorba_state::io_write_byte));
I8251(config, m_uart0, 0); // U32 COM port J2
m_uart0->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); // TODO: this line has a LED attached
diff --git a/src/mame/includes/abc80.h b/src/mame/includes/abc80.h
index a5b3b6e5988..4737a0a1d86 100644
--- a/src/mame/includes/abc80.h
+++ b/src/mame/includes/abc80.h
@@ -95,7 +95,7 @@ public:
static constexpr feature_type imperfect_features() { return feature::KEYBOARD; }
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80pio_device> m_pio;
required_device<sn76477_device> m_csg;
required_device<cassette_image_device> m_cassette;
diff --git a/src/mame/includes/abc80x.h b/src/mame/includes/abc80x.h
index f5be1519960..ec65b0f910f 100644
--- a/src/mame/includes/abc80x.h
+++ b/src/mame/includes/abc80x.h
@@ -99,7 +99,7 @@ public:
m_tape_ctr(4)
{ }
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
required_device<z80dart_device> m_dart;
required_device<z80sio_device> m_sio;
diff --git a/src/mame/includes/astrocde.h b/src/mame/includes/astrocde.h
index e522626d6cb..5626956f200 100644
--- a/src/mame/includes/astrocde.h
+++ b/src/mame/includes/astrocde.h
@@ -6,6 +6,7 @@
***************************************************************************/
+#include "cpu/z80/z80.h"
#include "machine/bankdev.h"
#include "machine/gen_latch.h"
#include "sound/astrocde.h"
@@ -34,7 +35,6 @@ public:
astrocde_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
- m_subcpu(*this, "sub"),
m_votrax(*this, "votrax"),
m_astrocade_sound1(*this, "astrocade1"),
m_videoram(*this, "videoram"),
@@ -48,7 +48,6 @@ public:
{ }
required_device<cpu_device> m_maincpu;
- optional_device<cpu_device> m_subcpu;
optional_device<votrax_sc01_device> m_votrax;
optional_device<astrocade_io_device> m_astrocade_sound1;
optional_shared_ptr<uint8_t> m_videoram;
@@ -245,6 +244,7 @@ class tenpindx_state : public astrocde_state
public:
tenpindx_state(const machine_config &mconfig, device_type type, const char *tag)
: astrocde_state(mconfig, type, tag)
+ , m_subcpu(*this, "sub")
, m_lamps(*this, "lamp%0", 0U)
{ }
@@ -260,5 +260,6 @@ private:
void sub_io_map(address_map &map);
void sub_map(address_map &map);
+ required_device<z80_device> m_subcpu;
output_finder<19> m_lamps;
};
diff --git a/src/mame/includes/aussiebyte.h b/src/mame/includes/aussiebyte.h
index 279624c5d86..a87288e3e93 100644
--- a/src/mame/includes/aussiebyte.h
+++ b/src/mame/includes/aussiebyte.h
@@ -127,7 +127,7 @@ private:
uint16_t m_graph_address;
int m_centronics_busy;
required_device<palette_device> m_palette;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_region_ptr<u8> m_p_chargen;
required_region_ptr<u8> m_p_videoram;
required_region_ptr<u8> m_p_attribram;
diff --git a/src/mame/includes/c80.h b/src/mame/includes/c80.h
index bacc2d2e130..ed174ea8e58 100644
--- a/src/mame/includes/c80.h
+++ b/src/mame/includes/c80.h
@@ -29,7 +29,7 @@ public:
, m_digits(*this, "digit%u", 0U)
{ }
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80pio_device> m_pio1;
required_device<cassette_image_device> m_cassette;
required_ioport m_row0;
diff --git a/src/mame/includes/cchasm.h b/src/mame/includes/cchasm.h
index 3d75f5774d6..8fbcfeeb673 100644
--- a/src/mame/includes/cchasm.h
+++ b/src/mame/includes/cchasm.h
@@ -7,6 +7,7 @@
*************************************************************************/
+#include "cpu/z80/z80.h"
#include "machine/gen_latch.h"
#include "machine/z80ctc.h"
#include "sound/dac.h"
@@ -38,7 +39,7 @@ public:
required_device<cpu_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
- required_device<cpu_device> m_audiocpu;
+ required_device<z80_device> m_audiocpu;
required_device<dac_bit_interface> m_dac1;
required_device<dac_bit_interface> m_dac2;
required_device<vector_device> m_vector;
diff --git a/src/mame/includes/huebler.h b/src/mame/includes/huebler.h
index 05f88881925..163e52f7581 100644
--- a/src/mame/includes/huebler.h
+++ b/src/mame/includes/huebler.h
@@ -26,6 +26,7 @@ class amu880_state : public driver_device
public:
amu880_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
+ , m_maincpu(*this, Z80_TAG)
, m_cassette(*this, "cassette")
, m_z80sio(*this, Z80SIO_TAG)
, m_palette(*this, "palette")
@@ -41,7 +42,11 @@ public:
void amu880(machine_config &config);
+protected:
+ virtual void machine_start() override;
+
private:
+ required_device<z80_device> m_maincpu;
required_device<cassette_image_device> m_cassette;
required_device<z80dart_device> m_z80sio;
required_device<palette_device> m_palette;
@@ -51,8 +56,6 @@ private:
required_ioport_array<16> m_key_row;
required_ioport m_special;
- virtual void machine_start() override;
-
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
DECLARE_READ8_MEMBER( keyboard_r );
diff --git a/src/mame/includes/kaypro.h b/src/mame/includes/kaypro.h
index 3c310d350b2..893cd61bd5c 100644
--- a/src/mame/includes/kaypro.h
+++ b/src/mame/includes/kaypro.h
@@ -96,7 +96,7 @@ private:
required_device<palette_device> m_palette;
required_device<screen_device> m_screen;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_region_ptr<u8> m_p_chargen;
optional_device<z80pio_device> m_pio_g;
optional_device<z80pio_device> m_pio_s;
diff --git a/src/mame/includes/llc.h b/src/mame/includes/llc.h
index 77f922f33be..96f5b47c5cf 100644
--- a/src/mame/includes/llc.h
+++ b/src/mame/includes/llc.h
@@ -69,7 +69,7 @@ private:
uint8_t m_term_data;
optional_device<speaker_sound_device> m_speaker;
optional_shared_ptr<uint8_t> m_p_videoram;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
optional_device<ram_device> m_ram;
required_region_ptr<u8> m_p_chargen;
output_finder<8> m_digits;
diff --git a/src/mame/includes/m5.h b/src/mame/includes/m5.h
index 62cb04ce0d0..de2eaab34ae 100644
--- a/src/mame/includes/m5.h
+++ b/src/mame/includes/m5.h
@@ -6,6 +6,7 @@
#include "imagedev/cassette.h"
#include "imagedev/snapquik.h"
+#include "cpu/z80/z80.h"
#include "machine/i8255.h"
#include "machine/ram.h"
#include "machine/upd765.h"
@@ -61,7 +62,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(sordm5_video_interrupt_callback);
protected:
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
//I've changed following devices to optional since we have to remove them in BRNO mod (I don't know better solution)
optional_device<cpu_device> m_fd5cpu;
diff --git a/src/mame/includes/mbee.h b/src/mame/includes/mbee.h
index 88f2630a4f2..a2f94339ca0 100644
--- a/src/mame/includes/mbee.h
+++ b/src/mame/includes/mbee.h
@@ -180,7 +180,7 @@ private:
void oldkb_matrix_r(uint16_t offs);
void machine_reset_common();
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80pio_device> m_pio;
required_device<cassette_image_device> m_cassette;
required_device<wave_device> m_wave;
diff --git a/src/mame/includes/mcr.h b/src/mame/includes/mcr.h
index dd390e512b2..d6f34072dcf 100644
--- a/src/mame/includes/mcr.h
+++ b/src/mame/includes/mcr.h
@@ -206,7 +206,7 @@ private:
int m_ipu_sio_txdb;
emu_timer *m_ipu_watchdog_timer;
- required_device<cpu_device> m_ipu;
+ required_device<z80_device> m_ipu;
required_device<z80dart_device> m_ipu_sio;
required_device<z80ctc_device> m_ipu_ctc;
required_device<z80pio_device> m_ipu_pio0;
diff --git a/src/mame/includes/mpf1.h b/src/mame/includes/mpf1.h
index 0ff3b9398ea..7d9e7bfdc6d 100644
--- a/src/mame/includes/mpf1.h
+++ b/src/mame/includes/mpf1.h
@@ -49,7 +49,7 @@ public:
DECLARE_INPUT_CHANGED_MEMBER( trigger_res );
private:
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
required_device<speaker_sound_device> m_speaker;
required_device<cassette_image_device> m_cassette;
diff --git a/src/mame/includes/mtx.h b/src/mame/includes/mtx.h
index 012be8da430..959780228f3 100644
--- a/src/mame/includes/mtx.h
+++ b/src/mame/includes/mtx.h
@@ -14,6 +14,7 @@
#include "bus/centronics/ctronics.h"
#include "bus/generic/slot.h"
#include "bus/generic/carts.h"
+#include "cpu/z80/z80.h"
#include "machine/z80dart.h"
#include "machine/z80ctc.h"
#include "sound/sn76496.h"
@@ -51,7 +52,7 @@ public:
void mtx512(machine_config &config);
private:
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<sn76489a_device> m_sn;
required_device<z80ctc_device> m_z80ctc;
optional_device<z80dart_device> m_z80dart;
diff --git a/src/mame/includes/pbaction.h b/src/mame/includes/pbaction.h
index ca6dc26e729..cac977d4771 100644
--- a/src/mame/includes/pbaction.h
+++ b/src/mame/includes/pbaction.h
@@ -6,6 +6,7 @@
*************************************************************************/
+#include "cpu/z80/z80.h"
#include "machine/gen_latch.h"
#include "machine/z80ctc.h"
#include "emupal.h"
@@ -44,7 +45,7 @@ public:
/* devices */
required_device<cpu_device> m_maincpu;
- required_device<cpu_device> m_audiocpu;
+ required_device<z80_device> m_audiocpu;
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
required_device<generic_latch_8_device> m_soundlatch;
diff --git a/src/mame/includes/polyplay.h b/src/mame/includes/polyplay.h
index 0122026b2e2..3fbf90bcc59 100644
--- a/src/mame/includes/polyplay.h
+++ b/src/mame/includes/polyplay.h
@@ -4,6 +4,7 @@
#ifndef MAME_INCLUDES_POLYPLAY_H
#define MAME_INCLUDES_POLYPLAY_H
+#include "cpu/z80/z80.h"
#include "machine/z80ctc.h"
#include "machine/z80pio.h"
#include "machine/z80sio.h"
@@ -69,7 +70,7 @@ private:
required_shared_ptr<uint8_t> m_videoram;
required_shared_ptr<uint8_t> m_characterram;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80ctc_device> m_z80ctc;
required_device<z80pio_device> m_z80pio;
optional_device<z80sio_device> m_z80sio;
diff --git a/src/mame/includes/super6.h b/src/mame/includes/super6.h
index 1ea9122c9fc..81aedb35d9b 100644
--- a/src/mame/includes/super6.h
+++ b/src/mame/includes/super6.h
@@ -69,7 +69,7 @@ private:
void bankswitch();
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
required_device<z80dart_device> m_dart;
required_device<z80dma_device> m_dma;
diff --git a/src/mame/includes/super80.h b/src/mame/includes/super80.h
index e5a963ae191..b6d5a5e17aa 100644
--- a/src/mame/includes/super80.h
+++ b/src/mame/includes/super80.h
@@ -131,7 +131,7 @@ private:
void mc6845_cursor_configure();
void super80_cassette_motor(bool data);
required_device<palette_device> m_palette;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_region_ptr<u8> m_p_ram;
optional_region_ptr<u8> m_p_chargen;
optional_region_ptr<u8> m_p_colorram;
diff --git a/src/mame/includes/tiki100.h b/src/mame/includes/tiki100.h
index 8daff0eff4f..136aebd8b79 100644
--- a/src/mame/includes/tiki100.h
+++ b/src/mame/includes/tiki100.h
@@ -107,7 +107,7 @@ private:
virtual void machine_start() override;
virtual void machine_reset() override;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
required_device<fd1797_device> m_fdc;
required_device<z80pio_device> m_pio;
diff --git a/src/mame/includes/trs80m2.h b/src/mame/includes/trs80m2.h
index 54192583ecf..8c44263f2f6 100644
--- a/src/mame/includes/trs80m2.h
+++ b/src/mame/includes/trs80m2.h
@@ -104,7 +104,7 @@ protected:
virtual void video_start() override;
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80ctc_device> m_ctc;
required_device<z80dma_device> m_dmac;
required_device<z80pio_device> m_pio;
diff --git a/src/mame/includes/vcs80.h b/src/mame/includes/vcs80.h
index c63790e6add..1e91a8c7794 100644
--- a/src/mame/includes/vcs80.h
+++ b/src/mame/includes/vcs80.h
@@ -34,7 +34,7 @@ public:
void vcs80(machine_config &config);
private:
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<z80pio_device> m_pio;
required_ioport m_y0;
required_ioport m_y1;
diff --git a/src/mame/includes/x1.h b/src/mame/includes/x1.h
index 3595e6bc62e..6ceabad1255 100644
--- a/src/mame/includes/x1.h
+++ b/src/mame/includes/x1.h
@@ -57,7 +57,7 @@ class x1_state : public driver_device
public:
x1_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
- m_maincpu(*this,"x1_cpu"),
+ m_maincpu(*this, "x1_cpu"),
m_cassette(*this, "cassette"),
m_cart(*this, "cartslot"),
m_fdc(*this, "fdc"),
@@ -81,7 +81,7 @@ public:
DECLARE_FLOPPY_FORMATS(floppy_formats);
- required_device<cpu_device> m_maincpu;
+ required_device<z80_device> m_maincpu;
required_device<cassette_image_device> m_cassette;
required_device<generic_slot_device> m_cart;
required_device<mb8877_device> m_fdc;
diff --git a/src/mame/machine/acs8600_ics.cpp b/src/mame/machine/acs8600_ics.cpp
index 944ea30c1f7..9f540e574c7 100644
--- a/src/mame/machine/acs8600_ics.cpp
+++ b/src/mame/machine/acs8600_ics.cpp
@@ -5,7 +5,6 @@
#include "emu.h"
#include "machine/acs8600_ics.h"
-#include "cpu/z80/z80.h"
#include "machine/z80sio.h"
#include "machine/am9513.h"
#include "bus/rs232/rs232.h"
@@ -97,10 +96,10 @@ static const z80_daisy_config ics_daisy_chain[] =
};
MACHINE_CONFIG_START(acs8600_ics_device::device_add_mconfig)
- MCFG_DEVICE_ADD(m_icscpu, Z80, 4_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(ics_mem)
- MCFG_DEVICE_IO_MAP(ics_io)
- MCFG_Z80_DAISY_CHAIN(ics_daisy_chain)
+ Z80(config, m_icscpu, 4_MHz_XTAL);
+ m_icscpu->set_addrmap(AS_PROGRAM, &acs8600_ics_device::ics_mem);
+ m_icscpu->set_addrmap(AS_IO, &acs8600_ics_device::ics_io);
+ m_icscpu->set_daisy_config(ics_daisy_chain);
am9513_device &stc1(AM9513(config, "stc1", 1.8432_MHz_XTAL));
stc1.out1_cb().set("sio1", FUNC(z80sio_device::rxca_w));
diff --git a/src/mame/machine/acs8600_ics.h b/src/mame/machine/acs8600_ics.h
index 1ca1f623245..697666fdd8f 100644
--- a/src/mame/machine/acs8600_ics.h
+++ b/src/mame/machine/acs8600_ics.h
@@ -6,6 +6,7 @@
#pragma once
+#include "cpu/z80/z80.h"
class acs8600_ics_device : public device_t
{
@@ -33,7 +34,7 @@ protected:
void ics_mem(address_map &map);
private:
- required_device<cpu_device> m_icscpu;
+ required_device<z80_device> m_icscpu;
devcb_write_line m_out_irq1_func;
devcb_write_line m_out_irq2_func;
required_device<device_memory_interface> m_host_space_device;
diff --git a/src/mame/machine/inder_sb.cpp b/src/mame/machine/inder_sb.cpp
index ae232eb8450..1548fba99fb 100644
--- a/src/mame/machine/inder_sb.cpp
+++ b/src/mame/machine/inder_sb.cpp
@@ -151,10 +151,10 @@ void inder_sb_device::sound_io(address_map &map)
MACHINE_CONFIG_START(inder_sb_device::device_add_mconfig)
- MCFG_DEVICE_ADD("audiocpu", Z80, 8000000) // unk freq
- MCFG_Z80_DAISY_CHAIN(daisy_chain)
- MCFG_DEVICE_PROGRAM_MAP(sound_map)
- MCFG_DEVICE_IO_MAP(sound_io)
+ Z80(config, m_audiocpu, 8000000); // unk freq
+ m_audiocpu->set_daisy_config(daisy_chain);
+ m_audiocpu->set_addrmap(AS_PROGRAM, &inder_sb_device::sound_map);
+ m_audiocpu->set_addrmap(AS_IO, &inder_sb_device::sound_io);
MCFG_DEVICE_ADD("ctc", Z80CTC, 4000000) // unk freq
// runs in IM2 , vector set to 0x20 , values there are 0xCC, 0x02, 0xE6, 0x02, 0x09, 0x03, 0x23, 0x03 (so 02cc, 02e6, 0309, 0323, all of which are valid irq handlers)
diff --git a/src/mame/machine/inder_sb.h b/src/mame/machine/inder_sb.h
index fff245dd830..70a2ba11070 100644
--- a/src/mame/machine/inder_sb.h
+++ b/src/mame/machine/inder_sb.h
@@ -50,7 +50,7 @@ protected:
virtual void device_reset() override;
private:
- required_device<cpu_device> m_audiocpu;
+ required_device<z80_device> m_audiocpu;
required_device<z80ctc_device> m_ctc;
required_region_ptr<uint8_t> m_audiocpu_rom;
required_memory_bank m_sounddata_bank;