2023-12-23 16:35:23 -05:00
|
|
|
#include "../include/cpu.h"
|
2024-01-11 16:02:53 -05:00
|
|
|
#include "decoding.h"
|
2023-12-23 16:35:23 -05:00
|
|
|
|
2023-09-24 22:02:08 -04:00
|
|
|
#ifndef CPU_OP_H
|
|
|
|
#define CPU_OP_H
|
|
|
|
|
|
|
|
// The number associated with each op code is the matching line of the ALU op code.
|
|
|
|
// Based on the table here: https://www.nesdev.org/wiki/CPU_unofficial_opcodes
|
2023-10-05 17:05:06 -04:00
|
|
|
enum op_code_base {
|
|
|
|
OP_CODE_BASE_ORA = 0x00,
|
|
|
|
OP_CODE_BASE_AND = 0x20,
|
|
|
|
OP_CODE_BASE_EOR = 0x40,
|
|
|
|
OP_CODE_BASE_ADC = 0x60,
|
|
|
|
OP_CODE_BASE_STA = 0x80,
|
|
|
|
OP_CODE_BASE_LDA = 0xa0,
|
|
|
|
OP_CODE_BASE_CMP = 0xc0,
|
|
|
|
OP_CODE_BASE_SBC = 0xe0
|
2023-09-22 14:39:25 -04:00
|
|
|
};
|
2023-09-24 22:02:08 -04:00
|
|
|
|
2024-01-06 14:27:09 -05:00
|
|
|
void process_op_code(System *system, byte op);
|
2023-12-23 16:35:23 -05:00
|
|
|
|
2024-01-11 16:02:53 -05:00
|
|
|
AddressingMode get_op_addr_mode(byte op_code);
|
|
|
|
|
2023-12-23 16:35:23 -05:00
|
|
|
#endif
|