Zuerst werden die Funktionen der verschiedenen Software-BIOS-Interrupts vorgestellt, danach die Funktionen, die der sogenannte DOS-Interrupt (Interrupt 21h) bietet und danach die Funktionen des Mouse-Interrupts 33h
Einige Funktionen bieten Unterfunktionen. Dies drückt sich darin aus, daß die
Hauptfunktionsnummer immer die gleiche bleibt und in einem weiteren Register
die Unterfunktionsnummer steht.
In den Tabellen sollten Sie sich nicht davon verwirren lassen, daß mehrfach
nacheinander die gleiche Hauptfunktionsnummer auftaucht, die entscheidende
Unterfunktionsnummer steht dann in der zweiten Spalte.
Funktion | Bedeutung und Eingabe | Ausgabe und Kommentar |
---|---|---|
00h | Video-Modus setzen AL: Modusnummer |
keine; Videomodi siehe nächste Tabelle |
01h | Cursorgröße einstellen CH: Startzeile CL: Endzeile |
keine; Bei VGA-Karten nur im Bereich von 00h bis 0Dh |
02h | Cursor positionieren BH: Videoseite DL: Cursorspalte DH: Cursorzeile |
keine; Die Zählung beginnt in der linken oberen Ecke mit 0,0 Bei Werten oberhalb der eigentlich möglichen kann der Cursor verschwinden |
03h | Cursorposition und Größe lesen BH: Videoseite |
DL: aktuelle Spalte
DH: aktuelle Zeile CH: Startzeile CL: Endzeile |
04h | Lichtgriffel lesen | AH: Erfolgskennzeichen (00h=kein Lichtgriffel, 01h=Griffel
angeschlossen DL: Textspalte Lichtgriffel DH: Textzeile Lichtgriffel BX: Grafikspalte Lichtgriffel CH: Grafikzeile Lichtgriffel |
05h | Videoseite wählen AL: Seitennummer |
keine; Die Videoseitenzählung beginnt bei 0 (Null) Standardmäßig ist Seite 0 eingeblendet |
06h | Aufwärts rollen AL: Anzahl Zeilen CL: Spalte oben links CH: Zeile oben links DL: Spalte unten rechts DH: Zeile unten rechts BH: Attribut |
keine Innerhalb des gewählten Fensters werden die Zeilen nach oben verschoben. Für jede Zeile, die oben aus diesem Bereich verschwindet wird unten eine leere Zeile eingefügt. Das Attribut bestimmt das Aussehen der neu hinzukommenden Zeilen. Wird für die Zeilenanzahl der Wert 0 (Null) gewählt, dann wird der Bereich gelöscht und entsprechend dem Attrubut eingefärbt |
07h | Abwärts rollen AL: Anzahl Zeilen CL: Spalte oben links CH: Zeile oben links DL: Spalte unten rechts DH: Zeile unten rechts BH: Attribut |
keine Innerhalb des gewählten Fensters werden die Zeilen nach unten verschoben. Für jede Zeile, die unten aus diesem Bereich verschwindet wird oben eine leere Zeile eingefügt. Das Attribut bestimmt das Aussehen der neu hinzukommenden Zeilen. Wird für die Zeilenanzahl der Wert 0 (Null) gewählt, dann wird der Bereich gelöscht und entsprechend dem Attribut eingefärbt |
08h | Zeichen an der aktuellen Position lesen BH: Videoseite |
AL: ASCII-Code des Zeichens AH: Attribut des Zeichens |
09h | Zeichen und Attribut setzen BH: Videoseite AL: ASCII-Code des Zeichens BL: Attribut CX: Zeichenzahl |
keine; Steuercodes werden angezeigt; Cursorposition wird nicht verändert; Zeichenzahl gibt an, wie oft das Zeichen geschrieben wird |
0Ah | Zeichen wiederholt setzen BH: Videoseite AL: ASCII-Code des Zeichens CX: Zeichenzahl |
keine; Steuercodes werden angezeigt Cursorposition wird nicht verändert |
0Bh | Hintergrundfarbe setzen BH: 00h BL: Rahmen/Hintergrundfarbe |
keine |
0Bh | Farpalette wählen BH: 01h BL: Palettennummer |
keine |
0Ch | Pixel setzen CX: Grafikspalte DX: Grafikzeile AL: Farbwert |
keine; Farbwert gilt nur relativ innerhalb einer Palette, nicht absolut |
0Dh | Pixel lesen BH: Videoseite CX: Grafikspalte DX: Grafikzeile |
AL: Farbwert; Wenn AL=00h dann hat der Punkt die Hintergrundfarbe, ist also gelöscht |
0Eh | Zeichen im TTY-Modus schreiben BH: Videoseite (0 zeigt Grafik) AL: ASCII-Code des Zeichens BL: Vordergrundfarbe (nur Grafik) |
keine; Steuercodes werden ausgeführt, es werden nur Zeichen geschrieben |
0Fh | Videostatus lesen | AL: Videomodusnummer AH: Anzahl Zeichen je Zeile BH: aktuelle Videoseite |
10h | verändere Palette-Register AL: 00h BL: Plettennummer BH: Videoseite |
keine |
10h | Rahmenfarbe wählen AL: 01h BH: Farbwert |
keine |
10h | alle Palettenregister und Rahmenfarbe setzen AL: 02h ES:DX: Adresse Parametertabelle |
keine |
10h | Hintergrundintensität setzen AL: 03h BL: Intensitätsbit |
keine; Wenn BL=1 dann gilt Attributbit 7 als Blinkbit, sonst HiColor |
10h | Palettenregister auslesen AL: 07h BL: Palettennumer |
BH: Farbwert |
10h | Rahmenfarbe lesen AL: 08h |
BH: Rahmenfarbe |
10h | AL: 09h ES:DX: Adresse einer 17-Byte-Parametertabelle |
die ersten 16 Werte := Farbregistern, der 17. := Rahmenfarbe |
10h | DAC-Farbregister setzen AL: 10h BX: Registernummer CL: Blauanteil CH: Grünanteil DH: Rotanteil |
keine |
10h | mehrere DAC-Farbregister setzen AL: 12h BX: Nummer des ersten Farbregisters CX: Registeranzahl ES:DX: Adresse einer Parametertabelle |
keine; Ausgehend vom ersten Register in BX werden CX Farbregister mit neuen Werten belegt |
10h | Internes Register setzen AL: 13h BL: Registerauswahl BH: Wert für Register oder Bit |
keine |
10h | DAC-Farbregister lesen AL: 15h BX: Registernummer |
CL: Blauanteil CH: Grünanteil DH: Rotanteil |
10h | Mehrere DAC-Register lesen AL: 17h BX: Nummer des ersten Registers CX: Registeranzahl ES:DX: Adresse Parametertabelle |
keine |
10h | DAC-Maskierungsregister setzen AL: 18h BL: neuer Wert |
keine |
10h | DAC-Maskierungsregister lesen AL: 19h |
BL: Wert des Maskierungsregisters |
10h | Interne Register lesen AL: 1Ah |
BL: Bit 7 des Modus-Registers BH: Bits des Farbauswahlregisters |
10h | Graustufen zuordnen AL: 1Bh BX: 1. Farbregister CX: Anzahl Farbregister |
keine |
11h | Lade Zeichensatz mit Reset AL: 00h BH: Byteanzahl je Zeichen BL: Blocknummer CX: Zeichenanzahl DX: Videospeicheroffset ES:BP: Adresse Zeichensatz |
Blocknummer ist die Zahl, ab der der neue Zeichensatz den alten
substituieren soll; max 32 Bytes je Zeichen |
11h | Monochromzeichensatz mit Reset laden AL: 01h BL: Blocknummer |
lädt den 9x14-Zeichensatz |
11h | 8x8-Zeichensatz mit Reset laden AL: 02h BL: Blocknummer |
keine |
11h | Zeichensatz auswählen AL: 03h BL: Wert für Character-Map-Select-Register |
Bits 5/3/2: Zeichensatz Bits 4/1/0: Zeichensatz A Bits 6/7: nicht belegt |
11h | 8x16-Zeichensatz mit Reset laden AL: 04h BL: Blocknummer |
keine |
11h | Zeichensatz laden AL: 10h BH: Bytes je Zeichen BL: Blocknummer CX: Zeichenanzahl ES:BP: Adresse Zeichensatz |
keine |
11h | Monochrom-Zeichensatz setzen AL: 11h BL: Blocknummer |
keine |
11h | 8x8-Zeichensatz setzen AL: 12h BL: Blocknummer |
keine |
11h | 8x16-Zeichensatz setzen AL: 14h BL: Blocknummer |
keine |
11h | Benutzerzeichensatz für Int 1Fh einrichten AL: 20h ES:BP: Adresse Zeichensatz |
keine; Zeichensatzdefinition für Zeichen 128-255, nur Videomodi 4,5 und 6 |
11h | Benutzerzeichensatz einrichten AL: 21h BL: Bildschirmzeilen CX: Bytezahl je Zeichen DL: Zeilenanzahl ES:BP: Adresse Zeichensatz |
keine |
11h | 8x14-Zeichensatz für Grafikmodus setzen AL: 22h BL: Zeilenzahl DL: Anzahl Bildschirmseiten |
keine |
11h | 8x8-Zeichensatz in doppelter Dichte setzen AL: 23h BL: Zeilenzahl DL: Anzahl Bildschirmseiten |
keine |
11h | 8x16-Zeichensatz für Grafikmodus setzen AL: 24h BL: Zeilenzahl DL: Anzahl Bildschirmseiten |
keine |
11h | Zeichensatzinformationen auslesen AL: 30h BH: Zeichensatz (Codierung siehe außerhalb der Tabelle) |
CX: Byte je Zeichen DL: Anzahl Bildschirmzeilen ES:BP: Adresse Zeichensatz |
12h | Hardcopy-Routine festlegen BL: 20h AL: 00h |
keine |
12h | Rasterzeilen festlegen BL: 30h AL: Rasterzeilenzahl (Angabe: 0/1/2=2007350/400 Rasterzeilen) |
AL: Fehlercode(12h=fehlerfrei) |
12h | Laden der Standardpalette erlauben/verbieten BL: 31h AL: 0/1 = erlauben/verhindern |
AL: Fehlercode(12h=fehlerfrei) |
12h | Bildschirmzugriff ein/ausschalten BL: 32h AL: 0/1 = ein/aus |
AL: Fehlercode(12h=fehlerfrei) |
12h | Graustufenumwandlung ein/ausschalten BL: 33h AL: 0/1 = ein/aus |
AL: Fehlercode(12h=fehlerfrei) |
12h | Bildschirmumschaltung BL: 35h AL: Modus |
schaltet zwischen 2 Grafikkarten um; nur PS/2 |
12h | Monitor ein/ausschalten BL: 36h AL: 0/1 = ein/aus |
AL: Fehlercode |
13h | Textstring ausgeben AL: Ausgabemodus BL: Zeichenattribut CX: Stringlänge DL: Textspalte DH: Textzeile BH: Videoseite ES:BP: Adresse des Strings |
Modus: 0=Attribut in BL, Cursorpos. nicht ändern 1=Attribut in BL, Cursorposition ändern 2=Attribut im String enthalten, Cursorpos. nicht ändern 3=Attribut im String enthalten, Cursorposition ändern |
1Ah | Grafikkarte ermitteln AL: 00h |
BL: aktive Grafikkarte BH: passive Grafikkarte |
1Ah | aktuelle Grafikkarte setzen AL: 01h BL/BH: aktive/passive Grafikkarte |
wenn korrekt verlaufen dann AL= 1AH |
1Bh | Video-BIOS-Informationen lesen BX: 00h ES:DI: Adresse eines 64-Byte-Puffers |
wenn korrekt verlaufen dann AL=1Bh |
1Ch | Puffergröße für Zustandinformationen durch Unterfunktion 01h
ermitteln AL: 00h CX: Bereich (0=Hardwarestatus, 1=BIOS-Datenbereich, 2=DAC-Status) |
AL: Fehlercode (1CH=kein Fehler) BX: Puffergröße in Einheiten zu 64 Bytes |
1Ch | Zustand lesen AL: 01h CX: Bereich ES:BX: Pufferadresse |
AL: Fehlercode (1CH=kein Fehler) |
1Ch | Zustand setzen AL: 02h CX: Bereich |
AL: Fehlercode (1CH=kein Fehler) |
Video-Modus | Auflösung | Anzahl Farben | Grafikkarten |
---|---|---|---|
00h | Text (40x25) | 2 | CGA, EGA, MCGA, VGA |
01h | Text (40x25) | 16 | CGA, EGA, MCGA, VGA |
02h | Text (80x25) | 2 | CGA, EGA, MCGA, VGA |
03h | Text (80x25) | 16 | CGA, EGA, MCGA, VGA |
04h | Grafik (320x200) | 2 | CGA, EGA, MCGA, VGA |
05h | Grafik (320x200) | 4 | CGA, EGA, MCGA, VGA |
06h | Grafik (640x200) | 2 | CGA, EGA, MCGA, VGA |
07h | Text (80x25) | 2 | MDA, HERCULES |
0Dh | Grafik (320x200) | 16 | EGA, VGA |
0Eh | Grafik (640x200) | 16 | EGA, VGA |
0Fh | Grafik (640x350) | 2 | EGA, VGA |
10h | Grafik (640x350) | 16 | EGA, VGA |
11h | Grafik (640x480) | 2 | MCGA, VGA |
12h | Grafik (640x480) | 16 | VGA |
13h | Grafik (320x200) | 256 | MCGA, VGA |
Palette 0 | Palette 1 | Palette 2 | Palette 3 |
---|---|---|---|
Grün | Türkis | Hellgrün | Helltürkis |
Rot | Magenta | Hellrot | Lila |
Braun | Hellgrau | Gelb | Weiß |
Code | Zeichensatz |
---|---|
00h | Zeichensatz von Interrupt 1Fh |
01h | Zeichensatz von Interrupt 43h |
02h | 8x14 ROM-Zeichensatz |
03h | 8x8 ROM-Zeichensatz für ASCII 00h bis 79h |
04h | 8x8 ROM-Zeichensatz für ASCII 80h bis FFh |
05h | 9x14 ROM-Zeichensatz |
06h | 8x16 ROM-Zeichensatz |
07h | 9x16 ROM-Zeichensatz |
Wert | Grafikkarte |
---|---|
00h | keine Karte |
01h | MDA |
02h | CGA |
04h | EGA mit Farbmonitor |
05h | EGA mit Schwarz-Weiß-Monitor |
06h | EGA |
07h | VGA mit analogem Schwarz-Weiß-Monitor |
08h | VGA mit analogem Farbmonitor |
0Ah | MCGA mit digitalem Farbmonitor |
0Bh | MCGA mit analogem Schwarz-Weiß-Monitor |
0Ch | MCGA mit analogem Farbmonitor |
0Fh | unbekannte Werte |
Offset | Datentyp | Bedeutung |
---|---|---|
00h | DWord | Adresse der Modusinformationstabelle |
04h | Byte | Aktueller Videomodus |
05h | Word | Anzahl dargestellter Zeichenspalten |
07h | Word | Länge des dargestellten Bereiches des Bildschirmspeichers |
09h | Word | Startadresse der Bildschirminfos im Bildschirmspeicher |
0Bh | 16 Bytes | Tabelle der Cursorpositionen (X;Y) für 8 Videoseiten |
1Bh | Byte | Startzeile der Cursordarstellung |
1Ch | Byte | Endzeile der Cursordarstellung |
1Dh | Byte | aktuelle Bildschirmseite |
1Eh | Word | Port-Adresse des CRTC-Registers |
20h | Byte | Inhalt des Modusregisters des CRTC |
21h | Byte | Inhalt des Palettenregisters des CRTC |
22h | Byte | Anzahl der dargestellen Zeichenzeilen |
23h | Word | Höhe eines Zeichens in Scanzeilen |
25h | Byte | Aktive Videokarte |
26h | Byte | Passive Videokarte |
27h | Word | Anzahl gleichzeitig dargestellter Farben |
29h | Byte | Anzahl möglicher Bildschirmseiten |
2Ah | Byte | Scan-Zeilen des akt. Videomodus: 0 = 200 Zeilen, 1 = 350 Zeilen, 2 = 400 Zeilen, 3 = 480 Zeilen |
2Bh | Byte | VGA-Zeichensatz, der bei abgeschaltetem Attributbit 3 verwendet wird (nur VGA-Karte |
2Ch | Byte | VGA-Zeichensatz, der bei eingeschaltetem Attributbit 3 verwendet wird (nur VGA-Karte) |
2Dh | 4 Bytes | Reserviert |
31h | Byte | Bildschirmspeichergröße: Wenn 0/1/2/3 dann 64/128/192/256 KByte |
32h | 14 Bytes | Reserviert |
Offset | Datentyp | Bedeutung |
---|---|---|
00h | Byte | unterstützte Videomodi: sind die Bits 0 bis 7 gesetzt, so unterstützt die Karte die entsprechenden Videomodi 00h - 07h |
01h | Byte | unterstützte Videomodi: sind die Bits 0 bis 7 gesetzt, so unterstützt die Karte die entsprechenden Videomodi 08h - 0Fh |
02h | Byte | unterstützte Videomodi: sind die Bits 0 bis 3 gesetzt, so unterstützt die Karte die entsprechenden Videomodi 10h - 13h Die Bits 4-7 sind reserviert |
03h | 4 Bytes | reserviert |
07h | Byte | Scanzeilen in den alphanumerischen Modi: Bit 0/1/2=1 dann 200/350/400 Zeilen |
08h | Byte | maximale Anzahl darstellbarer Zeichensätze |
09h | Byte | Anzahl der verfügbaren Zeichensätze im Zeichensatzspeicher |
0Ah | Byte | reserviert |
Bitnummer | Bedeutung |
---|---|
0 | gesetzt wenn mind. 1 Diskettenlaufwerk angeschlossen ist |
1 | gesetzt wenn ein Coprozessor vorhanden ist |
2-3 | ungenutzt |
4-5 | Videomodus nach Einschalten 00b=unbekannt 01b=40x25 Color 10b=80x25 Color 11b=80x25 einfarbig |
6-7 | Anzahl angeschlossener Diskettenlaufwerke 00b:=1 bis 11b:=4 |
8 | ungenutzt |
9-11 | Anzahl serieller Karten |
12-13 | reserviert |
14-15 | Anzahl paralleler Karten |
Funktion | Bedeutung und Eingabe | Ausgabe und Kommentar |
---|---|---|
00h | Laufwerk initialisieren DL: Laufwerksnummer (0:=alle, 1:=A usw) |
Wenn CF=1 dann Fehler und AH=Fehlercode |
01h | Status lesen DL: Laufwerksnummer (0:=akt. LW, 80h:= 1. Festplatte) |
Wenn CF=1 dann Fehler und AH=Fehlercode |
02h | Sektoren lesen DL: LW-Nr. (0:=A, 1:=B, 80h:=1. Festplatte) DH: Seiten/Kopfnummer CH: Spur/Zylindernummer CL: Sektornummer AL: Sektorenanzahl ES:BX: Adresse Lesepuffer |
Wenn CF=1 dann Fehler und AH=Fehlercode Der Lesepuffer muß für einen Sektor ausreichend groß dimensioniert sein (512 Bytes und größer) |
03h | Sektoren schreiben DL: LW-Nr. (0:=A, 1:=B, 80h:=1. Festplatte) DH: Seiten/Kopfnummer CH: Spur/Zylindernummer CL: Sektornummer AL: Sektorenanzahl ES:BX: Adresse Schreibpuffer |
Wenn CF=1 dann Fehler und AH=Fehlercode |
04h | Sektoren prüfen DL: LW-Nr. (0:=A, 1:=B, 80h:=1. Festplatte) DH: Seiten/Kopfnummer CH: Spur/Zylindernummer CL: Sektornummer AL: Sektorenanzahl ES:BX: Adresse Überprüfungspuffer |
Wenn CF=1 dann Fehler und AH=Fehlercode |
05h | Spuren oder Zylinder formatieren DL: LW-Nr. (0:=A, 1:=B, 80h:=1. Festplatte) DH: Seiten/Kopfnummer CH: Spur/Zylindernummer CL: Sektornummer AL: Sektorenanzahl ES:BX: Adresse Formatpuffer |
Wenn CF=1 dann Fehler und AH=Fehlercode |
06h | Spur kennzeichnen DL: Festplattennummer (80h:=1. Festplatte) DH: Seiten/Kopfnummer CH: Spur/Zylindernummer CL: Sektorregister (Bit 6 und 7 bilden Bit 8 und 9 von CH) |
Wenn CF=1 dann Fehler und AH=Fehlercode |
07h | Zylinder ab CH formatieren DL: LW-Nr. (0:=A, 1:=B, 80h:=1. Festplatte) DH: Seiten/Kopfnummer CL: Sektornummer AL: Sektorenanzahl ES:BX: Adresse Formatpuffer |
Wenn CF=1 dann Fehler und AH=Fehlercode |
08h | Format ermitteln DL: Festplattennummer (80h:=1. FP) |
Wenn CF=1 dann Fehler und AH=Fehlercode DL: Festplattenanzahl CH: Zylinderanzahl CL: Sektorenanzahl |
09h | Fremdlaufwerke anpassen DL: Festplattennummer (80h:=1. FP) |
Wenn CF=1 dann Fehler und AH=Fehlercode |
0Ah | erweiterte Sektoren lesen DL: Festplattennummer (80h:=1. Festplatte) DH: Seiten/Kopfnummer CH: Spur/Zylindernummer CL: Sektornummer AL: Sektorenanzahl ES:BX: Adresse Lesepuffer |
Wenn CF=1 dann Fehler und AH=Fehlercode |
0Bh | erweiterte Sektoren schreiben DL: Festplattennummer (80h:=1. Festplatte) DH: Seiten/Kopfnummer CH: Spur/Zylindernummer CL: Sektornummer AL: Sektorenanzahl ES:BX: Adresse Lesepuffer |
Wenn CF=1 dann Fehler und AH=Fehlercode |
0Ch | Schreib/Lesekopf bewegen DL: LW-NR (0:=A, 80h:=C) CX: Spur/Zylindernummer DH: Kopfnummer |
Wenn CF=1 dann Fehler und AH=Fehlercode |
10h | Überprüfung der Laufwerksbereitschaft DL: Festplattennummer (80h:=1. FP) |
Wenn CF=1 dann Fehler und AH=Fehlercode |
11h | Plattenköpfe parken DL: Festplattennummer (80h:=1. FP) |
Wenn CF=1 dann Fehler und AH=Fehlercode |
13h | Sektor 0 überprüfen DL: Festplattennummer (80h:=1. FP) |
Wenn CF=1 dann Fehler und AH=Fehlercode |
14h | Controller testen DL: Festplattennummer (80h:=1. FP) |
Wenn CF=1 dann Fehler und AH=Fehlercode |
15h | Diskettentyp ermitteln DL: Festplattennummer (80h:=1. FP) |
Wenn CF=1 dann Fehler und AH=Fehlercode |
16h | Diskettenwechsel ermitteln DL: DiskLW-Nr. |
AH: Wechselflag (0:=kein Wechsel; 6:=Wechsel) |
17h | Diskettenformat fixieren AL: Diskettenformat |
Wenn CF=1 dann Fehler und AH=Fehlercode |
19h | Plattenköpfe parken DL: Festplattennummer |
Wenn CF=1 dann Fehler und AH=Fehlercode |
Code | Bedeutung | Code | Bedeutung |
---|---|---|---|
00h | Kein Fehler | 01h | Illegale Funktionsnummer |
02h | Keine Adressmarkierung | 04h | Sektor nicht gefunden |
05h | Reset war erfolglos | 07h | Fehlerhafte Initialisierung |
09h | Segmentgrenzenüberlauf des DMA | 10h | Lesefehler |
11h | Daten trotz falscher Prüfsumme gelesen | 20h | Fehler des Controllers |
40h | Spur nicht gefunden | 80h | Laufwerk reagiert nicht |
BBh | BIOS-Fehler | FFh | nicht aufschlüsselbarer Fehler |
Code | Bedeutung | Code | Bedeutung |
---|---|---|---|
01h | Illegale Funktionsnummer | 02h | Keine Adressmarkierung |
03h | Diskette ist schreibgeschützt | 04h | Sektor nicht gefunden |
08h | Überlauf des DMA | 09h | Segmentgrenzenüberlauf |
10h | Lesefehler | 20h | Fehler des Controllers |
40h | Spur nicht gefunden | 80h | Laufwerk reagiert nicht |
Funktion | Bedeutung und Eingabe | Ausgabe und Kommentar |
---|---|---|
00h | Initialisierung DX: Schnittstellennummer(0:=COM1) AL: Konfigurationscode |
AH: Zeilenstatus AL: Modemstatus (s. unten) |
01h | Zeichen senden DX: Schnittstellennummer(0:=COM1) AL: Zeichencode |
AH: Zeilenstatus |
02h | Zeichen lesen DX: Schnittstellennummer(0:=COM1) |
AH: Zeilenstatus AL: Zeichencode des Zeichens |
03h | Status erfragen DX: Schnittstellennummer(0:=COM1) |
AH: Zeilenstatus AL: Modemstatus |
04h | erweiterte Initialisierung vornehmen AL: Break-Zustand BH: Parität BL: Stopbitanzahl CH: Datenbitanzahl CL: Baudrate DX: Schnittstellennummer(0:=COM1) |
AH: Leitungszustand AL: Modemstatus |
Bitnummer | Bedeutung |
---|---|
0 | Datenbitflag: 0=7 Datenbits, 1=8 Datenbits |
1 | muß immer 1 sein |
2 | Stopbitflag: 0=1 Stopbit, 1=2 Stopbits |
3 | Paritätsbitflag: 0=keine Parität, 1=mit Parität |
4 | Paritätsmodus: 0=ungerade Parität, 1=gerade Parität |
5-7 | Code der Baudrate 000: 110 Baud; 001: 150 Baud; 010: 300 Baud 011: 600 Baud; 100: 1200 Baud; 101: 2400 Baud 110: 4800 Baud; 111: 9600 Baud |
Bitnummer | Bedeutung |
---|---|
0 | Daten stehen zum Empfang bereit (Data ready) |
1 | Datenüberlauf (Overrun Error) |
2 | Paritätsfehler |
3 | Protokollfehler |
4 | Unterbrechung erkannt |
5 | Übertragungs-Halteregister frei |
6 | Übertragungsschieberegister frei |
7 | Timeoutfehler |
Bitnummer | Bedeutung |
---|---|
0 | (D) Klar zum Senden |
1 | (D) Modem ist bereit |
2 | (D) Telefon läutet |
3 | (D) Datenträgersignal erkannt |
4 | Klar zum Senden |
5 | Modem ist bereit |
6 | Telefon läutet |
7 | Datenträgersignal erkannt |
Funktion | Bedeutung und Eingabe | Ausgabe und Kommentar |
---|---|---|
00h | Kassettenrecordermotor einschalten | keine |
01h | Kassettenrecordermotor ausschalten | keine |
02h | Kassettenblock lesen CX: Byteanzahl ES:BX: Adresse Lesepuffer |
DX: Anzahl gelesener Bytes AH: Kassettenstatus |
03h | Kassettenblock schreiben CX: Byteanzahl ES:BX: Adresse Schreibpuffer |
Kassettenstatus |
83h | Flag nach Intervall setzen ES:BX: Adresse des Flags CX: Timerwert HI DX: Timerwert LO |
keine; Die Angabe erfolgt in Millisekunden Der Rechner ist während dieser Zeit nicht blockiert |
84h | Joystick-Zugriff DX:=0: Feuerknopfstatus ermitteln DX:=1: Joystickstellung ermitteln |
CF zeigt Fehler AL: Status der Feuerknöpfe CF zeigt Fehler AX: X-Stellung Joystick 1 BX: Y-Stellung Joystick 1 CX: X-Stellung Joystick 2 DX: Y-Stellung Joystick 2 |
85h | SysReq ausführen AL: Statusflag |
keine |
86h | Intervall abwarten CX: Timerwert HI DX: Timerwert LO |
keine Der Rechner ist blockiert bis die Millisekunden abgelaufen sind |
87h | Speicherblock verschieben CX: Anzahl zu verschiebender Words ES:SI: Adresse einer GDT |
CF zeigt Fehler ACX: Fehlercode |
88h | Größe des Extended Memory ermitteln | AX: Größe des HI-Speichers |
89h | In den Protected Mode schalten | keine |
Funktion | Bedeutung und Eingabe | Ausgabe und Kommentar |
---|---|---|
00h | Tastaturcode aus Puffer lesen | Wenn AL=00h dann in AH erw. Tastaturcode sonst: AL: ASCII und AH: Scancode Falls keine Zeichen im Puffer, dann wird gewartet |
01h | Tastaturpuffer prüfen | Wenn ZF=1 dann keine Zeichen im Puffer Wenn ZF=1 dann AX: nächstes auszugebendes Zeichen |
02h | Tastaturstatus lesen | AL: Tastaturstatus Bit 0=1: Shift rechts Bit 1=1: Shift links Bit 2=1: CTRL Bit 3=1: ALT Bit 4=1: Scroll Lock Bit 5=1: Num Lock Bit 6=1: Caps Lock Bit 7=1: Ins |
05h | Zeichen in Puffer stellen CL: ASCII-Code des Zeichens |
keine |
10h | Tastaturcode aus Puffer lesen | wie Funktion 00h Diese Funktion erkennt F11 und F12 |
11h | Tastaturpuffer prüfen | wie Funktion 01h Diese Funktion erkennt F11 und F12 |
12h | Tastaturstatus lesen | wie Funktion 02h |
Funktion | Bedeutung und Eingabe | Ausgabe und Kommentar |
---|---|---|
00h | Zeichen parallel ausgeben DX: Schnittstellennummer AL: Zeichencode |
AH: Schnittstellenstatus |
01h | Initialisierung DX: Schnittstellennummer (0=LPT1) |
AH: Schnittstellenstatus |
02h | Schnittstellenstatus ermitteln DX: Schnittstellennummer |
AH: Schnittstellenstatus |
Bitnr. | Zustand | Bitnr. | Zustand |
---|---|---|---|
0 | Timeout-Fehler | 4 | On Line |
1 | ist immer 0 | 5 | Papierende |
2 | ist immer 0 | 6 | Empfangsbestätigung |
3 | Ein/Ausgabefehler | 7 | Beschäftigt |
Wenn der Computer gebootet wird (Kaltstart), dann wird nach einigen Sekunden eine
Tabelle angezeigt, in der wichtige Informationen über den Systemzustand enthalten
sind, z. B. Anzahl der Festplatten und Diskettenlaufwerke, Festplattenmodi (PIO4,
UDMA), Portadressen der parallelen und seriellen Schnittstellen usw.
Ohne weitere Angaben wird der PC durch diesen Interrupt neu gestartet,
überspringt aber die die ersten Tätigkeiten wie zum Beispiel das Hochzählen des
Speichers. Er würde an der Stelle einsetzen, an der bei einem Kaltstart die eben
angesprochene Tabelle gezeigt wird und versuchen, ein Betriebssystem ausfindig
zu machen
Funktion | Bedeutung und Eingabe | Ausgabe und Kommentar |
---|---|---|
00h | Zeitzähler lesen | CX: Timerwert HI DX: Timerwert LO AL: 24-Stundenzähler |
01h | Zeitzähler setzen CX: Timerwert HI DX: Timerwert LO |
keine |
02h | RTC-Uhr auslesen | CF zeigt Fehler CH: Stunde (BCD) CL: Minute (BCD) DH: Sekunde (BCD) |
03h | RTC-Uhr setzen CH: Stunde (BCD) CL: Minute (BCD) DH: Sekunde (BCD) DL: Sommerzeit-Flag (1=Sommerzeit) |
CF zeigt Fehler |
04h | RTC-Datum auslesen | CF zeigt Fehler CH: Jahrhundert (BCD) CL: Jahr (BCD) DH: Monat (BCD) DL: Tag (BCD) |
05h | RTC-Datum setzen CH: Jahrhundert (BCD) CL: Jahr (BCD)(im Bereich 19-20) DH: Monat (BCD) DL: Tag (BCD) |
CF zeigt Fehler |
06h | RTC-Alarmzeit setzen CH: Stunde (BCD) CL: Minute (BCD) DH: Sekunde (BCD) |
CF zeigt Fehler |
07h | RTC-Alarmzeit löschen | CF zeigt Fehler |
Dieser Interrupt wird auf die richtige Adresse eingestellt, wenn der
Maustreiber ordentlich geladen wurde. Es ist daher vor Verwendung von
Mausfunktionen zu prüfen, ob tatsächlich ein Maustreiber vorhanden ist. Dies
wird unter anderem durch die Funktion 00h erledigt.
Im Gegensatz zu allen anderen Interrupts, die die Hauptfunktionsnummer im
Register AH erwarten, muß bei diesem Interrupt das ganze Register AX mit der
Funktionsnummer gefüllt werden.
Funktion | Bedeutung und Eingabe | Ausgabe und Kommentar |
---|---|---|
00h | Maus-Reset und Status | AX: Status (0FFFFh=Maus vorhanden, 00000=keine Maus installiert) BX: Anzahl Maustasten |
01h | Mauscursor zeigen | keine |
02h | Mauszeiger ausblenden | keine |
03h | Maustastenstatus und Pos. ermitteln | BX: Status der Maustaste CX: aktuelle Mausspalte DX: aktuelle Mauszeile |
04h | Mauszeiger setzen CX: Mausspalte DX: Mauszeile |
keine |
05h | Maustastenstatus beim Drücken BX: Maustaste (00=linke Taste, 01=rechte Taste) |
AX: Status (1=Taste gedrückt) BX: Zähler (Anzahl Klicks seit letztem Aufruf) CX: Mausspalte beim letzten Druck DX: Mauszeile beim letzten Druck |
06h | Maustastenstatus beim Loslassen BX: Maustaste |
AX: Status BX: Zähler CX: Mausspalte beim letzten Loslassen DX: Mauszeile beim letzten Loslassen |
07h | min. und max. Mausspalte festlegen CX: linke Grenze DX: rechte Grenze |
keine |
08h | min. und max. Mauszeile festlegen CX: obere Grenze DX: untere Grenze |
keine |
09h | Grafikcursor festlegen BX: X-Offset des HotSpots CX: Y-Offset des HotSpots ES:DX: Adresse der Cursormaske |
keine |
0Ah | Textcursor festlegen BX: Zeigertyp(0=Softwarecursor, 1=Hardwarecursor CX: Bildschirmmaske / Zeigerstart DX: Zeigermaske / Zeigerende |
keine Wenn Zeigertyp=Softwarecursor, dann müssen in CX/DX die Masken eingetragen werden, ansonsten die Start- und Endzeile |
0Bh | Bewegungszähler der Maus lesen | CX: X-Zähler DX: Y-Zähler |
0Ch | Interruptmaske und Adresse festlegen CX: Aufrufmaske ES:DX: Adresse des Handlers |
keine siehe auch unten |
0Dh | Lichtgriffelemulation einschalten | keine |
0Eh | Lichtgriffelemulation ausschalten | keine |
0Fh | Mickey/Bildpunkt-Verhältnis setzen CX: X-Verhältnis DX: Y-Verhältnis |
keine |
10h | Mauscursor bedingt abschalten CX: rechte X-Koordinate DX: untere Y-Koordinate SI: linke X-Koordinate DI: obere Y-Koordinate |
keine Im festgelegten virtuellen Mausbildschirm wird der Cursor abgeschaltet, sobald er ihn betritt; er kann nur durch Funktion 01h wieder sichtbar gemacht werden |
13h | Anfangswert für doppelte Geschwindigkeit setzen DX: Grenzwert |
keine Standardwert: 64 Mickeys/Sekunde |
14h | Interruptmaske und Adresse lesen und festlegen ES:DX: Adresse Interrupthandler CX: Aufrufmaske Bits 15-5: nicht belegt Bit 4: Rechts wird losgelassen Bit 3: Rechts wird gedrückt Bit 2: Links wird losgelassen Bit 1: Links wird gedrückt Bit 0: Mausposition verändert sich Der Handler muß mit RETF, nicht mit IRET enden |
ES:DX: Adresse des alten Handlers CX: alte Aufrufmaske bei Aktivierung sind folgende Register belegt AX: Bedingungsmaske BX: Tastenzustand CX: X-Koordinate DX: Y-Koordinate SI: X-Mickey-Zähler DI: Y-Mickey-Zähler Ein gesetztes Bit in der Bedingungsmaske zeigt das Ereignis für die Aktivierung des Handlers an |
15h | Puffergröße für Maustreiberstatus ermitteln | BX: benötigter Speicher für Status |
16h | Maustreiberstatus speichern ES:DX: Adresse des Puffers |
keine |
17h | Maustreiberstatus zurücksetzen ES:X: Adresse des Puffers |
keine |
18h | erweiterte Interruptmaske und Adresse setzen ES:DX: Adresse des Interrupthandlers CX: erweiterte Aufrufmaske Bit 15-8 sind nicht belegt Bit 7: ALT+Maus gedrückt/losgelassen Bit 6: CTRL+Maus gedrückt/losgelassen Bit 5: SHIFT+Maus gedrückt/losgelassen Rest wie Funktion 14h |
wie Funktion 14h Es können maximal drei Interrupthandler installiert werden, vorausgesetzt, sie verfügen über unterschiedliche Bedingungsmasken |
19h | erweiterte Interruptadresse ermitteln CX: gesuchte Aufrufmaske (s. Funktion 18h) |
AX: Fehlerstatus CX: tatsächliche Aufrufmaske ES:DX: Adresse Interrupthandler |
1Ah | Mausempfindlichkeit setzen BX: X-Empfindlichkeit CX: Y-Empfindlichkeit DX: Anfangswert für doppelte Geschwindigkeit |
keine |
1Bh | Mausempfindlichkeit ermitteln |
BX: X-Empfindlichkeit CX: Y-Empfindlichkeit DX: Anfangswert für doppelte Geschwindigkeit |
1Ch | Maus-Interrupt-Rate setzen BX: Rate (00=keine Abfrage; 01=30/sec; 02=50/sec; 03=100/sec; 04=200/sec |
keine Legt fest, wie oft die Maus durch den Treiber abgefragt wird. Funktioniert nur bei InPort-Maus |
1Dh | Nummer der Bildschirmseite setzen BX: Bildschirmseite |
keine |
1Eh | Nummer der Bildschirmseite ermitteln | BX: Bildschirmseite |
1Fh | Maustreiber abschalten | AX: Fehlerstatus (0FFFFh=Abschaltung nicht möglich) ES:BX: Adresse ISR Int 33h |
20h | Maustreiber einschalten | keine; Folge von Funktion 1Fh |
21h | Software-Reset | AX: Fehlercode (21h=keine Maus installiert; 0FFFFh=Maus installiert) |
22h | Sprache setzen BX: Sprache (00=Englisch; 01=Französisch; 02=Niederländisch; 03=Deutsch; 04=Schwedisch; 05=Finnisch; 06=Spanisch; 07=Portugisisch; 08=Italienisch |
keine |
23h | Sprachennummer ermitteln | BX: augenblickliche Sprache |
24h | Konfigurationsdaten ermitteln | BX: Version (Hauptversion) CH: Maustyp (01=Busmaus; 02=serielle Maus; 03=InPort-Maus; 04=PS/2-Maus; 05=HP-Maus CL: Interruptleitung |
Funktion | Bedeutung und Eingabe | Ausgabe und Kommentar | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
00h | Programm beenden CS: PSP-Segmentadresse |
keine | |||||||||||||||||||||||||||
01h | Zeicheneingabe mit Echo | AL: ASCII-Code | |||||||||||||||||||||||||||
02h | Zeichen darstellen DL: ASCII-Code |
keine | |||||||||||||||||||||||||||
03h | Eingabe von serieller Schnittstelle | AL: ASCII-Code des Zeichens | |||||||||||||||||||||||||||
04h | Ausgabe an serielle Schnittstelle DL: Zeichencode |
keine | |||||||||||||||||||||||||||
05h | Ausgabe an Parallelschnittstelle DL: Zeichencode |
keine | |||||||||||||||||||||||||||
06h | Zeichenein/ausgabe direkt DL: wenn 255 dann Zeichen einlesen alles andere ausgeben |
wenn einlesen, dann in AL Zeichencode | |||||||||||||||||||||||||||
07h | Zeicheingabe direkt | AL: Zeichencode | |||||||||||||||||||||||||||
08h | Zeicheneingabe | AL: Zeichencode | |||||||||||||||||||||||||||
09h | Zeichenkettenausgabe DS:DX: Adresse des Strings |
keine Der String muß mit einem Dollar-Zeichen enden |
|||||||||||||||||||||||||||
0Ah | Zeichenketteneingabe DS:DX: Adresse des Puffers Puffer[0]: max. Länge |
Puffer[1]: tatsächliche Länge ab Puffer[2] dann die Zeichen ohne abschließendes ENTER |
|||||||||||||||||||||||||||
0Bh | Eingabestatus lesen | AL: Statusflag (00=kein Zeichen verfügbar; 0FFh=mind. ein Zeichen) | |||||||||||||||||||||||||||
0Ch | Eingabepuffer löschen und Funktion aufrufen AL: Funktionsnummer |
AL: Löschflag (nur gültig, wenn Funktionsnummer nicht 01h, 06h,
07h, 08h, oder 0Ah war) Um nur den Eingabepuffer zu löschen: AL=00 |
|||||||||||||||||||||||||||
0Dh | Laufwerke zurücksetzen | keine | |||||||||||||||||||||||||||
0Eh | Laufwerk auswählen DL: Laufwerkscode (00=A:, 01=B:) |
AL: Anzahl installierter Blocktreiber | |||||||||||||||||||||||||||
0Fh | FCB-Datei öffnen DS:DX: Adresse FCB |
AL: Statuscode | |||||||||||||||||||||||||||
10h | FCB-Datei en DS:DX: Adresse FCB |
AL: Statuscode | |||||||||||||||||||||||||||
11h | FCB-Datei en DS:DX: Adresse FCB |
AL: Statuscode | |||||||||||||||||||||||||||
12h | FCB-Datei en DS:DX: Adresse FCB |
AL: Statuscode | |||||||||||||||||||||||||||
13h | FCB-Datei en DS:DX: Adresse FCB |
AL: Statuscode | |||||||||||||||||||||||||||
14h | sequentiell lesen DS:DX: Adresse FCB |
AL: Statuscode | |||||||||||||||||||||||||||
15h | sequentiell schreiben DS:DX: Adresse FCB |
AL: Statuscode | |||||||||||||||||||||||||||
16h | FCB-Datei en DS:DX: Adresse FCB |
AL: Statuscode | |||||||||||||||||||||||||||
17h | FCB-Datei en DS:DX: Adresse FCB |
AL: Statuscode | |||||||||||||||||||||||||||
19h | aktuelles Laufwerk bestimmen | AL: Gerätecode (00=A:) | |||||||||||||||||||||||||||
1Ah | DTA setzen DS:DX: DTA-Adresse |
keine | |||||||||||||||||||||||||||
1Bh | Standardlaufwerksinformationen ermitteln | AL: Sektoren/Cluster CX: Bytes/Sektor DX: Cluster/Laufwerk DS:BX: Adresse FAT-ID-Byte |
|||||||||||||||||||||||||||
1Ch | Laufwerksinformationen ermitteln DL: Laufwerks-code (00=akt. 01=A:) |
AL: Sektoren/Cluster CX: Bytes/Sektor DX: Cluster/Laufwerk DS:BX: Adresse FAT-ID-Byte |
|||||||||||||||||||||||||||
1Fh | aktuelle DPB-Adresse ermitteln | DS:BX: Adresse DPB | |||||||||||||||||||||||||||
21h | FCB-Dateidirektzugriff Lesen DS:DX: Adresse FCB |
AL: Statuscode | |||||||||||||||||||||||||||
22h | FCB-Dateidirektzugriff Schreiben DS:DX: Adresse FCB |
AL: Statuscode | |||||||||||||||||||||||||||
23h | FCB-Dateigröße ermitteln DS:DX: Adresse FCB |
AL: Statuscode | |||||||||||||||||||||||||||
24h | FCB-Datensatznummer setzen DS:DX: Adresse FCB |
AL: Statuscode | |||||||||||||||||||||||||||
25h | Interrupt-Vektor setzen AL: Interruptnummer DS:DX: Adresse der ISR |
keine | |||||||||||||||||||||||||||
26h | neuen PSP erstellen DX: Segmentadresse des neuen PSP |
keine | |||||||||||||||||||||||||||
27h | FCB-Datei Direktzugriff Blockweise lesen DS:DX: Adresse FCB CX: Datensatzzahl |
CX: Zahl gelesener Datensätze AL: Statuscode |
|||||||||||||||||||||||||||
28h | FCB-Datei Direktzugriff Blockweise schreiben DS:DX: Adresse FCB CX: Datensatzzahl |
CX: Zahl geschriebener Datensätze AL: Statuscode |
|||||||||||||||||||||||||||
29h | FCB-Dateinamen umwandeln DS:SI: Adresse String ES:DI: Adresse FCB |
AL: Statuscode | |||||||||||||||||||||||||||
2Ah | Datum ermitteln | AL: Wochentag (0=Sonntag) CX: Jahr (Offset zu 1980) DH: Monat DL: Tag im Monat |
|||||||||||||||||||||||||||
2Bh | Datum setzen CX: Jahr (Offset zu 1980) DH: Monat DL: Tag im Monat |
AL: Statusflag (0FFh=Fehler) | |||||||||||||||||||||||||||
2Ch | Zeit ermitteln (im 24-Stunden-Format) |
CH: Stunde CL: Minute DH: Sekunde DL: Hundertstelsekunde |
|||||||||||||||||||||||||||
2Dh | Zeit setzen CH: Stunde CL: Minute DH: Sekunde DL: Hundertstelsekunde |
AL: Statusflag (0FFh=Fehler) | |||||||||||||||||||||||||||
2Eh | Verify Flag setzen/zurücksetzen AL: Verifystatus (0=kein Verify) |
keine | |||||||||||||||||||||||||||
2Fh | DTA-Adresse ermitteln | ES:BX: Adresse der DTA | |||||||||||||||||||||||||||
30h | DOS-Versionsnummer ermitteln AL: Leseflag (00=Versionsnummer lesen; 01=Prüfen auf ROM-DOS |
AH: Nebenversionsnummer BH: OEM-Seriennummer BL:CX: 24-Bit-Benutzernummer |
|||||||||||||||||||||||||||
31h | Programm im Speicher behalten AL: Return-Code DX: Anzahl belegter Paragraphen |
keine | |||||||||||||||||||||||||||
32h | Disketteninformationen ermitteln DL: Laufwerksnummer (0=A:) |
AL: Laufwerkskennzeichen DS:BX: Adresse Informationsblock |
|||||||||||||||||||||||||||
33h | Breakstatus lesen AL: 00h |
DL: Flagzustand AL: Statuscode |
|||||||||||||||||||||||||||
33h | Breakstatus setzen AL: 01h DL: Breakflag (0=löschen, 1=setzen) |
AL: Statuscode | |||||||||||||||||||||||||||
33h | Startlaufwerk ermitteln AL: 05h |
DL: Startlaufwerk (01=A:, 02=B:) | |||||||||||||||||||||||||||
33h | DOS-Version bestimmen AL: 06h |
BL: Hauptversionsnummer BH: Nebenversionsnummer DL: Revisionsnummer DH: Versionsflag (Bits 7-5 und 2-0 sind reserviert wenn Bit 4 gesetzt dann liegt DOS im HMA wenn Bit 3 gesetzt, dann DOS-Version des Betriebssystems) |
|||||||||||||||||||||||||||
34h | Adresse DOS-Aktivbyte bestimmen | ES:BX: Adresse InDOS-Flag (1=keine DOS-Funktion aktiv) | |||||||||||||||||||||||||||
35h | Interruptvektor ermitteln AL: Interruptnummer |
ES:BX: Adresse ISR | |||||||||||||||||||||||||||
36h | Freien Diskettenplatz ermitteln DL: Laufwerksnummer (0=aktuelles Laufwerk, 01=A:) |
AX: Sektoren/Cluster oder Fehlerflag BX: noch verfügbare Cluster CX: Bytes/Sektor DX: Cluster/Laufwerk |
|||||||||||||||||||||||||||
37h | Parameterschalter festlegen AL: 01h DL: neuer Parameterschalter |
keine Standardparamterschalter ist '/' (undokumentiert) |
|||||||||||||||||||||||||||
38h | landesspezifische Daten ermitteln AL: Landescode BX: erweiterter Landescode DS:DX: Adresse des Puffers |
CF zeigt Fehler (AX: Fehlercode) BX: Landescode Landescodetabelle siehe unten Pufferinhalt siehe unten |
|||||||||||||||||||||||||||
38h | landesspezifische Daten setzen DX: 0FFFFh AL: Landescode BX: erweiterter Landescode |
CF zeigt Fehler (AX: Fehlercode) Es kann nur ein Land gesetzt werden, nicht die Parameter des Landes Lassen Sie sich nicht von der doppelten Hauptfunktionsnummer 38h verwirren, der Unterschied liegt im Register DX |
|||||||||||||||||||||||||||
39h | Unterverzeichnis erstellen DS:DX: Adresse ASCIIZ-Pfadname |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
3Ah | Unterverzeichnis löschen DS:DX: Adresse ASCIIZ-Pfadname |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
3Bh | aktuelles Verzeichnis wechseln DS:DX: Adresse ASCIIZ-Pfadname |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
3Ch | Handle-Datei erstellen DS:DX: Adresse ASCIIZ-Pfadname CX: Attributcode (Bit 0: ReadOnly; Bit 1: Hidden; Bit 2: Systemfile) |
CF zeigt Fehler (AX: Fehlercode) sonst AX: Dateihandle |
|||||||||||||||||||||||||||
3Dh | Handle-Datei öffnen AL: Zugriffscode DS:DX: Adresse ASCIIZ-Pfadname |
CF zeigt Fehler (AX: Fehlercode) sonst AX: Dateihandle |
|||||||||||||||||||||||||||
3Eh | Handle-Datei schließen BX: Dateihandle |
CF zeigt Fehler (AX: Fehlercode) sonst AX: Dateihandle |
|||||||||||||||||||||||||||
3Fh | Handle-Datei lesen BX: Dateihandle CX: Anzahl zu lesender Bytes DS:DX: Adresse Lesepuffer |
CF zeigt Fehler (AX: Fehlercode) sonst AX: Anzahl gelesener Bytes |
|||||||||||||||||||||||||||
40h | Handle-Datei schreiben BX: Dateihandle CX: Anzahl zu schreibender Bytes DS:DX: Adresse Schreibpuffer |
CF zeigt Fehler (AX: Fehlercode) sonst AX: Anzahl geschriebener Bytes |
|||||||||||||||||||||||||||
41h | Datei löschen DS:DX: Adresse ASCIIZ-Pfadname |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
42h | Handle-Dateizeiger bewegen BX: Dateihandle CX:DX: 32-Bit-Differenz AL: Bewegungsmodus (00=relativ zum Dateianfang; 01=relativ zur aktuellen Position; 02=relativ zum Dateiende) |
CF zeigt Fehler (AX: Fehlercode) sonst AX:DX: neue 32-Bit-Position in Bytes relativ zum Dateianfang |
|||||||||||||||||||||||||||
43h | Dateiattribut lesen oder ändern AL: Modus (0=lesen, 1=setzen) CX: Dateiattribut DS:DX: Adresse ASCIIZ-Pfadname |
CF zeigt Fehler (AX: Fehlercode) CX: Dateiattribut (nur gültig im Lesemodus) |
|||||||||||||||||||||||||||
44h | IOCTL-Attribut lesen AL: 00h BX: Handlenummer |
CF zeigt Fehler (AX: Fehlercode) DX: Geräteattribute |
|||||||||||||||||||||||||||
44h | IOCTL-Attribut setzen AL: 01h BX: Handlenummer DX: Geräteatribute |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Kontrolldaten von Zeichentreiber empfangen AL: 02h BX: Handle (Funktion 3Ch oder 3Dh) CX: Anzahl zu übertragender Bytes DS:DX: Adresse Empfangspuffer |
CF zeigt Fehler (AX: Fehlercode) sonst AX: Anzahl empfangener Bytes |
|||||||||||||||||||||||||||
44h | Kontrolldaten an Zeichentreiber senden AL: 03h BX: Handle CX: Anzahl zu übertragender Bytes DS:DX: Sendepuffer |
CF zeigt Fehler (AX: Fehlercode) sonst AX: Anzahl gesendeter Bytes |
|||||||||||||||||||||||||||
44h | Kontrolldaten vom Blocktreiber empfangen AL: 04h BL: Laufwerksnummer (0=akt; 1=A:) CX: Anzahl zu übertragender Bytes DS:DX: Adresse Empfangspuffer |
CF zeigt Fehler (AX: Fehlercode) sonst AX: Anzahl empfangener Bytes |
|||||||||||||||||||||||||||
44h | Kontrolldaten an Blocktreiber sendenen AL: 05h BL: Laufwerksnummer (0=akt; 1=A:) CX: Anzahl zu übertragender Bytes DS:DX: Adresse Sendepuffer |
CF zeigt Fehler (AX: Fehlercode) sonst AX: Anzahl gesendeter Bytes |
|||||||||||||||||||||||||||
44h | Eingabestatus ermitteln AL: 06h BX: Handle (Funktion 3Ch oder 3Dh) |
CF zeigt Fehler (AX: Fehlercode) sonst AX: Status (0=nicht bereit; 0FFh=bereit für Senden/Empfangen) |
|||||||||||||||||||||||||||
44h | Ausgabestatus ermitteln AL: 07h BX: Handle (Funktion 3Ch oder 3Dh) |
CF zeigt Fehler (AX: Fehlercode) sonst AX: Status (0=nicht bereit; 0FFh=bereit für Senden/Empfangen) |
|||||||||||||||||||||||||||
44h | Medium überprüfen AL: 08h BL: Laufwerksnummer (0=akt; 1=A:) |
CF zeigt Fehler (AX: Fehlercode) sonst AX: Mediumstatus (0=wechselbar, 1=nicht wechselbar) |
|||||||||||||||||||||||||||
44h | Netzlaufwerk erkennen AL: 09h BL: Laufwerksnummer (0=akt; 1=A:) |
CF zeigt Fehler (AX: Fehlercode) sonst DX: Geräteattributcode |
|||||||||||||||||||||||||||
44h | Netzhandle erkennen AL: 0Ah BX: Handle |
CF zeigt Fehler (AX: Fehlercode) sonst DX: Geräteattributcode |
|||||||||||||||||||||||||||
44h | IOCTL-Zugriffswiederholung setzen AL: 0Bh CX: Warteschleifengröße DX: Anzahl Wiederholungsversuche |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Codepages umschalten AL: 0Ch | ||||||||||||||||||||||||||||
44h | Wiederholungszähler für Drucker setzen AL: 0Ch CL: 45h BX: Handlenummer (0,1,3,5) CH: Gerätecode DS:DX: Adresse Datenpuffer |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Codepage auswählen AL: 0Ch CL: 4Ah BX: Handlenummer (0,1,3,5) CH: Gerätecode DS:DX: Adresse Datenpuffer |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Codepageübertragung starten AL: 0Ch CL: 4Ch BX: Handle CH: Gerätecode DS:DX: Adresse Datenpuffer |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Codepageübertragung beenden AL: 0Ch CL: 4Dh BX: Handle CH: Gerätecode DS:DX: Adresse Datenpuffer |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Wiederholungszähler für Drucker lesen AL: 0Ch CL: 65h BX: Handle CH: Gerätecode DS:DX: Adresse Datenpuffer |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Abfrage der aktuellen Codepage AL: 0Ch CL: 6Ah BX: Handle CH: Gerätecode DS:DX: Adresse Datenpuffer |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Codepage-Vorbereitungsliste abfragen AL: 0Ch CL: 6Bh BX: Handle CH: Gerätecode DS:DX: Adresse Datenpuffer |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Allgemeine IOCTL-Anforderung für Blocktreiber AL: 0Dh | ||||||||||||||||||||||||||||
44h | Geräteparameter setzen AL: 0Dh CL: 40h CH: 08h BL: Laufwerksnummer (0=akt; 1=A:) DS:DX: Adresse Parameterblock |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Spur auf logisches Laufwerk schreiben AL: 0Dh CL: 41h CH: 08h BL: Laufwerksnummer (0=akt; 1=A:) DS:DX: Adresse Parameterblock |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Spuren auf logischem Laufwerk formatieren AL: 0Dh CL: 42h CH: 08h BL: Laufwerksnummer (0=akt; 1=A:) DS:DX: Adresse Parameterblock |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Speichermedium setzen AL: 0Dh CL: 46h CH: 08h BL: Laufwerksnummer (0=akt; 1=A:) DS:DX: Adresse Parameterblock |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Geräteparameter laden AL: 0Dh CL: 60h CH: 08h BL: Laufwerksnummer (0=akt; 1=A:) DS:DX: Adresse Parameterblock |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Spur von logischem Laufwerk lesen AL: 0Dh CL: 61h CH: 08h BL: Laufwerksnummer (0=akt; 1=A:) DS:DX: Adresse Parameterblock |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Spuren auf logischem Laufwerk prüfen AL: 0Dh CL: 62h CH: 08h BL: Laufwerksnummer (0=akt; 1=A:) DS:DX: Adresse Parameterblock |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Speichermedium lesen AL: 0Dh CL: 66h CH: 08h BL: Laufwerksnummer (0=akt; 1=A:) DS:DX: Adresse Parameterblock |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Speichermedium prüfen AL: 0Dh CL: 68h CH: 08h BL: Laufwerksnummer (0=akt; 1=A:) DS:DX: Adresse Parameterblock |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | Laufwerkszuweisung ermitteln BL: Laufwerksnummer (0=akt; 1=A:) |
CF zeigt Fehler (AX: Fehlercode) sonst AL: Laufwerksanzahl (0=nur physikalische) |
|||||||||||||||||||||||||||
44h | logische Laufwerkszuordnung setzen BL: Laufwerksnummer (0=akt; 1=A:) |
CF zeigt Fehler (AX: Fehlercode) sonst AL: Laufwerkszuordnung |
|||||||||||||||||||||||||||
44h | IOCTL-Handle abfragen AL: 10h BX: Gerätehandle CH: Kategorie (1=COM, 3=CON, 5=LPT) CL: Funktionsnummer |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
44h | IOCTL-Gerät abfragen AL: 11h CH: 08h BL: Laufwerksnummer (0=akt; 1=A:) CL: Funktionsnummer |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
45h | Datei-Handle verdoppeln BX: Dateihandle |
CF zeigt Fehler (AX: Fehlercode) sonst AX: neuer Dateihandle |
|||||||||||||||||||||||||||
46h | Datei-Handles anpassen BX: erstes Dateihandle CX: zweites Dateihandle |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
47h | DL: Laufwerksnummer (0=aktuelles Laufwerk, 1=A:) DS:SI: Adresse Pfadpuffer |
CF zeigt Fehler (AX: Fehlercode) Ergebnis ist der reine Pfadstring ohne LW:\ |
|||||||||||||||||||||||||||
48h | Speicherbereich zuweisen BX: Paragraphenzahl |
CF zeigt Fehler (AX: Fehlercode) Wenn Fehlercode=08h dann BX: Anzahl verfügbarer Paragraphen sonst AX: Speichersegmentadresse |
|||||||||||||||||||||||||||
49h | Speicherblock freigeben ES: Segmentadresse Speicherbereich |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
4Ah | Speicherblock setzen BX: Paragraphenzahl ES: Speichersegmentadresse |
CF zeigt Fehler (AX: Fehlercode) wenn AX=08h dann BX: Anzahl verfügbarer Paragraphen |
|||||||||||||||||||||||||||
4Bh | Unterprogrammaufrufe | ||||||||||||||||||||||||||||
4Bh | Unterprogramm laden und starten AL: 00h DS:DX: Adresse ASCIIZ-Pfad ES:BX: Adresse Parameterblock |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
4Bh | Programm laden AL: 01h DS:DX: Adresse ASCIIZ-Pfad ES:BX: Adresse Parameterblock |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
4Bh | Unterprogramm laden AL: 03h DS:DX: Adresse ASCIIZ-Pfad ES:BX: Adresse Parameterblock |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
4Bh | Programmausführung setzen AL: 05h ES:BX: Adresse Parameterblock |
keine | |||||||||||||||||||||||||||
4Ch | Programm beenden AL: Returncode |
keine Der Return-Code kann als ERRORLEVEL abgefragt werden |
|||||||||||||||||||||||||||
4Dh | Beendigungscode ermitteln | AH: Art der Programmbeendigung (0=normales Ende; 1=Abbruch durch
STRG+X oder STRG+BREAK; 2=Fehler beim Gerätezugriff; 3=durch Funktion
31h beendet) AL: Returncode |
|||||||||||||||||||||||||||
4Eh | Ersten Eintrag finden CX: Dateiattribut DS:DX: Adresse ASCIIZ-Pfadname |
CF zeigt Fehler (AX: Fehlercode) Die gefundenen Daten stehen in der DTA |
|||||||||||||||||||||||||||
4Fh | Weiteren Eintrag finden | CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
50h | PSP-Adresse setzen BX: neue Segmentadresse des PSP |
keine | |||||||||||||||||||||||||||
51h | PSP-Adresse feststellen | BX: Segmentadresse des PSP | |||||||||||||||||||||||||||
52h | DIB-Adresse ermitteln | ES:BX: Adresse DIB | |||||||||||||||||||||||||||
54h | Verify-Flag ermitteln | AL: Verify-flag (0=aus, 1=ein) | |||||||||||||||||||||||||||
56h | Datei umbenennen oder verschieben DS:DX: alter ASCIIZ-Pfadstring ES:DI: neuer ASCIIZ-Pfadstring |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
57h | Datum und Zeit der letzen Änderung einer Datei lesen bzw. setzen AL: Modus (0=lesen, 1=setzen) BX: Dateihandle CX: Zeit DX: Datum |
CF zeigt Fehler (AX: Fehlercode) sonst CX: Zeit (Bits 0-4=Tag, 5-8=Monat, 9-15=Jahr (Offset zu 1980) DX: Datum (Bits 0-4=Sekunden in 2er-Schritten, 5-10=Minuten, 11-15=Stunden) |
|||||||||||||||||||||||||||
58h | Konzept der Speicherverwaltung lesen oder setzen AL: Modus (0=lesen, 1=setzen) BX: Strategie |
CF zeigt Fehler (AX: Fehlercode) sonst CX: Strategie |
|||||||||||||||||||||||||||
58h | UMB-Verbindung abfragen AL: 02h |
AL: UMB-Verbindung (0=UMB wird nicht berücksichtigt, 1=vorhandener UMB wird berücksichtigt, wenn geeignete Strategie gewählt wird) | |||||||||||||||||||||||||||
58h | UMB-Verbindung setzen BX: UMB-Verbindung (s. Rückgabe bei Funktion 5802h) |
CF zeigt Fehler (AX: Fehlercode) sonst CX: Strategie |
|||||||||||||||||||||||||||
59h | Erweiterten Fehlercode lesen BX: 00h |
AX: erweiterter Fehlercode BH: Fehlerkategorie BL: Verfahrensvorschlag CH: Fehlerquelle |
|||||||||||||||||||||||||||
5Ah | Temporäre Datei erstellen CX: Dateiattribut (nur Bits 0124) DS:DX: Adresse ASCIIZ-Pfadname |
CF zeigt Fehler (AX: Fehlercode) sonst AX: Dateihandle |
|||||||||||||||||||||||||||
5Bh | neue Datei erstellen CX: Datei-Attribut (nur Bits 0124) DS:DX: Adresse ASCIIZ-Pfadname |
CF zeigt Fehler (AX: Fehlercode) sonst AX: Dateihandle |
|||||||||||||||||||||||||||
5Ch | Datei sperren/freigeben AL: Modus (0=sperren, 1=freigeben) BX: Dateihandle CX:DX: 32-Bit-Offset SI:DI: 32-Bit-Datenbereichslänge |
CF zeigt Fehler (AX: Fehlercode) Funktioniert nur bei installierter File-Sharing-Software |
|||||||||||||||||||||||||||
5Dh | Erweiterten Fehler setzen AL: 0Ah DS:DX: Adresse Paramterblock |
keine Parameterblock:
|
|||||||||||||||||||||||||||
5Eh | Maschinenspezifika | ||||||||||||||||||||||||||||
5Eh | Maschinennamen lesen AL: 00h DS:DX: Adresse 16-Byte-Puffer |
CF zeigt Fehler (AX: Fehlercode) sonst CH: Gültigkeit CL: Nummer des Netzwerkbios |
|||||||||||||||||||||||||||
5Eh | Maschinennamen setzen AL: 01h |
keine | |||||||||||||||||||||||||||
5Eh | Druckerzeichenkette setzen AL: 02h |
keine | |||||||||||||||||||||||||||
5Eh | Druckerzeichenkette lesen AL: 03h |
keine | |||||||||||||||||||||||||||
5Fh | Eintrag aus Zuweisungsliste lesen AL: 02h |
keine | |||||||||||||||||||||||||||
5Fh | Eintrag in Zuweisungsliste einfügen AL: 03h |
keine | |||||||||||||||||||||||||||
5Fh | Eintrag aus Zuweisungsliste löschen AL: 04h |
keine | |||||||||||||||||||||||||||
62h | PSP-Adresse ermitteln | BX: PSP-Segment-Adresse | |||||||||||||||||||||||||||
65h | Länderinformationen | ||||||||||||||||||||||||||||
65h | Standard-Länderinfors ermitteln AL: 01h |
keine | |||||||||||||||||||||||||||
65h | Zeiger auf Großschrifttabelle ermitteln AL: 02h |
keine | |||||||||||||||||||||||||||
65h | Zeiger auf Dateinamentabelle zur Großschrift ermitteln AL: 04h |
keine | |||||||||||||||||||||||||||
65h | Begrenzungszeichen für Dateinamen ermitteln AL: 05h |
keine | |||||||||||||||||||||||||||
65h | Ordnugstabelle ermitteln AL: 06h |
keine | |||||||||||||||||||||||||||
65h | Zeichen umwandeln AL: 20h |
keine | |||||||||||||||||||||||||||
65h | Zeichenkette umwandeln AL: 21h |
keine | |||||||||||||||||||||||||||
65h | ASCIIZ-Kette umwandeln AL: 22h |
keine | |||||||||||||||||||||||||||
66h | Zeichensatztabellen | ||||||||||||||||||||||||||||
66h | Globale Zeichensatztabelle ermitteln AL: 01h |
keine | |||||||||||||||||||||||||||
66h | Globale Zeichensatztabelle setzen AL: 02h |
keine | |||||||||||||||||||||||||||
67h | Maximale Handleanzahl setzen BX: Handle-Anzahl |
CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
68h | Dateipuffer schreiben | CF zeigt Fehler (AX: Fehlercode) | |||||||||||||||||||||||||||
6Ch | Erweitertes Öffnen BX: Modus CX: Datei-Attribut DX: Reaktions DS:SI: Adresse ASCIIZ-Pfadname |
CF zeigt Fehler (AX: Fehlercode) |
Wert | Bedeutung |
---|---|
0FFh | doppelseitige 5,25" Disk, 8 Sektoren/Spur, 40 Spuren |
0FEH | einseitige 5,25" Disk, 8 Sektoren/Spur, 40 Spuren (auch 8"-Disk) |
0FDh | doppelseitige 5,25" Disk, 9 Sektoren/Spur, 40 Spuren (auch 8"-Disk) |
0FCh | einseitige 5,25" Disk, 9 Sektoren/Spur, 40 Spuren |
0FBh | doppelseitige 3,5" Disk, 8 Sektoren/Spur, 80 Spuren |
0FAh | einseitige 5,25" Disk, 8 Sektoren/Spur, 80 Spuren |
0F9h | doppelseitige 5,25" Disk, 15 Sektoren/Spur, 40 Spuren doppelseitige 3,5" Disk, 9 Sektoren/Spur, 80 Spuren |
0F8h | Festplatte |
0F0h | doppelseitige 5,25" Disk, 15 Sektoren/Spur, 80 Spuren doppelseitige 3,5" Disk, 36 Sektoren/Spur, 80 Spuren doppelseitige 3,5" Disk, 18 Sektoren/Spur, 80 Spuren |
Offset | Datentyp | Bedeutung |
---|---|---|
00h | Byte | Nummer des Laufwerks |
01h | Byte | Physikalische Nummer des Laufwerkes |
02h | Word | Anzahl Bytes/Sektor |
04h | Byte | Anzahl Sektoren/Cluster - 1 |
05h | Byte | Anzahl Sektoren/Cluster 2^x |
06h | Word | Nummer des ersten FAT-Sektors |
08h | Byte | Anzahl der FATs |
09h | Word | Anzahl Stammverzeichniseinträge |
0Bh | Word | Nummer des ersten Datensektors |
0Dh | Word | Anzahl Cluster + 1 |
0Fh | Word | Anzahl Sektoren/FAT |
11h | Word | Nummer des ersten Sektors im Stammverzeichnis |
13h | DWord | Zeiger auf den Gerätetreiberkopf |
17h | Byte | Speichermedium |
18h | Byte | Kennzeichen: Laufwerk schon benutzt |
19h | DWord | Zeiger auf den nächsten DPB |
1Dh | Word | Zeiger auf den letzten belegten Cluster |
1Fh | Word | Anzahl freie Cluster |
Code | Bedeutung | Code | Bedeutung |
---|---|---|---|
000 | Abfrage aktueller Systemparameter | 001 | USA |
002 | Kanada | 003 | Lateinamerika |
031 | Holland | 032 | Belgien |
033 | Frankreich | 034 | Spanien |
036 | Ungarn | 038 | Jugoslawien |
039 | Italien | 041 | Schweiz |
042 | Tschechoslowakei | 044 | Großbritannien |
045 | Dänemark | 046 | Schweden |
047 | Norwegen | 048 | Polen |
049 | Deutschland | 055 | Brasilien |
061 | International | 081 | Japan |
085 | Korea | 086 | China |
088 | Bangladesh | 090 | Türkei |
351 | Portugal | 354 | Island |
358 | Finnland |
Byte | Bedeutung |
---|---|
00h | Datumsformat (0=USA [MMTTJJ]; 1=Europa [TTMMJJ]; 3=Japan [JJMMTT] |
01h | immer 0 |
02h-06h | ASCIIZ-String für landesspezifisches Währungssymbol ('DM'); Rest ist #0 |
07h | ASCII-Code für landesspezifisches Tausendertrennzeichen ('.') |
08h | immer 0 |
09h | ASCII-Code für landesspezifisches Dezimalzeichen (',') |
0Ah | immer 0 |
0Bh | ASCII-Code für landesspezifisches Datumstrennzeichen ('.') |
0Ch | immer 0 |
0Dh | ASCII-Code für landesspezifisches Zeittrennzeichen (':') |
0Eh | immer 0 |
0Fh | Gibt an, ob das Währungssymbol dem Betrag vorangeht (Bit 0=0) oder dem Betrag folgt (Bit 0=1); außerdem, ob zwischen beiden ein Leerzeichen (Bit 1=0) oder nicht (Bit 1=1) stehen soll |
10h | gibt Anzahl der Nachkommastellen bei Währungsangaben an |
11h | Zeitformat; 0=12-Stunden-Format, 1=24-Stunden-Format |
12h | Adresse des landesspezifischen Groß&Kleinbuchstabenwandlers; wird mit zu wandelndem ASCII-Code zwischen 80h und 0FFh in AL aufgerufen |
16h | Listentrennzeichen |
18h-21h | reserviert für DOS |
Bitnummer | Bedeutung |
---|---|
0-1 | Dateiattribut; 00b=readonly; 01b=writeonly; 10b=read an write |
2-3 | immer 0 |
4-6 | File-Sharing-Modus (nur mit installierter Software in einem Netzwerk) 000b=jeder Prozeß kann auf die Datei zugreifen, falls sie nicht schon ein anderer Prozeß mit einem anderen Zugriffscode benutzt 001b=nur der aktuelle Prozeß darf auf die Datei zugreifen, sie aber nur einmal öffnen 010b=ein anderer Prozeß darf die Datei nur lesen 011b=ein anderer Prozeß darf die Datei nur beschreiben 100b=ein anderer Prozeß darf die Datei lesen und beschreiben |
7 | Handle-Flag 0=auch vom aktuellen Prozeß aus aufgerufene Programme dürfen auf das Handle dieser Datei zugreifen 1=nur der aktuelle Prozeß darf das Handle der Datei benutzen |
Bitnummer | Bedeutung |
---|---|
0 | wenn 1: Datei ist readonly |
1 | wenn 1: Datei ist hidden |
2 | wenn 1: Systemdatei |
3 | wenn 1: Volume-Label |
4 | wenn 1: Verzeichnis |
5 | wenn 1: Archiv-Datei |
Der Wert 3Fh steht für Anyfile |
Bitnummer | Bedeutung |
---|---|
0 | wenn 1: Treiber ist ein logischer CON-Eingabe-Treiber (Tastatur) |
1 | wenn 1: Treiber ist ein logischer CON-Ausgabe-Treiber (Bildschirm) |
2 | wenn 1: Treiber ist ein NUL-Treiber |
3 | wenn 1: Treiber ist ein Clock-Treiber |
4 | reserviert |
5 | wenn 0: Treiber arbeitet im Raw-Modus, wenn 1 im Cooked-Modus |
6 | wenn 0: Dateiende bei Eingabe; wenn 1: Treiber kann Daten liefern |
8-10 | reserviert |
11 | Treiber versteht Öffnen/Schließen |
12 | Netzwerk-Treiber |
13 | Treiber unterstützt Belegt-Kontrollzeichen |
14 | wenn 1: Treiber kann Kontrollzeichenketten, die mit den Unterfunktionen 02 und 03 gesendet werden, verarbeiten |
15 | reserviert |
Bitnummer | Bedeutung |
---|---|
0-8 | reserviert (immer 0) |
9 | wenn 1: Laufwerk ist lokal vorhanden, wird aber von anderen Einheiten im Netz adressiert |
10-11 | reserviert (immer 0) |
12 | immer 1 |
13-14 | reserviert (immer 0) |
15 | wenn 0: Laufwerk existiert physikalisch |
Bitnummer | Bedeutung |
---|---|
0 | reserviert |
1 | wenn 1: Partitionen von mehr als 32 MB werden unterstützt |
2-5 | reserviert (immer 0) |
6 | wenn 1: Funktion 440Dh von Int 21h wird unterstützt |
7 | wenn 1: Funktion 4411h von Int 21h wird unterstützt |
8 | reserviert (immer 0) |
9 | wenn 1: Laufwerk ist lokal vorhanden, wird aber von anderen Einheiten im Netz adressiert |
10 | reserviert (immer 0) |
11 | wenn 1: Funktion 4408h von Int 21h und die Kommandocodes 0Dh, 0Eh und 0Fh werden unterstützt |
12 | 0 |
13 | wenn 0: Speichermedium arbeitet mit Standardformat |
14 | wenn 1: Int 21h unterstützt die Funktionen 4404h und 4405h |
15 | wenn 0: das Laufwerk existiert physikalisch |
Bytenummer | Bedeutung |
---|---|
00h | Spezialfunktionen |
01h | Gerätetyp |
02h-03h | Geräteattribute |
04h-05h | Anzahl Zylinder/Sektor |
06h | Typ des Speichermediums |
07h-08h | Segmentadresse des BPB |
09h-0Ah | Offsetadresse des BPB |
0Bh-0Ch | Segmentadresse des Spurlayouts |
0Dh-0E | Offsetadresse des Spurlayouts |
Bytenummer | Bedeutung |
---|---|
00h-01h | Anzahl Bytes/Sektor |
02h | Anzahl Sektoren/Cluster |
03h-04h | Anzahl reservierter Sektoren |
05h | Anzahl FATs |
06h-07h | Anzahl Einträge im Hauptverzeichnis |
08h-09h | Anzahl gesamter Sektoren |
0Ah | Beschreibungscode des Speichermediums |
0Bh-0Ch | Anzahl Sektoren/FAT |
0Dh-0Eh | Anzahl Sektoren/Spur |
0Fh-10h | Anzahl der Schreib/Leseköpfe |
11h-14h | versteckte Sektoren |
15h-1Ah | reserviert |
Code | Bedeutung |
---|---|
00h | First fit |
01h | Best fit |
02h | Last fit |
80h | durchsucht auch den UMB-Bereich, wenn kein Fund dann nach Methode 00h |
81h | durchsucht auch den UMB-Bereich, wenn kein Fund dann nach Methode 01h |
82h | durchsucht auch den UMB-Bereich, wenn kein Fund dann nach Methode 02h |
0Ch | durchsucht nur den UMB-Bereich |
0C1h | durchsucht nur den UMB-Bereich |
0C2h | durchsucht nur den UMB-Bereich |
Offset | Bedeutung |
---|---|
00h-14h | reserviert für DOS |
15h | Attribut des Eintrags |
16h-17h | Erstellungszeit: Bits 0-4=Sekunde in 2er-Schritten, 5-10=Minute, 11-15=Stunde |
18h-19h | Erstellungsdatum: Bits 0-4=Tag (1-31), 5-8=Monat (1-12), 9-15=Jahr als Offset zu 1980 |
1Ah-1Dh | Größe in low:high |
1Eh-2Bh | ASCIIZ-Dateiname |