Comment afficher un pixel en VGA ?

cs_LedPaL Messages postés 6 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 31 juillet 2004 - 31 juil. 2004 à 13:37
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 - 31 juil. 2004 à 15:16
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

Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
31 juil. 2004 à 14:32
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....
0
cs_LedPaL Messages postés 6 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 31 juillet 2004
31 juil. 2004 à 14:35
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 ?
0
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
31 juil. 2004 à 14:39
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....
0
cs_LedPaL Messages postés 6 Date d'inscription mercredi 4 février 2004 Statut Membre Dernière intervention 31 juillet 2004
31 juil. 2004 à 14:42
bah je t'ecrirai ca ce soir la jeu peu pas y'a ma copine ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
31 juil. 2004 à 14:42
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é
0
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
31 juil. 2004 à 14:47
Ouais....et c'est bien dommage :(

Patience et longueur de temps font plus que force ni que rage....
0
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
31 juil. 2004 à 14:49
c'est mieux comme ca, question performance il est imperatif de laisser la carte graphique gerer elle meme sa memoire
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
31 juil. 2004 à 14:52
'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++
0
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
31 juil. 2004 à 15:16
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....
0
Rejoignez-nous