Die Funktionen den Interruptes 10h (Video-BIOS) stellt die folgende
Tabelle dar:
| Funktion |
Unter- Funktion |
Bedeutung |
Eingabe |
Ausgabe |
BIOS - Implementierung |
Anmerkungen |
| 00h |
- |
Video - Modus setzen |
AH=00h
AL=Videomodus |
keine |
PC, XT, AT, PS/2 |
siehe hierzu: Video-Modi |
| 01h |
- |
Cursor - Größe |
AH=01h
CH=Startzeile
CL=Endzeile |
keine |
PC, XT, AT, PS/2 |
Die Angaben im CX-Register beziehen sich auf die logische Zeile eines Zeichens
(von oben). Der Bereich der Werte hängt von der Zeichengröße und der verwendeten
Videokarte ab. |
| 02h |
- |
Cursorposition ändern |
AH=02h
BH=Nummer der Bildschirmseite
DH=Zeile
DL=Spalte |
keine |
PC, XT, AT, PS/2 |
Liegt ein angegebener Bereich im Register DX nicht innerhalb einer sichtbaren
Position, kann der Cursor verschwinden. |
| 03h |
- |
Cursorposition lesen |
AH=03h
BH=Nummer der Bildschirmseite |
DH=Zeile
DL=Spalte
CH=Startzeile
CL=Endzeile |
PC, XT, AT, PS/2 |
Start- und Endzeile sind Werte entsprechend Funktion 01h. |
| 04h |
- |
Lichtstiftposition abfragen |
??? |
??? |
EGA |
Es lagen leider nicht genügend Informationen zu dieser Funktion
vor. |
| 05h |
- |
Bildschirmseite wählen |
AH=05h
AL=Nummer der Bildschirmseite |
keine |
PC, XT, AT, PS/2 |
Zulässige Werte sind von der installierten Videokarte abhängig |
| 06h |
- |
Rechteckigen Bereich des Bildschirms aufwärts rollen |
AH=06h
AL=Anzahl Zeilen
CH=obere Zeile
CL=linke Spalte
DH=untere Zeile
DL=rechte Spalte
BH=Attribut für neue Zeilen |
keine |
PC, XT, AT, PS/2 |
Wird für AL 0 übergeben, wird der ganze Bereich gelöscht. Die
Funktion bezieht sich immer auf die aktuelle Bildschirmseite. |
| 07h |
- |
Rechteckigen Bereich des Bildschirms abwärts rollen |
AH=07h
AL=Anzahl Zeilen
CH=obere Zeile
CL=linke Spalte
DH=untere Zeile
DL=rechte Spalte
BH=Attribut für neue Zeilen |
keine |
PC, XT, AT, PS/2 |
Wird für AL 0 übergeben, wird der ganze Bereich gelöscht. Die
Funktion bezieht sich immer auf die aktuelle Bildschirmseite. |
| 08h |
- |
Lesen eines Zeichens an der aktuellen Cursorposition |
AH=08h
BH=Nummer der Bildschirmseite |
AL=ASCII - Code des Zeichens
AH=Attribut des Zeichens |
PC, XT, AT, PS/2 |
- |
| 09h |
- |
Schreiben eines Zeichens |
AH=09h
BH=Nummer der Bildschirmseite
CX=Anzahl der Wiederholungen
AL=ASCII - Code
BL=Attribut / Farbe |
keine |
PC, XT, AT, PS/2 |
Es werden CX Zeichen ausgegeben. Steuercodes werden nicht berücksichtigt. Im
Grafikmodus erfolgt kein Zeilenumbruch, außerdem bedeutet ein gesetztes Bit 7 im Register BL,
daß die Zeichenfarbe mit dem aktuellen Zeichenmuster XOR-verknüpft wird. |
| 0Ah |
- |
Schreiben eines Zeichens |
AH=0Ah
BH=Nummer der Bildschirmseite
CX=Anzahl der Wiederholungen
AL=ASCII - Code
BL=Farbe im Grafikmodus |
keine |
PC, XT, AT, PS/2 |
Es werden CX Zeichen ausgegeben. Steuercodes werden nicht berücksichtigt. Im
Grafikmodus erfolgt kein Zeilenumbruch, außerdem bedeutet ein gesetztes Bit 7 im Register BL,
daß die Zeichenfarbe mit dem aktuellen Zeichenmuster XOR-verknüpft wird. |
| 0Bh |
00h |
Rahmen- / Hintergrundfarbe setzen |
AH=08h
BH=0
BL=Rahmen- / Hintergrundfarbe |
keine |
PC, XT, AT, PS/2 |
Im Textmodus wird nur der Bildschirmrahmen, im Grafikmodus der gesamte Bildschirm
bestimmt. |
| 0Bh |
01h |
Farbpalette wählen |
AH=0Bh
BH=1
BL=Nummer der Farbpalette |
keine |
PC, XT, AT, PS/2 |
Diese Funktion wählt eine der beiden Farbpaletten für den
320x200-Grafikmodus aus. |
| 0Ch |
- |
Bildpunkt setzen (Grafik-Modus) |
AH=0Ch
BH=Nummer der Bildschirmseite
DX=Zeile
CX=Spalte
AL=Farbe |
keine |
PC, XT, AT, PS/2 |
Der Wertebereich in BL ist abhängig vom momentanen Videomodus und gilt als
relativer Wert zur aktuellen Farbpalette. |
| 0Dh |
- |
Bildpunkt lesen (Grafik-Modus) |
Ah=0Dh
BH=Nummer der Bildschirmseite
DX=Zeile
CX=Spalte |
AL=Farbe |
PC, XT, AT, PS/2 |
Der Wertebereich in BL ist abhängig vom momentanen Videomodus und gilt als
relativer Wert zur aktuellen Farbpalette. |
| 0Eh |
- |
Zeichen an aktuelle Cursorposition schreiben und Position aktualisieren |
AH=0Eh
AL=ASCII - Code
BL=Farbe im Grafikmodus |
keine |
PC, XT, AT, PS/2 |
Als Farbe wird das aktuelle Attribut verwendet. Es erfolgt wenn nötig ein
Zeilenumbruch. Steuerzeichen werden als solche erkannt. |
| 0Fh |
- |
Video - Modus lesen |
AH=0Fh |
AL=Nummer des Video - Modus
AH=Anzahl der Zeichen pro Zeile
BH=Nummer der aktuellen Bildschirmseite |
PC, XT, AT, PS/2 |
siehe hierzu Tabelle 3: Video-Modi |
| 10h |
00h |
Palettenregister setzen |
AH=10h
AL=0
BL=Nummer des Palettenregisters
BH=Farbwert |
keine |
EGA, VGA, PS/2 |
Bestimmt den Farbwert eines Punktes in den 16-Farb-Modi. |
| 10h |
01h |
Rahmenfarbe setzen |
AH=10h
AL=1
BH=Farbwert |
keine |
EGA, VGA, PS/2 |
- |
| 10h |
02h |
Alle Palettenregister setzen |
AH=10h
AL=2
ES=Segmentadresse der Farbtabelle
DX=Offsetadresse der Farbtabelle |
keine |
EGA, VGA, PS/2 |
Verändert alle Palettenregister einschließlich des Rahmens. ES:DX zeigt
auf eine Tabelle mit 17 Einträgen für die Palettenregister. |
| 10h |
03h |
Hintergrund - Intensität / Blinkenattribut setzen |
AH=10h
AL=3
BL=Blink - Attribut (0: helle Hintergrundfarben, 1: Blinken) |
keine |
EGA, VGA, PS/2 |
Diese Funktion ermöglicht die Darstellung von 16 Hintergrundfarben und legt
damit fest, wie Bit 7 des Attribut - Bytes interpretiert wird. |
| 10h |
07h |
Palettenregister lesen |
AH=10h
AL=7
BL=Nummer des Palettenregisters |
BH=Farbwert |
VGA, PS/2 |
- |
| 10h |
08h |
Rahmenfarbe lesen |
AH=10h
AL=8 |
BH=Rahmenfarbe |
VGA, PS/2 |
- |
| 10h |
09h |
Alle Palettenregister lesen |
AH=10h
AL=9
ES=Segmentadresse der Farbtabelle
DX=Offsetadresse der Farbtabelle |
Farbtabelle in ES:DX |
VGA, PS/2 |
Gegenstück zu Unterfunktion 2h. |
| 10h |
10h |
DAC - Register setzen |
AH=10h
AL=10h
BX=Registernummer
CL=Blauanteil
CH=Grünanteil
DH=Rotanteil |
keine |
VGA, PS/2 |
Für die Farbwerte sind Werte zwischen 0 und 63 (6 Bit) zulässig. Die
VGA-Karte verwendet DAC (Digital - Analog - Converter) - Register, um digitale Farbsignale,
bestehend aus 18 Bit, in analoge Monitorsignale umzuwandeln. |
| 10h |
12h |
Mehrere DAC - Register setzen |
AH=10h
AL=12h
BX=Nummer des ersten Registers
CX=Anzahl der Register
ES=Segmentadresse der Farbtabelle
DX=Offsetadresse der Farbtabelle |
keine |
VGA, PS/2 |
Setzt CX DAC - Register mit den Werten aus dem Puffer, die in der Reihenfolge
Rot-Grün-Blau abgelegt sein müssen. |
| 10h |
13h |
Methode der Farbauswahl festlegen oder DAC - Register - Gruppe auswählen |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 10h |
15h |
DAC - Register lesen |
AH=10h
AL=15h
BX=Registernummer |
CL=Blauanteil
CH=Grünanteil
DH=Rotanteil |
VGA, PS/2 |
Farbwerte liegen zwischen 0 und 63. |
| 10h |
17h |
Mehrere DAC - Register lesen |
AH=10h
AL=17h
BX=Nummer des ersten Registers
CX=Anzahl Register
ES=Segmentadresse der Farbtabelle
DX=Offsetadresse der Farbtabelle |
Farbtabelle in ES:DX |
VGA, PS/2 |
- |
| 10h |
18h |
DAC - Mask - Register laden |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 10h |
19h |
Inhalt des DAC - Mask - Registers auslesen |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 10h |
1Ah |
Methode der Farbauswahl und Inhalt des Color - Select - Registers ermitteln |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 10h |
1Bh |
Inhalt der DAC - Farbregister in Grauwerte umwandeln |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 11h |
00h |
Zeichensatz laden |
AH=11h
AL=0
BH=Byte pro Zeichen
BL=Zeichentabelle (0 oder 1)
CX=Zeichenzahl
DX=ASCII - Code des ersten Zeichens
ES=Segmentadresse der Zeichentabelle
Offsetadresse der Zeichentabelle |
keine |
EGA, VGA, PS/2 |
Lädt einen benutzerdefinierten Zeichensatz in den Grafikspeicher der
Videokarte. Der Zeichensatz wird nicht aktiviert, die Größe der Zeichen nicht der
Bildschirmdarstellung angepaßt. |
| 11h |
01h |
8*14 - Zeichensatz laden |
AH=11h
AL=1
BL=Zeichentabelle |
keine |
EGA, VGA, PS/2 |
Lädt 8*14 - Zeichensatz, aktiviert ihn aber nicht. |
| 11h |
02h |
8*8 - Zeichensatz laden |
AH=11h
AL=2
BL=Zeichentabelle |
keine |
EGA, VGA, PS/2 |
Lädt 8*8 - Zeichensatz, aktiviert ihn aber nicht. |
| 11h |
03h |
Zeichensatz aktivieren |
AH=11h
AL=3
BL=Nummer des Zeichensatzes |
keine |
EGA, VGA, PS/2 |
Diese Funktion aktiviert einen der vier Zeichensätze. |
| 11h |
04h |
8*16 - Zeichensatz laden |
AH=11h
AL=4
BL=Zeichentabelle |
keine |
VGA, PS/2 |
Lädt 8*16 - Zeichensatz, aktiviert ihn aber nicht. |
| 11h |
10h |
Zeichensatz laden & aktivieren |
AH=11h
AL=10h
BH=Byte pro Zeichen
BL=Zeichentabelle (0 oder 1)
CX=Zeichenzahl
DX=ASCII - Code des ersten Zeichens
ES=Segmentadresse der Zeichentabelle
BP=Offsetadresse der Zeichentabelle |
keine |
EGA, VGA, PS/2 |
Lädt einen benutzerdefinierten Zeichensatz in den Grafikspeicher der
Videokarte. Der Zeichensatz wird aktiviert und die Größe der Zeichen der
Bildschirmdarstellung angepaßt. |
| 11h |
11h |
8*14 - Zeichensatz aktivieren |
AH=11h
AL=11h
BL=Zeichentabelle |
keine |
VGA, PS/2 |
Lädt den 8*14 - Zeichensatz und aktiviert ihn. Die VGA - Karte schaltet dazu
in den 28 - Zeilen - Modus. |
| 11h |
12h |
8*8 - Zeichensatz aktivieren |
AH=11h
AL=12h
BL=Zeichentabelle |
keine |
EGA, VGA, PS/2 |
Lädt den 8*8 - Zeichensatz und aktiviert ihn. Die VGA - Karte schaltet dazu
in den 50 - Zeilen - Modus (EGA 43). |
| 11h |
14h |
8*16 - Zeichensatz aktivieren |
AH=11h
AL=14h
BL=Zeichentabelle |
keine |
VGA, PS/2 |
Lädt den 8*16 - Zeichensatz und aktiviert ihn. |
| 11h |
30h |
Zeichensatz - Informationen |
AH=11h
AL=30h
BH=Zeichensatz |
CX=Bytes pro Zeichen
DL=Anzahl der Bildschirmzeilen
ES=Segmentadresse der Zeichentabelle
BP=Offsetadresse der Zeichentabelle |
EGA, VGA, PS/2 |
Informationen über einen Zeichensatz, dessen Code Sie in BH übergeben
haben (Tabelle mit den gültigen Werten folgt am Ende dieser
Tabelle). |
| 12h |
10h |
EGA - Konfiguration ermitteln |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 12h |
20h |
alternative Hardcopy - Routine aktivieren |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 12h |
30h |
Anzahl der Bildschirmzeilen (Scan - Lines) festlegen |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 12h |
31h |
Laden der Standard-Palette |
AH=12h
BL=31h
AL=Modus (0: automatisches Laden erlauben; 1: dto. verbieten) |
AL=12h |
VGA, PS/2 |
Legt fest, ob bei der Umschaltung des Videomodus mit Funktion 00h die
Palettenregister mit den Standardwerten geladen werden. |
| 12h |
32h |
Zugriff auf Video - RAM |
AH=12h
BL=32h
AL=Modus (0: erlauben; 1: verbieten) |
keine |
VGA, PS/2 |
Legt fest, ob der CPU ein Zugriff auf das Video - RAM oder Hardware - Register
gestattet wird. |
| 12h |
33h |
Automatische Grau-Umwandlung der DAC - Farbregister an- / ausschalten |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 12h |
34h |
Cursor - Emulation an- / ausschalten |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 12h |
36h |
Bildschirm dunkelschalten |
AH=12h
BL=36h
AL=Modus (0: Bildschirm an; 1: Bildschirm aus) |
keine |
VGA, PS/2 |
Ermöglicht es, den Bildschirmaufbau zu unterdrücken und damit den
Bildschirm dunkelzuschalten. |
| 13h |
- |
Textausgabe |
AH=13h
AL=Modus
BL=Attribut
BH=Bildschirmseite
CX=Anzahl Zeichen
DH=Zeile
DL=Spalte
ES=Segmentadresse des Puffers
BP=Offsetadresse des Puffers |
keine |
EGA, VGA, PS/2 |
Gibt eine Zeichenkette entsprechend dem in AL gesetzten Modus (Tabelle mit den gültigen Modi unter dieser Tabelle) aus. Steuercodes werden
interpretiert. Der Bildschirm wird bei Bedarf automatisch gerollt. |
| 14h |
- |
reserviert |
- |
- |
- |
- |
| 15h |
- |
reserviert |
- |
- |
- |
- |
| 16h |
- |
reserviert |
- |
- |
- |
- |
| 17h |
- |
reserviert |
- |
- |
- |
- |
| 18h |
- |
reserviert |
- |
- |
- |
- |
| 19h |
- |
reserviert |
- |
- |
- |
- |
| 1Ah |
00h |
Primären und sekundären Video - Adapter ermitteln |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 1Ah |
01h |
Primären und sekundären Video - Adapter einstellen |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 1Bh |
- |
Statusinformationen über den Video-Modus und das VGA-BIOS einholen |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 1Ch |
00h |
Größe der Save - Area abfragen |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 1Ch |
01h |
Video - Status sichern |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
| 1Ch |
02h |
Video - Status restaurieren |
??? |
??? |
??? |
Zu dieser Funktion standen leider nicht genügend Informationen zur
Verfügung. |
Die Funktionen können mit dem Turbo-Pascal-eigenen Assembler
aufgerufen werden. Ein Anwendungsbeispiel könnte so aussehen:
Generell wird im Register AH die Funktionsnummer übergeben.
Wichtig: Bei Zugriffen auf das Video-BIOS, welche nicht von jeder Grafikkarte
unterstützt werden (z.B. Zugriffe auf den DAC), muß unbedingt vorher eine
Überprüfung stattfinden, ob der Computer diese unterstützt. Sonst kann es eventuell
zu Schäden, in den meisten Fällen aber zumindest zum Systemabsturz kommen.
Alle Angaben ohne Gewähr.