1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ;; generate random number
4 ;; rndSeed: 4 bytes of shit
7 ;; DE: either dead or uncomment the line to get 64-bit number
10 ;; be careful to not have all zeroes in rndSeed!
12 ;; taken from http://www.worldofspectrum.org/forums/showthread.php?t=23070
13 ;; originad code by Patrik Rak
15 ld hl,(rndSeed) ; xz -> yw
16 ld de,(rndSeed+2) ; yw -> zt
17 ld (rndSeed),de ; x = y, z = w
18 ld a,e ; w = w ^ ( w << 3 )
24 ld a,h ; t = x ^ (x << 1)
28 rra ; t = t ^ (t >> 1) ^ w
35 rndSeed: defw #a280, #c0de