diff --git a/cpu.cpp b/cpu.cpp index 73f2411..f5e0f2c 100644 --- a/cpu.cpp +++ b/cpu.cpp @@ -402,7 +402,7 @@ gam_rc_t cpu::getGAM(const uint8_t mode, const uint8_t reg, const word_mode_t wo case 3: // @(Rn)+ / @#a g.addr = b->read(getRegister(reg, mode_selection), wm_word, mode_selection, false, isR7_space); // might be wrong: the adds should happen when the read is really performed, because of traps - addRegister(reg, mode_selection, 2); + addRegister(reg, mode_selection, word_mode == wm_byte ? 1 : 2); addToMMR1(mode, reg, word_mode); g.space = d_space; if (read_value)