//Генераторы случайных чисел
:int seed;

//Иннициализация генератора случайных чисел
inline void fastcall randomize(EAX)
{
	seed=EAX;
}

//используем т.н. "линейный конгруэнтный метод" см.Кнут, т.2
//полученное число ограничено 65537 значениями, но масштабируется
:int fastcall random(EBX)
{
	seed=seed*929+1%65537;
	EAX=EAX*EBX/65537;
}

//Другой генератор.
:int rand( int max )
{
	seed=seed*0x343FD+0x269EC3;
	EAX=seed>>16&0x7fff%max;
}
