diff options
author | 2018-09-06 18:23:16 +0200 | |
---|---|---|
committer | 2018-09-06 18:23:16 +0200 | |
commit | 7bc9740ca7d842359a6af4b5f11f5410f0d6a9a3 (patch) | |
tree | c878faff4bd1596b43754756bfc70b96d948c84e | |
parent | f0f5b81528236e3bf2d815e20bbb36a1728b0bba (diff) |
wd_fdc: removed MCFG macros (nw)
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 |