вычисление адреса аттрибутов для ZX

 

Всю неделю занимался всякими задачами, теперь польются посты. Писал код для Вики вычисления аттрибутов:

;Calculate Attribute address, IN: reg D=Y,reg E=X, OUT: HL=address, destroys DE
 ld l,d
 add hl,hl
 add hl,hl
 ld h,$11
 add hl,hl
 add hl,hl
 add hl,hl
 ld d,0
 add hl,de

11 байт, после чтения доков выросло другое:

device zxspectrum128
        ORG #6000
begin
; jr $
ld d,0
zu:
ld l,d,h,d
p1:
ld a,h
rrca
rrca
rrca
push af
and 3
add a,$58
ld h,a
pop af
and %11100000
add a,l
ld l,a
p2:
ld (hl),0
ei:halt
inc d
ld a,d
cp 24
jp nz,zu
jr $
end
display /d,p2-p1
display /d,end-begin
savesna "!void.sna",begin

15 байт





Комментарии