Advertisement
Eeems

Untitled

Jul 3rd, 2011
336
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;-----> Draw a picture
  2. ;Input: ix->sprite
  3. ;   a=x
  4. ;   l=y
  5. ;   b=height    (in pixels)
  6. ;   c=width     (in bytes, e.g. 2 would be 16 pixels)
  7. ;Output: nothing
  8. ; All registers are destroyed except bc', de', hl'
  9. largeSpriteAND:
  10.     ex  af,af'
  11.     ld  a,c
  12.     push    af
  13.     ex  af,af'
  14.     ld  e,l
  15.     ld  h,$00
  16.     ld  d,h
  17.     add hl,de
  18.     add hl,de
  19.     add hl,hl
  20.     add hl,hl
  21.     ld  e,a
  22.     and $07
  23.     ld  c,a
  24.     srl e
  25.     srl e
  26.     srl e
  27.     add hl,de
  28.     ld  de,LCDBuffer
  29.     add hl,de
  30. _   push    hl  ;largeSpriteLoop1
  31. _   ld  d,(ix)  ;largeSpriteLoop2
  32.     ld  e,$00
  33.     ld  a,c
  34.     or  a
  35.     jr  z,++_
  36. _   srl d   ;largeSpriteLoop3
  37.     rr  e
  38.     dec a
  39.     jr  nz,-_
  40. _   ld  a,(hl)  ;largeSpriteSkip1
  41.     and d
  42.     ld  (hl),a
  43.     inc hl
  44.     ld  a,(hl)
  45.     and e
  46.     ld  (hl),a
  47.     inc ix
  48.     ex  af,af'
  49.     dec a
  50.     push    af
  51.     ex  af,af'
  52.     pop af
  53.     jr  nz,---_
  54.     pop hl
  55.     pop af
  56.     push    af
  57.     ex  af,af'
  58.     ld  de,$0C
  59.     add hl,de
  60.     djnz    ----_
  61.     pop af
  62.     ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement