From f071f9faacac000817dd308ad7276b5a59c9497e Mon Sep 17 00:00:00 2001 From: folkert van heusden Date: Sat, 18 Mar 2023 23:45:51 +0100 Subject: [PATCH] only read from data-space when enabled --- cpu.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/cpu.cpp b/cpu.cpp index 4f242fb..30d53ea 100644 --- a/cpu.cpp +++ b/cpu.cpp @@ -353,33 +353,33 @@ gam_rc_t cpu::getGAM(const uint8_t mode, const uint8_t reg, const bool word_mode g.addr = b->read(getRegister(reg, g.set, prev_mode), false, prev_mode, g.space); addRegister(reg, prev_mode, 2); if (read_value) - g.value = b->read(g.addr.value(), word_mode, prev_mode, false, d_space); + g.value = b->read(g.addr.value(), word_mode, prev_mode, false, g.space); break; case 4: addRegister(reg, prev_mode, !word_mode || reg == 7 || reg == 6 ? -2 : -1); g.addr = getRegister(reg, g.set, prev_mode); if (read_value) - g.value = b->read(g.addr.value(), word_mode, prev_mode, false, d_space); + g.value = b->read(g.addr.value(), word_mode, prev_mode, false, g.space); break; case 5: addRegister(reg, prev_mode, -2); g.addr = b->read(getRegister(reg, g.set, prev_mode), false, prev_mode, g.space); if (read_value) - g.value = b->read(g.addr.value(), word_mode, prev_mode, d_space); + g.value = b->read(g.addr.value(), word_mode, prev_mode, g.space); break; case 6: - next_word = b -> read(getPC(), false, prev_mode); + next_word = b->read(getPC(), false, prev_mode, i_space); addRegister(7, prev_mode, + 2); g.addr = getRegister(reg, g.set, prev_mode) + next_word; if (read_value) - g.value = b->read(g.addr.value(), word_mode, prev_mode, d_space); + g.value = b->read(g.addr.value(), word_mode, prev_mode, g.space); break; case 7: - next_word = b -> read(getPC(), false, prev_mode); + next_word = b->read(getPC(), false, prev_mode, i_space); addRegister(7, prev_mode, + 2); g.addr = b->read(getRegister(reg, g.set, prev_mode) + next_word, false, prev_mode); if (read_value) - g.value = b->read(g.addr.value(), word_mode, prev_mode, d_space); + g.value = b->read(g.addr.value(), word_mode, prev_mode, g.space); break; }