summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/g65816/g65816.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/g65816/g65816.h')
-rw-r--r--src/devices/cpu/g65816/g65816.h64
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;