diff options
author | Andreas Baumann <mail@andreasbaumann.cc> | 2020-11-21 21:08:43 +0100 |
---|---|---|
committer | Andreas Baumann <mail@andreasbaumann.cc> | 2020-11-21 21:08:43 +0100 |
commit | 052899e196c6a2660651b9896ceed3313e7d0bac (patch) | |
tree | 9deb31de468693326a2b426db76f0e99ffe0c9c2 /emu/memory.c | |
parent | 56ae2c7b25157e44c50ab982236fee8bbcca0463 (diff) | |
download | 6502-052899e196c6a2660651b9896ceed3313e7d0bac.tar.gz 6502-052899e196c6a2660651b9896ceed3313e7d0bac.tar.bz2 |
started a simple emulator
Diffstat (limited to 'emu/memory.c')
-rw-r--r-- | emu/memory.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/emu/memory.c b/emu/memory.c new file mode 100644 index 0000000..c9d953b --- /dev/null +++ b/emu/memory.c @@ -0,0 +1,26 @@ +#include "memory.h" + +#include <stdio.h> + +void memory_init( memory_t *memory ) +{ + memory->read = memory_read; + memory->write = memory_write; +} + +uint8_t memory_read( memory_t *memory, uint16_t addr ) +{ + return memory->cell[addr]; +} + +void memory_write( memory_t *memory, uint16_t addr, uint8_t data ) +{ + memory->cell[addr] = data; +} + +void memory_load( memory_t *memory, uint16_t addr, uint16_t size, const char *filename ) +{ + FILE *f = fopen( filename, "rb" ); + fread( &memory->cell[addr], size, 1, f ); + fclose( f ); +} |