Subversion Repositories Kolibri OS

Rev

Rev 77 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 77 Rev 78
Line 53... Line 53...
53
    xor    edi,edi
53
    xor    edi,edi
54
    mov    ecx,2847   ;1448000/512
54
    mov    ecx,2847   ;1448000/512
55
rdfs1_1:
55
rdfs1_1:
56
    mov    ebx,[eax]
56
    mov    ebx,[eax]
57
    and    ebx,4095
57
    and    ebx,4095
58
    cmp    ebx,0
-
 
59
    jne    rdfs2_1
58
    jne    rdfs2_1
60
    add    edi,512
59
    add    edi,512
61
rdfs2_1:
60
rdfs2_1:
62
    add    eax,2
61
    add    eax,2
63
    loop   rdfs1_1
62
    loop   rdfs1_1
Line 1266... Line 1265...
1266
;----------------------------------------------------------------
1265
;----------------------------------------------------------------
1267
;
1266
;
1268
;  fs_FloppyReadFolder - LFN variant for reading floppy folders
1267
;  fs_FloppyReadFolder - LFN variant for reading floppy folders
1269
;
1268
;
1270
;  esi  points to filename
1269
;  esi  points to filename
1271
;  ebx  pointer to 32-bit number = first wanted block, 0+
1270
;  ebx  pointer to structure: 32-bit number = first wanted block, 0+
-
 
1271
;                           & flags (bitfields)
-
 
1272
; flags: bit 0: 0=ANSI names, 1=UNICODE names
1272
;  ecx  number of blocks to read, 0+
1273
;  ecx  number of blocks to read, 0+
1273
;  edx  mem location to return data
1274
;  edx  mem location to return data
1274
;
1275
;
1275
;  ret ebx = blocks read or 0xffffffff folder not found
1276
;  ret ebx = blocks read or 0xffffffff folder not found
1276
;      eax = 0 ok read or other = errormsg
1277
;      eax = 0 ok read or other = errormsg
1277
;
1278
;
1278
;--------------------------------------------------------------
1279
;--------------------------------------------------------------
1279
fs_FloppyReadFolder:
1280
fs_FloppyReadFolder:
1280
        call    read_flp_fat
1281
        call    read_flp_fat
1281
        mov     ebx, [ebx]
-
 
1282
        push    edi
1282
        push    edi
1283
        cmp     byte [esi], 0
1283
        cmp     byte [esi], 0
1284
        jz      .root
1284
        jz      .root
1285
        call    fd_find_lfn
1285
        call    fd_find_lfn
1286
        jnc     .found
1286
        jnc     .found
Line 1305... Line 1305...
1305
        push    14
1305
        push    14
1306
.doit:
1306
.doit:
1307
        push    ecx ebp
1307
        push    ecx ebp
1308
        sub     esp, 262*2      ; reserve space for LFN
1308
        sub     esp, 262*2      ; reserve space for LFN
1309
        mov     ebp, esp
1309
        mov     ebp, esp
1310
        push    1               ; for fat_get_name: read UNICODE names
1310
        push    dword [ebx+4]   ; for fat_get_name: read ANSI/UNICODE names
-
 
1311
        mov     ebx, [ebx]
1311
; init header
1312
; init header
1312
        push    eax ecx
1313
        push    eax ecx
1313
        mov     edi, edx
1314
        mov     edi, edx
1314
        mov     ecx, 32/4
1315
        mov     ecx, 32/4
1315
        xor     eax, eax
1316
        xor     eax, eax