From 41e787d85834deb434e3899603bdaa3279a1ab79 Mon Sep 17 00:00:00 2001 From: Nigel Barnes Date: Sat, 8 May 2021 21:55:36 +0100 Subject: bus/bbc/fdc: Use arrays of floppy_connector. --- src/devices/bus/bbc/fdc/acorn.cpp | 26 ++++++++++----------- src/devices/bus/bbc/fdc/acorn.h | 6 ++--- src/devices/bus/bbc/fdc/ams.cpp | 15 ++++++------ src/devices/bus/bbc/fdc/ams.h | 3 +-- src/devices/bus/bbc/fdc/cumana.cpp | 19 ++++++++------- src/devices/bus/bbc/fdc/cumana.h | 3 +-- src/devices/bus/bbc/fdc/opus.cpp | 46 ++++++++++++++++++------------------- src/devices/bus/bbc/fdc/opus.h | 6 ++--- src/devices/bus/bbc/fdc/watford.cpp | 22 ++++++++---------- src/devices/bus/bbc/fdc/watford.h | 6 ++--- 10 files changed, 68 insertions(+), 84 deletions(-) diff --git a/src/devices/bus/bbc/fdc/acorn.cpp b/src/devices/bus/bbc/fdc/acorn.cpp index 0734a318372..22b2cc027c8 100644 --- a/src/devices/bus/bbc/fdc/acorn.cpp +++ b/src/devices/bus/bbc/fdc/acorn.cpp @@ -101,8 +101,8 @@ void bbc_acorn8271_device::device_add_mconfig(machine_config &config) m_fdc->hdl_wr_callback().set(FUNC(bbc_acorn8271_device::motor_w)); m_fdc->opt_wr_callback().set(FUNC(bbc_acorn8271_device::side_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); + FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true); } void bbc_acorn1770_device::device_add_mconfig(machine_config &config) @@ -112,8 +112,8 @@ void bbc_acorn1770_device::device_add_mconfig(machine_config &config) 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); + FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", bbc_acorn8271_device::floppy_formats).enable_sound(true); } @@ -139,8 +139,7 @@ bbc_acorn8271_device::bbc_acorn8271_device(const machine_config &mconfig, const : device_t(mconfig, BBC_ACORN8271, tag, owner, clock) , device_bbc_fdc_interface(mconfig, *this) , m_fdc(*this, "i8271") - , m_floppy0(*this, "i8271:0") - , m_floppy1(*this, "i8271:1") + , m_floppy(*this, "i8271:%u", 0) { } @@ -148,8 +147,7 @@ bbc_acorn1770_device::bbc_acorn1770_device(const machine_config &mconfig, const : device_t(mconfig, BBC_ACORN1770, tag, owner, clock) , device_bbc_fdc_interface(mconfig, *this) , m_fdc(*this, "wd1770") - , m_floppy0(*this, "wd1770:0") - , m_floppy1(*this, "wd1770:1") + , m_floppy(*this, "wd1770:%u", 0) { } @@ -200,15 +198,15 @@ void bbc_acorn8271_device::write(offs_t offset, uint8_t data) WRITE_LINE_MEMBER(bbc_acorn8271_device::motor_w) { - if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(!state); - if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(!state); + if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(!state); + if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(!state); m_fdc->ready_w(!state); } WRITE_LINE_MEMBER(bbc_acorn8271_device::side_w) { - if (m_floppy0->get_device()) m_floppy0->get_device()->ss_w(state); - if (m_floppy1->get_device()) m_floppy1->get_device()->ss_w(state); + if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->ss_w(state); + if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->ss_w(state); } @@ -238,8 +236,8 @@ void bbc_acorn1770_device::write(offs_t offset, uint8_t data) floppy_image_device *floppy = nullptr; // bit 0, 1: drive select - if (BIT(data, 0)) floppy = m_floppy0->get_device(); - if (BIT(data, 1)) floppy = m_floppy1->get_device(); + if (BIT(data, 0)) floppy = m_floppy[0]->get_device(); + if (BIT(data, 1)) floppy = m_floppy[1]->get_device(); m_fdc->set_floppy(floppy); // bit 2: side select diff --git a/src/devices/bus/bbc/fdc/acorn.h b/src/devices/bus/bbc/fdc/acorn.h index 4efff61939d..347368ff29f 100644 --- a/src/devices/bus/bbc/fdc/acorn.h +++ b/src/devices/bus/bbc/fdc/acorn.h @@ -50,8 +50,7 @@ private: DECLARE_WRITE_LINE_MEMBER(side_w); required_device m_fdc; - required_device m_floppy0; - optional_device m_floppy1; + required_device_array m_floppy; }; class bbc_acorn1770_device : @@ -78,8 +77,7 @@ private: DECLARE_WRITE_LINE_MEMBER(fdc_drq_w); required_device m_fdc; - required_device m_floppy0; - optional_device m_floppy1; + required_device_array m_floppy; int m_fdc_ie; }; diff --git a/src/devices/bus/bbc/fdc/ams.cpp b/src/devices/bus/bbc/fdc/ams.cpp index 45df1222ac0..ef64eabd75c 100644 --- a/src/devices/bus/bbc/fdc/ams.cpp +++ b/src/devices/bus/bbc/fdc/ams.cpp @@ -55,8 +55,8 @@ void bbc_ams3_device::device_add_mconfig(machine_config &config) m_fdc->hdl_wr_callback().set(FUNC(bbc_ams3_device::motor_w)); m_fdc->opt_wr_callback().set(FUNC(bbc_ams3_device::side_w)); // Hitachi HFD 305S - FLOPPY_CONNECTOR(config, m_floppy0, "3dsdd", FLOPPY_3_DSDD, true, bbc_ams3_device::floppy_formats).enable_sound(true); - FLOPPY_CONNECTOR(config, m_floppy1, "3dsdd", FLOPPY_3_DSDD, false, bbc_ams3_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, m_floppy[0], "3dsdd", FLOPPY_3_DSDD, true, bbc_ams3_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, m_floppy[1], "3dsdd", FLOPPY_3_DSDD, false, bbc_ams3_device::floppy_formats).enable_sound(true); } @@ -77,8 +77,7 @@ bbc_ams3_device::bbc_ams3_device(const machine_config &mconfig, const char *tag, : device_t(mconfig, BBC_AMS3, tag, owner, clock) , device_bbc_fdc_interface(mconfig, *this) , m_fdc(*this, "i8271") - , m_floppy0(*this, "i8271:0") - , m_floppy1(*this, "i8271:1") + , m_floppy(*this, "i8271:%u", 0) { } @@ -125,13 +124,13 @@ void bbc_ams3_device::write(offs_t offset, uint8_t data) WRITE_LINE_MEMBER(bbc_ams3_device::motor_w) { - if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(!state); - if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(!state); + if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(!state); + if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(!state); m_fdc->ready_w(!state); } WRITE_LINE_MEMBER(bbc_ams3_device::side_w) { - if (m_floppy0->get_device()) m_floppy0->get_device()->ss_w(state); - if (m_floppy1->get_device()) m_floppy1->get_device()->ss_w(state); + if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->ss_w(state); + if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->ss_w(state); } diff --git a/src/devices/bus/bbc/fdc/ams.h b/src/devices/bus/bbc/fdc/ams.h index 63ec45cf5df..a1bdcc27696 100644 --- a/src/devices/bus/bbc/fdc/ams.h +++ b/src/devices/bus/bbc/fdc/ams.h @@ -48,8 +48,7 @@ private: DECLARE_WRITE_LINE_MEMBER(side_w); required_device m_fdc; - required_device m_floppy0; - optional_device m_floppy1; + required_device_array m_floppy; }; diff --git a/src/devices/bus/bbc/fdc/cumana.cpp b/src/devices/bus/bbc/fdc/cumana.cpp index bda106621e4..2db9b4b2f2a 100644 --- a/src/devices/bus/bbc/fdc/cumana.cpp +++ b/src/devices/bus/bbc/fdc/cumana.cpp @@ -72,8 +72,8 @@ void bbc_cumana1_device::device_add_mconfig(machine_config &config) 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); + FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true); } void bbc_cumana2_device::device_add_mconfig(machine_config &config) @@ -83,8 +83,8 @@ void bbc_cumana2_device::device_add_mconfig(machine_config &config) 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); + FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true); } const tiny_rom_entry *bbc_cumana1_device::device_rom_region() const @@ -110,8 +110,7 @@ bbc_cumanafdc_device::bbc_cumanafdc_device(const machine_config &mconfig, device device_t(mconfig, type, tag, owner, clock), device_bbc_fdc_interface(mconfig, *this), m_fdc(*this, "mb8877a"), - m_floppy0(*this, "mb8877a:0"), - m_floppy1(*this, "mb8877a:1"), + m_floppy(*this, "mb8877a:%u", 0), m_drive_control(0) { } @@ -173,8 +172,8 @@ void bbc_cumanafdc_device::write(offs_t offset, uint8_t data) // bit 0: drive select switch (BIT(data, 0)) { - case 0: floppy = m_floppy0->get_device(); break; - case 1: floppy = m_floppy1->get_device(); break; + case 0: floppy = m_floppy[0]->get_device(); break; + case 1: floppy = m_floppy[1]->get_device(); break; } m_fdc->set_floppy(floppy); @@ -219,6 +218,6 @@ WRITE_LINE_MEMBER(bbc_cumanafdc_device::fdc_drq_w) WRITE_LINE_MEMBER(bbc_cumanafdc_device::motor_w) { - if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(!state); - if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(!state); + if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(!state); + if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(!state); } diff --git a/src/devices/bus/bbc/fdc/cumana.h b/src/devices/bus/bbc/fdc/cumana.h index 0db76d83182..d775a68e622 100644 --- a/src/devices/bus/bbc/fdc/cumana.h +++ b/src/devices/bus/bbc/fdc/cumana.h @@ -43,8 +43,7 @@ protected: virtual void write(offs_t offset, uint8_t data) override; required_device m_fdc; - required_device m_floppy0; - optional_device m_floppy1; + required_device_array m_floppy; bool m_invert; diff --git a/src/devices/bus/bbc/fdc/opus.cpp b/src/devices/bus/bbc/fdc/opus.cpp index 5aa339e09f1..2851fc3de3c 100644 --- a/src/devices/bus/bbc/fdc/opus.cpp +++ b/src/devices/bus/bbc/fdc/opus.cpp @@ -104,8 +104,8 @@ void bbc_opus8272_device::device_add_mconfig(machine_config &config) I8272A(config, m_fdc, 20_MHz_XTAL / 5, true); m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::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); + FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true); } void bbc_opus2791_device::device_add_mconfig(machine_config &config) @@ -114,8 +114,8 @@ void bbc_opus2791_device::device_add_mconfig(machine_config &config) m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::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); + FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true); } void bbc_opus2793_device::device_add_mconfig(machine_config &config) @@ -124,8 +124,8 @@ void bbc_opus2793_device::device_add_mconfig(machine_config &config) m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::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); + FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true); } void bbc_opus1770_device::device_add_mconfig(machine_config &config) @@ -133,8 +133,8 @@ void bbc_opus1770_device::device_add_mconfig(machine_config &config) WD1770(config, m_fdc, DERIVED_CLOCK(1, 1)); m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::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); + FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true); } const tiny_rom_entry *bbc_opus8272_device::device_rom_region() const @@ -170,8 +170,7 @@ bbc_opus8272_device::bbc_opus8272_device(const machine_config &mconfig, const ch device_t(mconfig, BBC_OPUS8272, tag, owner, clock), device_bbc_fdc_interface(mconfig, *this), m_fdc(*this, "i8272"), - m_floppy0(*this, "i8272:0"), - m_floppy1(*this, "i8272:1") + m_floppy(*this, "i8272:%u", 0) { } @@ -179,8 +178,7 @@ bbc_opusfdc_device::bbc_opusfdc_device(const machine_config &mconfig, device_typ device_t(mconfig, type, tag, owner, clock), device_bbc_fdc_interface(mconfig, *this), m_fdc(*this, "fdc"), - m_floppy0(*this, "fdc:0"), - m_floppy1(*this, "fdc:1"), + m_floppy(*this, "fdc:%u", 0), m_drive_control(0) { } @@ -230,16 +228,16 @@ uint8_t bbc_opus8272_device::read(offs_t offset) break; case 0x06: - if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(1); - if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(1); + if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(1); + if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(1); [[fallthrough]]; case 0x04: data = m_fdc->msr_r(); break; case 0x05: - if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(0); - if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(0); + if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(0); + if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(0); [[fallthrough]]; case 0x07: data = m_fdc->fifo_r(); @@ -257,15 +255,15 @@ void bbc_opus8272_device::write(offs_t offset, uint8_t data) case 0x01: switch (data & 0x01) { - case 0: floppy = m_floppy1->get_device(); break; - case 1: floppy = m_floppy0->get_device(); break; + case 0: floppy = m_floppy[1]->get_device(); break; + case 1: floppy = m_floppy[0]->get_device(); break; } m_fdc->set_floppy(floppy); break; case 0x05: - if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(0); - if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(0); + if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(0); + if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(0); [[fallthrough]]; case 0x07: m_fdc->fifo_w(data); @@ -300,8 +298,8 @@ void bbc_opusfdc_device::write(offs_t offset, uint8_t data) // bit 0: drive select switch (BIT(data, 0)) { - case 0: floppy = m_floppy0->get_device(); break; - case 1: floppy = m_floppy1->get_device(); break; + case 0: floppy = m_floppy[0]->get_device(); break; + case 1: floppy = m_floppy[1]->get_device(); break; } m_fdc->set_floppy(floppy); @@ -320,6 +318,6 @@ void bbc_opusfdc_device::write(offs_t offset, uint8_t data) WRITE_LINE_MEMBER(bbc_opusfdc_device::motor_w) { - if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(!state); - if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(!state); + if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(!state); + if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(!state); } diff --git a/src/devices/bus/bbc/fdc/opus.h b/src/devices/bus/bbc/fdc/opus.h index d3b0291abfc..5cca5a5c701 100644 --- a/src/devices/bus/bbc/fdc/opus.h +++ b/src/devices/bus/bbc/fdc/opus.h @@ -41,8 +41,7 @@ protected: private: required_device m_fdc; - required_device m_floppy0; - optional_device m_floppy1; + required_device_array m_floppy; }; @@ -66,8 +65,7 @@ protected: virtual void write(offs_t offset, uint8_t data) override; required_device m_fdc; - required_device m_floppy0; - optional_device m_floppy1; + required_device_array m_floppy; private: int m_drive_control; diff --git a/src/devices/bus/bbc/fdc/watford.cpp b/src/devices/bus/bbc/fdc/watford.cpp index 77953da1d6f..7f058c41838 100644 --- a/src/devices/bus/bbc/fdc/watford.cpp +++ b/src/devices/bus/bbc/fdc/watford.cpp @@ -77,8 +77,8 @@ void bbc_weddb2_device::device_add_mconfig(machine_config &config) m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w)); m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::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); + FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true); } void bbc_weddb3_device::device_add_mconfig(machine_config &config) @@ -87,8 +87,8 @@ void bbc_weddb3_device::device_add_mconfig(machine_config &config) m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w)); m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::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); + FLOPPY_CONNECTOR(config, m_floppy[0], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true); + FLOPPY_CONNECTOR(config, m_floppy[1], bbc_floppies_525, "525qd", floppy_formats).enable_sound(true); } const tiny_rom_entry *bbc_weddb2_device::device_rom_region() const @@ -119,8 +119,7 @@ bbc_watfordfdc_device::bbc_watfordfdc_device(const machine_config &mconfig, devi bbc_weddb2_device::bbc_weddb2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : bbc_watfordfdc_device(mconfig, BBC_WEDDB2, tag, owner, clock) , m_fdc(*this, "wd1772") - , m_floppy0(*this, "wd1772:0") - , m_floppy1(*this, "wd1772:1") + , m_floppy(*this, "wd1772:%u", 0) , m_drive_control(0) { } @@ -128,8 +127,7 @@ bbc_weddb2_device::bbc_weddb2_device(const machine_config &mconfig, const char * bbc_weddb3_device::bbc_weddb3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : bbc_watfordfdc_device(mconfig, BBC_WEDDB3, tag, owner, clock) , m_fdc(*this, "wd1770") - , m_floppy0(*this, "wd1770:0") - , m_floppy1(*this, "wd1770:1") + , m_floppy(*this, "wd1770:%u", 0) , m_drive_control(0) { } @@ -181,8 +179,8 @@ void bbc_weddb2_device::write(offs_t offset, uint8_t data) m_drive_control = data; // bit 2: drive select - floppy_image_device *floppy0 = m_floppy0->get_device(); - floppy_image_device *floppy1 = m_floppy1->get_device(); + floppy_image_device *floppy0 = m_floppy[0]->get_device(); + floppy_image_device *floppy1 = m_floppy[1]->get_device(); floppy = (BIT(data, 2) ? floppy1 : floppy0); m_fdc->set_floppy(floppy); @@ -226,8 +224,8 @@ void bbc_weddb3_device::write(offs_t offset, uint8_t data) m_drive_control = data; // bit 0, 1: drive select - if (BIT(data, 0)) floppy = m_floppy0->get_device(); - if (BIT(data, 1)) floppy = m_floppy1->get_device(); + if (BIT(data, 0)) floppy = m_floppy[0]->get_device(); + if (BIT(data, 1)) floppy = m_floppy[1]->get_device(); m_fdc->set_floppy(floppy); // bit 2: side select diff --git a/src/devices/bus/bbc/fdc/watford.h b/src/devices/bus/bbc/fdc/watford.h index ac4c6e062f7..37a635d2afb 100644 --- a/src/devices/bus/bbc/fdc/watford.h +++ b/src/devices/bus/bbc/fdc/watford.h @@ -50,8 +50,7 @@ protected: private: required_device m_fdc; - required_device m_floppy0; - optional_device m_floppy1; + required_device_array m_floppy; int m_drive_control; }; @@ -73,8 +72,7 @@ protected: private: required_device m_fdc; - required_device m_floppy0; - optional_device m_floppy1; + required_device_array m_floppy; int m_drive_control; }; -- cgit v1.2.3