Voici la partie où se trouve l'erreur:
find_table macro
;Récupération des paramètres
movem.l d0-d3/a0,-(a7)
move.w 1,d0 ;X
move.w 2,d1 ;Y
move.l 3,a0 ;adresse de la table
move.w 4,d2 ;type(donnée) 1<=> 1 octet ; 2 <=> 2 octets ; 4 <=> 4 octets.
move.w 5,d3 ;max(x)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mulu.w d1,d3 ;pour savoir sur quelle ligne pointé.
mulu.w d2,d0 ;Pour savoir le nombre d'octets à sauté.
add.w d0,d3 ;on ajoute le nombre octets en tout à sauté.
clr.w d4 ;On nettoie le registre d4
move.w 0(a0,d3.w),d4 ;On addittionne tout cela à la matrice
;Output:
;d4.l <=> contient la valeur rechercé
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;restauration des paramètres
movem.l (a7)+,d0-d3/a0
endm
_main:
;Moteur de recherche de la matrice table
move.w #9,d0 ;nbre de boucle en X à faire
move.w #8,d1 ;Et en Y
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
started_motor:
find_table d0,d1,#table,#2,#10
tst.w d4
beq fin_aff_sprite
movem.l d0-d1,-(a7)
mulu.w #10,d0
mulu.w #10,d1
Aff_sprite d0,d1,sprite
movem.l (a7)+,d0-d1
fin_aff_sprite:
dbf d0,started_motor
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
move.w #9,d0 ;arme d0
dbf d1,started_motor
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
jsr doorsos::GKeyIn
exit: rts
table:
dc.w 1,0,1,1,1,1,1,1,1,1
dc.w 1,1,0,0,0,0,0,0,0,1
dc.w 1,0,0,0,0,0,0,0,0,1
dc.w 1,0,0,0,0,0,0,0,0,1
dc.w 1,0,0,0,0,0,0,0,0,1
dc.w 1,0,0,0,0,0,0,0,0,1
dc.w 1,0,0,0,0,0,0,0,0,1
dc.w 1,0,0,0,0,0,0,0,1,1
dc.w 1,1,1,1,1,1,1,1,1,1
#attention Aff_sprite: est une macro servant à affiché un sprite de ce côté tout va bien.