
Сообщение от
Shiny
Из FaceBook:
Код:
; 16-bit xorshift pseudorandom number generator by John Metcalf
; 20 bytes, 86 cycles (excluding ret)
Как бы оценить, насколько качественный генератор?
решил побоянить (вместо HL юзаю BC чтоб точки рисовать)
Код:
ORG #8000
START
IN A,(#FE)
AND #1F
CP #1F
RET NZ
XRND
LD BC,#0001
LD A,B
RRA
LD A,C
RRA
XOR B
LD B,A
LD A,C
RRA
LD A,B
RRA
XOR C
LD C,A
XOR B
LD B,A
LD (XRND+1),BC
LD A,#AF
CP B
CALL NC,#22E5
JR START
Выглядит кстати симпатично.
Лучше чем "стандартный" (х*5+1) у которого прямо вертикальные линии ползут по экрану
Код:
PUSH HL
LD HL,(RND+1)
ADD HL,HL
ADD HL,HL
RND LD BC,#0000
ADD HL,BC
INC HL
LD (RND+1),HL
POP HL
(HL сохраняется для красоты, в этом коде не нужно)
Однако этот и короче и тоже выглядит норм (в данном разрезе)
Код:
LFSR16 LD BC,#0001
SRL B
RR C
JR NC,_SKIP
LD A,#B4
XOR B
LD B,A
_SKIP
LD (LFSR16+1),BC