summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Robbbert <Robbbert@users.noreply.github.com>2021-04-21 02:07:27 +1000
committer Robbbert <Robbbert@users.noreply.github.com>2021-04-21 02:07:27 +1000
commit3bc91699263d56f2a3958483b34c09e174cd086b (patch)
tree4b4ca21504b05448ae13307d72d30fe26be3d04f
parent62b9a513bcc3d8c259e4f63e7692feadebd3eeda (diff)
trs80: used array of floppy drives
-rw-r--r--src/mame/drivers/lnw80.cpp8
-rw-r--r--src/mame/drivers/radionic.cpp8
-rw-r--r--src/mame/drivers/trs80.cpp8
-rw-r--r--src/mame/drivers/trs80m3.cpp4
-rw-r--r--src/mame/includes/trs80.h14
-rw-r--r--src/mame/includes/trs80m3.h10
-rw-r--r--src/mame/machine/trs80.cpp21
-rw-r--r--src/mame/machine/trs80m3.cpp20
8 files changed, 42 insertions, 51 deletions
diff --git a/src/mame/drivers/lnw80.cpp b/src/mame/drivers/lnw80.cpp
index efcc022b165..1c97fe4a70a 100644
--- a/src/mame/drivers/lnw80.cpp
+++ b/src/mame/drivers/lnw80.cpp
@@ -603,10 +603,10 @@ void lnw80_state::lnw80(machine_config &config)
FD1771(config, m_fdc, 4_MHz_XTAL / 4);
m_fdc->intrq_wr_callback().set(FUNC(lnw80_state::intrq_w));
- FLOPPY_CONNECTOR(config, "fdc:0", lnw80_floppies, "sssd", lnw80_state::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:1", lnw80_floppies, "sssd", lnw80_state::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:2", lnw80_floppies, nullptr, lnw80_state::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:3", lnw80_floppies, nullptr, lnw80_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy[0], lnw80_floppies, "sssd", lnw80_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy[1], lnw80_floppies, "sssd", lnw80_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy[2], lnw80_floppies, nullptr, lnw80_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy[3], lnw80_floppies, nullptr, lnw80_state::floppy_formats).enable_sound(true);
CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->busy_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit7));
diff --git a/src/mame/drivers/radionic.cpp b/src/mame/drivers/radionic.cpp
index 11b24ca81a0..eb84efa7a22 100644
--- a/src/mame/drivers/radionic.cpp
+++ b/src/mame/drivers/radionic.cpp
@@ -372,10 +372,10 @@ void radionic_state::radionic(machine_config &config)
FD1771(config, m_fdc, 4_MHz_XTAL / 4);
m_fdc->intrq_wr_callback().set(FUNC(radionic_state::intrq_w));
- FLOPPY_CONNECTOR(config, "fdc:0", radionic_floppies, "80t_qd", radionic_state::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:1", radionic_floppies, "80t_qd", radionic_state::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:2", radionic_floppies, nullptr, radionic_state::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:3", radionic_floppies, nullptr, radionic_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy[0], radionic_floppies, "80t_qd", radionic_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy[1], radionic_floppies, "80t_qd", radionic_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy[2], radionic_floppies, nullptr, radionic_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy[3], radionic_floppies, nullptr, radionic_state::floppy_formats).enable_sound(true);
CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->busy_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit7));
diff --git a/src/mame/drivers/trs80.cpp b/src/mame/drivers/trs80.cpp
index 0ea4c8373a5..f7766def498 100644
--- a/src/mame/drivers/trs80.cpp
+++ b/src/mame/drivers/trs80.cpp
@@ -460,10 +460,10 @@ void trs80_state::model1(machine_config &config) // model I, level II
FD1771(config, m_fdc, 4_MHz_XTAL / 4);
m_fdc->intrq_wr_callback().set(FUNC(trs80_state::intrq_w));
- FLOPPY_CONNECTOR(config, "fdc:0", trs80_floppies, "80t_qd", trs80_state::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:1", trs80_floppies, "80t_qd", trs80_state::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:2", trs80_floppies, nullptr, trs80_state::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:3", trs80_floppies, nullptr, trs80_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy[0], trs80_floppies, "80t_qd", trs80_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy[1], trs80_floppies, "80t_qd", trs80_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy[2], trs80_floppies, nullptr, trs80_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy[3], trs80_floppies, nullptr, trs80_state::floppy_formats).enable_sound(true);
CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->busy_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit7));
diff --git a/src/mame/drivers/trs80m3.cpp b/src/mame/drivers/trs80m3.cpp
index 011bb2e8782..0e70d31d686 100644
--- a/src/mame/drivers/trs80m3.cpp
+++ b/src/mame/drivers/trs80m3.cpp
@@ -384,8 +384,8 @@ void trs80m3_state::model3(machine_config &config)
m_fdc->drq_wr_callback().set(FUNC(trs80m3_state::drq_w));
// Internal drives
- FLOPPY_CONNECTOR(config, "fdc:0", trs80_floppies, "40t_dd", trs80m3_state::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, "fdc:1", trs80_floppies, "40t_dd", trs80m3_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy[0], trs80_floppies, "40t_dd", trs80m3_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppy[1], trs80_floppies, "40t_dd", trs80m3_state::floppy_formats).enable_sound(true);
CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->busy_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit7));
diff --git a/src/mame/includes/trs80.h b/src/mame/includes/trs80.h
index 937acda5552..41e41b9f62b 100644
--- a/src/mame/includes/trs80.h
+++ b/src/mame/includes/trs80.h
@@ -41,15 +41,12 @@ public:
, m_uart(*this, "uart")
, m_uart_clock(*this, "uart_clock")
, m_fdc(*this, "fdc")
- , m_floppy0(*this, "fdc:0")
- , m_floppy1(*this, "fdc:1")
- , m_floppy2(*this, "fdc:2")
- , m_floppy3(*this, "fdc:3")
+ , m_floppy(*this, "flop%u", 0U)
, m_speaker(*this, "speaker")
, m_cassette(*this, "cassette")
, m_io_baud(*this, "BAUD")
, m_io_config(*this, "CONFIG")
- , m_io_keyboard(*this, "LINE%u", 0)
+ , m_io_keyboard(*this, "LINE%u", 0U)
{ }
void sys80(machine_config &config);
@@ -99,7 +96,7 @@ protected:
double m_old_cassette_val;
uint8_t m_size_store;
uint16_t m_timeout;
- floppy_image_device *m_floppy;
+ floppy_image_device *m_fdd;
required_device<cpu_device> m_maincpu;
required_memory_region m_region_maincpu;
required_region_ptr<u8> m_p_chargen;
@@ -110,10 +107,7 @@ protected:
optional_device<ay31015_device> m_uart;
optional_device<clock_device> m_uart_clock;
optional_device<fd1771_device> m_fdc;
- optional_device<floppy_connector> m_floppy0;
- optional_device<floppy_connector> m_floppy1;
- optional_device<floppy_connector> m_floppy2;
- optional_device<floppy_connector> m_floppy3;
+ optional_device_array<floppy_connector, 4> m_floppy;
required_device<speaker_sound_device> m_speaker;
required_device<cassette_image_device> m_cassette;
optional_ioport m_io_baud;
diff --git a/src/mame/includes/trs80m3.h b/src/mame/includes/trs80m3.h
index 6c59507bb5e..f3e72c65024 100644
--- a/src/mame/includes/trs80m3.h
+++ b/src/mame/includes/trs80m3.h
@@ -41,12 +41,11 @@ public:
, m_uart(*this, "uart")
, m_brg(*this, "brg")
, m_fdc(*this, "fdc")
- , m_floppy0(*this, "fdc:0")
- , m_floppy1(*this, "fdc:1")
+ , m_floppy(*this, "fdc%u", 0U)
, m_speaker(*this, "speaker")
, m_cassette(*this, "cassette")
, m_io_config(*this, "CONFIG")
- , m_io_keyboard(*this, "LINE%u", 0)
+ , m_io_keyboard(*this, "LINE%u", 0U)
, m_mainram(*this, RAM_TAG)
, m_m4_bank(*this, "m4_banked_mem")
, m_m4p_bank(*this, "m4p_banked_mem")
@@ -130,7 +129,7 @@ private:
bool m_wait;
bool m_drq_off;
bool m_intrq_off;
- floppy_image_device *m_floppy;
+ floppy_image_device *m_fdd;
required_device<cpu_device> m_maincpu;
required_memory_region m_region_maincpu;
required_region_ptr<u8> m_p_chargen;
@@ -142,8 +141,7 @@ private:
optional_device<ay31015_device> m_uart;
optional_device<com8116_device> m_brg;
optional_device<fd1793_device> m_fdc;
- optional_device<floppy_connector> m_floppy0;
- optional_device<floppy_connector> m_floppy1;
+ optional_device_array<floppy_connector, 2> m_floppy;
required_device<speaker_sound_device> m_speaker;
optional_device<cassette_image_device> m_cassette;
optional_ioport m_io_config;
diff --git a/src/mame/machine/trs80.cpp b/src/mame/machine/trs80.cpp
index 0d9ccc97f9e..27c8e016ec4 100644
--- a/src/mame/machine/trs80.cpp
+++ b/src/mame/machine/trs80.cpp
@@ -203,8 +203,8 @@ INTERRUPT_GEN_MEMBER(trs80_state::rtc_interrupt)
// {
// m_timeout--;
// if (m_timeout == 0)
-// if (m_floppy)
-// m_floppy->mon_w(1); // motor off
+// if (m_fdd)
+// m_fdd->mon_w(1); // motor off
// }
}
@@ -279,19 +279,18 @@ uint8_t trs80_state::irq_status_r()
void trs80_state::motor_w(uint8_t data)
{
- m_floppy = nullptr;
+ m_fdd = nullptr;
- if (BIT(data, 0)) m_floppy = m_floppy0->get_device();
- if (BIT(data, 1)) m_floppy = m_floppy1->get_device();
- if (BIT(data, 2)) m_floppy = m_floppy2->get_device();
- if (BIT(data, 3)) m_floppy = m_floppy3->get_device();
+ for (u8 i = 0; i < 4; i++)
+ if (BIT(data, i))
+ m_fdd = m_floppy[i]->get_device();
- m_fdc->set_floppy(m_floppy);
+ m_fdc->set_floppy(m_fdd);
- if (m_floppy)
+ if (m_fdd)
{
- m_floppy->mon_w(0);
- m_floppy->ss_w(BIT(data, 4));
+ m_fdd->mon_w(0);
+ m_fdd->ss_w(BIT(data, 4));
m_timeout = 200;
}
diff --git a/src/mame/machine/trs80m3.cpp b/src/mame/machine/trs80m3.cpp
index 3ab8e597985..85c81ba4d0e 100644
--- a/src/mame/machine/trs80m3.cpp
+++ b/src/mame/machine/trs80m3.cpp
@@ -389,17 +389,17 @@ void trs80m3_state::port_f4_w(uint8_t data)
m_wait = false;
}
- m_floppy = nullptr;
+ m_fdd = nullptr;
- if (BIT(data, 0)) m_floppy = m_floppy0->get_device();
- if (BIT(data, 1)) m_floppy = m_floppy1->get_device();
+ if (BIT(data, 0)) m_fdd = m_floppy[0]->get_device();
+ if (BIT(data, 1)) m_fdd = m_floppy[1]->get_device();
- m_fdc->set_floppy(m_floppy);
+ m_fdc->set_floppy(m_fdd);
- if (m_floppy)
+ if (m_fdd)
{
- m_floppy->mon_w(0);
- m_floppy->ss_w(BIT(data, 4));
+ m_fdd->mon_w(0);
+ m_fdd->ss_w(BIT(data, 4));
m_timeout = 1600;
}
@@ -443,8 +443,8 @@ INTERRUPT_GEN_MEMBER(trs80m3_state::rtc_interrupt)
{
m_timeout--;
if (m_timeout == 0)
- if (m_floppy)
- m_floppy->mon_w(1); // motor off
+ if (m_fdd)
+ m_fdd->mon_w(1); // motor off
}
// Also, if cpu is in wait, unlock it and trigger NMI
// Don't, it breaks disk loading
@@ -625,7 +625,7 @@ void trs80m3_state::machine_reset()
if (m_model4 & 6)
port_84_w(0); // 4 & 4P - switch in devices
- m_floppy = nullptr;
+ m_fdd = nullptr;
}