;   Один из самых быстрых, на мой взгляд. Hедостаток - 16-й бит в 32-битном числе
;всегда установлен в 0.
; * Origin: Сергиев Посад <Ферма> (Sergey Andrianov 2:50/430.40)

RND16 proc
	;In:	AX - Max random value
	;Out:	AX - random value 0..AX(In)-1
	PUSH AX
	mov dx,RND_SEED_H
	mov ax,RND_SEED_L
	xor  dx,ax
	shl  dx,1
	adc  ax,0
	xor  ax,dx
	xchg al,ah
	mov RND_SEED_H,dx
	POP DX
	mov RND_SEED_L,ax
	MUL DX
	MOV AX,DX
	RET
RND16 endp
;DATA
RND_SEED_L	DW 1
RND_SEED_H	DW 1
