Compucolor.org – Virtual Media

Listing of file='RAND.SRC;01' on disk='vmedia/chip_128-sector.ccvf'

; RANDOM DIRECTION SUBROUTINE-RETURN 4 BIT MASK IN REG A
	ORG	0BF00H
START:	PUSH	H
	PUSH	D
	PUSH	B
	LDA	COUNT
	DCR	A
	JNZ	GO
	LDA	81B9H
	LXI	H,81BAH
	ADD	M
	STA	SEED+1
	MVI	A,32
GO:	STA	COUNT
	LHLD	SEED
	XCHG
	LXI	H,343
	CALL	3562H		;MULHD
	XCHG
	LXI	H,7FFFH
	CALL	3581H		;DIVHD
	XCHG
	SHLD	SEED
	LXI	D,4
	CALL	3562H		;MULHD
	XCHG
	LXI	H,8		;DIV 256
	CALL	3544H		;SHRHD
	MVI	A,1
	INR	L
LOOP:	DCR	L
	JZ	RTN
	RLC
	JMP	LOOP
RTN:	MOV	B,A
	ANI	0FH
	MOV	C,A
	MOV	A,B
	ANI	0F0H
	RRC
	RRC
	RRC
	RRC
	ORA	C
	POP	B
	POP	D
	POP	H
	RET
SEED:	DW	1
COUNT:	DB	32
	END	START