From 0bff8199e4a800d5ea1bd422dcf06643d6daf008 Mon Sep 17 00:00:00 2001 From: Aleksa Vučković Date: Mon, 10 Jan 2022 22:15:15 +0100 Subject: include/setup.sh --- include/02.vga/vga.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 include/02.vga/vga.c (limited to 'include/02.vga/vga.c') diff --git a/include/02.vga/vga.c b/include/02.vga/vga.c new file mode 100644 index 0000000..67c8b02 --- /dev/null +++ b/include/02.vga/vga.c @@ -0,0 +1,100 @@ +#include +#include +#include +#include + +size_t terminal_row; +size_t terminal_column; +uint8_t terminal_color; +uint16_t* terminal_buffer; + +void set_color(enum vga_color fg, enum vga_color bg) +{ + terminal_color = fg | bg << 4; +} + +static inline uint16_t vga_entry(unsigned char uc, uint8_t color) +{ + return (uint16_t) uc | (uint16_t) color << 8; +} + +void terminal_initialize() +{ + terminal_row=0; + terminal_column=0; + set_color(VGA_COLOR_LIGHT_GREY, VGA_COLOR_BLACK); + terminal_buffer=(uint16_t*) 0xB8000; + for(size_t y=0;y