vgainfo_rs/lib.rs
1//! ## vgainfo-rs
2//! VGA(0xB8000) info in freestanding Rust.
3//!
4//! ## Example
5//! ```rust
6//! #![no_std]
7//! extern crate vgainfo_rs;
8//! use vgainfo_rs::*;
9//!
10//! fn reset_screen() {
11//! let buffer_ptr = LENGTH as *mut VgaCharType;
12//! let iter = (0..LENGTH).map(|i| unsafe { buffer_ptr.add(i) });
13//!
14//! for ptr in iter {
15//! let value = unsafe { ptr.read_volatile() };
16//! unsafe { ptr.write_volatile(value & 0xff00) };
17//! }
18//! }
19//! ```
20
21#![no_std]
22
23/// Address of video buffer = 0xB8000
24pub const VGA_ADDR: usize = 0xb8000;
25
26/// Column of video buffer = 80
27pub const WIDTH: usize = 80;
28
29/// Row of video buffer = 25
30pub const HIGH: usize = 25;
31
32/// Size of video buffer = 80 *25
33pub const LENGTH: usize = WIDTH * HIGH;
34
35/// Type of video buffer element
36pub type VgaCharType = u16;