Build Status Docs.rs Badge

vga

This crate provides vga specific functions, data structures, and access to various registers.

Memory addresses 0xA0000 -> 0xBFFFF must be readable and writeable this crate to work properly.

Note: This crate is currently experimental and subject to change since it's in active development.

Text Mode

```rust use vga::colors::{Color16, TextModeColor}; use vga::writers::{ScreenCharacter, TextWriter, Text80x25};

let textmode = Text80x25::new(); let color = TextModeColor::new(Color16::Yellow, Color16::Black); let screencharacter = ScreenCharacter::new(b'T', color);

textmode.setmode(); textmode.clearscreen(); textmode.writecharacter(0, 0, screen_character); ```

Graphics Mode

```rust use vga::colors::Color16; use vga::writers::{Graphics640x480x16, GraphicsWriter};

let mode = Graphics640x480x16::new(); mode.setmode(); mode.clearscreen(Color16::Black); mode.drawline((80, 60), (80, 420), Color16::White); mode.drawline((80, 60), (540, 60), Color16::White); mode.drawline((80, 420), (540, 420), Color16::White); mode.drawline((540, 420), (540, 60), Color16::White); mode.drawline((80, 90), (540, 90), Color16::White); for (offset, character) in "Hello World!".chars().enumerate() { mode.drawcharacter(270 + offset * 8, 72, character, Color16::White) } ```