|
|
@ -18,10 +18,12 @@ const TEXT_DISPLAY_POINTER: *mut u8 = (BASE_POINTER + TEXT_DISPLAY_OFFSET) as *m
|
|
|
|
const KEYBOARD_POINTER : *mut u32 = (BASE_POINTER + KEYBOARD_OFFSET) as *mut u32;
|
|
|
|
const KEYBOARD_POINTER : *mut u32 = (BASE_POINTER + KEYBOARD_OFFSET) as *mut u32;
|
|
|
|
const SCREEN_POINTER : *mut u32 = (BASE_POINTER + SCREEN_OFFSET) as *mut u32;
|
|
|
|
const SCREEN_POINTER : *mut u32 = (BASE_POINTER + SCREEN_OFFSET) as *mut u32;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pub struct Screen {}
|
|
|
|
pub struct Screen {}
|
|
|
|
impl Screen {
|
|
|
|
impl Screen {
|
|
|
|
#[inline]
|
|
|
|
#[inline]
|
|
|
|
pub fn clear() {}
|
|
|
|
pub fn clear() {
|
|
|
|
|
|
|
|
}
|
|
|
|
#[inline]
|
|
|
|
#[inline]
|
|
|
|
pub fn turn_pixel_on(x: u8, y: u8) {
|
|
|
|
pub fn turn_pixel_on(x: u8, y: u8) {
|
|
|
|
unsafe {
|
|
|
|
unsafe {
|
|
|
@ -55,17 +57,6 @@ impl TextDisplay {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
impl core::fmt::Write for TextDisplay {
|
|
|
|
|
|
|
|
#[inline]
|
|
|
|
|
|
|
|
fn write_str(&mut self, s: &str) -> core::fmt::Result {
|
|
|
|
|
|
|
|
for ch in s.bytes() {
|
|
|
|
|
|
|
|
unsafe {
|
|
|
|
|
|
|
|
write_volatile(TEXT_DISPLAY_POINTER, ch);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return Ok(());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pub struct NumberDisplay {}
|
|
|
|
pub struct NumberDisplay {}
|
|
|
|
impl NumberDisplay {
|
|
|
|
impl NumberDisplay {
|
|
|
|