qhhu
Messages postés66Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 octobre 2009
-
19 oct. 2009 à 22:49
cs_patatalo
Messages postés1466Date d'inscriptionvendredi 2 janvier 2004StatutModérateurDernière intervention14 février 2014
-
9 déc. 2009 à 16:04
Bonjour !
J'ai un problème a propos de l'affichage graphique au niveau bios.
Je suis en train de faire un bootloader, exclusivement en asm, et j'aimerais, pour commencer, afficher une image.
J'ai regardé les modes vidéo, celui avec le plus de couleurs que j'ai trouvé est le 13h, avec 25600000 couleurs et la formidable résolution de 3200x2000 ! ...... euh, non, en fait c'est 320x200 en 256 couleurs et c'est pitoyable...
Donc j'ai cherché, cherché, pendant des années, et des années, et je n'ai RIEN trouvé qui me permettait de passer dans une meilleurs résolution. Voila pourquoi...
Je sais que'au démarrage, le système est en mode réel (16bits) et qu'il passe par la suite en mode protégé (32bits). Je suis tout à fait prêt a passer en 32bits si nécessaire, mais ce qui me trouble, c'est que le menu du bios de base de mon ordinateur affiche une meilleure résolution que le maximum que je peut atteindre avec le mode 13h....
Bref, je suis perdu...
Quel moyen puis-je employer pour exploiter mieux les capacités de ma carte graphique ? Je sais que je n'aurais pas la résolution de 1440x900 et le pixel shader, mais un petit 640x480 en Truecolor me suffirait...
Merci d'avance !
PS: je cherche bien a programmer entièrement ce boot loader, et je ne souhaite donc pas utiliser des librairies toutes faites... ceci dit si vous avez une source qui fonctionne, je pourrais sûrement tirer ce dont j'ai besoin !
Remplis les champs et télécharge le standard VBE core. Il permet l'emploi de modes graphiques haute résolution depuis le mode réel et il permet d'utiliser la mémoire graphique sous la forme de "fenêtres" de 64 ko (limite max en mode réel).
Forthman
Messages postés23Date d'inscriptionsamedi 25 décembre 2004StatutMembreDernière intervention 9 janvier 2014 21 oct. 2009 à 06:25
Oui, les modes VESA fonctionnent parfaitement en mode protégé.
Histoire de t'avancer un peu dans tes recherches,
voici ce qu'il faut pour basculer vers un mode donné :
mov ax,4F02h
mov bx, (mode video)
int 10h
le mode peut-être un mode "standard" VGA ( 13h par exemple)
Les modes sont propres à chaque constructeur mais il existe une sorte de "norme" genre le mode 101h c'est du 640x480 en 256 couleurs
Enfin, certains BIOS savent écrire du texte dans
ces modes graphiques et d'autres non
J'ai quelques applications embarquées, et pour me passer du fenêtrage, je bascule en mode FLAT et la mémoire vidéo se retrouve en
D0000000h ou E0000000h mais il faut tester machine par machine, et ça reste de la bidouille (pas bon pour un simple bootloader )
Forthman
Messages postés23Date d'inscriptionsamedi 25 décembre 2004StatutMembreDernière intervention 9 janvier 2014 22 oct. 2009 à 07:16
Non, c'est que tout l'affichage passe par les 64Ko réservés à l'affichage
VGA ( A000:0000h )
En mode 13h ton écran fait 64000 octets donc pas de problème.
En mode 101h ton écran fait 300Ko donc pour gérer tout l'écran
tu dois envoyer l'info au contrôleur pour lui indiquer quelle partie de
l'écran physique correspond à ton segment vidéo (A000:0000h)
Le mode mémoire FLAT c'est une bidouille qui consiste à passer en mode
protégé, déclarer un segment de 4Go et revenir en mode réel en remplçant la gestion des erreurs de segment pas un bout de code qui laisse faire
En fin de compte on se retrouve avec un mode réel capable d'adresser
4Go de RAM en utilisant les registres 32 Bits
A mon sens, le seul intérêt est pour les application autonomes gourmandes en
mémoire et n'ayant pas besoin des protections du mode... protégé
Dans ton cas il vaut mieux rester en mode réel et jongler avec les fenêtres
qhhu
Messages postés66Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 octobre 2009 21 oct. 2009 à 18:15
Ca a l'air pas mal du tout ! C'est même exactement ce que je cherchais !
Le standard VESA est donc supporté par plus ou moins tous les bios et cartes graphiques... hmmm interessant !
C'est en tout cas déjà bien mieux que le 320x200 !
Forthman (ou François, pour les intimes :), le fenêtrage, c'est le fait de passer toujours par la petite fenêtre que sont les interruptions, c'est ca ? Et qu'est-ce que le FLAT déjà ? ca me dit quelque chose...
Merci beaucoup pour vos réponses!
Vous n’avez pas trouvé la réponse que vous recherchez ?