StuBS
|
Basic operations in the VGA-compatible text mode. More...
#include <machine/textmode.h>
Classes | |
union | Attribute |
Structure of a character attribute consists of 4 bit fore- and 3 bit background color, and a single blink bit. More... | |
struct | Attribute.__unnamed66__ |
struct | Cell |
Structure for a cell in text mode. More... | |
Public Types | |
enum | Color { BLACK , BLUE , GREEN , CYAN , RED , MAGENTA , BROWN , LIGHT_GREY , DARK_GREY , LIGHT_BLUE , LIGHT_GREEN , LIGHT_CYAN , LIGHT_RED , LIGHT_MAGENTA , YELLOW , WHITE } |
CGA color palette. More... | |
Static Public Member Functions | |
static void | setCursor (unsigned abs_x, unsigned abs_y) |
Set the keyboard hardware cursor to absolute screen position. More... | |
static void | getCursor (unsigned &abs_x, unsigned &abs_y) |
Retrieve the keyboard hardware cursor position on screen. More... | |
static void | show (unsigned abs_x, unsigned abs_y, char character, Attribute attrib=Attribute()) |
Basic output of a character at a specific position on the screen. More... | |
static void | show (int abs_x, int abs_y, char character, Attribute attrib=Attribute()) |
Basic output of a character at a specific position on the screen. More... | |
static void | showMouse (unsigned abs_x, unsigned abs_y) |
Show the mouse cursor by switching foreground and background of the cell at cursor position. More... | |
Static Public Attributes | |
static const unsigned | ROWS = 25 |
Visible rows in text mode. | |
static const unsigned | COLUMNS = 80 |
Visible columns in text mode. | |
Protected Member Functions | |
TextMode () | |
Default constructor. | |
Static Protected Attributes | |
static Cell *const | TEXT_BUFFER_BASE = reinterpret_cast<TextMode::Cell *>(0xb8000) |
Base address for linear text buffer in video memory. | |
static unsigned | mouse_x = 0 |
Last reported column of mouse cursor. | |
static unsigned | mouse_y = 0 |
Last reported row of mouse cursor. | |
static Attribute | mouse_attrib |
(Previous) attributes of cell at mouse cursor | |
Basic operations in the VGA-compatible text mode.
This class provides an interface to access the screen in text mode, with access directly on the hardware level, i.e. the video memory and the I/O ports of the graphics card.
enum TextMode::Color |
CGA color palette.
Colors for the attribute byte. All 16 colors can be used for the foreground while the background colors are limited to the first eight (fromBLACK
to LIGHT_GREY
)
|
static |
Set the keyboard hardware cursor to absolute screen position.
abs_x | absolute column of the keyboard hardware cursor |
abs_y | absolute row of the keyboard hardware cursor |
|
static |
Retrieve the keyboard hardware cursor position on screen.
abs_x | absolute column of the keyboard hardware cursor |
abs_y | absolute row of the keyboard hardware cursor |
|
static |
Basic output of a character at a specific position on the screen.
This method outputs the given character at the absolute screen position (x
, y
) with the specified color attribute.
The position (0
,0
) indicates the upper left corner of the screen. The attribute defines characteristics such as background color, foreground color and blinking.
abs_x | Column (abs_x < COLUMNS) in which the character should be displayed |
abs_y | Row (abs_y < ROWS) in which the character should be displayed |
character | Character to be displayed |
attrib | Attribute with color settings |
Basic output of a character at a specific position on the screen.
This method outputs the given character at the absolute screen position (x
, y
) with the specified color attribute. Negative coordinates are interpreted relative to the right (x
) and bottom (y
) border.
abs_x | Column (-COLUMNS ≤ abs_x < COLUMNS) in which the character should be displayed – using the right border (COLUMNS) as reference for negative values. |
abs_y | Row (-ROWS ≤ abs_y < ROWS) in which the character should be displayed – using the bottom border (ROWS) as reference for negative values. |
character | Character to be displayed |
attrib | Attribute with color settings |
|
static |
Show the mouse cursor by switching foreground and background of the cell at cursor position.