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