Práce se souborovým systémem pomocí služeb DOSu Odkazy na soubor probíhají pomocí věci, která se jmenuje FileHandle. Je to 16-ti bitové číslo. DOS má někde v paměti tabulku, ve které ma uloženy všechny důležité údaje o souboru. Aktuální pozici, jeho velikost, atd... FileHandle je potom ukazatel do této tabulky. Zadáte-li v CONFIG.SYS FILES=20, říkáte tím dosu, aby si v paměti vyhradil místo na tabulku pro 20 souborů. OTEVŘENÍ SOUBORU: Vstup: AH = 3Dh AL = mód otevření bity 7-3: Nezajímavé věci bity 2-0: Způsob přístupu 000 jen pro čtení 001 jen pro zápis 010 čtení i zápis DS:DX = ukazatel na jméno souboru v ASCIIZ ASCIIZ je text v normalním ASCII ukončený bajtem 0. Výstup: CF = 1 chyba AX = číslo chyby, nám stačí, že pokud je nastaveno carry, nepodařilo se otevřít soubor CF = 0 bez chyby AX = FileHandle, toto si někam uložte, to je jediná cesta, jak můžete pracovat s tímto souborem! UZAVŘENÍ SOUBORU Vstup: AH = 3Eh BX = FileHandle Výstup: CF = 1 Chyba ČTENÍ SOUBORU Vstup: AH = 3Fh BX = FileHandle CX = Počet načítaných bajtů. DS:DX = Ukazatel do paměti, kam mají být umístěna načtená data. Výstup: AX = Kolik bajtů bylo načteno. ZÁPIS DO SOUBORU Vstup: AH = 40h BX = FileHandle CX = Kolik bajtů zapsat DS:DX = Kde jsou v paměti data, která mají být zapsána na disk. Výstup: AX = Kolik bajtů bylo zapsáno, jestli se to liší od požadovaného počtu, máme někde chybu. VYTVOŘENÍ SOUBORU Vstup: AH = 3Ch CL = atribut souboru bit 0: read-only bit 1: hidden bit 2: system bit 3: volume label bit 4: sub directory bit 5: Archive bit 6&7: nepoužívat DS:DX= ukazatel na ASCIIZ název vytvářeného fajlu Výstup: CF = 1 chyba AX = kód chyby CF = 0 bez chyby AX = FileHandle SMAZÁNÍ SOUBORU Vstup: AH = 41h DS:DX = ukazatel na ASCIIZ jméno fajlu Výstup: CF = 1 chyba AX = kód chyby 2 = file not found, 3 = path not found 5 = access denied CF = 0 bez chyby, soubor je pryč PŘESUN UKAZATELE V SOUBORU Vstup: AH = 42h BX = FileHandle CX:DX = 32 bit ukazatel do souboru, kam se bude sunout. AL = 0 CX:DX je posun od začátku fajlu. = 1 CX:DX je posun od aktuální pozice. = 2 CX:DX je posun od konce souboru. Výstup: CF = 1 chyba AX = chybový kód CF = 0 bez chyby, posunuto. DX:AX současná pozice v souboru. ZMĚNA ATRIBUTU Vstup: AH = 43h DS:DX = ukazatel na jméno souboru v ASCIIZ AL = 0 v CX vrátí aktuální atributy. AL = 1 nastaví atributy podle CX Výstup: CF = 1 chyba AX = Chybový kód 2 = file not found, 3 = path not found. 5 = access denied CF = 0 bez problémů výheň