From 00391d612427abc5f36c19633dab624debe77ebf Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Thu, 15 Nov 2018 19:28:36 +0100 Subject: [PATCH] pc_fdc: removed MCFG macros (nw) --- src/devices/bus/isa/fdc.cpp | 62 +++++++++++++++++--------------- src/devices/bus/isa/fdc.h | 2 +- src/devices/bus/isa/omti8621.cpp | 19 +++++----- src/devices/machine/pc_fdc.h | 15 ++------ src/mame/drivers/asst128.cpp | 4 +-- src/mame/drivers/pc1512.cpp | 12 +++---- 6 files changed, 54 insertions(+), 60 deletions(-) diff --git a/src/devices/bus/isa/fdc.cpp b/src/devices/bus/isa/fdc.cpp index 7b24fcd00e9..d4cc451561c 100644 --- a/src/devices/bus/isa/fdc.cpp +++ b/src/devices/bus/isa/fdc.cpp @@ -38,14 +38,14 @@ static void pc_hd_floppies(device_slot_interface &device) isa8_fdc_device::isa8_fdc_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_isa8_card_interface(mconfig, *this), - fdc(*this, "fdc") + m_fdc(*this, "fdc") { } void isa8_fdc_device::device_start() { set_isa_device(); - m_isa->install_device(0x03f0, 0x03f7, *fdc, &pc_fdc_interface::map); + m_isa->install_device(0x03f0, 0x03f7, *m_fdc, &pc_fdc_interface::map); m_isa->set_dma_channel(2, this, true); } @@ -65,17 +65,17 @@ WRITE_LINE_MEMBER( isa8_fdc_device::drq_w ) uint8_t isa8_fdc_device::dack_r(int line) { - return fdc->dma_r(); + return m_fdc->dma_r(); } void isa8_fdc_device::dack_w(int line, uint8_t data) { - return fdc->dma_w(data); + return m_fdc->dma_w(data); } void isa8_fdc_device::eop_w(int state) { - fdc->tc_w(state == ASSERT_LINE); + m_fdc->tc_w(state == ASSERT_LINE); } @@ -83,26 +83,28 @@ isa8_fdc_xt_device::isa8_fdc_xt_device(const machine_config &mconfig, const char { } -MACHINE_CONFIG_START(isa8_fdc_xt_device::device_add_mconfig) - MCFG_PC_FDC_XT_ADD("fdc") - MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(*this, isa8_fdc_device, irq_w)) - MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(*this, isa8_fdc_device, drq_w)) - MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats) -MACHINE_CONFIG_END +void isa8_fdc_xt_device::device_add_mconfig(machine_config &config) +{ + pc_fdc_xt_device &pc_fdc_xt(PC_FDC_XT(config, m_fdc, 0)); + pc_fdc_xt.intrq_wr_callback().set(FUNC(isa8_fdc_device::irq_w)); + pc_fdc_xt.drq_wr_callback().set(FUNC(isa8_fdc_device::drq_w)); + FLOPPY_CONNECTOR(config, "fdc:0", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats); + FLOPPY_CONNECTOR(config, "fdc:1", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats); +} isa8_fdc_at_device::isa8_fdc_at_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_AT, tag, owner, clock) { } -MACHINE_CONFIG_START(isa8_fdc_at_device::device_add_mconfig) - MCFG_PC_FDC_AT_ADD("fdc") - MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(*this, isa8_fdc_device, irq_w)) - MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(*this, isa8_fdc_device, drq_w)) - MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats) -MACHINE_CONFIG_END +void isa8_fdc_at_device::device_add_mconfig(machine_config &config) +{ + pc_fdc_at_device &pc_fdc_at(PC_FDC_AT(config, m_fdc, 0)); + pc_fdc_at.intrq_wr_callback().set(FUNC(isa8_fdc_device::irq_w)); + pc_fdc_at.drq_wr_callback().set(FUNC(isa8_fdc_device::drq_w)); + FLOPPY_CONNECTOR(config, "fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats); + FLOPPY_CONNECTOR(config, "fdc:1", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats); +} isa8_fdc_smc_device::isa8_fdc_smc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : isa8_fdc_device(mconfig, ISA8_FDC_SMC, tag, owner, clock) { @@ -110,7 +112,7 @@ isa8_fdc_smc_device::isa8_fdc_smc_device(const machine_config &mconfig, const ch void isa8_fdc_smc_device::device_add_mconfig(machine_config &config) { - smc37c78_device &smc(SMC37C78(config, fdc)); + smc37c78_device &smc(SMC37C78(config, m_fdc)); smc.intrq_wr_callback().set(FUNC(isa8_fdc_device::irq_w)); smc.drq_wr_callback().set(FUNC(isa8_fdc_device::drq_w)); FLOPPY_CONNECTOR(config, "fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats); @@ -123,7 +125,7 @@ isa8_fdc_ps2_device::isa8_fdc_ps2_device(const machine_config &mconfig, const ch void isa8_fdc_ps2_device::device_add_mconfig(machine_config &config) { - n82077aa_device &n82077aa(N82077AA(config, fdc, n82077aa_device::MODE_PS2)); + n82077aa_device &n82077aa(N82077AA(config, m_fdc, n82077aa_device::MODE_PS2)); n82077aa.intrq_wr_callback().set(FUNC(isa8_fdc_device::irq_w)); n82077aa.drq_wr_callback().set(FUNC(isa8_fdc_device::drq_w)); FLOPPY_CONNECTOR(config, "fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats); @@ -136,7 +138,7 @@ isa8_fdc_superio_device::isa8_fdc_superio_device(const machine_config &mconfig, void isa8_fdc_superio_device::device_add_mconfig(machine_config &config) { - pc_fdc_superio_device &superio(PC_FDC_SUPERIO(config, fdc)); + pc_fdc_superio_device &superio(PC_FDC_SUPERIO(config, m_fdc)); superio.intrq_wr_callback().set(FUNC(isa8_fdc_device::irq_w)); superio.drq_wr_callback().set(FUNC(isa8_fdc_device::drq_w)); FLOPPY_CONNECTOR(config, "fdc:0", pc_hd_floppies, "35hd", isa8_fdc_device::floppy_formats); @@ -160,15 +162,17 @@ WRITE_LINE_MEMBER( isa8_ec1841_0003_device::aux_irq_w ) m_isa->irq4_w(state ? ASSERT_LINE : CLEAR_LINE); } -MACHINE_CONFIG_START( isa8_ec1841_0003_device::device_add_mconfig ) - MCFG_PC_FDC_XT_ADD("fdc") - MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(*this, isa8_fdc_device, irq_w)) - MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(*this, isa8_fdc_device, drq_w)) - MCFG_FLOPPY_DRIVE_ADD("fdc:0", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats) - MCFG_FLOPPY_DRIVE_ADD("fdc:1", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats) +void isa8_ec1841_0003_device::device_add_mconfig(machine_config &config) +{ + pc_fdc_xt_device &pc_fdc_xt(PC_FDC_XT(config, m_fdc, 0)); + pc_fdc_xt.intrq_wr_callback().set(FUNC(isa8_fdc_device::irq_w)); + pc_fdc_xt.drq_wr_callback().set(FUNC(isa8_fdc_device::drq_w)); + FLOPPY_CONNECTOR(config, "fdc:0", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats); + FLOPPY_CONNECTOR(config, "fdc:1", pc_dd_floppies, "525dd", isa8_fdc_device::floppy_formats); BUS_MOUSE(config, "bus_mouse", 0).extint_callback().set(FUNC(isa8_ec1841_0003_device::aux_irq_w)); -MACHINE_CONFIG_END +} + DEFINE_DEVICE_TYPE(ISA8_FDC_XT, isa8_fdc_xt_device, "isa8_fdc_xt", "ISA 8bits XT FDC hookup") DEFINE_DEVICE_TYPE(ISA8_FDC_AT, isa8_fdc_at_device, "isa8_fdc_at", "ISA 8bits AT FDC hookup") diff --git a/src/devices/bus/isa/fdc.h b/src/devices/bus/isa/fdc.h index b1364f2cc51..649b133a093 100644 --- a/src/devices/bus/isa/fdc.h +++ b/src/devices/bus/isa/fdc.h @@ -41,7 +41,7 @@ protected: virtual void dack_w(int line, uint8_t data) override; virtual void eop_w(int state) override; - required_device fdc; + required_device m_fdc; }; class isa8_fdc_xt_device : public isa8_fdc_device { diff --git a/src/devices/bus/isa/omti8621.cpp b/src/devices/bus/isa/omti8621.cpp index c93c76b09cf..9eebabb188f 100644 --- a/src/devices/bus/isa/omti8621.cpp +++ b/src/devices/bus/isa/omti8621.cpp @@ -243,17 +243,18 @@ static INPUT_PORTS_START( omti_port ) PORT_DIPSETTING( 0x01, "CA000h" ) INPUT_PORTS_END -MACHINE_CONFIG_START(omti8621_device::device_add_mconfig) - MCFG_DEVICE_ADD(OMTI_DISK0_TAG, OMTI_DISK, 0) - MCFG_DEVICE_ADD(OMTI_DISK1_TAG, OMTI_DISK, 0) +void omti8621_device::device_add_mconfig(machine_config &config) +{ + OMTI_DISK(config, OMTI_DISK0_TAG, 0); + OMTI_DISK(config, OMTI_DISK1_TAG, 0); - MCFG_PC_FDC_AT_ADD(OMTI_FDC_TAG) - MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(*this, omti8621_device, fdc_irq_w)) - MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(*this, omti8621_device, fdc_drq_w)) - MCFG_FLOPPY_DRIVE_ADD(OMTI_FDC_TAG":0", pc_hd_floppies, "525hd", omti8621_device::floppy_formats) + pc_fdc_at_device &pc_fdc_at(PC_FDC_AT(config, m_fdc, 0)); + pc_fdc_at.intrq_wr_callback().set(FUNC(omti8621_device::fdc_irq_w)); + pc_fdc_at.drq_wr_callback().set(FUNC(omti8621_device::fdc_drq_w)); + FLOPPY_CONNECTOR(config, OMTI_FDC_TAG":0", pc_hd_floppies, "525hd", omti8621_device::floppy_formats); // Apollo workstations never have more then 1 floppy drive -// MCFG_FLOPPY_DRIVE_ADD(OMTI_FDC_TAG":1", pc_hd_floppies, "525hd", omti8621_device::floppy_formats) -MACHINE_CONFIG_END +// FLOPPY_CONNECTOR(config, OMTI_FDC_TAG":1", pc_hd_floppies, "525hd", omti8621_device::floppy_formats); +} const tiny_rom_entry *omti8621_device::device_rom_region() const { diff --git a/src/devices/machine/pc_fdc.h b/src/devices/machine/pc_fdc.h index 76fe6db1730..351542ed881 100644 --- a/src/devices/machine/pc_fdc.h +++ b/src/devices/machine/pc_fdc.h @@ -13,22 +13,11 @@ #include "machine/upd765.h" -#define MCFG_PC_FDC_XT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, PC_FDC_XT, 0) - -#define MCFG_PC_FDC_AT_ADD(_tag) \ - MCFG_DEVICE_ADD(_tag, PC_FDC_AT, 0) - -#define MCFG_PC_FDC_INTRQ_CALLBACK(_write) \ - downcast(*device).set_intrq_wr_callback(DEVCB_##_write); - -#define MCFG_PC_FDC_DRQ_CALLBACK(_write) \ - downcast(*device).set_drq_wr_callback(DEVCB_##_write); class pc_fdc_family_device : public pc_fdc_interface { public: - template devcb_base &set_intrq_wr_callback(Object &&cb) { return intrq_cb.set_callback(std::forward(cb)); } - template devcb_base &set_drq_wr_callback(Object &&cb) { return drq_cb.set_callback(std::forward(cb)); } + auto intrq_wr_callback() { return intrq_cb.bind(); } + auto drq_wr_callback() { return drq_cb.bind(); } virtual void map(address_map &map) override; diff --git a/src/mame/drivers/asst128.cpp b/src/mame/drivers/asst128.cpp index adfa065cef7..4d0b8e4cc00 100644 --- a/src/mame/drivers/asst128.cpp +++ b/src/mame/drivers/asst128.cpp @@ -120,8 +120,8 @@ MACHINE_CONFIG_START(asst128_state::asst128) MCFG_PC_KBDC_SLOT_ADD("mb:pc_kbdc", "kbd", pc_xt_keyboards, STR_KBD_IBM_PC_XT_83) - MCFG_PC_FDC_XT_ADD("fdc") - MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE("mb:pic8259", pic8259_device, ir6_w)) + PC_FDC_XT(config, m_fdc, 0); + m_fdc->intrq_wr_callback().set("mb:pic8259", FUNC(pic8259_device::ir6_w)); MCFG_FLOPPY_DRIVE_ADD("fdc:0", asst128_floppies, "525ssqd", asst128_state::asst128_formats) MCFG_FLOPPY_DRIVE_ADD("fdc:1", asst128_floppies, "525ssqd", asst128_state::asst128_formats) diff --git a/src/mame/drivers/pc1512.cpp b/src/mame/drivers/pc1512.cpp index e5b777f37ab..a2d3687b995 100644 --- a/src/mame/drivers/pc1512.cpp +++ b/src/mame/drivers/pc1512.cpp @@ -1210,9 +1210,9 @@ MACHINE_CONFIG_START(pc1512_state::pc1512) MC146818(config, m_rtc, 32.768_kHz_XTAL); m_rtc->irq().set(m_pic, FUNC(pic8259_device::ir2_w)); - MCFG_PC_FDC_XT_ADD(PC_FDC_XT_TAG) - MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(*this, pc1512_state, fdc_int_w)) - MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(*this, pc1512_state, fdc_drq_w)) + PC_FDC_XT(config, m_fdc, 0); + m_fdc->intrq_wr_callback().set(FUNC(pc1512_state::fdc_int_w)); + m_fdc->drq_wr_callback().set(FUNC(pc1512_state::fdc_drq_w)); MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":0", pc1512_floppies, "525dd", pc1512_base_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":1", pc1512_floppies, nullptr, pc1512_base_state::floppy_formats) @@ -1341,9 +1341,9 @@ MACHINE_CONFIG_START(pc1640_state::pc1640) MC146818(config, m_rtc, 32.768_kHz_XTAL); m_rtc->irq().set(m_pic, FUNC(pic8259_device::ir2_w)); - MCFG_PC_FDC_XT_ADD(PC_FDC_XT_TAG) - MCFG_PC_FDC_INTRQ_CALLBACK(WRITELINE(*this, pc1512_base_state, fdc_int_w)) - MCFG_PC_FDC_DRQ_CALLBACK(WRITELINE(*this, pc1512_base_state, fdc_drq_w)) + PC_FDC_XT(config, m_fdc, 0); + m_fdc->intrq_wr_callback().set(FUNC(pc1512_base_state::fdc_int_w)); + m_fdc->drq_wr_callback().set(FUNC(pc1512_base_state::fdc_drq_w)); MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":0", pc1512_floppies, "525dd", pc1512_base_state::floppy_formats) MCFG_FLOPPY_DRIVE_ADD(PC_FDC_XT_TAG ":1", pc1512_floppies, nullptr, pc1512_base_state::floppy_formats)