salut

je suis ce qu'on pourais qualifier de "vieillbécanophile", c'est pourquoi je programme sous TurboC, et cherche des trucs bizarre, pas de soucis.

je cherche a maitriser la manipullation de la memoire en mode texte. j'ai donc testé plusieurs trucs, avec l'aide de quelques personnes. voici le principe :

je pose en x,y, le caractere c, de couleur t, dont l'arriere plan est b.
l'adresse de la memoire utile en mode texte est B800, et chaques caractere est dérfinit par 2 octets (couleur et code ascii ...)

j'aimerais créer un pointeur vers la memoire, et , comme voulais que je fasse, le pote en question, définir ce caractere par un struct.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
struct chardata 
{
  char code;
  char colour;
}
et pour reprendre son exemple exact :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
struct chardata * screen = <pointer to B800:0000... mk_fptr or something like that, can't remember>
 
screen[x + 320 * y].code = 'A';
screen[x + 320 * y].colour = 15;
je créé donc ma structure :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
typedef struct memoire_video
{
char code;
int colour;
}
puis, j'assigne mo pointeur :

memoire_video *far charmap (char far*) 0xB8000000;
mais, ca coince (erreur dans le codage),et j'ai l'impression de ne pas faire ce que je voudrais.

auriez vous une solution a mon probleme ?, et pouriez vous m'expliquer en quoi ma struct va modifier le second offset de mon segment suivant s'il sajit de colour ou de code ?

merci, ++ Tix.