#![no_std]
#![allow(ctypes)]

enum Color {
    Black      = 0,
    Blue       = 1,
    Green      = 2,
    Cyan       = 3,
    Red        = 4,
    Pink       = 5,
    Brown      = 6,
    LightGray  = 7,
    DarkGray   = 8,
    LightBlue  = 9,
    LightGreen = 10,
    LightCyan  = 11,
    LightRed   = 12,
    LightPink  = 13,
    Yellow     = 14,
    White      = 15,
}

fn clear_screen(background: Color) {
    let mut i = 0u16;
    let max = 80 * 25;

    while i < max {
        unsafe {
            *((0xb8000 + i * 2) as *mut u16) = (background as u16) << 12;
        }
        i = i + 1;
    }
}

#[no_mangle]
#[no_split_stack]
pub fn main() {
    clear_screen(LightRed);
}

#![no_std]
#![allow(ctypes)]

enum Color {
    Black      = 0,
    Blue       = 1,
    Green      = 2,
    Cyan       = 3,
    Red        = 4,
    Pink       = 5,
    Brown      = 6,
    LightGray  = 7,
    DarkGray   = 8,
    LightBlue  = 9,
    LightGreen = 10,
    LightCyan  = 11,
    LightRed   = 12,
    LightPink  = 13,
    Yellow     = 14,
    White      = 15,
}

enum Option<T> {
    None,
    Some(T)
}

struct IntRange {
    cur: int,
    max: int
}

impl IntRange {
    fn next(&mut self) -> Option<int> {
        if self.cur < self.max {
            self.cur += 1;
            Some(self.cur - 1)
        } else {
            None
        }
    }
}

fn range(lo: int, hi: int) -> IntRange {
    IntRange { cur: lo, max: hi }
}

fn clear_screen(background: Color) {
    for i in range(0, 80 * 25) {
        unsafe {
            *((0xb8000 + i * 2) as *mut u16) = (background as u16) << 12;
        }
    }
}

#[no_mangle]
#[no_split_stack]
pub fn main() {
    clear_screen(LightRed);
}

--- 
+++ 
@@ -20,36 +20,15 @@
     White      = 15,
 }
 
-enum Option<T> {
-    None,
-    Some(T)
-}
+fn clear_screen(background: Color) {
+    let mut i = 0u16;
+    let max = 80 * 25;
 
-struct IntRange {
-    cur: int,
-    max: int
-}
-
-impl IntRange {
-    fn next(&mut self) -> Option<int> {
-        if self.cur < self.max {
-            self.cur += 1;
-            Some(self.cur - 1)
-        } else {
-            None
-        }
-    }
-}
-
-fn range(lo: int, hi: int) -> IntRange {
-    IntRange { cur: lo, max: hi }
-}
-
-fn clear_screen(background: Color) {
-    for i in range(0, 80 * 25) {
+    while i < max {
         unsafe {
             *((0xb8000 + i * 2) as *mut u16) = (background as u16) << 12;
         }
+        i = i + 1;
     }
 }
 
Remove range since 0.11 doesn't like it.
