summaryrefslogtreecommitdiff
path: root/emu/memory.h
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2020-11-21 21:08:43 +0100
committerAndreas Baumann <mail@andreasbaumann.cc>2020-11-21 21:08:43 +0100
commit052899e196c6a2660651b9896ceed3313e7d0bac (patch)
tree9deb31de468693326a2b426db76f0e99ffe0c9c2 /emu/memory.h
parent56ae2c7b25157e44c50ab982236fee8bbcca0463 (diff)
download6502-052899e196c6a2660651b9896ceed3313e7d0bac.tar.gz
6502-052899e196c6a2660651b9896ceed3313e7d0bac.tar.bz2
started a simple emulator
Diffstat (limited to 'emu/memory.h')
-rw-r--r--emu/memory.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/emu/memory.h b/emu/memory.h
new file mode 100644
index 0000000..35fd0ef
--- /dev/null
+++ b/emu/memory.h
@@ -0,0 +1,23 @@
+#ifndef MEMORY_H
+#define MEMORY_H
+
+#include <stdint.h>
+
+enum {
+ MEMORY_SIZE = 65535
+};
+
+typedef struct memory_t
+{
+ uint8_t cell[MEMORY_SIZE];
+
+ uint8_t (*read)( struct memory_t *memory, uint16_t addr );
+ void (*write)( struct memory_t *memory, uint16_t addr, uint8_t data );
+} memory_t;
+
+void memory_init( memory_t *memory );
+uint8_t memory_read( memory_t *memory, uint16_t addr );
+void memory_write( memory_t *memory, uint16_t addr, uint8_t data );
+void memory_load( memory_t *memory, uint16_t addr, uint16_t size, const char *filename );
+
+#endif