From 4a5e0661ccb80bdc07a0bb3241545d986916a194 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Magalh=C3=A3es?= <joamag@gmail.com> Date: Tue, 28 Jun 2022 23:20:41 +0100 Subject: [PATCH] feat: more instructions --- examples/sdl/src/main.rs | 2 +- src/cpu.rs | 4 ++-- src/mmu.rs | 3 +-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/examples/sdl/src/main.rs b/examples/sdl/src/main.rs index bc62660b..2a596885 100644 --- a/examples/sdl/src/main.rs +++ b/examples/sdl/src/main.rs @@ -4,7 +4,7 @@ fn main() { let mut game_boy = GameBoy::new(); game_boy.load_boot_default(); - for i in 0..24612 { + for i in 0..24650 { game_boy.clock(); if game_boy.cpu().pc() >= 0x3032 { println!("{}", i); diff --git a/src/cpu.rs b/src/cpu.rs index a28049fd..e15cb36e 100644 --- a/src/cpu.rs +++ b/src/cpu.rs @@ -619,7 +619,7 @@ impl Cpu { #[inline(always)] fn push_byte(&mut self, byte: u8) { - self.sp -= 1; + self.sp = self.sp.wrapping_sub(1); self.mmu.write(self.sp, byte); } @@ -632,7 +632,7 @@ impl Cpu { #[inline(always)] fn pop_byte(&mut self) -> u8 { let byte = self.mmu.read(self.sp); - self.sp += 1; + self.sp = self.sp.wrapping_add(1); byte } diff --git a/src/mmu.rs b/src/mmu.rs index 3cd912f1..23e74f4a 100644 --- a/src/mmu.rs +++ b/src/mmu.rs @@ -81,7 +81,7 @@ impl Mmu { } 0xf00 => { if addr >= 0xff80 { - self.ram[(addr & 0x7f) as usize] + self.hram[(addr & 0x7f) as usize] } else { println!("WRITING TO IO control"); 0x00 @@ -137,7 +137,6 @@ impl Mmu { } 0xf00 => { if addr >= 0xff80 { - println!("WRITING TO Zero page"); self.hram[(addr & 0x7f) as usize] = value; } else { println!("WRITING TO IO control"); -- GitLab