summaryrefslogtreecommitdiff
path: root/opcodes.h
diff options
context:
space:
mode:
Diffstat (limited to 'opcodes.h')
-rw-r--r--opcodes.h106
1 files changed, 53 insertions, 53 deletions
diff --git a/opcodes.h b/opcodes.h
index ca0d1cc..020e8f3 100644
--- a/opcodes.h
+++ b/opcodes.h
@@ -189,23 +189,23 @@ struct opcode opcodes[0x100] = {
189 /* unofficial opcodes: https://www.nesdev.org/undocumented_opcodes.txt */ 189 /* unofficial opcodes: https://www.nesdev.org/undocumented_opcodes.txt */
190 [0x0B] = { "AAC", AAC, 2, 2, false, false, false, true, AM_IMM }, 190 [0x0B] = { "AAC", AAC, 2, 2, false, false, false, true, AM_IMM },
191 [0x2B] = { "AAC", AAC, 2, 2, false, false, false, true, AM_IMM }, 191 [0x2B] = { "AAC", AAC, 2, 2, false, false, false, true, AM_IMM },
192 [0x87] = { "AAX", AAX, 2, 3, false, false, false, true, AM_ZP }, 192 [0x87] = { "SAX", SAX, 2, 3, false, true, false, true, AM_ZP },
193 [0x97] = { "AAX", AAX, 2, 4, false, false, false, true, AM_ZP_Y }, 193 [0x97] = { "SAX", SAX, 2, 4, false, true, false, true, AM_ZP_Y },
194 [0x83] = { "AAX", AAX, 2, 6, false, false, false, true, AM_IND_X }, 194 [0x83] = { "SAX", SAX, 2, 6, false, true, false, true, AM_IND_X },
195 [0x8F] = { "AAX", AAX, 3, 4, false, false, false, true, AM_ABS }, 195 [0x8F] = { "SAX", SAX, 3, 4, false, true, false, true, AM_ABS },
196 [0x6B] = { "ARR", ARR, 2, 2, false, false, false, true, AM_IMM }, 196 [0x6B] = { "ARR", ARR, 2, 2, false, false, false, true, AM_IMM },
197 [0x4B] = { "ASR", ASR, 2, 2, false, false, false, true, AM_IMM }, 197 [0x4B] = { "ASR", ASR, 2, 2, false, false, false, true, AM_IMM },
198 [0xAB] = { "ATX", ATX, 2, 2, false, false, false, true, AM_IMM }, 198 [0xAB] = { "ATX", ATX, 2, 2, false, false, false, true, AM_IMM },
199 [0x9F] = { "AXA", AXA, 3, 5, false, false, false, true, AM_ABS_Y }, 199 [0x9F] = { "AXA", AXA, 3, 5, false, true, false, true, AM_ABS_Y },
200 [0x93] = { "AXA", AXA, 2, 6, false, false, false, true, AM_IND_Y }, 200 [0x93] = { "AXA", AXA, 2, 6, false, true, false, true, AM_IND_Y },
201 [0xCB] = { "AXS", AXS, 2, 2, false, false, false, true, AM_IMM }, 201 [0xCB] = { "AXS", AXS, 2, 2, false, false, false, true, AM_IMM },
202 [0xC7] = { "DCP", DCP, 2, 5, false, false, false, true, AM_ZP }, 202 [0xC7] = { "DCP", DCP, 2, 5, false, true, false, true, AM_ZP },
203 [0xD7] = { "DCP", DCP, 2, 6, false, false, false, true, AM_ZP_X }, 203 [0xD7] = { "DCP", DCP, 2, 6, false, true, false, true, AM_ZP_X },
204 [0xCF] = { "DCP", DCP, 3, 6, false, false, false, true, AM_ABS }, 204 [0xCF] = { "DCP", DCP, 3, 6, false, true, false, true, AM_ABS },
205 [0xDF] = { "DCP", DCP, 3, 7, false, false, false, true, AM_ABS_X }, 205 [0xDF] = { "DCP", DCP, 3, 7, false, true, false, true, AM_ABS_X },
206 [0xDB] = { "DCP", DCP, 3, 7, false, false, false, true, AM_ABS_Y }, 206 [0xDB] = { "DCP", DCP, 3, 7, false, true, false, true, AM_ABS_Y },
207 [0xC3] = { "DCP", DCP, 2, 8, false, false, false, true, AM_IND_X }, 207 [0xC3] = { "DCP", DCP, 2, 8, false, true, false, true, AM_IND_X },
208 [0xD3] = { "DCP", DCP, 2, 8, false, false, false, true, AM_IND_Y }, 208 [0xD3] = { "DCP", DCP, 2, 8, false, true, false, true, AM_IND_Y },
209 [0x04] = { "NOP", NOP, 2, 3, true, false, false, true, AM_ZP }, 209 [0x04] = { "NOP", NOP, 2, 3, true, false, false, true, AM_ZP },
210 [0x14] = { "NOP", NOP, 2, 4, true, false, false, true, AM_ZP_X }, 210 [0x14] = { "NOP", NOP, 2, 4, true, false, false, true, AM_ZP_X },
211 [0x34] = { "NOP", NOP, 2, 4, true, false, false, true, AM_ZP_X }, 211 [0x34] = { "NOP", NOP, 2, 4, true, false, false, true, AM_ZP_X },
@@ -217,9 +217,9 @@ struct opcode opcodes[0x100] = {
217 [0x82] = { "NOP", NOP, 2, 2, false, false, false, true, AM_IMM }, 217 [0x82] = { "NOP", NOP, 2, 2, false, false, false, true, AM_IMM },
218 [0x89] = { "NOP", NOP, 2, 2, false, false, false, true, AM_IMM }, 218 [0x89] = { "NOP", NOP, 2, 2, false, false, false, true, AM_IMM },
219 [0xC2] = { "NOP", NOP, 2, 2, false, false, false, true, AM_IMM }, 219 [0xC2] = { "NOP", NOP, 2, 2, false, false, false, true, AM_IMM },
220 [0xD4] = { "NOP", NOP, 2, 4, false, false, false, true, AM_ZP_X }, 220 [0xD4] = { "NOP", NOP, 2, 4, true, false, false, true, AM_ZP_X },
221 [0xE2] = { "NOP", NOP, 2, 2, false, false, false, true, AM_IMM }, 221 [0xE2] = { "NOP", NOP, 2, 2, false, false, false, true, AM_IMM },
222 [0xF4] = { "NOP", NOP, 2, 4, false, false, false, true, AM_ZP_X }, 222 [0xF4] = { "NOP", NOP, 2, 4, true, false, false, true, AM_ZP_X },
223 [0xE7] = { "ISC", ISC, 2, 5, false, false, false, true, AM_ZP }, 223 [0xE7] = { "ISC", ISC, 2, 5, false, false, false, true, AM_ZP },
224 [0xF7] = { "ISC", ISC, 2, 6, false, false, false, true, AM_ZP_X }, 224 [0xF7] = { "ISC", ISC, 2, 6, false, false, false, true, AM_ZP_X },
225 [0xEF] = { "ISC", ISC, 3, 6, false, false, false, true, AM_ABS }, 225 [0xEF] = { "ISC", ISC, 3, 6, false, false, false, true, AM_ABS },
@@ -239,50 +239,50 @@ struct opcode opcodes[0x100] = {
239 [0xB2] = { "KIL", KIL, 1, 0, false, false, false, true, AM_NONE }, 239 [0xB2] = { "KIL", KIL, 1, 0, false, false, false, true, AM_NONE },
240 [0xD2] = { "KIL", KIL, 1, 0, false, false, false, true, AM_NONE }, 240 [0xD2] = { "KIL", KIL, 1, 0, false, false, false, true, AM_NONE },
241 [0xF2] = { "KIL", KIL, 1, 0, false, false, false, true, AM_NONE }, 241 [0xF2] = { "KIL", KIL, 1, 0, false, false, false, true, AM_NONE },
242 [0xBB] = { "LAR", LAR, 3, 4, false, false, true, true, AM_ABS_Y }, 242 [0xBB] = { "LAR", LAR, 3, 4, true, false, true, true, AM_ABS_Y },
243 [0xA7] = { "LAX", LAX, 2, 3, false, false, false, true, AM_ZP }, 243 [0xA7] = { "LAX", LAX, 2, 3, true, false, false, true, AM_ZP },
244 [0xB7] = { "LAX", LAX, 2, 4, false, false, false, true, AM_ZP_Y }, 244 [0xB7] = { "LAX", LAX, 2, 4, true, false, false, true, AM_ZP_Y },
245 [0xAF] = { "LAX", LAX, 3, 4, false, false, false, true, AM_ABS }, 245 [0xAF] = { "LAX", LAX, 3, 4, true, false, false, true, AM_ABS },
246 [0xBF] = { "LAX", LAX, 3, 4, false, false, true, true, AM_ABS_Y }, 246 [0xBF] = { "LAX", LAX, 3, 4, true, false, true, true, AM_ABS_Y },
247 [0xA3] = { "LAX", LAX, 2, 6, false, false, false, true, AM_IND_X }, 247 [0xA3] = { "LAX", LAX, 2, 6, true, false, false, true, AM_IND_X },
248 [0xB3] = { "LAX", LAX, 2, 5, false, false, true, true, AM_IND_Y }, 248 [0xB3] = { "LAX", LAX, 2, 5, true, false, true, true, AM_IND_Y },
249 [0x1A] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE }, 249 [0x1A] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE },
250 [0x3A] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE }, 250 [0x3A] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE },
251 [0x5A] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE }, 251 [0x5A] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE },
252 [0x7A] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE }, 252 [0x7A] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE },
253 [0xDA] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE }, 253 [0xDA] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE },
254 [0xFA] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE }, 254 [0xFA] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE },
255 [0x27] = { "RLA", RLA, 2, 5, false, false, false, true, AM_ZP }, 255 [0x27] = { "RLA", RLA, 2, 5, true, true, false, true, AM_ZP },
256 [0x37] = { "RLA", RLA, 2, 6, false, false, false, true, AM_ZP_X }, 256 [0x37] = { "RLA", RLA, 2, 6, true, true, false, true, AM_ZP_X },
257 [0x2F] = { "RLA", RLA, 3, 6, false, false, false, true, AM_ABS }, 257 [0x2F] = { "RLA", RLA, 3, 6, true, true, false, true, AM_ABS },
258 [0x3F] = { "RLA", RLA, 3, 7, false, false, false, true, AM_ABS_X }, 258 [0x3F] = { "RLA", RLA, 3, 7, true, true, false, true, AM_ABS_X },
259 [0x3B] = { "RLA", RLA, 3, 7, false, false, false, true, AM_ABS_Y }, 259 [0x3B] = { "RLA", RLA, 3, 7, true, true, false, true, AM_ABS_Y },
260 [0x23] = { "RLA", RLA, 2, 8, false, false, false, true, AM_IND_X }, 260 [0x23] = { "RLA", RLA, 2, 8, true, true, false, true, AM_IND_X },
261 [0x33] = { "RLA", RLA, 2, 8, false, false, false, true, AM_IND_Y }, 261 [0x33] = { "RLA", RLA, 2, 8, true, true, false, true, AM_IND_Y },
262 [0x67] = { "RRA", RRA, 2, 5, false, false, false, true, AM_ZP }, 262 [0x67] = { "RRA", RRA, 2, 5, true, true, false, true, AM_ZP },
263 [0x77] = { "RRA", RRA, 2, 6, false, false, false, true, AM_ZP_X }, 263 [0x77] = { "RRA", RRA, 2, 6, true, true, false, true, AM_ZP_X },
264 [0x6F] = { "RRA", RRA, 3, 6, false, false, false, true, AM_ABS }, 264 [0x6F] = { "RRA", RRA, 3, 6, true, true, false, true, AM_ABS },
265 [0x7F] = { "RRA", RRA, 3, 7, false, false, false, true, AM_ABS_X }, 265 [0x7F] = { "RRA", RRA, 3, 7, true, true, false, true, AM_ABS_X },
266 [0x7B] = { "RRA", RRA, 3, 7, false, false, false, true, AM_ABS_Y }, 266 [0x7B] = { "RRA", RRA, 3, 7, true, true, false, true, AM_ABS_Y },
267 [0x63] = { "RRA", RRA, 2, 8, false, false, false, true, AM_IND_X }, 267 [0x63] = { "RRA", RRA, 2, 8, true, true, false, true, AM_IND_X },
268 [0x73] = { "RRA", RRA, 2, 8, false, false, false, true, AM_IND_Y }, 268 [0x73] = { "RRA", RRA, 2, 8, true, true, false, true, AM_IND_Y },
269 [0xEB] = { "SBC", SBC, 2, 2, false, false, false, true, AM_IMM }, 269 [0xEB] = { "SBC", SBC, 2, 2, false, false, false, true, AM_IMM },
270 [0x07] = { "SLO", SLO, 2, 5, false, false, false, true, AM_ZP }, 270 [0x07] = { "SLO", SLO, 2, 5, true, true, false, true, AM_ZP },
271 [0x17] = { "SLO", SLO, 2, 6, false, false, false, true, AM_ZP_X }, 271 [0x17] = { "SLO", SLO, 2, 6, true, true, false, true, AM_ZP_X },
272 [0x0F] = { "SLO", SLO, 3, 6, false, false, false, true, AM_ABS }, 272 [0x0F] = { "SLO", SLO, 3, 6, true, true, false, true, AM_ABS },
273 [0x1F] = { "SLO", SLO, 3, 7, false, false, false, true, AM_ABS_X }, 273 [0x1F] = { "SLO", SLO, 3, 7, true, true, false, true, AM_ABS_X },
274 [0x1B] = { "SLO", SLO, 3, 7, false, false, false, true, AM_ABS_Y }, 274 [0x1B] = { "SLO", SLO, 3, 7, true, true, false, true, AM_ABS_Y },
275 [0x03] = { "SLO", SLO, 2, 8, false, false, false, true, AM_IND_X }, 275 [0x03] = { "SLO", SLO, 2, 8, true, true, false, true, AM_IND_X },
276 [0x13] = { "SLO", SLO, 2, 8, false, false, false, true, AM_IND_Y }, 276 [0x13] = { "SLO", SLO, 2, 8, true, true, false, true, AM_IND_Y },
277 [0x47] = { "SRE", SRE, 2, 5, false, false, false, true, AM_ZP }, 277 [0x47] = { "SRE", SRE, 2, 5, true, true, false, true, AM_ZP },
278 [0x57] = { "SRE", SRE, 2, 6, false, false, false, true, AM_ZP_X }, 278 [0x57] = { "SRE", SRE, 2, 6, true, true, false, true, AM_ZP_X },
279 [0x4F] = { "SRE", SRE, 3, 6, false, false, false, true, AM_ABS }, 279 [0x4F] = { "SRE", SRE, 3, 6, true, true, false, true, AM_ABS },
280 [0x5F] = { "SRE", SRE, 3, 7, false, false, false, true, AM_ABS_X }, 280 [0x5F] = { "SRE", SRE, 3, 7, true, true, false, true, AM_ABS_X },
281 [0x5B] = { "SRE", SRE, 3, 7, false, false, false, true, AM_ABS_Y }, 281 [0x5B] = { "SRE", SRE, 3, 7, true, true, false, true, AM_ABS_Y },
282 [0x43] = { "SRE", SRE, 2, 8, false, false, false, true, AM_IND_X }, 282 [0x43] = { "SRE", SRE, 2, 8, true, true, false, true, AM_IND_X },
283 [0x53] = { "SRE", SRE, 2, 8, false, false, false, true, AM_IND_Y }, 283 [0x53] = { "SRE", SRE, 2, 8, true, true, false, true, AM_IND_Y },
284 [0x9E] = { "SXA", SXA, 3, 5, false, false, false, true, AM_ABS_Y }, 284 [0x9E] = { "SXA", SXA, 3, 5, false, true, false, true, AM_ABS_Y },
285 [0x9C] = { "SYA", SYA, 3, 5, false, false, false, true, AM_ABS_X }, 285 [0x9C] = { "SYA", SYA, 3, 5, false, true, false, true, AM_ABS_X },
286 [0x0C] = { "NOP", NOP, 3, 4, true, false, false, true, AM_ABS }, 286 [0x0C] = { "NOP", NOP, 3, 4, true, false, false, true, AM_ABS },
287 [0x1C] = { "NOP", NOP, 3, 4, true, false, true, true, AM_ABS_X }, 287 [0x1C] = { "NOP", NOP, 3, 4, true, false, true, true, AM_ABS_X },
288 [0x3C] = { "NOP", NOP, 3, 4, true, false, true, true, AM_ABS_X }, 288 [0x3C] = { "NOP", NOP, 3, 4, true, false, true, true, AM_ABS_X },
@@ -291,5 +291,5 @@ struct opcode opcodes[0x100] = {
291 [0xDC] = { "NOP", NOP, 3, 4, true, false, true, true, AM_ABS_X }, 291 [0xDC] = { "NOP", NOP, 3, 4, true, false, true, true, AM_ABS_X },
292 [0xFC] = { "NOP", NOP, 3, 4, true, false, true, true, AM_ABS_X }, 292 [0xFC] = { "NOP", NOP, 3, 4, true, false, true, true, AM_ABS_X },
293 [0x8B] = { "XAA", XAA, 2, 2, false, false, false, true, AM_IMM }, 293 [0x8B] = { "XAA", XAA, 2, 2, false, false, false, true, AM_IMM },
294 [0x9B] = { "XAS", XAS, 3, 5, false, false, false, true, AM_ABS_Y }, 294 [0x9B] = { "XAS", XAS, 3, 5, false, true, false, true, AM_ABS_Y },
295}; 295};