From fa9f57caa03ed3fdbacb4a552d15ebb057ca75c0 Mon Sep 17 00:00:00 2001 From: folkert van heusden Date: Tue, 21 Mar 2023 09:00:40 +0100 Subject: [PATCH] Bit 8 of MMR0 enables relocation only for 'destination'. Implemented by checking for bit 8 when doing a write. https://retrocomputing.stackexchange.com/questions/24664/pdp-11-34-bit-8-in-mmr0-maintenance-mode-what-does-it-do --- bus.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bus.cpp b/bus.cpp index c894827..2da6fd4 100644 --- a/bus.cpp +++ b/bus.cpp @@ -402,7 +402,7 @@ uint32_t bus::calculate_physical_address(const int run_mode, const uint16_t a, c { uint32_t m_offset = a; - if (MMR0 & 1) { + if ((MMR0 & 1) || (is_write && (MMR0 & (1 << 8)))) { const uint8_t apf = a >> 13; // active page field bool d = is_data & (!!(MMR3 & di_ena_mask[run_mode])) ? is_data : false;