Generator liczb pseudolosowych
: 17 sty 2021, 18:41
Na C64 można zrobić coś takiego:
i wtedy czytanie rejestru $d41b zwróci losową liczbę.
Na A8 jest jeszcze prościej bo wystarczy czytać jeden z rejestrów POKEY $d20a by otrzymać losową liczbę z zakresu 0-255.
---
Czy ktoś mi podpowie jak to się robi na C+4?
Metoda użyta tutaj to obejście, RND Basic to obliczenia oparte na 3 timerach TED a RND(0) zwraca chyba jeden z timerów.
W niektórych materiałach sugerowano, że włączenie szumu ($FF11) na kanale drugim TED może posłużyć do randomizacji ale nigdzie nie znalazłem przykładu ani sam nie wpadłem jak to zrobić.
Kod: Zaznacz cały
lda #$ff ; maximum frequency value
sta $D40E ; voice 3 frequency low byte
sta $D40F ; voice 3 frequency high byte
lda #$80 ; noise waveform, gate bit off
sta $D412 ; voice 3 control register
Na A8 jest jeszcze prościej bo wystarczy czytać jeden z rejestrów POKEY $d20a by otrzymać losową liczbę z zakresu 0-255.
---
Czy ktoś mi podpowie jak to się robi na C+4?
Metoda użyta tutaj to obejście, RND Basic to obliczenia oparte na 3 timerach TED a RND(0) zwraca chyba jeden z timerów.
W niektórych materiałach sugerowano, że włączenie szumu ($FF11) na kanale drugim TED może posłużyć do randomizacji ale nigdzie nie znalazłem przykładu ani sam nie wpadłem jak to zrobić.