Вектор-06Ц/Генератор случайных чисел
Этот документ создан для 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