|
miniOS
x86_64 hobby kernel with SMP, VFS, and POSIX process model
|
Direct VGA text-mode framebuffer driver used before VT initialises. More...
Macros | |
| #define | TEXT_STATIC 0 |
| #define | TEXT_BLINKING 1 |
| #define | TEXT_BLACK 0 |
| #define | TEXT_BLUE 1 |
| #define | TEXT_GREEN 2 |
| #define | TEXT_CYAN 3 |
| #define | TEXT_RED 4 |
| #define | TEXT_MAGENTA 5 |
| #define | TEXT_BROWN 6 |
| #define | TEXT_LIGHT_GRAY 7 |
| #define | TEXT_DARK_GRAY 8 |
| #define | TEXT_LIGHT_BLUE 9 |
| #define | TEXT_LIGHT_GREEN 10 |
| #define | TEXT_LIGHT_CYAN 11 |
| #define | TEXT_LIGHT_RED 12 |
| #define | TEXT_LIGHT_MAGENTA 13 |
| #define | TEXT_YELLOW 14 |
| #define | TEXT_WHITE 15 |
| #define | TEXT_ATTR(textcolor, bgcolor, blinking) |
| #define | DEFAULT_TEXT_ATTR (TEXT_ATTR(TEXT_LIGHT_GRAY, TEXT_BLACK, TEXT_STATIC)) |
| #define | SCREEN_ROWS 25 |
| #define | SCREEN_COLS 80 |
| #define | VGA_CURSOR_PORT_IDX 0x3D4 |
| #define | VGA_CURSOR_PORT_DATA 0x3D5 |
| #define | VGA_CUR_START_REG 0x0A |
| #define | VGA_CUR_HIGH_REG 0x0E |
| #define | VGA_CUR_LOW_REG 0x0F |
| #define | VGA_CUR_DISABLE (1 << 5) |
| #define | VGA_CUR_END_REG 0x0B |
| #define | VGA_CUR_START_LINE 14 |
| #define | VGA_CUR_END_LINE 15 |
| #define | COM1_PORT 0x3F8 |
| #define | COM_LSR_OFFSET 5 |
| #define | COM_LSR_THRE 0x20 |
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. | |
Direct VGA text-mode framebuffer driver used before VT initialises.
Provides simple VGA 80x25 text-mode output: clear screen, single-character and string output with automatic scrolling, and hardware cursor control. Also mirrors output to COM1 (0x3F8) for serial logging. This driver is used during early boot; after vt_init() the VT core takes over terminal I/O.
| #define COM1_PORT 0x3F8 |
| #define COM_LSR_OFFSET 5 |
| #define COM_LSR_THRE 0x20 |
| #define DEFAULT_TEXT_ATTR (TEXT_ATTR(TEXT_LIGHT_GRAY, TEXT_BLACK, TEXT_STATIC)) |
| #define SCREEN_COLS 80 |
| #define SCREEN_ROWS 25 |
| #define TEXT_ATTR | ( | textcolor, | |
| bgcolor, | |||
| blinking ) |
| #define TEXT_BLACK 0 |
| #define TEXT_BLINKING 1 |
| #define TEXT_BLUE 1 |
| #define TEXT_BROWN 6 |
| #define TEXT_CYAN 3 |
| #define TEXT_DARK_GRAY 8 |
| #define TEXT_GREEN 2 |
| #define TEXT_LIGHT_BLUE 9 |
| #define TEXT_LIGHT_CYAN 11 |
| #define TEXT_LIGHT_GRAY 7 |
| #define TEXT_LIGHT_GREEN 10 |
| #define TEXT_LIGHT_MAGENTA 13 |
| #define TEXT_LIGHT_RED 12 |
| #define TEXT_MAGENTA 5 |
| #define TEXT_RED 4 |
| #define TEXT_STATIC 0 |
| #define TEXT_WHITE 15 |
| #define TEXT_YELLOW 14 |
| #define VGA_CUR_DISABLE (1 << 5) |
| #define VGA_CUR_END_LINE 15 |
| #define VGA_CUR_END_REG 0x0B |
| #define VGA_CUR_HIGH_REG 0x0E |
| #define VGA_CUR_LOW_REG 0x0F |
| #define VGA_CUR_START_LINE 14 |
| #define VGA_CUR_START_REG 0x0A |
| #define VGA_CURSOR_PORT_DATA 0x3D5 |
| #define VGA_CURSOR_PORT_IDX 0x3D4 |
| 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.
console_clear() - Clear the VGA screen and reset cursor to row 0, column 0.


| 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.
console_hide_cursor() - Disable the VGA hardware cursor.


| 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.
console_init() - Initialise the VGA console and COM1 serial port.


| void console_putchar | ( | char | c | ) |
Handles newline, carriage return, backspace, and scrolling via the VT core.
console_putchar() - Output one character to the VGA console and COM1.
| c | Character to write. Routed through vt_write_byte() for ANSI processing and simultaneously written to COM1 for serial capture. |


| void console_puts | ( | char * | s | ) |
Iterates over @s until the null terminator, calling console_putchar() for each character.
console_puts() - Output a null-terminated string to the VGA console.
| s | Null-terminated string to write. Each byte is passed to console_putchar(). |


| 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.
console_show_cursor() - Enable the VGA hardware underline cursor.

