From 3994fee595605c5981d023c29b5d9d8e170d9adc Mon Sep 17 00:00:00 2001 From: LRFLEW Date: Mon, 7 Oct 2019 22:37:34 -0500 Subject: [PATCH 057/170] Significantly faster rand() implementation --- libsrc/common/rand.s | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/libsrc/common/rand.s b/libsrc/common/rand.s index 102dd5be..fc23b6ee 100644 --- a/libsrc/common/rand.s +++ b/libsrc/common/rand.s @@ -35,27 +35,17 @@ rand: .dword 1 .code _rand: clc - lda rand+0 ; SEED *= $01010101 - adc rand+1 - sta rand+1 - adc rand+2 - sta rand+2 - adc rand+3 - sta rand+3 - clc - lda rand+0 ; SEED += $31415927 - adc #$27 + lda rand+0 ; SEED += $B3 + adc #$B3 sta rand+0 - lda rand+1 - adc #$59 + adc rand+1 ; SEED *= $01010101 sta rand+1 - lda rand+2 - adc #$41 + adc rand+2 sta rand+2 and #$7f ; Suppress sign bit (make it positive) tax - lda rand+3 - adc #$31 + lda rand+2 + adc rand+3 sta rand+3 rts ; return bit (16-22,24-31) in (X,A) -- 2.26.0