Palettes de couleur du PHC-25 en mode graphique 2
Le mode graphique n°2 du PHC-25 fournit 8 couleurs, en plus du fond noir. Mais la couleur de chaque emplacement à l’écran est encodé sur 2 bits, ce qui fait seulement 4 valeurs différentes. Alors, comment c’est possible ?
Sur le screenshot suivant on voit l’usage de 5 couleurs. Quatre pour les batiments de la ville et une cinquième pour l’avion.
Pour chaque colonne c
de la ville (ligne 2090) on tire au sort une forme et une couleur.
2060 sh(0)=53:sh(1)=58:rem 2 shapes
2070 co(0)=0:co(1)=64:co(2)=128:co(3)=192:rem 4 colors
2090 c=co(int(rnd(1)*4))+sh(int(rnd(1)*2))
La forme 53 correspond à :
11
01
01
Et la forme 58 correspond à :
11
10
10
Les couleurs étant codées sur les deux bits de poids fort d’un octet, on a ceci :
décimal | binaire | couleur |
---|---|---|
0 | 00000000 | vert |
64 | 01000000 | jaune |
128 | 10000000 | bleu foncé |
192 | 11000000 | rouge |
Voir l’article précédent pour l’explication de l’encodage des formes et des couleurs.
Sur l’image ci-dessus on voit que la ville est blanche, bleu ciel, rose, et orange.
Pour obtenir ces quatre autres couleurs, il faut positionner à 1
le bit d’attribut de palette.
Les attributs se trouve à partir de l’adresse mémoire 26624 et on a un octet par coordonnée d’écran.
Donc les attributs du bloc (0,0) se trouvent en 26624, ceux du bloc (1,0) se trouvent en 26625, etc.
Dans un octet d’attribut le bit 1 s’occupe du mode graphique (0 pour texte et 1 pour semi-graphique) et le bit 2 represente la palette de couleur (0 pour vert-rouge et 1 pour blanc-orange). Comme nous sommes en mode n°2/semi-graphique (bit 1 activé) il n’y a que deux possibilités pour un attribut :
00000010 = première palette de couleur
00000110 = seconde palette de couleur
2110 mem=24576+x+y*32:attr=26624+x+y*32
2120 poke mem,c:poke attr,6
Référence(s)
Code source de Blitz en mode graphique 2
Cet article fait partie d’une série :
Commentaires
Pas encore trouvé de solution simple et non-invasive pour avoir des commentaires sur le blog. En attendant vous pouvez laisser votre Commentaire sur mastodon@lkdjiin