mirror of
https://github.com/Plexi09/Nadir-Kernel.git
synced 2026-10-20 15:07:27 +02:00
Added documentation to console.c
This commit is contained in:
parent
8c46ac48d9
commit
577d28cd2e
2 changed files with 10 additions and 0 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -13,6 +13,8 @@ compile_commands.json
|
|||
.vscode/
|
||||
.idea/
|
||||
*~
|
||||
.pyc
|
||||
*.pyc
|
||||
|
||||
# QEMU / debug
|
||||
*.log
|
||||
|
|
|
|||
|
|
@ -13,8 +13,13 @@
|
|||
static uint8_t cursor_row;
|
||||
static uint8_t cursor_col;
|
||||
|
||||
/* Text buffer: one 16-bit cell per character, low byte is the ASCII code,
|
||||
* high byte is the color attribute. `volatile` so the compiler keeps every
|
||||
* store in order: this is memory-mapped I/O, and dropped or reordered
|
||||
* writes would corrupt the screen. */
|
||||
static volatile uint16_t *const vga = (uint16_t *)VGA_ADDR;
|
||||
|
||||
/* Move every line one row up and blank the last line */
|
||||
static void scroll(void)
|
||||
{
|
||||
for (uint8_t row = 1; row < VGA_HEIGHT; row++) {
|
||||
|
|
@ -47,10 +52,12 @@ void console_putchar(char c)
|
|||
(uint16_t)((COLOR_DEFAULT << 8) | c);
|
||||
cursor_col++;
|
||||
if (cursor_col >= VGA_WIDTH) {
|
||||
/* Past the right edge: wrap to the next line. */
|
||||
cursor_col = 0;
|
||||
cursor_row++;
|
||||
}
|
||||
}
|
||||
/* Past the bottom line: scroll and stay on the last line. */
|
||||
if (cursor_row >= VGA_HEIGHT) {
|
||||
scroll();
|
||||
cursor_row = VGA_HEIGHT - 1;
|
||||
|
|
@ -70,6 +77,7 @@ void console_puthex64(uint64_t value)
|
|||
static const char digits[] = "0123456789ABCDEF";
|
||||
|
||||
console_puts("0x");
|
||||
/* Print 16 nibbles, most significant first (shifts 60, 56, …, 0). */
|
||||
for (int shift = 60; shift >= 0; shift -= 4) {
|
||||
console_putchar(digits[(value >> shift) & 0xFU]);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue