DOS_FILE.ASM

TITLE "DOS_FILE" - Ovládá funkce DOSu pro práci se soubory.
.8086                               ; Linkuje se pro 80 86
PAGE 67, 130                        ; Stránka 67 zn., délka 130 zn./řádek








COMMENT @
 ===========================================================================

  Název souboru  :   DOS_FILE.ASM
  Link OBJ & LIB :   DOS_FILE.ZIP
  Datum úprav    :   01.09.97
  Verze programu :   4.00
  (c) Copyright  :   1993,94,95,96,97 by NST 32 , Medo Zdeněk junior

 ===========================================================================@


Knihovna_NST32  SEGMENT PARA PUBLIC 'CODE' USE16
   ASSUME CS:Knihovna_NST32

   PUBLIC __dos_file_open       ; EXTRN  __dos_file_open       :PROC :NEAR
   PUBLIC __dos_file_new        ; EXTRN  __dos_file_new        :PROC :NEAR
   PUBLIC __dos_file_delete     ; EXTRN  __dos_file_delete     :PROC :NEAR
   PUBLIC __dos_file_rename     ; EXTRN  __dos_file_rename     :PROC :NEAR
   PUBLIC __dos_file_atribut    ; EXTRN  __dos_file_atribut    :PROC :NEAR
   PUBLIC __dos_file_date_time  ; EXTRN  __dos_file_date_time  :PROC :NEAR
   PUBLIC __dos_file_point      ; EXTRN  __dos_file_point      :PROC :NEAR
   PUBLIC __dos_file_read       ; EXTRN  __dos_file_read       :PROC :NEAR
   PUBLIC __dos_file_write      ; EXTRN  __dos_file_write      :PROC :NEAR
   PUBLIC __dos_file_close      ; EXTRN  __dos_file_close      :PROC :NEAR






;---------------------------------------------------------------------------
;
;  Popis funkce  :   Otevři soubor - Open File
;  --------------
;
;  Volání(např.) :   mov    al, TypOpen             ; AL = 00 Open pro čtení
;  --------------                                   ; AL = 01 Open pro zápis
;                                                   ; AL = 02 Open pro čtení a zápis
;                    mov    dx, NAME                ; DS:DX Offset názvu+cesta a disk
;                    call   __dos_file_open         ; Otevři soubor
;
;  Výstup        :   CF=1 Nastala chyba,  AX = Kód chyby
;  --------------    BX = Číslo kanálu
;
;  Mění registry :   Flags, AX, BX
;  --------------
;
;---------------------------------------------------------------------------

 __dos_file_open    PROC  NEAR

     mov     ah, 3Dh                         ; Open File
     int     21h
     mov     bx, ax                          ; V BX je kanál
     retn                                    ; Návrat NEAR

 __dos_file_open    ENDP






;---------------------------------------------------------------------------
;
;  Popis funkce  :   Vytvoř soubor - New File
;  --------------
;
;  Volání(např.) :   mov    cx, ATRIBUTY            ; Atributy souboru
;  --------------    mov    dx, NAME                ; DS:DX Offset názvu+cesta a disk
;                    call   __dos_file_new          ; Vytvoř nový soubor pro zápis
;
;  Výstup        :   CF=1 Nastala chyba,  AX = Kód chyby
;  --------------    BX = Číslo kanálu
;
;  Mění registry :   Flags, AX, BX
;  --------------
;
;---------------------------------------------------------------------------

 __dos_file_new PROC  NEAR

     mov     ah, 3Ch                         ; New File
     int     21h
     mov     bx, ax                          ; V BX je kanál
     retn                                    ; Návrat NEAR

 __dos_file_new ENDP





