Pages : [01] [02] [03] [04] [05] [06] [07] [08] [09] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21]


De la meme facon, toutes les lignes de toutes les balls subieront des optimisations similaires dans la mesure du possible. Il reste maintenant a définir quelle boule afficher et faire le branchement vers la routine correspondante.

De facon à eviter les calculs, le fichier binaire qui contiendra les offsets de chacune des balls de chacunes des images contiendra aussi le numéro de ball à afficher. Nos offset dans notre fichier oscillent au maximum entre &H0000 et &H1FFF, soit en binaire &b0001111111111111. Nous decouvrons alors que nos avons 3 bits de libre a gauche de ce mot (rappel : 1 mot = 2 octets). Alors, plutot que d'utiliser un octet supplémentaire pour définir le numéro d'image (qui oscille entre 0 et 7), autant utiliser ces 3 bits qui nous permettent de plus des valeurs entre 0 et 7 ! Cela nous permet d'optimiser aussi le fichier binaire, et donc de sauver de la place en mémoire, ce qui permettra plus d'images, ou un temps de chargement plus court.

Le travail sera donc ici d'extracter d'un mot le numero de ball ainsi que son offset, ce qui nous permettra au final de l'afficher a la place souhaitée au pixel pret. La routine consistera alors en masque et en décalages logiques.

  * D contient une information offset+num ball
  PSHS A  
  ANDA #$1F  
  TFR D,Y * Y contient l'offset uniquement
  PULS A  
  ASRA    
  ASRA    
  ASRA    
  ASRA    
  ASRA   * A est decale a droite de 5 bits
  ANDA #$07 * A contient le numero de ball

© PULS 2004-2019