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


Un petit test reste a faire pour déterminer si la ball à effacer est du type 8 pixels ou 16 pixels. Dans notre cas, c'est assez facile, car seule la ball 0 est de 8 pixels. Un CMP suivie d'un BEQ fera parfaitement l'affaire. Cependant, il nous faut à nouveau ré-extraire l'offset de la ball à afficher et son numéro, car nous n'utilisons pas la meme information que pour afficher (rappelons nous que nous effacons toutes les balls d'une images, et les affichons ensuites toutes pour l'image suivante). Cette fois ci, nous n'avons pas besoin de faire des décalage car nous pouvons tester apres un masque si le resultat obtenu est 0 (ce qui indique la ball 0) ou autre chose.

  * D contient une information offset+num ball
  PSHS A  
  ANDA #$1F  
  TFR D,Y  
  PULS A  
  ANDA #$E0  
  BEQ EFFBALL0  
       
  * Routine efface ball 16 pixels
  ...    
  * Routine efface ball 8 pixels
EFFBALL0      
  ...    

© PULS 2004-2019