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
23
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
23
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