summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Nigel Barnes <Pernod70@users.noreply.github.com>2021-05-08 21:55:36 +0100
committer Nigel Barnes <Pernod70@users.noreply.github.com>2021-05-09 17:22:11 +0100
commit41e787d85834deb434e3899603bdaa3279a1ab79 (patch)
tree68bdd2570b5b327614e354f18519298fd6087c69
parente684acaa50f7f17db209192a64cf8f67f35a6c2d (diff)
bus/bbc/fdc: Use arrays of floppy_connector.
-rw-r--r--src/devices/bus/bbc/fdc/acorn.cpp26
-rw-r--r--src/devices/bus/bbc/fdc/acorn.h6
-rw-r--r--src/devices/bus/bbc/fdc/ams.cpp15
-rw-r--r--src/devices/bus/bbc/fdc/ams.h3
-rw-r--r--src/devices/bus/bbc/fdc/cumana.cpp19
-rw-r--r--src/devices/bus/bbc/fdc/cumana.h3
-rw-r--r--src/devices/bus/bbc/fdc/opus.cpp46
-rw-r--r--src/devices/bus/bbc/fdc/opus.h6
-rw-r--r--src/devices/bus/bbc/fdc/watford.cpp22
-rw-r--r--src/devices/bus/bbc/fdc/watford.h6
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<i8271_device> m_fdc;
- required_device<floppy_connector> m_floppy0;
- optional_device<floppy_connector> m_floppy1;
+ required_device_array<floppy_connector, 2> m_floppy;
};
class bbc_acorn1770_device :
@@ -78,8 +77,7 @@ private:
DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
required_device<wd1770_device> m_fdc;
- required_device<floppy_connector> m_floppy0;
- optional_device<floppy_connector> m_floppy1;
+ required_device_array<floppy_connector, 2> 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<i8271_device> m_fdc;
- required_device<floppy_connector> m_floppy0;
- optional_device<floppy_connector> m_floppy1;
+ required_device_array<floppy_connector, 2> 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<mb8877_device> m_fdc;
- required_device<floppy_connector> m_floppy0;
- optional_device<floppy_connector> m_floppy1;
+ required_device_array<floppy_connector, 2> 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<i8272a_device> m_fdc;
- required_device<floppy_connector> m_floppy0;
- optional_device<floppy_connector> m_floppy1;
+ required_device_array<floppy_connector, 2> m_floppy;
};
@@ -66,8 +65,7 @@ protected:
virtual void write(offs_t offset, uint8_t data) override;
required_device<wd_fdc_device_base> m_fdc;
- required_device<floppy_connector> m_floppy0;
- optional_device<floppy_connector> m_floppy1;
+ required_device_array<floppy_connector, 2> 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<wd_fdc_device_base> m_fdc;
- required_device<floppy_connector> m_floppy0;
- optional_device<floppy_connector> m_floppy1;
+ required_device_array<floppy_connector, 2> m_floppy;
int m_drive_control;
};
@@ -73,8 +72,7 @@ protected:
private:
required_device<wd_fdc_device_base> m_fdc;
- required_device<floppy_connector> m_floppy0;
- optional_device<floppy_connector> m_floppy1;
+ required_device_array<floppy_connector, 2> m_floppy;
int m_drive_control;
};