All checks were successful
continuous-integration/drone/push Build is passing
Signed-off-by: Julien CLEMENT <julien.clement@epita.fr>
42 lines
777 B
Rust
42 lines
777 B
Rust
#![no_std]
|
|
#![no_main]
|
|
|
|
#[panic_handler]
|
|
fn panic(_info: &core::panic::PanicInfo) -> !
|
|
{
|
|
loop {}
|
|
}
|
|
|
|
static HELLO: &[u8] = b"Welcome to the JuliOS";
|
|
|
|
static STAR: &[u8] = b"|/-\\";
|
|
|
|
#[no_mangle]
|
|
pub extern "C" fn julios_main() -> !
|
|
{
|
|
let vga_buffer: *mut u8 = 0xb8000 as *mut u8;
|
|
|
|
let mut k: usize = 0;
|
|
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;
|
|
}
|
|
k = i * 2 + 2;
|
|
}
|
|
|
|
let mut j: usize = 0;
|
|
loop
|
|
{
|
|
unsafe
|
|
{
|
|
*vga_buffer.offset(k as isize) = STAR[j];
|
|
*vga_buffer.offset(k as isize + 1) = 0xb;
|
|
j += 1;
|
|
j %= 4;
|
|
}
|
|
}
|
|
}
|