From 16d303008c90dadc11d36a516b381c57f8bd37ec Mon Sep 17 00:00:00 2001 From: Fabien Freling Date: Sun, 22 Mar 2015 13:56:32 +0100 Subject: [PATCH] Add memory module. --- src/memory.ml | 16 ++++++++++++++++ src/oboy.ml | 1 + 2 files changed, 17 insertions(+) create mode 100644 src/memory.ml diff --git a/src/memory.ml b/src/memory.ml new file mode 100644 index 0000000..6351838 --- /dev/null +++ b/src/memory.ml @@ -0,0 +1,16 @@ +(** http://bgb.bircd.org/pandocs.htm#memorymap + http://imrannazar.com/GameBoy-Emulation-in-JavaScript:-Memory *) + +type map = { + rom_bank_00 : bytes; (* cartridge, 16KB *) + rom_bank_01 : bytes; (* additional bank, 16KB *) + vram : bytes; (* Video RAM, 8KB *) +} + +let init (cartridge: Cartridge.t) = + let open Bytes in + { + rom_bank_00 = sub cartridge.full_rom 0 0x4000; + rom_bank_01 = create 0x4000; + vram = create 0x2000; + } diff --git a/src/oboy.ml b/src/oboy.ml index 508478b..737d638 100644 --- a/src/oboy.ml +++ b/src/oboy.ml @@ -15,6 +15,7 @@ let power_up cartridge = Cartridge.print_info cartridge; let cpu = Cpu.init_cpu in + let mem = Memory.init cartridge in run cpu cartridge