Rev 533 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 533 | Rev 536 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | $Revision: 533 $ |
1 | $Revision: 536 $ |
2 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
2 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
3 | ;; ;; |
3 | ;; ;; |
4 | ;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;; |
4 | ;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;; |
5 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; Distributed under terms of the GNU General Public License ;; |
6 | ;; ;; |
6 | ;; ;; |
Line 380... | Line 380... | ||
380 | cd_get_parameters_of_file: |
380 | cd_get_parameters_of_file: |
381 | mov edi,[cd_mem_location] |
381 | mov edi,[cd_mem_location] |
382 | cd_get_parameters_of_file_1: |
382 | cd_get_parameters_of_file_1: |
383 | ; ïîëó÷àåì àòðèáóòû ôàéëà |
383 | ; ïîëó÷àåì àòðèáóòû ôàéëà |
384 | xor eax,eax |
384 | xor eax,eax |
385 | ; ôàéë íå àðõèâèðîâàëñ |
385 | ; ôàéë íå àðõèâèðîâàëñÿ |
386 | inc al |
386 | inc eax |
387 | shl eax,1 |
387 | shl eax,1 |
388 | ; ýòî êàòàëîã? |
388 | ; ýòî êàòàëîã? |
389 | test [ebp-8],byte 2 |
389 | test [ebp-8],byte 2 |
390 | jz .file |
390 | jz .file |
391 | inc al |
391 | inc eax |
392 | .file: |
392 | .file: |
393 | ; ìåòêà òîìà íå êàê â FAT, â ýòîì âèäå îòñóòñâóåò |
393 | ; ìåòêà òîìà íå êàê â FAT, â ýòîì âèäå îòñóòñâóåò |
394 | ; ôàéë íå ÿâëÿåòñÿ ñèñòåìíûì |
394 | ; ôàéë íå ÿâëÿåòñÿ ñèñòåìíûì |
395 | shl eax,3 |
395 | shl eax,3 |
396 | ; ôàéë ÿâëÿåòñÿ ñêðûòûì? (àòðèáóò ñóùåñòâîâàíèå) |
396 | ; ôàéë ÿâëÿåòñÿ ñêðûòûì? (àòðèáóò ñóùåñòâîâàíèå) |
397 | test [ebp-8],byte 1 |
397 | test [ebp-8],byte 1 |
398 | jz .hidden |
398 | jz .hidden |
399 | inc al |
399 | inc eax |
400 | .hidden: |
400 | .hidden: |
401 | shl eax,1 |
401 | shl eax,1 |
402 | ; ôàéë âñåãäà òîëüêî äëÿ ÷òåíèÿ, òàê êàê ýòî CD |
402 | ; ôàéë âñåãäà òîëüêî äëÿ ÷òåíèÿ, òàê êàê ýòî CD |
403 | inc al |
403 | inc eax |
404 | mov [edi],eax |
404 | mov [edi],eax |
405 | ; ïîëó÷àåì âðåìÿ äëÿ ôàéëà |
405 | ; ïîëó÷àåì âðåìÿ äëÿ ôàéëà |
406 | ;÷àñ |
406 | ;÷àñ |
407 | movzx eax,byte [ebp-12] |
407 | movzx eax,byte [ebp-12] |
408 | shl eax,8 |
408 | shl eax,8 |
Line 460... | Line 460... | ||
460 | cmp byte [esi], 0 |
460 | cmp byte [esi], 0 |
461 | jnz @f |
461 | jnz @f |
462 | mov eax, 2 |
462 | mov eax, 2 |
463 | ret |
463 | ret |
464 | @@: |
464 | @@: |
465 | push edi ebp |
465 | push edi |
466 | call cd_find_lfn |
466 | call cd_find_lfn |
467 | pushfd |
467 | pushfd |
468 | cmp [DevErrorCode], 0 |
468 | cmp [DevErrorCode], 0 |
469 | jz @f |
469 | jz @f |
470 | popfd |
470 | popfd |
471 | pop ebp edi |
471 | pop edi |
472 | mov eax, 11 |
472 | mov eax, 11 |
473 | ret |
473 | ret |
474 | @@: |
474 | @@: |
475 | popfd |
475 | popfd |
476 | jnc @f |
476 | jnc @f |
477 | pop ebp edi |
477 | pop edi |
478 | mov eax, ERROR_FILE_NOT_FOUND |
478 | mov eax, ERROR_FILE_NOT_FOUND |
479 | ret |
479 | ret |
480 | @@: |
480 | @@: |
Line 481... | Line 481... | ||
481 | 481 | ||
- | 482 | mov edi, edx |
|
- | 483 | push ebp |
|
- | 484 | mov ebp, [cd_current_pointer_of_input] |
|
482 | mov edi, edx |
485 | add ebp, 33 |
- | 486 | call cd_get_parameters_of_file_1 |
|
483 | call cd_get_parameters_of_file_1 |
487 | pop ebp |
484 | and dword [edi+4], 0 |
488 | and dword [edi+4], 0 |
485 | pop ebp edi |
489 | pop edi |
486 | xor eax, eax |
490 | xor eax, eax |
Line 487... | Line 491... | ||
487 | ret |
491 | ret |
488 | 492 | ||
Line 610... | Line 614... | ||
610 | push esi eax edi |
614 | push esi eax edi |
611 | mov edi,ebp |
615 | mov edi,ebp |
612 | .loop: |
616 | .loop: |
613 | cld |
617 | cld |
614 | lodsb |
618 | lodsb |
615 | push ax |
619 | push eax |
616 | call char_todown |
620 | call char_todown |
617 | call ansi2uni_char |
621 | call ansi2uni_char |
618 | xchg ah,al |
622 | xchg ah,al |
619 | cld |
- | |
620 | scasw |
623 | scasw |
621 | pop ax |
624 | pop eax |
622 | je .coincides |
625 | je .coincides |
623 | call char_toupper |
626 | call char_toupper |
624 | call ansi2uni_char |
627 | call ansi2uni_char |
625 | xchg ah,al |
628 | xchg ah,al |
626 | cld |
- | |
627 | sub edi,2 |
629 | sub edi,2 |
628 | scasw |
630 | scasw |
629 | jne .name_not_coincide |
631 | jne .name_not_coincide |
630 | .coincides: |
632 | .coincides: |
631 | cmp [esi],byte '/' ; ðàçäåëèòåëü ïóòè, êîíåö èìåíè òåêóùåãî ýëåìåíòà |
633 | cmp [esi],byte '/' ; ðàçäåëèòåëü ïóòè, êîíåö èìåíè òåêóùåãî ýëåìåíòà |