forked from KolibriOS/kolibrios
119 lines
1.8 KiB
PHP
119 lines
1.8 KiB
PHP
|
define @Menuet@StrLen$qpxc
|
||
|
push edi
|
||
|
cld
|
||
|
mov edi,[esp+8]
|
||
|
mov ecx,-1
|
||
|
xor al,al
|
||
|
repnz scas byte [edi]
|
||
|
not ecx
|
||
|
lea eax,[ecx-1]
|
||
|
pop edi
|
||
|
ret
|
||
|
enddef
|
||
|
|
||
|
define @Menuet@StrCopy$qpcpxc
|
||
|
push esi
|
||
|
push edi
|
||
|
cld
|
||
|
mov edi,[esp+16]
|
||
|
mov ecx,-1
|
||
|
mov esi,edi
|
||
|
xor al,al
|
||
|
repnz scas byte [edi]
|
||
|
not ecx
|
||
|
mov edi,[esp+12]
|
||
|
mov edx,ecx
|
||
|
mov eax,edi
|
||
|
shr ecx,2
|
||
|
rep movs dword [edi],[esi]
|
||
|
mov ecx,edx
|
||
|
and ecx,3
|
||
|
rep movs byte [edi],[esi]
|
||
|
pop edi
|
||
|
pop esi
|
||
|
ret
|
||
|
enddef
|
||
|
|
||
|
define @Menuet@MemCopy$qpvpxvui
|
||
|
push esi
|
||
|
push edi
|
||
|
cld
|
||
|
mov edi,[esp+12]
|
||
|
mov eax,edi
|
||
|
mov ecx,[esp+20]
|
||
|
mov esi,[esp+16]
|
||
|
mov edx,ecx
|
||
|
shr ecx,2
|
||
|
rep movs dword [edi],[esi]
|
||
|
mov ecx,edx
|
||
|
and ecx,3
|
||
|
rep movs byte [edi],[esi]
|
||
|
pop edi
|
||
|
pop esi
|
||
|
ret
|
||
|
enddef
|
||
|
|
||
|
define @Menuet@MemSet$qpvcui
|
||
|
push edi
|
||
|
cld
|
||
|
mov edi,[esp+8]
|
||
|
mov al,[esp+12]
|
||
|
mov ah,al
|
||
|
mov dx,ax
|
||
|
shl eax,16
|
||
|
mov ax,dx
|
||
|
mov ecx,[esp+16]
|
||
|
mov edx,ecx
|
||
|
shr ecx,2
|
||
|
rep stos dword [edi]
|
||
|
mov ecx,edx
|
||
|
and ecx,3
|
||
|
rep stos byte [edi]
|
||
|
pop edi
|
||
|
mov eax,[esp+4]
|
||
|
ret
|
||
|
enddef
|
||
|
|
||
|
define __ftol
|
||
|
sub esp,12
|
||
|
wait
|
||
|
fstcw word [esp+8]
|
||
|
wait
|
||
|
mov al,[esp+9]
|
||
|
or byte [esp+9],0x0c
|
||
|
fldcw word [esp+8]
|
||
|
fistp qword [esp]
|
||
|
mov [esp+9],al
|
||
|
fldcw word [esp+8]
|
||
|
mov eax,[esp]
|
||
|
mov edx,[esp+4]
|
||
|
add esp,12
|
||
|
ret
|
||
|
enddef
|
||
|
|
||
|
define @Menuet@Floor$qd
|
||
|
fld qword [esp+4]
|
||
|
mov ax,[esp+10]
|
||
|
shl ax,1
|
||
|
cmp ax,0x8680
|
||
|
ja Menuet_floor_end
|
||
|
mov ch,4
|
||
|
sub esp,2
|
||
|
wait
|
||
|
fstcw word [esp]
|
||
|
mov ax,0xf3ff
|
||
|
wait
|
||
|
mov dx,[esp]
|
||
|
and ax,dx
|
||
|
or ah,ch
|
||
|
mov [esp],ax
|
||
|
fldcw word [esp]
|
||
|
frndint
|
||
|
mov [esp],dx
|
||
|
fldcw word [esp]
|
||
|
add esp,2
|
||
|
Menuet_floor_end:
|
||
|
ret
|
||
|
enddef
|
||
|
|