Вектор-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