diff --git a/src/memory.c b/src/memory.c index e69de29..7d6b8d6 100644 --- a/src/memory.c +++ b/src/memory.c @@ -0,0 +1,17 @@ +#include "memory.h" +#include + +uint8_t mem_read(Memory *mem, uint16_t addr) +{ + return mem->data[addr]; +} + +void mem_write(Memory *mem, uint16_t addr, uint8_t value) +{ + mem->data[addr] = value; +} + +void mem_reset(Memory *mem) +{ + memset(mem->data, 0, MEM_SIZE); +} \ No newline at end of file diff --git a/src/memory.h b/src/memory.h index e69de29..8349b0f 100644 --- a/src/memory.h +++ b/src/memory.h @@ -0,0 +1,17 @@ +#ifndef MEMORY_H +#define MEMORY_H + +#include + +#define MEM_SIZE 65536 // 64KB memory size + +typedef struct +{ + uint8_t data[MEM_SIZE]; +} Memory; + +uint8_t mem_read(Memory *mem, uint16_t addr); +void mem_write(Memory *mem, uint16_t addr, uint8_t value); +void mem_reset(Memory *mem); + +#endif \ No newline at end of file