Subversion Repositories Kolibri OS

Rev

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