10-9 Etude de la synchro verticale
Comme nous l’avons vu dans la
partie 9 sur la vidéo, il est bon de s’aligner sur la synchronisation verticale
de l’écran pour créer des animations. C’est donc ce que nous faisons avec une
boucle d’attente du signal VBL. Celui-ci est interrogé sur le port &F5xx et
le signal VBL se trouve sur le bit de poids. On reboucle tant que ce bit est
différent de 0.
VBL LD B,&F5 ;
Port de la VBL
VBLBOUCL IN A,(C)
RRA
; VLB = bit 0 à 1 = active?
JR NC,VBLBOUCL ; non => rebouclage
Le seul problème est que ce signal
dure 16 lignes d’écran. Il faut donc s’assurer que le programme synchronisé
dure au moins ce temps avant de reboucler. Ici c’est largement le cas.
Cette synchronisation offre un
deuxième avantage qui est une base de temps efficace. En effet, le signal VBL
intervient tous les 50èmes de seconde et ça tombe bien, puisque le chronomètre
est justement incrémenté tous les 2 centièmes de seconde. Ainsi on n’a même pas
à se soucier de savoir si les secondes sont bien des secondes, puisque le
chronomètre est incrémenté et affiché par rapport à la VBL.