Abstraktion des CGA-Textmodus. Mehr ...
#include <cgascr.h>

Öffentliche Typen | |
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-Farben. Mehr ... | |
enum | { STD_ATTR = ((BLACK & 0x7)<<4) | (LIGHT_GREY & 0xf) } |
Standardzeichenfarbe. | |
enum | { ROWS = 25, COLUMNS = 80 } |
Groesse des Bildschirms (25 Zeilen, 80 Spalten) | |
Öffentliche Methoden | |
CGA_Screen (int from_col, int to_col, int from_row, int to_row, bool use_cursor=false) | |
Konstruktor. Mehr ... | |
void | setpos (int x, int y) |
Setzen des Cursors in Spalte x und Zeile y. Mehr ... | |
void | getpos (int &x, int &y) |
Abfragen der Cursorpostion. | |
void | show (int x, int y, char character, unsigned char attrib=STD_ATTR) |
Anzeige eines Zeichens mit Attribut an einer bestimmten Stelle auf dem Bildschirm. Mehr ... | |
void | print (char *string, int length, unsigned char attrib=STD_ATTR) |
Anzeige mehrerer Zeichen ab der aktuellen Cursorposition. Mehr ... | |
Öffentliche, statische Methoden | |
static unsigned char | attribute (CGA_Screen::color bg, CGA_Screen::color fg, bool blink) |
Hilfsfunktion zur Erzeugung eines Attribut-Bytes. Mehr ... | |
Statische öffentliche Attribute | |
static char *const | CGA_START = reinterpret_cast<char*const>(0xb8000) |
Startadresse des CGA-Bildschirmspeichers. | |
Ausführliche Beschreibung
Abstraktion des CGA-Textmodus.
Mit Hilfe dieser Klasse kann man auf den Bildschirm des PCs zugreifen. Der Zugriff erfolgt direkt auf der Hardwareebene, d.h. über den Bildschirmspeicher bzw. die I/O-Ports der Grafikkarte.
Die Implementierung soll es dabei ermöglichen die Ausgaben des CGA_Screens nur auf einem Teil des kompletten CGA-Bildschrims darzustellen. Dadurch ist es möglich die Ausgaben des Programms und etwaige Debugausgaben auf dem Bildschrim zu trennen, ohne synchronisieren zu müssen.
Dokumentation der Aufzählungstypen
enum CGA_Screen::color |
CGA-Farben.
Konstanten fuer die moeglichen Farben im Attribut-Byte. Für die Hintergrundfarbe ist nur BLACK bis LIGHT_GREY moeglich.
Beschreibung der Konstruktoren und Destruktoren
CGA_Screen::CGA_Screen | ( | int | from_col, |
int | to_col, | ||
int | from_row, | ||
int | to_row, | ||
bool | use_cursor = false |
||
) |
Konstruktor.
Der CGA_SCREEN soll auf der Bildschirmfläche dargestellt werden, die durch das Rechteck colums*rows beschrieben wird.
- Parameter
-
from_col Rechteck beginnt in Spalte from_col to_col Rechteck erstreckt sich bis Spalte to_col from_row Rechteck beginn in Zeile from_row to_row Rechteck erstreckt sich bis Zeile to_row use_cursor Gibt an, ob der CGA Hardwarecursor verwendet werden soll. Defaultmässig ist dies nicht der Fall.
Dokumentation der Elementfunktionen
|
static |
Hilfsfunktion zur Erzeugung eines Attribut-Bytes.
- Parameter
-
bg Hintergrundfarbe fg Vordergrundfarbe blink blinkend oder nicht
- Rückgabe
- Attributbyte entsprechend den gesetzten Eingabeparametern
void CGA_Screen::print | ( | char * | string, |
int | length, | ||
unsigned char | attrib = STD_ATTR |
||
) |
Anzeige mehrerer Zeichen ab der aktuellen Cursorposition.
Mit dieser Methode kann eine Zeichenkette string ausgegeben werden, wobei an der aktuellen Position des Cursors begonnen wird. Da die Zeichenkette anders als sonst bei C üblich keine Nullterminierung zu enthalten braucht, wird der Parameter length benötigt, der angeben muss, aus wievielen Zeichen string besteht. Nach Abschluss der Ausgabe soll der Cursor hinter dem zuletzt ausgegebenen Zeichen stehen. Der gesamte text soll einheitlich mit den durch attrib gewählten Farben dargestellt werden.
Wenn bis zum Ende der Zeile nicht mehr genügend Platz ist, soll die Ausgabe auf der folgenden Zeile fortgesetzt werden. Sobald die letzte Bildschirmzeile gefüllt ist, soll der gesamte Bildschirmbereich um eine Zeile nach oben geschoben werden. Dadurch verschwindet die erste Zeile. Dafür kann nun die letzte Zeile erst gelöscht und dann die Ausgabe dort fortgesetzt werden.
Ein Zeilenumbruch muss auch erfolgen, wann immer das Zeichen '\n' im auszugebenen Text enthalten ist.
- Parameter
-
string Auszugebende Zeichenkette length Länge der Zeichenkette attrib Farbattribut zur Darstellung
void CGA_Screen::setpos | ( | int | x, |
int | y | ||
) |
Setzen des Cursors in Spalte x und Zeile y.
Abhängig vom Konstruktorparameter use_cursor soll hier entweder der CGA Hardwarecursor verwendet werden, oder die Position intern im Objekt gespeichert werden.
- Parameter
-
x Spalte y Zeile
void CGA_Screen::show | ( | int | x, |
int | y, | ||
char | character, | ||
unsigned char | attrib = STD_ATTR |
||
) |
Anzeige eines Zeichens mit Attribut an einer bestimmten Stelle auf dem Bildschirm.
Diese Methode gibt das Zeichen c an der Position (x,y) mit dem angegebenen Farbattribut attrib aus. Dabei gibt x die Spalte und y die Zeile der gewünschten Position an, wobei gilt: 0<=x<=79 und 0<=y<=24. Die Position (0,0) bezeichnet die linke obere Ecke des Bildschirms. Mit attrib lassen sich Merkmale wie Hintergrundfarbe, Vordergrundfarbe und Blinken festlegen
- Parameter
-
x Spalte, in der das Zeichen dargestellt werden soll y Zeile, in der das Zeichen dargestellt werden soll character Zeichen, welches dargestellt werden soll attrib Farbattribut zur Darstellung
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
- machine/cgascr.h
- machine/cgascr.cc