source: trunk/src/dsound/asmutil.asm@ 2912

Last change on this file since 2912 was 2637, checked in by hugh, 26 years ago

some minor dsound fixes

File size: 1.2 KB
Line 
1; asmutil.asm Get Correct MS counter
2;
3; Copyright 1999 Markus Montkowski
4
5 NAME asmutil
6.586p
7.MMX
8
9CODE32 SEGMENT DWORD PUBLIC USE32 'CODE'
10
11PUBLIC _GetMsCount
12;----------------------------------------------------------------------------
13; ulong GetMSCount (CPU_largeInteger *t1,ULONG freq)
14;----------------------------------------------------------------------------
15; Get the MS value from the High Tmr values
16;----------------------------------------------------------------------------
17_GetMsCount PROC NEAR
18
19 t1 EQU EBP+8
20 freq EQU EBP+12
21
22 push ebp
23 mov ebp, esp
24 push ebx
25 push edi
26 push esi
27
28 mov ecx,[t1]
29 mov eax,[ecx] ; EAX := t1.low
30 mov edx,[ecx+4] ; ECX := t1.high
31 shld edx,eax,20
32 shl eax,20 ; t1 * 0x100000
33 div DWORD[freq] ; (t1 * 0x100000) / freq
34 mov ecx,1000000
35 xor edx,edx
36 mul ecx ; ((t1 * 0x100000) / freq) * 1000000)
37 shrd eax,edx,20 ; ((t1 * 0x100000) / freq) * 1000000) / 0x100000
38
39 pop edi
40 pop esi
41 pop ebx
42 cld
43 mov esp,ebp
44 pop ebp
45 ret
46
47_GetMsCount endp
48
49
50
51
52CODE32 ENDS
53
54 END
Note: See TracBrowser for help on using the repository browser.