commit c417bf2276dc1427d0fb747b66baa9aba22c235f
parent 4db0a8163e6641923466da99ff84d34dfdca44fa
Author: vin <git@vineetk.net>
Date: Sun, 9 Jun 2024 16:07:09 +0530
add memory writing functions
Diffstat:
| M | cpu.c | | | 22 | ++++++++++++++++++---- |
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/cpu.c b/cpu.c
@@ -51,20 +51,34 @@ uint8_t program[] = { 0xa9, 0xc0, 0xaa, 0xe8, 0x00 };
uint32_t cycles = 0;
-uint8_t
+static uint8_t
peek(uint16_t addr)
{
return memory[addr];
}
-uint16_t
+static uint16_t
peek16(uint16_t addr)
{
/* bytes are stored in little-endian (low then high) */
return (uint16_t)memory[addr] | ((uint16_t)memory[addr + 1] << 8);
}
-uint8_t
+static void
+memwrite(uint16_t addr, uint8_t byte)
+{
+ memory[addr] = b;
+}
+
+static void
+memwrite16(uint16_t addr, uint16_t word)
+{
+ /* bytes are stored in little-endian (low then high) */
+ memory[addr] = word & 0xFF;
+ memory[addr + 1] = (word & 0xFF00) >> 8;
+}
+
+static uint8_t
opcode_arg(enum addressing_mode mode)
{
uint8_t arg, val;
@@ -597,7 +611,7 @@ unp(uint8_t arg)
/* TODO: complete this */
}
-void
+static void
interpret(void)
{
uint8_t opcode;