forked from KolibriOS/kolibrios
loading libs for kernel
loading from HD inifiles.asm (not completed, using with kernel to load sys.conf) parse file names %sys% may be system directory for programs (70 function) git-svn-id: svn://kolibrios.org@488 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
100
kernel/trunk/lib/proc.inc
Normal file
100
kernel/trunk/lib/proc.inc
Normal file
@@ -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 - <EFBFBD>㤠
|
||||
; ebx - <EFBFBD><EFBFBD><EFBFBD>㤠
|
||||
; cl - <EFBFBD><EFBFBD> 祣<EFBFBD>
|
||||
; <EFBFBD><EFBFBD>室 - eax - <EFBFBD>쪮 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
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 - <EFBFBD><EFBFBD>ப<EFBFBD> 1
|
||||
; edi - <EFBFBD><EFBFBD>ப<EFBFBD> 2
|
||||
; <EFBFBD><EFBFBD>室 - eax=-1 - <EFBFBD><EFBFBD>ࠢ<EFBFBD><EFBFBD>
|
||||
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
|
Reference in New Issue
Block a user