34 lines
963 B
C++
34 lines
963 B
C++
|
// $Header: G:/SwDev/WDM/Video/bt848/rcs/Distr.cpp 1.2 1998/04/29 22:43:33 tomz Exp $
|
||
|
|
||
|
#include "mytypes.h"
|
||
|
#define label( x ) } x: _asm {
|
||
|
|
||
|
void CreateDistribution( WORD OrigFPS, WORD NeededFPS, PWORD lpwDistribution )
|
||
|
{
|
||
|
_asm {
|
||
|
push edi
|
||
|
|
||
|
mov edi, dword ptr lpwDistribution
|
||
|
// mov es, word ptr lpwPixWidthMap+2
|
||
|
mov ax, NeededFPS
|
||
|
shl eax, 16
|
||
|
movzx ecx, word ptr OrigFPS
|
||
|
or cx, cx
|
||
|
jz short end
|
||
|
xor edx, edx
|
||
|
div ecx
|
||
|
mov ebx, eax
|
||
|
mov eax, 8000H
|
||
|
label( L1 ) and eax, 0FFFFh
|
||
|
add eax, ebx
|
||
|
shld edx, eax, 16
|
||
|
mov [edi], dx
|
||
|
add edi,2
|
||
|
dec cx
|
||
|
jnz short L1
|
||
|
|
||
|
label( end )
|
||
|
pop edi
|
||
|
}
|
||
|
}
|