Lien pour information mémoire vidéo svp

Lien pour information mémoire vidéo svp - ASM - Programmation

Marsh Posté le 04-03-2004 à 07:50:34    

Bonjour, je cherche un lien pour des informations sur la mémoire vidéo, parce que je programmes un noyau, sauf que une fois passé en mode protégé, les int bios sont pu disponible, alors comment afficher quelque chose à l'écran ? comment accéder directement à la mémoire vidéo ? et COMMENT le bios lui-même fait pour accéder à la mémoire vidéo ? est-il possible de décompiler le bios ?  :pt1cable:

Reply

Marsh Posté le 04-03-2004 à 07:50:34   

Reply

Marsh Posté le 04-03-2004 à 09:33:40    

télécharge les sources du noyau linux et regarde comment ils font

Reply

Marsh Posté le 04-03-2004 à 21:42:55    

Pour afficher du texte va voir http://inferno.cs.univ-paris8.fr/~ [...] ial00.html.
Si j'ai bien compris, pour passer en mode graphique, il faut utiliser les fonctions vesa (celles en mode protégées bien sur), ou sinon il faut développer un driver pour ta carte graphique :)
Si tu trouves un autre moyen, fais le savoir stp.
Et oui, à priori, on peut décompiler un bios...


Message édité par olivier__ le 04-03-2004 à 21:43:43
Reply

Marsh Posté le 20-04-2004 à 22:23:24    

Si tu veux un max d'exemples, prend la source de allegro pour DJGPP.
 
Mais si tu veux simplement passer en LFB (Linear Frame Buffer), il te faut un driver vesa compatible 2.x ainsi qu'un serveur DPMI pour ne pas te prendre la tête avec le PM.
 
Une veille fonction que j'avais faite :

Code :
  1. // Linear Frame Buffer - Vesa Mode selection  
  2.     r.x.ax = 0x4F02;
  3.     r.x.bx = vesa_mode | 0x4000;
  4.     __dpmi_int(0x10, &r);
  5.     if (r.h.ah) {
  6.          //VESA function 0x4F02 failed
  7.          return false;
  8.     }
  9.     //Free Actual Video_Frame_Adress and Physical Mapping
  10.     if (SCR.pixel_adress!=NULL)
  11.     {
  12.          _remove_physical_mapping ( (unsigned long *)&SCR.pixel_adress, &SCR.pixel_selector );
  13.          SCR.pixel_adress = 0;
  14.     }
  15.     //Adjust Video_Frame_Adress with 8MB of memory in standard ( overpass the real Video RAM )
  16.     SCR.pixel_adress = (void *)mode_info.PhysBasePtr;
  17.     _create_physical_mapping ( (unsigned long *)&SCR.pixel_adress, &SCR.pixel_selector, mode_info.PhysBasePtr, 0x800000);


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed