Added checkerboard
This commit is contained in:
@@ -7,24 +7,41 @@ extern crate rlibc;
|
||||
#[no_mangle]
|
||||
pub extern fn rust_main() {
|
||||
clear();
|
||||
checkerboard(vga_buffer::Color::Red);
|
||||
|
||||
loop {}
|
||||
}
|
||||
|
||||
fn clear() {
|
||||
use vga_buffer::*;
|
||||
|
||||
let blank_color = vga_buffer::ColorCode::new(
|
||||
vga_buffer::Color::White,
|
||||
vga_buffer::Color::Black);
|
||||
for i in 0..vga_buffer::BUFFER_WIDTH {
|
||||
for j in 0..vga_buffer::BUFFER_HEIGHT {
|
||||
vga_buffer::write_to_coord(i, j, b' ', blank_color);
|
||||
let blank_color = ColorCode::new( Color::White, Color::Black);
|
||||
for i in 0..BUFFER_WIDTH {
|
||||
for j in 0..BUFFER_HEIGHT {
|
||||
write_to_coord(i, j, b' ', blank_color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn checkerboard(color: vga_buffer::Color) {
|
||||
use vga_buffer::*;
|
||||
|
||||
let active = ColorCode::new(color, color);
|
||||
let blank = ColorCode::new(Color::White, Color::Black);
|
||||
for i in 0..BUFFER_WIDTH {
|
||||
for j in 0..BUFFER_HEIGHT {
|
||||
if (i + j) % 2 == 0 {
|
||||
write_to_coord(i, j, b' ', active);
|
||||
} else {
|
||||
write_to_coord(i, j, b' ', blank);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mod vga_buffer {
|
||||
#[repr(u8)]
|
||||
#[derive(Clone, Copy)]
|
||||
pub enum Color {
|
||||
Black = 0,
|
||||
Blue = 1,
|
||||
|
||||
Reference in New Issue
Block a user