Friedrich-Alexander-Universität UnivisSuche FAU-Logo
Techn. Fakultńt Willkommen am Department Informatik FAU-Logo
Logo I4
Lehrstuhl für Informatik 4
Betriebssysteme
 
  Vorlesung
    - UnivIS-Infos
    - Inhalt
    - Folien
 
  Übungen
    - UnivIS-Infos
    - Inhalt
    - Ergänzendes Material
    - Terminübersicht
    - Aufgaben
       * Umgebung
       * Typische Fehler
       * Aufgabe 1
          Dokumentation
       * Aufgabe 2
          Dokumentation
       * Aufgabe 3
          Dokumentation
       * Aufgabe 4
          Dokumentation
       * Aufgabe 5
          Dokumentation
       * Aufgabe 6
          Dokumentation
       * Aufgabe 7
          Dokumentation
 
  Evaluation
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2009/10  >  Betriebssysteme  >  ├ťbungen  >  Aufgaben  >  Aufgabe 4

CGA_Screen Klassenreferenz

Abstraktion des CGA-Textmodus. Mehr ...

#include <cgascr.h>

Klassendiagramm f├╝r CGA_Screen:

Aufstellung aller Elemente

├ľ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 Konstanten fuer die moeglichen Farben im Attribut-Byte. F├╝r die Hintergrundfarbe ist nur BLACK bis LIGHT_GREY moeglich.
enum  { STD_ATTR = BLACK << 4 | LIGHT_GREY }
 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.
void setpos (int x, int y)
 Setzen des Cursors in Spalte x und Zeile y.
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.
void print (char *string, int length, unsigned char attrib=STD_ATTR)
 Anzeige mehrerer Zeichen ab der aktuellen Cursorposition.

Statische ├Âffentliche Attribute

static const char * CGA_START = reinterpret_cast<const char*>(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.


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

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

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:
Auszugebende Zeichenkette
L├Ąnge der Zeichenkette
Farbattribut zur Darstellung


Die Dokumentation f├╝r diese Klasse wurde erzeugt aufgrund der Dateien:
  Impressum   Datenschutz Stand: 2010-07-19 12:33   BO, DL