; ********************************************************* ; * ; * CONVERTING/CLIPPING routine ; * ; * ESI = source (float) ; * EDI = destination (short) ; * ECX = number of samples ; * ; ********************************************************* section .text bits 32 global _KZG_clip@0 _KZG_clip@0: ;mov edi, worddata _KZG_clip_onesample: fld dword [esi] fimul dword [_KZG_clip_master] push eax fistp dword [esp] pop eax movd mm0,eax packssdw mm0,mm0 movd eax,mm0 emms stosw add esi, byte 4 loop _KZG_clip_onesample ret section .data _KZG_clip_master dd 32767