diff --git a/src/cpu.rs b/src/cpu.rs index 6e68b5a..e64aed1 100644 --- a/src/cpu.rs +++ b/src/cpu.rs @@ -629,7 +629,8 @@ impl CPU { let over = ((nc == 0 && value < 0) || (nc == 1 && value < -1)) && a_before >= 0 && a_after < 0; - let under = (a_before < 0) && (-value - nc < 0) && a_after >= 0; + let under = + (a_before < 0) && (0i8.wrapping_sub(value).wrapping_sub(nc) < 0) && a_after >= 0; let did_overflow = over || under;