summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/g65816/g65816.h
diff options
context:
space:
mode:
author Adrian Siekierka <kontakt@asie.pl>2024-02-29 00:42:16 +0100
committer GitHub <noreply@github.com>2024-02-28 18:42:16 -0500
commit63864c41dd2a276ec15e6510c118710483b78063 (patch)
tree7850c894c8d2db2bf0026007e85d5ec1c65bd4be /src/devices/cpu/g65816/g65816.h
parenta3b3b39a68bdfc90d3dea6f969c206e6b54879c7 (diff)
g65816: Emulation accuracy fixes - (stack,S),Y and emulation mode quirks (#12079)
* Fix wraparound in (stack,S),Y addressing mode * Emulate (direct,X) emulation mode wraparound bug, fix handling of direct page accesses in emulation mode. * Ignore emulation mode for 24-bit pointer reads/writes * Force usage of native 16-bit stack handling for 65816-exclusive stack instructions * PEI also forces native 16-bit direct page handling * PLB reads from ($200) instead of ($100) when S=$1FF in emulation mode
Diffstat (limited to 'src/devices/cpu/g65816/g65816.h')
-rw-r--r--src/devices/cpu/g65816/g65816.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/devices/cpu/g65816/g65816.h b/src/devices/cpu/g65816/g65816.h
index d918eba4f29..59794cc66a0 100644
--- a/src/devices/cpu/g65816/g65816.h
+++ b/src/devices/cpu/g65816/g65816.h
@@ -157,18 +157,25 @@ protected:
unsigned g65816i_read_16_normal(unsigned address);
unsigned g65816i_read_16_immediate(unsigned address);
unsigned g65816i_read_16_direct(unsigned address);
+ unsigned g65816i_read_16_direct_x(unsigned address);
unsigned g65816i_read_16_vector(unsigned address);
void g65816i_write_16_normal(unsigned address, unsigned value);
void g65816i_write_16_direct(unsigned address, unsigned value);
unsigned g65816i_read_24_normal(unsigned address);
unsigned g65816i_read_24_immediate(unsigned address);
- unsigned g65816i_read_24_direct(unsigned address);
void g65816i_push_8(unsigned value);
unsigned g65816i_pull_8();
void g65816i_push_16(unsigned value);
unsigned g65816i_pull_16();
void g65816i_push_24(unsigned value);
unsigned g65816i_pull_24();
+ void g65816i_push_8_native(unsigned value);
+ unsigned g65816i_pull_8_native();
+ void g65816i_push_16_native(unsigned value);
+ unsigned g65816i_pull_16_native();
+ void g65816i_push_24_native(unsigned value);
+ unsigned g65816i_pull_24_native();
+ void g65816i_update_reg_s();
void g65816i_jump_16(unsigned address);
void g65816i_jump_24(unsigned address);
void g65816i_branch_8(unsigned offset);