From 1cffb789b5d258c3d6fced0fb949f068b1b23bae Mon Sep 17 00:00:00 2001 From: leo Date: Mon, 18 Mar 2024 21:21:20 -0300 Subject: CLC CLD CLI CLV CMP CPX CPY --- opcode_pc.h | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'opcode_pc.h') diff --git a/opcode_pc.h b/opcode_pc.h index 0d79aad..30a0d7b 100644 --- a/opcode_pc.h +++ b/opcode_pc.h @@ -1,6 +1,7 @@ #ifndef _OPCODEPC #define _OPCODEPC #include "CPU.h" +#include enum _INSTRUCTION{ ADC = 1, @@ -19,6 +20,13 @@ enum _INSTRUCTION{ BPL, BVC, BVS, + CLC, + CLD, + CLI, + CLV, + CMP, + CPX, + CPY, }; struct _OPCODE{ @@ -82,6 +90,31 @@ void init_opcode_pc(){ OPCODE[0x50] = (struct _OPCODE){BVC, NoneAddressing, 2}; /*BVS*/ OPCODE[0x70] = (struct _OPCODE){BVS, NoneAddressing, 2}; + /*CLC*/ + OPCODE[0x18] = (struct _OPCODE){CLC, NoneAddressing, 2}; + /*CLD*/ + OPCODE[0xD8] = (struct _OPCODE){CLD, NoneAddressing, 2}; + /*CLI*/ + OPCODE[0x58] = (struct _OPCODE){CLI, NoneAddressing, 2}; + /*CLV*/ + OPCODE[0xB8] = (struct _OPCODE){CLV, NoneAddressing, 2}; + /*CMP*/ + OPCODE[0xC9] = (struct _OPCODE){CMP, Immediate, 2}; + OPCODE[0xC5] = (struct _OPCODE){CMP, ZeroPage, 2}; + OPCODE[0xD5] = (struct _OPCODE){CMP, ZeroPage_X, 2}; + OPCODE[0xCD] = (struct _OPCODE){CMP, Absolute, 3}; + OPCODE[0xDD] = (struct _OPCODE){CMP, Absolute_X, 3}; + OPCODE[0xD9] = (struct _OPCODE){CMP, Absolute_Y, 3}; + OPCODE[0xC1] = (struct _OPCODE){CMP, Indirect_X, 2}; + OPCODE[0xD1] = (struct _OPCODE){CMP, Indirect_Y, 2}; + /*CPX*/ + OPCODE[0xE0] = (struct _OPCODE){CPX, Immediate, 2}; + OPCODE[0xE4] = (struct _OPCODE){CPX, ZeroPage, 2}; + OPCODE[0xEC] = (struct _OPCODE){CPX, Absolute, 3}; + /*CPY*/ + OPCODE[0xC0] = (struct _OPCODE){CPY, Immediate, 2}; + OPCODE[0xC4] = (struct _OPCODE){CPY, ZeroPage, 2}; + OPCODE[0xCC] = (struct _OPCODE){CPY, Absolute, 3}; } -#endif \ No newline at end of file +#endif -- cgit v1.2.3