diff options
Diffstat (limited to 'bootle/src/lib.rs')
| -rw-r--r-- | bootle/src/lib.rs | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/bootle/src/lib.rs b/bootle/src/lib.rs deleted file mode 100644 index adc1aab..0000000 --- a/bootle/src/lib.rs +++ /dev/null @@ -1,55 +0,0 @@ -#![no_std] -#![no_main] - -use core::panic::PanicInfo; - -#[unsafe(no_mangle)] -pub extern "C" fn _start() -> ! { - welcome_serial(); - halt() -} - -fn print_serial(s: &str) { - let mut bytes = s.bytes(); - while let Some(b) = bytes.next() { - unsafe { - core::arch::asm!( - "out dx, al" - , in("al") b - ) - }; - } -} - -fn println_serial(s: &str) { - print_serial(s); - print_serial("\n"); -} - -fn welcome_serial() { - print_serial(ANSI_PINK); - println_serial("\nWelcome to Bootle OS"); - println_serial("All code GPL licensed and freely available on git.mtgmonkey.net"); - print_serial("Enjoy your time! Press "); - print_serial(ANSI_RED); - print_serial("ctrl+a x"); - print_serial(ANSI_PINK); - println_serial(" to escape Qemu"); - print_serial(ANSI_CLEAR); -} - -#[panic_handler] -fn panic(_: &PanicInfo) -> ! { - print_serial("panicked"); - halt() -} - -fn halt() -> ! { - unsafe { core::arch::asm!("hlt") }; - halt() -} - -const ANSI_CLEAR: &str = "\x1b[0m"; -const ANSI_RED: &str = "\x1b[31m"; -const ANSI_PINK: &str = "\x1b[35m"; -const ANSI_GREEN: &str = "\x1b[32m"; |
