Random number generator
08-Nov-91 18:01:47
Sb: #16160-Random number generator
Fm: Henry Lowengard 76625,2425
To: Henry Lowengard 76625,2425
* faster more interesting randomizers
* private randomizer from AmigaLib
_RangeRand
MOVEM.L D4/D5,-(SP)
MOVE.W d0,D5 get range
MOVE.W D5,D4 duplicate
SUBQ.W #1,D4 -1
MOVE.L _RangeSeed,D0 get seed
.Loop ADD.L D0,D0 double
BHI.S .skipEor is hi?
EOR.L #$1D872B41,D0
.skipEor
LSR.W #1,D4 divide by 2
BNE.S .Loop
MOVE.L D0,_RangeSeed new Seed
TST.W D5 original number
BNE.S .L3 was it 0?
SWAP D0 yes: no mulu
BRA.S .L4
.L3 MULU D5,D0
.L4 CLR.W D0 eat low order
SWAP D0 return hi order 0..64k
MOVEM.L (SP)+,D4/D5
RTS
_RangeSeed dc.l 0