ZX печать 2x1

 

Увидел на зааахе  заставку программы и захотел написать код печати на картинке. Пока ничего не придумалось. 108 байт

device zxspectrum128
        ORG #6000
begin
ld ix,msg
ld de,$4000
call pr2x1
jr $
pr2x1:
ld a,(ix+0)
inc ix
or a
ret z
ld l,a
add hl,hl
ld h,15
add hl,hl
add hl,hl
ld bc,0

push de
ld a,8
chylp:
push af
ld a,(hl)
inc hl
push de
ld d,8
chllp:
add a,a
push af
sbc a,a
and 3
sla c
rl b
sla c
rl b
or c
ld c,a
pop af
dec d
jr nz,chllp
pop de
ld a,b
ld (de),a
inc e
ld a,c
ld (de),a
dec e
call nbde
pop af
dec a
jr nz,chylp
pop de
inc e,e
jr pr2x1
nbde    INC D:LD A,D:AND 7:RET NZ
        LD A,E:ADD A,#20:LD E,A:RET C
        LD A,D:SUB 8:LD D,A:RET
msg: db " DIGITAL SERVICE ",0
end
display /d,end-begin
savesna "pr2x1.sna",begin


Комментарии