diff options
author | AJR <ajrhacker@users.noreply.github.com> | 2017-09-03 16:57:28 -0400 |
---|---|---|
committer | AJR <ajrhacker@users.noreply.github.com> | 2017-09-03 16:58:01 -0400 |
commit | bff8a33459bd0296e4921a4988400a025c1026be (patch) | |
tree | 68238563422f5f43cf2c601f212fe6d6ae573043 | |
parent | 4b12e8491927e99560ad9d50b90a088a45bc7643 (diff) |
z8: Mask external stack accesses too (nw)
-rw-r--r-- | src/devices/cpu/z8/z8.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/devices/cpu/z8/z8.cpp b/src/devices/cpu/z8/z8.cpp index 4a632ecad8a..cbabf70eab2 100644 --- a/src/devices/cpu/z8/z8.cpp +++ b/src/devices/cpu/z8/z8.cpp @@ -515,7 +515,7 @@ void z8_device::stack_push_byte(uint8_t src) register_pair_write(Z8_REGISTER_SPH, sp); // @SP <- src - m_data->write_byte(sp, src); + m_data->write_byte(mask_external_address(sp), src); } } @@ -537,7 +537,7 @@ void z8_device::stack_push_word(uint16_t src) register_pair_write(Z8_REGISTER_SPH, sp); // @SP <- src - m_data->write_word(sp, src); + m_data->write_word(mask_external_address(sp), src); } } @@ -558,7 +558,7 @@ uint8_t z8_device::stack_pop_byte() { // @SP <- src uint16_t sp = register_pair_read(Z8_REGISTER_SPH); - uint8_t byte = m_data->read_byte(sp); + uint8_t byte = m_data->read_byte(mask_external_address(sp)); // SP <- SP + 1 (postincrement) register_pair_write(Z8_REGISTER_SPH, sp + 1); @@ -584,7 +584,7 @@ uint16_t z8_device::stack_pop_word() { // @SP <- src uint16_t sp = register_pair_read(Z8_REGISTER_SPH); - uint16_t word = m_data->read_word(sp); + uint16_t word = m_data->read_word(mask_external_address(sp)); // SP <- SP + 2 (postincrement) register_pair_write(Z8_REGISTER_SPH, sp + 2); |