summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author angelosa <lordkale4@gmail.com>2026-02-19 15:00:25 +0100
committer angelosa <lordkale4@gmail.com>2026-02-19 16:58:07 +0100
commitecf84ed24b5e06bbd7c59b77ee682ce51902bb65 (patch)
treefdd3f0321884673c9b5ade63ec0ca58434294d0b
parent64842a3832f96be21d1eba398063742d92a78ceb (diff)
bus/isa/fdc.cpp: issue a remap for later variants, fix regression
-rw-r--r--src/devices/bus/isa/fdc.cpp38
-rw-r--r--src/devices/bus/isa/fdc.h6
2 files changed, 44 insertions, 0 deletions
diff --git a/src/devices/bus/isa/fdc.cpp b/src/devices/bus/isa/fdc.cpp
index 377e212c49a..a2f7aaed9ce 100644
--- a/src/devices/bus/isa/fdc.cpp
+++ b/src/devices/bus/isa/fdc.cpp
@@ -210,6 +210,11 @@ void isa8_fdc_xt_device::device_start()
isa8_upd765_fdc_device::device_start();
}
+void isa8_fdc_xt_device::device_reset()
+{
+ isa8_upd765_fdc_device::device_reset();
+}
+
void isa8_fdc_xt_device::remap(int space_id, offs_t start, offs_t end)
{
if (space_id == AS_IO)
@@ -264,6 +269,12 @@ void isa8_fdc_at_device::device_start()
isa8_upd765_fdc_device::device_start();
}
+void isa8_fdc_at_device::device_reset()
+{
+ isa8_upd765_fdc_device::device_reset();
+}
+
+
void isa8_fdc_at_device::remap(int space_id, offs_t start, offs_t end)
{
if (space_id == AS_IO)
@@ -291,6 +302,14 @@ void isa8_fdc_smc_device::device_start()
m_isa->set_dma_channel(2, this, true);
}
+void isa8_fdc_smc_device::device_reset()
+{
+ isa8_fdc_device::device_reset();
+ //dor_w(0x00);
+ remap(AS_IO, 0, 0xffff);
+}
+
+
void isa8_fdc_smc_device::remap(int space_id, offs_t start, offs_t end)
{
if (space_id == AS_IO)
@@ -319,6 +338,13 @@ void isa8_fdc_ps2_device::device_start()
m_isa->set_dma_channel(2, this, true);
}
+void isa8_fdc_ps2_device::device_reset()
+{
+ isa8_fdc_device::device_reset();
+ //dor_w(0x00);
+ remap(AS_IO, 0, 0xffff);
+}
+
void isa8_fdc_ps2_device::remap(int space_id, offs_t start, offs_t end)
{
if (space_id == AS_IO)
@@ -346,6 +372,13 @@ void isa8_fdc_superio_device::device_start()
m_isa->set_dma_channel(2, this, true);
}
+void isa8_fdc_superio_device::device_reset()
+{
+ isa8_fdc_device::device_reset();
+ //dor_w(0x00);
+ remap(AS_IO, 0, 0xffff);
+}
+
void isa8_fdc_superio_device::remap(int space_id, offs_t start, offs_t end)
{
if (space_id == AS_IO)
@@ -365,6 +398,11 @@ void isa8_ec1841_0003_device::device_start()
isa8_fdc_xt_device::device_start();
}
+void isa8_ec1841_0003_device::device_reset()
+{
+ isa8_fdc_xt_device::device_reset();
+}
+
void isa8_ec1841_0003_device::remap(int space_id, offs_t start, offs_t end)
{
isa8_fdc_xt_device::remap(space_id, start, end);
diff --git a/src/devices/bus/isa/fdc.h b/src/devices/bus/isa/fdc.h
index 8ff959e2156..9e53ecd4d9f 100644
--- a/src/devices/bus/isa/fdc.h
+++ b/src/devices/bus/isa/fdc.h
@@ -79,6 +79,7 @@ protected:
// device-level overrides
virtual void device_add_mconfig(machine_config &config) override ATTR_COLD;
virtual void device_start() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
virtual void remap(int space_id, offs_t start, offs_t end) override;
void map(address_map &map) ATTR_COLD;
@@ -93,6 +94,7 @@ protected:
// device-level overrides
virtual void device_add_mconfig(machine_config &config) override ATTR_COLD;
virtual void device_start() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
virtual void remap(int space_id, offs_t start, offs_t end) override;
void map(address_map &map) ATTR_COLD;
@@ -106,6 +108,7 @@ protected:
// device-level overrides
virtual void device_add_mconfig(machine_config &config) override ATTR_COLD;
virtual void device_start() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
virtual void remap(int space_id, offs_t start, offs_t end) override;
};
@@ -117,6 +120,7 @@ protected:
// device-level overrides
virtual void device_add_mconfig(machine_config &config) override ATTR_COLD;
virtual void device_start() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
virtual void remap(int space_id, offs_t start, offs_t end) override;
};
@@ -128,6 +132,7 @@ protected:
// device-level overrides
virtual void device_add_mconfig(machine_config &config) override ATTR_COLD;
virtual void device_start() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
virtual void remap(int space_id, offs_t start, offs_t end) override;
};
@@ -138,6 +143,7 @@ public:
protected:
virtual void device_add_mconfig(machine_config &config) override ATTR_COLD;
virtual void device_start() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
virtual void remap(int space_id, offs_t start, offs_t end) override;
required_device<bus_mouse_device> m_bus_mouse;