mirror of https://github.com/mre/mos6502.git
refactor away some casts
This commit is contained in:
parent
7579cd5d24
commit
fe4422359d
31
src/cpu.rs
31
src/cpu.rs
|
@ -610,29 +610,18 @@ impl<M: Bus, V: Variant> CPU<M, V> {
|
|||
}
|
||||
}
|
||||
|
||||
fn set_flags_from_i8(status: &mut Status, value: i8) {
|
||||
let is_zero = value == 0;
|
||||
let is_negative = value < 0;
|
||||
|
||||
status.set_with_mask(
|
||||
Status::PS_ZERO | Status::PS_NEGATIVE,
|
||||
Status::new(StatusArgs {
|
||||
zero: is_zero,
|
||||
negative: is_negative,
|
||||
..StatusArgs::none()
|
||||
}),
|
||||
);
|
||||
const fn value_is_negative(value: u8) -> bool {
|
||||
value > 127
|
||||
}
|
||||
|
||||
fn set_flags_from_u8(status: &mut Status, value: u8) {
|
||||
let is_zero = value == 0;
|
||||
let is_negative = value > 127;
|
||||
|
||||
status.set_with_mask(
|
||||
Status::PS_ZERO | Status::PS_NEGATIVE,
|
||||
Status::new(StatusArgs {
|
||||
zero: is_zero,
|
||||
negative: is_negative,
|
||||
negative: Self::value_is_negative(value),
|
||||
..StatusArgs::none()
|
||||
}),
|
||||
);
|
||||
|
@ -650,7 +639,7 @@ impl<M: Bus, V: Variant> CPU<M, V> {
|
|||
..StatusArgs::none()
|
||||
}),
|
||||
);
|
||||
CPU::<M, V>::set_flags_from_i8(status, *p_val as i8);
|
||||
CPU::<M, V>::set_flags_from_u8(status, *p_val);
|
||||
}
|
||||
|
||||
fn shift_right_with_flags(p_val: &mut u8, status: &mut Status) {
|
||||
|
@ -664,7 +653,7 @@ impl<M: Bus, V: Variant> CPU<M, V> {
|
|||
..StatusArgs::none()
|
||||
}),
|
||||
);
|
||||
CPU::<M, V>::set_flags_from_i8(status, *p_val as i8);
|
||||
CPU::<M, V>::set_flags_from_u8(status, *p_val);
|
||||
}
|
||||
|
||||
fn rotate_left_with_flags(p_val: &mut u8, status: &mut Status) {
|
||||
|
@ -680,7 +669,7 @@ impl<M: Bus, V: Variant> CPU<M, V> {
|
|||
..StatusArgs::none()
|
||||
}),
|
||||
);
|
||||
CPU::<M, V>::set_flags_from_i8(status, *p_val as i8);
|
||||
CPU::<M, V>::set_flags_from_u8(status, *p_val);
|
||||
}
|
||||
|
||||
fn rotate_right_with_flags(p_val: &mut u8, status: &mut Status) {
|
||||
|
@ -696,7 +685,7 @@ impl<M: Bus, V: Variant> CPU<M, V> {
|
|||
..StatusArgs::none()
|
||||
}),
|
||||
);
|
||||
CPU::<M, V>::set_flags_from_i8(status, *p_val as i8);
|
||||
CPU::<M, V>::set_flags_from_u8(status, *p_val);
|
||||
}
|
||||
|
||||
fn set_u8_with_flags(mem: &mut u8, status: &mut Status, value: u8) {
|
||||
|
@ -917,13 +906,12 @@ impl<M: Bus, V: Variant> CPU<M, V> {
|
|||
let value_new = val.wrapping_add(1);
|
||||
*val = value_new;
|
||||
|
||||
let is_negative = (value_new as i8) < 0;
|
||||
let is_zero = value_new == 0;
|
||||
|
||||
flags.set_with_mask(
|
||||
Status::PS_NEGATIVE | Status::PS_ZERO,
|
||||
Status::new(StatusArgs {
|
||||
negative: is_negative,
|
||||
negative: Self::value_is_negative(value_new),
|
||||
zero: is_zero,
|
||||
..StatusArgs::none()
|
||||
}),
|
||||
|
@ -934,13 +922,12 @@ impl<M: Bus, V: Variant> CPU<M, V> {
|
|||
let value_new = val.wrapping_sub(1);
|
||||
*val = value_new;
|
||||
|
||||
let is_negative = (value_new as i8) < 0;
|
||||
let is_zero = value_new == 0;
|
||||
|
||||
flags.set_with_mask(
|
||||
Status::PS_NEGATIVE | Status::PS_ZERO,
|
||||
Status::new(StatusArgs {
|
||||
negative: is_negative,
|
||||
negative: Self::value_is_negative(value_new),
|
||||
zero: is_zero,
|
||||
..StatusArgs::none()
|
||||
}),
|
||||
|
|
Loading…
Reference in New Issue