Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;-----> Draw a picture
- ;Input: ix->sprite
- ; a=x
- ; l=y
- ; b=height (in pixels)
- ; c=width (in bytes, e.g. 2 would be 16 pixels)
- ;Output: nothing
- ; All registers are destroyed except bc', de', hl'
- largeSpriteAND:
- ex af,af'
- ld a,c
- push af
- ex af,af'
- ld e,l
- ld h,$00
- ld d,h
- add hl,de
- add hl,de
- add hl,hl
- add hl,hl
- ld e,a
- and $07
- ld c,a
- srl e
- srl e
- srl e
- add hl,de
- ld de,LCDBuffer
- add hl,de
- _ push hl ;largeSpriteLoop1
- _ ld d,(ix) ;largeSpriteLoop2
- ld e,$00
- ld a,c
- or a
- jr z,++_
- _ srl d ;largeSpriteLoop3
- rr e
- dec a
- jr nz,-_
- _ ld a,(hl) ;largeSpriteSkip1
- and d
- ld (hl),a
- inc hl
- ld a,(hl)
- and e
- ld (hl),a
- inc ix
- ex af,af'
- dec a
- push af
- ex af,af'
- pop af
- jr nz,---_
- pop hl
- pop af
- push af
- ex af,af'
- ld de,$0C
- add hl,de
- djnz ----_
- pop af
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement