#include "screenstuff.h" uint16_t* VMEM_ADDR = (uint16_t*)0xb8000; const int TERM_WIDTH = 80; const int TERM_HEIGHT = 25; int cursor_x = 0; int cursor_y = 0; uint16_t get_curpos() { uint16_t cursor_position = 0; uint8_t* cursor_position_split = (uint8_t*)&cursor_position; outb(0x3D4, 0x0F); cursor_position_split[0] = inb(0x3D5); outb(0x3D4, 0x0E); cursor_position_split[1] = inb(0x3D5); return cursor_position; } void init_term() { uint16_t cursor_position = get_curpos(); cursor_y = cursor_position / TERM_WIDTH; cursor_x = cursor_position % TERM_WIDTH; } void clear_screen() { for (int i=0; i