diff --git a/src/address.rs b/src/address.rs index e2f2bac..6b4b334 100644 --- a/src/address.rs +++ b/src/address.rs @@ -37,6 +37,8 @@ pub struct Address(pub u16); impl Add for Address { fn add(&self, &AddressDiff(rhs): &AddressDiff) -> Address { let &Address(lhs) = self; + + // TODO akeeton: Do a checked cast. Address(((lhs as i32) + rhs) as u16) } } diff --git a/src/registers.rs b/src/registers.rs index bdbc684..ff5752a 100644 --- a/src/registers.rs +++ b/src/registers.rs @@ -54,6 +54,7 @@ impl StatusArgs { } pub bitflags! { +#[deriving(Show)] flags Status: u8 { const PS_NEGATIVE = 0b10000000, const PS_OVERFLOW = 0b01000000, @@ -112,7 +113,7 @@ impl Status { } } -#[deriving(PartialEq, Eq, PartialOrd, Ord)] +#[deriving(PartialEq, Eq, PartialOrd, Ord, Show)] pub struct StackPointer(pub u8); impl StackPointer { @@ -122,6 +123,7 @@ impl StackPointer { } } +#[deriving(PartialEq, Eq, Show)] pub struct Registers { pub accumulator: i8, pub index_x: i8,