;---------------------------------------------------------------------------
;
;  Popis funkce  :   Smaž soubor - Delete File
;  --------------
;
;  Volání(např.) :   mov    dx, NAME                ; DS:DX Offset názvu+cesta a disk
;  --------------    call   __dos_file_delete       ; Smaž soubor
;
;  Výstup        :   CF=1 Nastala chyba,  AX = Kód chyby
;  --------------
;
;  Mění registry :   Flags, AX
;  --------------
;
;---------------------------------------------------------------------------

 __dos_file_delete  PROC  NEAR

     mov     ah, 41h                         ; Delete File
     int     21h
     retn                                    ; Návrat NEAR

 __dos_file_delete  ENDP





;---------------------------------------------------------------------------
;
;  Popis funkce  :   Přejmenuj soubor - Reaname File
;  --------------
;
;  Volání(např.) :   mov   dx, NAME                   ; DS:DX Offset starého názvu
;  --------------    mov   di, NewNAME                ; ES:DI Offset nového názvu
;                    call  __dos_file_rename          ; Přejmenuj soubor
;
;  Výstup        :   CF=1 Nastala chyba,  AX = Kód chyby
;  --------------
;
;  Mění registry :   Flags, AX
;  --------------
;
;---------------------------------------------------------------------------

 __dos_file_rename  PROC  NEAR

     mov     ah, 56h                         ; Rename File
     int     21h
     retn                                    ; Návrat NEAR

 __dos_file_rename  ENDP





;---------------------------------------------------------------------------
;
;  Popis funkce  :   Změna atributů souboru - Atribut File
;  --------------
;
;  Volání(např.) :   mov     dx, NAME                ; DS:DX Offset názvu+cesta a disk
;  --------------    mov     cx, 0000000000000000B   ; (jen pro zápis) Atr.souboru
;                                        ||||||||
;                                        |||||||+--> R  Read-only
;                                        ||||||+---> H  Hidden
;                                        |||||+----> S  System
;                                        ||||+----->'volume - Název disku
;                                        |||+------>'dir    - Adresář
;                                        ||+-------> A  Archive
;                                        ||
;                                        Nepoužito
;                       mov     al, Func                ; AL = 00 Přečte nastavení atributů
;                                                       ; AL = 01 Nastav atributy podle CX
;                       call    __dos_file_atribut      ; Čti/Zapiš atribut souboru


;
;
;  Výstup        :   CF=1 Nastala chyba,  AX = Kód chyby
;  --------------    CX = kód atributu souboru
;
;  Mění registry :   Flags, AX, CX
;  --------------
;
;---------------------------------------------------------------------------

 __dos_file_atribut PROC  NEAR

     mov     ah, 43h                         ; Atribute File
     int     21h
     retn                                    ; Návrat NEAR

 __dos_file_atribut ENDP





;---------------------------------------------------------------------------
;
;  Popis funkce  :   Čti/Nastav datum a čas souboru - Date and Time File
;  --------------
;
;  Volání(např.) :   mov     al, Typ                 ; AL = 00 Čti datum a čas
;  --------------                                    ; AL = 01 Zapiš datum a čas
;                    mov     bx, Kanál               ; Číslo kanálu
;                    mov     cx, Čas                 ; (při AL=1) Nový čas
;                    mov     dx, Datum               ; (při AL=1) Nový datum
;                    call    __dos_file_date_time    ; Čti/Zapiš datum a čas souboru
;
;
;  Výstup        :   CF=1 Nastala chyba,  AX = Kód chyby
;  --------------    CX = Čas                        ; (při AL=0) Stávající čas souboru
;                    DX = Datum                      ; (při AL=0) Stávající datum souboru
;
;  Mění registry :   Flags, AX, CX, DX
;  --------------
;
;   Formát dat   :      DX => 0000000  0000   00000
;   -------------             Rok      Měsíc  Den
;                             0-119    1-12   0-31
;
;                       CX => 00000  000000  00000
;                             Hodiny Minuty  Sekundy
;                             0-23   0-59    po 2 sec.0-30

;---------------------------------------------------------------------------

 __dos_file_date_time   PROC  NEAR

     mov     ah, 57h
     int     21h
     retn                                    ; Návrat NEAR

 __dos_file_date_time   ENDP





