summaryrefslogtreecommitdiff
path: root/cpu.h
diff options
context:
space:
mode:
authorvin <git@vineetk.net>2024-07-07 13:04:10 -0400
committervin <git@vineetk.net>2024-07-07 13:04:16 -0400
commitca5a09cd94a5fc92e727cd69fb89f58760f34176 (patch)
tree75d4c030de9f07115dfd1b3ddaf46f284a16d6f4 /cpu.h
parent3e0563ce059172001d06688809096972696f83a4 (diff)
fix warnings and move cpu registers+flags to header
Diffstat (limited to 'cpu.h')
-rw-r--r--cpu.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/cpu.h b/cpu.h
index ed17432..05c30fa 100644
--- a/cpu.h
+++ b/cpu.h
@@ -1,5 +1,29 @@
+#ifndef CPU_H
+#define CPU_H
+
#include <stdint.h>
+struct cpu_flags {
+ uint8_t carry : 1;
+ uint8_t zero : 1;
+ uint8_t interrupt_disable : 1;
+ uint8_t decimal_mode : 1;
+ uint8_t brk : 1;
+ uint8_t unused : 1;
+ uint8_t overflow : 1;
+ uint8_t negative : 1;
+};
+
+struct registers {
+ uint8_t a, x, y, sp;
+ struct cpu_flags status;
+ uint16_t pc;
+};
+struct registers regs = {0};
+
+/* 64K address space, 16bit words */
+uint8_t memory[0x16000];
+
/* OFFICIAL OPCODES */
void ADC(uint16_t arg);
void AND(uint16_t arg);
@@ -87,3 +111,5 @@ void SYA(uint16_t arg);
void TOP(uint16_t arg);
void XAA(uint16_t arg);
void XAS(uint16_t arg);
+
+#endif /* CPU_H */