ivagor, ага, спасибо. поторопился. :)
Вид для печати
ivagor, ага, спасибо. поторопился. :)
nzeemin, ага. Так и проверяю. :)
Кстати, нашёл, вот тут я тестировал два рандомайзера:
https://zx-pk.ru/threads/32499-porti...=1#post1091958
покумекав для себя вывел вот такой псевдо рандом для байтоых значений
рандомайзит вполне пригодно для меня. ну и побыстрее чем то что нашел.Код:Random:
@mainCodeAddr:
lxi h, $100
@rnd:
sbi 1
rrc
xra m
cma
inr l
sbb m
shld @mainCodeAddr+1
sta @rnd+1 ; 84
ret
https://pic.maxiol.com/images2/16600...747235.rnd.png
- - - Добавлено - - -
lxi h, адресс кода основной программы используется как сид. используются только 256 байт
- - - Добавлено - - -
nzeemin, проверь если сможешь в своих проектах насколько универсальная или не универсальная штука получилась. :)
Вспомнил что ещё недавно разбирал код на Z80 имеющий 16-битный рандом.
Это из Scuba Dive для ZX Spectrum:
Код:NextRandom
LD HL,(RANDOM) ; get current Random
LD D,H
LD E,L
ADD HL,HL ; x2
ADD HL,HL ; x4
ADD HL,HL ; x8
ADD HL,HL ; x16
PUSH HL
ADD HL,HL ; x32
EX (SP),HL
OR A
SBC HL,DE ; HL = x15
POP BC ; BC = x32
ADD HL,BC ; x47
ADD HL,HL ; x94
ADD HL,HL ; x188
ADD HL,HL ; x376
ADD HL,DE ; x377
ADD HL,HL ; x754
ADD HL,HL ; x1508
ADD HL,DE ; x1509
LD DE,$0029
ADD HL,DE
LD (RANDOM),HL ; (RANDOM) := (RANDOM) * 1509 + 41
RET
___
И ещё один вариант рандомайзера, на этот раз 8-битный, из Highway Encounter, с виду довольно быстрый:
Код:; Псевдослучайное 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
nzeemin, Хороший результат.
https://pic.maxiol.com/thumbs2/16600...40750.rndn.png
Частично сдам назад. Для 8-битных обеспечивается заявленный период и в таком варианте, как пишет автор, генератор почти прошел статистические тесты. Но если обеспечение заявленных характеристик не обязательно и надо просто сгенерировать "что-то псевдослучайное 16-битное", то можно взять HL, только для этого нужно вызывать rnd8 по два раза для получения нового значения HL! На мой взгляд все же лучше брать генератор нужной разрядности с предсказуемыми характеристиками.