#pragma once #include #include enum { VGA_ROWS = 25, VGA_COLS = 80, VGA_CTRL_REGISTER = 0x3d4, VGA_DATA_REGISTER = 0x3d5, VGA_OFFSET_LOW = 0x0f, VGA_OFFSET_HIGH = 0x0e, }; unsigned vga_get_cursor(); unsigned vga_get_row_from_offset(unsigned offset); unsigned vga_get_offset(unsigned col, unsigned row); void vga_set_cursor(unsigned offset); void vga_clear_screen(); void vga_set_char(unsigned offset, char c); void vga_print_string(const char *s); #define VGA_GRAPHICS_WIDTH 320 #define VGA_GRAPHICS_HEIGHT 200 typedef enum { VGA_DISPLAY_MODE_TEXT = 0, VGA_DISPLAY_MODE_GRAPHICS = 1, } vga_display_mode_t; void vgaMode13(); void vgaMode3(); void switch_to_graphics_mode(); void switch_to_text_mode(); vga_display_mode_t vga_get_display_mode(); bool vga_is_text_mode();