18.12.2012 Aufrufe

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

6. Funktionseinheiten eines Computers / Mikrocomputers

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Rechnergrundlagen Teil 2 - 48 - Prof. Dipl.-Ing. Komar<br />

Interrupt 10h, Funktion 0Eh Bilds chirm: Schreiben <strong>eines</strong> Zeichens<br />

Ein Zeichen wird an die aktuelle Cursor-Position in der aktuellen Bildschirmseite geschrieben, wobei die Farbe des alten<br />

Zeichens an dieser Bildschirmposition beibehalten wird.<br />

Eingabe AH = 0Eh<br />

AL = ASCII-Code des Zeichens<br />

BL = Vordergrundfarbe des Zeichens (nur im Grafikmodus)<br />

Ausgabe keine Ausgabe<br />

Diese Funktion interpretiert die verschiedenen Steuercodes wie Bell und Carriage Return nicht wie normale ASCII-Codes,<br />

sondern wie besondere Steuercodes und löst z.B. anstatt das Bell-Zeichen auszugeben einen Piepston aus.<br />

Nach der Ausgabe <strong>eines</strong> Zeichens über diese Funktion wird die Cursor-Position inkrementiert, so daß das nächste Zeichen an<br />

der folgenden Bildschirmposition ausgegeben wird. Wird die letzte Bildschirmposition erreicht, dann wird der Bildschirm um<br />

eine Zeile nach oben geschoben und mit der Ausgabe in der ersten Spalte der letzten Bildschirmzeile fortgefahren.<br />

Die Vordergrundfarbe richtet sich nach dem aktuellen Grafikmodus. Im 640*200-Punkte-Modus sind nur die Werte 0 und 1<br />

erlaubt. Im 320*200-Punkte-Modus sind die Werte 0 bis 3 erlaubt, die je nach der angewählten Farbpalette eine bestimmte<br />

Farbe erzeugen. 0 steht dabei für die angewählte Hintergrundfarbe, 1 für die erste Farbe der angewählten Farbpalette, 2 für<br />

die zweite Farbe der Farbpalette usw.<br />

Der Inhalt der Register BX, CX, DX und der Segmentregister SS, CS und DS wird durch diese Funktion nicht verändert. Der<br />

Inhalt aller anderen Register, vor allem der Register SI und DI, kann verändert werden.<br />

Interrupt 10h, Funktion 0Fh Bildschirm: Auslesen des Video-Modus<br />

Die Nummer des aktuellen Video-Modus, die Anzahl der Zeichen pro Zeile und die Nummer der aktuellen Bildschirmseite<br />

wird ausgelesen.<br />

Eingabe AH = 0Fh<br />

Ausgabe AL = Video-Modus (siehe Funktion 00h)<br />

AH = Anzahl der Zeichen pro Zeile<br />

BH = Nummer der aktuellen Bildschirmseite<br />

Der Inhalt der Register BL, CX, DX und der Segmentregister SS, CS und DS wird durch diese Funktion nicht verändert. Der<br />

Inhalt aller anderen Register, vor allem der Register SI und DI, kann verändert werden.<br />

Interrupt 10h, Funktion 13h Bildschirm: Ausgabe einer Zeichenkette<br />

Eine Zeichenkette wird ab einer vorgegebenen Bildschirmposition in einer bestimmten Bildschirmseite auf dem Bildschirm<br />

ausgegeben. Die Zeichen werden dabei einem Puffer entnommen, dessen Adresse der Funktion übergeben wird.<br />

Eingabe AH = 13h<br />

AL = Ausgabemodus (0 - 3)<br />

0 = Attribut in BL, Cursor-Position beibehalten<br />

1 = Attribut in BL, Cursor-Position aktualisieren<br />

2 = Attribut im Puffer, Cursor-Position beibehalten<br />

3 = Attribut im Puffer, Cursor-Position aktualisieren<br />

BL = Attribut-Byte der Zeichen (nur Modi 0 und 1)<br />

CX = Anzahl der auszugebenden Zeichen<br />

DH = Bildschirmzeile<br />

DL = Bildschirmspalte<br />

BH = Bildschirmseite<br />

ES:BP = FAR-Zeiger auf den Puffer<br />

Ausgabe keine Ausgabe<br />

In den Modi 1 und 3 wird die Cursor-Position nach Ausgabe der Zeichenkette hinter das letzte Zeichen der Zeichenkette<br />

gesetzt, so daß bei nachfolgenden Aufrufen einer BIOS-Funktion zur Zeichenausgabe die Zeichen hinter der Zeichenkette<br />

ausgegeben werden. Dies geschieht in den Modi 0 und 2 nicht.<br />

In den Modi 0 und 1 enthält der Puffer nur die ASCII-Codes der auszugebenden Zeichen. Die Farbe aller Zeichen der<br />

Zeichenkette wird in diesem Fall durch das BL-Register angegeben. In den Modi 2 und 3 hingegen folgt auf jedes Zeichen im<br />

Puffer das dazugehörige Attribut-Byte, so daß jedes Zeichen über ein individuelles Attribut verfügt. Das BL-Register braucht<br />

in diesen Modi nicht belegt zu werden. Obwohl in diesen Modi die Zeichenkette doppelt so groß wie die Anzahl der<br />

auszugebenden Zeichen ist, braucht im CX-Register nicht die Länge der Zeichenkette, sondern nur die Anzahl der<br />

auszugebenden ASCII-Zeichen abgespeichert werden.<br />

Die speziellen Steuercodes wie Bell und Carriage Return werden als Steuercodes und nicht als normale ASCII-Codes<br />

interpretiert. Wird die letzte Bildschirmposition erreicht, wird der Bildschirm um eine Zeile nach oben geschoben und mit der<br />

Ausgabe in der ersten Spalte der letzten Bildschirmzeile fortgefahren.<br />

Der Inhalt der Register BX, CX, DX und der Segmentregister SS, CS und DS wird durch diese Funktion nicht verändert. Der<br />

Inhalt aller anderen Register, vor allem der Register SI und DI, kann verändert werden.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!