Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 77 → Rev 78

/kernel/trunk/fs/fat12.inc
55,7 → 55,6
rdfs1_1:
mov ebx,[eax]
and ebx,4095
cmp ebx,0
jne rdfs2_1
add edi,512
rdfs2_1:
1268,7 → 1267,9
; fs_FloppyReadFolder - LFN variant for reading floppy folders
;
; esi points to filename
; ebx pointer to 32-bit number = first wanted block, 0+
; ebx pointer to structure: 32-bit number = first wanted block, 0+
; & flags (bitfields)
; flags: bit 0: 0=ANSI names, 1=UNICODE names
; ecx number of blocks to read, 0+
; edx mem location to return data
;
1278,7 → 1279,6
;--------------------------------------------------------------
fs_FloppyReadFolder:
call read_flp_fat
mov ebx, [ebx]
push edi
cmp byte [esi], 0
jz .root
1307,7 → 1307,8
push ecx ebp
sub esp, 262*2 ; reserve space for LFN
mov ebp, esp
push 1 ; for fat_get_name: read UNICODE names
push dword [ebx+4] ; for fat_get_name: read ANSI/UNICODE names
mov ebx, [ebx]
; init header
push eax ecx
mov edi, edx
/kernel/trunk/fs/fat32.inc
3202,7 → 3202,9
; fs_HdReadFolder - LFN variant for reading hard disk folder
;
; esi points to filename
; ebx pointer to 32-bit number = first wanted block, 0+
; ebx pointer to structure 32-bit number = first wanted block, 0+
; & flags (bitfields)
; flags: bit 0: 0=ANSI names, 1=UNICODE names
; ecx number of blocks to read, 0+
; edx mem location to return data
;
3211,7 → 3213,6
;
;--------------------------------------------------------------
fs_HdReadFolder:
mov ebx, [ebx]
mov eax, [ROOT_CLUSTER]
push edi
cmp byte [esi], 0
3237,7 → 3238,8
push ebp
sub esp, 262*2 ; reserve space for LFN
mov ebp, esp
push 1 ; for fat_get_name: read UNICODE name
push dword [ebx+4] ; for fat_get_name: read ANSI/UNICODE name
mov ebx, [ebx]
; init header
push eax ecx
mov edi, edx
/kernel/trunk/fs/fs_lfn.inc
32,17 → 32,17
 
virtual_root_query:
dd fs_HasRamdisk
du 'rd',0
db 'rd',0
dd fs_HasFloppy
du 'fd',0
db 'fd',0
dd fs_HasHd0
du 'hd0',0
db 'hd0',0
dd fs_HasHd1
du 'hd1',0
db 'hd1',0
dd fs_HasHd2
du 'hd2',0
db 'hd2',0
dd fs_HasHd3
du 'hd3',0
db 'hd3',0
dd 0
endg
 
104,9 → 104,10
mov ebp, [ebx+12]
mov edx, [ebx+16]
add edx, std_application_base_address
mov ebx, [ebx+4]
push dword [ebx+4] ; first block
mov ebx, [ebx+8] ; flags
mov esi, [edi+4]
; ebx=first block, ebp=number of blocks, edx=return area, esi='Next' handler
; ebx=flags, [esp]=first block, ebp=number of blocks, edx=return area, esi='Next' handler
mov edi, edx
mov ecx, 32/4
rep stosd
115,7 → 116,7
call esi
jc .maindir_done
inc dword [edx+8]
dec ebx
dec dword [esp]
jns .maindir_loop
dec ebp
js .maindir_loop
142,15 → 143,27
@@:
pop eax
add al, '0'
stosw
stosb
test bl, 1 ; UNICODE name?
jz .ansi2
mov byte [edi], 0
inc edi
.ansi2:
test al, al
jnz @b
mov byte [edi-1], 0
pop edi
; UNICODE name length is 520 bytes, ANSI - 264
add edi, 520
test bl, 1
jnz @f
sub edi, 520-264
@@:
pop edx eax
jmp .maindir_loop
.maindir_done:
mov ebx, [edx+8]
pop eax
mov ebx, [edx+4]
xor eax, eax
dec ebp
js @f
173,9 → 186,10
mov ebp, [ebx+12]
mov edx, [ebx+16]
add edx, std_application_base_address
mov ebx, [ebx+4]
push dword [ebx+4] ; first block
mov ebx, [ebx+8] ; flags
xor eax, eax
; eax=0, ebx=first block, ebp=number of blocks, edx=return area
; eax=0, [esp]=first block, ebx=flags, ebp=number of blocks, edx=return area
mov edi, edx
mov ecx, 32/4
rep stosd
190,13 → 204,13
.readroot_next:
or ecx, -1
xchg esi, edi
repnz scasw
repnz scasb
xchg esi, edi
jmp .readroot_loop
@@:
xor eax, eax
inc dword [edx+8]
dec ebx
dec dword [esp]
jns .readroot_next
dec ebp
js .readroot_next
208,15 → 222,24
rep stosd
push edi
@@:
lodsw
stosw
lodsb
stosb
test bl, 1
jz .ansi
mov byte [edi], 0
inc edi
.ansi:
test eax, eax
jnz @b
pop edi
add edi, 520
test bl, 1
jnz .readroot_loop
sub edi, 520-264
jmp .readroot_loop
.readroot_done:
mov ebx, [edx+8]
pop eax
mov ebx, [edx+4]
xor eax, eax
dec ebp
js @f