Subversion Repositories Kolibri OS

Rev

Rev 1664 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1664 Rev 3487
Line 42... Line 42...
42
;;  20.5.2002  Hd status check - VT                                ;;
42
;;  20.5.2002  Hd status check - VT                                ;;
43
;;  29.6.2002  Improved fat32 verification - VT                    ;;
43
;;  29.6.2002  Improved fat32 verification - VT                    ;;
44
;;                                                                 ;;
44
;;                                                                 ;;
45
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
45
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 46... Line 46...
46
 
46
 
Line 47... Line 47...
47
$Revision: 1664 $
47
$Revision: 3487 $
Line 48... Line 48...
48
 
48
 
Line 2932... Line 2932...
2932
        mov     al, 11
2932
        mov     al, 11
2933
@@:
2933
@@:
2934
        ret
2934
        ret
Line 2935... Line 2935...
2935
 
2935
 
-
 
2936
; \end{diamond}
-
 
2937
 
-
 
2938
 
-
 
2939
; \begin{diamond}
-
 
2940
fat_find_lfn:
-
 
2941
; in: esi->name
-
 
2942
;     [esp+4] = next
-
 
2943
;     [esp+8] = first
-
 
2944
;     [esp+C]... - possibly parameters for first and next
-
 
2945
; out: CF=1 - file not found
-
 
2946
;      else CF=0, esi->next name component, edi->direntry
-
 
2947
        pusha
-
 
2948
        lea     eax, [esp+0Ch+20h]
-
 
2949
        call    dword [eax-4]
-
 
2950
        jc      .reterr
-
 
2951
        sub     esp, 262*2      ; reserve place for LFN
-
 
2952
        mov     ebp, esp
-
 
2953
        push    0               ; for fat_get_name: read ASCII name
-
 
2954
.l1:
-
 
2955
        call    fat_get_name
-
 
2956
        jc      .l2
-
 
2957
        call    fat_compare_name
-
 
2958
        jz      .found
-
 
2959
.l2:
-
 
2960
        lea     eax, [esp+0Ch+20h+262*2+4]
-
 
2961
        call    dword [eax-8]
-
 
2962
        jnc     .l1
-
 
2963
        add     esp, 262*2+4
-
 
2964
.reterr:
-
 
2965
        stc
-
 
2966
        popa
-
 
2967
        ret
-
 
2968
.found:
-
 
2969
        add     esp, 262*2+4
-
 
2970
; if this is LFN entry, advance to true entry
-
 
2971
        cmp     byte [edi+11], 0xF
-
 
2972
        jnz     @f
-
 
2973
        lea     eax, [esp+0Ch+20h]
-
 
2974
        call    dword [eax-8]
-
 
2975
        jc      .reterr
-
 
2976
@@:
-
 
2977
        add     esp, 8          ; CF=0
-
 
2978
        push    esi
-
 
2979
        push    edi
-
 
2980
        popa
-
 
2981
        ret
-
 
2982