Login

Subversion Repositories NedoOS

Rev

Rev 171 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

;hl'=tileaddr for line end
;bc'=40
;hl=addrstack
;b=hgt
;c=-((width+3)/4)
_prtilesfast0
        ld sp,hl ;addrstack for this line
        ld a,c
        exx
        add a,l ;(это вычитание) без переноса, т.к. читаем тайлы через inc e
        ld e,a
        ld d,h
;hl=tileaddr for line end
;de=tileaddr for line start
        ld (prtilesfast0lineend),hl ;tileaddr for line end
        ld a,(hl)
        ex af,af'
        ld (hl),ENDLINETILE;0xfe ;patch after last tile
        ld a,(de)
        inc e
        ld l,a
        or 0xc0
        ld h,a
        jp (hl)
proc_endline
prtilesfast0lineend=$+1
        ld hl,0 ;tileaddr for line end
        ex af,af'

        ld (hl),a ;unpatch after last tile
        ld de,32
        add hl,de
        exx
        inc h ;move addrstack addr
        djnz _prtilesfast0