RandomNumber: push de push hl ; Get stored value ld hl, (RNGState) ; Multiply by 3 ld d, h ld e, l add hl, de add hl, de ; add low byte to high ld a, e add a, h ld h, a ; set high byte to that ld (RNGState), hl ; add controller state derived value ld hl, RNG_ControllerEntropy add a, (hl) pop hl pop de ret