Implement console write

This commit is contained in:
Victor Timofei 2022-05-02 22:56:36 +03:00
parent 32e1548fe0
commit fa87fe8950
Signed by: vtimofei
GPG Key ID: B790DCEBE281403A
1 changed files with 23 additions and 13 deletions

View File

@ -24,6 +24,9 @@ uint32_t console_x;
#define PIXEL uint32_t
#define CONSOLE_BG 0
#define CONSOLE_FG 0xFFFFFFFF
void putchar (uint16_t c, int32_t cx, int32_t cy, uint32_t fg, uint32_t bg)
{
psf_font_t *font = (psf_font_t *)&consolefonts_binary__start;
@ -49,23 +52,30 @@ void putchar (uint16_t c, int32_t cx, int32_t cy, uint32_t fg, uint32_t bg)
}
void console_write(char *str)
{
for (int idx = 0; str[idx] != '\0'; idx++ ) {
if (str[idx] == '\n') {
console_x = 0;
console_y++;
continue;
}
putchar((uint16_t) str[idx], console_x, console_y, CONSOLE_FG, CONSOLE_BG);
console_x++;
}
}
void console_init()
{
console_x = 0;
console_y = 0;
}
void kernel_main (uint32_t multiboot_struct_addr)
{
mbi = (multiboot_info_t *)multiboot_struct_addr;
fb = (char *)mbi->framebuffer_addr;
scanline = mbi->framebuffer_pitch;
putchar ((uint16_t)'H', 0, 0, 0xFFFFFFFF, 0);
putchar ((uint16_t)'e', 1, 0, 0xFFFFFFFF, 0);
putchar ((uint16_t)'l', 2, 0, 0xFFFFFFFF, 0);
putchar ((uint16_t)'l', 3, 0, 0xFFFFFFFF, 0);
putchar ((uint16_t)'o', 4, 0, 0xFFFFFFFF, 0);
putchar ((uint16_t)' ', 5, 0, 0xFFFFFFFF, 0);
putchar ((uint16_t)'W', 6, 0, 0xFFFFFFFF, 0);
putchar ((uint16_t)'o', 7, 0, 0xFFFFFFFF, 0);
putchar ((uint16_t)'r', 8, 0, 0xFFFFFFFF, 0);
putchar ((uint16_t)'l', 9, 0, 0xFFFFFFFF, 0);
putchar ((uint16_t)'d', 10, 0, 0xFFFFFFFF, 0);
putchar ((uint16_t)'!', 11, 0, 0xFFFFFFFF, 0);
console_write("Hello World!");
}