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


Il convient aussi de comprendre l'affichage en mode BITMAP 4. Le tableau explicatif ci dessous provient de DefUsr :

Bitmap 4 (320*200) Le plan de RAMA regroupe les points de couleur 2
Le plan de RAMB regroupe les points de couleur 1
Un pixel (x, y) a 0 sur la RAMA et a 0 sur la RAMB prend la couleur 0
Un pixel (x, y) a 0 sur la RAMA et a 1 sur la RAMB prend la couleur 1
Un pixel (x, y) a 1 sur la RAMA et a 0 sur la RAMB prend la couleur 2
Un pixel (x, y) a 1 sur la RAMA et a 1 sur la RAMB prend la couleur 3

En d'autres termes, l'affichage va se faire sur 2 plans qui vont s'additionner. Prennons par exemple la deuxieme ligne de notre ball car elle contient les 4 couleurs possibles (voir schema de gauche). Nous avons donc la suite de couleurs suivantes : 0,1,2,3,2,1,1,0. En respectant le tableau ci dessus, la RAMA devrait contenir 0,0,1,1,1,0,0,0 et la RAMB devrait contenir 0,1,0,1,0,1,1,0

D'apres la structure ci-dessus et notre utilisation de l'espace cartouche, notre écran sera positionnné en mémoire à partir de l'adresse &H0000. La RAMA se trouvera de &H0000 a &H1FFF et la RAMB se trouvera de &H2000 a &H3FFF. Pour afficher la deuxieme ligne aux coordonnees (0,0), il suffiera d'ecrire &b01010110 (soit &H56) en &H2000 et &b00111000 (soit &H38) en &H0000.

Nous pouvons alors calculer les valeurs de la ball pour chacune des lignes pour chacun des plans (RAMA et RAMB).


En resumé, l'affichage d'une ball s'effectuera de la facon a droite.
  • X contient l'offset de la ball dans la RAMA (entre $0000 et $2000)
  • Nous décalerons de 40 a chaque ligne (Une ligne de 320 pixels contient 40 blocs de 8 pixels) pour calculer l'offset de la ligne suivante. La formule du décalage est ligne * 40
  LEAY $2000,X * Positionnement du pointeur
* pour la RAMB
       
  LDA #$3C * Ligne 0, RAMB
  STA ,Y  
  LDA #$00 * Ligne 0, RAMA
  STA ,X  
       
  LDA #$56 * Ligne 1, RAMB
  STA 40,Y  
  LDA #$38 * Ligne 1, RAMA
  STA 40,X  
       
  LDA #$AF * Ligne 2, RAMB
  STA 80,Y  
  LDA #$70 * Ligne 2, RAMA
  STA 80,X  
       
  ...    

© PULS 2004-2019