Subversion Repositories Kolibri OS

Rev

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

  1. define @Menuet@StrLen$qpxc
  2.   push edi
  3.   cld
  4.   mov  edi,[esp+8]
  5.   mov  ecx,-1
  6.   xor  al,al
  7.   repnz scas byte [edi]
  8.   not  ecx
  9.   lea  eax,[ecx-1]
  10.   pop  edi
  11.   ret
  12. enddef
  13.  
  14. define @Menuet@StrCopy$qpcpxc
  15.   push esi
  16.   push edi
  17.   cld
  18.   mov  edi,[esp+16]
  19.   mov  ecx,-1
  20.   mov  esi,edi
  21.   xor  al,al
  22.   repnz scas byte [edi]
  23.   not  ecx
  24.   mov  edi,[esp+12]
  25.   mov  edx,ecx
  26.   mov  eax,edi
  27.   shr  ecx,2
  28.   rep movs dword [edi],[esi]
  29.   mov  ecx,edx
  30.   and  ecx,3
  31.   rep movs byte [edi],[esi]
  32.   pop  edi
  33.   pop  esi
  34.   ret
  35. enddef
  36.  
  37. define @Menuet@MemCopy$qpvpxvui
  38.   push esi
  39.   push edi
  40.   cld
  41.   mov  edi,[esp+12]
  42.   mov  eax,edi
  43.   mov  ecx,[esp+20]
  44.   mov  esi,[esp+16]
  45.   mov  edx,ecx
  46.   shr  ecx,2
  47.   rep movs dword [edi],[esi]
  48.   mov  ecx,edx
  49.   and  ecx,3
  50.   rep movs byte [edi],[esi]
  51.   pop  edi
  52.   pop  esi
  53.   ret
  54. enddef
  55.  
  56. define @Menuet@MemSet$qpvcui
  57.   push edi
  58.   cld
  59.   mov  edi,[esp+8]
  60.   mov  al,[esp+12]
  61.   mov  ah,al
  62.   mov  dx,ax
  63.   shl  eax,16
  64.   mov  ax,dx
  65.   mov  ecx,[esp+16]
  66.   mov  edx,ecx
  67.   shr  ecx,2
  68.   rep stos dword [edi]
  69.   mov  ecx,edx
  70.   and  ecx,3
  71.   rep stos byte [edi]
  72.   pop  edi
  73.   mov  eax,[esp+4]
  74.   ret
  75. enddef
  76.  
  77. define __ftol
  78.   sub  esp,12
  79.   wait
  80.   fstcw word [esp+8]
  81.   wait
  82.   mov  al,[esp+9]
  83.   or   byte [esp+9],0x0c
  84.   fldcw word [esp+8]
  85.   fistp qword [esp]
  86.   mov  [esp+9],al
  87.   fldcw word [esp+8]
  88.   mov  eax,[esp]
  89.   mov  edx,[esp+4]
  90.   add  esp,12
  91.   ret
  92. enddef
  93.  
  94. define @Menuet@Floor$qd
  95.   fld  qword [esp+4]
  96.   mov  ax,[esp+10]
  97.   shl  ax,1
  98.   cmp  ax,0x8680
  99.   ja   Menuet_floor_end
  100.   mov  ch,4
  101.   sub  esp,2
  102.   wait
  103.   fstcw word [esp]
  104.   mov  ax,0xf3ff
  105.   wait
  106.   mov  dx,[esp]
  107.   and  ax,dx
  108.   or   ah,ch
  109.   mov  [esp],ax
  110.   fldcw word [esp]
  111.   frndint
  112.   mov  [esp],dx
  113.   fldcw word [esp]
  114.   add  esp,2
  115. Menuet_floor_end:
  116.   ret
  117. enddef
  118.  
  119.