diff --git a/roms/2-ibm-logo.ch8 b/roms/2-ibm-logo.ch8 new file mode 100644 index 0000000..d60dac8 Binary files /dev/null and b/roms/2-ibm-logo.ch8 differ diff --git a/src/Makefile b/src/Makefile index 3263c46..a55169e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,7 +1,7 @@ EXEC=chip-8 -$(EXEC): main.c screen.c +$(EXEC): main.c screen.c mem.c vcpu.c gcc -lraylib $^ -o $@ clean: diff --git a/src/main.c b/src/main.c index 66b76c8..995f4ed 100644 --- a/src/main.c +++ b/src/main.c @@ -1,11 +1,17 @@ #include "screen.h" - +#include "mem.h" +#include "vcpu.h" int main(int argc, char *argv[]) { + // Initialize + MemInit(); + MemLoadROM("../roms/2-ibm-logo.ch8"); ScreenInit(800,400); + VCPUInit(); + ScreenSetPixel(0,1,1); while (!WindowShouldClose()){ diff --git a/src/mem.c b/src/mem.c new file mode 100644 index 0000000..c537120 --- /dev/null +++ b/src/mem.c @@ -0,0 +1,57 @@ +#include "mem.h" +#include + +unsigned char memory[4096]; + +extern unsigned char DEFAULT_FONT[]; + +void MemInit(){ + MemSet(0,0,4096); + MemCopy(DEFAULT_FONT,16*5,ADDR_FONT); +} + +void MemSet(int addr, unsigned char value, int size){ + for(int i=0;i