Index du forum




Un petit coup de main... Vous pouvez nous aider à mettre ce site à jour: n'hésitez pas à me contacter !!!

* Connexion   * Inscription

* FAQ
Nous sommes actuellement le 30 Nov 2025, 00:17

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Encodage des couleurs pixels, je suis confus

Modérateur: poulette73



Publier un nouveau sujet Répondre au sujet  Page 1 sur 1
 [ 4 message(s) ] 
  Aperçu avant impression Sujet précédent | Sujet suivant 
Auteur Message
avtcoco
 Sujet du message : Encodage des couleurs pixels, je suis confus
Message Publié : 01 Mars 2017, 14:50 
Hors-ligne

Inscription : 01 Mars 2017, 13:59
Message(s) : 2
Salut à tous,

Je me remets à la programmation sur CPC après 30 ans de break. J'ai commencé en 1986 et uniquement en Basic, et j'ai décidé de me relancer à la programmation en assembleur... Même pas peur, je suis rompu à l'assembleur x86, et le z80 n'est pas trop difficile. Bref, ce n'est pas le sujet :)

J'ai lu et relu les pages suivantes pour bien comprendre comment la mémoire écran est faite:
http://cpcrulez.fr/coding_ANTIBUG-01-struct_memoire_ecran.htm
et
http://cpcrulez.fr/coding_ecran_du_cpc1.htm

Ma question est simple:
- Je suis en Mode 1
- Je n'ai pas changé les inks (donc par défaut ink 0=bleu, ink 1=jaune, ink 2=cyan, et ink 3=rouge)
- Je tape : poke &c000, &x00110101

Puisque (en mode 1), les 4 pixels sont codés comme suit:
couleur pixel0 = bits 7 et 3, soit %00
couleur pixel1 = bits 6 et 2, soit %01
couleur pixel2 = bits 5 et 1, soit %10
couleur pixel3 = bits 4 et 0, soit %11

je m'attends à voir les 4 pixels suivantes : bleu-jaune-cyan-rouge
Et pourtant... non! Ca affiche bleu-cyan-jaune-rouge !

Ce qui me chicote, c'est ce qui est indiqué dans la page : "Encore une petite particularité: la valeur binaire de la couleur doit être "retournée" avant d'être placée dans l'octet."

Y'a que là que je trouve allusion à ce genre de manip.
Et effectivement, si je fais le miroir binaire de chacune des couleurs, ça "marche"... sauf que je ne comprends pas pourquoi!

Qu'est-ce que j'ai raté, ou mal compris?

Merci pour vos éclaircissements :)
avtcoco


Haut
 Profil  
 
Tronic
 Sujet du message : Re: Encodage des couleurs pixels, je suis confus
Message Publié : 01 Mars 2017, 23:59 
Hors-ligne
Rulez
Rulez

Inscription : 07 Avr 2013, 13:40
Message(s) : 28
Bonsoir,

Les "valeurs des encres" exprimées en bits doivent-être tout simplement "inversées" lorsque placées dans l'octet.

Mode 1 = 4 inks :
"valeur" 2 bits ink 0 = 00
"valeur" 2 bits ink 1 = 01
"valeur" 2 bits ink 2 = 10
"valeur" 2 bits ink 3 = 11

Un octet en mode 1 se décompose, en réalité, de la sorte :
Bit 7 de l'octet : bit 0 (et non 1) de ink0
Bit 6 de l'octet : bit 0 (et non 1) de ink1
Bit 5 de l'octet : bit 0 (et non 1) de ink2
Bit 4 de l'octet : bit 0 (et non 1) de ink3
Bit 3 de l'octet : bit 1 (et non 0) de ink0
Bit 2 de l'octet : bit 1 (et non 0) de ink1
Bit 1 de l'octet : bit 1 (et non 0) de ink2
Bit 0 de l'octet : bit 1 (et non 0) de ink3

Donc, si on veut les 4 pixels : ink0+ink1+ink2+ink3 dans un octet, en mode 1, dans l'ordre, ça nous donne :

bit7 de l'octet =bit0 de ink0 (00), soit 0 (bon dans votre essai)
bit6 de l'octet =bit0 de ink1 (01), soit 1 (pas bon dans votre essai)
bit5 de l'octet =bit0 de ink2 (10), soit 0 (pas bon non plus)
bit4 de l'octet =bit0 de ink3 (11), soit 1 (bon dans votre essai)
bit3 de l'octet =bit1 de ink0 (00), soit 0 (bon encore)
bit2 de l'octet =bit1 de ink1 (01), soit 0 (pas bon)
bit1 de l'octet =bit1 de ink2 (10), soit 1 (pas bon)
bit0 de l'octet =bit1 de ink3 (11), soit 1 (bon)

Et donc : 01010011 = poke &c000,&x01010011 = le quarté gagnant, dans l'ordre ;)

A+
Tronic/GPA


Haut
 Profil  
 
avtcoco
 Sujet du message : Re: Encodage des couleurs pixels, je suis confus
Message Publié : 02 Mars 2017, 09:20 
Hors-ligne

Inscription : 01 Mars 2017, 13:59
Message(s) : 2
Merci pour votre réponse, ça confirme bien mes investigations. Maintenant je sais à quoi m'en tenir :)

J'en profite pour remercier les administrateurs de cpcrulez.fr, votre site est une mine d'or!

avtcoco


Haut
 Profil  
 
hERMOL
 Sujet du message : Re: Encodage des couleurs pixels, je suis confus
Message Publié : 02 Mars 2017, 11:37 
Hors-ligne
Site Admin
Avatar de l’utilisateur

Inscription : 20 Août 2007, 18:21
Message(s) : 5103
avtcoco a écrit :
J'en profite pour remercier les administrateurs de cpcrulez.fr, votre site est une mine d'or!
et les utilisateurs du site des pépites :)


Haut
 Profil  
 
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  Page 1 sur 1
 [ 4 message(s) ] 

Index du forum » Z80 Coding

Le fuseau horaire est UTC+1 heure


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 43 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas insérer de pièces jointes dans ce forum

Aller vers :  
cron
Powered by phpBB® Forum Software © phpBB Group
Traduit en français par Maël Soucaze.