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