39 lines
832 B
C
39 lines
832 B
C
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
|
|
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();
|