From e1cdd7386807050bdd7db7debb902425a78e2970 Mon Sep 17 00:00:00 2001 From: vin Date: Thu, 4 Jul 2024 15:06:15 -0400 Subject: implement all of the nestest unofficial opcodes and fix branch cycles --- opcodes.h | 70 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 35 insertions(+), 35 deletions(-) (limited to 'opcodes.h') diff --git a/opcodes.h b/opcodes.h index 020e8f3..89d5f73 100644 --- a/opcodes.h +++ b/opcodes.h @@ -220,13 +220,13 @@ struct opcode opcodes[0x100] = { [0xD4] = { "NOP", NOP, 2, 4, true, false, false, true, AM_ZP_X }, [0xE2] = { "NOP", NOP, 2, 2, false, false, false, true, AM_IMM }, [0xF4] = { "NOP", NOP, 2, 4, true, false, false, true, AM_ZP_X }, - [0xE7] = { "ISC", ISC, 2, 5, false, false, false, true, AM_ZP }, - [0xF7] = { "ISC", ISC, 2, 6, false, false, false, true, AM_ZP_X }, - [0xEF] = { "ISC", ISC, 3, 6, false, false, false, true, AM_ABS }, - [0xFF] = { "ISC", ISC, 3, 7, false, false, false, true, AM_ABS_X }, - [0xFB] = { "ISC", ISC, 3, 7, false, false, false, true, AM_ABS_Y }, - [0xE3] = { "ISC", ISC, 2, 8, false, false, false, true, AM_IND_X }, - [0xF3] = { "ISC", ISC, 2, 8, false, false, false, true, AM_IND_Y }, + [0xE7] = { "ISB", ISB, 2, 5, false, true, false, true, AM_ZP }, + [0xF7] = { "ISB", ISB, 2, 6, false, true, false, true, AM_ZP_X }, + [0xEF] = { "ISB", ISB, 3, 6, false, true, false, true, AM_ABS }, + [0xFF] = { "ISB", ISB, 3, 7, false, true, false, true, AM_ABS_X }, + [0xFB] = { "ISB", ISB, 3, 7, false, true, false, true, AM_ABS_Y }, + [0xE3] = { "ISB", ISB, 2, 8, false, true, false, true, AM_IND_X }, + [0xF3] = { "ISB", ISB, 2, 8, false, true, false, true, AM_IND_Y }, [0x02] = { "KIL", KIL, 1, 0, false, false, false, true, AM_NONE }, [0x12] = { "KIL", KIL, 1, 0, false, false, false, true, AM_NONE }, [0x22] = { "KIL", KIL, 1, 0, false, false, false, true, AM_NONE }, @@ -252,35 +252,35 @@ struct opcode opcodes[0x100] = { [0x7A] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE }, [0xDA] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE }, [0xFA] = { "NOP", NOP, 1, 2, false, false, false, true, AM_NONE }, - [0x27] = { "RLA", RLA, 2, 5, true, true, false, true, AM_ZP }, - [0x37] = { "RLA", RLA, 2, 6, true, true, false, true, AM_ZP_X }, - [0x2F] = { "RLA", RLA, 3, 6, true, true, false, true, AM_ABS }, - [0x3F] = { "RLA", RLA, 3, 7, true, true, false, true, AM_ABS_X }, - [0x3B] = { "RLA", RLA, 3, 7, true, true, false, true, AM_ABS_Y }, - [0x23] = { "RLA", RLA, 2, 8, true, true, false, true, AM_IND_X }, - [0x33] = { "RLA", RLA, 2, 8, true, true, false, true, AM_IND_Y }, - [0x67] = { "RRA", RRA, 2, 5, true, true, false, true, AM_ZP }, - [0x77] = { "RRA", RRA, 2, 6, true, true, false, true, AM_ZP_X }, - [0x6F] = { "RRA", RRA, 3, 6, true, true, false, true, AM_ABS }, - [0x7F] = { "RRA", RRA, 3, 7, true, true, false, true, AM_ABS_X }, - [0x7B] = { "RRA", RRA, 3, 7, true, true, false, true, AM_ABS_Y }, - [0x63] = { "RRA", RRA, 2, 8, true, true, false, true, AM_IND_X }, - [0x73] = { "RRA", RRA, 2, 8, true, true, false, true, AM_IND_Y }, + [0x27] = { "RLA", RLA, 2, 5, false, true, false, true, AM_ZP }, + [0x37] = { "RLA", RLA, 2, 6, false, true, false, true, AM_ZP_X }, + [0x2F] = { "RLA", RLA, 3, 6, false, true, false, true, AM_ABS }, + [0x3F] = { "RLA", RLA, 3, 7, false, true, false, true, AM_ABS_X }, + [0x3B] = { "RLA", RLA, 3, 7, false, true, false, true, AM_ABS_Y }, + [0x23] = { "RLA", RLA, 2, 8, false, true, false, true, AM_IND_X }, + [0x33] = { "RLA", RLA, 2, 8, false, true, false, true, AM_IND_Y }, + [0x67] = { "RRA", RRA, 2, 5, false, true, false, true, AM_ZP }, + [0x77] = { "RRA", RRA, 2, 6, false, true, false, true, AM_ZP_X }, + [0x6F] = { "RRA", RRA, 3, 6, false, true, false, true, AM_ABS }, + [0x7F] = { "RRA", RRA, 3, 7, false, true, false, true, AM_ABS_X }, + [0x7B] = { "RRA", RRA, 3, 7, false, true, false, true, AM_ABS_Y }, + [0x63] = { "RRA", RRA, 2, 8, false, true, false, true, AM_IND_X }, + [0x73] = { "RRA", RRA, 2, 8, false, true, false, true, AM_IND_Y }, [0xEB] = { "SBC", SBC, 2, 2, false, false, false, true, AM_IMM }, - [0x07] = { "SLO", SLO, 2, 5, true, true, false, true, AM_ZP }, - [0x17] = { "SLO", SLO, 2, 6, true, true, false, true, AM_ZP_X }, - [0x0F] = { "SLO", SLO, 3, 6, true, true, false, true, AM_ABS }, - [0x1F] = { "SLO", SLO, 3, 7, true, true, false, true, AM_ABS_X }, - [0x1B] = { "SLO", SLO, 3, 7, true, true, false, true, AM_ABS_Y }, - [0x03] = { "SLO", SLO, 2, 8, true, true, false, true, AM_IND_X }, - [0x13] = { "SLO", SLO, 2, 8, true, true, false, true, AM_IND_Y }, - [0x47] = { "SRE", SRE, 2, 5, true, true, false, true, AM_ZP }, - [0x57] = { "SRE", SRE, 2, 6, true, true, false, true, AM_ZP_X }, - [0x4F] = { "SRE", SRE, 3, 6, true, true, false, true, AM_ABS }, - [0x5F] = { "SRE", SRE, 3, 7, true, true, false, true, AM_ABS_X }, - [0x5B] = { "SRE", SRE, 3, 7, true, true, false, true, AM_ABS_Y }, - [0x43] = { "SRE", SRE, 2, 8, true, true, false, true, AM_IND_X }, - [0x53] = { "SRE", SRE, 2, 8, true, true, false, true, AM_IND_Y }, + [0x07] = { "SLO", SLO, 2, 5, false, true, false, true, AM_ZP }, + [0x17] = { "SLO", SLO, 2, 6, false, true, false, true, AM_ZP_X }, + [0x0F] = { "SLO", SLO, 3, 6, false, true, false, true, AM_ABS }, + [0x1F] = { "SLO", SLO, 3, 7, false, true, false, true, AM_ABS_X }, + [0x1B] = { "SLO", SLO, 3, 7, false, true, false, true, AM_ABS_Y }, + [0x03] = { "SLO", SLO, 2, 8, false, true, false, true, AM_IND_X }, + [0x13] = { "SLO", SLO, 2, 8, false, true, false, true, AM_IND_Y }, + [0x47] = { "SRE", SRE, 2, 5, false, true, false, true, AM_ZP }, + [0x57] = { "SRE", SRE, 2, 6, false, true, false, true, AM_ZP_X }, + [0x4F] = { "SRE", SRE, 3, 6, false, true, false, true, AM_ABS }, + [0x5F] = { "SRE", SRE, 3, 7, false, true, false, true, AM_ABS_X }, + [0x5B] = { "SRE", SRE, 3, 7, false, true, false, true, AM_ABS_Y }, + [0x43] = { "SRE", SRE, 2, 8, false, true, false, true, AM_IND_X }, + [0x53] = { "SRE", SRE, 2, 8, false, true, false, true, AM_IND_Y }, [0x9E] = { "SXA", SXA, 3, 5, false, true, false, true, AM_ABS_Y }, [0x9C] = { "SYA", SYA, 3, 5, false, true, false, true, AM_ABS_X }, [0x0C] = { "NOP", NOP, 3, 4, true, false, false, true, AM_ABS }, -- cgit v1.2.3