Advertisement
Runer112

_SpriteFlipVert

Apr 26th, 2016
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. ;-------------------------------------------------------------------------------
  2. _SpriteFlipVert:
  3. ; Flip an array vertically about the center horizontal axis
  4. ; Arguments:
  5. ; __frame_arg0 : Pointer to 2D byte array input
  6. ; __frame_arg1 : Pointer to 2D byte array output
  7. ; __frame_arg2 : Width
  8. ; __frame_arg3 : Height
  9. ; Returns:
  10. ; __frame_arg0 : Pointer to 2D array output
  11. ld iy,0
  12. add iy,sp
  13. xor a,a
  14. sub a,(iy+9)
  15. ld (_FlipVertDelta_ASM),a \.r
  16. neg
  17. ld (_FlipVertWidth_ASM),a \.r
  18. ld l,(iy+12)
  19. dec l
  20. ld h,a
  21. mlt hl
  22. ld de,(iy+3)
  23. add hl,de
  24. ld de,(iy+6)
  25. push de
  26. _FlipVertWidth_ASM =$+1
  27. _: ld bc,0
  28. ldir
  29. _FlipVertDelta_ASM =$+1
  30. ld bc,-1
  31. add hl,bc
  32. add hl,bc
  33. dec a
  34. jr nz,-_
  35. pop hl
  36. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement