4Fermer6
vinceLe 04/01/2008 à 10:19
POKE ça met une valeur à une adresse

OR sur lynx la palette est de 16 couleurs parmi 4096 donc tu définis ta palette quelque part.

Le quelque part, c'est l'adresse 0xFDA0 (et les 32 octets suivants). 0xFDA2, c'est la couleur d'index 2 (on commence à 0) dans la palette, donc (cf la doc lynx) il s'agit de la valeur du vert sur les 4 bits de poids faible (valeurs 0 à 15).

On a vu que "PRESENTE" est affiché avec (comme par hasard) le rang de palette 2, donc la valeur verte sera à 0XFDA2. En faisant varier la valeur à cette adresse (avec un POKE), on change la couleur du sprite et on a donc l'impression de le voir apparaître.

for(j=0; 150 > j; j++) Vsync();

Pour la variable J partant de 0 et allant jusqu'à 149, on attends une synchronisation de l'écran, on augmente la variable J de 1 et on reboucle
(à 50 Hz ou 60Hz on aura respectivement 3secondes ou 2,5 secondes d'attente)


(à ce moment, "PRESENTE" n'est toujours pas différenciable du fond d'écran, la même couleur est utilisée)
  for(i=0; 16 > i; i++)  
{  
 
POKE(0xFDA2, i);
for(j=0; 10 > j; j++) Vsync(); 
 
} 

Pour la variable I allant de 0 à 15, on met la valeur de I comme couleur verte de l'index 2 de palette (l'adresse FDA2)
Ensuite on commence une boucle pour attendre 10 fois la synchronisation de l'écran ce qui donne un cinquième ou un sixième de seconde en fonction de la fréquence d'affichage.
A ce moment on augmente la valeur de I d'une unité et reboucle sur la première boucle...


Pour le .bat, il faut que tu appelles "c.bat test" le %1 est là pour indiquer qu'il faut récupérer le premier paramètre de la ligne de commande.