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 - 46 - Prof. Dipl.-Ing. Komar<br />

Nur die aktuelle Bildschirmseite kann mit dieser Funktion beeinflußt werden.<br />

Das Löschen des Bildschirmbereichs (Anzahl Zeilen = 0) kommt einem Füllen mit Leerzeichen (ASCII-Code 32) gleich.<br />

Der Inhalt der aus dem Fenster herausgescrollten Zeilen ist unwiederbringbar verloren und kann nicht wieder zurückgeholt<br />

werden.<br />

Um den gesamten Bildschirm zu löschen, kann man sich besser der Funktion 0 dieses Interrupts bedienen.<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 worden sein.<br />

Interrupt 10h, Funktion 08h Bildschirm: Auslesen <strong>eines</strong> Zeichens/Farbe<br />

Der ASCII-Code des Zeichens an der aktuellen Cursor-Position und dessen Farbe (Attribut) werden ausgelesen.<br />

Eingabe AH = 08h<br />

BH = Nummer der Bildschirmseite<br />

Ausgabe AL = ASCII-Code des Zeichens<br />

AH = Farbe (Attribut)<br />

Die Nummer der Bildschirmseite ist auch davon abhängig, wie viele Bildschirmseiten von der Videokarte zur Verfügung<br />

gestellt werden.<br />

Diese Funktion kann auch im Grafikmodus aufgerufen werden, wobei dann das Bitmuster des Zeichens auf dem Bildschirm<br />

mit den Bitmustern der Zeichen im Zeichen-ROM der Videokarte und den Zeichenmustern, die in einer RAM-Tabelle gespeichert<br />

sind, deren Adresse der Interrupt 1Fh enthält, verglichen werden. Kann das Zeichen dabei nicht identifiziert<br />

werden, enthält das AL-Register nach dem Funktionsaufruf den Wert 0.<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 worden sein.<br />

Interrupt 10h, Funktion 09h Bildschirm: Schreiben <strong>eines</strong> Zeichens/Farbe<br />

Ein Zeichen mit einer bestimmten Farbe wird an die aktuelle Cursor-Position (in einer vorgegebenen Bildschirmseite)<br />

geschrieben.<br />

Eingabe AH = 09h<br />

BH = Nummer der Bildschirmseite<br />

CX = Anzahl, wie oft das Zeichen hintereinander geschrieben werden soll<br />

AL = ASCII-Code des Zeichens<br />

BL = Farbe/Attribut<br />

Ausgabe keine Ausgabe<br />

Soll das angegebene Zeichen mehrmals ausgegeben werden (in dem Fall ist der Wert des CX-Registers größer 1), müssen im<br />

Grafikmodus alle Zeichen in die aktuelle Bildschirmzeile passen.<br />

Die Steuercodes Bell, Carriage Return usw. werden nicht als solche erkannt, sondern als normale ASCII-Codes ausgegeben.<br />

Mit dieser Funktion können auch Zeichen im Grafikmodus ausgegeben werden, wobei die Zeichenmuster der Zeichen mit<br />

den Codes 0 bis 127 aus einer Tabelle im ROM und die Zeichenmuster der Zeichen 128 bis 255 aus einer RAM-Tabelle<br />

ermittelt werden, die zuvor mit dem DOS-Befehl GRAFTABL installiert werden muß.<br />

Im Textmodus definiert der Inhalt des BL-Registers das Attribut-Byte des Zeichens. Im Grafikmodus bestimmt es die Farbe<br />

des Zeichens. Dabei sind im 640*200-Punkte-Modus nur die Werte 0 und 1, im 320*200-Punkte-Modus die Werte 0 bis 3 für<br />

die verschiedenen Farben der angewählten Farbpalette möglich.<br />

Ist der Grafikmodus während der Zeichenausgabe aktiv, und ist das Bit 7 des BL-Registers gesetzt, so wird das<br />

Zeichenmuster mit den Grafikpunkten unter diesem Zeichen durch ein Exklusiv-Oder verkn üpft.<br />

Der Cursor wird durch diese Funktion nicht auf die nächste Bildschirmposition versetzt.<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 0Ah Bildschirm: Schreiben <strong>eines</strong> Zeichens<br />

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

alten Zeichens an dieser Bildschirmposition beibehalten wird.<br />

Eingabe AH = 0Ah<br />

BH = Nummer der Bildschirmseite<br />

CX = Anzahl, wie oft das Zeichen hintereinander geschrieben werden soll<br />

AL = ASCII-Code des Zeichens<br />

Ausgabe keine Ausgabe<br />

Soll das angegebene Zeichen mehrmals ausgegeben werden (in dem Fall ist der Wert des CX-Registers größer 1), müssen im<br />

Grafikmodus alle Zeichen in die aktuelle Bildschirmzeile passen.<br />

Die Steuercodes Bell, Carriage Return usw. werden nicht als solche erkannt, sondern als normale ASCII-Codes ausgegeben.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!