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