even more complains
This commit is contained in:
parent
f07a0032eb
commit
2fb40e7b10
48
src/cpu.rs
48
src/cpu.rs
@ -141,12 +141,7 @@ impl CPU {
|
|||||||
fn adc_r(&mut self, val: u8) {
|
fn adc_r(&mut self, val: u8) {
|
||||||
let old: u8 = self.regs[REG_A];
|
let old: u8 = self.regs[REG_A];
|
||||||
let mut new: u8 = old;
|
let mut new: u8 = old;
|
||||||
let c: u8;
|
let c = if self.flags & FLAG_C == FLAG_C { 1 } else { 0 };
|
||||||
if self.flags & FLAG_C == FLAG_C {
|
|
||||||
c = 1;
|
|
||||||
} else {
|
|
||||||
c = 0;
|
|
||||||
}
|
|
||||||
new = new.wrapping_add(val);
|
new = new.wrapping_add(val);
|
||||||
new = new.wrapping_add(c);
|
new = new.wrapping_add(c);
|
||||||
self.regs[REG_A] = new;
|
self.regs[REG_A] = new;
|
||||||
@ -172,12 +167,7 @@ impl CPU {
|
|||||||
fn sbc_r(&mut self, val: u8) {
|
fn sbc_r(&mut self, val: u8) {
|
||||||
let old: u8 = self.regs[REG_A];
|
let old: u8 = self.regs[REG_A];
|
||||||
let mut new: u8 = old as u8;
|
let mut new: u8 = old as u8;
|
||||||
let c: u8;
|
let c = if self.flags & FLAG_C == FLAG_C { 1 } else { 0 };
|
||||||
if self.flags & FLAG_C == FLAG_C {
|
|
||||||
c = 1;
|
|
||||||
} else {
|
|
||||||
c = 0;
|
|
||||||
}
|
|
||||||
new = new.wrapping_sub(val);
|
new = new.wrapping_sub(val);
|
||||||
new = new.wrapping_sub(c);
|
new = new.wrapping_sub(c);
|
||||||
|
|
||||||
@ -227,12 +217,11 @@ impl CPU {
|
|||||||
println!("RLC {}", REG_NAMES[reg_id]);
|
println!("RLC {}", REG_NAMES[reg_id]);
|
||||||
}
|
}
|
||||||
|
|
||||||
let nval: u8;
|
let nval = if val & 0x80 == 0x80 {
|
||||||
if val & 0x80 == 0x80 {
|
val << 1 | 1
|
||||||
nval = val << 1 | 1;
|
|
||||||
} else {
|
} else {
|
||||||
nval = val << 1;
|
val << 1
|
||||||
}
|
};
|
||||||
self.set_8bit_reg(reg_id, nval);
|
self.set_8bit_reg(reg_id, nval);
|
||||||
|
|
||||||
self.set_clear_flag(FLAG_C, val & 0x80 == 0x80);
|
self.set_clear_flag(FLAG_C, val & 0x80 == 0x80);
|
||||||
@ -266,12 +255,7 @@ impl CPU {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let carry = self.flags & FLAG_C > 0;
|
let carry = self.flags & FLAG_C > 0;
|
||||||
let nval: u8;
|
let nval = if !carry { val << 1 } else { val << 1 | 1 };
|
||||||
if !carry {
|
|
||||||
nval = val << 1;
|
|
||||||
} else {
|
|
||||||
nval = val << 1 | 1;
|
|
||||||
}
|
|
||||||
self.set_8bit_reg(reg_id, nval);
|
self.set_8bit_reg(reg_id, nval);
|
||||||
self.set_clear_flag(FLAG_C, val & 0x80 == 0x80);
|
self.set_clear_flag(FLAG_C, val & 0x80 == 0x80);
|
||||||
self.set_clear_flag(FLAG_Z, nval == 0);
|
self.set_clear_flag(FLAG_Z, nval == 0);
|
||||||
@ -287,12 +271,7 @@ impl CPU {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let carry = self.flags & FLAG_C > 0;
|
let carry = self.flags & FLAG_C > 0;
|
||||||
let v: u8;
|
let v = if !carry { val >> 1 } else { (val >> 1) | 0x80 };
|
||||||
if !carry {
|
|
||||||
v = val >> 1;
|
|
||||||
} else {
|
|
||||||
v = (val >> 1) | 0x80;
|
|
||||||
}
|
|
||||||
self.set_8bit_reg(reg_id, v);
|
self.set_8bit_reg(reg_id, v);
|
||||||
self.set_clear_flag(FLAG_C, val & 1 == 1);
|
self.set_clear_flag(FLAG_C, val & 1 == 1);
|
||||||
self.set_clear_flag(FLAG_Z, v == 0);
|
self.set_clear_flag(FLAG_Z, v == 0);
|
||||||
@ -788,7 +767,7 @@ impl CPU {
|
|||||||
self.clear_flag(FLAG_N);
|
self.clear_flag(FLAG_N);
|
||||||
|
|
||||||
// Some magic formula
|
// Some magic formula
|
||||||
self.set_clear_flag(FLAG_C, val1 as usize + val2 as usize & 0x10000 == 0x10000);
|
self.set_clear_flag(FLAG_C, (val1 as usize + val2 as usize) & 0x10000 == 0x10000);
|
||||||
self.set_clear_flag(FLAG_H, (val1 ^ val2 ^ res) & 0x1000 == 0x1000);
|
self.set_clear_flag(FLAG_H, (val1 ^ val2 ^ res) & 0x1000 == 0x1000);
|
||||||
8
|
8
|
||||||
}
|
}
|
||||||
@ -1579,12 +1558,11 @@ impl CPU {
|
|||||||
if self.debug {
|
if self.debug {
|
||||||
println!("ADD SP, {:02X}", arg);
|
println!("ADD SP, {:02X}", arg);
|
||||||
}
|
}
|
||||||
let t: u16;
|
let t = if arg > 0 {
|
||||||
if arg > 0 {
|
self.sp.wrapping_add(arg as u16)
|
||||||
t = self.sp.wrapping_add(arg as u16);
|
|
||||||
} else {
|
} else {
|
||||||
t = self.sp.wrapping_sub((-arg) as u16);
|
self.sp.wrapping_sub((-arg) as u16)
|
||||||
}
|
};
|
||||||
let sp = self.sp;
|
let sp = self.sp;
|
||||||
self.clear_flag(FLAG_N);
|
self.clear_flag(FLAG_N);
|
||||||
self.clear_flag(FLAG_Z);
|
self.clear_flag(FLAG_Z);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user