Home Programmierung
und BIOS
Shareware-
FAQ
Kontakt u.
Infos

Der BIOS-Datenbereich

Im Bereich 00400 - 004FF (0040:0000 - 0040:00FF) sind die vom BIOS benötigten Daten gespeichert. Zwischen einzelnen BIOS-Versionen des gleichen Herstellers und zwischen den BIOSen unterschiedlicher Hersteller können Unterschiede bei der Belegung der einzelnen Zellen auftreten.
Die Werte können in Pascal relativ einfach mittels der Funktion MEM bzw. MEMW ausgelesen werden.

Adresse (Offset; im Segment $0040) Größe enthält
0000 1 Wort Port-Adresse COM1
0002 1 Wort Port-Adresse COM2
0004 1 Wort Port-Adresse COM3
0006 1 Wort Port-Adresse COM4
0008 1 Wort Port-Adresse LPT1
000A 1 Wort Port-Adresse LPT2
000C 1 Wort Port-Adresse LPT3
000E 1 Wort Port-Adresse LPT4 / nicht verwendet
0010 1 Wort System-Status, u.a.:
Bit 1: Coprozessor gefunden? (ab AT)
0012 1 Byte POST-Status #1 / nicht verwendet
0013 1 Wort Speichergröße in KByte
0015 1 Wort POST-Status #2 / nicht verwendet
0017 1 Byte Tastenfeldstatus 1:
Bit 0: rechte Shift-Taste gedrückt?
Bit 1: linke Shift-Taste gedrückt?
Bit 2: Strg gedrückt?
Bit 3: Alt gedrückt?
Bit 4: Rollen an/aus (1/0)
Bit 5: Num-Lock an/aus
Bit 6: Caps-Lock an/aus
Bit 7: Einfg an/aus
0018 1 Byte Tastenfeldstatus 2:
Bit 0: linke Strg-Taste wird betätigt
Bit 1: linke Alt-Taste wird betätigt
Bit 2: Taste System-Abfrage (SysReq) wird betätigt
Bit 3: Pausenmodus an/aus
Bit 4: Untbr wird betätigt
Bit 5: Num wird betätigt
Bit 6: Caps wird betätigt
Bit 7: Einfg wird betätigt
0019 1 Byte ASCII-Code bei Eingabe über Alt+Ziffern
001A 1 Wort zeigt auf das Offset des nächsten Zeichens im Tastaturpuffer
001C 1 Wort zeigt auf das Offset des letzten Zeichens im Tastaturpuffer
001E 32 Byte Tastaturpuffer, pro Zeichen zwei Bytes
003E 1 Byte Floppy Rekalibrierung
003F 1 Byte Floppy Motor Status
Bit 0: Floppy #1 läuft
Bit 1: Floppy #2 läuft
Bit 2: Floppy #3 läuft
Bit 3: Floppy #4 läuft
Bit 7: 1=Schreib- oder Formatierzugriff, 0=Lese- oder Suchzugriff
0040 1 Byte Floppy Motor-Aus Zähler
0041 1 Byte Floppy Status der letzten Operation:
00: alles ok
01: unbekannte Funktion
02: Adresse nicht gefunden
03: Schreibschutz-Fehler
04: Sektor nicht gefunden
06: keine Verbindung zum Laufwerk
08: DMA-Fehler #1
09: DMA-Fehler #2
0C: unbekanntes Diskettenformat
10: Prüfsummen-Fehler beim Lesen
20: Controller-Fehler
40: Seek-Fehler
80: Laufwerk nicht bereit
0042 7 Byte Floppy Controller Status Bytes
0049 1 Byte aktueller Video-Modus:
00: Text 40x25, 16 Farben
01: Text 40x25, 16 Farben (CGA)
02: Text 80x25, 16 Farben
03: Text 80x25, 16 Farben (CGA)
04: Grafik 320x200, 4 Farben (CGA)
05: Grafik 320x200, 4 Farben
06: Grafik 640x200, 2 Farben
07: Text 80x25, monochrom
0D: Grafik 320x200, 16 Farben
0E: Grafik 640x200, 16 Farben
0F: Grafik 640x350, monochrom
10: Grafik 640x350, 16 Farben
11: Grafik 640x480, 2 Farben
12: Grafik 640x480, 16 Farben
13: Grafik 320x200, 256 Farben
004A 1 Wort Anzahl der Zeichen pro Zeile (Spalten)
004C 1 Wort Größe der aktuellen Bildschirmseite in Bytes
004E 1 Wort Adresse des Bildschirmspeichers relativ zum Video-RAM
0050 16 Byte Cursorposition (8x 2 Byte für 8 Seiten)
0060 2 Byte End- und Startzeile des Cursors im Zeichenraster (0-7 Farbe bzw. 0-14 Monochrom)
0062 1 Byte Aktive Bildschirmseite
0063 1 Wort Port-Adresse des Video-Controllers
0065 1 Byte Videomodus-Register der Grafikkarte
0066 1 Byte aktuelle Farbpalette
0067 5 Byte nicht verwendet
006C 1 DWort Zähler der Systemuhr; dieses Doppelwort wird bei jedem Timer-Aufruf (ca. 18mal pro Sekunde) erhöht; alle 24 Stunden wird es auf Null gesetzt.
0070 1 Byte Zeitgeber-Überlauf; wird alle 24 Stunden erhöht
0071 1 Byte Status Break Taste; bei Strg+Untbr wird Bit 7 gesetzt
0072 1 Wort Warmstart-Flag für Strg-Alt-Entf; beim Booten erfolgt kein Speichertest, wenn dort 1234h eingetragen ist
0074 1 Byte Ergebnis der letzten Festplatten-Operation (nur AT):
01: Laufwerk nicht gefunden / unbekannte Funktion
02: Adresse nicht gefunden
04: Sektor nicht gefunden
05: Fehler beim Controller-Reset
07: Fehler beim Controller-Init
09: DMA-Fehler
0A: Sektor kaputt
0B: Spur kaputt
0D: Anzahl der Sektoren pro Spur ungültig
0E: Adresse nicht gefunden
0F: DMA-Fehler
10: Lese-Fehler
11: korrigierter Lese-Fehler
20: Controller-Fehler (kaputt?)
40: Suche gescheitert
80: Laufwerk reagiert nicht
AA: Laufwerk nicht bereit
CCH: Schreibfehler
0075 1 Byte Anzahl der Festplatten (nur AT)
0076 1 Byte Festplatten-Kontrollbyte (nur AT)
0077 1 Byte Port-Adresse Festplatte (nur AT)
0078 1 Byte LPT1 Timeout Wert
0079 1 Byte LPT2 Timeout Wert
007A 1 Byte LPT3 Timeout Wert
007B 1 Byte LPT4 Timeout Wert / nicht verwendet
007C 1 Byte COM1 Timeout Wert
007D 1 Byte COM2 Timeout Wert
007E 1 Byte COM3 Timeout Wert
007F 1 Byte COM4 Timeout Wert
0080 1 Word Zeiger auf Anfang Tastaturpuffer (nur AT)
0082 1 Word Zeiger auf Ende Tastaturpuffer (nur AT)
0084 1 Byte Zahl der Videozeilen - 1 (nur EGA/VGA)
0085 1 Byte Punktzeilen pro Zeichen (nur EGA/VGA)
0087 4 Byte EGA-/VGA-Status-Bereich (Herstellerabhängig)
008B 1 Byte Floppy Daten und Schritt-Rate (nur PS/2)
008C 1 Byte Festplatten Controller-Status (nur PS/2)
008D 1 Byte Festplatten Fehler-Status (nur PS/2)
008E 1 Byte Festplatten Interrupt-Control (nur PS/2)
008F 1 Byte nicht verwendet (nur PS/2)
0090 1 Byte Medium in Laufwerk 0 (nur PS/2)
0091 1 Byte Medium in Laufwerk 1 (nur PS/2)
0092 2 Byte nicht verwendet (nur PS/2)
0094 1 Byte Augenblickliche Spur in Laufwerk 0 (nur PS/2)
0095 1 Byte Augenblickliche Spur in Laufwerk 1 (nur PS/2)
0096 1 Byte Tastenfeldstatus 3 (nur AT):
Bit 0: Pause-Modus aktiv
Bit 2: rechte Strg-Taste betätigt
Bit 3: rechte Alt-Taste betätigt
Bit 4: Keyboard mit 101/102 Tasten?
0097 1 Byte Status Tastenfeld-LED (nur AT):
Bit 0: Scoll-Lock-LED
Bit 1: Num-Lock-LED
Bit 2: Caps-Lock-LED
0098 1 DWort Zeiger auf Wait-Flag (nur AT)
009C 1 DWort Zeit-Zähler (nur AT)
00A0 1 Byte Wait-Status
00A1 95 Byte reserviert (herstellerabhängig belegt)
0100 1 Byte HardCopy-Status:
00: alles ok
01: aktiv (druckt gerade)
FF: Fehler beim Drucken

Alle Angaben ohne Gewähr.

Achtung: bitte Hinweise zur Aktualitšt der Daten beachten! Copyright