other modes with reg 7 shall not update MMR1
This commit is contained in:
parent
62c86dfccb
commit
5b82ad260f
1 changed files with 6 additions and 3 deletions
5
cpu.cpp
5
cpu.cpp
|
@ -498,6 +498,7 @@ gam_rc_t cpu::getGAM(const uint8_t mode, const uint8_t reg, const word_mode_t wo
|
||||||
g.addr = b->read(get_register(reg), wm_word, rm_cur, isR7_space);
|
g.addr = b->read(get_register(reg), wm_word, rm_cur, isR7_space);
|
||||||
// might be wrong: the adds should happen when the read is really performed, because of traps
|
// might be wrong: the adds should happen when the read is really performed, because of traps
|
||||||
add_register(reg, 2);
|
add_register(reg, 2);
|
||||||
|
if (reg != 7)
|
||||||
g.mmr1_update = { 2, reg };
|
g.mmr1_update = { 2, reg };
|
||||||
g.space = d_space;
|
g.space = d_space;
|
||||||
if (read_value)
|
if (read_value)
|
||||||
|
@ -505,7 +506,8 @@ gam_rc_t cpu::getGAM(const uint8_t mode, const uint8_t reg, const word_mode_t wo
|
||||||
break;
|
break;
|
||||||
case 4: // -(Rn)
|
case 4: // -(Rn)
|
||||||
add_register(reg, word_mode == wm_word || reg == 7 || reg == 6 ? -2 : -1);
|
add_register(reg, word_mode == wm_word || reg == 7 || reg == 6 ? -2 : -1);
|
||||||
g.mmr1_update = { word_mode == wm_word || reg == 7 || reg == 6 ? -2 : -1, reg };
|
if (reg != 7)
|
||||||
|
g.mmr1_update = { word_mode == wm_word || reg == 6 ? -2 : -1, reg };
|
||||||
g.space = d_space;
|
g.space = d_space;
|
||||||
g.addr = get_register(reg);
|
g.addr = get_register(reg);
|
||||||
if (read_value)
|
if (read_value)
|
||||||
|
@ -513,6 +515,7 @@ gam_rc_t cpu::getGAM(const uint8_t mode, const uint8_t reg, const word_mode_t wo
|
||||||
break;
|
break;
|
||||||
case 5: // @-(Rn)
|
case 5: // @-(Rn)
|
||||||
add_register(reg, -2);
|
add_register(reg, -2);
|
||||||
|
if (reg != 7)
|
||||||
g.mmr1_update = { -2, reg };
|
g.mmr1_update = { -2, reg };
|
||||||
g.addr = b->read(get_register(reg), wm_word, rm_cur, isR7_space);
|
g.addr = b->read(get_register(reg), wm_word, rm_cur, isR7_space);
|
||||||
g.space = d_space;
|
g.space = d_space;
|
||||||
|
|
Loading…
Add table
Reference in a new issue