что-то аномалия какая-то у меня в процедуре закраски массивом атрибутов в области ректангла.


Есть такая процедурка. С ней всё ок. Тут выводит лишь отдельно взятый атрибут по указанным X|Y
Код:
ATTR
		ld a,(_ATTRY)
	ld b,a
	ld a,(_ATTRX)
		ld c,a
; расчет адреса атрибутов знакоместа в DE, B-вертик.координата, C-гориз.координата
			LD	A,B
			RRCA
			RRCA
			RRCA
			LD	L,A
			AND	31
			OR	88
			LD	H,A
			LD	A,L
			AND	252
			OR	C
			LD	L,A
			LD A,(_ATTRC)
			LD (HL),A
			RET
Пробую то же самое уже для массива атрибутов из линейного DEFB сверху вниз/слева направо (правда тут иные регистровые пары используются, и рисуется в буфер), так почему-то при достижении позиции Y определённого значения оно перескакивает на начало экрана. Что-то не то в булевой алгебре AND OR
_SPR_H, _SPR_W - высота/ширина ректангла, соответственно.

Код:
ld hl, SPR_ATTR ;указатель на массив DEFB


		ld a,(_SPR_Y)
		ld d,a
		ld a,(_SPR_X)
		ld e,a
		ld	a,(_SPR_H)
		ld	b,a

PUTSPRITES2	push	bc
		push	de

                LD	A,D			
                RRCA
                RRCA
                RRCA
                LD	C,A
                AND	31
                OR	242 ; 61952/256
                LD	B,A
                LD	A,C
                AND	252
                OR	E
                LD	C,A

		ld	d,b
		ld	e,c
		ld	bc,(_SPR_W)
		ld	b,0
		ldir

		pop	de

		inc	d

		pop	bc
		djnz	PUTSPRITES2

	ret