diff options
author | yz70s <yz70s@users.noreply.github.com> | 2018-06-15 19:26:11 +0200 |
---|---|---|
committer | yz70s <yz70s@users.noreply.github.com> | 2018-06-15 20:27:39 +0200 |
commit | 72bda53e89bc313a5681ed9a2676332d228180b7 (patch) | |
tree | 4208c7d58624051b651bdd87552f76aa7f8b67f1 | |
parent | ca544ca03e9f2766c27c494ae8c8e148de8b6890 (diff) |
fdc37c93x.cpp: put memory mappings in remap routine (nw)
-rw-r--r-- | src/devices/machine/fdc37c93x.cpp | 21 |
1 files 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(); |