Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
488 spraid 1
macro export [name,sname]
2
{
3
  forward
4
    dd __#name#_export_name__,name
5
  common
6
    dd 0
7
  forward
8
    align 4
9
    __#name#_export_name__ db sname,0
10
}
11
 
12
copy_s:
13
  ; eax - куда
14
  ; ebx - откуда
15
  ; cl - до чего
16
  ; выход - eax - сколько скопировано
17
  pushad
18
  push eax
19
@@:
20
 mov ch,[ebx]
21
 cmp ch,cl
22
 je @f
23
 mov [eax],ch
24
 inc ebx
25
 inc eax
26
 jmp @b
27
@@:
28
 mov [eax], byte 0
29
 pop ebx
30
 sub eax,ebx
31
 mov [esp+0x1c],eax
32
 popad
33
 ret
34
 
35
strcmp:
36
  ; esi - строка 1
37
  ; edi - строка 2
38
  ; выход - eax=-1 - неравно
39
		xor	eax,eax
40
		pushad
41
	    @@: lodsb
42
		scasb
43
		jne	.fail
44
		or	al,al
45
		jnz	@b
46
		jmp	.ok
47
  .fail:	or	eax,-1
48
		mov [esp+0x1c],eax
49
  .ok:		 popad
50
		ret
51
 
52
 
53
 
54
proc get_filesize stdcall, file_name:dword
55
	   locals
56
	     cmd     dd ?
57
	     offset  dd ?
58
			     dd ?
59
	     count   dd ?
60
	     buff    dd ?
61
			 db ?
62
	     name    dd ?
63
 
64
	     info	dd ?
65
	     flags	dd ?
66
	     cr_time	dd ?
67
	     cr_date	dd ?
68
	     acc_time	dd ?
69
	     acc_date	dd ?
70
	     mod_time	dd ?
71
	     mod_date	dd ?
72
	     file_size	dd ?
73
 
74
	     file	dd ?
75
	     file2	dd ?
76
 
77
 
78
	   endl
79
 
80
	   xor eax, eax
81
	   mov ebx, [file_name]
82
	   mov ecx,info-ebp
83
	   add ecx,ebp
84
 
85
	   mov [cmd], 5
86
	   mov [offset], eax
87
	   mov [offset+4], eax
88
	   mov [count], eax
89
	   mov [buff], ecx
90
	   mov byte [buff+4], al
91
	   mov [name], ebx
92
 
93
	   mov eax, 70
94
	   lea ebx, [cmd]
95
	   int 0x40
96
 
97
	   mov eax,[file_size]
98
 
99
	   ret
100
endp