Implement timers

This commit is contained in:
Fabien Freling 2016-01-23 13:16:18 +01:00
parent 6c7544dffb
commit 67093196ea
3 changed files with 102 additions and 12 deletions

View file

@ -3,16 +3,19 @@ open Printf
let fps = 60
let cycles_per_frame = Cpu.frequence / fps
let rec run (cpu: Cpu.t) (mem: Memory.map) (screen: Screen.t) =
printf "\n";
let rec run (cpu: Cpu.t) (mem: Memory.t) (screen: Screen.t) =
let start = Unix.gettimeofday () in
printf "start %f\n" start;
let rec run_for cpu mem cycles_remaining =
let rec run_for cpu (mem: Memory.t) cycles_remaining =
if cycles_remaining > 0 then
begin
let inst, cycles = Cpu.run cpu mem in
printf "\n";
let inst, cycles = Cpu.run cpu mem.map in
printf "[Instruction] %s\n" inst;
Memory.update_timers mem cycles;
run_for cpu mem (cycles_remaining - cycles)
end
in