
Darstellung verschiedener Datentypen auf dem BildschirmDie Klasse CGA_Stream ermöglicht die Ausgabe verschiedener Datentypen als Zeichenketten auf dem CGA Bildschirm eines PCs. Dazu braucht CGA_Stream nur von den Klassen O_Stream und CGA_Window abgeleitet und endlich die Methode flush() implementiert werden. Für weitergehende Formatierung oder spezielle Effekte stehen die Methoden der Klasse CGA_Window zur Verfügung. Mehr ...
#include <device/cga_stream.h>
Öffentliche Methoden | |
CGA_Stream (int from_col, int to_col, int from_row, int to_row, bool use_cursor=false) | |
Konstruktor. Mehr ... | |
CGA_Stream (void) | |
(Leerer) Standardkonstruktor Mehr ... | |
void | flush () |
Methode zur Ausgabe des Pufferinhalts der Basisklasse Stringbuffer. Mehr ... | |
![]() | |
O_Stream () | |
Konstruktor; Initiale Zahlenbasis ist das Dezimalsystem. Mehr ... | |
virtual | ~O_Stream () |
Destruktor. | |
O_Stream & | operator<< (char c) |
Stellt ein einzelnes Zeichen dar. Mehr ... | |
O_Stream & | operator<< (unsigned char c) |
Stellt ein einzelnes Zeichen dar. Mehr ... | |
O_Stream & | operator<< (const char *string) |
Darstellung einer nullterminierten Zeichenkette. Mehr ... | |
O_Stream & | operator<< (bool b) |
Stellt ein Boolean dar. Mehr ... | |
O_Stream & | operator<< (short ival) |
Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ... | |
O_Stream & | operator<< (unsigned short ival) |
Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ... | |
O_Stream & | operator<< (int ival) |
Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ... | |
O_Stream & | operator<< (unsigned int ival) |
Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ... | |
O_Stream & | operator<< (long ival) |
Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ... | |
O_Stream & | operator<< (unsigned long ival) |
Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ... | |
O_Stream & | operator<< (long long ival) |
Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ... | |
O_Stream & | operator<< (unsigned long long ival) |
Darstellung ganzer Zahlen im Zahlensystem zur Basis base. Mehr ... | |
O_Stream & | operator<< (const void *ptr) |
Darstellung eines Zeigers als hexadezimale ganze Zahl. Mehr ... | |
O_Stream & | operator<< (O_Stream &(*f)(O_Stream &)) |
Aufruf einer Manipulatorfunktion. Mehr ... | |
![]() | |
virtual | ~Stringbuffer () |
Destruktor (hier nichts zu tun) | |
![]() | |
CGA_Window (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 im Fenster auf Spalte x und Zeile y . Mehr ... | |
void | getpos (int &x, int &y) |
Abfragen der Cursorpostion. Mehr ... | |
void | print (const char *string, int length, Attribute attrib=Attribute()) |
Anzeige mehrerer Zeichen im Fenster ab der aktuellen Cursorposition. Mehr ... | |
void | reset (char character=' ', Attribute attrib=Attribute()) |
Löschen des Inhalts und Zurücksetzen des Cursors. Mehr ... | |
Öffentliche, statische Methoden | |
static void | arrange (CGA_Stream &kout, CGA_Stream dout[8]) |
Automatische Aufteilung der Fenster. Mehr ... | |
![]() | |
static void | show (int x, int y, char character, Attribute attrib=Attribute()) |
Grundlegende Anzeige eines Zeichens mit Attribut an einer bestimmten Stelle auf dem kompletten CGA-Bildschirm. Mehr ... | |
Weitere Geerbte Elemente | |
![]() | |
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 ... | |
![]() | |
int | base |
Basis des zur Anzeige verwendeten Zahlensystems (z.B. 2, 8, 10 oder 16) Mehr ... | |
![]() | |
static const int | ROWS = 25 |
Groesse des kompletten CGA-Bildschirms. | |
static const int | COLUMNS = 80 |
![]() | |
Stringbuffer () | |
Konstruktor; Markiert Puffer als leer. Mehr ... | |
void | put (char c) |
Fügt das Zeichen c in den Puffer ein. Mehr ... | |
![]() | |
char | buffer [80] |
Zeichenpuffer. | |
int | pos |
Aktuelle Position im Puffer. | |
![]() | |
int | x_pos |
int | y_pos |
int | from_col |
int | to_col |
int | from_row |
int | to_row |
bool | use_cursor |
Darstellung verschiedener Datentypen auf dem Bildschirm
Die Klasse CGA_Stream ermöglicht die Ausgabe verschiedener Datentypen als Zeichenketten auf dem CGA Bildschirm eines PCs. Dazu braucht CGA_Stream nur von den Klassen O_Stream und CGA_Window abgeleitet und endlich die Methode flush() implementiert werden. Für weitergehende Formatierung oder spezielle Effekte stehen die Methoden der Klasse CGA_Window zur Verfügung.
|
inline |
Konstruktor.
Das CGA_Window spannt ein Fenster auf der CGA-Bildschirmfläche auf, dass durch das Rechteck colums*rows beschrieben wird.
from_col | Fensterrechteck beginnt in Spalte from_col |
to_col | Fensterrechteck erstreckt sich bis Spalte to_col (inklusive) |
from_row | Fensterrechteck beginn in Zeile from_row |
to_row | Fensterrechteck erstreckt sich bis Zeile to_row (inklusive) |
use_cursor | Gibt an, ob der CGA Hardwarecursor verwendet werden soll. Defaultmässig ist dies nicht der Fall. |
|
inline |
(Leerer) Standardkonstruktor
Die Aufteilung der Fenster kann auch automatisch zur Laufzeit geschehen. Einziges Problem: Die Anzahl der CPUs ist erst nach dem Auswerten der der ACPI Tabelle (durch Aufurf von System::init() in der boot/startup.cc) bekannt, globale Konstruktoren wie die von kout
werden jedoch schon früher ausgeführt. Deshalb gibt dieser Konstruktor jedem Fenster jeweils 2 seperate Zeilen für die Ausgabe, die eigentliche Aufteilung geschieht durch Aufruf von CGA_Stream::arrange() in der main()
make QEMUCPUS=6 kvm
|
static |
Automatische Aufteilung der Fenster.
Nachdem die Systeminformationen ausgelesen wurden, kann mit System::getNumberOfCPUs() die Anzahl der vorhandenen Kerne abgefragt und diese Information zur automatischen Anordnung der Fenster verwendet werden.
kout | Zeiger auf das Objekt für das Hauptfenster |
dout | Zeiger auf ein Array mit einem Debugfenster für jede CPU |
|
virtual |
Methode zur Ausgabe des Pufferinhalts der Basisklasse Stringbuffer.
Die Methode wird implizit aufgerufen, sobald der Puffer voll ist, kann aber auch explizit verwendet werden, um eine Ausgabe zu erzwingen.
Implementiert O_Stream.