Вектор-06Ц/Генератор случайных чисел

Материал из Emuverse
Версия от 01:25, 28 сентября 2022; Nzeemin (обсуждение | вклад) (Новая страница: «{{Emuverse}} (Права на описание — Emuverse, права на фрагменты кода — см. в шапке фрагмента.) == LFSR 1…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Этот документ создан для 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