This commit is contained in:
Tunacan 2020-11-21 22:06:15 +03:00
parent b95d998bd3
commit cc4a37e8e9
3 changed files with 35 additions and 11 deletions

View file

@ -52,7 +52,7 @@ void terminal_setcolor(uint8_t color);
void terminal_clearline(size_t line);
void terminal_clearlines(size_t from, size_t to);
void terminal_updatecursor(void);
void terminal_scrollup(size_t lines);
void terminal_scrollup(void);
void terminal_checknewline(void);
void terminal_putentryat(char c, uint8_t color, size_t x, size_t y);
void terminal_putchar(char c);

View file

@ -27,7 +27,31 @@ void srand(size_t seed) {
void kernel_main() {
terminal_initialize();
while(true)
terminal_writestring("gnhijsrg");
terminal_writeline("bruh1");
terminal_writeline("bruh2");
terminal_writeline("bruh3");
terminal_writeline("bruh4");
terminal_writeline("bruh5");
terminal_writeline("bruh6");
terminal_writeline("bruh7");
terminal_writeline("bruh8");
terminal_writeline("bruh9");
terminal_writeline("bruh10");
terminal_writeline("bruh11");
terminal_writeline("bruh12");
terminal_writeline("bruh13");
terminal_writeline("bruh14");
terminal_writeline("bruh15");
terminal_writeline("bruh16");
terminal_writeline("bruh17");
terminal_writeline("bruh18");
terminal_writeline("bruh19");
terminal_writeline("bruh20");
terminal_writeline("bruh21");
terminal_writeline("bruh22");
terminal_writeline("bruh23");
terminal_writeline("bruh24");
terminal_writeline("bruh25");
terminal_writeline("bruh26");
}

View file

@ -50,24 +50,24 @@ void terminal_updatecursor(void) {
outb(0x3D5, temp);
}
void terminal_scrollup(size_t lines) {
terminal_clearlines(0, lines - 1);
void terminal_scrollup(void) {
terminal_clearline(0);
for (size_t index = 0; index < VGA_WIDTH * (VGA_HEIGHT - 1) * 2; index++) {
terminal_buffer[index] = terminal_buffer[index + VGA_WIDTH * 2 * lines];
terminal_buffer[index] = terminal_buffer[index + VGA_WIDTH * 2 * 1];
}
terminal_clearlines(VGA_HEIGHT - 1 - lines, VGA_HEIGHT - 1);
if ((terminal_row - lines) < 0) {
terminal_clearlines(VGA_HEIGHT - 2, VGA_HEIGHT - 1);
if ((terminal_row - 1) < 0) {
terminal_row = 0;
terminal_column = 0;
} else {
terminal_row -= lines;
terminal_row -= 1;
}
terminal_updatecursor();
}
void terminal_checknewline(void) {
if (terminal_row >= VGA_HEIGHT - 1) {
terminal_scrollup(1);
terminal_scrollup();
}
}