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
This commit is contained in:
folkert van heusden 2023-03-21 09:00:40 +01:00
parent 6ac4a9ecb6
commit fa9f57caa0
Signed by untrusted user who does not match committer: folkert
GPG key ID: 6B6455EDFEED3BD1

View file

@ -402,7 +402,7 @@ uint32_t bus::calculate_physical_address(const int run_mode, const uint16_t a, c
{ {
uint32_t m_offset = a; 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 const uint8_t apf = a >> 13; // active page field
bool d = is_data & (!!(MMR3 & di_ena_mask[run_mode])) ? is_data : false; bool d = is_data & (!!(MMR3 & di_ena_mask[run_mode])) ? is_data : false;