Changes
Initial page
== 8-bit Random Number Generator ==
This is a very simple generator. It's function is x[i + 1] = (5 * x[i] + 1) mod 256. The only advantage is the small size and it's simplicity.
'''Input:''' ''none''
'''Output:''' A = ''a pseudo random number, period 256''
<pre>
Rand8 ld a,Seed ; Seed is usually 0
ld b,a
add a,a
add a,a
add a,b
inc a ; another possibility is ADD A,7
ld (Rand8+1),a
ret
</pre>
== 16-bit Random Number Generator ==
This algorithm uses a similar method, but returns much better results.
'''Input:''' ''none''
'''Output:''' A = ''a pseudo random number, period 65536''
<pre>
Rand16 ld de,Seed ; Seed is usually 0
ld a,d
ld h,e
ld l,253
or a
sbc hl,de
sbc a,0
sbc hl,de
ld d,0
sbc a,d
ld e,a
sbc hl,de
jr nc,Rand
inc hl
Rand ld (Rand16+1),hl
ret
</pre>
This is a very simple generator. It's function is x[i + 1] = (5 * x[i] + 1) mod 256. The only advantage is the small size and it's simplicity.
'''Input:''' ''none''
'''Output:''' A = ''a pseudo random number, period 256''
<pre>
Rand8 ld a,Seed ; Seed is usually 0
ld b,a
add a,a
add a,a
add a,b
inc a ; another possibility is ADD A,7
ld (Rand8+1),a
ret
</pre>
== 16-bit Random Number Generator ==
This algorithm uses a similar method, but returns much better results.
'''Input:''' ''none''
'''Output:''' A = ''a pseudo random number, period 65536''
<pre>
Rand16 ld de,Seed ; Seed is usually 0
ld a,d
ld h,e
ld l,253
or a
sbc hl,de
sbc a,0
sbc hl,de
ld d,0
sbc a,d
ld e,a
sbc hl,de
jr nc,Rand
inc hl
Rand ld (Rand16+1),hl
ret
</pre>