|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2006 Messages : 100 ![]() |
Bonjour à vous tous !!!
Ayant enfin réussis a dessiner a l'écran(pour le moment juste un écran bleu ou violet etc ^^), plusieurs problème se pose. Comment utiliser les modes textes ^^. La première solution serait de "prendre un second mode" et de l'utiliser en mode texte, cela ne me semble pas bon car "short" au niveau du bootloader, quoi que ça doit passer je pense, c'est surtout car je n'ai rien trouver pour l'affichage du texte en vesa ^^.,si vous trouvez, je serais évidemment preneur ^^. La seconde solution serait de dessiner les caractères a l'écran, bonne, mais en fait mauvaise idée car cela ne m'intéresse pas de devoir dessiner tous les caractères moi même. Troisième solution, la meilleure celon moi, mais qui ne fonctionne pas, et c'est d'ailleurs pour ça que je viens vous voir. Passer en mode réel, appeler l'interruption 0x10 fonction 00 pour repasser en mode 0x03 qui est le mode d'affichage de base, enfin repasser en mode protégé puis ensuite d'écrire en 0xB8000. Mais évidemment, ça ne fonctionne pas comme prévu ^^. Le kernel, je pense que c'est le plus important Code :
Code :
Merci de votre aide, je vais continuer de chercher(mais je doute après 2h30 de recherche) des informations sur le mode vesa en mode texte(0x 108). Sur ce bonne soirée |
||||
|
|
00
|
|
|
#2 | ||
|
Membre expérimenté
![]() être humain Inscription : décembre 2007 Messages : 465 ![]() |
Code :
de plus, il faudrait encadrer tout le passage au mode reel par un cli/sti, meme les lignes sur le registre cr0. car si jamais tu as une interruption ou autre exception, ça risque de planter. celà dit, tu peux aussi recuperer la fonte du bios, mais bon, elle est moche, puis ecrire une fonte n'est pas si dur, d'ailleur, changer de mode pour afficher du texte est un peu bancal, carr soit tu afficheras du texte, soit du graphisme, mais tu ne peut pas melanger l'utilisation de deux modes vga. ça serait un peu comme dire à une voiture d'utiliser la première et la marche arrière en meme temps, les modes graphiques, c'est l'un ou l'autre. |
||
|
|
00
|
|
|
#3 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2006 Messages : 100 ![]() |
En fait je veux juste m'entrainer pour "switcher" entre le mode réel et le mode protéger même si j'en ai pas vraiment l'utilité en ce moment, ça pourrait venir pour la gestion du temps, car idem, je ne vois pas trop comment faire(vive le jeu du Snake haha) mais ce n'est pas encore trop urgent ^^.
Le fait de passer par des interruptions me rassurent un peu j'ai envie de dire. Tu parles de recharger au moins CS et SS, pour SS je vois comment faire. Par exemple Code :
Il faut faire un jmp? Dans mon cas ce serait plus : ou plutôt Pour les fontes, je ne vois pas trop comment faire, mais je vais essayer de me renseigner, pour le chargement aussi ^^. Rien que pour ouvrir un fichier déja, je pense pas savoir faire ^^, a moins de pouvoir utiliser des fonctions tels open? Merci de ta patience^^. |
||
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() être humain Inscription : décembre 2007 Messages : 465 ![]() |
pour ss, il faut d'abord creer les descripteurs mode reel (un pour les datas, un pour le code)
ss utilise le segment de datas) pour passer en mode protégé, il faut switcher, charger cs avec le jmp seg:next , puis les autres segments avec leurs descripteurs egalement. pour retourner au mode reel, il faut d'abord charger les autres segments avec un Descripteur Decrivant un segment de 64ko, dans la partie basse de la memoire, switcher en mode reel, empiler l'adresse mode reel puis charger le segment de code et ip avec retf. si tu veux, j'ai un code tout fait qui date un peu. il y a une partie qui joue au switch pour les modes vesa justement, cette partie vient de dex4u, un anglais qui à codé un dos du meme nom. voilà l'archive, à tester sous bochs, qemu, depuis une disquette, un disque dur, ou autre. après, il faut bien avoir en tete que le vesa, ça rame enormement, il vaut mieu n'utiliser que des petites resolutions en attendant d'avoir un pilote pour la cg. sous emulateur, ça rame reelement beaucoup, mais bon, ça suffit pour tester du code et des algos. |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2006 Messages : 100 ![]() |
Salut.
D'après ce que j'ai vu, le vesa rame beaucoup moins que la SDL par exemple, donc personellement, ça me va :p ^^. Ensuite pour le reste, c'est légèrement trop complexe pour moi, je pense booter directement depuis GRUB, car j'ai du mal a comprendre le chargement de plus de 255 secteurs. Je suis encore débutant en programmation, et je boot depuis une clef usb. Puis je pense que je vais utiliser "LA MAGNIFIQUE" police du bios en 0xF000:0000 ^^. Bref, merci quand même ^^ et bonne journée. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com