Difficultés pour afficher un pixel à l'écran
Je débute en C avec Turbo C++ sur un vieux 486 ou 386 (donc sous dos).
J'aimerais pouvoir afficher autre chose que du texte (des pixels, des lignes, des cercles etc...). Apparemment, c'est à ça que sert graphics.h mais mon code ne fonctionne pas quand je veux initialiser le mode graphique : un écran noir apparaît que je ne peux plus quitter qu'en réamorçant...De toute façon j'ai l'habitude. :?
J'ai également essayé de faire ça en assembleur. J'arrive à passer en mode 13H (la taille du texte en témoigne quand je compile) mais si j'essaie d'afficher un simple pixel(
Code:
1 2 3 4 5
| char *ecran = (char *) (A0000000L);
void pset(int x, int y, unsigned char couleur)
{
ecran [(320*y)+x] = couleur;
} |
et ensuite, après être passé en mode graphique, Pset(20,20,12); par exemple...), celui-ci n'apparait pas quand je teste, alors que le mode 13 est bien activé.
Je suis un Ultra débutant et ce code est emprunté à un cours de C.
Si j'ai compris mon cours, en attribuant la couleur du pixel à une variable pointée sur la mémoire graphique, ça affiche un pixel de cette couleur mais vu comme je comprends les choses...
J'aimerais que quelqu'un m'aide ou me dise si je dois trouver un langage plus simple, le C étant peut-être trop compliqué. :?:
Re: Difficultés pour afficher un pixel à l'écran
Citation:
Envoyé par Bubonik software
Code:
char *ecran = (char *) (A0000000L);
Je n'avais pas fait attention à cette initialisation bizarre. Essaye :
En modèle Compact, Large ou Huge :
Code:
char *ecran = (char*) MK_FP(0xA000, 0x0000);
Si tu laisse en Small (recommandé, car cela augmentera les performances) :
Code:
char far *ecran = (char far*) MK_FP(0xA000, 0x0000);
MK_FP est une macro dans dos.h.