Implement timers
This commit is contained in:
parent
6c7544dffb
commit
67093196ea
3 changed files with 102 additions and 12 deletions
11
src/oboy.ml
11
src/oboy.ml
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue