Aufgabe 2: Unterbrechungen
Basic operations in the VGA-compatible text mode. More...
#include <machine/textmode.h>
Inheritance diagram for TextMode:
Collaboration diagram for TextMode: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 | |
Detailed Description
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.
Member Enumeration Documentation
| 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)
Member Function Documentation
|
static |
Set the keyboard hardware cursor to absolute screen position.
- Parameters
-
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.
- Parameters
-
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.
- Parameters
-
abs_x Column ( abs_x< COLUMNS) in which the character should be displayedabs_y Row ( abs_y< ROWS) in which the character should be displayedcharacter Character to be displayed attrib Attribute with color settings
- Optional:
- Extend this method to deal with the mouse cursor
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.
- Parameters
-
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.
- Optional:
- Implement this method (it can either use or replace show(unsigned, unsigned, char, Attribute))
The documentation for this class was generated from the following files:
- machine/textmode.h
- machine/textmode.cc