| 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: |