Voici l'histoire. Hier soir, je bossais sur mon jeu. Je débugue toujours mes progs on-calc, donc après
une enième recompilation, j'envoie b_bobble dans ma calto.
Je lance, tire quelques bulles, mais il se trouvâ (

supression des bulles fit tourner une boucle à l'infini (c'est pas très exact mais bon). En gros, cette
in: movem.l (a7)+,d1/a0-a3 rts ; *************************************************************************************
boucle décale de 1 octet vers le la "gauche" chaque octet d'une zone de mémoire. Si je ne suis pas clair, voici la routine :; ************************************************************************************* ; *** Retire une bulle d'une liste de... bulles *** ; ************************************************************************************* ; *** Entrées : ; *** a0 : adresse de la liste de bulles ; *** d0.w : numéro de la bulle à retirer ; ************************************************************************************* RetirerBulle: movem.l d1/a0-a3,-(a7) subq.w #1,(a0) beq.s RetirerBulle_Fin move.w (a0),d1 lea 2(a0,d0.w),a0 lea 64(a0),a1 lea 128(a0),a2 lea 192(a0),a3 sub.w d0,d1 beq.s RetirerBulle_Fin ; C'est cette ligne que j'avais ommise. Sans elle, lorsque la bulle à retirer est la première, alors qu'il n'y a que deux bulles dans la liste, la boucle tourne 65535 fois... Ces conditions ont été réunies hier soir :( subq.w #1,d1 RetirerBulle_Loop: move.b 1(a0),(a0)+ move.b 1(a1),(a1)+ move.b 1(a2),(a2)+ move.b 1(a3),(a3)+ dbf d1,RetirerBulle_Loop RetirerBulle_F
Evidemment, mon "PDA" a planté. C'est ici que ça devient intéressant...
[edit]La suite au prochain post, j'"allège" un peu la description sinon ça va être désagréable à lire[/edit]
[edit]Edité par Thibaut le 09-08-2001 à 19:53:01[/edit]