Subversion Repositories Kolibri OS

Rev

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 '/'  ; ðàçäåëèòåëü ïóòè, êîíåö èìåíè òåêóùåãî ýëåìåíòà