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.__unnamed74__ |
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. | |
static void | getCursor (unsigned &abs_x, unsigned &abs_y) |
Retrieve the keyboard hardware cursor position on screen. | |
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. | |
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. | |
static void | showMouse (unsigned abs_x, unsigned abs_y) |
Show the mouse cursor by switching foreground and background of the cell at cursor position. | |
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.
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
)
|
inlineprotected |
Default constructor.
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 |
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.
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 |
|
staticprotected |
Base address for linear text buffer in video memory.
|
staticprotected |
Last reported column of mouse cursor.
|
staticprotected |
Last reported row of mouse cursor.
|
staticprotected |
(Previous) attributes of cell at mouse cursor