Subversion Repositories Kolibri OS

Rev

Rev 2811 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2811 Rev 3003
Line 19... Line 19...
19
 
19
 
Line 20... Line 20...
20
*******************************************************************************/
20
*******************************************************************************/
Line 21... Line 21...
21
 
21
 
22
dword generator;  // random number generator - äëÿ ãåíåðàöèè ñëó÷àéíûõ ÷èñåë
22
dword generator;  // random number generator - äëÿ ãåíåðàöèè ñëó÷àéíûõ ÷èñåë
23
 
23
 
-
 
24
inline fastcall int random( ECX)
-
 
25
// get pseudo-random number - ïîëó÷èòü ïñåâäîñëó÷àéíîå ÷èñëî
24
:int random(int max)
26
{
25
// get pseudo-random number - ïîëó÷èòü ïñåâäîñëó÷àéíîå ÷èñëî
27
  $push ebx
26
{
28
 
Line 27... Line 29...
27
  $rdtsc        // eax & edx
29
  $rdtsc        // eax & edx
Line 33... Line 35...
33
  $xor ebx,0xdeadbeef
35
  $xor ebx,0xdeadbeef
34
  EBX += EAX;
36
  EBX += EAX;
35
  generator = EBX;
37
  generator = EBX;
Line 36... Line 38...
36
  
38
  
37
  EAX += EBX;
39
  EAX += EBX;
-
 
40
  EAX = EAX % ECX;
38
  EAX = EAX % max;
41
  
39
  return EAX;
42
  $pop ebx  
Line 40... Line 43...
40
}
43
}
41
 
44
 
42
:randomize()
45
inline fastcall randomize()
43
// initialize random number generator - èíèöèàëèçèðîâàòü ãåíåðàòîð ñëó÷àéíûõ ÷èñåë
46
// initialize random number generator - èíèöèàëèçèðîâàòü ãåíåðàòîð ñëó÷àéíûõ ÷èñåë
44
{
47
{
45
  asm
48
  asm