2025-06-10 13:17:21 +00:00
|
|
|
/* kio.h
|
|
|
|
|
* Kernel I/O
|
|
|
|
|
*
|
|
|
|
|
* Handles any in/output
|
|
|
|
|
*/
|
2025-06-08 20:18:06 +00:00
|
|
|
#ifndef KIO_H
|
|
|
|
|
#define KIO_H
|
|
|
|
|
#define VGA_GRID_COLS 80
|
2025-05-29 03:19:50 +00:00
|
|
|
#define VGA_GRID_ROWS 25
|
|
|
|
|
#include <stdint.h>
|
2025-06-08 20:18:06 +00:00
|
|
|
#include <stdarg.h>
|
2025-05-29 03:19:50 +00:00
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* CONSTANTS AND VARIABLES
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
//Information on the VGA buffer
|
|
|
|
|
|
|
|
|
|
extern volatile uint16_t* const vga_buffer;
|
|
|
|
|
|
|
|
|
|
//grid is top left origin. This is our cursor!
|
|
|
|
|
extern int cursor_col;
|
|
|
|
|
extern int cursor_row;
|
|
|
|
|
extern uint16_t vga_attributes; // Black background, White foreground
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Functions
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
//Clear the VGA buffer
|
|
|
|
|
void vga_clear();
|
|
|
|
|
//Put a character in the VGA buffer and move the cursor to the right by one
|
|
|
|
|
void vga_putc(char c);
|
|
|
|
|
void vga_set_attributes(uint8_t attributes);
|
|
|
|
|
void vga_print(const char* out);
|
|
|
|
|
void vga_println(const char* out);
|
2025-06-08 20:18:06 +00:00
|
|
|
void vga_printhex(uint32_t out);
|
|
|
|
|
void vga_prindec(uint32_t out);
|
|
|
|
|
void vga_printf(const char* fmt, ...);
|
2025-05-29 03:19:50 +00:00
|
|
|
|
|
|
|
|
#endif
|