diff options
| author | 2026-02-19 15:00:25 +0100 | |
|---|---|---|
| committer | 2026-02-19 16:58:07 +0100 | |
| commit | ecf84ed24b5e06bbd7c59b77ee682ce51902bb65 (patch) | |
| tree | fdd3f0321884673c9b5ade63ec0ca58434294d0b | |
| parent | 64842a3832f96be21d1eba398063742d92a78ceb (diff) | |
bus/isa/fdc.cpp: issue a remap for later variants, fix regression
| -rw-r--r-- | src/devices/bus/isa/fdc.cpp | 38 | ||||
| -rw-r--r-- | src/devices/bus/isa/fdc.h | 6 |
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; |
