diff options
Diffstat (limited to 'src/devices/cpu/g65816/g65816.h')
-rw-r--r-- | src/devices/cpu/g65816/g65816.h | 64 |
1 files changed, 34 insertions, 30 deletions
diff --git a/src/devices/cpu/g65816/g65816.h b/src/devices/cpu/g65816/g65816.h index 3c6acf9f6d1..6dfe2b52975 100644 --- a/src/devices/cpu/g65816/g65816.h +++ b/src/devices/cpu/g65816/g65816.h @@ -6,7 +6,6 @@ #pragma once #include "g65816ds.h" -#include "g65816cm.h" /* ======================================================================== */ /* =============================== COPYRIGHT ============================== */ @@ -140,10 +139,8 @@ protected: int bus_5A22_cycle_burst(unsigned addr); unsigned g65816_get_pc(); void g65816_set_pc(unsigned val); -#ifdef UNUSED_FUNCTION - unsigned g65816_get_sp(); - void g65816_set_sp(unsigned val); -#endif + [[maybe_unused]] unsigned g65816_get_sp(); + [[maybe_unused]] void g65816_set_sp(unsigned val); public: unsigned g65816_get_reg(int regnum); void g65816_set_reg(int regnum, unsigned value); @@ -159,18 +156,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); @@ -211,30 +215,30 @@ protected: static const set_line_func s_g65816_set_line[5]; static const execute_func s_g65816_execute[5]; - unsigned m_a; /* Accumulator */ - unsigned m_b; /* holds high byte of accumulator */ - unsigned m_x; /* Index Register X */ - unsigned m_y; /* Index Register Y */ - unsigned m_s; /* Stack Pointer */ - unsigned m_pc; /* Program Counter */ - unsigned m_ppc; /* Previous Program Counter */ - unsigned m_pb; /* Program Bank (shifted left 16) */ - unsigned m_db; /* Data Bank (shifted left 16) */ - unsigned m_d; /* Direct Register */ - unsigned m_flag_e; /* Emulation Mode Flag */ - unsigned m_flag_m; /* Memory/Accumulator Select Flag */ - unsigned m_flag_x; /* Index Select Flag */ - unsigned m_flag_n; /* Negative Flag */ - unsigned m_flag_v; /* Overflow Flag */ - unsigned m_flag_d; /* Decimal Mode Flag */ - unsigned m_flag_i; /* Interrupt Mask Flag */ - unsigned m_flag_z; /* Zero Flag (inverted) */ - unsigned m_flag_c; /* Carry Flag */ - unsigned m_line_irq; /* Status of the IRQ line */ - unsigned m_line_nmi; /* Status of the NMI line */ - unsigned m_fastROM; /* SNES specific */ - unsigned m_ir; /* Instruction Register */ - unsigned m_irq_delay; /* delay 1 instruction before checking irq */ + uint32_t m_a; /* Accumulator */ + uint32_t m_b; /* holds high byte of accumulator */ + uint32_t m_x; /* Index Register X */ + uint32_t m_y; /* Index Register Y */ + uint16_t m_s; /* Stack Pointer */ + uint16_t m_pc; /* Program Counter */ + uint16_t m_ppc; /* Previous Program Counter */ + uint32_t m_pb; /* Program Bank (shifted left 16) */ + uint32_t m_db; /* Data Bank (shifted left 16) */ + uint32_t m_d; /* Direct Register */ + uint32_t m_flag_e; /* Emulation Mode Flag */ + uint32_t m_flag_m; /* Memory/Accumulator Select Flag */ + uint32_t m_flag_x; /* Index Select Flag */ + uint32_t m_flag_n; /* Negative Flag */ + uint32_t m_flag_v; /* Overflow Flag */ + uint32_t m_flag_d; /* Decimal Mode Flag */ + uint32_t m_flag_i; /* Interrupt Mask Flag */ + uint32_t m_flag_z; /* Zero Flag (inverted) */ + uint32_t m_flag_c; /* Carry Flag */ + uint32_t m_line_irq; /* Status of the IRQ line */ + uint32_t m_line_nmi; /* Status of the NMI line */ + uint32_t m_fastROM; /* SNES specific */ + uint32_t m_ir; /* Instruction Register */ + uint32_t m_irq_delay; /* delay 1 instruction before checking irq */ memory_access<24, 0, 0, ENDIANNESS_LITTLE>::cache m_program; memory_access<24, 0, 0, ENDIANNESS_LITTLE>::cache m_opcode; memory_access<24, 0, 0, ENDIANNESS_LITTLE>::specific m_data; |