|
miniOS
x86_64 hobby kernel with SMP, VFS, and POSIX process model
|

Go to the source code of this file.
Macros | |
| #define | TEXT_STATIC 0 |
| #define | TEXT_BLINKING 1 |
| #define | TEXT_BLACK 0 /* 0000 */ |
| #define | TEXT_BLUE 1 /* 0001 */ |
| #define | TEXT_GREEN 2 /* 0010 */ |
| #define | TEXT_CYAN 3 /* 0011 */ |
| #define | TEXT_RED 4 /* 0100 */ |
| #define | TEXT_MAGENTA 5 /* 0101 */ |
| #define | TEXT_BROWN 6 /* 0110 */ |
| #define | TEXT_LIGHT_GRAY 7 /* 0111 */ |
| #define | TEXT_DARK_GRAY 8 /* 1000 */ |
| #define | TEXT_LIGHT_BLUE 9 /* 1001 */ |
| #define | TEXT_LIGHT_GREEN 10 /* 1010 */ |
| #define | TEXT_LIGHT_CYAN 11 /* 1011 */ |
| #define | TEXT_LIGHT_RED 12 /* 1100 */ |
| #define | TEXT_LIGHT_MAGENTA 13 /* 1101 */ |
| #define | TEXT_YELLOW 14 /* 1110 */ |
| #define | TEXT_WHITE 15 /* 1111 */ |
| #define | TEXT_ATTR(textcolor, bgcolor, blinking) |
| #define | DEFAULT_TEXT_ATTR (TEXT_ATTR(TEXT_LIGHT_GRAY, TEXT_BLACK, TEXT_STATIC)) |
| #define | SCREEN_ROWS 25 /* VGA text mode rows */ |
| #define | SCREEN_COLS 80 /* VGA text mode columns */ |
| #define | VGA_CURSOR_PORT_IDX 0x3D4 /* CRT index register */ |
| #define | VGA_CURSOR_PORT_DATA 0x3D5 /* CRT data register */ |
| #define | VGA_CUR_START_REG 0x0A /* cursor start scanline register */ |
| #define | VGA_CUR_HIGH_REG 0x0E /* cursor high byte register */ |
| #define | VGA_CUR_LOW_REG 0x0F /* cursor low byte register */ |
| #define | VGA_CUR_DISABLE (1 << 5) /* bit 5 of start register disables cursor */ |
| #define | VGA_CUR_END_REG 0x0B /* cursor end scanline register */ |
| #define | VGA_CUR_START_LINE 14 /* underline style: start scanline */ |
| #define | VGA_CUR_END_LINE 15 /* underline style: end scanline */ |
| #define | COM1_PORT 0x3F8 /* COM1 base I/O port */ |
| #define | COM_LSR_OFFSET 5 /* Line Status Register offset from COM1_PORT */ |
| #define | COM_LSR_THRE 0x20 /* Transmitter Holding Register Empty (TX ready) */ |
Functions | |
| void | console_init (void) |
| Sets cursor position to (0,0), initialises the 16550 UART at COM1_PORT (0x3F8) to 9600 baud 8N1, clears the VGA framebuffer using vt_init(), and enables the hardware cursor. Called once at boot before any printk output. | |
| void | console_clear (void) |
| Fills all 80x25 cells with DEFAULT_TEXT_ATTR space characters and calls vt_clear() to reset the VT parser state and hardware cursor. | |
| void | console_putchar (char c) |
| Handles newline, carriage return, backspace, and scrolling via the VT core. | |
| void | console_puts (char *s) |
| Iterates over @s until the null terminator, calling console_putchar() for each character. | |
| void | console_show_cursor (void) |
| Writes scanline range VGA_CUR_START_LINE..VGA_CUR_END_LINE to CRT registers 0x0A and 0x0B, making an underline cursor visible at the current position. | |
| void | console_hide_cursor (void) |
| Sets VGA_CUR_DISABLE (bit 5) in CRT register 0x0A, making the hardware cursor invisible. Used when the terminal is in an intermediate state. | |