#ifndef __CPU_OPCODES_H__
#define __CPU_OPCODES_H__

/* Instructions */
#define INST_ADC 0
#define INST_AND 1
#define INST_ASL 2

#define INST_BCC 3
#define INST_BCS 4
#define INST_BEQ 5
#define INST_BIT 6
#define INST_BMI 7
#define INST_BNE 8
#define INST_BPL 9
#define INST_BRK 10
#define INST_BVC 11
#define INST_BVS 12

#define INST_CLC 13
#define INST_CLD 14
#define INST_CLI 15
#define INST_CLV 16
#define INST_CMP 17
#define INST_CPX 18
#define INST_CPY 19

#define INST_DEC 20
#define INST_DEX 21
#define INST_DEY 22

#define INST_EOR 23

#define INST_INC 24
#define INST_INX 25
#define INST_INY 26

#define INST_JMP 27
#define INST_JSR 28

#define INST_LDA 29
#define INST_LDX 30
#define INST_LDY 31
#define INST_LSR 32

#define INST_NOP 33

#define INST_ORA 34

#define INST_PHA 35
#define INST_PHP 36
#define INST_PLA 37
#define INST_PLP 38

#define INST_ROL 39
#define INST_ROR 40
#define INST_RTI 41
#define INST_RTS 42

#define INST_SBC 43
#define INST_SEC 44
#define INST_SED 45
#define INST_SEI 46
#define INST_STA 47
#define INST_STX 48
#define INST_STY 49

#define INST_TAX 50
#define INST_TAY 51
#define INST_TSX 52
#define INST_TXA 53
#define INST_TXS 54
#define INST_TYA 55

#define INST_DUMMY 56

/* Instruction names */
char instnames[][4] = {
	"ADC",
	"AND",
	"ASL",
	"BCC",
	"BCS",
	"BEQ",
	"BIT",
	"BMI",
	"BNE",
	"BPL",
	"BRK",
	"BVC",
	"BVS",
	"CLC",
	"CLD",
	"CLI",
	"CLV",
	"CMP",
	"CPX",
	"CPY",
	"DEC",
	"DEX",
	"DEY",
	"EOR",
	"INC",
	"INX",
	"INY",
	"JMP",
	"JSR",
	"LDA",
	"LDX",
	"LDY",
	"LSR",
	"NOP",
	"ORA",
	"PHA",
	"PHP",
	"PLA",
	"PLP",
	"ROL",
	"ROR",
	"RTI",
	"RTS",
	"SBC",
	"SEC",
	"SED",
	"SEI",
	"STA",
	"STX",
	"STY",
	"TAX",
	"TAY",
	"TSX",
	"TXA",
	"TXS",
	"TYA"
};

#endif