diff --git a/src/lib.rs b/src/lib.rs index 686f2d24..5d469e52 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -25,6 +25,7 @@ mod vga_buffer; #[no_mangle] pub extern fn rust_main() { // ATTENTION: we have a very small stack and no guard page + vga_buffer::clear_screen(); println!("Hello World{}", "!"); loop{} diff --git a/src/vga_buffer.rs b/src/vga_buffer.rs index 6ae73ece..a07d05ed 100644 --- a/src/vga_buffer.rs +++ b/src/vga_buffer.rs @@ -23,6 +23,12 @@ macro_rules! print { }); } +pub fn clear_screen() { + for _ in 0..BUFFER_HEIGHT { + println!(""); + } +} + #[allow(dead_code)] #[repr(u8)] pub enum Color { @@ -85,7 +91,7 @@ impl Writer { fn clear_row(&mut self, row: usize) { let blank = ScreenChar { - ascii_character: ' ' as u8, + ascii_character: b' ', color_code: self.color_code, }; self.buffer().chars[row] = [blank; BUFFER_WIDTH];