initial commit -- framebuffer Hello, World!
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
#![no_std] // Don't link the Rust standard library
|
||||
#![no_main] // Disable all Rust-level entry points
|
||||
|
||||
use core::panic::PanicInfo;
|
||||
use limine::*;
|
||||
|
||||
use limine::request::{
|
||||
FramebufferRequest, RequestsEndMarker, RequestsStartMarker,
|
||||
};
|
||||
|
||||
mod font;
|
||||
mod render;
|
||||
|
||||
use crate::font::FONT;
|
||||
|
||||
// Set the base revision
|
||||
static BASE_REVISION: BaseRevision = BaseRevision::new();
|
||||
|
||||
|
||||
// Halt and catch fire function
|
||||
fn hcf() -> ! {
|
||||
loop {
|
||||
unsafe { core::arch::asm!("cli; hlt") }
|
||||
}
|
||||
}
|
||||
|
||||
// Called on panic
|
||||
#[panic_handler]
|
||||
fn panic(_info: &PanicInfo) -> ! {
|
||||
hcf()
|
||||
}
|
||||
|
||||
// Kernel entry point
|
||||
#[no_mangle]
|
||||
pub extern "C" fn kmain() -> ! {
|
||||
render::init();
|
||||
render::write_string("Welcome to GoofyAhhOS!\nthis is the superior os\nif you disagree you are a heretic in the name of steven.", 0xff0000, 0);
|
||||
|
||||
hcf()
|
||||
}
|
||||
Reference in New Issue
Block a user