From 1119779c8b6036aaaeb65fe3a819ae7bf70cc8ae Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Mon, 28 Jun 2021 21:47:53 -0400 Subject: [PATCH] Ensure EXDOS card is completely disabled if no FDC is present. --- Machines/Enterprise/Enterprise.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Machines/Enterprise/Enterprise.cpp b/Machines/Enterprise/Enterprise.cpp index bf2baff9f..c9b77232a 100644 --- a/Machines/Enterprise/Enterprise.cpp +++ b/Machines/Enterprise/Enterprise.cpp @@ -329,11 +329,19 @@ template class ConcreteMachine: case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: - *cycle.value = exdos_.read(address); + if constexpr (has_disk_controller) { + *cycle.value = exdos_.read(address); + } else { + *cycle.value = 0xff; + } break; case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x1e: case 0x1f: - *cycle.value = exdos_.get_control_register(); + if constexpr (has_disk_controller) { + *cycle.value = exdos_.get_control_register(); + } else { + *cycle.value = 0xff; + } break; case 0xb0: *cycle.value = pages_[0]; break; @@ -367,11 +375,15 @@ template class ConcreteMachine: case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17: - exdos_.write(address, *cycle.value); + if constexpr(has_disk_controller) { + exdos_.write(address, *cycle.value); + } break; case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x1e: case 0x1f: - exdos_.set_control_register(*cycle.value); + if constexpr(has_disk_controller) { + exdos_.set_control_register(*cycle.value); + } break; case 0x80: case 0x81: case 0x82: case 0x83: