X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/cd09c4b222e4ddf45a42522563ae2471a829d1c8..7b0dccbab69e806a63c4504c3ddb82e45241985b:/lunaix-os/kernel/tty/tty.c diff --git a/lunaix-os/kernel/tty/tty.c b/lunaix-os/kernel/tty/tty.c index cb4e13a..1ad0dd4 100644 --- a/lunaix-os/kernel/tty/tty.c +++ b/lunaix-os/kernel/tty/tty.c @@ -69,11 +69,11 @@ void tty_scroll_up() { size_t last_line = TTY_WIDTH * (TTY_HEIGHT - 1); - memcpy(tty_vga_buffer, tty_vga_buffer + TTY_WIDTH, last_line); + memcpy(tty_vga_buffer, tty_vga_buffer + TTY_WIDTH, last_line * 2); for (size_t i = 0; i < TTY_WIDTH; i++) { *(tty_vga_buffer + i + last_line) = tty_theme_color; } - tty_y = tty_y == 0 ? 0 : tty_y - 1; + tty_y = tty_y == 0 ? 0 : TTY_HEIGHT - 1; } void @@ -84,4 +84,24 @@ tty_clear() } tty_x = 0; tty_y = 0; +} + +void +tty_clear_line(unsigned int y) { + for (size_t i = 0; i < TTY_WIDTH; i++) + { + *(tty_vga_buffer + i + y * TTY_WIDTH) = tty_theme_color; + } +} + +void +tty_set_cpos(unsigned int x, unsigned int y) { + tty_x = x % TTY_WIDTH; + tty_y = y % TTY_HEIGHT; +} + +void +tty_get_cpos(unsigned int* x, unsigned int* y) { + *x = tty_x; + *y = tty_y; } \ No newline at end of file