Rev 837 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 837 | Rev 897 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | ;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;; |
3 | ;; Copyright (C) KolibriOS team 2004-2008. All rights reserved. ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
4 | ;; Distributed under terms of the GNU General Public License ;; |
5 | ;; ;; |
5 | ;; ;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
6 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 7... | Line 7... | ||
7 | 7 | ||
Line 8... | Line 8... | ||
8 | $Revision: 709 $ |
8 | $Revision: 897 $ |
9 | 9 | ||
Line 102... | Line 102... | ||
102 | ; 6 : set file/directory attributes structure |
102 | ; 6 : set file/directory attributes structure |
103 | ; 7 : start application |
103 | ; 7 : start application |
104 | ; 8 : delete file |
104 | ; 8 : delete file |
105 | ; 9 : create directory |
105 | ; 9 : create directory |
Line -... | Line 106... | ||
- | 106 | ||
- | 107 | cmp dword [eax], 7 |
|
- | 108 | je .do_exec |
|
106 | 109 | ||
107 | ; parse file name |
110 | ; parse file name |
108 | xchg ebx, eax |
111 | xchg ebx, eax |
109 | lea esi, [ebx+20] |
112 | lea esi, [ebx+20] |
110 | lodsb |
113 | lodsb |
Line 127... | Line 130... | ||
127 | .notcurdir: |
130 | .notcurdir: |
128 | cmp byte [esi], 0 |
131 | cmp byte [esi], 0 |
129 | jz .rootdir |
132 | jz .rootdir |
130 | call process_replace_file_name |
133 | call process_replace_file_name |
131 | .parse_normal: |
134 | .parse_normal: |
132 | cmp dword [ebx], 7 |
- | |
133 | jne @F |
- | |
134 | mov edx, [ebx+4] |
- | |
135 | mov ebx, [ebx+8] |
- | |
136 | call fs_execute ; esi+ebp, ebx, edx |
- | |
137 | mov [image_of_eax], eax |
- | |
138 | ret |
- | |
139 | @@: |
- | |
140 | mov edi, rootdirs-8 |
135 | mov edi, rootdirs-8 |
141 | xor ecx, ecx |
136 | xor ecx, ecx |
142 | push esi |
137 | push esi |
143 | .scan1: |
138 | .scan1: |
144 | pop esi |
139 | pop esi |
Line 423... | Line 418... | ||
423 | @@: |
418 | @@: |
424 | ; now [edi] contains handler address, ecx - partition number, |
419 | ; now [edi] contains handler address, ecx - partition number, |
425 | ; esi points to ASCIIZ string - rest of name |
420 | ; esi points to ASCIIZ string - rest of name |
426 | jmp dword [edi] |
421 | jmp dword [edi] |
Line -... | Line 422... | ||
- | 422 | ||
- | 423 | .do_exec: |
|
- | 424 | lea ebx, [eax+20] |
|
- | 425 | cmp byte [ebx],0 |
|
- | 426 | jnz @F |
|
- | 427 | ||
- | 428 | mov ebx, [ebx+1] |
|
- | 429 | @@: |
|
- | 430 | push dword [eax+4] |
|
- | 431 | push dword [eax+8] |
|
- | 432 | push ebx |
|
- | 433 | ||
- | 434 | call _sys_exec |
|
- | 435 | mov [image_of_eax], eax |
|
- | 436 | add esp, 12 |
|
- | 437 | ||
- | 438 | ret |
|
427 | 439 | ||
428 | ; handlers for devices |
440 | ; handlers for devices |
429 | ; in: ecx = 0 => query virtual directory /xxx |
441 | ; in: ecx = 0 => query virtual directory /xxx |
430 | ; in: ecx = partition number |
442 | ; in: ecx = partition number |
431 | ; esi -> relative (for device) name |
443 | ; esi -> relative (for device) name |