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ň