miniOS
x86_64 hobby kernel with SMP, VFS, and POSIX process model
Loading...
Searching...
No Matches
console.h File Reference
This graph shows which files directly or indirectly include this file:

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.