(* State of the world, contains all the required information at any point *) type t = { mutable cartridge : Cartridge.t option; mutable memory : Memory.t option } (* Global reference *) let state = ref { cartridge = None; memory = None } let load_cartridge file = let cartridge = Cartridge.read_cartridge file in match cartridge with | Some c -> begin let memory = Memory.init c in !state.cartridge <- cartridge; !state.memory <- Some memory; Cartridge.print_info c end; true | None -> false