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 ... | |
Öffentliche Methoden geerbt von O_Stream | |
| 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 ... | |
Öffentliche Methoden geerbt von Stringbuffer | |
| virtual | ~Stringbuffer () |
| Destruktor (hier nichts zu tun) | |
Öffentliche Methoden geerbt von CGA_Window | |
| 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 ... | |
Öffentliche, statische Methoden geerbt von CGA_Window | |
| 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 | |
Öffentliche Typen geerbt von CGA_Window | |
| 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 ... | |
Öffentliche Attribute geerbt von O_Stream | |
| int | base |
| Basis des zur Anzeige verwendeten Zahlensystems (z.B. 2, 8, 10 oder 16) Mehr ... | |
Statische öffentliche Attribute geerbt von CGA_Window | |
| static const int | ROWS = 25 |
| Groesse des kompletten CGA-Bildschirms. | |
| static const int | COLUMNS = 80 |
Geschützte Methoden geerbt von Stringbuffer | |
| Stringbuffer () | |
| Konstruktor; Markiert Puffer als leer. | |
| void | put (char c) |
| Fügt das Zeichen c in den Puffer ein. Mehr ... | |
Geschützte Attribute geerbt von Stringbuffer | |
| char | buffer [80] |
| Zeichenpuffer. | |
| int | pos |
| Aktuelle Position im Puffer. | |
Geschützte Attribute geerbt von CGA_Window | |
| 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()
|
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.