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 |