Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1279 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Suivante
Auteur Sujet :

programmation graphique 800*600

n°770032
bjone
Insert booze to continue
Posté le 19-06-2004 à 20:26:24  profilanswer
 

Reprise du message précédent :
perso je prefère avoir ES&DS qui sont au même sélecteur, et de linéariser les segment mode réel en adresse linéaire/physique.

mood
Publicité
Posté le 19-06-2004 à 20:26:24  profilanswer
 

n°770037
ptitchep
Posté le 19-06-2004 à 20:43:01  profilanswer
 

ok je vais essayer merci
Petite question subsidiaire:
quand je shift de 4 bits vers la gauche (SHL je suppose) j'obtient un nombre qui ne tient plus sur 16 bits et que je mets ds Edi (par ex). Comment j'accède ensuite à cette adresse?
[edi+offset]?

n°770059
ptitchep
Posté le 19-06-2004 à 21:34:29  profilanswer
 

ok ça marche,j'obtient une adresse physique (suite à la fonction 4f01) qui est sensée être l'adresse de la mémoire ecran (si j'ai bien compris: physical address for flat frame buffer). Comment je fais pour écrire à cette adresse?  
C'est mon premier prog en mode protégé, au moins j'en aurais chié!
Je vais peut-être enfin réaliser le "Hello world" de la prog graphique: l'ecran bleu!

n°770184
bjone
Insert booze to continue
Posté le 20-06-2004 à 10:35:01  profilanswer
 

alors quand je parles de linéarisation d'une adresse en mode réel:
 
tu as ton adresse en mode reél segment : offset.
là l'offset t'en as pas, ta structure alloué < 1 Mo est aligné sur un segment.
 
l'adresse physique est obtenu à partir du mode réel via (segment<<4) + offset ce qui fait une adresse sur 20 bits. (21 pour la HMA sous dos, vu qu'avec (0ffffh << 4) + 0ffffh tu peux faire plus que 0fffffh)
 
donc pour atteindre simplement un segment mode réel en mode protégé en modèle flat (demoins celui que t'as avec DOS/4G & PMODE...), tu prends ton segment 16 bits, tu le mets dans un registre 32 bits (éténdu avec des 0), tu shiftes de 4 bits vers la gauche. et valà t'as l'adresse (physique) du segment mode réel.
 

n°770186
bjone
Insert booze to continue
Posté le 20-06-2004 à 10:39:29  profilanswer
 

donc une fois que tu as l'adresse physique, il faut que la mappes dans ton espace de donnée.
 
et c'est avec la fonction 800h du DPMI qu'il faut faire ça.
 
http://www.tenberry.com/dpmi/16.html
 
si tu veux un exemple, regarde le fichier vesa.asm de l'archive 7-zip que je t'ai filé l'autre fois.

n°770916
ptitchep
Posté le 21-06-2004 à 10:13:01  profilanswer
 

je n'ai pas pu ouvrir ton archive, c'est un fichier .7z et je peux pas l'ouvrir...

n°770918
ptitchep
Posté le 21-06-2004 à 10:13:37  profilanswer
 

en effet l'exemple pourrait servir...

n°771002
ptitchep
Posté le 21-06-2004 à 10:56:08  profilanswer
 

C'est génial,ça marche, j'ai mon ecran bleu en 800*600, 1024*768... Merci bcp d'avoir galéré pour moi et d'avoir patienté pendant quand même 85(!) messages. je vais enfin pouvoir faire la suite de mon prog et avoir de bôôô graphismes
Merci bien
 
Chep

n°771259
bjone
Insert booze to continue
Posté le 21-06-2004 à 12:37:43  profilanswer
 

ptitchep a écrit :

je n'ai pas pu ouvrir ton archive, c'est un fichier .7z et je peux pas l'ouvrir...


 
c'est du 7-Zip...
 
http://www.7-zip.org/

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
programmation 32 bitsinterface graphique (ms VC++ 6 // Borland C++ builder)
Interface graphique : comment docker des JPanel de maniere définitive?Liste des languages de programmation. [Scriptol vous connaissez?]
Petit Probleme de programmationl'affichage graphique sous visual fortran avec developer studio
affichage graphique menu langage CProgrammation en Vax
Programmation OS & API Windowsalgorithme et programmation en langage c
Plus de sujets relatifs à : programmation graphique 800*600


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR