Rev 154 | Rev 379 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 154 | Rev 364 | ||
---|---|---|---|
Line 63... | Line 63... | ||
63 | .IDE_Channel_2: |
63 | .IDE_Channel_2: |
64 | mov [IDE_Channel_2],0 |
64 | mov [IDE_Channel_2],0 |
65 | ret |
65 | ret |
66 | 66 | ||
Line -... | Line 67... | ||
- | 67 | uglobal |
|
67 | cd_status dd 0 |
68 | cd_status dd 0 |
- | 69 | endg |
|
Line 68... | Line 70... | ||
68 | 70 | ||
69 | ;---------------------------------------------------------------- |
71 | ;---------------------------------------------------------------- |
70 | ; |
72 | ; |
71 | ; fs_CdRead - LFN variant for reading CD disk |
73 | ; fs_CdRead - LFN variant for reading CD disk |
Line 251... | Line 253... | ||
251 | jne .noaccess_1 |
253 | jne .noaccess_1 |
252 | call .get_names_from_buffer |
254 | call .get_names_from_buffer |
253 | sub eax,2048 |
255 | sub eax,2048 |
254 | ; äèðåêòîðèÿ çàêîí÷èëàñü? |
256 | ; äèðåêòîðèÿ çàêîí÷èëàñü? |
255 | cmp eax,0 |
257 | ja .read_to_buffer |
256 | ja .read_to_buffer |
- | |
257 | mov edi,[cd_counter_block] |
258 | mov edi, [cd_counter_block] |
258 | mov [edx+8],edi |
259 | mov [edx+8], edi |
259 | mov edi,[ebx] |
260 | mov edi, [ebx] |
260 | sub [edx+4],edi |
261 | sub [edx+4], edi |
261 | pop ecx edi |
262 | xor eax, eax |
- | 263 | dec ecx |
|
- | 264 | js @f |
|
- | 265 | mov al, ERROR_END_OF_FILE |
|
- | 266 | @@: |
|
- | 267 | pop ecx edi |
|
262 | mov ebx, [edx+4] |
268 | mov ebx, [edx+4] |
263 | mov eax,ERROR_SUCCESS |
269 | ret |
264 | ret |
- | |
265 | 270 | ||
Line 266... | Line 271... | ||
266 | .get_names_from_buffer: |
271 | .get_names_from_buffer: |
267 | mov [cd_current_pointer_of_input_2],CDDataBuf |
272 | mov [cd_current_pointer_of_input_2],CDDataBuf |
268 | push eax esi edi edx |
273 | push eax esi edi edx |
Line 656... | Line 661... | ||
656 | ; êîíåö ïóòè ôàéëà |
661 | ; êîíåö ïóòè ôàéëà |
657 | cmp byte [esi-1], 0 |
662 | cmp byte [esi-1], 0 |
658 | jz .done |
663 | jz .done |
659 | mov eax,[cd_current_pointer_of_input] |
664 | mov eax,[cd_current_pointer_of_input] |
660 | add eax,2 |
665 | push dword [eax+2] |
661 | mov eax,[eax] |
- | |
662 | mov [CDSectorAddress],eax ; íà÷àëî äèðåêòîðèè |
666 | pop dword [CDSectorAddress] ; íà÷àëî äèðåêòîðèè |
663 | add eax,8 |
667 | mov eax,[eax+2+8] ; ðàçìåð äèðåêòîðèè |
664 | mov eax,[eax] ; ðàçìåð äèðåêòîðèè |
- | |
665 | jmp .mainloop |
668 | jmp .mainloop |
666 | ; óêàçàòåëü ôàéëà íàéäåí |
669 | ; óêàçàòåëü ôàéëà íàéäåí |
667 | .done: |
670 | .done: |
668 | pop esi eax |
671 | pop esi eax |
669 | clc |
672 | clc |
670 | ret |
673 | ret |