From f8c1ef0109a8177cf4747a891e6c462c4ef59c92 Mon Sep 17 00:00:00 2001 From: Tianhao Wang Date: Thu, 1 Feb 2024 05:18:20 +0100 Subject: add println! and panic! macro The rust lazy_static requires interior mutability. I have to include a Mutex impl (spin::Mutex). But I'd like to implement my own primitives. --- src/lib.rs | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index 459deef..5de826c 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,31 +1,29 @@ #![allow(dead_code)] #![allow(unused_imports)] - #![no_std] #![no_main] mod arch; +mod io; mod machine; use core::panic::PanicInfo; use machine::cgascr::CGAScreen; +#[cfg(not(test))] #[panic_handler] -fn panic(_info: &PanicInfo) -> ! { +fn panic(info: &PanicInfo) -> ! { + println!("{}", info); loop {} } #[no_mangle] pub extern "C" fn _entry() -> ! { - let mut scr = CGAScreen::new(); - scr.show_coners(); - scr.setattr(0x1f); - scr.clear(); - scr.show_coners(); - - scr.print("--RuStuBs--\n"); - scr.print(" _._ _,-'\"\"`-._ ~Meow\n"); - scr.print(" (,-.`._,'( |\\`-/|\n"); - scr.print(" `-.-' \\ )-`( , o o)\n"); - scr.print(" `- \\`_`\"'-\n"); - scr.print("it works!\n"); + io::set_attr(0x1f); + io::clear(); + println!("--RuStuBs--"); + println!(" _._ _,-'\"\"`-._ ~Meow"); + println!(" (,-.`._,'( |\\`-/|"); + println!(" `-.-' \\ )-`( , o o)"); + println!(" `- \\`_`\"'-"); + println!("it works!"); loop {} } -- cgit v1.2.3-70-g09d2