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
    - Videos
 
  Übungen
    - UnivIS-Infos
    - Inhalt
    - Module
    - Mailingliste
    - 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 2011/12  >  Betriebssysteme  >  Übungen  >  Aufgaben  >  Aufgabe 1

Informationen zur Ansteuerung der CGA-Grafikkarte

Video-RAM

Jede PC Grafikkarte verfügt über einen eigenen Speicherbereich, das Video-RAM, mit dessen Hilfe der Bildschirminhalt programmiert werden kann. Im Grafikmodus müssen dazu für jeden Bildpunkt je nach der Anzahl der möglichen Farben ein oder mehrere Bits im Video-RAM gesetzt bzw. gelöscht werden. Im Textmodus genügt es dagegen, den ASCII-Code des gewünschten Zeichens, zusammen mit dessen Darstellungsattributen in das Video-RAM zu übertragen. Die Umsetzung des ASCII-Codes in eine Pixelmatrix wird dann von der Grafikkarte eigenständig vorgenommen.

In der Rechnerübung zu Betriebssysteme sollen alle Ausgaben im CGA Textmodus erfolgen. Dieser Modus wird von fast allen Grafikkarten unterstützt, ist einfach zu programmieren und für das Übungsbetriebssystem vollkommen ausreichend.

Im CGA Textmodus belegt jede Bildschirmposition zwei Bytes im Video-RAM. Das erste der beiden Bytes (gerade Offsetadresse) nimmt den ASCII-Code des darzustellenden Zeichens auf, das zweite (ungerade Offsetadresse) die gewünschte Vorder- und Hintergrundfarbe. Die Abbildung der Bildschirmpositionen auf die Einträge im Video-RAM erfolgt nach Zeilen und Spalten geordnet. Bei einer Auflösung von 80 Zeichen pro Zeile und 25 Zeilen belegt das Zeichen in der linken oberen Ecke die Bytes 0 und 1, das Zeichen rechts daneben die Bytes 2 und 3 und das Zeichen am Ende der ersten Zeile die Bytes 158 und 159. Die Zählung wird dann mit dem ersten Zeichen der zweiten Zeile fortgesetzt.

Da das Video-RAM in den Hauptspeicher des PCs eingeblendet ist, kann es mit Hilfe normaler Speicherzugriffe beschrieben werden. Offset 0 im Video-RAM wird mit (hexadezimal) b8000 addressiert.

Darstellungsattribute

Zu jedem Zeichen können die Merkmale Vordergrundfarbe, Hintergrundfarbe und Blinken einzeln festgelegt werden. Für diese Attribute steht pro Zeichen ein Byte zur Verfügung, dessen Bits folgende Bedeutung haben:

Darstellungsattribute
Bits 0-3Vordergrundfarbe
Bits 4-6Hintergrundfarbe
Bit 7Blinken

Im CGA Textmodus stehen die folgenden 16 Farben zur Verfügung:

Farbpalette
0Schwarz8Dunkelgrau
1Blau9Hellblau
2Grün10Hellgrün
3Cyan11Hellcyan
4Rot12Hellrot
5Magenta13Hellmagenta
6Braun14Gelb
7Hellgrau15Weiß

Da für die Hintergrundfarbe im Attributbyte nur drei Bits zur Verfügung stehen, können auch nur die ersten acht Farben zur Hintergrundfarbe gewählt werden.

Kontrolle des Cursors

Um die aktuelle Cursorposition abfragen oder setzen zu können, muß der Videocontroller der Grafikkarte programmiert werden. Der Videocontroller der CGA-Karte stellt insgesamt 18 Steuerregister (8-Bit Wortbreite) zur Verfügung. Für die Cursorsteuerung sind hier nur die Steuerregister 14 und 15 interessant:

IndexRegisterBedeutung
14Cursor (high) Zeichenoffset der Cursorposition
15Cursor (low)

Die Steuerregister können jedoch nicht direkt angesprochen werden. Der Zugriff erfolgt vielmehr indirekt über ein Index- und ein Datenregister. Dazu wird in das Indexregister zunächst die Nummer des Steuerregisters geschrieben, das gelesen oder geschrieben werden soll. Der eigentliche Zugriff auf den Inhalt des Steuerregisters (lesen/schreiben) erfolgt dann über das Datenregister. Daten- und Indexregister können direkt mit Hilfe der in und out Befehle angesprochen werden, da ihnen eigenständige Portadressen zugeordnet sind:

PortRegisterZugriffsart
3d4 Indexregisternur schreiben
3d5 Datenregisterlesen und schreiben

  Impressum   Datenschutz Stand: 2011-11-02 13:57   BO, DL