diff options
author | 2022-04-23 18:01:51 -0400 | |
---|---|---|
committer | 2022-04-23 18:01:51 -0400 | |
commit | 53b1e6b58e5ef5b60f2833fd7a606ebf791680de (patch) | |
tree | 81bd1553fa4bf746858fbdeaee6864512b671175 /src | |
parent | e2f4c3950d9bf3e96bee2cfc1acdf356d4ead296 (diff) |
g65816: properly calculate page crossing penalty cycle for ,Y addressing modes. [R. Belmont, O. Galibert]
Diffstat (limited to 'src')
-rw-r--r-- | src/devices/cpu/g65816/g65816.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/devices/cpu/g65816/g65816.cpp b/src/devices/cpu/g65816/g65816.cpp index 20995f19a8f..7476fb8cde0 100644 --- a/src/devices/cpu/g65816/g65816.cpp +++ b/src/devices/cpu/g65816/g65816.cpp @@ -684,13 +684,13 @@ unsigned g65816_device::EA_DX() {return MAKE_UINT_16(REGISTER_D + g65816i_rea unsigned g65816_device::EA_DY() {return MAKE_UINT_16(REGISTER_D + g65816i_read_8_immediate(EA_IMM8()) + REGISTER_Y);} unsigned g65816_device::EA_AX() {unsigned tmp = EA_A(); if((tmp^(tmp+REGISTER_X))&0xff00) CLK(1); return tmp + REGISTER_X;} unsigned g65816_device::EA_ALX() {return EA_AL() + REGISTER_X;} -unsigned g65816_device::EA_AY() {unsigned tmp = EA_A(); if((tmp^(tmp+REGISTER_X))&0xff00) CLK(1); return tmp + REGISTER_Y;} +unsigned g65816_device::EA_AY() {unsigned tmp = EA_A(); if((tmp^(tmp+REGISTER_Y))&0xff00) CLK(1); return tmp + REGISTER_Y;} unsigned g65816_device::EA_DI() {return REGISTER_DB | g65816i_read_16_direct(EA_D());} unsigned g65816_device::EA_DLI() {return g65816i_read_24_direct(EA_D());} unsigned g65816_device::EA_AI() {return g65816i_read_16_normal(g65816i_read_16_immediate(EA_IMM16()));} unsigned g65816_device::EA_ALI() {return g65816i_read_24_normal(EA_A());} unsigned g65816_device::EA_DXI() {return REGISTER_DB | g65816i_read_16_direct(EA_DX());} -unsigned g65816_device::EA_DIY() {unsigned tmp = REGISTER_DB | g65816i_read_16_direct(EA_D()); if((tmp^(tmp+REGISTER_X))&0xff00) CLK(1); return tmp + REGISTER_Y;} +unsigned g65816_device::EA_DIY() {unsigned tmp = REGISTER_DB | g65816i_read_16_direct(EA_D()); if((tmp^(tmp+REGISTER_Y))&0xff00) CLK(1); return tmp + REGISTER_Y;} unsigned g65816_device::EA_DLIY() {return g65816i_read_24_direct(EA_D()) + REGISTER_Y;} unsigned g65816_device::EA_AXI() {return g65816i_read_16_normal(MAKE_UINT_16(g65816i_read_16_immediate(EA_IMM16()) + REGISTER_X));} unsigned g65816_device::EA_S() {return MAKE_UINT_16(REGISTER_S + g65816i_read_8_immediate(EA_IMM8()));} |