Pour ta routine, elle ne marche que pour des sprites de largeur au plus 8. Dans la boucle contcol, tu copie les données du sprite dans a et tu le décale vers la gauche pour voir si le point est noir ou pas, jusque là, pas de prob. Mais si tu décale ce registre plus de 8 fois (si la largeur de ton sprite est >8), a aura n'importe quelle valeur! C'est pour ça que le reste est un gribouillis sans nom...
Si tu veux déboguer ta routine , il te faudrait stocker de nouveau dans a les donneés du sprite tous les 8 décalages... Trop compliqué!!
A mon avis, tu es parti sur une mauvaise méthode: tester et copier chaque pixel est déjà très long, alors si en plus tu appelle un routine de la ROM (i_point), tes jeux risquent d'être vraiment très lents (comme du basic

). Tu devrait chercher une méthode qui copie octet par octet et non pixel par pixel.
Un dernier truc, tu peut gagner de la place (et surtout de la vitesse) en changeant quelques trucs dans ton prog:
- d'abord au lieu d'utiliser rlca, utilise add a,a qui fait la même chose ici et qui est plus court
- utilise l'instruction jr au lieu de jp, ça fait un octet de moins à chaque fois
- pour appeler la routine pointon, utilise call au lieu jr ... jr...