2017-06-09 8 views
0

Je voudrais écrire un éditeur de texte fonctionnant sur l'écran texte. Dans l'écran PC 1280x1024 (160x64 char) moderne serait bon pour un écran plat. Pour des raisons de sécurité, je travaille sur une carte mère P4 i865. VESA bios définit la résolution mais en mode graphique; En outre, les registres VGA affiche les valeurs d'écran DOS d'origine. J'ai besoin d'aide pour programmer i865 en mode texte.Passer en mode texte haute résolution sur PC

+0

Je ne pense pas que les modes de texte 160x64 sont couramment mis en œuvre. Le mieux que vous êtes susceptible de trouver est quelque chose comme 132x60. Vous pouvez à la place dessiner votre propre texte en mode graphique 1280x1024, et le BIOS pourrait (devrait?) Prendre en charge la sortie de texte en mode graphique comme il le fait pour les modes graphiques VGA standard. –

Répondre

4

1280x1024 n'est pas une résolution VGA. Vous devrez utiliser VESA/VBE si vous souhaitez utiliser ces modes haute résolution. Et, à une exception près (qui ne répond pas à vos besoins), il n'y a pas de mode standard défini par VESA. Vous devez interroger la carte vidéo et choisir l'un des modes pris en charge. Utilisez la fonction VBE 00h pour obtenir une liste complète des modes pris en charge, et la fonction 01h pour vérifier les attributs de chacun de ces modes pris en charge pour voir si elle répond à vos besoins.

Une fois que vous avez trouvé le mode que vous voulez, la fonction 02h va définir ce mode, et vous avez terminé. Eh bien, sauf pour la partie difficile de l'écriture de code qui met du texte à l'écran! Ceci est entièrement documenté dans the standard. L'exemple de code en C est disponible sur le OSDev Wiki.

+0

J'essaie d'utiliser l'écriture en mode VESA avec son propre code graphique, mais je suis resté sur putpixel. – brekee12

+0

J'essaie d'utiliser l'écriture en mode VESA avec son propre code graphique, mais je suis resté sur putpixel. Le problème est le mode protégé. J'utilise DPMI et lit le PhysBuffPtr de VESA qui est E800 0000. Je teste 1280x1024: 256 avec poking quatre octets sur l'écran mais j'ai la faute de page ou rien de visible. Quelqu'un peut-il m'aider avec un code fonctionne avec pmode adresse le FB et mettre un pixel. Merci d'avance! – brekee12