20 *low = (
PB << 16) |
PC++;
23 *low = (
PB << 16) |
PC++;
24 return (
PB << 16) |
PC++;
32 *low = (
D + adr +
X) & 0xffff;
33 return (
D + adr +
X + 1) & 0xffff;
40 *low = (
D + adr +
Y) & 0xffff;
41 return (
D + adr +
Y + 1) & 0xffff;
47 uint16_t pointer =
ReadWord((
D + adr) & 0xffff,
false);
48 *low = (
DB << 16) + pointer;
49 return ((
DB << 16) + pointer + 1) & 0xffffff;
55 uint16_t pointer =
ReadWord((
D + adr) & 0xffff,
false);
57 if (write || !
GetIndexSize() || ((pointer >> 8) != ((pointer +
Y) >> 8)))
59 *low = ((
DB << 16) + pointer +
Y) & 0xffffff;
60 return ((
DB << 16) + pointer +
Y + 1) & 0xffffff;
66 uint32_t pointer =
ReadWord((
D + adr) & 0xffff,
false);
67 pointer |=
ReadByte((
D + adr + 2) & 0xffff) << 16;
69 return (pointer + 1) & 0xffffff;
75 uint32_t pointer =
ReadWord((
D + adr) & 0xffff,
false);
76 pointer |=
ReadByte((
D + adr + 2) & 0xffff) << 16;
77 *low = (pointer +
Y) & 0xffffff;
78 return (pointer +
Y + 1) & 0xffffff;
84 *low = (
SP() + adr) & 0xffff;
85 return (
SP() + adr + 1) & 0xffff;
91 uint16_t pointer =
ReadWord((
SP() + adr) & 0xffff,
false);
93 *low = ((
DB << 16) + pointer +
Y) & 0xffffff;
94 return ((
DB << 16) + pointer +
Y + 1) & 0xffffff;
99 *low = (
DB << 16) + adr;
100 return ((
DB << 16) + adr + 1) & 0xffffff;
106 if (write || !
GetIndexSize() || ((adr >> 8) != ((adr +
X) >> 8)))
108 *low = ((
DB << 16) + adr +
X) & 0xffffff;
109 return ((
DB << 16) + adr +
X + 1) & 0xffffff;
115 if (write || !
GetIndexSize() || ((adr >> 8) != ((adr +
Y) >> 8)))
117 *low = ((
DB << 16) + adr +
Y) & 0xffffff;
118 return ((
DB << 16) + adr +
Y + 1) & 0xffffff;
125 return (adr + 1) & 0xffffff;
131 *low = (adr +
X) & 0xffffff;
132 return (adr +
X + 1) & 0xffffff;
138 *low = (
D + adr) & 0xffff;
139 return (
D + adr + 1) & 0xffff;
150 return D + operand + x_by_mode;
155 return (operand +
Y) & 0xFF;
162 uint16_t pointer =
ReadWord((
D + adr +
X) & 0xffff,
false);
163 *low = (
DB << 16) + pointer;
164 return ((
DB << 16) + pointer + 1) & 0xffffff;
169 uint16_t effective_address =
D + dp;
170 return ReadWordLong((0x00 << 0x10) | effective_address);
175 uint16_t indirect_address =
D + operand;
177 uint32_t effective_address =
ReadWordLong(indirect_address) + y_by_mode;
178 return effective_address;
183 uint16_t effective_address =
SP() + sr;
184 return effective_address;
uint32_t AdrAby(uint32_t *low, bool write)
uint32_t DirectPageIndirectLongIndexedY()
uint32_t AdrAbl(uint32_t *low)
uint32_t AdrIdy(uint32_t *low, bool write)
uint32_t AdrSr(uint32_t *low)
uint32_t Immediate(uint32_t *low, bool xFlag)
uint16_t DirectPageIndexedY()
uint8_t ReadByte(uint32_t address)
uint32_t AdrIdl(uint32_t *low)
uint32_t DirectPageIndirectLong()
uint16_t ReadWord(uint32_t address, uint32_t address_high, bool int_check=false)
uint32_t AdrAbx(uint32_t *low, bool write)
uint32_t AdrDp(uint32_t *low)
uint32_t AdrIdp(uint32_t *low)
uint32_t AdrDpy(uint32_t *low)
uint16_t DirectPageIndexedX()
int GetAccumulatorSize() const
uint32_t AdrIly(uint32_t *low)
uint32_t ReadWordLong(uint32_t address)
uint32_t AdrIdx(uint32_t *low)
uint32_t Absolute(uint32_t *low)
uint32_t AdrAlx(uint32_t *low)
uint32_t AdrIsy(uint32_t *low)
uint16_t ReadOpcodeWord(bool int_check=false)
uint32_t AdrDpx(uint32_t *low)
SNES Emulation and debugging tools.
Main namespace for the application.