Вектор-06Ц/Генератор случайных чисел: различия между версиями
Nzeemin (обсуждение | вклад) (Новая страница: «{{Emuverse}} (Права на описание — Emuverse, права на фрагменты кода — см. в шапке фрагмента.) == LFSR 1…») |
(нет различий)
|
Версия от 01:25, 28 сентября 2022
| Этот документ создан для Emuverse и распространяется на условиях лицензии CC-BY-SA-3.0. |
(Права на описание — Emuverse, права на фрагменты кода — см. в шапке фрагмента.)
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