Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 487 → Rev 488

/kernel/trunk/lib/proc.inc
0,0 → 1,100
macro export [name,sname]
{
forward
dd __#name#_export_name__,name
common
dd 0
forward
align 4
__#name#_export_name__ db sname,0
}
 
copy_s:
; eax - ªã¤ 
; ebx - ®âªã¤ 
; cl - ¤® 祣®
; ¢ë室 - eax - ᪮«ìª® ᪮¯¨à®¢ ­®
pushad
push eax
@@:
mov ch,[ebx]
cmp ch,cl
je @f
mov [eax],ch
inc ebx
inc eax
jmp @b
@@:
mov [eax], byte 0
pop ebx
sub eax,ebx
mov [esp+0x1c],eax
popad
ret
 
strcmp:
; esi - áâப  1
; edi - áâப  2
; ¢ë室 - eax=-1 - ­¥à ¢­®
xor eax,eax
pushad
@@: lodsb
scasb
jne .fail
or al,al
jnz @b
jmp .ok
.fail: or eax,-1
mov [esp+0x1c],eax
.ok: popad
ret
 
 
 
proc get_filesize stdcall, file_name:dword
locals
cmd dd ?
offset dd ?
dd ?
count dd ?
buff dd ?
db ?
name dd ?
 
info dd ?
flags dd ?
cr_time dd ?
cr_date dd ?
acc_time dd ?
acc_date dd ?
mod_time dd ?
mod_date dd ?
file_size dd ?
 
file dd ?
file2 dd ?
 
 
endl
 
xor eax, eax
mov ebx, [file_name]
mov ecx,info-ebp
add ecx,ebp
 
mov [cmd], 5
mov [offset], eax
mov [offset+4], eax
mov [count], eax
mov [buff], ecx
mov byte [buff+4], al
mov [name], ebx
 
mov eax, 70
lea ebx, [cmd]
int 0x40
 
mov eax,[file_size]
 
ret
endp