1#[allow(clippy::wildcard_imports)]
2use super::*;
3
4macro_rules! impl_psw_flag_op {
5    ($name:ident, $($field:ident = $value:expr),* $(,)?) => {
6        impl_registers_op!($name, |registers| {
7            $(
8                registers.psw.$field = $value;
9            )*
10        });
11    }
12}
13
14impl_psw_flag_op!(clrc, carry = false);
15impl_psw_flag_op!(setc, carry = true);
16impl_psw_flag_op!(clrv, overflow = false, half_carry = false);
17impl_psw_flag_op!(clrp, direct_page = false);
18impl_psw_flag_op!(setp, direct_page = true);
19
20impl_long_registers_op!(notc, |registers| {
21    registers.psw.carry = !registers.psw.carry;
22});
23
24impl_long_registers_op!(ei, |registers| {
25    registers.psw.interrupt_enabled = true;
26});
27
28impl_long_registers_op!(di, |registers| {
29    registers.psw.interrupt_enabled = false;
30});