| Funktion |
Unter - Funktion |
Bedeutung |
Eingabe |
Ausgabe |
DOS - Implementierung |
Anmerkungen |
| 3Ch |
- |
Datei erstellen |
AH=3Ch
CX=Attribut
DS:DX=FAR-Zeiger auf den Dateinamen (ASCIIZ) |
CF=Fehler
AX=Handle oder Fehlercode |
2.0 |
Erstellt eine neue Datei. Bestehende Dateien werden überschrieben. |
| 3Dh |
- |
Datei öffnen |
AH=3Dh
AL=Zugriffscode (0: nur Lesen; 1: nur Schreiben; 2: beides)
DS:DX=FAR-Zeiger auf den Dateinamen (ASCIIZ) |
CF=Fehler
AX=Handle oder Fehlercode |
2.0 |
- |
| 3Eh |
- |
Datei schließen |
AH=3Eh
BX=Handle |
CF=Fehler
AX=Fehlercode (6=ungültiges Handle) |
2.0 |
Schließt eine Datei und entleert damit die internen Schreibpuffer. |
| 3Fh |
- |
Datei lesen |
AH=3Fh
BX=Handle
CX=Anzahl Bytes
DS:DX=Adresse des Puffers |
CF=Fehler
AX=Anzahl gelesener Bytes oder Fehlercode |
2.0 |
Der Dateizeiger wird hinter die gelesene Stelle positioniert. |
| 40h |
- |
Datei beschreiben |
AH=40h
BX=Handle
CX=Anzahl Bytes
DS:DX=Adresse des Puffers |
CF=Fehler
AX=Anzahl geschriebener Bytes oder Fehlercode |
2.0 |
Der Dateizeiger wird hinter die beschriebene Stelle positioniert. |
| 41h |
- |
Datei löschen |
AH=41h
DS:DX=FAR-Zeiger auf den Dateinamen (ASCIIZ) |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry) |
2.0 |
Der Dateiname kann eine komplette Pfad- und Laufwerks - Bezeichnung sein. Die
Datei darf nicht geöffnet sein und keine speziellen Dateiattribute haben. |
| 42h |
- |
Dateizeiger bewegen |
AH=42h
AL=Modus (0: absolut; 1: von der aktuellen Stelle; 2: vom Ende an)
BX=Handle
CX=Position (Bits 16-31)
DX=Position (Bits 0-15) |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry)
DX=neue Position des Dateizeigers (Bits 16-31)
AX=neue Position des Dateizeigers (Bits 0-7) |
2.0 |
Kann auch zur Bestimmung der aktuellen Position benutzt werden (einfach CX und DX
gleich null setzen und dann Modus gleich eins wählen) |
| 43h |
00h |
Datei - Attribute lesen |
AH=43h
AL=00h
DS:DX=Far-Zeiger auf ASCIIZ - String |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry)
CX=Attribute |
2.0 |
Der Dateiname darf eine komplette Laufwerks- und Pfadangabe enthalten. |
| 43h |
01h |
Datei - Attribute setzen |
AH=43h
AL=01h
CX=Attribute
DS:DX=Far-Zeiger auf ASCIIZ - String |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry) |
2.0 |
Der Dateiname darf eine komplette Laufwerks- und Pfadangabe enthalten. |
| 44h |
00h |
IOCTL: Geräte - Attribut lesen |
AH=44h
AL=00h
BX=Handle |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry)
DX=Geräte - Daten (Word) |
2.0 |
k.A. |
| 44h |
01h |
IOCTL: Geräte - Attribut setzen |
AH=44h
AL=01h
BX=Handle |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry) |
2.0 |
k.A. |
| 44h |
02h |
IOCTL: Zeichen von Zeichentreiber empfangen |
AH=44h
AL=02h
BX=Handle
CX=Anzahl der vom Handle zu lesenden Bytes
DX=Offset des Zeigers, der leeren Buffer angibt
DS=Segment des Zeigers, der leeren Buffer angibt |
CF=Fehler
AX=gelesene Bytes / Fehlercode
Buffer=gelesene Daten |
2.0 |
k.A. |
| 44h |
03h |
IOCTL: Zeichen an Zeichentreiber senden |
AH=44h
AL=03h
BX=Handle
CX=Anzahl der an Handle zu sendenden Bytes
DX=Offset des Zeigers, der Buffer der zu schreibenden Daten angibt
DS=Segment des Zeigers, der Buffer der zu schreibenden Daten angibt |
CF=Fehler
AX=geschriebene Bytes / Fehlercode |
2.0 |
k.A. |
| 44h |
04h |
IOCTL: Daten von einem Blocktreiber empfangen |
AH=44h
AL=04h
BL=logische Laufwerksnummer
CX=Anzahl der vom Laufwerk zu lesenden Bytes
DX=Offset des Zeigers, der leeren Buffer angibt
DS=Segment des Zeigers, der leeren Buffer angibt |
CF=Fehler
AX=gelesene Bytes / Fehlercode
Buffer=gelesene Daten |
2.0 |
0=Standard, 1=A, 2=B,... |
| 44h |
05h |
IOCTL: Daten an einen Blocktreiber senden |
AH=44h
AL=05h
BL=logische Laufwerksnummer
CX=Anzahl der auf dem Laufwerk zu schreibenden Bytes
DX=Offset des Zeigers, der Buffer mit Daten angibt
DS=Segment des Zeigers, der Buffer mit Daten angibt |
CF=Fehler
AX=geschriebene Bytes / Fehlercode |
2.0 |
0=Standard, 1=A, 2=B,... |
| 44h |
06h |
IOCTL: Eingabe - Status ermitteln |
AH=44h
AL=06h
BX=Handle |
CF=Fehler
AH=Fehlercode (bei gesetztem Carry)
AL=Status |
2.0 |
Status für Zeichentreiber: 00=nicht bereit, FF=bereit.
Status für Blocktreiber: 00=Zeiger am Dateieende, FF=bereit |
| 44h |
07h |
IOCTL: Ausgabe - Status ermitteln |
AH=44h
AL=07h
BX=Handle |
CF=Fehler
AL=Status |
2.0 |
Status für Zeichentreiber: 00=nicht bereit, FF=bereit.
Status für Blocktreiber: 00=Zeiger am Dateieende, FF=bereit |
| 44h |
08h |
IOCTL: Ist das Medium wechselbar? |
AH=44h
AL=08h
BL=logische Laufwerksnummer |
CF=Fehler
AX=Status / Fehlercode |
3.0 |
Laufwerke: 0=Standard, 1=A, 2=B,...
Status: 00=Medium austauschbar, 01=Medium nicht austauschbar, 0Fh=ungültiges
Gerät |
| 44h |
09h |
IOCTL: Device - Remote - Test |
AH=44h
AL=09h
BL=logische Laufwerksnummer |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry)
DH=Geräte - Attribut - Code (Bit 12 gesetzt: Remote-Gerät, Bit 12 gelöscht:
Local-Gerät) |
3.1 |
0=Standard, 1=A, 2=B, ... |
| 44h |
0Ah |
IOCTL: Handle - Remote - Test |
AH=44h
AL=0Ah
BX=Handle |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry)
DH=Geräte - Attribt - Code (Bit 15 gesetzt: Remote-Gerät, Bit 15 gelöscht:
Local-Gerät) |
3.1 |
k.A. |
| 44h |
0Bh |
IOCTL: Zugriffswiederholung ändern |
AH=44h
AL=0Bh
CX=Anzahl der Warteschleifen zwischen Zugriffsversuchen
DX=Anzahl der Wiederholungs - Versuche |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry) |
3.0 |
Die Wartezeit ist von der Taktgeschwindigkeit des Computers abhängig.
Standard sind 1 Schleife und 3 Wiederholungen. |
| 44h |
0Ch, Minor 45h |
Zähler setzen |
AL=44h
AH=0Ch
BX=Handle
CH=Kategorie
CH=45h
DX=Zeigeroffset auf Datenpuffer
DS=Zeigersegment auf Datenpuffer
Buffer=Zähler |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry) |
3.3 |
Kategorie ist eine der folgenden:
1=serielle Schnittstelle, 3=Bildschirm, 5=Paralleldrucker |
| 44h |
0Ch, Minor 4Ah |
Codeseite wählen |
AH=44h
AL=0Ch
BX=Handle
CH=Kategorie
CL=4Ah
DX=Zeigeroffset auf Datenpuffer
DS=Zeigersegment auf Datenpuffer
Buffer=Parameter-Block der Codeseite oder Codepage -
Struktur |
CF=Fehler |
3.3 |
Kategorie ist eine der folgenden:
1=serielle Schnittstelle, 3=Bildschirm, 5=Paralleldrucker |
| 44h |
0Ch, Minor 4Dh |
Vorbereitung der Codeseite: Ende |
AH=44h
AL=0Ch
BX=Handle
CH=Kategorie
CL=4Dh |
CF=Fehler |
3.3 |
Kategorie ist eine der folgenden:
1=serielle Schnittstelle, 3=Bildschirm, 5=Paralleldrucker |
| 44h |
0Ch, Minor 5Fh |
Bildschirmmodus setzen |
AH=44h
AL=0Ch
BX=Handle
CH=03h
CL=5Fh
DX=Zeigeroffset auf Datenpuffer
Buffer=Displaymode - Struktur |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry) |
3.3 |
k.A. |
| 44h |
0Ch, Minor 65h |
Zähler lesen |
AH=44h
AL=0Ch
BX=Handle
CH=Kategorie
CL=65h
DX=Zeigeroffset auf Datenpuffer |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry)
Buffer=Zähler |
3.3 |
Kategorie ist eine der folgenden:
1=serielle Schnittstelle, 3=Bildschirm, 5=Paralleldrucker |
| 44h |
0Ch, Minor 6Ah |
Gewählte Codeseite abfragen |
AH=44h
AL=0Ch
BX=Handle
CH=Kategorie
CL=6Ah
DX=Zeigeroffset auf Datenpuffer
Buffer=Codeseiten - Parameterblock oder Codepage -
Struktur |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry)
Buffer=Codeseiten - Parameterblock oder Codepage -
Struktur |
3.3 |
Kategorie ist eine der folgenden:
1=serielle Schnittstelle, 3=Bildschirm, 5=Paralleldrucker |
| 44h |
0Ch, Minor 6Bh |
Codeseiten - Vorbereitungsliste abfragen |
AH=44h
AL=0Ch
BX=Handle
CH=Kategorie
CL=6Bh
DX=Zeigeroffset auf Datenpuffer
Buffer=Codeseiten - Parameterblock oder Codepage -
Struktur |
CF=Fehler
AX=Fehlercode(bei gesetztem Carry)
Buffer=Codeseiten - Parameterblock oder Codepage -
Struktur |
3.3 |
Kategorie ist eine der folgenden:
1=serielle Schnittstelle, 3=Bildschirm, 5=Paralleldrucker |
| 44h |
0Ch, Minor 7Fh |
Bildschirmmodus ermitteln |
AH=44h
AL=0Ch
BX=Handle
CH=03h
CL=7Fh
DX=Zeigeroffset auf Datenpuffer
DS=Zeigersegment auf Datenpuffer
Buffer=Displaymode - Struktur |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry)
Buffer=Displaymode - Struktur |
4.0 |
k.A. |
| 44h |
0Dh, Minor 40h |
Geräte - Parameter setzen |
AH=44h
AL=0Dh
BX=Laufwerk
CH=08h
CL=40h
DX=Zeigeroffset auf Parameterblock
DS=Zeigersegment auf Parameterblock
Buffer=Deviceparams - Struktur |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry) |
3.3 |
k.A. |
| 44h |
0Dh, Minor 41h |
Spur auf logischem Laufwerk schreiben |
AH=44h
AL=0Dh
BX=Laufwerk
CH=08h
CL=41h
DX=Zeigeroffset auf Parameterblock
DS=Zeigersegment auf Parameterblock
Buffer=Rwblock- Struktur |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry) |
3.3 |
k.A. |
| 44h |
0Dh, Minor 42h |
Spur auf logischem Laufwerk formatieren |
AH=44h
AL=0Dh
BX=Laufwerk
CH=08h
CL=42h
DX=Zeigeroffset auf Parameterblock
DS=Zeigersegment auf Parameterblock
Buffer=Formatblock oder Fvblock - Struktur |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry)
Buffer=Formatblock oder Fvblock - Struktur |
3.3 |
k.A. |
| 44h |
0Dh, Minor 46h |
Medien-ID setzen |
AH=44h
AL=0Dh
BX=Laufwerk
CH=08h
CL=46h
DX=Zeigeroffset auf Parameterblock
DS=Zeigersegment auf Parameterblock
Buffer=Medien-ID oder MID - Struktur |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry) |
4.0 |
k.A. |
| 44h |
0Dh, Minor 60h |
Geräte - Parameter ermitteln |
AH=44h
AL=0Dh
BX=Laufwerk
CH=08h
CL=60h
DX=Zeigeroffset auf Parameterblock
DS=Zeigersegment auf Parameterblock |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry)
Buffer=gelesener Block oder Rwblock - Struktur |
3.2 |
k.A. |
| 44h |
0Dh, Minor 62h |
Spur auf logischem Laufwerk prüfen |
AH=44h
AL=0Dh
BX=Laufwerk
CH=08h
CL=62h
DX=Zeigeroffset auf Puffer
DS=Zeigersegment auf Puffer
Buffer=Fvblock - Struktur |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry) |
3.2 |
k.A. |
| 44h |
0Dh, Minor 66h |
Medien-ID bestimmen |
AH=44h
AL=0Dh
BX=Laufwerk
CH=08h
CL=66h
DX=Zeigeroffset auf Puffer
DS=Zeigersegment auf Puffer |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry)
Buffer=Medien-ID oder MID - Struktur |
4.0 |
k.A. |
| 44h |
0Dh, Minor 68h |
Medientyp aufspüren |
AH=44h
AL=0Dh
BX=Laufwerk
CH=08h
CL=68h
DX=Zeigeroffset auf Parameterblock
DS=Zeigersegment auf Parameterblock |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry)
Buffer=Medientyp |
5.0 |
k.A. |
| 44h |
0Eh |
Laufwerk lesen |
AH=44h
AL=0Eh
BL=logische Laufwerksnummer |
CF=Fehler
AX=Laufwerk / Fehlercode |
3.2 |
Laufwerk: 0=Standard, 1=A,...
AL übergibt den physikalischen Laufwerksaufbau; 00=dem logischen Laufwerk ist nur ein
Laufwerk zugeordnet; 1-26 (A-Z)=physikalisches Laufwerk ist dem logischen zugeordnet. |
| 44h |
0Fh |
Laufwerk setzen |
AH=44h
AL=0Fh
BX=logische Laufwerksnumer |
CF=Fehler
AX=benutztes logisches Laufwerk / Fehlercode |
3.2 |
Laufwerk: 0=Standard, 1=A,...
AL übergibt den physikalischen Laufwerksaufbau; 00=dem logischen Laufwerk ist nur ein
Laufwerk zugeordnet; 1-26 (A-Z)=physikalisches Laufwerk ist dem logischen zugeordnet. |
| 44h |
10h |
IOCTL - Handle abfragen |
AH=44h
AL=10h
BX=Handle
CH=Kategorie (1:serielle Schnittstelle, 3: Bildschirm, 5: Parallelsrucker)
CL=Funktion (45h: Zähler setzen, 65h: Zähler abfragen) |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry) |
5.0 |
k.A. |
| 44h |
11h |
IOCTL - Gerät abfragen |
AH=44h
AL=11h
BL=Laufwerk (0: Vorgabe, 1:A,...)
CH=08h
CL=Funktion |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry) |
5.0 |
Funktion ist eine der folgenden:
40h: Geräteparameter setzen, 41h: Spur auf logischem Laufwerk schreiben, 42h: Spur auf
logischem Laufwerk formatieren, 46h: Medien-ID setzen, 60h: Geräteparameter bestimmen, 61h:
Spur auf logischem Laufwerk lesen, 62h: Spur auf logischem Laufwerk prüfen, 66h: Medien-ID
bestimmen, 68h: Medientyp aufspüren. |
| 44h |
52h |
DOS-Version |
AH=44h
AL=52h |
AX=DX=Versionskennung
1063h: DR DOS 3.41
1065h: DR DOS 5.00
1067h: DR DOS 6.00
1072h: Novell DOS 7.00 |
DR DOS, Novell DOS |
DR DOS bis 6.0 liefert immer 3.31 und Novell DOS 7 die Versionsnummer
6.0 |
| 45h |
- |
Datei - Handle verdoppeln |
AH=45h
BX=alter Handle |
CF=Fehler
AX=neuer Handle / Fehlercode |
2.0 |
k.A. |
| 46h |
- |
Datei - Handles angleichen |
AH=46h
BX=bestehender Handle
CX=zweiter Handle |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry) |
2.0 |
k.A. |
| 47h |
- |
Aktuelles Verzeichnis ermitteln |
AH=47h
DL=Laufwerks - Kennzeichen
DS:SI=Zeiger auf einen Puffer |
CF=Fehler
AX=Fehlercode (bei gesetztem Carry) |
2.0 |
Legt das aktuelle Verzeichnis des angegebenen Laufwerks (1=A, 2=B,...) in dem
übergebenen Puffer von der Größe 64 Bytes ab. Der führende und der
abschließende Backslash werden weggelassen. |
| Code |
Bedeutung |
| 01h |
ungültiger Funktionscode |
| 02h |
Datei nicht gefunden |
| 03h |
Pfad nicht gefunden |
| 04h |
zu viele offene Dateien |
| 05h |
Zugriff verweigert |
| 06h |
ungültiges Handle |
| 07h |
Arena zerstört |
| 08h |
nicht genug Speicherplatz |
| 09h |
ungültiger Block |
| 0Ah |
ungültige Umgebung |
| 0Bh |
ungültiges Format |
| 0Ch |
ungültiger Zugriffscode |
| 0Dh |
ungültige Daten |
| 0Eh |
reserviert |
| 0Fh |
ungültiges Laufwerk |
| 10h |
Versuch, das aktuelle Verzeichnis zu entfernen |
| 11h |
nicht dasselbe Gerät |
| 12h |
keine Datei mehr |
| 13h |
Diskette ist schreibgeschützt |
| 14h |
Disketten-Unit ist fehlerhaft |
| 15h |
Laufwerk nicht bereit |
| 16h |
ungültiger Befehl |
| 17h |
CRC-Fehler |
| 18h |
Länge der Request-Struktur falsch |
| 19h |
Suchfehler |
| 1Ah |
Keine DOS-Diskette |
| 1Bh |
Sektor nicht gefunden |
| 1Ch |
Papier aus |
| 1Dh |
Schreibfehler |
| 1Eh |
Lesefehler |
| 1Fh |
Allgemeienr Fehler |
| 20h |
Fehler bei gemeinsamen Zugriff |
| 21h |
Sperr-Fehler |
| 22h |
Falsche Diskette |
| 23h |
FCB nicht zugänglich |
| 24h |
Puffer für gemeinsamen Zugriff: Überlauf |
| 25h |
Falsche Codeseite |
| 26h |
Handle-EOF |
| 27h |
Handle-Diskette voll |
| 28h - 31h |
reserviert |
| 32h |
Netzanfrage nicht unterstützt |
| 33h |
entfernter Rechner nicht bereit |
| 34h |
doppelter Name im Netz |
| 35h |
Netzpfad nicht gefunden |
| 36h |
Netz beschäftigt |
| 37h |
Netztreiber existiert nicht mehr |
| 38h |
BIOS-Befehlsgrenze ins Netz überschritten |
| 39h |
Netzkartenfehler |
| 3Ah |
Falsche Antwort vom Netz |
| 3Bh |
unerwarteter Netzfehler |
| 3Ch |
nicht kompatible Karte in fernem Computer |
| 3Dh |
Druckerwarteschlange voll |
| 3Eh |
Nicht genug Platz für Druckdatei |
| 3Fh |
Druckdatei wurde gelöscht |
| 40h |
Zugriff verweigert |
| 41h |
Typ des Netztreibers nicht korrekt |
| 42h |
Netzname nicht gefunden |
| 43h |
Grenze der BIOS-Sitzung im Netz überschritten |
| 44h |
temporäre Pause |
| 45h |
Neztanfrage abgelehnt |
| 46h |
Druck- oder Diskettenumlenkung angehalten |
| 47h |
Netzanfrage nicht akzeptiert |
| 48h |
Drucker oder Plattenumleitung angehalten |
| 49h - 4Fh |
reserviert |
| 50h |
Datei existiert schon |
| 51h |
FCB doppelt |
| 52h |
kann Verzeichniseintrag nicht erstellen |
| 53h |
Interrupt 24h gescheitert |
| 54h |
keine Strukturen mehr |
| 55h |
schon zugewiesen |
| 56h |
ungültiges Passwort (unter DR DOS ab Version 5.0) |
| 57h |
ungültiger Parameter |
| 58h |
Netz-Schreibe-Fehler |
| 59h |
Funktion vom Netz nicht unterstützt |
| 5Ah |
nötige Systemkomponente nicht installiert |
Je nach Funktion sind meist nur bestimmte Codes relevant.
Nur für DOS 3.3 und 4.0. DOS 5.0 verwendet die Struktur
CODEPAGE.
| Offset |
Länge |
Name |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
zulässige Einstellungen |
| 00h |
1 Byte |
dpSpecFunc |
4 |
4 |
4 |
4 |
4 |
|
|
|
Muß 0 sein |
| |
|
|
|
|
4 |
|
|
0=nicht verwenden, 1=Sektoren gleicher Größe |
| |
|
|
|
|
|
4 |
|
0=alle Felder lesen, 1=nur Spuradressenfeld lesen |
| |
|
|
|
|
|
|
4 |
0=neues BPB erstellen, 1=Geräte-BPB verwenden |
| 01h |
1 Byte |
dpDevType |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
9=2.88MB |
| 0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
8=optisch lesen / schreiben |
| 0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
7=1.44MB Floppy |
| 0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
6=Bandlaufwerk |
| 0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
5=Festplatte |
| 0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
4=8" Floppy doppelter Dichte |
| 0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
3=8" Floppy einfacher Dichte |
| 0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
2=720K Floppy |
| 0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1=1.2MB Floppy |
| 0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0=320/360K Floppy |
| 02h |
1 Word |
dpDevAttr |
4 |
4 |
4 |
4 |
4 |
4 |
|
|
Muß auf 0 sein, reserviert |
| |
|
|
|
|
|
4 |
|
0=Diskettenwechsel nicht unterstützt, 1=Diskettenwechsel unterstützt |
| |
|
|
|
|
|
|
4 |
0=Medium entfernbar, 1=Medium nicht entfernbar |
| 04h |
1 Word |
dpCylinders |
|
größte Zylinderanzahl für das Gerät |
| 06h |
1 Byte |
dpMediaType |
|
|
|
|
|
|
|
4 |
0=1.2MB Vierfachdichte, 1=320/360K Doppeldichte |
| 07h |
1 Word |
dpBytesPerSec |
|
|
|
|
|
|
|
|
Bytes per Sektor |
| 09h |
1 Byte |
dpSecPerClust |
|
|
|
|
|
|
|
|
Sektoren pro Cluster; muß aufeinander folgen, Zweierpotenz |
| 0Ah |
1 Word |
dpResSectors |
|
|
|
|
|
|
|
|
Anzahl reservierter Sektoren, meist 1 |
| 0Ch |
1 Byte |
dpFATs |
|
|
|
|
|
|
|
|
Anzahl FATs |
| 0Dh |
1 Word |
dpRootDirEnts |
|
|
|
|
|
|
|
|
Maximalzahl Einträge im Stammverzeichnis |
| 0Fh |
1 Word |
dpSectors |
|
|
|
|
|
|
|
|
Anzahl Sektoren, wenn Laufwerk kleiner oder gleich 32MB, 0=Laufwerk größer als 32MB
und Anzahl Sektoren in dpHugeSectors |
| 11h |
1 Byte |
dpMedia |
|
|
|
|
|
|
|
|
Media-Descriptor-Byte
0F0h: 1.44 oder 2.88MB 3,5" Floppy; 1.2MB 5,25" Floppy
0F8h: Festplatte, jede Größe
0F9h: 720K 3,5" Floppy, 1.2MB 5,25" Floppy
0FAh: 320K 5,25" Floppy
0FBh: 640K 3,5" Floppy
0FCh: 180K 5,25" Floppy
0FDh: 360K 5,25" Floppy
0FEh: 160K 5,25" Floppy
0FFh: 320K 5,25" Floppy |
| 12h |
1 Word |
dpFATsecs |
|
|
|
|
|
|
|
|
Anzahl Sektoren in jeder FAT |
| 14h |
1 Word |
dpSecsPerTrack |
|
|
|
|
|
|
|
|
Anzahl Sektoren pro Spur |
| 16h |
1 Word |
dpHeads |
|
|
|
|
|
|
|
|
Anzahl Köpfe per Laufwerk |
| 18h |
1 DWord |
dpHiddenSecs |
|
|
|
|
|
|
|
|
Anzahl verdeckte Sektoren pro Laufwerk |
| 1Ch |
1 DWord |
dpHugeSectors |
|
|
|
|
|
|
|
|
Anzahl Sektoren, wenn Laufwerk größer 32MB |
DOS 5.0-Struktur. Das Layout bis Offset 6 ist identisch in
früheren DOS-Versionen.
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.
Alle Angaben ohne Gewähr.