Subversion Repositories Kolibri OS

Rev

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

Rev 5596 Rev 5984
Line 1841... Line 1841...
1841
        jz      .alignedCluster
1841
        jz      .alignedCluster
1842
        mov     edi, edx
1842
        mov     edi, edx
1843
        shr     edi, 9
1843
        shr     edi, 9
1844
        add     eax, edi
1844
        add     eax, edi
1845
        and     edx, 511
1845
        and     edx, 511
-
 
1846
        cmp     ecx, 512
-
 
1847
        jc      .sectorPiece
-
 
1848
        test    edx, edx
1846
        jz      .alignedSector
1849
        jz      .alignedSector
1847
.sectorPiece:
1850
.sectorPiece:
1848
        push    eax ebx
1851
        push    eax ebx
1849
        lea     ebx, [ebp+FAT.buffer]
1852
        lea     ebx, [ebp+FAT.buffer]
1850
        call    fs_read32_app
1853
        call    fs_read32_app
Line 1868... Line 1871...
1868
        inc     edi
1871
        inc     edi
1869
        inc     eax
1872
        inc     eax
1870
        test    ecx, ecx
1873
        test    ecx, ecx
1871
        jz      .done
1874
        jz      .done
1872
.alignedSector:
1875
.alignedSector:
1873
        cmp     ecx, 512
-
 
1874
        jc      .sectorPiece
-
 
1875
        shl     edi, 9
1876
        shl     edi, 9
1876
        add     ecx, edi
1877
        add     ecx, edi
1877
        mov     edi, [ebp+FAT.SECTORS_PER_CLUSTER]
1878
        mov     edi, [ebp+FAT.SECTORS_PER_CLUSTER]
1878
        shl     edi, 9
1879
        shl     edi, 9
1879
.alignedCluster:
1880
.alignedCluster:
Line 1897... Line 1898...
1897
        xchg    eax, esi
1898
        xchg    eax, esi
1898
        dec     eax
1899
        dec     eax
1899
        dec     eax
1900
        dec     eax
1900
        imul    eax, [ebp+FAT.SECTORS_PER_CLUSTER]
1901
        imul    eax, [ebp+FAT.SECTORS_PER_CLUSTER]
1901
        add     eax, [ebp+FAT.DATA_START]
1902
        add     eax, [ebp+FAT.DATA_START]
1902
        sub     eax, edx
-
 
1903
.readFragment:
-
 
1904
        push    ecx
1903
        push    ecx
1905
        mov     ecx, eax
1904
        mov     ecx, eax
-
 
1905
        mov     eax, esi
-
 
1906
        dec     eax
-
 
1907
        dec     eax
-
 
1908
        imul    eax, [ebp+FAT.SECTORS_PER_CLUSTER]
-
 
1909
        add     eax, [ebp+FAT.DATA_START]
-
 
1910
        push    eax
-
 
1911
.readFragment:
-
 
1912
        sub     ecx, edx
1906
        mov     eax, edx
1913
        mov     eax, edx
1907
        xor     edx, edx
1914
        xor     edx, edx
1908
        push    eax
-
 
1909
        call    fs_read64_app
1915
        call    fs_read64_app
1910
        add     [esp], ecx
-
 
1911
        shl     ecx, 9
1916
        shl     ecx, 9
1912
        add     ebx, ecx
1917
        add     ebx, ecx
1913
        test    eax, eax
1918
        test    eax, eax
1914
        pop     eax
1919
        pop     eax
1915
        jnz     .noaccess3
1920
        jnz     .noaccess3
1916
        pop     ecx
1921
        pop     ecx
1917
        xor     edx, edx
1922
        xor     edx, edx
1918
        jcxz    .done
1923
        jcxz    .done
1919
        cmp     ecx, 512
-
 
1920
        jc      .sectorPiece
-
 
1921
        mov     eax, esi
-
 
1922
        dec     eax
-
 
1923
        dec     eax
-
 
1924
        imul    eax, [ebp+FAT.SECTORS_PER_CLUSTER]
-
 
1925
        add     eax, [ebp+FAT.DATA_START]
-
 
1926
        jmp     .alignedCluster
1924
        jmp     .alignedCluster
1927
.readEnd:
1925
.readEnd:
1928
        add     ecx, edi
1926
        add     ecx, edi
1929
        mov     edi, ecx
1927
        mov     edi, ecx
1930
        and     ecx, 511
1928
        and     ecx, 511
1931
        shr     edi, 9
1929
        shr     edi, 9
1932
        dec     eax
1930
        dec     eax
1933
        dec     eax
1931
        dec     eax
1934
        imul    eax, [ebp+FAT.SECTORS_PER_CLUSTER]
1932
        imul    eax, [ebp+FAT.SECTORS_PER_CLUSTER]
1935
        add     eax, [ebp+FAT.DATA_START]
1933
        add     eax, [ebp+FAT.DATA_START]
1936
        sub     eax, edx
-
 
1937
        add     eax, edi
1934
        add     eax, edi
-
 
1935
        push    ecx
-
 
1936
        push    eax
-
 
1937
        mov     ecx, eax
1938
        jmp     .readFragment
1938
        jmp     .readFragment
1939
.noaccess3:
1939
.noaccess3:
1940
        pop     eax
1940
        pop     eax
1941
.noaccess2:
1941
.noaccess2:
1942
        mov     byte [esp], ERROR_DEVICE
1942
        mov     byte [esp], ERROR_DEVICE