|
|
|
@ -68,3 +68,31 @@ impl NumberDisplay {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub struct RNG {}
|
|
|
|
|
impl RNG {
|
|
|
|
|
#[inline]
|
|
|
|
|
pub fn next() -> u32 {
|
|
|
|
|
return unsafe { read_volatile(RANDOM_NUMBER_POINTER) };
|
|
|
|
|
}
|
|
|
|
|
#[inline]
|
|
|
|
|
pub fn next_range(min: u32, max: u32) -> u32 {
|
|
|
|
|
return RNG::next() % (max - min) + min;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub struct Buttons {}
|
|
|
|
|
impl Buttons {
|
|
|
|
|
pub const RIGHT_RIGHT: u8 = 0b00000001;
|
|
|
|
|
pub const RIGHT_DOWN : u8 = 0b00000010;
|
|
|
|
|
pub const RIGHT_LEFT : u8 = 0b00000100;
|
|
|
|
|
pub const RIGHT_UP : u8 = 0b00001000;
|
|
|
|
|
pub const LEFT_RIGHT : u8 = 0b00010000;
|
|
|
|
|
pub const LEFT_DOWN : u8 = 0b00100000;
|
|
|
|
|
pub const LEFT_LEFT : u8 = 0b01000000;
|
|
|
|
|
pub const LEFT_UP : u8 = 0b10000000;
|
|
|
|
|
|
|
|
|
|
#[inline]
|
|
|
|
|
pub fn read() -> u8 {
|
|
|
|
|
return unsafe { read_volatile(BUTTONS_POINTER) };
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|