Blob Blame History Raw
From 3994fee595605c5981d023c29b5d9d8e170d9adc Mon Sep 17 00:00:00 2001
From: LRFLEW <LRFLEW@aol.com>
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