1 - Bildschirm (CGA Textmode) [ID:36133]
50 von 110 angezeigt

Die erste Grafikkarte die IBM verkaufte war dieser Color Graphics Adapter aus dem Jahre

Für anfangs 1000DMark bekam man bis zu 16 Farben und hatte ganze 16 KB Videospiecher.

Die Grafikauflösung betrug bis zu 640x200 Pixel, aber dann nur mit zwei Farben.

Alle 16 Farben konnte man allerdings nur im Textmodus gleichzeitig nutzen.

Und dieser Textmodus ist auch bei den Nachfolgern Enhanced Graphics Adapter, EGA, und Video

Graphics Array, VGA, bestehen geblieben und wird von heutigen Systemen im Allgemeinen

auch noch unterstützt.

Wir haben in diesem Textmodus 25 Zahlen mit je 80 Zeichen zur Verfügung, können also

2000 Zeichen gleichzeitig am Bildschirm anzeigen.

Für jedes Zeichen brauchen wir dabei 2 Bytes, das erste davon beinhaltet das darzustellende

Zeichen selbst.

Der dazu verwendete Zeichensatz CodePage 437 trifft die druckbaren ASCII Zeichen.

In ASCII sind die ersten 32 Codes allerdings nicht druckbare Steuerzeichen, wie beispielsweise

die 10 für den Zeilenumbruch.

Wenn wir hier diesen Wert als erstes Byte setzen, sehen wir jedoch einen Block mit einem

Kreis, denn alle Werte haben im Zeichensatz eine grafische Repräsentation.

Das zweite Byte dient der Konfiguration der Darstellung.

Neben Spezialeffekten wie dem Blinken kann man damit die Farben steuern.

Von den 16 Farben stehen als Hintergrundfarbe nur die ersten 8 zur Verfügung.

Da sind allerdings alle relevanten Farben mit dabei, die anderen sind eigentlich nur

aufgehellte Farbvarianten, welche nur bei der Vordergrundfarbe verwende werden können.

Der Videospeicher für diese Bytes ist in unserem Arbeitsspeicher eingeblendet, ab Adresse 0xB8000.

Ein an die erste Adresse gespeichertes Byte, hier das B, wird an der ersten Stelle mit

dem nachfolgenden spezifizierten Darstellungsattribut eingeblendet.

Das Byte an der Adresse 0xB80002 entspricht dann dem zweiten Zeichen am Bildschirm.

Der hier dargestellte Speicher würde am Bildschirm in rot das Wort Bar auf hellgraum Hintergrund

ausgeben, wobei das erste Zeichen blinken wird.

Bitte beachten, das Blinken wird nicht zwangsläufig im Emulator dargestellt, da das höchstwertige

Bit auch anders interpretiert werden kann, aber die Farben sollten übereinstimmen.

Um jetzt das Darstellungsattribut nach unserem Wünschen zu setzen, kann man die im Grundstudium

gelernten Bit-Aparationen verwenden, Bitwise's und, oder Exklusives oder Negation sowie das

Shiften.

Um eine bessere Lesbarkeit zu ermöglichen, sollte man jedoch nicht wie hier die dezimale

Repräsentation verwenden, besser Hexwerte oder konstante Variable mit entsprechenden

Namen.

Um jetzt beispielsweise in einer Variable x das Ente Bit zu setzen oder zu löschen,

verwendet man in der Regel diese gut lesbaren Konstrukte.

Noch lesbarer sind allerdings Bitfelder.

Felder in Strukturen können mit einer Länge definiert werden, hier FG für Foreground

mit 4 Bit und Background mit 3 Bit sowie blinkt mit einem Bit.

Der Zugriff ist dann wie bei Strukturen üblich, in Verbindung mit Enums eine intuitive Art

die Attribute zu definieren.

Die gesetzten Werte entsprechen dann einem Byte mit diesem Speicherlayout.

Das erste Feld Foreground beginnt beim niedrigwertigsten Bit.

Nach dem C-Standard ist die Reihenfolge übrigens nicht spezifiziert, aber auf dem x86 bilden

alle relevanten Übersetzer das Wien Beispiel ab.

Allerdings gibt es bei Strukturen Falschtrücke, die man wissen sollte, wenn man eine gewisse

Darstellung im Speicher erwartet.

Diese Struktur hat ein CharArray, drei Elemente zu je ein Byte, ein Integer, welcher auf

Teil einer Videoserie :
Teil eines Kapitels:
Ein- und Ausgabe

Zugänglich über

Offener Zugang

Dauer

00:08:23 Min

Aufnahmedatum

2020-07-29

Hochgeladen am

2021-09-20 19:56:20

Sprache

de-DE

Bildschirmausgabe mittels CGA Textmode für Aufgabe 1 der Lehrveranstaltung Betriebssysteme.

Folien und Transkript zum Video.

Tags

betriebssysteme operating systems stubs
Einbetten
Wordpress FAU Plugin
iFrame
Teilen