diff --git a/Machines/Apple/AppleIIgs/MemoryMap.hpp b/Machines/Apple/AppleIIgs/MemoryMap.hpp index 724f7c908..cf3f8908f 100644 --- a/Machines/Apple/AppleIIgs/MemoryMap.hpp +++ b/Machines/Apple/AppleIIgs/MemoryMap.hpp @@ -379,6 +379,7 @@ class MemoryMap { c0_region.flags |= Region::IsIO; #define apply_region(flag, region) \ + region.write = nullptr; \ if(flag) { \ region.read = rom; \ region.flags &= ~Region::IsIO; \ diff --git a/OSBindings/Mac/Clock SignalTests/IIgsMemoryMapTests.mm b/OSBindings/Mac/Clock SignalTests/IIgsMemoryMapTests.mm index ab9a1f831..06e17c41c 100644 --- a/OSBindings/Mac/Clock SignalTests/IIgsMemoryMapTests.mm +++ b/OSBindings/Mac/Clock SignalTests/IIgsMemoryMapTests.mm @@ -318,9 +318,13 @@ namespace { // Test read pointers. testMemory(@"read", ^(int logical, int physical, const MemoryMap::Region ®ion) { XCTAssert(region.read != nullptr); - const int foundPhysical = physicalOffset(®ion.read[logical << 8]); + if(region.read == nullptr) { + *stop = YES; + return; + } // Compare to correct value. + const int foundPhysical = physicalOffset(®ion.read[logical << 8]); XCTAssert(physical == foundPhysical, @"Logical page %04x should be mapped to read physical %04x; is instead %04x", logical, @@ -341,9 +345,13 @@ namespace { } XCTAssert(region.write != nullptr); - const int foundPhysical = physicalOffset(®ion.write[logical << 8]); + if(region.write == nullptr) { + *stop = YES; + return; + } // Compare to correct value. + const int foundPhysical = physicalOffset(®ion.write[logical << 8]); XCTAssert(physical == foundPhysical, @"Logical page %04x should be mapped to write physical %04x; is instead %04x", logical,