From 3030b1c862c775b0e846871434656840aa7c8da2 Mon Sep 17 00:00:00 2001 From: Philipp Oppermann Date: Tue, 25 Aug 2015 14:47:30 +0200 Subject: [PATCH] Print `Hello World!` --- src/lib.rs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 395d695c..1eca7342 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -13,13 +13,28 @@ // limitations under the License. #![feature(no_std, lang_items)] +#![feature(core_slice_ext, core_str_ext, core_intrinsics)] #![no_std] extern crate rlibc; +use core::intrinsics::offset; + #[no_mangle] pub extern fn main() { // ATTENTION: we have a very small stack and no guard page + let x = ["Hello", " ", "World", "!"]; + let screen_pointer = 0xb8000 as *const u16; + + for (byte, i) in x.iter().flat_map(|s| s.bytes()).zip(0..) { + let c = 0x1f00 | (byte as u16); + unsafe { + let screen_char = offset(screen_pointer, i) as *mut u16; + *screen_char = c + } + } + + loop{} } #[lang = "eh_personality"] extern fn eh_personality() {}