diff options
author | vin <git@vineetk.net> | 2024-06-09 16:07:09 +0530 |
---|---|---|
committer | vin <git@vineetk.net> | 2024-06-09 16:07:09 +0530 |
commit | c417bf2276dc1427d0fb747b66baa9aba22c235f (patch) | |
tree | a3475bbf43976ed5c77e20534cb7f51a3cdf38ef /cpu.c | |
parent | 4db0a8163e6641923466da99ff84d34dfdca44fa (diff) |
add memory writing functions
Diffstat (limited to 'cpu.c')
-rw-r--r-- | cpu.c | 22 |
1 files changed, 18 insertions, 4 deletions
@@ -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; |