I have a question concerning this particular routine. Would it work for 8x8 sprites?
EDIT: Also how would go about it so that when I press a button the rotation occurs to a certain degree depending on how long u held it for?
Yeah, offcourse. This routine works for any sprites, any size. If you store each black pixel's coordinate to the memory before the main loop, it'll be much faster.
Nice one. Now add grayscale, zooming and skewing.