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 |