Цитата Сообщение от blackmirror Посмотреть сообщение
Код:
rnd:
	push hl
p0:	ld hl,ptr
	inc l
;	jr z, patch1
	mov a,l	
	ld (p0+1),a
	add a,ofs1	
;	jr z,patch2
	ld (p1+1),a
	ld a,(hl)	
p1:	ld l,n
	sub a,(hl)
	ld (hl),a
	pop hl	
	ret
Подставил в спрей с ofs1=-22, работает вродебы нормально, заполняет область целиком, прирост в скорости в моём случае не определяется вовсе, разве что экономия десятка байтов кода, хотя при буфере 256 b тоже не особо существенно но тем не менее ))
По поводу вообще... Я скажем так в гсч вообще 0.0, поэтому брал готовую формулу из интернета X[i]=X[i-a]-X[i-b] с рекомендованными значениями a=97, b=33. У вас немного попроще X[i]=X[i-a]-X[i-1] и в принципе для моей цели она вполне подошла, так что респект. ))

А тут что-то вы перемудрили - не работает ))

Цитата Сообщение от blackmirror Посмотреть сообщение
Код:
rnd8:	ld hl,buf-22
	ld a,(hl)
	inc l
	jr z,rnd_2
rnd_1:	sub a,(hl)
	ld (hl),a
	ld (rnd+1),hl
	ret
rnd_2:	ld l,-22
	jp rnd_1
Не понял логику в " rnd_1: sub (hl) " , когда l<>0. А результат - зацикливается гдето на десятке точек.