Comment afficher un pixel en VGA ?

Signaler
Messages postés
6
Date d'inscription
mercredi 4 février 2004
Statut
Membre
Dernière intervention
31 juillet 2004
-
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
-
Slt,

je programme ac dev-cpp et j'arrive pas a afficher de pixels a l'écran !!! de l'aide plz !!

voici un bout de ma source:

unsigned char * ecran = (unsigned char*) (0xA0000000L);

void vga()
{
asm("mov $0x13,%al\n
mov $0x00,%ah\n
int $0x10");
}

void Pixel(int x, int y, unsigned char couleur)
{
ecran[320*y+x]=couleur;
}

int main()
{

void vga();
void pixel(int x, int y, unsigned char couleur);

_getch();

return 0;
}
par exemple je met x 160, y 100, couleur = 11 et je devrai avoir un pixel bleu o milieu de l écran non ?

Enfin bref si qqun pouvait m'expliquer comment faire, etc........ca serai cool

merci d'avance.
@+

9 réponses

Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
Tu peux pas accéder à la mémoire vidéo parce que t'es en mode protégé :(
Essaye de compiler le même code avec DJGPP (compilo DOS) (vu ta syntaxe d'assembleur inline...).
PS : ce code, c'est toi qui l'as fait ou tu l'as piqué qq part? si c'est le 2ème cas ça m'intéresse de savoir d'où il vient ^^

Patience et longueur de temps font plus que force ni que rage....
Messages postés
6
Date d'inscription
mercredi 4 février 2004
Statut
Membre
Dernière intervention
31 juillet 2004

c moi qui l'ai fait ce code mais pour les compilo dos et tt j'avai TC3 mais je peu plus m'en servir pck il veu plus inclure les fichier :'(... comment on fait ?
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
Ben comme je t'ai dit c'est pas possible avec Dev-C++ (ni Visual C++, ni le compilo de Borland...).
Et puis c'est bizarre que t'aie fait ce code sous Turbo C++ 3, vu que tu utilises la syntaxe de l'assembleur AT&T non?? C'est les compilos dérivés de GCC qui font ça non?

"il veu plus inclure les fichier" -> tu peux t'expliquer?

Patience et longueur de temps font plus que force ni que rage....
Messages postés
6
Date d'inscription
mercredi 4 février 2004
Statut
Membre
Dernière intervention
31 juillet 2004

bah je t'ecrirai ca ce soir la jeu peu pas y'a ma copine ^^
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
probleme de logique, ce genre de truc ne marchera jamais de nos jours

rien que
unsigned char * ecran = (unsigned char*) (0xA0000000L);

c'est assez marrant de voir ca, c'etait bon a l'epoque du dos

maintenant tout se passe par les api supporté par les drivers de la carte graphique, tout est protegé
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
Ouais....et c'est bien dommage :(

Patience et longueur de temps font plus que force ni que rage....
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
c'est mieux comme ca, question performance il est imperatif de laisser la carte graphique gerer elle meme sa memoire
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
'dommage' surement non, c'est bien le detournement des interruptions et l'impossibilite d'acces direct au materiel qui garantit une certaine stabilite aux systemes modernes.
C'est uniquement fait dans ce but.

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
Oui, je suis d'accord que du côté des utilisateurs, et même des programmeurs, c'est plus simple, plus protégé...etc.
Mais bon, si j'ai envie d'afficher en accédant directement à la mémoire de l'écran ( j'sais pas moi, j'ai envie lol) ben je peux pas :(
Et puis, par exemple, si qq1 a envie de développer un concurrent à OpenGL et DirectGraphics ben il peut pas :( Enfin, c'est vrai aussi que faudrait adapter à toutes les cartes graphiques du marché...:S (j'espère que je dis pas de conneries là...je pense que si lol)

Patience et longueur de temps font plus que force ni que rage....