;---------------------------------------------------------------------------
;
;  Popis funkce  :   Ukazatel v diskovém souboru - Pointer File
;  --------------
;
;  Volání(např.) :   mov     bx, Kanál               ; Číslo kanálu
;  --------------    mov     al, Typ                 ; AL = 00 Ukaztel je posunut o
;                                                    ;         CX:DX bajtů od začátku
;                                                    ; AL = 01 Ukazatel je posunut o
;                                                    ;         CX:DX bajtů od aktuální
;                                                    ;         pozice ukazatele v souboru
;                                                    ; AL = 02 Ukazatel je posunut na
;                                                    ;         konec souboru, plus o
;                                                    ;         CX:DX bajtů od konce souboru
;                    cx:dx                           ; Počet bajtů, o které se má ukazatel posunout
;                    call    __dos_file_point        ; Posuň ukazovátko souboru
;
;  Výstup        :   CF=1 Nastala chyba,  AX = Kód chyby
;  --------------    Není-li CF=1, pak je v CX:DX nová pozice ukazatele souboru
;
;  Mění registry :   Flags, AX
;  --------------
;
;---------------------------------------------------------------------------

 __dos_file_point   PROC  NEAR

     mov     ah, 42h                         ; Point File
     int     21h
     retn                                    ; Návrat NEAR

 __dos_file_point   ENDP





;---------------------------------------------------------------------------
;
;  Popis funkce  :   Čte data ze souboru - Read File
;  --------------
;
;  Volání(např.) :   mov     bx, Kanál               ; Číslo kanálu
;  --------------    mov     dx, BUFFER              ; DS:DX Adr.,kam se mají data uložit
;                    mov     cx, 1000                ; Počet bajtů, o které má funkce přenést
;                    call    __dos_file_read         ; Čti data ze souboru
;
;  Výstup        :   CF=1 Nastala chyba,  AX = Kód chyby
;  --------------    Není-li CF=1, pak je v AX počet přenesených bajtů
;
;  Mění registry :   Flags, AX
;  --------------
;
;---------------------------------------------------------------------------

 __dos_file_read    PROC  NEAR

     mov     ah, 3Fh                         ; Read File
     int     21h
     retn                                    ; Návrat NEAR

 __dos_file_read    ENDP





;---------------------------------------------------------------------------
;
;  Popis funkce  :   Zapisuje data do souboru - Write File
;  --------------
;
;  Volání(např.) :   mov     bx, Kanál               ; Číslo kanálu
;  --------------    mov     dx, BUFFER              ; DS:DX Adr.,odkud se mají data číst
;                    mov     cx, 1000                ; Počet bajtů, o které má funkce přenést
;                    call    __dos_file_write        ; Zapiš data na disk
;
;  Výstup        :   CF=1 Nastala chyba,  AX = Kód chyby
;  --------------    Není-li CF=1, pak je v AX počet skutečný zapsaných bajtů
;
;  Mění registry :   Flags, AX
;  --------------
;
;---------------------------------------------------------------------------

 __dos_file_write   PROC  NEAR

     mov     ah, 40h                         ; Write File
     int     21h
     retn                                    ; Návrat NEAR

 __dos_file_write   ENDP





;---------------------------------------------------------------------------
;
;  Popis funkce  :   Zavři soubor - Close File
;  --------------
;
;  Volání(např.) :   mov     bx, Kanál               ; Číslo kanálu
;  --------------    call    __dos_file_close        ; Zavři kanál
;
;  Výstup        :   CF=1 Nastala chyba,  AX = Kód chyby
;  --------------
;
;  Mění registry :   Flags, AX
;  --------------
;
;---------------------------------------------------------------------------

 __dos_file_close   PROC  NEAR

     mov     ah, 3Eh                         ; Close File
     int     21h
     retn                                    ; Návrat NEAR

 __dos_file_close   ENDP







Knihovna_NST32  ENDS
END
		



© Copyright 1992-2008 by Zdeněk MEDO jr.