2019-05-12 11:56:31 +02:00
|
|
|
(* State of the world, contains all the required information at any point *)
|
|
|
|
type t = {
|
2019-05-15 14:03:53 +02:00
|
|
|
mutable cartridge : Cartridge.t option;
|
2019-07-14 19:11:40 +02:00
|
|
|
mutable memory : Memory.t option
|
2019-05-12 11:56:31 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
(* Global reference *)
|
|
|
|
let state = ref {
|
2019-07-14 19:11:40 +02:00
|
|
|
cartridge = None;
|
|
|
|
memory = None
|
2019-05-12 11:56:31 +02:00
|
|
|
}
|
2019-05-15 14:03:53 +02:00
|
|
|
|
|
|
|
let load_cartridge file =
|
|
|
|
let cartridge = Cartridge.read_cartridge file in
|
|
|
|
match cartridge with
|
2019-07-14 19:11:40 +02:00
|
|
|
| Some c -> begin
|
|
|
|
let memory = Memory.init c in
|
|
|
|
!state.cartridge <- cartridge;
|
|
|
|
!state.memory <- Some memory;
|
|
|
|
Cartridge.print_info c
|
|
|
|
end; true
|
2019-05-15 14:03:53 +02:00
|
|
|
| None -> false
|