From 72bda53e89bc313a5681ed9a2676332d228180b7 Mon Sep 17 00:00:00 2001 From: yz70s Date: Fri, 15 Jun 2018 19:26:11 +0200 Subject: fdc37c93x.cpp: put memory mappings in remap routine (nw) --- src/devices/machine/fdc37c93x.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/devices/machine/fdc37c93x.cpp b/src/devices/machine/fdc37c93x.cpp index c426f5de080..f6cd3171fa2 100644 --- a/src/devices/machine/fdc37c93x.cpp +++ b/src/devices/machine/fdc37c93x.cpp @@ -531,7 +531,21 @@ void fdc37c93x_device::unmap_keyboard_addresses() void fdc37c93x_device::remap(int space_id, offs_t start, offs_t end) { - //printf("remapping needed %d %d %d\n\r", space_id, start, end); + if (space_id == AS_IO) + { + if (sysopt_pin == 0) + m_isa->install_device(0x03f0, 0x03f3, read8_delegate(FUNC(fdc37c93x_device::read_fdc37c93x), this), write8_delegate(FUNC(fdc37c93x_device::write_fdc37c93x), this)); + else + m_isa->install_device(0x0370, 0x0373, read8_delegate(FUNC(fdc37c93x_device::read_fdc37c93x), this), write8_delegate(FUNC(fdc37c93x_device::write_fdc37c93x), this)); + if (enabled_logical[LogicalDevice::FDC] == true) + map_fdc_addresses(); + if (enabled_logical[LogicalDevice::Parallel] == true) + map_lpt_addresses(); + if (enabled_logical[LogicalDevice::RTC] == true) + map_rtc_addresses(); + if (enabled_logical[LogicalDevice::Keyboard] == true) + map_keyboard_addresses(); + } } /* Register access */ @@ -767,10 +781,7 @@ void fdc37c93x_device::device_start() m_isa->set_dma_channel(1, this, true); m_isa->set_dma_channel(2, this, true); m_isa->set_dma_channel(3, this, true); - if (sysopt_pin == 0) - m_isa->install_device(0x03f0, 0x03f3, read8_delegate(FUNC(fdc37c93x_device::read_fdc37c93x), this), write8_delegate(FUNC(fdc37c93x_device::write_fdc37c93x), this)); - else - m_isa->install_device(0x0370, 0x0373, read8_delegate(FUNC(fdc37c93x_device::read_fdc37c93x), this), write8_delegate(FUNC(fdc37c93x_device::write_fdc37c93x), this)); + remap(AS_IO, 0, 0x400); m_gp20_reset_callback.resolve_safe(); m_gp25_gatea20_callback.resolve_safe(); m_irq1_callback.resolve_safe(); -- cgit v1.2.3