;Xorshift Random Number Generator ; ; 16-bit xorshift pseudorandom number generator ; 20 bytes, 96 cycles ; returns hl = pseudorandom number ; corrupts a org 5b00h xrnd16: ld hl,1 ; seed must not be 0 ld a,h rra ld a,l rra xor h ld h,a ld a,l rra ld a,h rra xor l ld l,a xor h ld h,a ld (xrnd16+1),hl ret xrnd8: ld hl,0001h ld de,4000h lp0: ld a,h rra ld a,l rra xor h ld h,a ld a,l rra ld a,h rra xor l ld l,a ld (de),a xor h ld h,a inc de ld a,d cp 58h jr nz,lp0 ret