Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
; returns pseudo random 8 bit number in A. Affects A. (r_seed) is the
; byte from which the number is generated and MUST be initialised to a
; non zero value or this function will always return zero. Also r_seed
; must be in RAM, you can see why......
rand_8
LDA r_seed ; get seed
ASL ; shift byte
BCC no_eor ; branch if no carry
EOR #$CF ; else EOR with $CF
no_eor
STA r_seed ; save number as next seed
RTS ; done
r_seed
.byte 1 ; prng seed byte, must not be zero
; $1D. $2B. $2D. $4D. $5F. $63. $65. $69.
; $71. $87. $8D. $A9. $C3. $CF. $E7. $F5.
01 02 04 08 10 20 40 80
03 06 0C 18 30 60 C0 XX
05 0A 14 28 50 A0 XX XX
07 0E 1C 38 70 E0 XX XX
09 12 24 48 90 XX XX XX
0B 16 2C 58 B0 XX XX XX
0D 1A 34 68 D0 XX XX XX
0F 1E 3C 78 F0 XX XX XX
11 22 44 88 XX XX XX XX
13 26 4C 98 XX XX XX XX
15 2A 54 A8 XX XX XX XX
17 2E 5C B8 XX XX XX XX
19 32 64 C8 XX XX XX XX
1B 36 6C D8 XX XX XX XX
1D 3A 74 E8 XX XX XX XX
1F 3E 7C F8 XX XX XX XX
21 42 84 XX XX XX XX XX
rand_8
LDA r_seed ; get seed
; ASL ; shift byte
lsr ; alt. shift byte
BCC no_eor ; branch if no carry
EOR #$C3 ; $C3 or $E7
no_eor
STA r_seed ; save number as next seed
RTS ; done
r_seed
.byte 1 ; prng seed byte, must not be zero
; asl
; $1D. $2B. $2D. $4D. $5F. $63. $65. $69.
; $71. $87. $8D. $A9. $C3. $CF. $E7. $F5.
; lsr
; $B8. $D4. $B4. $B2. $FA. $C6. $A6. $96.
; $8E. $E1. $B1. $95. $C3. $F3. $E7. $AF.
80 40 20 10 08 04 02 01
C0 60 30 18 0C 06 03
LDA RANDOM
ORA RANDOM
AND #$0F
BEQ OTWORZ
lda #0
sta SKCTL
cmp (0,x)
cmp (0,x)
lda #3
sta SKCTL
lda #0
sta SKCTL
sta WSYNC
sta WSYNC
lda #3
sta SKCTL
The number of taps is even.
The set of taps is setwise co-prime; i.e., there must be no divisor other than 1 common to all taps.
marok:
prawdopodobieństwu wszystkich takich zdarzeń spośród kolejnych 255 losowań, które złożą się na wystąpienie dokładnie 1 z 255 wartości, a określona z góry jedna nie wystąpi wcale, z pełnej puli 256 wartości do wylosowania.Od 1 do 38 z 38