Basic support for CPU opcodes.
Support for 2 opcodes: nop and jump. These are the first opcodes encountered in Super Mario Land.
This commit is contained in:
parent
fa09906bcb
commit
b2c7e7b947
3 changed files with 80 additions and 27 deletions
17
src/oboy.ml
17
src/oboy.ml
|
@ -1,5 +1,9 @@
|
|||
open Printf
|
||||
|
||||
let rec run (cpu: Cpu.t) (cartridge: Cartridge.t) =
|
||||
Cpu.run cpu cartridge;
|
||||
run cpu cartridge
|
||||
|
||||
(** Power up sequence
|
||||
http://bgb.bircd.org/pandocs.htm#powerupsequence *)
|
||||
let power_up cartridge =
|
||||
|
@ -10,12 +14,19 @@ let power_up cartridge =
|
|||
print_endline "Valid ROM.";
|
||||
printf "Title: %s\n" cartridge.title;
|
||||
printf "ROM size: %iKB\n" cartridge.rom_size;
|
||||
printf "RAM size: %iKB\n" cartridge.ram_size
|
||||
printf "RAM size: %iKB\n" cartridge.ram_size;
|
||||
|
||||
let cpu = Cpu.init_cpu in
|
||||
run cpu cartridge
|
||||
|
||||
|
||||
let () =
|
||||
if Array.length Sys.argv < 2
|
||||
then print_endline "Please specify a ROM.";
|
||||
if Array.length Sys.argv < 2 then
|
||||
begin
|
||||
prerr_endline "Please specify a ROM.";
|
||||
eprintf "Usage: %s path/to/rom\n" Sys.argv.(0);
|
||||
exit 1;
|
||||
end;
|
||||
|
||||
let cartridge = Cartridge.read_cartridge Sys.argv.(1) in
|
||||
match cartridge with
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue