10-15-2 Affichage rapide
des chiffres
Pour afficher des caractères, nous
avons vu qu’il existait plusieurs vecteurs selon que l’on est en mode graphique
ou en mode texte. Mais ces vecteurs manquent de rapidité, surtout si l’on veut afficher
des centièmes en même temps que notre bolide et tous les contrôles qui vont
avec. En mode texte, les caractères sont alignés sur les octets et sur les
groupes de 8 lignes. Ils prennent 2x8 octets de mémoire, ce qui permet de les
recréer facilement en remplissant directement la mémoire avec ces octets. Le
seul problème est que le codage de ces octets dépend du n° de couleur papier et
du n° de couleur d’encre. Si on veut être rapide il faut donc choisir 2
couleurs uniques, ici le blanc sur fond vert.
1 |
2 |
2 |
2 |
2 |
2 |
1 |
1 |
= |
&87 |
&3C |
2 |
2 |
1 |
1 |
1 |
2 |
2 |
1 |
= |
&3C |
&96 |
2 |
2 |
1 |
1 |
2 |
2 |
2 |
1 |
= |
&3C |
&1E |
2 |
2 |
1 |
2 |
1 |
2 |
2 |
1 |
= |
&2D |
&96 |
2 |
2 |
2 |
1 |
1 |
2 |
2 |
1 |
= |
&1E |
&96 |
2 |
2 |
1 |
1 |
1 |
2 |
2 |
1 |
= |
&3C |
&96 |
1 |
2 |
2 |
2 |
2 |
2 |
1 |
1 |
= |
&87 |
&3C |
A noter qu’il n’y a que 7 lignes
de prises en compte au lieu de 8, ce qui est toujours ça de pris. C’est HL qui
pointe l’adresse de l’octet du bord haut/gauche, ensuite on remplie la mémoire
en zigzag. On commence par mettre &87 dans (HL), puis &3C dans (HL+1),
puis &96 dans (HL+&801), puis &3C dans (HL+&800),…
L’analyse du chiffre contenu dans
A se fait par dichotomie. On commence l’analyse par rapport à 5, puis par
rapport à 3 si c’est en dessous ou 7 si c’est au dessus,…
Pour l’analyse du programme,
reportez-vous à F1.ASM