Вектор-06Ц/Генератор случайных чисел: различия между версиями
Nzeemin (обсуждение | вклад) (Новая страница: «{{Emuverse}} (Права на описание — Emuverse, права на фрагменты кода — см. в шапке фрагмента.) == LFSR 1…») |
Nzeemin (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
{{Emuverse}} | {{Emuverse}} | ||
(Права на описание — Emuverse, права на фрагменты кода — см. в шапке фрагмента.) | (Права на описание — Emuverse, права на фрагменты кода — см. в шапке фрагмента.) | ||
== 8-битный == | |||
https://zx-pk.ru/threads/34480-programmirovanie.html?p=1160254&viewfull=1#post1160254 | |||
<pre> | |||
; by parallelno | |||
Random: | |||
@mainCodeAddr: | |||
lxi h, $100 | |||
@rnd: | |||
sbi 1 | |||
rrc | |||
xra m | |||
cma | |||
inr l | |||
sbb m | |||
shld @mainCodeAddr+1 | |||
sta @rnd+1 ; 84 | |||
ret | |||
</pre> | |||
Взято из кода Highway Encounter:<br /> | |||
https://zx-pk.ru/threads/34480-programmirovanie.html?p=1160258&viewfull=1#post1160258 | |||
<pre> | |||
; Псевдослучайное 8-битное число с периодом 256 по отношению: X[1] = X[0] * 5 + 7 | |||
; I: - | |||
; O: A=RND | |||
; M: HL, AF | |||
Rand: lxi h,RndVal | |||
mov a,m | |||
add a | |||
add a | |||
add m | |||
adi 7 | |||
mov m,a | |||
ret | |||
</pre> | |||
== LFSR 16-битный == | == LFSR 16-битный == | ||
Строка 25: | Строка 62: | ||
== LFSR/LCG 16-битный == | == LFSR/LCG 16-битный == | ||
https://wikiti.brandonw.net/index.php?title=Z80_Routines:Math:Random#Combined_LFSR.2FLCG.2C_16-bit_seeds<br> | https://wikiti.brandonw.net/index.php?title=Z80_Routines:Math:Random#Combined_LFSR.2FLCG.2C_16-bit_seeds<br /> | ||
https://zx-pk.ru/threads/32499-portirovanie-desolate-na-vektor-06ts.html?p=1091958&viewfull=1#post1091958 | https://zx-pk.ru/threads/32499-portirovanie-desolate-na-vektor-06ts.html?p=1091958&viewfull=1#post1091958 | ||
Текущая версия от 13:36, 28 сентября 2022
Этот документ создан для Emuverse и распространяется на условиях лицензии CC-BY-SA-3.0. |
(Права на описание — Emuverse, права на фрагменты кода — см. в шапке фрагмента.)
8-битный
https://zx-pk.ru/threads/34480-programmirovanie.html?p=1160254&viewfull=1#post1160254
; by parallelno Random: @mainCodeAddr: lxi h, $100 @rnd: sbi 1 rrc xra m cma inr l sbb m shld @mainCodeAddr+1 sta @rnd+1 ; 84 ret
Взято из кода Highway Encounter:
https://zx-pk.ru/threads/34480-programmirovanie.html?p=1160258&viewfull=1#post1160258
; Псевдослучайное 8-битное число с периодом 256 по отношению: X[1] = X[0] * 5 + 7 ; I: - ; O: A=RND ; M: HL, AF Rand: lxi h,RndVal mov a,m add a add a add m adi 7 mov m,a ret
LFSR 16-битный
https://zx-pk.ru/threads/21907-demo-effekty-dlya-vektora.html?p=930543&viewfull=1#post930543
; by ivagor rnd16: lxi h,65535 dad h shld rnd16+1 rnc mvi a,00000001b ; flipped 80h - 10000000b xra l mov l,a mvi a,01101000b ; flipped 16h - 00010110b xra h mov h,a shld rnd16+1 ret
LFSR/LCG 16-битный
https://wikiti.brandonw.net/index.php?title=Z80_Routines:Math:Random#Combined_LFSR.2FLCG.2C_16-bit_seeds
https://zx-pk.ru/threads/32499-portirovanie-desolate-na-vektor-06ts.html?p=1091958&viewfull=1#post1091958
Random16: ld hl,(seed1) ld b,h ld c,l add hl,hl add hl,hl inc l add hl,bc ld (seed1),hl ld hl,(seed2) add hl,hl sbc a,a and %00101101 xor l ld l,a ld (seed2),hl add hl,bc ret seed1: dw 12345 seed2: dw 54321