From 1977e5b02b6b670dbc0c7abece64afba361c39d9 Mon Sep 17 00:00:00 2001 From: Karina Date: Sun, 21 Dec 2025 13:57:40 +0400 Subject: [PATCH] random changes --- kernel/include/console.h | 1 + kernel/src/kmain.c | 20 ++------------------ kernel/src/modules/console.c | 18 +++++++++++++++--- kernel/src/modules/shitgui.c | 3 --- 4 files changed, 18 insertions(+), 24 deletions(-) diff --git a/kernel/include/console.h b/kernel/include/console.h index 819a7ca..be0c77a 100644 --- a/kernel/include/console.h +++ b/kernel/include/console.h @@ -4,6 +4,7 @@ #include "shitgui.h" void console_init(SG_Context *ctx); +void console_clear(u32 color); void console_set_color(u32 color); void kprint(const char *str); diff --git a/kernel/src/kmain.c b/kernel/src/kmain.c index 09f2af9..c9e93a1 100644 --- a/kernel/src/kmain.c +++ b/kernel/src/kmain.c @@ -15,27 +15,11 @@ void kmain(Bootinfo* info) { sg_ctx.width = info->width; sg_ctx.pitch = info->pitch; - SG_Point p = {0}; - p.x = 0; - p.y = 0; - - u32 stripe_h = info->height / 5; - - sg_draw_rect(&sg_ctx, &p, info->width, stripe_h, 0x5BCEFA); - p.y += stripe_h; - sg_draw_rect(&sg_ctx, &p, info->width, stripe_h, 0xF5A9B8); - p.y += stripe_h; - sg_draw_rect(&sg_ctx, &p, info->width, stripe_h, 0xFFFFFF); - p.y += stripe_h; - sg_draw_rect(&sg_ctx, &p, info->width, stripe_h, 0xF5A9B8); - p.y += stripe_h; - sg_draw_rect(&sg_ctx, &p, info->width, stripe_h, 0x5BCEFA); - serial_init(); console_init(&sg_ctx); + console_clear(0xFFFFFF); console_set_color(0x000000); - kprint("Hello!!!"); - for (int i = 0; i < 1000; i++) kprint("!"); + kprint("Welcome to termOS!!!"); while (1) { __asm__("hlt"); } } \ No newline at end of file diff --git a/kernel/src/modules/console.c b/kernel/src/modules/console.c index ba41f42..b6e62da 100644 --- a/kernel/src/modules/console.c +++ b/kernel/src/modules/console.c @@ -18,6 +18,16 @@ void console_init(SG_Context *ctx) { s_font.base = (const unsigned char*)font8x8_basic; } +void console_clear(u32 color) { + if (!ctx_ptr) return; + + SG_Point p = {0, 0}; + sg_draw_rect(ctx_ptr, &p, ctx_ptr->width, ctx_ptr->height, color); + + s_cursor_pos.x = 0; + s_cursor_pos.y = 0; +} + static void console_putc(char c) { serial_writec(c); if (!ctx_ptr) return; @@ -35,10 +45,12 @@ static void console_putc(char c) { } } -void console_set_color(u32 color) { - s_color = color; -} + void kprint(const char *str) { for (int i = 0; str[i] != '\0'; i++) console_putc(str[i]); +} + +void console_set_color(u32 color) { + s_color = color; } \ No newline at end of file diff --git a/kernel/src/modules/shitgui.c b/kernel/src/modules/shitgui.c index d428a1c..42e1911 100644 --- a/kernel/src/modules/shitgui.c +++ b/kernel/src/modules/shitgui.c @@ -1,6 +1,3 @@ -// im really sorry for this code -// but its called shitgui after all - #include "shitgui.h"