#ifndef PRINT_H #define PRINT_H #define REG_SCREEN_CTRL 0x3d4 #define REG_SCREEN_DATA 0x3d5 enum { PRINT_COLOR_BLACK = 0, PRINT_COLOR_BLUE = 1, PRINT_COLOR_GREEN = 2, PRINT_COLOR_CYAN = 3, PRINT_COLOR_RED = 4, PRINT_COLOR_MAGENTA = 5, PRINT_COLOR_BROWN = 6, PRINT_COLOR_LIGHT_GRAY = 7, PRINT_COLOR_DARK_GRAY = 8, PRINT_COLOR_LIGHT_BLUE = 9, PRINT_COLOR_LIGHT_GREEN = 10, PRINT_COLOR_LIGHT_CYAN = 11, PRINT_COLOR_LIGHT_RED = 12, PRINT_COLOR_PINK = 13, PRINT_COLOR_YELLOW = 14, PRINT_COLOR_WHITE = 15, }; const static int NUM_COLS = 80; const static int NUM_ROWS = 25; struct Char { char character; char color; }; void clear_row(int row); void clear_all(); void print_newline(); void print_char(char character); void print_set_color(char foreground, char background); void print_str(char* str); void set_cursor_pos(int col, int row); void kernel_msg_ok(char* msg); #endif