From a16a4dc9ed895c3a2934c2e14e1ab515f4899971 Mon Sep 17 00:00:00 2001 From: Clément Sibille Date: Mon, 4 Oct 2021 22:57:05 +0200 Subject: Provide an interface for drawing on the screen in VGA text mode This interface allows the user to write strings and move the cursor in VGA text mode. This closes #1. --- kernel/src/lib.rs | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'kernel/src/lib.rs') diff --git a/kernel/src/lib.rs b/kernel/src/lib.rs index 285ecff..b6bc55f 100644 --- a/kernel/src/lib.rs +++ b/kernel/src/lib.rs @@ -1,23 +1,23 @@ +#![feature(asm)] #![no_std] #![no_main] +use crate::terminal::Terminal; use core::panic::PanicInfo; +mod io; +mod terminal; + #[no_mangle] pub extern "C" fn kmain() -> ! { - let vga_buffer = 0xb8000 as *mut u8; - - for (i, &byte) in b"LisibleOS Hello world".iter().enumerate() { - unsafe { - *vga_buffer.offset(i as isize * 2) = byte; - *vga_buffer.offset(i as isize * 2 + 1) = 0xb; - } - } - + let mut terminal = Terminal::new(); + terminal.clear(); + terminal.put_string(b"LisibleOS\n"); + terminal.put_string(b"> "); loop {} } #[panic_handler] fn panic(_info: &PanicInfo) -> ! { loop {} -} \ No newline at end of file +} -- cgit v1.2.3