mirror of
https://github.com/cc65/cc65.git
synced 2025-01-28 15:31:18 +00:00
Update comments in rand.s
This commit is contained in:
parent
3994fee595
commit
216105f6df
@ -3,6 +3,7 @@
|
|||||||
;
|
;
|
||||||
; Written and donated by Sidney Cadot - sidney@ch.twi.tudelft.nl
|
; Written and donated by Sidney Cadot - sidney@ch.twi.tudelft.nl
|
||||||
; 2016-11-07, modified by Brad Smith
|
; 2016-11-07, modified by Brad Smith
|
||||||
|
; 2019-10-07, modified by Lewis "LRFLEW" Fox
|
||||||
;
|
;
|
||||||
; May be distributed with the cc65 runtime using the same license.
|
; May be distributed with the cc65 runtime using the same license.
|
||||||
;
|
;
|
||||||
@ -22,6 +23,17 @@
|
|||||||
; The best 8 bits, 24-31 are returned in the
|
; The best 8 bits, 24-31 are returned in the
|
||||||
; low byte A to provide the best entropy in the
|
; low byte A to provide the best entropy in the
|
||||||
; most commonly used part of the return value.
|
; most commonly used part of the return value.
|
||||||
|
;
|
||||||
|
; Uses the following LCG values for ax + c (mod m)
|
||||||
|
; a = $01010101
|
||||||
|
; c = $B3B3B3B3
|
||||||
|
; m = $100000000 (32-bit truncation)
|
||||||
|
;
|
||||||
|
; The multiplier was carefully chosen such that it can
|
||||||
|
; be computed with 3 adc instructions, and the increment
|
||||||
|
; was chosen to have the same value in each byte to allow
|
||||||
|
; the addition to be performed in conjunction with the
|
||||||
|
; multiplication, adding only 1 additional adc instruction.
|
||||||
;
|
;
|
||||||
|
|
||||||
.export _rand, _srand
|
.export _rand, _srand
|
||||||
@ -35,10 +47,10 @@ rand: .dword 1
|
|||||||
.code
|
.code
|
||||||
|
|
||||||
_rand: clc
|
_rand: clc
|
||||||
lda rand+0 ; SEED += $B3
|
lda rand+0
|
||||||
adc #$B3
|
adc #$B3
|
||||||
sta rand+0
|
sta rand+0
|
||||||
adc rand+1 ; SEED *= $01010101
|
adc rand+1
|
||||||
sta rand+1
|
sta rand+1
|
||||||
adc rand+2
|
adc rand+2
|
||||||
sta rand+2
|
sta rand+2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user