ZX Spectrum Text FX

 


На ааафоруме обсуждали, как лучше сделать slideshow, мне пришла в голову идея написать эффект показа текста. Почти сразу идея заработала(надо нажать пробел для повтора):

device zxspectrum128
        ORG #6000
begin
; ld hl,$5800,de,$5803,bc,765:set 6,(hl):ldir
    ld hl,$5AFF,de,$5AFe,bc,$1B00-1,(hl),0:lddr
;    ld hl,$5800,de,$5801,bc,767,(hl),$47:ldir
fnt equ $3D00
ld de,$4885+3*256
exx
ld de, fnt-256+3
exx
;0       8
;1     6 8
;2   4 6 8
;3 2 4 6 8
;4 2 4 6 8
;5   4 6 8
;6     6 8
;7       8
ld c,2
ld ix,tmes
prlp1:
push de,ix
ld a,4
dl:ei:halt:dec a:jr nz,dl
prlp:
;color attributes
ld l,e
;$40=01000000 $58=01011000
;$48=01001000 $59=01011001
;$50=01010000 $5A=01011010
ld a,d
rrca
rrca
rrca
and 3
or $58
ld h,a
ld(hl),$47
;char
ld l,(ix+0)
inc ix
ld h,0
add hl,hl
add hl,hl
add hl,hl
push de
exx
push de
exx
pop de
add hl,de
pop de
push de
ld b,c
chlp:
ld a,(hl),(de),a
inc hl,d
djnz chlp
pop de
inc e
xor a
cp (ix+0)
jp nz,prlp
; jr $
pop ix,de
dec d
exx
dec e
exx
inc c,c
ld a,c
cp 10
jp nz,prlp1
wsp:
ld a,$7F: in a,($FE):rra:jr c,wsp
jp begin;jr $
tmes:
db "Mazilka/ 'Huj pojmesh'"
db 0
end
display /d,end-begin
savesna "textout.sna",begin


Комментарии