summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Ivan Vangelista <mesgnet@yahoo.it>2018-09-06 18:23:16 +0200
committer Ivan Vangelista <mesgnet@yahoo.it>2018-09-06 18:23:16 +0200
commit7bc9740ca7d842359a6af4b5f11f5410f0d6a9a3 (patch)
treec878faff4bd1596b43754756bfc70b96d948c84e
parentf0f5b81528236e3bf2d815e20bbb36a1728b0bba (diff)
wd_fdc: removed MCFG macros (nw)
-rw-r--r--src/devices/bus/a2bus/corvfdc01.cpp19
-rw-r--r--src/devices/bus/abcbus/fd2.cpp17
-rw-r--r--src/devices/bus/abcbus/lux10828.cpp15
-rw-r--r--src/devices/bus/abcbus/lux21046.cpp60
-rw-r--r--src/devices/bus/abcbus/lux21046.h5
-rw-r--r--src/devices/bus/adamnet/fdc.cpp17
-rw-r--r--src/devices/bus/bbc/1mhzbus/opus3.cpp17
-rw-r--r--src/devices/bus/bbc/fdc/acorn.cpp30
-rw-r--r--src/devices/bus/bbc/fdc/cumana.cpp44
-rw-r--r--src/devices/bus/bbc/fdc/cumana.h5
-rw-r--r--src/devices/bus/bbc/fdc/cv1797.cpp19
-rw-r--r--src/devices/bus/bbc/fdc/opus.cpp75
-rw-r--r--src/devices/bus/bbc/fdc/opus.h5
-rw-r--r--src/devices/bus/bbc/fdc/watford.cpp36
-rw-r--r--src/devices/bus/bml3/bml3mp1802.cpp19
-rw-r--r--src/devices/bus/cbmiec/c1581.cpp4
-rw-r--r--src/devices/bus/cgenie/expansion/floppy.cpp4
-rw-r--r--src/devices/bus/coco/coco_fdc.cpp29
-rw-r--r--src/devices/bus/comx35/fdc.cpp11
-rw-r--r--src/devices/bus/electron/cart/ap34.cpp13
-rw-r--r--src/devices/bus/electron/cart/cumana.cpp15
-rw-r--r--src/devices/bus/electron/cart/peg400.cpp15
-rw-r--r--src/devices/bus/electron/cart/stlefs.cpp17
-rw-r--r--src/devices/bus/electron/plus3.cpp9
-rw-r--r--src/devices/bus/ep64/exdos.cpp17
-rw-r--r--src/devices/bus/ieee488/c8280.cpp10
-rw-r--r--src/devices/bus/ieee488/hp9122c.cpp6
-rw-r--r--src/devices/bus/isa/mc1502_fdc.cpp15
-rw-r--r--src/devices/bus/isa/myb3k_fdc.cpp53
-rw-r--r--src/devices/bus/isa/p1_fdc.cpp15
-rw-r--r--src/devices/bus/msx_cart/disk.cpp10
-rw-r--r--src/devices/bus/nasbus/floppy.cpp17
-rw-r--r--src/devices/bus/oricext/jasmin.cpp19
-rw-r--r--src/devices/bus/oricext/microdisc.cpp25
-rw-r--r--src/devices/bus/ql/sandy_superdisk.cpp20
-rw-r--r--src/devices/bus/ql/sandy_superqboard.cpp20
-rw-r--r--src/devices/bus/ql/trumpcard.cpp11
-rw-r--r--src/devices/bus/s100/dj2db.cpp19
-rw-r--r--src/devices/bus/svi3x8/slot/sv801.cpp17
-rw-r--r--src/devices/bus/tvc/hbf.cpp12
-rw-r--r--src/devices/machine/wd7600.cpp24
-rw-r--r--src/devices/machine/wd7600.h8
-rw-r--r--src/devices/machine/wd_fdc.h25
-rw-r--r--src/mame/drivers/abc1600.cpp6
-rw-r--r--src/mame/drivers/alphatpx.cpp16
-rw-r--r--src/mame/drivers/ampro.cpp2
-rw-r--r--src/mame/drivers/apf.cpp2
-rw-r--r--src/mame/drivers/applix.cpp2
-rw-r--r--src/mame/drivers/at.cpp9
-rw-r--r--src/mame/drivers/aussiebyte.cpp6
-rw-r--r--src/mame/drivers/bigbord2.cpp4
-rw-r--r--src/mame/drivers/bullet.cpp12
-rw-r--r--src/mame/drivers/candela.cpp2
-rw-r--r--src/mame/drivers/dmax8000.cpp6
-rw-r--r--src/mame/drivers/dragon.cpp6
-rw-r--r--src/mame/drivers/einstein.cpp2
-rw-r--r--src/mame/drivers/eurocom2.cpp4
-rw-r--r--src/mame/drivers/excali64.cpp4
-rw-r--r--src/mame/drivers/gimix.cpp8
-rw-r--r--src/mame/drivers/hec2hrp.cpp2
-rw-r--r--src/mame/drivers/ht68k.cpp2
-rw-r--r--src/mame/drivers/icebox.cpp4
-rw-r--r--src/mame/drivers/itt3030.cpp8
-rw-r--r--src/mame/drivers/jupiter.cpp4
-rw-r--r--src/mame/drivers/m20.cpp14
-rw-r--r--src/mame/drivers/m5.cpp2
-rw-r--r--src/mame/drivers/mbc200.cpp6
-rw-r--r--src/mame/drivers/mbc55x.cpp2
-rw-r--r--src/mame/drivers/micro20.cpp2
-rw-r--r--src/mame/drivers/miniframe.cpp6
-rw-r--r--src/mame/drivers/ms0515.cpp2
-rw-r--r--src/mame/drivers/mycom.cpp2
-rw-r--r--src/mame/drivers/mz2000.cpp2
-rw-r--r--src/mame/drivers/mz2500.cpp2
-rw-r--r--src/mame/drivers/ngen.cpp20
-rw-r--r--src/mame/drivers/notetaker.cpp2
-rw-r--r--src/mame/drivers/octopus.cpp8
-rw-r--r--src/mame/drivers/olytext.cpp2
-rw-r--r--src/mame/drivers/osbexec.cpp4
-rw-r--r--src/mame/drivers/osborne1.cpp4
-rw-r--r--src/mame/drivers/pcd.cpp26
-rw-r--r--src/mame/drivers/pg685.cpp13
-rw-r--r--src/mame/drivers/poly.cpp6
-rw-r--r--src/mame/drivers/proteus.cpp6
-rw-r--r--src/mame/drivers/pt68k4.cpp2
-rw-r--r--src/mame/drivers/pulsar.cpp2
-rw-r--r--src/mame/drivers/rc759.cpp6
-rw-r--r--src/mame/drivers/rm380z.cpp2
-rw-r--r--src/mame/drivers/samcoupe.cpp2
-rw-r--r--src/mame/drivers/sbrain.cpp2
-rw-r--r--src/mame/drivers/slicer.cpp6
-rw-r--r--src/mame/drivers/smc777.cpp6
-rw-r--r--src/mame/drivers/special.cpp8
-rw-r--r--src/mame/drivers/squale.cpp2
-rw-r--r--src/mame/drivers/tavernie.cpp2
-rw-r--r--src/mame/drivers/tdv2324.cpp2
-rw-r--r--src/mame/drivers/thomson.cpp2
-rw-r--r--src/mame/drivers/tiki100.cpp2
-rw-r--r--src/mame/drivers/trs80.cpp4
-rw-r--r--src/mame/drivers/trs80m2.cpp12
-rw-r--r--src/mame/drivers/trs80m3.cpp6
-rw-r--r--src/mame/drivers/ts802.cpp13
-rw-r--r--src/mame/drivers/ts803.cpp4
-rw-r--r--src/mame/drivers/v1050.cpp6
-rw-r--r--src/mame/drivers/v6809.cpp2
-rw-r--r--src/mame/drivers/vixen.cpp4
-rw-r--r--src/mame/drivers/x1.cpp9
-rw-r--r--src/mame/drivers/x1twin.cpp6
-rw-r--r--src/mame/drivers/xerox820.cpp12
-rw-r--r--src/mame/drivers/xor100.cpp2
-rw-r--r--src/mame/drivers/z100.cpp2
-rw-r--r--src/mame/drivers/z80ne.cpp2
-rw-r--r--src/mame/drivers/zorba.cpp6
-rw-r--r--src/mame/machine/beta.cpp19
114 files changed, 609 insertions, 631 deletions
diff --git a/src/devices/bus/a2bus/corvfdc01.cpp b/src/devices/bus/a2bus/corvfdc01.cpp
index 2e8e49cdb64..2f1684c1da7 100644
--- a/src/devices/bus/a2bus/corvfdc01.cpp
+++ b/src/devices/bus/a2bus/corvfdc01.cpp
@@ -83,15 +83,16 @@ enum
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(a2bus_corvfdc01_device::device_add_mconfig)
- MCFG_DEVICE_ADD(FDC01_FDC_TAG, FD1793, 16_MHz_XTAL / 8)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, a2bus_corvfdc01_device, intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, a2bus_corvfdc01_device, drq_w))
- MCFG_FLOPPY_DRIVE_ADD(FDC01_FDC_TAG":0", corv_floppies, "8sssd", a2bus_corvfdc01_device::corv_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(FDC01_FDC_TAG":1", corv_floppies, "8sssd", a2bus_corvfdc01_device::corv_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(FDC01_FDC_TAG":2", corv_floppies, "8sssd", a2bus_corvfdc01_device::corv_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(FDC01_FDC_TAG":3", corv_floppies, "8sssd", a2bus_corvfdc01_device::corv_floppy_formats)
-MACHINE_CONFIG_END
+void a2bus_corvfdc01_device::device_add_mconfig(machine_config &config)
+{
+ FD1793(config, m_wdfdc, 16_MHz_XTAL / 8);
+ m_wdfdc->intrq_wr_callback().set(FUNC(a2bus_corvfdc01_device::intrq_w));
+ m_wdfdc->drq_wr_callback().set(FUNC(a2bus_corvfdc01_device::drq_w));
+ FLOPPY_CONNECTOR(config, m_con1, corv_floppies, "8sssd", a2bus_corvfdc01_device::corv_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_con2, corv_floppies, "8sssd", a2bus_corvfdc01_device::corv_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_con3, corv_floppies, "8sssd", a2bus_corvfdc01_device::corv_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_con4, corv_floppies, "8sssd", a2bus_corvfdc01_device::corv_floppy_formats);
+}
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/abcbus/fd2.cpp b/src/devices/bus/abcbus/fd2.cpp
index 57c55be21e3..7de408ad65f 100644
--- a/src/devices/bus/abcbus/fd2.cpp
+++ b/src/devices/bus/abcbus/fd2.cpp
@@ -237,7 +237,8 @@ FLOPPY_FORMATS_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(abc_fd2_device::device_add_mconfig)
+void abc_fd2_device::device_add_mconfig(machine_config &config)
+{
Z80(config, m_maincpu, 4_MHz_XTAL / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &abc_fd2_device::abc_fd2_mem);
m_maincpu->set_addrmap(AS_IO, &abc_fd2_device::abc_fd2_io);
@@ -250,14 +251,14 @@ MACHINE_CONFIG_START(abc_fd2_device::device_add_mconfig)
m_pio->in_pb_callback().set(FUNC(abc_fd2_device::pio_pb_r));
m_pio->out_pb_callback().set(FUNC(abc_fd2_device::pio_pb_w));
- MCFG_DEVICE_ADD(FD1771_TAG, FD1771, 4_MHz_XTAL / 4)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(m_pio, z80pio_device, pb7_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(m_pio, z80pio_device, pb5_w))
- MCFG_WD_FDC_HLD_CALLBACK(WRITELINE(m_pio, z80pio_device, pb6_w))
+ FD1771(config, m_fdc, 4_MHz_XTAL / 4);
+ m_fdc->intrq_wr_callback().set(m_pio, FUNC(z80pio_device::pb7_w));
+ m_fdc->drq_wr_callback().set(m_pio, FUNC(z80pio_device::pb5_w));
+ m_fdc->hld_wr_callback().set(m_pio, FUNC(z80pio_device::pb6_w));
- MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG ":0", abc_fd2_floppies, "525sssd", abc_fd2_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(FD1771_TAG ":1", abc_fd2_floppies, "525sssd", abc_fd2_device::floppy_formats)
-MACHINE_CONFIG_END
+ FLOPPY_CONNECTOR(config, m_floppy0, abc_fd2_floppies, "525sssd", abc_fd2_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, abc_fd2_floppies, "525sssd", abc_fd2_device::floppy_formats);
+}
//**************************************************************************
diff --git a/src/devices/bus/abcbus/lux10828.cpp b/src/devices/bus/abcbus/lux10828.cpp
index 5010bf9bf0e..557f301141e 100644
--- a/src/devices/bus/abcbus/lux10828.cpp
+++ b/src/devices/bus/abcbus/lux10828.cpp
@@ -320,7 +320,8 @@ WRITE_LINE_MEMBER( luxor_55_10828_device::fdc_drq_w )
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(luxor_55_10828_device::device_add_mconfig)
+void luxor_55_10828_device::device_add_mconfig(machine_config &config)
+{
Z80(config, m_maincpu, 4_MHz_XTAL / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &luxor_55_10828_device::luxor_55_10828_mem);
m_maincpu->set_addrmap(AS_IO, &luxor_55_10828_device::luxor_55_10828_io);
@@ -333,13 +334,13 @@ MACHINE_CONFIG_START(luxor_55_10828_device::device_add_mconfig)
m_pio->in_pb_callback().set(FUNC(luxor_55_10828_device::pio_pb_r));
m_pio->out_pb_callback().set(FUNC(luxor_55_10828_device::pio_pb_w));
- MCFG_DEVICE_ADD(MB8876_TAG, MB8876, 4_MHz_XTAL / 4)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, luxor_55_10828_device, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, luxor_55_10828_device, fdc_drq_w))
+ MB8876(config, m_fdc, 4_MHz_XTAL / 4);
+ m_fdc->intrq_wr_callback().set(FUNC(luxor_55_10828_device::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(luxor_55_10828_device::fdc_drq_w));
- MCFG_FLOPPY_DRIVE_ADD(MB8876_TAG":0", abc_floppies, "525ssdd", luxor_55_10828_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(MB8876_TAG":1", abc_floppies, "525ssdd", luxor_55_10828_device::floppy_formats)
-MACHINE_CONFIG_END
+ FLOPPY_CONNECTOR(config, m_floppy0, abc_floppies, "525ssdd", luxor_55_10828_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, abc_floppies, "525ssdd", luxor_55_10828_device::floppy_formats);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/abcbus/lux21046.cpp b/src/devices/bus/abcbus/lux21046.cpp
index 6d4b3dc7804..03f8ab22d5b 100644
--- a/src/devices/bus/abcbus/lux21046.cpp
+++ b/src/devices/bus/abcbus/lux21046.cpp
@@ -290,7 +290,8 @@ static const z80_daisy_config z80_daisy_chain[] =
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(luxor_55_21046_device::device_add_mconfig)
+void luxor_55_21046_device::device_add_mconfig(machine_config & config)
+{
Z80(config, m_maincpu, 16_MHz_XTAL / 4);
m_maincpu->set_daisy_config(z80_daisy_chain);
m_maincpu->set_addrmap(AS_PROGRAM, &luxor_55_21046_device::luxor_55_21046_mem);
@@ -304,40 +305,45 @@ MACHINE_CONFIG_START(luxor_55_21046_device::device_add_mconfig)
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(m_dma, z80dma_device, rdy_w))
-MACHINE_CONFIG_END
+ FD1793(config, m_fdc, 16_MHz_XTAL / 16);
+ m_fdc->intrq_wr_callback().set(FUNC(luxor_55_21046_device::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(m_dma, FUNC(z80dma_device::rdy_w));
+}
-MACHINE_CONFIG_START(abc830_device::device_add_mconfig)
+void abc830_device::device_add_mconfig(machine_config &config)
+{
luxor_55_21046_device::device_add_mconfig(config);
- MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "525ssdd", luxor_55_21046_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, "525ssdd", luxor_55_21046_device::floppy_formats)
-MACHINE_CONFIG_END
+ FLOPPY_CONNECTOR(config, m_floppy0, abc_floppies, "525ssdd", luxor_55_21046_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, abc_floppies, "525ssdd", luxor_55_21046_device::floppy_formats);
+}
-MACHINE_CONFIG_START(abc832_device::device_add_mconfig)
+void abc832_device::device_add_mconfig(machine_config &config)
+{
luxor_55_21046_device::device_add_mconfig(config);
- MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "525qd", luxor_55_21046_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, "525qd", luxor_55_21046_device::floppy_formats)
-MACHINE_CONFIG_END
+ FLOPPY_CONNECTOR(config, m_floppy0, abc_floppies, "525qd", luxor_55_21046_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, abc_floppies, "525qd", luxor_55_21046_device::floppy_formats);
+}
-MACHINE_CONFIG_START(abc834_device::device_add_mconfig)
+void abc834_device::device_add_mconfig(machine_config &config)
+{
luxor_55_21046_device::device_add_mconfig(config);
- MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "525qd", luxor_55_21046_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, "525qd", luxor_55_21046_device::floppy_formats)
-MACHINE_CONFIG_END
+ FLOPPY_CONNECTOR(config, m_floppy0, abc_floppies, "525qd", luxor_55_21046_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, abc_floppies, "525qd", luxor_55_21046_device::floppy_formats);
+}
-MACHINE_CONFIG_START(abc838_device::device_add_mconfig)
+void abc838_device::device_add_mconfig(machine_config &config)
+{
luxor_55_21046_device::device_add_mconfig(config);
- MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "8dsdd", luxor_55_21046_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, "8dsdd", luxor_55_21046_device::floppy_formats)
-MACHINE_CONFIG_END
+ FLOPPY_CONNECTOR(config, m_floppy0, abc_floppies, "8dsdd", luxor_55_21046_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, abc_floppies, "8dsdd", luxor_55_21046_device::floppy_formats);
+}
-MACHINE_CONFIG_START(abc850_floppy_device::device_add_mconfig)
+void abc850_floppy_device::device_add_mconfig(machine_config &config)
+{
luxor_55_21046_device::device_add_mconfig(config);
- MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":0", abc_floppies, "525qd", luxor_55_21046_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(SAB1793_TAG":1", abc_floppies, nullptr, luxor_55_21046_device::floppy_formats)
-MACHINE_CONFIG_END
+ FLOPPY_CONNECTOR(config, m_floppy0, abc_floppies, "525qd", luxor_55_21046_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, abc_floppies, nullptr, luxor_55_21046_device::floppy_formats);
+}
//-------------------------------------------------
@@ -708,11 +714,11 @@ luxor_55_21046_device::luxor_55_21046_device(const machine_config &mconfig, cons
luxor_55_21046_device::luxor_55_21046_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, type, tag, owner, clock),
device_abcbus_card_interface(mconfig, *this),
+ m_floppy0(*this, SAB1793_TAG":0"),
+ m_floppy1(*this, SAB1793_TAG":1"),
m_maincpu(*this, Z80_TAG),
m_dma(*this, Z80DMA_TAG),
m_fdc(*this, SAB1793_TAG),
- m_floppy0(*this, SAB1793_TAG":0"),
- m_floppy1(*this, SAB1793_TAG":1"),
m_floppy(nullptr),
m_sw1(*this, "SW1"),
m_sw2(*this, "SW2"),
diff --git a/src/devices/bus/abcbus/lux21046.h b/src/devices/bus/abcbus/lux21046.h
index c3f14ed47b3..6cf75a184fe 100644
--- a/src/devices/bus/abcbus/lux21046.h
+++ b/src/devices/bus/abcbus/lux21046.h
@@ -78,6 +78,9 @@ protected:
DECLARE_FLOPPY_FORMATS( floppy_formats );
+ required_device<floppy_connector> m_floppy0;
+ required_device<floppy_connector> m_floppy1;
+
private:
DECLARE_WRITE_LINE_MEMBER( dma_int_w );
@@ -101,8 +104,6 @@ private:
required_device<z80_device> m_maincpu;
required_device<z80dma_device> m_dma;
required_device<fd1793_device> m_fdc;
- required_device<floppy_connector> m_floppy0;
- required_device<floppy_connector> m_floppy1;
floppy_image_device *m_floppy;
required_ioport m_sw1;
required_ioport m_sw2;
diff --git a/src/devices/bus/adamnet/fdc.cpp b/src/devices/bus/adamnet/fdc.cpp
index 3cc5d8ea1bf..b0e5315b277 100644
--- a/src/devices/bus/adamnet/fdc.cpp
+++ b/src/devices/bus/adamnet/fdc.cpp
@@ -127,16 +127,17 @@ static void adam_fdc_floppies(device_slot_interface &device)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(adam_fdc_device::device_add_mconfig)
- MCFG_DEVICE_ADD(M6801_TAG, M6801, 4_MHz_XTAL)
- MCFG_DEVICE_PROGRAM_MAP(adam_fdc_mem)
- MCFG_DEVICE_IO_MAP(adam_fdc_io)
+void adam_fdc_device::device_add_mconfig(machine_config &config)
+{
+ M6801(config, m_maincpu, 4_MHz_XTAL),
+ m_maincpu->set_addrmap(AS_PROGRAM, &adam_fdc_device::adam_fdc_mem);
+ m_maincpu->set_addrmap(AS_IO, &adam_fdc_device::adam_fdc_io);
- MCFG_DEVICE_ADD(WD2793_TAG, WD2793, 4_MHz_XTAL / 4)
- MCFG_WD_FDC_INTRQ_CALLBACK(INPUTLINE(M6801_TAG, INPUT_LINE_NMI))
+ WD2793(config, m_fdc, 4_MHz_XTAL / 4);
+ m_fdc->intrq_wr_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
- MCFG_FLOPPY_DRIVE_ADD(WD2793_TAG":0", adam_fdc_floppies, "525ssdd", adam_fdc_device::floppy_formats)
-MACHINE_CONFIG_END
+ FLOPPY_CONNECTOR(config, m_connector, adam_fdc_floppies, "525ssdd", adam_fdc_device::floppy_formats);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/bbc/1mhzbus/opus3.cpp b/src/devices/bus/bbc/1mhzbus/opus3.cpp
index ff1c6513247..ed204430bbe 100644
--- a/src/devices/bus/bbc/1mhzbus/opus3.cpp
+++ b/src/devices/bus/bbc/1mhzbus/opus3.cpp
@@ -81,18 +81,17 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(bbc_opus3_device::device_add_mconfig)
+void bbc_opus3_device::device_add_mconfig(machine_config &config)
+{
/* fdc */
- MCFG_DEVICE_ADD("wd1770", WD1770, 16_MHz_XTAL / 2)
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, bbc_opus3_device, fdc_drq_w))
- MCFG_FLOPPY_DRIVE_ADD("wd1770:0", bbc_floppies, "525qd", floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("wd1770:1", bbc_floppies, nullptr, floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
+ WD1770(config, m_fdc, 16_MHz_XTAL / 2);
+ m_fdc->drq_wr_callback().set(FUNC(bbc_opus3_device::fdc_drq_w));
+ FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies, "525qd", floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies, "525qd", floppy_formats).enable_sound(true);
/* ram disk */
- RAM(config, "ramdisk").set_default_size("512K").set_extra_options("256K").set_default_value(0);
-MACHINE_CONFIG_END
+ RAM(config, m_ramdisk).set_default_size("512K").set_extra_options("256K").set_default_value(0);
+}
const tiny_rom_entry *bbc_opus3_device::device_rom_region() const
{
diff --git a/src/devices/bus/bbc/fdc/acorn.cpp b/src/devices/bus/bbc/fdc/acorn.cpp
index de7f0bd032f..21d4f710637 100644
--- a/src/devices/bus/bbc/fdc/acorn.cpp
+++ b/src/devices/bus/bbc/fdc/acorn.cpp
@@ -121,26 +121,24 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(bbc_acorn8271_device::device_add_mconfig)
+void bbc_acorn8271_device::device_add_mconfig(machine_config & config)
+{
I8271(config, m_fdc, 0);
m_fdc->intrq_wr_callback().set(FUNC(bbc_acorn8271_device::fdc_intrq_w));
m_fdc->hdl_wr_callback().set(FUNC(bbc_acorn8271_device::motor_w));
m_fdc->opt_wr_callback().set(FUNC(bbc_acorn8271_device::side_w));
- MCFG_FLOPPY_DRIVE_ADD("i8271:0", bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("i8271:1", bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(bbc_acorn1770_device::device_add_mconfig)
- MCFG_DEVICE_ADD("wd1770", WD1770, XTAL(16'000'000) / 2)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, bbc_acorn1770_device, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, bbc_acorn1770_device, fdc_drq_w))
- MCFG_FLOPPY_DRIVE_ADD("wd1770:0", bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("wd1770:1", bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
+ FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true);
+}
+
+void bbc_acorn1770_device::device_add_mconfig(machine_config & config)
+{
+ WD1770(config, m_fdc, XTAL(16'000'000) / 2);
+ m_fdc->intrq_wr_callback().set(FUNC(bbc_acorn1770_device::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(bbc_acorn1770_device::fdc_drq_w));
+ FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true);
+}
const tiny_rom_entry *bbc_acorn8271_device::device_rom_region() const
diff --git a/src/devices/bus/bbc/fdc/cumana.cpp b/src/devices/bus/bbc/fdc/cumana.cpp
index 0dcc70058dd..5639fef1976 100644
--- a/src/devices/bus/bbc/fdc/cumana.cpp
+++ b/src/devices/bus/bbc/fdc/cumana.cpp
@@ -59,27 +59,25 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(bbc_cumana1_device::device_add_mconfig)
- MCFG_DEVICE_ADD("mb8877a", MB8877, 16_MHz_XTAL / 16)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, bbc_cumanafdc_device, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, bbc_cumanafdc_device, fdc_drq_w))
- MCFG_WD_FDC_HLD_CALLBACK(WRITELINE(*this, bbc_cumanafdc_device, motor_w))
- MCFG_FLOPPY_DRIVE_ADD("mb8877a:0", bbc_floppies_525, "525qd", floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("mb8877a:1", bbc_floppies_525, "525qd", floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(bbc_cumana2_device::device_add_mconfig)
- MCFG_DEVICE_ADD("mb8877a", MB8877, 16_MHz_XTAL / 16)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, bbc_cumanafdc_device, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, bbc_cumanafdc_device, fdc_drq_w))
- MCFG_WD_FDC_HLD_CALLBACK(WRITELINE(*this, bbc_cumanafdc_device, motor_w))
- MCFG_FLOPPY_DRIVE_ADD("mb8877a:0", bbc_floppies_525, "525qd", floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("mb8877a:1", bbc_floppies_525, "525qd", floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
+void bbc_cumana1_device::device_add_mconfig(machine_config &config)
+{
+ MB8877(config, m_fdc, 16_MHz_XTAL / 16);
+ m_fdc->intrq_wr_callback().set(FUNC(bbc_cumanafdc_device::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(bbc_cumanafdc_device::fdc_drq_w));
+ m_fdc->hld_wr_callback().set(FUNC(bbc_cumanafdc_device::motor_w));
+ FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
+}
+
+void bbc_cumana2_device::device_add_mconfig(machine_config &config)
+{
+ MB8877(config, m_fdc, 16_MHz_XTAL / 16);
+ m_fdc->intrq_wr_callback().set(FUNC(bbc_cumanafdc_device::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(bbc_cumanafdc_device::fdc_drq_w));
+ m_fdc->hld_wr_callback().set(FUNC(bbc_cumanafdc_device::motor_w));
+ FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
+}
const tiny_rom_entry *bbc_cumana1_device::device_rom_region() const
{
@@ -103,10 +101,10 @@ const tiny_rom_entry *bbc_cumana2_device::device_rom_region() const
bbc_cumanafdc_device::bbc_cumanafdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, type, tag, owner, clock),
device_bbc_fdc_interface(mconfig, *this),
- m_dfs_rom(*this, "dfs_rom"),
m_fdc(*this, "mb8877a"),
m_floppy0(*this, "mb8877a:0"),
- m_floppy1(*this, "mb8877a:1")
+ m_floppy1(*this, "mb8877a:1"),
+ m_dfs_rom(*this, "dfs_rom")
{
}
diff --git a/src/devices/bus/bbc/fdc/cumana.h b/src/devices/bus/bbc/fdc/cumana.h
index aebe998b8c6..9b0c90c0630 100644
--- a/src/devices/bus/bbc/fdc/cumana.h
+++ b/src/devices/bus/bbc/fdc/cumana.h
@@ -44,12 +44,13 @@ protected:
bool m_invert;
-private:
- required_memory_region m_dfs_rom;
required_device<mb8877_device> m_fdc;
required_device<floppy_connector> m_floppy0;
optional_device<floppy_connector> m_floppy1;
+private:
+ required_memory_region m_dfs_rom;
+
int m_drive_control;
int m_fdc_ie;
};
diff --git a/src/devices/bus/bbc/fdc/cv1797.cpp b/src/devices/bus/bbc/fdc/cv1797.cpp
index d29b9d80a7d..d1baf8204d9 100644
--- a/src/devices/bus/bbc/fdc/cv1797.cpp
+++ b/src/devices/bus/bbc/fdc/cv1797.cpp
@@ -52,16 +52,15 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(bbc_cv1797_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fd1797", FD1797, 8_MHz_XTAL / 8)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, bbc_cv1797_device, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, bbc_cv1797_device, fdc_drq_w))
- MCFG_WD_FDC_HLD_CALLBACK(WRITELINE(*this, bbc_cv1797_device, motor_w))
- MCFG_FLOPPY_DRIVE_ADD("fd1797:0", bbc_floppies_525, "525qd", floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("fd1797:1", bbc_floppies_525, "525qd", floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
+void bbc_cv1797_device::device_add_mconfig(machine_config &config)
+{
+ FD1797(config, m_fdc, 8_MHz_XTAL / 8);
+ m_fdc->intrq_wr_callback().set(FUNC(bbc_cv1797_device::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(bbc_cv1797_device::fdc_drq_w));
+ m_fdc->hld_wr_callback().set(FUNC(bbc_cv1797_device::motor_w));
+ FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
+}
const tiny_rom_entry *bbc_cv1797_device::device_rom_region() const
{
diff --git a/src/devices/bus/bbc/fdc/opus.cpp b/src/devices/bus/bbc/fdc/opus.cpp
index 294d14c5e4b..710b8ebfbb5 100644
--- a/src/devices/bus/bbc/fdc/opus.cpp
+++ b/src/devices/bus/bbc/fdc/opus.cpp
@@ -89,43 +89,40 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(bbc_opus8272_device::device_add_mconfig)
- MCFG_I8272A_ADD("i8272", true)
- MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(*this, bbc_opus8272_device, fdc_intrq_w))
- MCFG_FLOPPY_DRIVE_ADD("i8272:0", bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("i8272:1", bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(bbc_opus2791_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", WD2791, 16_MHz_XTAL / 16)
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, bbc_opusfdc_device, fdc_drq_w))
- MCFG_WD_FDC_HLD_CALLBACK(WRITELINE(*this, bbc_opusfdc_device, motor_w))
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(bbc_opus2793_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", WD2793, 16_MHz_XTAL / 16)
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, bbc_opusfdc_device, fdc_drq_w))
- MCFG_WD_FDC_HLD_CALLBACK(WRITELINE(*this, bbc_opusfdc_device, motor_w))
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(bbc_opus1770_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", WD1770, 16_MHz_XTAL / 2)
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, bbc_opusfdc_device, fdc_drq_w))
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
+void bbc_opus8272_device::device_add_mconfig(machine_config &config)
+{
+ I8272A(config, m_fdc, 0);
+ m_fdc->set_ready_line_connected(true);
+ m_fdc->intrq_wr_callback().set(FUNC(bbc_opus8272_device::fdc_intrq_w));
+ FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
+}
+
+void bbc_opus2791_device::device_add_mconfig(machine_config &config)
+{
+ WD2791(config, m_fdc, 16_MHz_XTAL / 16);
+ m_fdc->drq_wr_callback().set(FUNC(bbc_opusfdc_device::fdc_drq_w));
+ m_fdc->hld_wr_callback().set(FUNC(bbc_opusfdc_device::motor_w));
+ FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
+}
+
+void bbc_opus2793_device::device_add_mconfig(machine_config &config)
+{
+ WD2793(config, m_fdc, 16_MHz_XTAL / 16);
+ m_fdc->drq_wr_callback().set(FUNC(bbc_opusfdc_device::fdc_drq_w));
+ m_fdc->hld_wr_callback().set(FUNC(bbc_opusfdc_device::motor_w));
+ FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
+}
+
+void bbc_opus1770_device::device_add_mconfig(machine_config &config)
+{
+ WD1770(config, m_fdc, 16_MHz_XTAL / 16);
+ m_fdc->drq_wr_callback().set(FUNC(bbc_opusfdc_device::fdc_drq_w));
+ FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
+}
const tiny_rom_entry *bbc_opus8272_device::device_rom_region() const
{
@@ -169,10 +166,10 @@ bbc_opus8272_device::bbc_opus8272_device(const machine_config &mconfig, const ch
bbc_opusfdc_device::bbc_opusfdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, type, tag, owner, clock),
device_bbc_fdc_interface(mconfig, *this),
- m_dfs_rom(*this, "dfs_rom"),
m_fdc(*this, "fdc"),
m_floppy0(*this, "fdc:0"),
- m_floppy1(*this, "fdc:1")
+ m_floppy1(*this, "fdc:1"),
+ m_dfs_rom(*this, "dfs_rom")
{
}
diff --git a/src/devices/bus/bbc/fdc/opus.h b/src/devices/bus/bbc/fdc/opus.h
index 6b145754f0b..64ed0c61fe6 100644
--- a/src/devices/bus/bbc/fdc/opus.h
+++ b/src/devices/bus/bbc/fdc/opus.h
@@ -71,12 +71,13 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
-private:
- required_memory_region m_dfs_rom;
required_device<wd_fdc_device_base> m_fdc;
required_device<floppy_connector> m_floppy0;
optional_device<floppy_connector> m_floppy1;
+private:
+ required_memory_region m_dfs_rom;
+
int m_drive_control;
};
diff --git a/src/devices/bus/bbc/fdc/watford.cpp b/src/devices/bus/bbc/fdc/watford.cpp
index 053f3854928..10c56e9cfce 100644
--- a/src/devices/bus/bbc/fdc/watford.cpp
+++ b/src/devices/bus/bbc/fdc/watford.cpp
@@ -65,25 +65,23 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(bbc_weddb2_device::device_add_mconfig)
- MCFG_DEVICE_ADD("wd1772", WD1772, 16_MHz_XTAL / 2)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, bbc_weddb2_device, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, bbc_weddb2_device, fdc_drq_w))
- MCFG_FLOPPY_DRIVE_ADD("wd1772:0", bbc_floppies_525, "525qd", floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("wd1772:1", bbc_floppies_525, "525qd", floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
-
-MACHINE_CONFIG_START(bbc_weddb3_device::device_add_mconfig)
- MCFG_DEVICE_ADD("wd1770", WD1770, 16_MHz_XTAL / 2)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, bbc_weddb3_device, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, bbc_weddb3_device, fdc_drq_w))
- MCFG_FLOPPY_DRIVE_ADD("wd1770:0", bbc_floppies_525, "525qd", floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("wd1770:1", bbc_floppies_525, "525qd", floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
+void bbc_weddb2_device::device_add_mconfig(machine_config &config)
+{
+ WD1772(config, m_fdc, 16_MHz_XTAL / 2);
+ m_fdc->intrq_wr_callback().set(FUNC(bbc_weddb2_device::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(bbc_weddb2_device::fdc_drq_w));
+ FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
+}
+
+void bbc_weddb3_device::device_add_mconfig(machine_config &config)
+{
+ WD1770(config, m_fdc, 16_MHz_XTAL / 2);
+ m_fdc->intrq_wr_callback().set(FUNC(bbc_weddb3_device::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(bbc_weddb3_device::fdc_drq_w));
+ FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
+}
const tiny_rom_entry *bbc_weddb2_device::device_rom_region() const
{
diff --git a/src/devices/bus/bml3/bml3mp1802.cpp b/src/devices/bus/bml3/bml3mp1802.cpp
index 65bbed1f269..85668d01f39 100644
--- a/src/devices/bus/bml3/bml3mp1802.cpp
+++ b/src/devices/bus/bml3/bml3mp1802.cpp
@@ -54,15 +54,16 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(bml3bus_mp1802_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", MB8866, 1_MHz_XTAL)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, bml3bus_mp1802_device, bml3_wd17xx_intrq_w))
-
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", mp1802_floppies, "dd", floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", mp1802_floppies, "dd", floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:2", mp1802_floppies, "", floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:3", mp1802_floppies, "", floppy_image_device::default_floppy_formats)
-MACHINE_CONFIG_END
+void bml3bus_mp1802_device::device_add_mconfig(machine_config &config)
+{
+ MB8866(config, m_fdc, 1_MHz_XTAL);
+ m_fdc->intrq_wr_callback().set(FUNC(bml3bus_mp1802_device::bml3_wd17xx_intrq_w));
+
+ FLOPPY_CONNECTOR(config, m_floppy0, mp1802_floppies, "dd", floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, mp1802_floppies, "dd", floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy2, mp1802_floppies, "", floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy3, mp1802_floppies, "", floppy_image_device::default_floppy_formats);
+}
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/cbmiec/c1581.cpp b/src/devices/bus/cbmiec/c1581.cpp
index 9babb61f69c..190cab5cd07 100644
--- a/src/devices/bus/cbmiec/c1581.cpp
+++ b/src/devices/bus/cbmiec/c1581.cpp
@@ -280,8 +280,8 @@ MACHINE_CONFIG_START(c1581_device::device_add_mconfig)
MCFG_MOS6526_PB_INPUT_CALLBACK(READ8(*this, c1581_device, cia_pb_r))
MCFG_MOS6526_PB_OUTPUT_CALLBACK(WRITE8(*this, c1581_device, cia_pb_w))
- MCFG_DEVICE_ADD(WD1772_TAG, WD1772, 16_MHz_XTAL / 2)
- MCFG_FLOPPY_DRIVE_ADD_FIXED(WD1772_TAG":0", c1581_floppies, "35dd", c1581_device::floppy_formats)
+ WD1772(config, m_fdc, 16_MHz_XTAL / 2);
+ FLOPPY_CONNECTOR(config, WD1772_TAG":0", c1581_floppies, "35dd", c1581_device::floppy_formats, true);
MACHINE_CONFIG_END
diff --git a/src/devices/bus/cgenie/expansion/floppy.cpp b/src/devices/bus/cgenie/expansion/floppy.cpp
index 9fedbebc327..021f00e9f8d 100644
--- a/src/devices/bus/cgenie/expansion/floppy.cpp
+++ b/src/devices/bus/cgenie/expansion/floppy.cpp
@@ -74,8 +74,8 @@ const tiny_rom_entry *cgenie_fdc_device::device_rom_region() const
MACHINE_CONFIG_START(cgenie_fdc_device::device_add_mconfig)
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer", cgenie_fdc_device, timer_callback, attotime::from_msec(25))
- MCFG_DEVICE_ADD("fd1793", FD1793, 1_MHz_XTAL)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, cgenie_fdc_device, intrq_w))
+ FD1793(config, m_fdc, 1_MHz_XTAL);
+ m_fdc->intrq_wr_callback().set(FUNC(cgenie_fdc_device::intrq_w));
MCFG_FLOPPY_DRIVE_ADD("fd1793:0", cgenie_floppies, "ssdd", cgenie_fdc_device::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fd1793:1", cgenie_floppies, "ssdd", cgenie_fdc_device::floppy_formats)
diff --git a/src/devices/bus/coco/coco_fdc.cpp b/src/devices/bus/coco/coco_fdc.cpp
index fc5247ab269..c8a6535c83a 100644
--- a/src/devices/bus/coco/coco_fdc.cpp
+++ b/src/devices/bus/coco/coco_fdc.cpp
@@ -126,24 +126,21 @@ static void coco_fdc_floppies(device_slot_interface &device)
device.option_add("qd", FLOPPY_525_QD);
}
-MACHINE_CONFIG_START(coco_fdc_device_base::device_add_mconfig)
- MCFG_DEVICE_ADD(WD_TAG, WD1773, 8_MHz_XTAL)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, coco_fdc_device_base, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, coco_fdc_device_base, fdc_drq_w))
-
- MCFG_FLOPPY_DRIVE_ADD(WD_TAG ":0", coco_fdc_floppies, "qd", coco_fdc_device_base::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD(WD_TAG ":1", coco_fdc_floppies, "qd", coco_fdc_device_base::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD(WD_TAG ":2", coco_fdc_floppies, nullptr, coco_fdc_device_base::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD(WD_TAG ":3", coco_fdc_floppies, nullptr, coco_fdc_device_base::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-
- MCFG_DEVICE_ADD(DISTO_TAG, MSM6242, 32.768_kHz_XTAL)
+void coco_fdc_device_base::device_add_mconfig(machine_config &config)
+{
+ WD1773(config, m_wd17xx, 8_MHz_XTAL);
+ m_wd17xx->intrq_wr_callback().set(FUNC(coco_fdc_device_base::fdc_intrq_w));
+ m_wd17xx->drq_wr_callback().set(FUNC(coco_fdc_device_base::fdc_drq_w));
+
+ FLOPPY_CONNECTOR(config, m_floppies[0], coco_fdc_floppies, "qd", coco_fdc_device_base::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppies[1], coco_fdc_floppies, "qd", coco_fdc_device_base::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppies[2], coco_fdc_floppies, nullptr, coco_fdc_device_base::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppies[3], coco_fdc_floppies, nullptr, coco_fdc_device_base::floppy_formats).enable_sound(true);
+
+ MSM6242(config, m_disto_msm6242, 32.768_kHz_XTAL);
DS1315(config, CLOUD9_TAG, 0);
-MACHINE_CONFIG_END
+}
//***************************************************************************
diff --git a/src/devices/bus/comx35/fdc.cpp b/src/devices/bus/comx35/fdc.cpp
index 32e0c41cc0b..27246c37333 100644
--- a/src/devices/bus/comx35/fdc.cpp
+++ b/src/devices/bus/comx35/fdc.cpp
@@ -96,12 +96,13 @@ static void comx_fd_floppies(device_slot_interface &device)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(comx_fd_device::device_add_mconfig)
- MCFG_DEVICE_ADD(WD1770_TAG, WD1770, 8_MHz_XTAL)
+void comx_fd_device::device_add_mconfig(machine_config &config)
+{
+ WD1770(config, m_fdc, 8_MHz_XTAL);
- MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":0", comx_fd_floppies, "525sd35t", comx_fd_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":1", comx_fd_floppies, nullptr, comx_fd_device::floppy_formats)
-MACHINE_CONFIG_END
+ FLOPPY_CONNECTOR(config, m_floppy0, comx_fd_floppies, "525sd35t", comx_fd_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, comx_fd_floppies, nullptr, comx_fd_device::floppy_formats);
+}
diff --git a/src/devices/bus/electron/cart/ap34.cpp b/src/devices/bus/electron/cart/ap34.cpp
index 911bd916ab5..30847c55aa4 100644
--- a/src/devices/bus/electron/cart/ap34.cpp
+++ b/src/devices/bus/electron/cart/ap34.cpp
@@ -44,14 +44,13 @@ void ap34_floppies(device_slot_interface &device)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(electron_ap34_device::device_add_mconfig)
+void electron_ap34_device::device_add_mconfig(machine_config &config)
+{
/* fdc */
- MCFG_DEVICE_ADD("fdc", WD1770, 16_MHz_XTAL / 2)
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", ap34_floppies, "525qd", electron_ap34_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", ap34_floppies, nullptr, electron_ap34_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
+ WD1770(config, m_fdc, 16_MHz_XTAL / 2);
+ FLOPPY_CONNECTOR(config, m_floppy0, ap34_floppies, "525qd", electron_ap34_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, ap34_floppies, nullptr, electron_ap34_device::floppy_formats).enable_sound(true);
+}
//**************************************************************************
// LIVE DEVICE
diff --git a/src/devices/bus/electron/cart/cumana.cpp b/src/devices/bus/electron/cart/cumana.cpp
index 3eebc5b81b9..80ebeab394b 100644
--- a/src/devices/bus/electron/cart/cumana.cpp
+++ b/src/devices/bus/electron/cart/cumana.cpp
@@ -45,17 +45,16 @@ void cumana_floppies(device_slot_interface &device)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(electron_cumana_device::device_add_mconfig)
+void electron_cumana_device::device_add_mconfig(machine_config &config)
+{
/* fdc */
- MCFG_DEVICE_ADD("fdc", FD1793, 16_MHz_XTAL / 16) // TODO: Not known whether DRQ and INTRQ are connected
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", cumana_floppies, "525qd", electron_cumana_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", cumana_floppies, nullptr, electron_cumana_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
+ FD1793(config, m_fdc, 16_MHz_XTAL / 16); // TODO: Not known whether DRQ and INTRQ are connected
+ FLOPPY_CONNECTOR(config, m_floppy0, cumana_floppies, "525qd", electron_cumana_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, cumana_floppies, nullptr, electron_cumana_device::floppy_formats).enable_sound(true);
/* rtc */
- MCFG_DEVICE_ADD("rtc", MC146818, 32.768_kHz_XTAL)
-MACHINE_CONFIG_END
+ MC146818(config, m_rtc, 32.768_kHz_XTAL);
+}
//**************************************************************************
// LIVE DEVICE
diff --git a/src/devices/bus/electron/cart/peg400.cpp b/src/devices/bus/electron/cart/peg400.cpp
index c1603cf4a01..8d92131aa04 100644
--- a/src/devices/bus/electron/cart/peg400.cpp
+++ b/src/devices/bus/electron/cart/peg400.cpp
@@ -41,15 +41,14 @@ void peg400_floppies(device_slot_interface &device)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(electron_peg400_device::device_add_mconfig)
+void electron_peg400_device::device_add_mconfig(machine_config &config)
+{
/* fdc */
- MCFG_DEVICE_ADD("fdc", WD1770, 16_MHz_XTAL / 2)
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, electron_peg400_device, fdc_drq_w))
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", peg400_floppies, "525qd", electron_peg400_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", peg400_floppies, nullptr, electron_peg400_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
+ WD1770(config, m_fdc, 16_MHz_XTAL / 2);
+ m_fdc->drq_wr_callback().set(FUNC(electron_peg400_device::fdc_drq_w));
+ FLOPPY_CONNECTOR(config, m_floppy0, peg400_floppies, "525qd", electron_peg400_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, peg400_floppies, nullptr, electron_peg400_device::floppy_formats).enable_sound(true);
+}
//**************************************************************************
// LIVE DEVICE
diff --git a/src/devices/bus/electron/cart/stlefs.cpp b/src/devices/bus/electron/cart/stlefs.cpp
index efeddd1a05f..83dbf998f2a 100644
--- a/src/devices/bus/electron/cart/stlefs.cpp
+++ b/src/devices/bus/electron/cart/stlefs.cpp
@@ -44,16 +44,15 @@ void stlefs_floppies(device_slot_interface &device)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(electron_stlefs_device::device_add_mconfig)
+void electron_stlefs_device::device_add_mconfig(machine_config &config)
+{
/* fdc */
- MCFG_DEVICE_ADD("fdc", WD1770, 16_MHz_XTAL / 2)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, electron_stlefs_device, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, electron_stlefs_device, fdc_drq_w))
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", stlefs_floppies, "525qd", electron_stlefs_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", stlefs_floppies, nullptr, electron_stlefs_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
+ WD1770(config, m_fdc, 16_MHz_XTAL / 2);
+ m_fdc->intrq_wr_callback().set(FUNC(electron_stlefs_device::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(electron_stlefs_device::fdc_drq_w));
+ FLOPPY_CONNECTOR(config, m_floppy0, stlefs_floppies, "525qd", electron_stlefs_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, stlefs_floppies, nullptr, electron_stlefs_device::floppy_formats).enable_sound(true);
+}
//**************************************************************************
// LIVE DEVICE
diff --git a/src/devices/bus/electron/plus3.cpp b/src/devices/bus/electron/plus3.cpp
index f2934f91779..532594eb5cf 100644
--- a/src/devices/bus/electron/plus3.cpp
+++ b/src/devices/bus/electron/plus3.cpp
@@ -67,12 +67,9 @@ ROM_END
MACHINE_CONFIG_START(electron_plus3_device::device_add_mconfig)
/* fdc */
- MCFG_DEVICE_ADD("fdc", WD1770, 16_MHz_XTAL / 2)
- MCFG_FLOPPY_DRIVE_ADD_FIXED("fdc:0", electron_floppies, "35dd", floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", electron_floppies, nullptr, floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-
+ WD1770(config, m_fdc, 16_MHz_XTAL / 2);
+ FLOPPY_CONNECTOR(config, m_floppy0, electron_floppies, "35dd", floppy_formats, true).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, electron_floppies, nullptr, floppy_formats).enable_sound(true);
/* pass-through */
MCFG_ELECTRON_PASSTHRU_EXPANSION_SLOT_ADD(nullptr)
diff --git a/src/devices/bus/ep64/exdos.cpp b/src/devices/bus/ep64/exdos.cpp
index 56ac2297a72..a4487db6ba4 100644
--- a/src/devices/bus/ep64/exdos.cpp
+++ b/src/devices/bus/ep64/exdos.cpp
@@ -103,14 +103,15 @@ static void ep64_exdos_floppies(device_slot_interface &device)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(ep64_exdos_device::device_add_mconfig)
- MCFG_DEVICE_ADD(WD1770_TAG, WD1770, 8_MHz_XTAL)
-
- MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":0", ep64_exdos_floppies, "35dd", ep64_exdos_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":1", ep64_exdos_floppies, nullptr, ep64_exdos_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":2", ep64_exdos_floppies, nullptr, ep64_exdos_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(WD1770_TAG":3", ep64_exdos_floppies, nullptr, ep64_exdos_device::floppy_formats)
-MACHINE_CONFIG_END
+void ep64_exdos_device::device_add_mconfig(machine_config &config)
+{
+ WD1770(config, m_fdc, 8_MHz_XTAL);
+
+ FLOPPY_CONNECTOR(config, m_floppy0, ep64_exdos_floppies, "35dd", ep64_exdos_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, ep64_exdos_floppies, nullptr, ep64_exdos_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy2, ep64_exdos_floppies, nullptr, ep64_exdos_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy3, ep64_exdos_floppies, nullptr, ep64_exdos_device::floppy_formats);
+}
//**************************************************************************
diff --git a/src/devices/bus/ieee488/c8280.cpp b/src/devices/bus/ieee488/c8280.cpp
index 5572f4c8890..51293bda1d7 100644
--- a/src/devices/bus/ieee488/c8280.cpp
+++ b/src/devices/bus/ieee488/c8280.cpp
@@ -311,11 +311,11 @@ MACHINE_CONFIG_START(c8280_device::device_add_mconfig)
MCFG_DEVICE_ADD(M6502_FDC_TAG, M6502, XTAL(12'000'000)/8)
MCFG_DEVICE_PROGRAM_MAP(c8280_fdc_mem)
- MCFG_DEVICE_ADD(WD1797_TAG, FD1797, XTAL(12'000'000)/6)
- MCFG_WD_FDC_INTRQ_CALLBACK(INPUTLINE(M6502_FDC_TAG, M6502_IRQ_LINE))
- MCFG_WD_FDC_DRQ_CALLBACK(INPUTLINE(M6502_FDC_TAG, M6502_SET_OVERFLOW))
- MCFG_FLOPPY_DRIVE_ADD(WD1797_TAG ":0", c8280_floppies, "8dsdd", c8280_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(WD1797_TAG ":1", c8280_floppies, "8dsdd", c8280_device::floppy_formats)
+ FD1797(config, m_fdc, XTAL(12'000'000)/6);
+ m_fdc->intrq_wr_callback().set_inputline(m_fdccpu, M6502_IRQ_LINE);
+ m_fdc->drq_wr_callback().set_inputline(m_fdccpu, M6502_SET_OVERFLOW);
+ FLOPPY_CONNECTOR(config, m_floppy0, c8280_floppies, "8dsdd", c8280_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, c8280_floppies, "8dsdd", c8280_device::floppy_formats);
MACHINE_CONFIG_END
diff --git a/src/devices/bus/ieee488/hp9122c.cpp b/src/devices/bus/ieee488/hp9122c.cpp
index 794e8a36fc2..ca4da9a3814 100644
--- a/src/devices/bus/ieee488/hp9122c.cpp
+++ b/src/devices/bus/ieee488/hp9122c.cpp
@@ -372,9 +372,9 @@ MACHINE_CONFIG_START(hp9122c_device::device_add_mconfig)
// will not work
MCFG_QUANTUM_PERFECT_CPU("cpu")
- MCFG_DEVICE_ADD("mb8876", MB8876, 8_MHz_XTAL / 4)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, hp9122c_device, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this,hp9122c_device, fdc_drq_w))
+ MB8876(config, m_fdc, 8_MHz_XTAL / 4);
+ m_fdc->intrq_wr_callback().set(FUNC(hp9122c_device::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(hp9122c_device::fdc_drq_w));
I8291A(config, m_i8291a, XTAL(2'000'000));
m_i8291a->eoi_write().set(FUNC(hp9122c_device::i8291a_eoi_w));
diff --git a/src/devices/bus/isa/mc1502_fdc.cpp b/src/devices/bus/isa/mc1502_fdc.cpp
index 265ad34b140..1b04c6be91e 100644
--- a/src/devices/bus/isa/mc1502_fdc.cpp
+++ b/src/devices/bus/isa/mc1502_fdc.cpp
@@ -52,13 +52,14 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(mc1502_fdc_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", FD1793, 16_MHz_XTAL / 16)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, mc1502_fdc_device, mc1502_fdc_irq_drq))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, mc1502_fdc_device, mc1502_fdc_irq_drq))
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", mc1502_floppies, "525qd", mc1502_fdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", mc1502_floppies, "525qd", mc1502_fdc_device::floppy_formats)
-MACHINE_CONFIG_END
+void mc1502_fdc_device::device_add_mconfig(machine_config &config)
+{
+ FD1793(config, m_fdc, 16_MHz_XTAL / 16);
+ m_fdc->intrq_wr_callback().set(FUNC(mc1502_fdc_device::mc1502_fdc_irq_drq));
+ m_fdc->drq_wr_callback().set(FUNC(mc1502_fdc_device::mc1502_fdc_irq_drq));
+ FLOPPY_CONNECTOR(config, "fdc:0", mc1502_floppies, "525qd", mc1502_fdc_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:1", mc1502_floppies, "525qd", mc1502_fdc_device::floppy_formats);
+}
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/isa/myb3k_fdc.cpp b/src/devices/bus/isa/myb3k_fdc.cpp
index ce197ce2ec7..0a2a33b4a5b 100644
--- a/src/devices/bus/isa/myb3k_fdc.cpp
+++ b/src/devices/bus/isa/myb3k_fdc.cpp
@@ -97,33 +97,36 @@ static void myb3k_8inch_floppies(device_slot_interface &device)
// device_add_mconfig - add device configuration
//-------------------------------------------------
/* */
-MACHINE_CONFIG_START(isa8_myb3k_fdc4710_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", MB8876, XTAL(15'974'400) / 8) /* From StepOne schematics */
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, isa8_myb3k_fdc4710_device, irq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, isa8_myb3k_fdc4710_device, drq_w))
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", myb3k_sd_floppies, "525sd", isa8_myb3k_fdc4710_device::myb3k_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", myb3k_sd_floppies, "525sd", isa8_myb3k_fdc4710_device::myb3k_floppy_formats)
-MACHINE_CONFIG_END
-
-/* Main difference from fdc4710 is that a Hitachi HA16632AP has replaced the descrete VFO enabling 720Kb disks */
-MACHINE_CONFIG_START(isa8_myb3k_fdc4711_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", FD1791, XTAL(15'974'400) / 16)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, isa8_myb3k_fdc4711_device, irq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, isa8_myb3k_fdc4711_device, drq_w))
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", myb3k_qd_floppies, "525qd", isa8_myb3k_fdc4711_device::myb3k_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", myb3k_qd_floppies, "525qd", isa8_myb3k_fdc4711_device::myb3k_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:2", myb3k_qd_floppies, "525qd", isa8_myb3k_fdc4711_device::myb3k_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:3", myb3k_qd_floppies, "525qd", isa8_myb3k_fdc4711_device::myb3k_floppy_formats)
-MACHINE_CONFIG_END
+void isa8_myb3k_fdc4710_device::device_add_mconfig(machine_config &config)
+{
+ MB8876(config, m_fdc, XTAL(15'974'400) / 8); /* From StepOne schematics */
+ m_fdc->intrq_wr_callback().set(FUNC(isa8_myb3k_fdc4710_device::irq_w));
+ m_fdc->drq_wr_callback().set(FUNC(isa8_myb3k_fdc4710_device::drq_w));
+ FLOPPY_CONNECTOR(config, m_fdd0, myb3k_sd_floppies, "525sd", isa8_myb3k_fdc4710_device::myb3k_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_fdd1, myb3k_sd_floppies, "525sd", isa8_myb3k_fdc4710_device::myb3k_floppy_formats);
+}
+
+/* Main difference from fdc4710 is that a Hitachi HA16632AP has replaced the discrete VFO enabling 720Kb disks */
+void isa8_myb3k_fdc4711_device::device_add_mconfig(machine_config &config)
+{
+ FD1791(config, m_fdc, XTAL(15'974'400) / 16);
+ m_fdc->intrq_wr_callback().set(FUNC(isa8_myb3k_fdc4711_device::irq_w));
+ m_fdc->drq_wr_callback().set(FUNC(isa8_myb3k_fdc4711_device::drq_w));
+ FLOPPY_CONNECTOR(config, m_fdd0, myb3k_qd_floppies, "525qd", isa8_myb3k_fdc4711_device::myb3k_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_fdd1, myb3k_qd_floppies, "525qd", isa8_myb3k_fdc4711_device::myb3k_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_fdd2, myb3k_qd_floppies, "525qd", isa8_myb3k_fdc4711_device::myb3k_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_fdd3, myb3k_qd_floppies, "525qd", isa8_myb3k_fdc4711_device::myb3k_floppy_formats);
+}
#if 0
-MACHINE_CONFIG_START(isa8_myb3k_fdc4712_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", FD1791, XTAL(15'974'400) / 8)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, isa8_myb3k_fdc4712_device, irq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, isa8_myb3k_fdc4712_device, drq_w))
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", myb3k_8inch_floppies, "8dsdd", isa8_myb3k_fdc4712_device::myb3k_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", myb3k_8inch_floppies, "8dsdd", isa8_myb3k_fdc4712_device::myb3k_floppy_formats)
-MACHINE_CONFIG_END
+void isa8_myb3k_fdc4712_device::device_add_mconfig(machine_config &config)
+{
+ FD1791(config, m_fdc, XTAL(15'974'400) / 8);
+ m_fdc->intrq_wr_callback().set(FUNC(isa8_myb3k_fdc4712_device::irq_w));
+ m_fdc->drq_wr_callback().set(FUNC(isa8_myb3k_fdc4712_device::drq_w));
+ FLOPPY_CONNECTOR(config, m_fdd0, myb3k_8inch_floppies, "8dsdd", isa8_myb3k_fdc4712_device::myb3k_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_fdd1, myb3k_8inch_floppies, "8dsdd", isa8_myb3k_fdc4712_device::myb3k_floppy_formats);
+}
#endif
//**************************************************************************
diff --git a/src/devices/bus/isa/p1_fdc.cpp b/src/devices/bus/isa/p1_fdc.cpp
index 1d25e4af422..df53cdb7629 100644
--- a/src/devices/bus/isa/p1_fdc.cpp
+++ b/src/devices/bus/isa/p1_fdc.cpp
@@ -62,13 +62,14 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(p1_fdc_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", FD1793, 16_MHz_XTAL / 16)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, p1_fdc_device, p1_fdc_irq_drq))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, p1_fdc_device, p1_fdc_irq_drq))
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", poisk1_floppies, "525qd", p1_fdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", poisk1_floppies, "525qd", p1_fdc_device::floppy_formats)
-MACHINE_CONFIG_END
+void p1_fdc_device::device_add_mconfig(machine_config &config)
+{
+ FD1793(config, m_fdc, 16_MHz_XTAL / 16);
+ m_fdc->intrq_wr_callback().set(FUNC(p1_fdc_device::p1_fdc_irq_drq));
+ m_fdc->drq_wr_callback().set(FUNC(p1_fdc_device::p1_fdc_irq_drq));
+ FLOPPY_CONNECTOR(config, "fdc:0", poisk1_floppies, "525qd", p1_fdc_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:1", poisk1_floppies, "525qd", p1_fdc_device::floppy_formats);
+}
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/msx_cart/disk.cpp b/src/devices/bus/msx_cart/disk.cpp
index f4f6b9c32aa..f66495e1cd8 100644
--- a/src/devices/bus/msx_cart/disk.cpp
+++ b/src/devices/bus/msx_cart/disk.cpp
@@ -202,8 +202,8 @@ MACHINE_CONFIG_START(msx_cart_vy0010_device::device_add_mconfig)
// HLT pulled high
// SSO/-ENMF + -DDEN + ENP + -5/8 - pulled low
// READY inverted in VY-0010 cartridge and pulled low on VY-0010/VY-0011 floppy drive
- MCFG_DEVICE_ADD("fdc", WD2793, 4_MHz_XTAL / 4)
- MCFG_WD_FDC_FORCE_READY
+ WD2793(config, m_fdc, 4_MHz_XTAL / 4);
+ m_fdc->set_force_ready(true);
// Single sided 3.5" floppy drive
MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35ssdd", msx_cart_disk_device::floppy_formats)
@@ -217,7 +217,7 @@ MACHINE_CONFIG_START(msx_cart_vy0010_device::device_add_mconfig)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(msx_cart_fsfd1_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", WD2793, 4_MHz_XTAL / 4)
+ WD2793(config, m_fdc, 4_MHz_XTAL / 4);
// Double sided 3.5" floppy drive
MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35dd", msx_cart_disk_device::floppy_formats)
@@ -247,8 +247,8 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(msx_cart_fscf351_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", MB8877, 4_MHz_XTAL / 4)
- MCFG_WD_FDC_FORCE_READY
+ MB8877(config, m_fdc, 4_MHz_XTAL / 4);
+ m_fdc->set_force_ready(true);
// Double sided 3.5" floppy drive
MCFG_FLOPPY_DRIVE_ADD("fdc:0", msx_floppies, "35dd", msx_cart_disk_device::floppy_formats)
diff --git a/src/devices/bus/nasbus/floppy.cpp b/src/devices/bus/nasbus/floppy.cpp
index 9c07a1c82b5..0f19c846bd0 100644
--- a/src/devices/bus/nasbus/floppy.cpp
+++ b/src/devices/bus/nasbus/floppy.cpp
@@ -38,14 +38,15 @@ static void nascom_floppies(device_slot_interface &device)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(nascom_fdc_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fd1793", FD1793, 16_MHz_XTAL / 4 / 4)
-
- MCFG_FLOPPY_DRIVE_ADD("fd1793:0", nascom_floppies, "55f", nascom_fdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fd1793:1", nascom_floppies, "55f", nascom_fdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fd1793:2", nascom_floppies, nullptr, nascom_fdc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fd1793:3", nascom_floppies, nullptr, nascom_fdc_device::floppy_formats)
-MACHINE_CONFIG_END
+void nascom_fdc_device::device_add_mconfig(machine_config &config)
+{
+ FD1793(config, m_fdc, 16_MHz_XTAL / 4 / 4);
+
+ FLOPPY_CONNECTOR(config, m_floppy0, nascom_floppies, "55f", nascom_fdc_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, nascom_floppies, "55f", nascom_fdc_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy2, nascom_floppies, nullptr, nascom_fdc_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy3, nascom_floppies, nullptr, nascom_fdc_device::floppy_formats);
+}
//**************************************************************************
diff --git a/src/devices/bus/oricext/jasmin.cpp b/src/devices/bus/oricext/jasmin.cpp
index 20271f76be1..a52505c7eea 100644
--- a/src/devices/bus/oricext/jasmin.cpp
+++ b/src/devices/bus/oricext/jasmin.cpp
@@ -72,15 +72,16 @@ const tiny_rom_entry *jasmin_device::device_rom_region() const
return ROM_NAME( jasmin );
}
-MACHINE_CONFIG_START(jasmin_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", WD1770, 8_MHz_XTAL)
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, oricext_device, irq_w))
-
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", jasmin_floppies, "3dsdd", jasmin_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", jasmin_floppies, nullptr, jasmin_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:2", jasmin_floppies, nullptr, jasmin_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:3", jasmin_floppies, nullptr, jasmin_device::floppy_formats)
-MACHINE_CONFIG_END
+void jasmin_device::device_add_mconfig(machine_config &config)
+{
+ WD1770(config, fdc, 8_MHz_XTAL);
+ fdc->drq_wr_callback().set(FUNC(oricext_device::irq_w));
+
+ FLOPPY_CONNECTOR(config, "fdc:0", jasmin_floppies, "3dsdd", jasmin_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:1", jasmin_floppies, nullptr, jasmin_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:2", jasmin_floppies, nullptr, jasmin_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:3", jasmin_floppies, nullptr, jasmin_device::floppy_formats);
+}
ioport_constructor jasmin_device::device_input_ports() const
{
diff --git a/src/devices/bus/oricext/microdisc.cpp b/src/devices/bus/oricext/microdisc.cpp
index 322df2dc84b..a5e4bb4d889 100644
--- a/src/devices/bus/oricext/microdisc.cpp
+++ b/src/devices/bus/oricext/microdisc.cpp
@@ -68,18 +68,19 @@ const tiny_rom_entry *microdisc_device::device_rom_region() const
return ROM_NAME( microdisc );
}
-MACHINE_CONFIG_START(microdisc_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", FD1793, 8_MHz_XTAL / 8)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, microdisc_device, fdc_irq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, microdisc_device, fdc_drq_w))
- MCFG_WD_FDC_HLD_CALLBACK(WRITELINE(*this, microdisc_device, fdc_hld_w))
- MCFG_WD_FDC_FORCE_READY
-
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", microdisc_floppies, "3dsdd", microdisc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", microdisc_floppies, nullptr, microdisc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:2", microdisc_floppies, nullptr, microdisc_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:3", microdisc_floppies, nullptr, microdisc_device::floppy_formats)
-MACHINE_CONFIG_END
+void microdisc_device::device_add_mconfig(machine_config &config)
+{
+ FD1793(config, fdc, 8_MHz_XTAL / 8);
+ fdc->intrq_wr_callback().set(FUNC(microdisc_device::fdc_irq_w));
+ fdc->drq_wr_callback().set(FUNC(microdisc_device::fdc_drq_w));
+ fdc->hld_wr_callback().set(FUNC(microdisc_device::fdc_hld_w));
+ fdc->set_force_ready(true);
+
+ FLOPPY_CONNECTOR(config, "fdc:0", microdisc_floppies, "3dsdd", microdisc_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:1", microdisc_floppies, nullptr, microdisc_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:2", microdisc_floppies, nullptr, microdisc_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:3", microdisc_floppies, nullptr, microdisc_device::floppy_formats);
+}
void microdisc_device::remap()
{
diff --git a/src/devices/bus/ql/sandy_superdisk.cpp b/src/devices/bus/ql/sandy_superdisk.cpp
index e43509ab235..19ee4ebbc9c 100644
--- a/src/devices/bus/ql/sandy_superdisk.cpp
+++ b/src/devices/bus/ql/sandy_superdisk.cpp
@@ -82,15 +82,17 @@ WRITE_LINE_MEMBER( sandy_super_disk_device::busy_w )
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(sandy_super_disk_device::device_add_mconfig)
- MCFG_DEVICE_ADD(WD1772_TAG, WD1772, 8000000)
- MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", sandy_super_disk_floppies, "35dd", sandy_super_disk_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":1", sandy_super_disk_floppies, nullptr, sandy_super_disk_device::floppy_formats)
-
- MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
- MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, sandy_super_disk_device, busy_w))
- MCFG_CENTRONICS_OUTPUT_LATCH_ADD(TTL74273_TAG, CENTRONICS_TAG)
-MACHINE_CONFIG_END
+void sandy_super_disk_device::device_add_mconfig(machine_config &config)
+{
+ WD1772(config, m_fdc, 8000000);
+ FLOPPY_CONNECTOR(config, m_floppy0, sandy_super_disk_floppies, "35dd", sandy_super_disk_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, sandy_super_disk_floppies, nullptr, sandy_super_disk_device::floppy_formats);
+
+ CENTRONICS(config, m_centronics, centronics_devices, "printer");
+ m_centronics->ack_handler().set(FUNC(sandy_super_disk_device::busy_w));
+ OUTPUT_LATCH(config, m_latch);
+ m_centronics->set_output_latch(*m_latch);
+}
diff --git a/src/devices/bus/ql/sandy_superqboard.cpp b/src/devices/bus/ql/sandy_superqboard.cpp
index d8fc2770973..05ff550c47d 100644
--- a/src/devices/bus/ql/sandy_superqboard.cpp
+++ b/src/devices/bus/ql/sandy_superqboard.cpp
@@ -103,15 +103,17 @@ WRITE_LINE_MEMBER( sandy_superqboard_device::busy_w )
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(sandy_superqboard_device::device_add_mconfig)
- MCFG_DEVICE_ADD(WD1772_TAG, WD1772, XTAL(16'000'000)/2)
- MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", sandy_superqboard_floppies, "35hd", sandy_superqboard_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":1", sandy_superqboard_floppies, nullptr, sandy_superqboard_device::floppy_formats)
-
- MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
- MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, sandy_superqboard_device, busy_w))
- MCFG_CENTRONICS_OUTPUT_LATCH_ADD(TTL74273_TAG, CENTRONICS_TAG)
-MACHINE_CONFIG_END
+void sandy_superqboard_device::device_add_mconfig(machine_config &config)
+{
+ WD1772(config, m_fdc, XTAL(16'000'000)/2);
+ FLOPPY_CONNECTOR(config, m_floppy0, sandy_superqboard_floppies, "35hd", sandy_superqboard_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, sandy_superqboard_floppies, nullptr, sandy_superqboard_device::floppy_formats);
+
+ CENTRONICS(config, m_centronics, centronics_devices, "printer");
+ m_centronics->ack_handler().set(FUNC(sandy_superqboard_device::busy_w));
+ OUTPUT_LATCH(config, m_latch);
+ m_centronics->set_output_latch(*m_latch);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/ql/trumpcard.cpp b/src/devices/bus/ql/trumpcard.cpp
index a7251f2b865..bc515b7da9c 100644
--- a/src/devices/bus/ql/trumpcard.cpp
+++ b/src/devices/bus/ql/trumpcard.cpp
@@ -86,11 +86,12 @@ FLOPPY_FORMATS_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(ql_trump_card_device::device_add_mconfig)
- MCFG_DEVICE_ADD(WD1772_TAG, WD1772, 8000000)
- MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":0", ql_trump_card_floppies, "35dd", ql_trump_card_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG":1", ql_trump_card_floppies, nullptr, ql_trump_card_device::floppy_formats)
-MACHINE_CONFIG_END
+void ql_trump_card_device::device_add_mconfig(machine_config &config)
+{
+ WD1772(config, m_fdc, 8000000);
+ FLOPPY_CONNECTOR(config, m_floppy0, ql_trump_card_floppies, "35dd", ql_trump_card_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, ql_trump_card_floppies, nullptr, ql_trump_card_device::floppy_formats);
+}
//**************************************************************************
diff --git a/src/devices/bus/s100/dj2db.cpp b/src/devices/bus/s100/dj2db.cpp
index 3209a4fe237..b4aa4d303e8 100644
--- a/src/devices/bus/s100/dj2db.cpp
+++ b/src/devices/bus/s100/dj2db.cpp
@@ -102,19 +102,20 @@ WRITE_LINE_MEMBER( s100_dj2db_device::fdc_drq_w )
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(s100_dj2db_device::device_add_mconfig)
+void s100_dj2db_device::device_add_mconfig(machine_config &config)
+{
COM8116(config, m_dbrg, 5.0688_MHz_XTAL);
m_dbrg->fr_handler().set(FUNC(s100_dj2db_device::fr_w));
- MCFG_DEVICE_ADD(MB8866_TAG, MB8866, 10_MHz_XTAL / 5)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, s100_dj2db_device, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, s100_dj2db_device, fdc_drq_w))
+ MB8866(config, m_fdc, 10_MHz_XTAL / 5);
+ m_fdc->intrq_wr_callback().set(FUNC(s100_dj2db_device::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(s100_dj2db_device::fdc_drq_w));
- MCFG_FLOPPY_DRIVE_ADD(MB8866_TAG":0", s100_dj2db_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(MB8866_TAG":1", s100_dj2db_floppies, nullptr, floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(MB8866_TAG":2", s100_dj2db_floppies, nullptr, floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD(MB8866_TAG":3", s100_dj2db_floppies, nullptr, floppy_image_device::default_floppy_formats)
-MACHINE_CONFIG_END
+ FLOPPY_CONNECTOR(config, m_floppy0, s100_dj2db_floppies, "8dsdd", floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, s100_dj2db_floppies, nullptr, floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy2, s100_dj2db_floppies, nullptr, floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy3, s100_dj2db_floppies, nullptr, floppy_image_device::default_floppy_formats);
+}
//-------------------------------------------------
diff --git a/src/devices/bus/svi3x8/slot/sv801.cpp b/src/devices/bus/svi3x8/slot/sv801.cpp
index 45a75bc99a6..48881ffc9e1 100644
--- a/src/devices/bus/svi3x8/slot/sv801.cpp
+++ b/src/devices/bus/svi3x8/slot/sv801.cpp
@@ -31,16 +31,17 @@ static void svi_floppies(device_slot_interface &device)
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(sv801_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", FD1793, 8_MHz_XTAL / 8)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, sv801_device, intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, sv801_device, drq_w))
+void sv801_device::device_add_mconfig(machine_config &config)
+{
+ FD1793(config, m_fdc, 8_MHz_XTAL / 8);
+ m_fdc->intrq_wr_callback().set(FUNC(sv801_device::intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(sv801_device::drq_w));
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", svi_floppies, "dd", sv801_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", svi_floppies, "dd", sv801_device::floppy_formats)
+ FLOPPY_CONNECTOR(config, m_floppy0, svi_floppies, "dd", sv801_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, m_floppy1, svi_floppies, "dd", sv801_device::floppy_formats);
- MCFG_SOFTWARE_LIST_ADD("disk_list", "svi318_flop")
-MACHINE_CONFIG_END
+ SOFTWARE_LIST(config, "disk_list").set_original("svi318_flop");
+}
//**************************************************************************
diff --git a/src/devices/bus/tvc/hbf.cpp b/src/devices/bus/tvc/hbf.cpp
index cfc81ec46b9..bb9dcae91db 100644
--- a/src/devices/bus/tvc/hbf.cpp
+++ b/src/devices/bus/tvc/hbf.cpp
@@ -84,11 +84,13 @@ void tvc_hbf_device::device_reset()
// device_add_mconfig
//-------------------------------------------------
-MACHINE_CONFIG_START(tvc_hbf_device::device_add_mconfig)
- MCFG_DEVICE_ADD("fdc", FD1793, 16_MHz_XTAL / 16)
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", tvc_hbf_floppies, "525qd", tvc_hbf_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_ADD("fdc:1", tvc_hbf_floppies, "525qd", tvc_hbf_device::floppy_formats)
-MACHINE_CONFIG_END
+void tvc_hbf_device::device_add_mconfig(machine_config &config)
+{
+ FD1793(config, m_fdc, 16_MHz_XTAL / 16);
+
+ FLOPPY_CONNECTOR(config, "fdc:0", tvc_hbf_floppies, "525qd", tvc_hbf_device::floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:1", tvc_hbf_floppies, "525qd", tvc_hbf_device::floppy_formats);
+}
//-------------------------------------------------
diff --git a/src/devices/machine/wd7600.cpp b/src/devices/machine/wd7600.cpp
index 94357423580..419042631e0 100644
--- a/src/devices/machine/wd7600.cpp
+++ b/src/devices/machine/wd7600.cpp
@@ -21,7 +21,8 @@
DEFINE_DEVICE_TYPE(WD7600, wd7600_device, "wd7600", "Western Digital WD7600 chipset")
-MACHINE_CONFIG_START(wd7600_device::device_add_mconfig)
+void wd7600_device::device_add_mconfig(machine_config & config)
+{
AM9517A(config, m_dma1, 0);
m_dma1->out_hreq_callback().set(m_dma2, FUNC(am9517a_device::dreq0_w));
m_dma1->out_eop_callback().set(FUNC(wd7600_device::dma1_eop_w));
@@ -75,7 +76,7 @@ MACHINE_CONFIG_START(wd7600_device::device_add_mconfig)
DS12885(config, m_rtc);
m_rtc->irq_callback().set(m_pic2, FUNC(pic8259_device::ir0_w));
m_rtc->set_century_index(0x32);
-MACHINE_CONFIG_END
+}
wd7600_device::wd7600_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
@@ -97,7 +98,9 @@ wd7600_device::wd7600_device(const machine_config &mconfig, const char *tag, dev
m_rtc(*this, "rtc"),
m_cpu(*this, finder_base::DUMMY_TAG),
m_keybc(*this, finder_base::DUMMY_TAG),
+ m_ram(*this, finder_base::DUMMY_TAG),
m_bios(*this, finder_base::DUMMY_TAG),
+ m_isa(*this, finder_base::DUMMY_TAG),
m_portb(0x0f),
m_iochck(1),
m_nmi_mask(1),
@@ -114,10 +117,8 @@ wd7600_device::wd7600_device(const machine_config &mconfig, const char *tag, dev
void wd7600_device::device_start()
{
- ram_device *ram_dev = machine().device<ram_device>(RAM_TAG);
-
// make sure the ram device is already running
- if (!ram_dev->started())
+ if (!m_ram->started())
throw device_missing_dependencies();
// resolve callbacks
@@ -134,18 +135,13 @@ void wd7600_device::device_start()
m_space = &m_cpu->space(AS_PROGRAM);
m_space_io = &m_cpu->space(AS_IO);
- m_isa = machine().root_device().memregion(m_isatag)->base();
-
- m_ram = ram_dev->pointer();
- uint32_t ram_size = ram_dev->size();
-
// install base memory
- m_space->install_ram(0x000000, 0x09ffff, m_ram);
- m_space->install_ram(0x0d0000, 0x0effff, m_ram + 0xd0000);
+ m_space->install_ram(0x000000, 0x09ffff, m_ram->pointer());
+ m_space->install_ram(0x0d0000, 0x0effff, m_ram->pointer() + 0xd0000);
// install extended memory
- if (ram_size > 0x100000)
- m_space->install_ram(0x100000, ram_size - 1, m_ram + 0x100000);
+ if (m_ram->size() > 0x100000)
+ m_space->install_ram(0x100000, m_ram->size() - 1, m_ram->pointer() + 0x100000);
// install video BIOS (we should use the VGA BIOS at the beginning of the system BIOS ROM, but that gives a
// blank display (but still runs))
diff --git a/src/devices/machine/wd7600.h b/src/devices/machine/wd7600.h
index 1cacdf6cb23..8f40ed3116f 100644
--- a/src/devices/machine/wd7600.h
+++ b/src/devices/machine/wd7600.h
@@ -44,9 +44,10 @@ public:
// inline configuration
template <typename T> void set_cputag(T &&tag) { m_cpu.set_tag(std::forward<T>(tag)); }
- void set_isatag(const char *tag) { m_isatag = tag; }
+ template <typename T> void set_isatag(T &&tag) { m_isa.set_tag(std::forward<T>(tag)); }
template <typename T> void set_biostag(T &&tag) { m_bios.set_tag(std::forward<T>(tag)); }
template <typename T> void set_keybctag(T &&tag) { m_keybc.set_tag(std::forward<T>(tag)); }
+ template <typename T> void set_ramtag(T &&tag) { m_ram.set_tag(std::forward<T>(tag)); }
// input lines
DECLARE_WRITE_LINE_MEMBER( irq01_w ) { m_pic1->ir1_w(state); }
@@ -162,7 +163,9 @@ private:
required_device<device_memory_interface> m_cpu;
required_device<at_keyboard_controller_device> m_keybc;
+ required_device<ram_device> m_ram;
required_region_ptr<uint8_t> m_bios;
+ required_region_ptr<uint8_t> m_isa;
offs_t page_offset();
void set_dma_channel(int channel, bool state);
@@ -171,7 +174,6 @@ private:
void a20m();
// internal state
- const char *m_isatag;
uint8_t m_portb;
int m_iochck;
int m_nmi_mask;
@@ -193,8 +195,6 @@ private:
address_space *m_space;
address_space *m_space_io;
- uint8_t *m_isa;
- uint8_t *m_ram;
};
// device type definition
diff --git a/src/devices/machine/wd_fdc.h b/src/devices/machine/wd_fdc.h
index 925ec5386f0..6ecc76d6b23 100644
--- a/src/devices/machine/wd_fdc.h
+++ b/src/devices/machine/wd_fdc.h
@@ -45,34 +45,9 @@
*/
-#define MCFG_WD_FDC_FORCE_READY \
- downcast<wd_fdc_device_base *>(device)->set_force_ready(true);
-
-#define MCFG_WD_FDC_DISABLE_MOTOR_CONTROL \
- downcast<wd_fdc_device_base *>(device)->set_disable_motor_control(true);
-
-#define MCFG_WD_FDC_INTRQ_CALLBACK(_write) \
- downcast<wd_fdc_device_base &>(*device).set_intrq_wr_callback(DEVCB_##_write);
-
-#define MCFG_WD_FDC_DRQ_CALLBACK(_write) \
- downcast<wd_fdc_device_base &>(*device).set_drq_wr_callback(DEVCB_##_write);
-
-#define MCFG_WD_FDC_HLD_CALLBACK(_write) \
- downcast<wd_fdc_device_base &>(*device).set_hld_wr_callback(DEVCB_##_write);
-
-#define MCFG_WD_FDC_ENP_CALLBACK(_write) \
- downcast<wd_fdc_device_base &>(*device).set_enp_wr_callback(DEVCB_##_write);
-
-#define MCFG_WD_FDC_ENMF_CALLBACK(_read) \
- downcast<wd_fdc_device_base &>(*device).set_enmf_rd_callback(DEVCB_##_read);
class wd_fdc_device_base : public device_t {
public:
- template <class Object> devcb_base &set_intrq_wr_callback(Object &&cb) { return intrq_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_drq_wr_callback(Object &&cb) { return drq_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_hld_wr_callback(Object &&cb) { return hld_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_enp_wr_callback(Object &&cb) { return enp_cb.set_callback(std::forward<Object>(cb)); }
- template <class Object> devcb_base &set_enmf_rd_callback(Object &&cb) { return enmf_cb.set_callback(std::forward<Object>(cb)); }
auto intrq_wr_callback() { return intrq_cb.bind(); }
auto drq_wr_callback() { return drq_cb.bind(); }
auto hld_wr_callback() { return hld_cb.bind(); }
diff --git a/src/mame/drivers/abc1600.cpp b/src/mame/drivers/abc1600.cpp
index 714dab7b320..b571f15c41f 100644
--- a/src/mame/drivers/abc1600.cpp
+++ b/src/mame/drivers/abc1600.cpp
@@ -933,9 +933,9 @@ MACHINE_CONFIG_START(abc1600_state::abc1600)
E0516(config, E050_C16PC_TAG, 32.768_kHz_XTAL);
- MCFG_DEVICE_ADD(SAB1797_02P_TAG, FD1797, 64_MHz_XTAL / 64)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(m_cio, z8536_device, pb7_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, abc1600_state, fdc_drq_w))
+ FD1797(config, m_fdc, 64_MHz_XTAL / 64);
+ m_fdc->intrq_wr_callback().set(m_cio, FUNC(z8536_device::pb7_w));
+ m_fdc->drq_wr_callback().set(FUNC(abc1600_state::fdc_drq_w));
MCFG_FLOPPY_DRIVE_ADD(SAB1797_02P_TAG":0", abc1600_floppies, nullptr, floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(SAB1797_02P_TAG":1", abc1600_floppies, nullptr, floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/alphatpx.cpp b/src/mame/drivers/alphatpx.cpp
index ee219b60189..8f1b71aeb57 100644
--- a/src/mame/drivers/alphatpx.cpp
+++ b/src/mame/drivers/alphatpx.cpp
@@ -1243,10 +1243,10 @@ MACHINE_CONFIG_START(alphatp_12_state::alphatp2)
MCFG_DEVICE_ADD("uart", I8251, 0)
// 4.9152_MHz_XTAL serial clock
- MCFG_DEVICE_ADD("fdc", FD1791, 4_MHz_XTAL / 4)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, alphatp_12_state, fdcirq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, alphatp_12_state, fdcdrq_w))
- MCFG_WD_FDC_HLD_CALLBACK(WRITELINE(*this, alphatp_12_state, fdchld_w))
+ FD1791(config, m_fdc, 4_MHz_XTAL / 4);
+ m_fdc->intrq_wr_callback().set(FUNC(alphatp_12_state::fdcirq_w));
+ m_fdc->drq_wr_callback().set(FUNC(alphatp_12_state::fdcdrq_w));
+ m_fdc->hld_wr_callback().set(FUNC(alphatp_12_state::fdchld_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", alphatp2_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", alphatp2_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
MACHINE_CONFIG_END
@@ -1319,10 +1319,10 @@ MACHINE_CONFIG_START(alphatp_34_state::alphatp3)
MCFG_DEVICE_ADD("uart", I8251, 0)
// 4.9152_MHz_XTAL serial clock
- MCFG_DEVICE_ADD("fdc", FD1791, 4_MHz_XTAL / 4)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, alphatp_34_state, fdcirq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, alphatp_34_state, fdcdrq_w))
- MCFG_WD_FDC_HLD_CALLBACK(WRITELINE(*this, alphatp_34_state, fdchld_w))
+ FD1791(config, m_fdc, 4_MHz_XTAL / 4);
+ m_fdc->intrq_wr_callback().set(FUNC(alphatp_34_state::fdcirq_w));
+ m_fdc->drq_wr_callback().set(FUNC(alphatp_34_state::fdcdrq_w));
+ m_fdc->hld_wr_callback().set(FUNC(alphatp_34_state::fdchld_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", alphatp3_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", alphatp3_floppies, "525qd", floppy_image_device::default_floppy_formats)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ampro.cpp b/src/mame/drivers/ampro.cpp
index 935b96daa0d..c537346f507 100644
--- a/src/mame/drivers/ampro.cpp
+++ b/src/mame/drivers/ampro.cpp
@@ -181,7 +181,7 @@ MACHINE_CONFIG_START(ampro_state::ampro)
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE(m_dart, z80dart_device, rxa_w))
- MCFG_DEVICE_ADD("fdc", WD1772, 16_MHz_XTAL / 2)
+ WD1772(config, m_fdc, 16_MHz_XTAL / 2);
MCFG_FLOPPY_DRIVE_ADD("fdc:0", ampro_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_SOFTWARE_LIST_ADD("flop_list", "ampro")
diff --git a/src/mame/drivers/apf.cpp b/src/mame/drivers/apf.cpp
index 59e445fe1ce..5bbef0b268c 100644
--- a/src/mame/drivers/apf.cpp
+++ b/src/mame/drivers/apf.cpp
@@ -574,7 +574,7 @@ MACHINE_CONFIG_START(apf_state::apfimag)
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED | CASSETTE_MOTOR_DISABLED)
MCFG_CASSETTE_INTERFACE("apf_cass")
- MCFG_DEVICE_ADD("fdc", FD1771, 1000000) // guess
+ FD1771(config, m_fdc, 1000000); // guess
MCFG_FLOPPY_DRIVE_ADD("fdc:0", apf_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", apf_floppies, "525dd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/applix.cpp b/src/mame/drivers/applix.cpp
index 6c8f094dcf9..590baa52cb8 100644
--- a/src/mame/drivers/applix.cpp
+++ b/src/mame/drivers/applix.cpp
@@ -911,7 +911,7 @@ MACHINE_CONFIG_START(applix_state::applix)
MCFG_CASSETTE_ADD("cassette")
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED)
- MCFG_DEVICE_ADD("fdc", WD1772, 16_MHz_XTAL / 2) //connected to Z80H clock pin
+ WD1772(config, m_fdc, 16_MHz_XTAL / 2); //connected to Z80H clock pin
MCFG_FLOPPY_DRIVE_ADD("fdc:0", applix_floppies, "35dd", applix_state::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", applix_floppies, "35dd", applix_state::floppy_formats)
diff --git a/src/mame/drivers/at.cpp b/src/mame/drivers/at.cpp
index 979a4e5ccde..886d3a1921c 100644
--- a/src/mame/drivers/at.cpp
+++ b/src/mame/drivers/at.cpp
@@ -635,10 +635,11 @@ MACHINE_CONFIG_START(megapc_state::megapc)
MCFG_DEVICE_IRQ_ACKNOWLEDGE_DEVICE("wd7600", wd7600_device, intack_cb)
WD7600(config, m_wd7600, 50_MHz_XTAL / 2);
- m_wd7600->set_cputag(":maincpu");
- m_wd7600->set_isatag(":isa");
- m_wd7600->set_biostag(":bios");
- m_wd7600->set_keybctag(":keybc");
+ m_wd7600->set_cputag(m_maincpu);
+ m_wd7600->set_isatag("isa");
+ m_wd7600->set_ramtag(m_ram);
+ m_wd7600->set_biostag("bios");
+ m_wd7600->set_keybctag("keybc");
m_wd7600->hold_callback().set(FUNC(megapc_state::wd7600_hold));
m_wd7600->nmi_callback().set_inputline(m_maincpu, INPUT_LINE_NMI);
m_wd7600->intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
diff --git a/src/mame/drivers/aussiebyte.cpp b/src/mame/drivers/aussiebyte.cpp
index 3076baedeb1..cb4c3b25a93 100644
--- a/src/mame/drivers/aussiebyte.cpp
+++ b/src/mame/drivers/aussiebyte.cpp
@@ -575,9 +575,9 @@ MACHINE_CONFIG_START(aussiebyte_state::aussiebyte)
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "keyboard")
MCFG_RS232_RXD_HANDLER(WRITELINE("sio2", z80sio_device, rxa_w))
- MCFG_DEVICE_ADD("fdc", WD2797, 16_MHz_XTAL / 16)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, aussiebyte_state, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, aussiebyte_state, fdc_drq_w))
+ WD2797(config, m_fdc, 16_MHz_XTAL / 16);
+ m_fdc->intrq_wr_callback().set(FUNC(aussiebyte_state::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(aussiebyte_state::fdc_drq_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", aussiebyte_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", aussiebyte_floppies, "525qd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/bigbord2.cpp b/src/mame/drivers/bigbord2.cpp
index 117ff5448f2..48cb47479b4 100644
--- a/src/mame/drivers/bigbord2.cpp
+++ b/src/mame/drivers/bigbord2.cpp
@@ -588,8 +588,8 @@ MACHINE_CONFIG_START(bigbord2_state::bigbord2)
m_ctc2->zc_callback<1>().set(FUNC(bigbord2_state::ctc_z1_w)); // to SIO Ch A
m_ctc2->zc_callback<2>().set(m_ctc2, FUNC(z80ctc_device::trg3));
- MCFG_DEVICE_ADD("fdc", MB8877, 16_MHz_XTAL / 8) // 2MHz for 8 inch, or 1MHz otherwise (jumper-selectable)
- //MCFG_WD_FDC_INTRQ_CALLBACK(INPUTLINE("maincpu", ??)) // info missing from schematic
+ MB8877(config, m_fdc, 16_MHz_XTAL / 8); // 2MHz for 8 inch, or 1MHz otherwise (jumper-selectable)
+ //m_fdc->intrq_wr_callback().set_inputline(m_maincpu, ??); // info missing from schematic
MCFG_FLOPPY_DRIVE_ADD("fdc:0", bigbord2_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", bigbord2_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/bullet.cpp b/src/mame/drivers/bullet.cpp
index 3d047fddc81..ef29571bc24 100644
--- a/src/mame/drivers/bullet.cpp
+++ b/src/mame/drivers/bullet.cpp
@@ -1146,9 +1146,9 @@ MACHINE_CONFIG_START(bullet_state::bullet)
pio.out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
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(m_dart, z80dart_device, dcda_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, bullet_state, fdc_drq_w))
+ MB8877(config, m_fdc, 16_MHz_XTAL / 16);
+ m_fdc->intrq_wr_callback().set(m_dart, FUNC(z80dart_device::dcda_w));
+ m_fdc->drq_wr_callback().set(FUNC(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)
MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":2", bullet_525_floppies, nullptr, floppy_image_device::default_floppy_formats)
@@ -1227,9 +1227,9 @@ MACHINE_CONFIG_START(bulletf_state::bulletf)
pio.out_ardy_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
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(m_dart, z80dart_device, rib_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, bullet_state, fdc_drq_w))
+ MB8877(config, m_fdc, 16_MHz_XTAL / 16);
+ m_fdc->intrq_wr_callback().set(m_dart, FUNC(z80dart_device::rib_w));
+ m_fdc->drq_wr_callback().set(FUNC(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)
MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":2", bullet_525_floppies, nullptr, floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/candela.cpp b/src/mame/drivers/candela.cpp
index 3226a809b9b..c7a159bdcfa 100644
--- a/src/mame/drivers/candela.cpp
+++ b/src/mame/drivers/candela.cpp
@@ -759,7 +759,7 @@ MACHINE_CONFIG_START(can09_state::can09)
MCFG_PALETTE_ADD_MONOCHROME("palette")
/* Floppy */
- MCFG_DEVICE_ADD("wd1770", WD1770, 8_MHz_XTAL) // TODO: Verify 8MHz UKI crystal assumed to be used
+ WD1770(config, "wd1770", 8_MHz_XTAL); // TODO: Verify 8MHz UKI crystal assumed to be used
#if 0
MCFG_FLOPPY_DRIVE_ADD("wd1770:0", candela_floppies, "3dd", floppy_image_device::default_floppy_formats)
MCFG_SOFTWARE_LIST_ADD("flop3_list", "candela")
diff --git a/src/mame/drivers/dmax8000.cpp b/src/mame/drivers/dmax8000.cpp
index 853808a7199..b798edda7a5 100644
--- a/src/mame/drivers/dmax8000.cpp
+++ b/src/mame/drivers/dmax8000.cpp
@@ -191,9 +191,9 @@ MACHINE_CONFIG_START(dmax8000_state::dmax8000)
Z80PIO(config, "pio2", 4'000'000);
- MCFG_DEVICE_ADD("fdc", FD1793, 2'000'000) // no idea
- MCFG_WD_FDC_INTRQ_CALLBACK(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, dmax8000_state, fdc_drq_w))
+ FD1793(config, m_fdc, 2'000'000); // no idea
+ m_fdc->intrq_wr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
+ m_fdc->drq_wr_callback().set(FUNC(dmax8000_state::fdc_drq_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", floppies, "8dsdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
diff --git a/src/mame/drivers/dragon.cpp b/src/mame/drivers/dragon.cpp
index 216fcacff33..2a6657b40c0 100644
--- a/src/mame/drivers/dragon.cpp
+++ b/src/mame/drivers/dragon.cpp
@@ -325,9 +325,9 @@ MACHINE_CONFIG_START(dragon_alpha_state::dgnalpha)
acia.set_xtal(1.8432_MHz_XTAL);
// floppy
- MCFG_DEVICE_ADD(WD2797_TAG, WD2797, 1_MHz_XTAL)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, dragon_alpha_state, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, dragon_alpha_state, fdc_drq_w))
+ WD2797(config, m_fdc, 1_MHz_XTAL);
+ m_fdc->intrq_wr_callback().set(FUNC(dragon_alpha_state::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(dragon_alpha_state::fdc_drq_w));
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG ":0", dragon_alpha_floppies, "dd", dragon_alpha_state::dragon_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
diff --git a/src/mame/drivers/einstein.cpp b/src/mame/drivers/einstein.cpp
index 8556fc63486..7b5a7951cd0 100644
--- a/src/mame/drivers/einstein.cpp
+++ b/src/mame/drivers/einstein.cpp
@@ -659,7 +659,7 @@ MACHINE_CONFIG_START(einstein_state::einstein)
MCFG_RS232_CTS_HANDLER(WRITELINE(IC_I060, i8251_device, write_cts))
// floppy
- MCFG_DEVICE_ADD(IC_I042, WD1770, XTAL_X002)
+ WD1770(config, m_fdc, XTAL_X002);
MCFG_FLOPPY_DRIVE_ADD(IC_I042 ":0", einstein_floppies, "3ss", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(IC_I042 ":1", einstein_floppies, "3ss", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/eurocom2.cpp b/src/mame/drivers/eurocom2.cpp
index fbddbb34d12..3c8faedabc8 100644
--- a/src/mame/drivers/eurocom2.cpp
+++ b/src/mame/drivers/eurocom2.cpp
@@ -472,8 +472,8 @@ MACHINE_CONFIG_START(eurocom2_state::eurocom2)
MCFG_RS232_RXD_HANDLER(WRITELINE("acia", acia6850_device, write_rxd))
MCFG_RS232_CTS_HANDLER(WRITELINE("acia", acia6850_device, write_cts))
- MCFG_DEVICE_ADD("fdc", FD1793, 2_MHz_XTAL / 2)
-// MCFG_WD_FDC_INTRQ_CALLBACK(INPUTLINE("maincpu", M6809_IRQ_LINE))
+ FD1793(config, m_fdc, 2_MHz_XTAL / 2);
+// m_fdc->intrq_wr_callback().set_inputline(m_maincpu, M6809_IRQ_LINE);
MCFG_FLOPPY_DRIVE_ADD("fdc:0", eurocom_floppies, "525qd", eurocom2_state::floppy_formats)
// MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", eurocom_floppies, "525qd", eurocom2_state::floppy_formats)
diff --git a/src/mame/drivers/excali64.cpp b/src/mame/drivers/excali64.cpp
index ec64995e75e..037615aee37 100644
--- a/src/mame/drivers/excali64.cpp
+++ b/src/mame/drivers/excali64.cpp
@@ -602,8 +602,8 @@ MACHINE_CONFIG_START(excali64_state::excali64)
/* Devices */
MCFG_CASSETTE_ADD( "cassette" )
- MCFG_DEVICE_ADD("fdc", WD2793, 16_MHz_XTAL / 16)
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(m_dma, z80dma_device, rdy_w))
+ WD2793(config, m_fdc, 16_MHz_XTAL / 16);
+ m_fdc->drq_wr_callback().set(m_dma, FUNC(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)
diff --git a/src/mame/drivers/gimix.cpp b/src/mame/drivers/gimix.cpp
index 409ad4d97e4..de9b3238d3a 100644
--- a/src/mame/drivers/gimix.cpp
+++ b/src/mame/drivers/gimix.cpp
@@ -494,10 +494,10 @@ MACHINE_CONFIG_START(gimix_state::gimix)
ptm.irq_callback().set(FUNC(gimix_state::irq_w)); // PCB pictures show both the RTC and timer set to generate IRQs (are jumper configurable)
/* floppy disks */
- MCFG_DEVICE_ADD("fdc", FD1797, 8_MHz_XTAL / 4)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, gimix_state,fdc_irq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, gimix_state,fdc_drq_w))
- MCFG_WD_FDC_FORCE_READY
+ FD1797(config, m_fdc, 8_MHz_XTAL / 4);
+ m_fdc->intrq_wr_callback().set(FUNC(gimix_state::fdc_irq_w));
+ m_fdc->drq_wr_callback().set(FUNC(gimix_state::fdc_drq_w));
+ m_fdc->set_force_ready(true);
MCFG_FLOPPY_DRIVE_ADD("fdc:0", gimix_floppies, "525hd", gimix_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", gimix_floppies, "525hd", gimix_state::floppy_formats)
diff --git a/src/mame/drivers/hec2hrp.cpp b/src/mame/drivers/hec2hrp.cpp
index 2e8e32d2be7..76a09123b7a 100644
--- a/src/mame/drivers/hec2hrp.cpp
+++ b/src/mame/drivers/hec2hrp.cpp
@@ -539,7 +539,7 @@ MACHINE_CONFIG_START(hec2hrp_state::hec2mdhrx)
MCFG_MACHINE_START_OVERRIDE(hec2hrp_state,hec2mdhrx)
/* 3.5" ("mini") disc */
- MCFG_DEVICE_ADD("wd179x", FD1793, 1_MHz_XTAL)
+ FD1793(config, m_minidisc_fdc, 1_MHz_XTAL);
MCFG_FLOPPY_DRIVE_ADD("wd179x:0", minidisc_floppies, "dd", hec2hrp_state::minidisc_formats)
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/ht68k.cpp b/src/mame/drivers/ht68k.cpp
index 565da68d62f..95d7de41428 100644
--- a/src/mame/drivers/ht68k.cpp
+++ b/src/mame/drivers/ht68k.cpp
@@ -145,7 +145,7 @@ MACHINE_CONFIG_START(ht68k_state::ht68k)
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("duart68681", mc68681_device, rx_a_w))
- MCFG_DEVICE_ADD("wd1770", WD1770, 8_MHz_XTAL)
+ WD1770(config, m_fdc, 8_MHz_XTAL);
MCFG_FLOPPY_DRIVE_ADD("wd1770:0", ht68k_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("wd1770:1", ht68k_floppies, "525dd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/icebox.cpp b/src/mame/drivers/icebox.cpp
index 5792e4fb688..b658c38753d 100644
--- a/src/mame/drivers/icebox.cpp
+++ b/src/mame/drivers/icebox.cpp
@@ -308,8 +308,8 @@ MACHINE_CONFIG_START(icebox_state::icebox)
m_brg->ft_handler().set(m_uart1, FUNC(i8251_device::write_txc));
m_brg->ft_handler().append(m_uart1, FUNC(i8251_device::write_rxc));
- MCFG_DEVICE_ADD(m_fdc, FD1771, 4_MHz_XTAL / 2)
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, icebox_state, drq_w))
+ FD1771(config, m_fdc, 4_MHz_XTAL / 2);
+ m_fdc->drq_wr_callback().set(FUNC(icebox_state::drq_w));
MCFG_FLOPPY_DRIVE_ADD(m_floppy0, floppies, "flop", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD(m_floppy1, floppies, "flop", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/itt3030.cpp b/src/mame/drivers/itt3030.cpp
index 17e0dbc52cf..d12c8b4b075 100644
--- a/src/mame/drivers/itt3030.cpp
+++ b/src/mame/drivers/itt3030.cpp
@@ -727,10 +727,10 @@ MACHINE_CONFIG_START(itt3030_state::itt3030)
MCFG_DEVICE_ADD("crt5027", CRT5027, 6_MHz_XTAL / 8)
MCFG_TMS9927_CHAR_WIDTH(8)
- MCFG_DEVICE_ADD("fdc", FD1791, 20_MHz_XTAL / 20)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, itt3030_state, fdcirq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, itt3030_state, fdcdrq_w))
- MCFG_WD_FDC_HLD_CALLBACK(WRITELINE(*this, itt3030_state, fdchld_w))
+ FD1791(config, m_fdc, 20_MHz_XTAL / 20);
+ m_fdc->intrq_wr_callback().set(FUNC(itt3030_state::fdcirq_w));
+ m_fdc->drq_wr_callback().set(FUNC(itt3030_state::fdcdrq_w));
+ m_fdc->hld_wr_callback().set(FUNC(itt3030_state::fdchld_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", itt3030_floppies, "525qd", itt3030_state::itt3030_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", itt3030_floppies, "525qd", itt3030_state::itt3030_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:2", itt3030_floppies, "525qd", itt3030_state::itt3030_floppy_formats)
diff --git a/src/mame/drivers/jupiter.cpp b/src/mame/drivers/jupiter.cpp
index 2618240d73d..67fc829ecbd 100644
--- a/src/mame/drivers/jupiter.cpp
+++ b/src/mame/drivers/jupiter.cpp
@@ -288,7 +288,7 @@ MACHINE_CONFIG_START(jupiter2_state::jupiter2)
MCFG_DEVICE_PROGRAM_MAP(jupiter2_mem)
// devices
- MCFG_DEVICE_ADD(INS1771N1_TAG, FD1771, 1000000)
+ FD1771(config, INS1771N1_TAG, 1000000);
MCFG_FLOPPY_DRIVE_ADD(INS1771N1_TAG":0", jupiter_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(INS1771N1_TAG":1", jupiter_floppies, nullptr, floppy_image_device::default_floppy_formats)
@@ -335,7 +335,7 @@ MACHINE_CONFIG_START(jupiter3_state::jupiter3)
MCFG_PALETTE_ADD_MONOCHROME("palette")
// devices
- MCFG_DEVICE_ADD(INS1771N1_TAG, FD1771, 1000000)
+ FD1771(config, INS1771N1_TAG, 1000000);
MCFG_FLOPPY_DRIVE_ADD(INS1771N1_TAG":0", jupiter_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(INS1771N1_TAG":1", jupiter_floppies, nullptr, floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/m20.cpp b/src/mame/drivers/m20.cpp
index d0ebbef8162..12791412f7f 100644
--- a/src/mame/drivers/m20.cpp
+++ b/src/mame/drivers/m20.cpp
@@ -809,8 +809,8 @@ MACHINE_CONFIG_START(m20_state::m20)
MCFG_PALETTE_ADD_MONOCHROME("palette")
/* Devices */
- MCFG_DEVICE_ADD("fd1797", FD1797, 1000000)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE("i8259", pic8259_device, ir0_w))
+ FD1797(config, m_fd1797, 1000000);
+ m_fd1797->intrq_wr_callback().set(m_i8259, FUNC(pic8259_device::ir0_w));
MCFG_FLOPPY_DRIVE_ADD("fd1797:0", m20_floppies, "5dd", m20_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fd1797:1", m20_floppies, "5dd", m20_state::floppy_formats)
@@ -823,12 +823,12 @@ MACHINE_CONFIG_START(m20_state::m20)
I8251(config, m_kbdi8251, 0);
m_kbdi8251->txd_handler().set("kbd", FUNC(rs232_port_device::write_txd));
- m_kbdi8251->rxrdy_handler().set("i8259", FUNC(pic8259_device::ir4_w));
+ m_kbdi8251->rxrdy_handler().set(m_i8259, FUNC(pic8259_device::ir4_w));
I8251(config, m_ttyi8251, 0);
m_ttyi8251->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd));
- m_ttyi8251->rxrdy_handler().set("i8259", FUNC(pic8259_device::ir3_w));
- m_ttyi8251->txrdy_handler().set("i8259", FUNC(pic8259_device::ir5_w));
+ m_ttyi8251->rxrdy_handler().set(m_i8259, FUNC(pic8259_device::ir3_w));
+ m_ttyi8251->txrdy_handler().set(m_i8259, FUNC(pic8259_device::ir5_w));
MCFG_DEVICE_ADD("pit8253", PIT8253, 0)
MCFG_PIT8253_CLK0(1230782)
@@ -838,7 +838,7 @@ MACHINE_CONFIG_START(m20_state::m20)
MCFG_PIT8253_CLK2(1230782)
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, m20_state, timer_tick_w))
- MCFG_DEVICE_ADD("i8259", PIC8259, 0)
+ MCFG_DEVICE_ADD(m_i8259, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE(*this, m20_state, int_w))
MCFG_DEVICE_ADD("kbd", RS232_PORT, keyboard, "m20")
@@ -847,7 +847,7 @@ MACHINE_CONFIG_START(m20_state::m20)
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("i8251_2", i8251_device, write_rxd))
- MCFG_DEVICE_ADD("apb", M20_8086, "maincpu", "i8259", RAM_TAG)
+ MCFG_DEVICE_ADD("apb", M20_8086, "maincpu", m_i8259, RAM_TAG)
MCFG_SOFTWARE_LIST_ADD("flop_list","m20")
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/m5.cpp b/src/mame/drivers/m5.cpp
index e0548bcf06e..a6b289916f4 100644
--- a/src/mame/drivers/m5.cpp
+++ b/src/mame/drivers/m5.cpp
@@ -1519,7 +1519,7 @@ MACHINE_CONFIG_START(brno_state::brno)
SCREEN(config, "screen", SCREEN_TYPE_RASTER);
// floppy
- MCFG_DEVICE_ADD(WD2797_TAG, WD2797, 1_MHz_XTAL)
+ WD2797(config, m_fdc, 1_MHz_XTAL);
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG":0", brno_floppies, "35hd", brno_state::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD(WD2797_TAG":1", brno_floppies, "35hd", brno_state::floppy_formats)
diff --git a/src/mame/drivers/mbc200.cpp b/src/mame/drivers/mbc200.cpp
index 08ad9f40389..bcb7bd74dd4 100644
--- a/src/mame/drivers/mbc200.cpp
+++ b/src/mame/drivers/mbc200.cpp
@@ -342,11 +342,11 @@ MACHINE_CONFIG_START(mbc200_state::mbc200)
m_ppi_m->out_pa_callback().set(FUNC(mbc200_state::pm_porta_w));
m_ppi_m->out_pb_callback().set(FUNC(mbc200_state::pm_portb_w));
- MCFG_DEVICE_ADD("uart1", I8251, 0) // INS8251N
+ I8251(config, "uart1", 0); // INS8251N
- MCFG_DEVICE_ADD("uart2", I8251, 0) // INS8251A
+ I8251(config, "uart2", 0); // INS8251A
- MCFG_DEVICE_ADD("fdc", MB8876, 8_MHz_XTAL / 8) // guess
+ MB8876(config, m_fdc, 8_MHz_XTAL / 8); // guess
MCFG_FLOPPY_DRIVE_ADD("fdc:0", mbc200_floppies, "qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", mbc200_floppies, "qd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/mbc55x.cpp b/src/mame/drivers/mbc55x.cpp
index ca363b392ed..c12bdf9e0e1 100644
--- a/src/mame/drivers/mbc55x.cpp
+++ b/src/mame/drivers/mbc55x.cpp
@@ -296,7 +296,7 @@ MACHINE_CONFIG_START(mbc55x_state::mbc55x)
MCFG_MC6845_OUT_HSYNC_CB(WRITELINE(*this, mbc55x_state, vid_vsync_changed))
/* Backing storage */
- MCFG_DEVICE_ADD(FDC_TAG, FD1793, 1_MHz_XTAL)
+ FD1793(config, m_fdc, 1_MHz_XTAL);
MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":0", mbc55x_floppies, "qd", mbc55x_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FDC_TAG ":1", mbc55x_floppies, "qd", mbc55x_state::floppy_formats)
diff --git a/src/mame/drivers/micro20.cpp b/src/mame/drivers/micro20.cpp
index c51a6e0357d..dfd18596394 100644
--- a/src/mame/drivers/micro20.cpp
+++ b/src/mame/drivers/micro20.cpp
@@ -179,7 +179,7 @@ MACHINE_CONFIG_START(micro20_state::micro20)
MCFG_DEVICE_ADD(DUART_B_TAG, MC68681, 3.6864_MHz_XTAL)
- MCFG_DEVICE_ADD(FDC_TAG, WD1772, 16.67_MHz_XTAL / 2)
+ WD1772(config, FDC_TAG, 16.67_MHz_XTAL / 2);
PIT68230(config, m_pit, 16.67_MHz_XTAL / 2);
m_pit->timer_irq_callback().set(FUNC(micro20_state::timerirq_w));
diff --git a/src/mame/drivers/miniframe.cpp b/src/mame/drivers/miniframe.cpp
index 56017aea63f..0397f233673 100644
--- a/src/mame/drivers/miniframe.cpp
+++ b/src/mame/drivers/miniframe.cpp
@@ -236,9 +236,9 @@ MACHINE_CONFIG_START(miniframe_state::miniframe)
ADDRESS_MAP_BANK(config, "ramrombank").set_map(&miniframe_state::ramrombank_map).set_options(ENDIANNESS_BIG, 16, 32, 0x400000);
// floppy
- MCFG_DEVICE_ADD("wd2797", WD2797, 1000000)
-// MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, miniframe_state, wd2797_intrq_w))
-// MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, miniframe_state, wd2797_drq_w))
+ WD2797(config, m_wd2797, 1000000);
+// m_wd2797->intrq_wr_callback().set(FUNC(miniframe_state::wd2797_intrq_w));
+// m_wd2797->drq_wr_callback().set(FUNC(miniframe_state::wd2797_drq_w));
MCFG_FLOPPY_DRIVE_ADD("wd2797:0", miniframe_floppies, "525dd", floppy_image_device::default_floppy_formats)
// 8263s
diff --git a/src/mame/drivers/ms0515.cpp b/src/mame/drivers/ms0515.cpp
index f60b8c76f8b..8f40218318b 100644
--- a/src/mame/drivers/ms0515.cpp
+++ b/src/mame/drivers/ms0515.cpp
@@ -538,7 +538,7 @@ MACHINE_CONFIG_START(ms0515_state::ms0515)
MCFG_PALETTE_ADD("palette", 16)
MCFG_PALETTE_INIT_OWNER(ms0515_state, ms0515)
- MCFG_DEVICE_ADD("vg93", KR1818VG93, 1000000)
+ KR1818VG93(config, m_fdc, 1000000);
MCFG_FLOPPY_DRIVE_ADD("vg93:0", ms0515_floppies, "525qd", ms0515_state::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("vg93:1", ms0515_floppies, "525qd", ms0515_state::floppy_formats)
diff --git a/src/mame/drivers/mycom.cpp b/src/mame/drivers/mycom.cpp
index 273eac68f22..b3f8d2505c3 100644
--- a/src/mame/drivers/mycom.cpp
+++ b/src/mame/drivers/mycom.cpp
@@ -557,7 +557,7 @@ MACHINE_CONFIG_START(mycom_state::mycom)
MCFG_CASSETTE_ADD("cassette")
- MCFG_DEVICE_ADD("fdc", FD1771, 16_MHz_XTAL / 16)
+ FD1771(config, m_fdc, 16_MHz_XTAL / 16);
MCFG_FLOPPY_DRIVE_ADD("fdc:0", mycom_floppies, "525sd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", mycom_floppies, "525sd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/mz2000.cpp b/src/mame/drivers/mz2000.cpp
index 55389a15db8..a3c5a4336cc 100644
--- a/src/mame/drivers/mz2000.cpp
+++ b/src/mame/drivers/mz2000.cpp
@@ -900,7 +900,7 @@ MACHINE_CONFIG_START(mz2000_state::mz2000)
MCFG_PIT8253_CLK1(31250) /* needed by "Art Magic" to boot */
MCFG_PIT8253_CLK2(31250)
- MCFG_DEVICE_ADD("mb8877a", MB8877, 1_MHz_XTAL)
+ MB8877(config, m_mb8877a, 1_MHz_XTAL);
MCFG_FLOPPY_DRIVE_ADD("mb8877a:0", mz2000_floppies, "dd", mz2000_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("mb8877a:1", mz2000_floppies, "dd", mz2000_state::floppy_formats)
diff --git a/src/mame/drivers/mz2500.cpp b/src/mame/drivers/mz2500.cpp
index 5bbacf1d132..78abc032239 100644
--- a/src/mame/drivers/mz2500.cpp
+++ b/src/mame/drivers/mz2500.cpp
@@ -1832,7 +1832,7 @@ MACHINE_CONFIG_START(mz2500_state::mz2500)
MCFG_PIT8253_CLK2(16) //CH2, used by Super MZ demo / The Black Onyx and a few others (TODO: timing of this)
MCFG_PIT8253_OUT2_HANDLER(WRITELINE("pit", pit8253_device, write_clk1))
- MCFG_DEVICE_ADD("mb8877a", MB8877, 1_MHz_XTAL)
+ MB8877(config, m_fdc, 1_MHz_XTAL);
MCFG_FLOPPY_DRIVE_ADD("mb8877a:0", mz2500_floppies, "dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("mb8877a:1", mz2500_floppies, "dd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/ngen.cpp b/src/mame/drivers/ngen.cpp
index f56dbc11afa..9d7e2e0bbda 100644
--- a/src/mame/drivers/ngen.cpp
+++ b/src/mame/drivers/ngen.cpp
@@ -93,8 +93,8 @@ public:
m_pic(*this,"pic"),
m_pit(*this,"pit"),
m_hdc(*this,"hdc"),
- m_disk_rom(*this,"disk"),
m_fdc(*this,"fdc"),
+ m_disk_rom(*this,"disk"),
m_fd0(*this,"fdc:0"),
m_fdc_timer(*this,"fdc_timer"),
m_hdc_timer(*this,"hdc_timer"),
@@ -149,6 +149,7 @@ protected:
required_device<pic8259_device> m_pic;
required_device<pit8254_device> m_pit;
optional_device<wd2010_device> m_hdc;
+ optional_device<wd2797_device> m_fdc;
private:
DECLARE_WRITE16_MEMBER(cpu_peripheral_cb);
@@ -180,7 +181,6 @@ private:
optional_memory_region m_disk_rom;
memory_array m_vram;
memory_array m_fontram;
- optional_device<wd2797_device> m_fdc;
optional_device<floppy_connector> m_fd0;
optional_device<pit8253_device> m_fdc_timer;
optional_device<pit8253_device> m_hdc_timer;
@@ -1023,10 +1023,10 @@ MACHINE_CONFIG_START(ngen_state::ngen)
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, ngen_state,timer_clk_out))
// floppy disk / hard disk module (WD2797 FDC, WD1010 HDC, plus an 8253 timer for each)
- MCFG_DEVICE_ADD("fdc", WD2797, 20_MHz_XTAL / 20)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, ngen_state,fdc_irq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE("maincpu",i80186_cpu_device,drq1_w))
- MCFG_WD_FDC_FORCE_READY
+ WD2797(config, m_fdc, 20_MHz_XTAL / 20);
+ m_fdc->intrq_wr_callback().set(FUNC(ngen_state::fdc_irq_w));
+ m_fdc->drq_wr_callback().set(m_maincpu, FUNC(i80186_cpu_device::drq1_w));
+ m_fdc->set_force_ready(true);
MCFG_DEVICE_ADD("fdc_timer", PIT8253, 0)
MCFG_PIT8253_CLK0(0)
MCFG_PIT8253_OUT0_HANDLER(WRITELINE(m_pic,pic8259_device,ir5_w)) // clocked on FDC data register access
@@ -1135,10 +1135,10 @@ MACHINE_CONFIG_START(ngen386_state::ngen386)
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, ngen386_state,timer_clk_out))
// floppy disk / hard disk module (WD2797 FDC, WD1010 HDC, plus an 8253 timer for each)
- MCFG_DEVICE_ADD("fdc", WD2797, 20_MHz_XTAL / 20)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, ngen386_state,fdc_irq_w))
-// MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE("i386cpu",i80186_cpu_device,drq1_w))
- MCFG_WD_FDC_FORCE_READY
+ WD2797(config, m_fdc, 20_MHz_XTAL / 20);
+ m_fdc->intrq_wr_callback().set(FUNC(ngen386_state::fdc_irq_w));
+ //m_fdc->drq_wr_callback().set(m_i386cpu, FUNC(i80186_cpu_device_device::drq1_w));
+ m_fdc->set_force_ready(true);
MCFG_DEVICE_ADD("fdc_timer", PIT8253, 0)
MCFG_PIT8253_CLK0(0)
MCFG_PIT8253_OUT0_HANDLER(WRITELINE("pic",pic8259_device,ir5_w)) // clocked on FDC data register access
diff --git a/src/mame/drivers/notetaker.cpp b/src/mame/drivers/notetaker.cpp
index 34a0ba61357..bfcfed4c855 100644
--- a/src/mame/drivers/notetaker.cpp
+++ b/src/mame/drivers/notetaker.cpp
@@ -857,7 +857,7 @@ MACHINE_CONFIG_START(notetaker_state::notetakr)
m_eiauart->write_dav_callback().set("iop_pic8259", FUNC(pic8259_device::ir3_w)); // EIADataReady = EIAInt
/* Floppy */
- MCFG_DEVICE_ADD("wd1791", FD1791, (((24_MHz_XTAL/3)/2)/2)) // 2mhz, from 24mhz ip clock divided by 6 via 8284, an additional 2 by LS161 at #e1 on display/floppy board
+ FD1791(config, m_fdc, (((24_MHz_XTAL/3)/2)/2)); // 2mhz, from 24mhz ip clock divided by 6 via 8284, an additional 2 by LS161 at #e1 on display/floppy board
MCFG_FLOPPY_DRIVE_ADD("wd1791:0", notetaker_floppies, "525dd", floppy_image_device::default_floppy_formats)
/* sound hardware */
diff --git a/src/mame/drivers/octopus.cpp b/src/mame/drivers/octopus.cpp
index d9b269e6593..34f7b6a5878 100644
--- a/src/mame/drivers/octopus.cpp
+++ b/src/mame/drivers/octopus.cpp
@@ -958,9 +958,9 @@ MACHINE_CONFIG_START(octopus_state::octopus)
MCFG_DEVICE_ADD("keyboard_clock_tx", CLOCK, 1200 * 64)
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE("keyboard",i8251_device,write_txc))
- MCFG_DEVICE_ADD("fdc", FD1793, 16_MHz_XTAL / 8)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE("pic_master",pic8259_device, ir5_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE("dma2",am9517a_device, dreq1_w))
+ FD1793(config, m_fdc, 16_MHz_XTAL / 8);
+ m_fdc->intrq_wr_callback().set(m_pic1, FUNC(pic8259_device::ir5_w));
+ m_fdc->drq_wr_callback().set(m_dma2, FUNC(am9517a_device::dreq1_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", octopus_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", octopus_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_SOFTWARE_LIST_ADD("fd_list","octopus")
@@ -978,7 +978,7 @@ MACHINE_CONFIG_START(octopus_state::octopus)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
Z80SIO(config, m_serial, 16_MHz_XTAL / 4); // clock rate not mentioned in tech manual
- m_serial->out_int_callback().set("pic_master", FUNC(pic8259_device::ir1_w));
+ m_serial->out_int_callback().set(m_pic1, FUNC(pic8259_device::ir1_w));
m_serial->out_txda_callback().set("serial_a", FUNC(rs232_port_device::write_txd));
m_serial->out_txdb_callback().set("serial_b", FUNC(rs232_port_device::write_txd));
m_serial->out_rtsa_callback().set("serial_a", FUNC(rs232_port_device::write_rts));
diff --git a/src/mame/drivers/olytext.cpp b/src/mame/drivers/olytext.cpp
index 7fa329897c3..78c36763dec 100644
--- a/src/mame/drivers/olytext.cpp
+++ b/src/mame/drivers/olytext.cpp
@@ -163,7 +163,7 @@ MACHINE_CONFIG_START( olytext_state::olytext )
MCFG_PALETTE_ADD_MONOCHROME("palette")
/* devices */
- MCFG_DEVICE_ADD("fdc", WD1772, 16_MHz_XTAL / 8) // divisor guess
+ WD1772(config, "fdc", 16_MHz_XTAL / 8); // divisor guess
MCFG_FLOPPY_DRIVE_ADD("fdc:0", olytext_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", olytext_floppies, "525qd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/osbexec.cpp b/src/mame/drivers/osbexec.cpp
index b3324e2adaa..4f937ae5d14 100644
--- a/src/mame/drivers/osbexec.cpp
+++ b/src/mame/drivers/osbexec.cpp
@@ -598,8 +598,8 @@ MACHINE_CONFIG_START(osbexec_state::osbexec)
printer_port.dcd_handler().set(m_sio, FUNC(z80sio_device::dcdb_w));
printer_port.cts_handler().set(m_sio, FUNC(z80sio_device::ctsb_w));
- MCFG_DEVICE_ADD("mb8877", MB8877, MAIN_CLOCK/24)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(m_pia[1], pia6821_device, cb1_w))
+ MB8877(config, m_mb8877, MAIN_CLOCK/24);
+ m_mb8877->intrq_wr_callback().set(m_pia[1], FUNC(pia6821_device::cb1_w));
MCFG_FLOPPY_DRIVE_ADD("mb8877:0", osborne2_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("mb8877:1", osborne2_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/osborne1.cpp b/src/mame/drivers/osborne1.cpp
index 8120a063d81..17f13aa3b33 100644
--- a/src/mame/drivers/osborne1.cpp
+++ b/src/mame/drivers/osborne1.cpp
@@ -330,8 +330,8 @@ MACHINE_CONFIG_START(osborne1_state::osborne1)
rs232.cts_handler().set(m_acia, FUNC(acia6850_device::write_cts));
rs232.ri_handler().set(m_pia1, FUNC(pia6821_device::ca2_w));
- MCFG_DEVICE_ADD(m_fdc, MB8877, MAIN_CLOCK/16)
- MCFG_WD_FDC_FORCE_READY
+ MB8877(config, m_fdc, MAIN_CLOCK/16);
+ m_fdc->set_force_ready(true);
MCFG_FLOPPY_DRIVE_ADD(m_floppy0, osborne1_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(m_floppy1, osborne1_floppies, "525ssdd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/pcd.cpp b/src/mame/drivers/pcd.cpp
index b85bb31258f..1f632418c62 100644
--- a/src/mame/drivers/pcd.cpp
+++ b/src/mame/drivers/pcd.cpp
@@ -506,10 +506,10 @@ MACHINE_CONFIG_START(pcd_state::pcd)
MCFG_TIMER_DRIVER_ADD_PERIODIC("timer0_tick", pcd_state, timer0_tick, attotime::from_hz(16_MHz_XTAL / 24)) // adjusted to pass post
- MCFG_DEVICE_ADD("pic1", PIC8259, 0)
+ MCFG_DEVICE_ADD(m_pic1, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE("maincpu", i80186_cpu_device, int0_w))
- MCFG_DEVICE_ADD("pic2", PIC8259, 0)
+ MCFG_DEVICE_ADD(m_pic2, PIC8259, 0)
MCFG_PIC8259_OUT_INT_CB(WRITELINE("maincpu", i80186_cpu_device, int1_w))
MCFG_DEVICE_ADD("video", PCD_VIDEO, 0)
@@ -520,10 +520,10 @@ MACHINE_CONFIG_START(pcd_state::pcd)
NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_1);
// floppy disk controller
- MCFG_DEVICE_ADD("fdc", WD2793, 16_MHz_XTAL / 8)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE("pic1", pic8259_device, ir6_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE("maincpu", i80186_cpu_device, drq1_w))
- MCFG_WD_FDC_ENMF_CALLBACK(CONSTANT(0))
+ WD2793(config, m_fdc, 16_MHz_XTAL / 8);
+ m_fdc->intrq_wr_callback().set(m_pic1, FUNC(pic8259_device::ir6_w));
+ m_fdc->drq_wr_callback().set(m_maincpu, FUNC(i80186_cpu_device::drq1_w));
+ m_fdc->enmf_rd_callback().set_constant(0);
// floppy drives
MCFG_FLOPPY_DRIVE_ADD("fdc:0", pcd_floppies, "55f", pcd_state::floppy_formats)
@@ -531,16 +531,16 @@ MACHINE_CONFIG_START(pcd_state::pcd)
// usart
MCFG_DEVICE_ADD("usart1", MC2661, 4.9152_MHz_XTAL)
- MCFG_MC2661_RXRDY_HANDLER(WRITELINE("pic1", pic8259_device, ir3_w))
- MCFG_MC2661_TXRDY_HANDLER(WRITELINE("pic1", pic8259_device, ir3_w))
+ MCFG_MC2661_RXRDY_HANDLER(WRITELINE(m_pic1, pic8259_device, ir3_w))
+ MCFG_MC2661_TXRDY_HANDLER(WRITELINE(m_pic1, pic8259_device, ir3_w))
MCFG_MC2661_TXD_HANDLER(WRITELINE("rs232_1", rs232_port_device, write_txd))
MCFG_DEVICE_ADD("usart2", MC2661, 4.9152_MHz_XTAL)
- MCFG_MC2661_RXRDY_HANDLER(WRITELINE("pic1", pic8259_device, ir2_w))
- //MCFG_MC2661_TXRDY_HANDLER(WRITELINE("pic1", pic8259_device, ir2_w)) // this gets stuck high causing the keyboard to not work
+ MCFG_MC2661_RXRDY_HANDLER(WRITELINE(m_pic1, pic8259_device, ir2_w))
+ //MCFG_MC2661_TXRDY_HANDLER(WRITELINE(m_pic1, pic8259_device, ir2_w)) // this gets stuck high causing the keyboard to not work
MCFG_MC2661_TXD_HANDLER(WRITELINE("keyboard", pcd_keyboard_device, t0_w))
MCFG_DEVICE_ADD("usart3", MC2661, 4.9152_MHz_XTAL)
- MCFG_MC2661_RXRDY_HANDLER(WRITELINE("pic1", pic8259_device, ir4_w))
- MCFG_MC2661_TXRDY_HANDLER(WRITELINE("pic1", pic8259_device, ir4_w))
+ MCFG_MC2661_RXRDY_HANDLER(WRITELINE(m_pic1, pic8259_device, ir4_w))
+ MCFG_MC2661_TXRDY_HANDLER(WRITELINE(m_pic1, pic8259_device, ir4_w))
MCFG_MC2661_TXD_HANDLER(WRITELINE("rs232_2", rs232_port_device, write_txd))
MCFG_DEVICE_ADD("rs232_1", RS232_PORT, default_rs232_devices, nullptr)
@@ -555,7 +555,7 @@ MACHINE_CONFIG_START(pcd_state::pcd)
// rtc
MCFG_DEVICE_ADD("rtc", MC146818, 32.768_kHz_XTAL)
- MCFG_MC146818_IRQ_HANDLER(WRITELINE("pic1", pic8259_device, ir7_w))
+ MCFG_MC146818_IRQ_HANDLER(WRITELINE(m_pic1, pic8259_device, ir7_w))
MCFG_MC146818_BINARY(true)
MCFG_MC146818_BINARY_YEAR(true)
MCFG_MC146818_EPOCH(1900)
diff --git a/src/mame/drivers/pg685.cpp b/src/mame/drivers/pg685.cpp
index 1a1920b39c5..60a6f89e2ad 100644
--- a/src/mame/drivers/pg685.cpp
+++ b/src/mame/drivers/pg685.cpp
@@ -412,8 +412,8 @@ MACHINE_CONFIG_START(pg685_state::pg685_backplane)
MACHINE_CONFIG_END
MACHINE_CONFIG_START(pg685_state::pg685_module)
- MCFG_DEVICE_ADD("fdc", FD1797, XTAL(4'000'000) / 2) // divider guessed
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE("mainpic", pic8259_device, ir4_w))
+ FD1797(config, m_fdc, XTAL(4'000'000) / 2); // divider guessed
+ m_fdc->intrq_wr_callback().set("mainpic", FUNC(pic8259_device::ir4_w));
MCFG_DEVICE_ADD("modppi1", I8255, 0)
MCFG_DEVICE_ADD("modppi2", I8255, 0)
@@ -464,8 +464,8 @@ MACHINE_CONFIG_START(pg685_state::pg675)
// printer
// floppy
- // MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, zorba_state, fdc_intrq_w))
- // MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, zorba_state, fdc_drq_w))
+ // m_fdc->intrq_wr_callback(FUNC(zorba_state::fdc_intrq_w));
+ // m_fdc->drq_wr_callback(FUNC(zorba_state::fdc_drq_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", pg675_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", pg675_floppies, "525dd", floppy_image_device::default_floppy_formats)
@@ -515,7 +515,7 @@ MACHINE_CONFIG_START(pg685_state::pg685)
// floppy
- // MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, zorba_state, fdc_drq_w))
+ // m_fdc->drq_wr_callback(FUNC(zorba_state::fdc_drq_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", pg685_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
@@ -565,8 +565,7 @@ MACHINE_CONFIG_START(pg685_state::pg685oua12)
// printer
// floppy
-
- // MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, zorba_state, fdc_drq_w))
+ // m_fdc->drq_wr_callback(FUNC(zorba_state::fdc_drq_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", pg685_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
diff --git a/src/mame/drivers/poly.cpp b/src/mame/drivers/poly.cpp
index 3b4765af391..e3d7fc38168 100644
--- a/src/mame/drivers/poly.cpp
+++ b/src/mame/drivers/poly.cpp
@@ -361,9 +361,9 @@ MACHINE_CONFIG_START(polydev_state::polydev)
poly(config);
/* fdc */
- MCFG_DEVICE_ADD("fdc", FD1771, 12.0_MHz_XTAL / 12)
- MCFG_WD_FDC_HLD_CALLBACK(WRITELINE(*this, polydev_state, motor_w))
- MCFG_WD_FDC_FORCE_READY
+ FD1771(config, m_fdc, 12.0_MHz_XTAL / 12);
+ m_fdc->hld_wr_callback().set(FUNC(polydev_state::motor_w));
+ m_fdc->set_force_ready(true);
MCFG_FLOPPY_DRIVE_ADD("fdc:0", poly_floppies, "525sd", polydev_state::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
diff --git a/src/mame/drivers/proteus.cpp b/src/mame/drivers/proteus.cpp
index a75ac0d4c00..79d96e73130 100644
--- a/src/mame/drivers/proteus.cpp
+++ b/src/mame/drivers/proteus.cpp
@@ -334,9 +334,9 @@ MACHINE_CONFIG_START(proteus_state::proteus)
m_irqs->output_handler().append_inputline(m_z80, INPUT_LINE_IRQ0);
/* fdc */
- MCFG_DEVICE_ADD("fdc", FD1771, 4_MHz_XTAL / 2)
- MCFG_WD_FDC_HLD_CALLBACK(WRITELINE(*this, proteus_state, motor_w))
- MCFG_WD_FDC_FORCE_READY
+ FD1771(config, m_fdc, 4_MHz_XTAL / 2);
+ m_fdc->hld_wr_callback().set(FUNC(proteus_state::motor_w));
+ m_fdc->set_force_ready(true);
MCFG_FLOPPY_DRIVE_ADD("fdc:0", proteus_floppies, "8dssd", proteus_state::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
diff --git a/src/mame/drivers/pt68k4.cpp b/src/mame/drivers/pt68k4.cpp
index 8c3a561a56f..e7c30320de1 100644
--- a/src/mame/drivers/pt68k4.cpp
+++ b/src/mame/drivers/pt68k4.cpp
@@ -421,7 +421,7 @@ MACHINE_CONFIG_START(pt68k4_state::pt68k2)
MCFG_DEVICE_ADD(TIMEKEEPER_TAG, M48T02, 0)
- MCFG_DEVICE_ADD(WDFDC_TAG, WD1772, 16_MHz_XTAL / 2)
+ WD1772(config, m_wdfdc, 16_MHz_XTAL / 2);
MCFG_FLOPPY_DRIVE_ADD(m_floppy_connector[0], pt68k_floppies, "525dd", pt68k4_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(m_floppy_connector[1], pt68k_floppies, "525dd", pt68k4_state::floppy_formats)
diff --git a/src/mame/drivers/pulsar.cpp b/src/mame/drivers/pulsar.cpp
index 4b7767e43df..5caa3e4732b 100644
--- a/src/mame/drivers/pulsar.cpp
+++ b/src/mame/drivers/pulsar.cpp
@@ -245,7 +245,7 @@ MACHINE_CONFIG_START(pulsar_state::pulsar)
brg.ft_handler().set("dart", FUNC(z80dart_device::txcb_w));
brg.ft_handler().append("dart", FUNC(z80dart_device::rxcb_w));
- MCFG_DEVICE_ADD("fdc", FD1797, 4_MHz_XTAL / 2)
+ FD1797(config, m_fdc, 4_MHz_XTAL / 2);
MCFG_FLOPPY_DRIVE_ADD("fdc:0", pulsar_floppies, "flop", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", pulsar_floppies, "flop", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/rc759.cpp b/src/mame/drivers/rc759.cpp
index 70aae956f7f..33a1c85d5a1 100644
--- a/src/mame/drivers/rc759.cpp
+++ b/src/mame/drivers/rc759.cpp
@@ -596,9 +596,9 @@ MACHINE_CONFIG_START(rc759_state::rc759)
MCFG_ISBX_SLOT_MDRQT_CALLBACK(WRITELINE("maincpu", i80186_cpu_device, drq0_w))
// floppy disk controller
- MCFG_DEVICE_ADD("fdc", WD2797, 1000000)
-// MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE("pic", pic8259_device, ir0_w))
-// MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE("maincpu", i80186_cpu_device, drq1_w))
+ WD2797(config, m_fdc, 1000000);
+// m_fdc->intrq_wr_callback().set(m_pic, FUNC(pic8259_device::ir0_w));
+// m_fdc->drq_wr_callback().set(m_maincpu, FUNC(i80186_cpu_device::drq1_w));
// floppy drives
MCFG_FLOPPY_DRIVE_ADD("fdc:0", rc759_floppies, "hd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/rm380z.cpp b/src/mame/drivers/rm380z.cpp
index e39a5ba0c50..45df7b155b7 100644
--- a/src/mame/drivers/rm380z.cpp
+++ b/src/mame/drivers/rm380z.cpp
@@ -263,7 +263,7 @@ MACHINE_CONFIG_START(rm380z_state::rm380z)
RAM(config, RAM_TAG).set_default_size("56K");
/* floppy disk */
- MCFG_DEVICE_ADD("wd1771", FD1771, 1_MHz_XTAL)
+ FD1771(config, m_fdc, 1_MHz_XTAL);
MCFG_FLOPPY_DRIVE_ADD("wd1771:0", rm380z_floppies, "sssd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("wd1771:1", rm380z_floppies, "sssd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/samcoupe.cpp b/src/mame/drivers/samcoupe.cpp
index 1dc48b07a20..ada3169c91a 100644
--- a/src/mame/drivers/samcoupe.cpp
+++ b/src/mame/drivers/samcoupe.cpp
@@ -541,7 +541,7 @@ MACHINE_CONFIG_START(samcoupe_state::samcoupe)
MCFG_SOFTWARE_LIST_ADD("cass_list","samcoupe_cass")
- MCFG_DEVICE_ADD("wd1772", WD1772, SAMCOUPE_XTAL_X1/3)
+ WD1772(config, m_fdc, SAMCOUPE_XTAL_X1/3);
MCFG_FLOPPY_DRIVE_ADD("wd1772:0", samcoupe_floppies, "35dd", samcoupe_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("wd1772:1", samcoupe_floppies, "35dd", samcoupe_state::floppy_formats)
MCFG_SOFTWARE_LIST_ADD("flop_list","samcoupe_flop")
diff --git a/src/mame/drivers/sbrain.cpp b/src/mame/drivers/sbrain.cpp
index 447af06bb1d..fc1b7caa0ff 100644
--- a/src/mame/drivers/sbrain.cpp
+++ b/src/mame/drivers/sbrain.cpp
@@ -583,7 +583,7 @@ MACHINE_CONFIG_START(sbrain_state::sbrain)
brg.ft_handler().set(m_u1, FUNC(i8251_device::write_txc));
brg.ft_handler().append(m_u1, FUNC(i8251_device::write_rxc));
- MCFG_DEVICE_ADD("fdc", FD1791, 16_MHz_XTAL / 16)
+ FD1791(config, m_fdc, 16_MHz_XTAL / 16);
MCFG_FLOPPY_DRIVE_ADD("fdc:0", sbrain_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", sbrain_floppies, "525dd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/slicer.cpp b/src/mame/drivers/slicer.cpp
index 71745df4620..9ffdeb6de7b 100644
--- a/src/mame/drivers/slicer.cpp
+++ b/src/mame/drivers/slicer.cpp
@@ -113,9 +113,9 @@ MACHINE_CONFIG_START(slicer_state::slicer)
MCFG_DEVICE_ADD("rs232_2", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("duart", scn2681_device, rx_b_w))
- MCFG_DEVICE_ADD("fdc", FD1797, 16_MHz_XTAL / 2 / 8)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE("maincpu", i80186_cpu_device, int1_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE("maincpu", i80186_cpu_device, drq0_w))
+ FD1797(config, m_fdc, 16_MHz_XTAL / 2 / 8);
+ m_fdc->intrq_wr_callback().set("maincpu", FUNC(i80186_cpu_device::int1_w));
+ m_fdc->drq_wr_callback().set("maincpu", FUNC(i80186_cpu_device::drq0_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", slicer_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", slicer_floppies, nullptr, floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:2", slicer_floppies, nullptr, floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/smc777.cpp b/src/mame/drivers/smc777.cpp
index 991dc91b4dd..6bc76fd9cd8 100644
--- a/src/mame/drivers/smc777.cpp
+++ b/src/mame/drivers/smc777.cpp
@@ -1050,9 +1050,9 @@ MACHINE_CONFIG_START(smc777_state::smc777)
MCFG_MC6845_CHAR_WIDTH(8)
// floppy controller
- MCFG_DEVICE_ADD("fdc", MB8876, 1_MHz_XTAL)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, smc777_state, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, smc777_state, fdc_drq_w))
+ MB8876(config, m_fdc, 1_MHz_XTAL);
+ m_fdc->intrq_wr_callback().set(FUNC(smc777_state::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(smc777_state::fdc_drq_w));
// does it really support 16 of them?
MCFG_FLOPPY_DRIVE_ADD("fdc:0", smc777_floppies, "ssdd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/special.cpp b/src/mame/drivers/special.cpp
index 72bf69773bd..dced843e63e 100644
--- a/src/mame/drivers/special.cpp
+++ b/src/mame/drivers/special.cpp
@@ -468,8 +468,8 @@ MACHINE_CONFIG_START(special_state::specimx)
m_ppi->in_pc_callback().set(FUNC(special_state::specialist_8255_portc_r));
m_ppi->out_pc_callback().set(FUNC(special_state::specialist_8255_portc_w));
- MCFG_DEVICE_ADD("fd1793", FD1793, 8_MHz_XTAL / 8)
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, special_state, fdc_drq))
+ FD1793(config, m_fdc, 8_MHz_XTAL / 8);
+ m_fdc->drq_wr_callback().set(FUNC(special_state::fdc_drq));
MCFG_FLOPPY_DRIVE_ADD("fd0", specimx_floppies, "525qd", special_state::specimx_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fd1", specimx_floppies, "525qd", special_state::specimx_floppy_formats)
MCFG_SOFTWARE_LIST_ADD("flop_list","special_flop")
@@ -520,8 +520,8 @@ MACHINE_CONFIG_START(special_state::erik)
m_ppi->in_pc_callback().set(FUNC(special_state::specialist_8255_portc_r));
m_ppi->out_pc_callback().set(FUNC(special_state::specialist_8255_portc_w));
- MCFG_DEVICE_ADD("fd1793", FD1793, 8_MHz_XTAL / 8)
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, special_state, fdc_drq))
+ FD1793(config, m_fdc, 8_MHz_XTAL / 8);
+ m_fdc->drq_wr_callback().set(FUNC(special_state::fdc_drq));
MCFG_FLOPPY_DRIVE_ADD("fd0", specimx_floppies, "525qd", special_state::specimx_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fd1", specimx_floppies, "525qd", special_state::specimx_floppy_formats)
diff --git a/src/mame/drivers/squale.cpp b/src/mame/drivers/squale.cpp
index df79838b2e5..18e101de8f0 100644
--- a/src/mame/drivers/squale.cpp
+++ b/src/mame/drivers/squale.cpp
@@ -830,7 +830,7 @@ MACHINE_CONFIG_START(squale_state::squale)
MCFG_TIMER_DRIVER_ADD_SCANLINE("squale_sl", squale_state, squale_scanline, "screen", 0, 10)
/* Floppy */
- MCFG_DEVICE_ADD("wd1770", WD1770, 8_MHz_XTAL)
+ WD1770(config, m_fdc, 8_MHz_XTAL);
MCFG_FLOPPY_DRIVE_ADD("wd1770:0", squale_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("wd1770:1", squale_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_SOFTWARE_LIST_ADD("flop525_list", "squale")
diff --git a/src/mame/drivers/tavernie.cpp b/src/mame/drivers/tavernie.cpp
index 3351018c4a4..6d11f3fec54 100644
--- a/src/mame/drivers/tavernie.cpp
+++ b/src/mame/drivers/tavernie.cpp
@@ -371,7 +371,7 @@ MACHINE_CONFIG_START(tavernie_state::ivg09)
m_pia_ivg->writepa_handler().set(FUNC(tavernie_state::pa_ivg_w));
m_pia_ivg->cb2_handler().set("beeper", FUNC(beep_device::set_state));
- MCFG_DEVICE_ADD("fdc", FD1795, 8_MHz_XTAL / 8)
+ FD1795(config, m_fdc, 8_MHz_XTAL / 8);
MCFG_FLOPPY_DRIVE_ADD("fdc:0", ifd09_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tdv2324.cpp b/src/mame/drivers/tdv2324.cpp
index e4e0b772357..7e4a6483438 100644
--- a/src/mame/drivers/tdv2324.cpp
+++ b/src/mame/drivers/tdv2324.cpp
@@ -298,7 +298,7 @@ MACHINE_CONFIG_START(tdv2324_state::tdv2324)
Z80SIO2(config, MK3887N4_TAG, 8000000/2);
- MCFG_DEVICE_ADD(FD1797PL02_TAG, FD1797, 8000000/4)
+ FD1797(config, FD1797PL02_TAG, 8000000/4);
MCFG_FLOPPY_DRIVE_ADD(FD1797PL02_TAG":0", tdv2324_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1797PL02_TAG":1", tdv2324_floppies, "8dsdd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/thomson.cpp b/src/mame/drivers/thomson.cpp
index eaeffae616a..6f357037517 100644
--- a/src/mame/drivers/thomson.cpp
+++ b/src/mame/drivers/thomson.cpp
@@ -690,7 +690,7 @@ MACHINE_CONFIG_START(thomson_state::to7)
MCFG_LEGACY_FLOPPY_CONFIG(thomson_floppy_interface)
MCFG_LEGACY_FLOPPY_IDX_CB(WRITELINE(*this, thomson_state, fdc_index_3_w))
- MCFG_DEVICE_ADD("wd2793", WD2793, 16_MHz_XTAL / 16)
+ WD2793(config, m_wd2793_fdc, 16_MHz_XTAL / 16);
MCFG_FLOPPY_DRIVE_ADD("wd2793:0", cd90_640_floppies, "dd", thomson_state::cd90_640_formats)
MCFG_FLOPPY_DRIVE_ADD("wd2793:1", cd90_640_floppies, "dd", thomson_state::cd90_640_formats)
diff --git a/src/mame/drivers/tiki100.cpp b/src/mame/drivers/tiki100.cpp
index 4a5818adafa..5d46bc5c1d8 100644
--- a/src/mame/drivers/tiki100.cpp
+++ b/src/mame/drivers/tiki100.cpp
@@ -748,7 +748,7 @@ MACHINE_CONFIG_START(tiki100_state::tiki100)
MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", tiki100_state, ctc_tick, attotime::from_hz(8_MHz_XTAL / 4))
- MCFG_DEVICE_ADD(FD1797_TAG, FD1797, 8_MHz_XTAL / 8) // FD1767PL-02 or FD1797-PL
+ FD1797(config, m_fdc, 8_MHz_XTAL / 8); // FD1767PL-02 or FD1797-PL
MCFG_FLOPPY_DRIVE_ADD(FD1797_TAG":0", tiki100_floppies, "525qd", tiki100_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(FD1797_TAG":1", tiki100_floppies, "525qd", tiki100_state::floppy_formats)
diff --git a/src/mame/drivers/trs80.cpp b/src/mame/drivers/trs80.cpp
index 4b85d5f5c1e..ad7bf3fae89 100644
--- a/src/mame/drivers/trs80.cpp
+++ b/src/mame/drivers/trs80.cpp
@@ -537,8 +537,8 @@ MACHINE_CONFIG_START(trs80_state::model1) // model I, level II
MCFG_QUICKLOAD_ADD("quickload", trs80_state, trs80_cmd, "cmd", 1.0)
- MCFG_DEVICE_ADD("fdc", FD1793, 4_MHz_XTAL / 4) // todo: should be fd1771
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, trs80_state, intrq_w))
+ FD1793(config, m_fdc, 4_MHz_XTAL / 4); // todo: should be fd1771
+ m_fdc->intrq_wr_callback().set(FUNC(trs80_state::intrq_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", trs80_floppies, "sssd", trs80_state::floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
diff --git a/src/mame/drivers/trs80m2.cpp b/src/mame/drivers/trs80m2.cpp
index f5c85f5d3e0..84f77da5b61 100644
--- a/src/mame/drivers/trs80m2.cpp
+++ b/src/mame/drivers/trs80m2.cpp
@@ -732,9 +732,9 @@ MACHINE_CONFIG_START(trs80m2_state::trs80m2)
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, trs80m2_state, vsync_w))
// 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(m_dmac, z80dma_device, rdy_w))
+ FD1791(config, m_fdc, 8_MHz_XTAL / 4);
+ m_fdc->intrq_wr_callback().set(m_pio, FUNC(z80pio_device::pa_w));
+ m_fdc->drq_wr_callback().set(m_dmac, FUNC(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)
@@ -820,9 +820,9 @@ MACHINE_CONFIG_START(trs80m16_state::trs80m16)
MCFG_MC6845_OUT_VSYNC_CB(WRITELINE(*this, trs80m2_state, vsync_w))
// 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(m_dmac, z80dma_device, rdy_w))
+ FD1791(config, m_fdc, 8_MHz_XTAL / 4);
+ m_fdc->intrq_wr_callback().set(m_pio, FUNC(z80pio_device::pa_w));
+ m_fdc->drq_wr_callback().set(m_dmac, FUNC(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)
diff --git a/src/mame/drivers/trs80m3.cpp b/src/mame/drivers/trs80m3.cpp
index 42b463ca2c8..2d10aad5d9d 100644
--- a/src/mame/drivers/trs80m3.cpp
+++ b/src/mame/drivers/trs80m3.cpp
@@ -361,9 +361,9 @@ MACHINE_CONFIG_START(trs80m3_state::model3)
MCFG_QUICKLOAD_ADD("quickload", trs80m3_state, trs80_cmd, "cmd", 1.0)
- MCFG_DEVICE_ADD("fdc", FD1793, 4_MHz_XTAL / 4)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, trs80m3_state, intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, trs80m3_state, drq_w))
+ FD1793(config, m_fdc, 4_MHz_XTAL / 4);
+ m_fdc->intrq_wr_callback().set(FUNC(trs80m3_state::intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(trs80m3_state::drq_w));
// Internal drives
MCFG_FLOPPY_DRIVE_ADD("fdc:0", trs80_floppies, "sssd", trs80m3_state::floppy_formats)
diff --git a/src/mame/drivers/ts802.cpp b/src/mame/drivers/ts802.cpp
index 16a2b28c4ef..36d2579f0e2 100644
--- a/src/mame/drivers/ts802.cpp
+++ b/src/mame/drivers/ts802.cpp
@@ -43,8 +43,10 @@ public:
void init_ts802();
+protected:
+ virtual void machine_reset() override;
+
private:
- DECLARE_MACHINE_RESET(ts802);
DECLARE_READ8_MEMBER(port00_r) { return 0x80; };
DECLARE_READ8_MEMBER(port0c_r) { return 1; };
DECLARE_READ8_MEMBER(port0e_r) { return 0; };
@@ -146,7 +148,7 @@ static void ts802_floppies(device_slot_interface &device)
device.option_add("525dd", FLOPPY_525_DD);
}
-MACHINE_RESET_MEMBER( ts802_state, ts802 )
+void ts802_state::machine_reset()
{
membank("bankr0")->set_entry(0); // point at rom
membank("bankw0")->set_entry(0); // always write to ram
@@ -195,8 +197,6 @@ MACHINE_CONFIG_START(ts802_state::ts802)
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))
@@ -218,9 +218,8 @@ MACHINE_CONFIG_START(ts802_state::ts802)
z80ctc_device& ctc(Z80CTC(config, "ctc", 16_MHz_XTAL / 4));
ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- MCFG_DEVICE_ADD("fdc", FD1793, 4'000'000 / 2) // unknown clock
- MCFG_FLOPPY_DRIVE_ADD("fdc:0", ts802_floppies, "525dd", floppy_image_device::default_floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
+ FD1793(config, "fdc", 4'000'000 / 2); // unknown clock
+ FLOPPY_CONNECTOR(config, "fdc:0", ts802_floppies, "525dd", floppy_image_device::default_floppy_formats).enable_sound(true);
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mame/drivers/ts803.cpp b/src/mame/drivers/ts803.cpp
index 62062135e69..03c0f52c2a2 100644
--- a/src/mame/drivers/ts803.cpp
+++ b/src/mame/drivers/ts803.cpp
@@ -462,8 +462,8 @@ MACHINE_CONFIG_START(ts803_state::ts803)
MCFG_RS232_RXD_HANDLER(WRITELINE("dart", z80dart_device, rxa_w))
/* floppy disk */
- MCFG_DEVICE_ADD("fdc", FD1793, 1_MHz_XTAL)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE("sti", z80sti_device, i7_w))
+ FD1793(config, m_fdc, 1_MHz_XTAL);
+ m_fdc->intrq_wr_callback().set("sti", FUNC(z80sti_device::i7_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", ts803_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", ts803_floppies, "525dd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/v1050.cpp b/src/mame/drivers/v1050.cpp
index b1a92e0ad87..f90de13df63 100644
--- a/src/mame/drivers/v1050.cpp
+++ b/src/mame/drivers/v1050.cpp
@@ -1100,9 +1100,9 @@ MACHINE_CONFIG_START(v1050_state::v1050)
MCFG_DEVICE_ADD(CLOCK_SIO_TAG, CLOCK, 16_MHz_XTAL/4)
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, v1050_state, write_sio_clock))
- MCFG_DEVICE_ADD(MB8877_TAG, MB8877, 16_MHz_XTAL/16)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, v1050_state, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, v1050_state, fdc_drq_w))
+ MB8877(config, m_fdc, 16_MHz_XTAL/16);
+ m_fdc->intrq_wr_callback().set(FUNC(v1050_state::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(v1050_state::fdc_drq_w));
MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":0", v1050_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":1", v1050_floppies, "525qd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(MB8877_TAG":2", v1050_floppies, nullptr, floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/v6809.cpp b/src/mame/drivers/v6809.cpp
index db1efe15783..eaf22f42bc0 100644
--- a/src/mame/drivers/v6809.cpp
+++ b/src/mame/drivers/v6809.cpp
@@ -346,7 +346,7 @@ MACHINE_CONFIG_START(v6809_state::v6809)
MCFG_MM58274C_MODE24(0) // 12 hour
MCFG_MM58274C_DAY1(1) // monday
- MCFG_DEVICE_ADD("fdc", MB8876, 16_MHz_XTAL / 16)
+ MB8876(config, m_fdc, 16_MHz_XTAL / 16);
MCFG_FLOPPY_DRIVE_ADD("fdc:0", v6809_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/vixen.cpp b/src/mame/drivers/vixen.cpp
index 9f0bf04d2be..9751536838a 100644
--- a/src/mame/drivers/vixen.cpp
+++ b/src/mame/drivers/vixen.cpp
@@ -786,8 +786,8 @@ MACHINE_CONFIG_START(vixen_state::vixen)
MCFG_RS232_RXD_HANDLER(WRITELINE(P8251A_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(WRITELINE(P8251A_TAG, i8251_device, write_dsr))
- MCFG_DEVICE_ADD(FDC1797_TAG, FD1797, 23.9616_MHz_XTAL / 24)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, vixen_state, fdc_intrq_w))
+ FD1797(config, m_fdc, 23.9616_MHz_XTAL / 24);
+ m_fdc->intrq_wr_callback().set(FUNC(vixen_state::fdc_intrq_w));
MCFG_FLOPPY_DRIVE_ADD(FDC1797_TAG":0", vixen_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD(FDC1797_TAG":1", vixen_floppies, "525dd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/x1.cpp b/src/mame/drivers/x1.cpp
index 690db018178..2b5a93f04c2 100644
--- a/src/mame/drivers/x1.cpp
+++ b/src/mame/drivers/x1.cpp
@@ -2246,9 +2246,9 @@ MACHINE_CONFIG_START(x1_state::x1)
MCFG_VIDEO_START_OVERRIDE(x1_state,x1)
- MCFG_DEVICE_ADD("fdc", MB8877, MAIN_CLOCK / 16)
- // TODO: guesswork, try to implicitily start the motor
- MCFG_WD_FDC_HLD_CALLBACK(WRITELINE(*this, x1_state, hdl_w))
+ MB8877(config, m_fdc, MAIN_CLOCK / 16);
+ // TODO: guesswork, try to implicitly start the motor
+ m_fdc->hld_wr_callback().set(FUNC(x1_state::hdl_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", x1_floppies, "dd", x1_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", x1_floppies, "dd", x1_state::floppy_formats)
@@ -2306,8 +2306,7 @@ MACHINE_CONFIG_START(x1_state::x1turbo)
m_dma->in_iorq_callback().set(FUNC(x1_state::io_read_byte));
m_dma->out_iorq_callback().set(FUNC(x1_state::io_write_byte));
- MCFG_DEVICE_MODIFY("fdc")
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, x1_state, fdc_drq_w))
+ m_fdc->drq_wr_callback().set(FUNC(x1_state::fdc_drq_w));
MCFG_DEVICE_ADD("ym", YM2151, MAIN_CLOCK/8) //option board
MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
diff --git a/src/mame/drivers/x1twin.cpp b/src/mame/drivers/x1twin.cpp
index 9967fa24bcd..b62cad73988 100644
--- a/src/mame/drivers/x1twin.cpp
+++ b/src/mame/drivers/x1twin.cpp
@@ -476,9 +476,9 @@ MACHINE_CONFIG_START(x1twin_state::x1twin)
MCFG_VIDEO_START_OVERRIDE(x1twin_state,x1)
- MCFG_DEVICE_ADD("fdc", MB8877, MAIN_CLOCK / 16)
- // TODO: guesswork, try to implicitily start the motor
- MCFG_WD_FDC_HLD_CALLBACK(WRITELINE(*this, x1_state, hdl_w))
+ MB8877(config, m_fdc, MAIN_CLOCK / 16);
+ // TODO: guesswork, try to implicitly start the motor
+ m_fdc->hld_wr_callback().set(FUNC(x1_state::hdl_w));
MCFG_FLOPPY_DRIVE_ADD("fdc:0", x1_floppies, "dd", x1_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("fdc:1", x1_floppies, "dd", x1_state::floppy_formats)
diff --git a/src/mame/drivers/xerox820.cpp b/src/mame/drivers/xerox820.cpp
index f8c6237481f..52f557e53c9 100644
--- a/src/mame/drivers/xerox820.cpp
+++ b/src/mame/drivers/xerox820.cpp
@@ -626,9 +626,9 @@ MACHINE_CONFIG_START(xerox820_state::xerox820)
m_ctc->zc_callback<2>().set(m_ctc, FUNC(z80ctc_device::trg3));
//MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", xerox820_state, ctc_tick, attotime::from_hz(20_MHz_XTAL / 8))
- MCFG_DEVICE_ADD(FD1771_TAG, FD1771, 20_MHz_XTAL / 20)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, xerox820_state, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, xerox820_state, fdc_drq_w))
+ FD1771(config, m_fdc, 20_MHz_XTAL / 20);
+ m_fdc->intrq_wr_callback().set(FUNC(xerox820_state::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(xerox820_state::fdc_drq_w));
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)
@@ -715,9 +715,9 @@ MACHINE_CONFIG_START(xerox820ii_state::xerox820ii)
m_ctc->zc_callback<2>().set(m_ctc, FUNC(z80ctc_device::trg3));
//MCFG_TIMER_DRIVER_ADD_PERIODIC("ctc", xerox820_state, ctc_tick, attotime::from_hz(16_MHz_XTAL / 4))
- MCFG_DEVICE_ADD(FD1797_TAG, FD1797, 16_MHz_XTAL / 8)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE(*this, xerox820_state, fdc_intrq_w))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE(*this, xerox820_state, fdc_drq_w))
+ FD1797(config, m_fdc, 16_MHz_XTAL / 8);
+ m_fdc->intrq_wr_callback().set(FUNC(xerox820_state::fdc_intrq_w));
+ m_fdc->drq_wr_callback().set(FUNC(xerox820_state::fdc_drq_w));
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)
diff --git a/src/mame/drivers/xor100.cpp b/src/mame/drivers/xor100.cpp
index ed963f79e34..92e00a2856b 100644
--- a/src/mame/drivers/xor100.cpp
+++ b/src/mame/drivers/xor100.cpp
@@ -522,7 +522,7 @@ MACHINE_CONFIG_START(xor100_state::xor100)
m_ctc->zc_callback<1>().set(FUNC(xor100_state::ctc_z1_w));
m_ctc->zc_callback<2>().set(FUNC(xor100_state::ctc_z2_w));
- MCFG_DEVICE_ADD(WD1795_TAG, FD1795, 8_MHz_XTAL / 4)
+ FD1795(config, m_fdc, 8_MHz_XTAL / 4);
MCFG_FLOPPY_DRIVE_ADD(WD1795_TAG":0", xor100_floppies, "8ssdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(WD1795_TAG":1", xor100_floppies, "8ssdd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD(WD1795_TAG":2", xor100_floppies, nullptr, floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/z100.cpp b/src/mame/drivers/z100.cpp
index 7502777a4f5..e911fa4e3bd 100644
--- a/src/mame/drivers/z100.cpp
+++ b/src/mame/drivers/z100.cpp
@@ -714,7 +714,7 @@ MACHINE_CONFIG_START(z100_state::z100)
PIA6821(config, m_pia1, 0);
- MCFG_DEVICE_ADD("z207_fdc", FD1797, 1_MHz_XTAL)
+ FD1797(config, m_fdc, 1_MHz_XTAL);
MCFG_FLOPPY_DRIVE_ADD("z207_fdc:0", z100_floppies, "dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("z207_fdc:1", z100_floppies, "dd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/drivers/z80ne.cpp b/src/mame/drivers/z80ne.cpp
index 786a1d8dd43..d5d61727a67 100644
--- a/src/mame/drivers/z80ne.cpp
+++ b/src/mame/drivers/z80ne.cpp
@@ -563,7 +563,7 @@ MACHINE_CONFIG_START(z80netf_state::z80netf)
// AG = GND, GM2 = GND, GM1 = GND, GM0 = GND, CSS = GND
// other lines not connected
- MCFG_DEVICE_ADD("wd1771", FD1771, 2_MHz_XTAL / 2)
+ FD1771(config, m_wd1771, 2_MHz_XTAL / 2);
MCFG_FLOPPY_DRIVE_ADD("wd1771:0", z80ne_floppies, "sssd", z80ne_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("wd1771:1", z80ne_floppies, "sssd", z80ne_state::floppy_formats)
MCFG_FLOPPY_DRIVE_ADD("wd1771:2", z80ne_floppies, nullptr, z80ne_state::floppy_formats)
diff --git a/src/mame/drivers/zorba.cpp b/src/mame/drivers/zorba.cpp
index e294d34f8f7..c51bb983378 100644
--- a/src/mame/drivers/zorba.cpp
+++ b/src/mame/drivers/zorba.cpp
@@ -226,9 +226,9 @@ MACHINE_CONFIG_START(zorba_state::zorba)
MCFG_VIDEO_SET_SCREEN("screen")
// Floppies
- MCFG_DEVICE_ADD(m_fdc, FD1793, 24_MHz_XTAL / 24)
- MCFG_WD_FDC_INTRQ_CALLBACK(WRITELINE("irq2", input_merger_device, in_w<0>))
- MCFG_WD_FDC_DRQ_CALLBACK(WRITELINE("irq2", input_merger_device, in_w<1>))
+ FD1793(config, m_fdc, 24_MHz_XTAL / 24);
+ m_fdc->intrq_wr_callback().set("irq2", FUNC(input_merger_device::in_w<0>));
+ m_fdc->drq_wr_callback().set("irq2", FUNC(input_merger_device::in_w<1>));
MCFG_FLOPPY_DRIVE_ADD(m_floppy0, zorba_floppies, "525dd", floppy_image_device::default_floppy_formats)
MCFG_FLOPPY_DRIVE_SOUND(true)
MCFG_FLOPPY_DRIVE_ADD(m_floppy1, zorba_floppies, "525dd", floppy_image_device::default_floppy_formats)
diff --git a/src/mame/machine/beta.cpp b/src/mame/machine/beta.cpp
index 5ecc6263996..e8e10b95c23 100644
--- a/src/mame/machine/beta.cpp
+++ b/src/mame/machine/beta.cpp
@@ -267,17 +267,14 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-MACHINE_CONFIG_START(beta_disk_device::device_add_mconfig)
- MCFG_DEVICE_ADD("wd179x", KR1818VG93, 8_MHz_XTAL / 8)
- MCFG_FLOPPY_DRIVE_ADD("wd179x:0", beta_disk_floppies, "525qd", beta_disk_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("wd179x:1", beta_disk_floppies, "525qd", beta_disk_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("wd179x:2", beta_disk_floppies, "525qd", beta_disk_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
- MCFG_FLOPPY_DRIVE_ADD("wd179x:3", beta_disk_floppies, "525qd", beta_disk_device::floppy_formats)
- MCFG_FLOPPY_DRIVE_SOUND(true)
-MACHINE_CONFIG_END
+void beta_disk_device::device_add_mconfig(machine_config &config)
+{
+ KR1818VG93(config, m_wd179x, 8_MHz_XTAL / 8);
+ FLOPPY_CONNECTOR(config, m_floppy0, beta_disk_floppies, "525qd", beta_disk_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy1, beta_disk_floppies, "525qd", beta_disk_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy2, beta_disk_floppies, "525qd", beta_disk_device::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy3, beta_disk_floppies, "525qd", beta_disk_device::floppy_formats).enable_sound(true);
+}
//-------------------------------------------------
// device_rom_region - return a pointer to the