Deeph_Aff: ld a,19 ; On stocke 19 dans l'accumulateur ld (CoorX),a ; Puis on met la valeur de a (donc 19) dans la variable Coordonnée X (définit dans l'autre partit du code) ld a,0 ; idem avec 0 dans a ld (CoorY),a ; idem mais avec la variable de coordonnée Y ld b,25 ; On met 25 ici car il s'agit du nombre de fois que la boucle va se faire (un peut comme un 'for(A,0,50' en TI-Basic :D) Affichage: push bc ; il faut impérativement garder la valeur de b, donc on la met dans la pile ld a,(CoorY) ; Ensuite 'faut mettre la coordonnée Y dans l'accumulateur ld l,a ; Puis dans le registre l (pour la routine d'ion) ld b,14 ; La sprite fait 14 pixels de hauteur ld c,8 ; et 8 colonnes de 8 pixels ld a,(CoorX) ; on met la coordonnée de X dans a ld ix,Deeph ; il faut charger la sprite qu'est à ce label call ionLargeSprite ; on l'affiche dans le graphbuffer call ionFastCopy ; puis on la copie à l'écran bcall(_grbufclr) ; on éfface le graphbuffer et l'écran ld hl,(CoorY) ; on met la valeur de Y dans le registre hl inc hl ; on l'incrémente ld (CoorY),hl ; puis on la remet dans la variable pop bc ; ensuite on récupère la valeur de b qu'était dans la pile djnz Affichage ; si b ne vaut pas 0 alors on va au label Affichage call getK ; Ma p'tite routine de getKey bcall(_grbufclr) ; on éfface l'écran ret ; la routine s'arrête ici getK: ; la routine getKey (très rapide) ld a,$FD ; on décide de scanner le groupe de touche où se trouve 'ENTER' out (1),a ; notation obligatoire in a,(1) ; idem cp 254 ; on compare la touche préssée avec le code d'ENTER (254) jp nz,getK ; si c'est pas la touche ENTER qu'est préssée, on retourne au label 'getK' ret ; sinon la routine s'arrête là Deeph: .db %11111111,%00000000,%00000000,%00000000,%00000000,%00000000,%11000000,%00000000 .db %11111111,%00000000,%00000000,%00000000,%00000000,%00000000,%11000000,%00000000 .db %11000000,%11000000,%00000000,%00000000,%00000000,%00000000,%11000000,%00000000 .db %11000000,%11000000,%00000000,%00000000,%00000000,%00000000,%11000000,%00000000 .db %11000000,%11000011,%11110000,%00111111,%00001111,%11110000,%11001111,%00000000 .db %11000000,%11000011,%11110000,%00111111,%00001111,%11110000,%11001111,%00000000 .db %11000000,%11001100,%00001100,%11000000,%11001100,%00001100,%11110000,%11000000 .db %11000000,%11001100,%00001100,%11000000,%11001100,%00001100,%11110000,%11000000 .db %11000000,%11001111,%11111100,%11111111,%11001111,%11110000,%11000000,%11000000 .db %11000000,%11001111,%11111100,%11111111,%11001111,%11110000,%11000000,%11000000 .db %11000000,%11001100,%00000000,%11000000,%00001100,%00000000,%11000000,%11000000 .db %11000000,%11001100,%00000000,%11000000,%00001100,%00000000,%11000000,%11000000 .db %11111111,%00000011,%11110000,%00111111,%00001100,%00000000,%11000000,%11000000 .db %11111111,%00000011,%11110000,%00111111,%00001100,%00000000,%11000000,%11000000 .end