et quel beau bordel ! ^^
donc si vous pouviez me dire comment realiser un scrolling...
Euh, il me semble plutôt que c'est lorsque tu veux multiplier par deux que tu décales par la fonction idoine et non l'inverse (enfin, je veux dire, l'inverse marche aussi, mais la fonction Z80 est considérée comme une fonction de décalage avant tout)...
bcall(4540) ; efface l'écran
ld bc,0808 ; On définit la hauteur du sprite
ld (8265),bc ; de 16 et sa largeur de 8 (facultatif si ca ne change pas : Cf. plus bas)
ld bc,0007 ; BC=coordonnées du sprite à
; afficher: XXYY, avec le coin
; superieur-gauche comme ORG.
ld de,sprite ; DE=adresse du sprite dans le programme. c'est une simple étiquette.
call spritegraph ; Appel de la routine d'affichage du sprite.
ret ; Retour au basic.
ld a,(8265) ; On charge la hauteur du sprite
contline ;label
push af ; On la mémorise dans la pile
push bc ; on mémorise aussi les coord.
; de la ligne que l'on traite
; actuellement.
ld a,(8266) ; HL=largeur du sprite. c'est lui
ld h,a ; qui va compter qu'on parcourt
; la largeur correctement
ld a,(de) ; On met dans A la valeur dont
; l'adresse est pointée par DE
contcol ;label
rlca ; on fait le décalage, CY=bit7 de A
jp c,pointon ; Si CY=1 alors dessiner pt. noir
suite: ;label
inc b ; Ensuite, on avance coordX pour
; le pt. suivant.
dec h ; on décremente le compteur de
jp nz,contcol ; colonne s'il n'est pas égal
; à 0, on continue la ligne
inc de ; la ligne est finie, on passe à
; la suivante: le pointeur du
; sprite en mémoire est incrémenté.
pop bc ; on récupère les coord.
dec c ; pour calculer la ligne suivante à l'écran.
pop af ; on récupère le compteur de ligne
dec a ; et on vérifie si toutes les lignes
; ont étés faites(=0 dans ce cas)
jp nz,contline ; ce n'est pas fini? on continue
; d'afficher les lignes alors!
ret ; Retour de la routine
pointon
push de ; il faut préserver DE, car
ld d,01 ; l'instruction IPOINT a besoin
bcall(47E3) ; de D: si D=1 alors on trace ;47E3=i_point
; un point noir aux coord. BC.
pop de; on récupère DE.
jp suite ; et on continue le traitement à "suite"
sprite: .db FFFFFFFFFFFFFFFF ;carre noir
dancingmad (./13) :
uant aux TI-83, je n'ai toujours pas de doc, mais on s'en fout, plus personne n'en a