diff --git a/roms/cpu_instrs.gb b/roms/cpu_instrs.gb new file mode 100644 index 0000000..7b06221 Binary files /dev/null and b/roms/cpu_instrs.gb differ diff --git a/src/bin/main.rs b/src/bin/main.rs index a16f297..b613d5a 100644 --- a/src/bin/main.rs +++ b/src/bin/main.rs @@ -1,4 +1,7 @@ -fn main() { - println!("TEST"); - println!("{}", false as u8); +use rust_boy::rom::ROM; + +fn main() -> std::io::Result<()> { + let myrom = ROM::load_file("roms/cpu_instrs.gb".to_string())?; + myrom.print_content(); + Ok(()) } diff --git a/src/lib.rs b/src/lib.rs index 2144f0d..73e657f 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,2 +1,3 @@ pub mod utils; pub mod cpu; +pub mod rom; diff --git a/src/rom.rs b/src/rom.rs new file mode 100644 index 0000000..50fc099 --- /dev/null +++ b/src/rom.rs @@ -0,0 +1,21 @@ +use std::fs::File; +use std::io::Read; + +pub struct ROM { + bytes: Vec, +} + +impl ROM { + pub fn load_file(filename: String) -> std::io::Result { + let mut file = File::open(filename)?; + let mut bytes = vec![]; + file.read_to_end(&mut bytes)?; + Ok(Self { + bytes, + }) + } + + pub fn print_content(&self) { + println!("{:02X?}", self.bytes); + } +} diff --git a/src/utils.rs b/src/utils.rs index 77a2d7f..d2d1171 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,3 +1,5 @@ +pub struct AddressRange(u16, u16); + pub enum BitIndex { I0, I1,