diff --git a/src/main.rs b/src/main.rs index 1a4f8b64..562f00e2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,20 +3,11 @@ use core::panic::PanicInfo; -static HELLO: &[u8] = b"Hello World!"; - mod vga_buffer; #[no_mangle] pub extern "C" fn _start() -> ! { - let vga_buffer = 0xb8000 as *mut u8; - - for (i, &byte) in HELLO.iter().enumerate() { - unsafe { - *vga_buffer.offset(i as isize * 2) = byte; - *vga_buffer.offset(i as isize * 2 + 1) = 0xb; - } - } + vga_buffer::print_something(); loop {} } diff --git a/src/vga_buffer.rs b/src/vga_buffer.rs index 5e24447c..7e0b8235 100644 --- a/src/vga_buffer.rs +++ b/src/vga_buffer.rs @@ -85,3 +85,15 @@ impl Writer { fn new_line(&mut self) {/* TODO */} } + +pub fn print_something() { + let mut writer = Writer { + column_position: 0, + color_code: ColorCode::new(Color::Yellow, Color::Black), + buffer: unsafe { &mut *(0xb8000 as *mut Buffer) }, + }; + + writer.write_byte(b'H'); + writer.write_string("ello "); + writer.write_string("Wörld!"); +}