0xA000 en mode protégée ? ca existe plus ?

Résolu
Mareck666 Messages postés 56 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 30 avril 2013 - 31 déc. 2006 à 12:33
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011 - 1 janv. 2007 à 22:38
    Bonjours tous le monde alors voila mon probléme, je trouve que c'est bien jolie de programmé des COM en mode ms-dos mais j'aimerai maintenant pouvoir réalisé en 32 bits un vrai jeu, ou e puisse acccédez directement a la VRAM, mais savez vous ou se trouve la VRAM en mode protégée parce-que qu'en j'accéde a l'adresse 0xA000 grace a un pointeur j'ai ce sacré message énervant de la part de Windows, que jepense tous le monde qui programme ici a fait la rencontre au moin une foi ;-)
S'il vous plait aidé moi

6 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
31 déc. 2006 à 13:16
Quant le processeur commute en mode protégé 32bits, tu ne peux plus accéder aux adresses linéaires, les pointeurs sont redirigés vers une table de descripteurs globaux qui ne sont pas accessibles directement.
Utilises donc DirectDraw qui est le + simple pour dialoguer avec la carte graphique en win32.
(une dixaine de lignes de code et en plus tu auras accès aux surfaces, doubles buffers, blitters, gamma ect...)
A plus.

PS : les adresses sont au formats :
.segment : offset (DWORD)
3
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
31 déc. 2006 à 16:00
Et même si il n'y avait pas de pagination, ce serait impossible. Windows protège en écriture les zone mémoires qui ne sont pas réservé par le processus. Comme cette zone est celle de la mémoire graphique, il y a peut de chance que tu puisse y acceder de quelconce façon.

Le mieu est de passer par les API.
DirectDraw comme dit yann
GDI. Si on sais bien l'utiliser, c'est très rapide
SDL. Une surcouche mais c'est asser "simple"

C++ (@++)<!--
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
31 déc. 2006 à 16:16
Cependant, si mes souvenirs sont bon, je crois que c'est grâce à la pagination que les zones sont protégées. Mais Windows procède peut-être d'une autre façon (je ne connais pas la structure interne du système). À confirmer...

C++ (@++)<!--
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
1 janv. 2007 à 01:21
MAREKK666 > Je m'en vais poster un code spécialement pour toi, regardes le, je l'appelle "effet graphique avec directDraw" :
Mode 13H, 320/200 256 couleurs, comme au bon vieux temps du qbasic !
A plus.
0

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

Posez votre question
Mareck666 Messages postés 56 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 30 avril 2013
1 janv. 2007 à 17:07
Merci [auteurdetail.aspx?ID=195004 yann_lo_san] & [auteurdetail.aspx?ID=617077 SAKingdom] pour vos réponces, mais je trouve que c'est quand même mesquin sa d'interdire l'accés a la mémoire vidéo ... , sa veut donc dire que je vais être obligé de me taper DirectDraw pour écrire a l'écran .... Grrrrr j'ai horreur du travail tous fait ..... mais bon si il y a que cette soluce ... Merci encore pour vos réponces
0
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
1 janv. 2007 à 22:38
"Grrrrr j'ai horreur du travail tous fait ...."

travail tout fait ... vite dit quand meme ^^
si tu ecris une librairie graphique fait en nous par ^^
0
Rejoignez-nous