probleme avec struct, pointeur, et memoire vidéo
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:
1 2 3 4 5
| struct chardata
{
char code;
char colour;
} |
et pour reprendre son exemple exact :
Code:
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:
1 2 3 4 5 6
|
typedef struct memoire_video
{
char code;
int colour;
} |
puis, j'assigne mo pointeur :
Citation:
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.