diff options
Diffstat (limited to 'src/vga/mod.rs')
| -rw-r--r-- | src/vga/mod.rs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/vga/mod.rs b/src/vga/mod.rs new file mode 100644 index 0000000..13dffe0 --- /dev/null +++ b/src/vga/mod.rs @@ -0,0 +1,33 @@ +mod buffer; +pub use buffer::*; + +#[allow(dead_code)] +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[repr(u8)] +pub enum Color { + Black = 0, + Blue = 1, + Green = 2, + Cyan = 3, + Red = 4, + Magenta = 5, + Brown = 6, + LightGray = 7, + DarkGray = 8, + LightBlue = 9, + LightGreen = 10, + LightCyan = 11, + LightRed = 12, + Pink = 13, + Yellow = 14, + White = 15, +} +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +#[repr(transparent)] +struct ColorCode(u8); + +impl ColorCode { + const fn new(foreground: Color, background: Color) -> ColorCode { + ColorCode((background as u8) << 4 | (foreground as u8)) + } +} |
