summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2023-10-12 20:19:21 -0400
committer AJR <ajrhacker@users.noreply.github.com>2023-10-12 20:19:58 -0400
commit220c3df37571391ddbe05e4ae028356e68498778 (patch)
treeeacdbe72b249fa1ff5b6404b31719481ccf61c59 /src
parentfe40e825965a8cc0366eaf7b77ab843f401bc9fd (diff)
spectrum_opus: Use device finder array for floppy drives
Diffstat (limited to 'src')
-rw-r--r--src/devices/bus/spectrum/opus.cpp14
-rw-r--r--src/devices/bus/spectrum/opus.h4
2 files changed, 8 insertions, 10 deletions
diff --git a/src/devices/bus/spectrum/opus.cpp b/src/devices/bus/spectrum/opus.cpp
index 33adaebd0a1..791804b532a 100644
--- a/src/devices/bus/spectrum/opus.cpp
+++ b/src/devices/bus/spectrum/opus.cpp
@@ -6,11 +6,12 @@
**********************************************************************/
-
#include "emu.h"
#include "opus.h"
#include "softlist_dev.h"
+#include "formats/opd_dsk.h"
+
//**************************************************************************
// DEVICE DEFINITIONS
@@ -82,8 +83,8 @@ void spectrum_opus_device::device_add_mconfig(machine_config &config)
WD1770(config, m_fdc, 16_MHz_XTAL / 2);
m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(spectrum_expansion_slot_device::nmi_w));
- FLOPPY_CONNECTOR(config, "fdc:0", spectrum_floppies, "35dd", spectrum_opus_device::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:1", spectrum_floppies, "35dd", spectrum_opus_device::floppy_formats).enable_sound(true);
+ for (auto &floppy : m_floppy)
+ FLOPPY_CONNECTOR(config, floppy, spectrum_floppies, "35dd", spectrum_opus_device::floppy_formats).enable_sound(true);
/* parallel printer port */
CENTRONICS(config, m_centronics, centronics_devices, "printer");
@@ -126,8 +127,7 @@ spectrum_opus_device::spectrum_opus_device(const machine_config &mconfig, const
, m_rom(*this, "rom")
, m_pia(*this, "pia")
, m_fdc(*this, "fdc")
- , m_floppy0(*this, "fdc:0")
- , m_floppy1(*this, "fdc:1")
+ , m_floppy(*this, "fdc:%u", 0U)
, m_centronics(*this, "centronics")
, m_exp(*this, "exp")
{
@@ -256,8 +256,8 @@ void spectrum_opus_device::pia_out_a(uint8_t data)
floppy_image_device *floppy = nullptr;
// bit 0, 1: drive select
- if (!BIT(data, 0)) floppy = m_floppy1->get_device();
- if (!BIT(data, 1)) floppy = m_floppy0->get_device();
+ if (!BIT(data, 0)) floppy = m_floppy[1]->get_device();
+ if (!BIT(data, 1)) floppy = m_floppy[0]->get_device();
m_fdc->set_floppy(floppy);
// bit 4: side select
diff --git a/src/devices/bus/spectrum/opus.h b/src/devices/bus/spectrum/opus.h
index 6578371ca1d..109f8efe70f 100644
--- a/src/devices/bus/spectrum/opus.h
+++ b/src/devices/bus/spectrum/opus.h
@@ -15,7 +15,6 @@
#include "machine/wd_fdc.h"
#include "machine/6821pia.h"
#include "bus/centronics/ctronics.h"
-#include "formats/opd_dsk.h"
//**************************************************************************
// TYPE DEFINITIONS
@@ -63,8 +62,7 @@ private:
required_memory_region m_rom;
required_device<pia6821_device> m_pia;
required_device<wd_fdc_device_base> m_fdc;
- required_device<floppy_connector> m_floppy0;
- required_device<floppy_connector> m_floppy1;
+ required_device_array<floppy_connector, 2> m_floppy;
required_device<centronics_device> m_centronics;
required_device<spectrum_expansion_slot_device> m_exp;