Files
nub-os/src/print.c
2025-08-22 23:59:03 +02:00

41 lines
817 B
C

#include "print.h"
#define VGA_WIDTH 80
#define VGA_HEIGHT 25
char* vga_text_pos;
void print_init(void)
{
vga_text_pos = (char*)0xb8000;
}
void print_newline(void)
{
vga_text_pos += 160 - ((vga_text_pos - (char*)0xb8000) % 160);
}
void print_clr(const char* string, enum VGA_FG_COLOR fg_color, enum VGA_BG_COLOR bg_color)
{
for (int i = 0; string[i]; i++)
{
*vga_text_pos++ = string[i];
*vga_text_pos++ = (bg_color << 4) | fg_color;
}
}
void println_clr(const char* string, enum VGA_FG_COLOR fg_color, enum VGA_BG_COLOR bg_color)
{
print_clr(string, fg_color, bg_color);
print_newline();
}
void print(const char* string)
{
print_clr(string, VGA_FG_WHITE, VGA_BG_BLACK);
}
void println(const char* string)
{
println_clr(string, VGA_FG_WHITE, VGA_BG_BLACK);
}