Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Vesa en mode Protégé [ Divers / Général ] (epineurien)

lundi 17 septembre 2007 à 14:04:31 | Vesa en mode Protégé

epineurien

Voila , ca fait un moment que je souhaite quitter le mode réel , pour passer en mode protégé (faire tenir mon environnement 3d RayTracing dans moins d'1Mo de mémoire vive ça m'a donner des crises de nerf) .
Jusque là pas de probleme mais ma librairie de fonction ne fonctionne plus en mode protégé puisque elles utilisent des interruption VESA!
Donc je voudrait savoir comment utiliser vesa en mode protégé , ou encore mieux , n'importe quelle  interruption en mode protégé .
Petites précisions :
-je ne veux pas d'opengl/directx/... , je veux le vesa pour accéder directement à la mémoire video ce qui est le plus rapide .
-je ne veux pas passer en mode real-flat (sauf si vous pouvez me fournir un code source qui marche , parceque j'ai jamais réussi avec ce que je trouve sur le net) .
Merci d'avance ...

mardi 18 septembre 2007 à 12:44:49 | Re : Vesa en mode Protégé

patatalo

Membre Club Administrateur CodeS-SourceS
salut,



c'est possible avec le VESA, tu auras toutes tes informations ici:
[ Lien ]


@++

mardi 18 septembre 2007 à 13:29:55 | Re : Vesa en mode Protégé

epineurien

Merci de la réponse , j'avais déjà trouvé ce document , mais j'arrive toujours à rien :
Même si ils mettent que le code VESA est du 16bit pouvant etre appelé en mode32bit , quand j'appelle les fonction VBE
via int10h , window m'envoie : le programme test.exe a rencontré un probleme et doit fermer , blablabla ...
Dans le .pdf il parlent de "protected mode entry point" , ce que je n'arrive pas à traduire : ca veut dire qu'il y a qqc de particulier à faire par rapport au mode réel ? ou que les fonction VBE sont sensée marcher normalement (auquel cas ca serait ma carte/les drivers qui ne respecterai la norme vesa ?) .

mardi 18 septembre 2007 à 14:14:22 | Re : Vesa en mode Protégé

epineurien

Mea Culpa , je viens de relire une enième fois le document et j'ai trouvé pourquoi ca ne marchait pas (il faut utiliser une image du bios vesa ou qqc du même genre apparement) .
Désolé , je suis vraiment pas bon en anglais et j'avais zappé le chapitre d'explication sur le protected mode entry point .
Je reposterai ici , si ca ne marche toujours pas :-) .

mercredi 19 septembre 2007 à 13:35:29 | Re : Vesa en mode Protégé

epineurien

Suite ; aprés avoir passé toute la soiré sur le code , ca bloque toujours , je suis victime de ma double ignorance en anglais et en mode protégé :
page 23
"2)Copy the bios from the c0000h physical memory :" ca veut dire que je doit le récupérer à partir de l'offset c0000h ou bien que ce c0000h c'est ce que je doit mettre dans le registre de segment (donc un pointeur valant 0c0000h:[0] )? de plus je croyais qu'on avait plus accés au segments et à leur registre en mode protégé ?
"5)Create selector that point..." je doit mettre un pointeur vers l'offset a0000h ou quand il parle de selecteur , c'est le même genre que ce que l'on bidouille lors du passage en mode real-flat ? , si oui , ca veut dire qu'il faut créer le descripteur dns la GDT et mettre le selecteur dans la table DPMI ? auquel cas , quelqu'un peut m'expliquer comment on fait (j'ai essayer le mode real-flat mais j'ai jamais réussi à faire quoi ce soit avec la GDT) ?

mercredi 19 septembre 2007 à 15:37:44 | Re : Vesa en mode Protégé

patatalo

Membre Club Administrateur CodeS-SourceS
salut,





je n'ai jamais pris le temps de regarder le VBE3 a fond, je vais lire la doc des que j'aurais un peu de temps afin de voir comment ça fonctionne, j'en aurais besoin de toute façon a un moment ou un autre.
tu dois te familiariser avec les convertion de segment16:offset16 a offset32.

offset32 = (segment16<<4)+offset16
segment16 = offset32>>4 avec offset16 = offset32 & 0x0f.

@++

mercredi 19 septembre 2007 à 21:28:52 | Re : Vesa en mode Protégé

patatalo

Membre Club Administrateur CodeS-SourceS

re,




je viens de commencer a lire la doc.
as-tu réussi a trouver le PMInfoBlock ?
et il y a une autre alternative:  [ Lien ]
dans cette seconde doc, tu trouveras des exemples en mode protégé.

@++


mercredi 19 septembre 2007 à 22:56:12 | Re : Vesa en mode Protégé

patatalo

Membre Club Administrateur CodeS-SourceS
rere,




ça aussi ça pourra t'aider; c'est un manager dpmi gratuit et avec les sources pour les appels int86 et callRealMode
[ Lien ]

@++

jeudi 20 septembre 2007 à 16:35:30 | Re : Vesa en mode Protégé

epineurien

Salut ,
Merci pour les deux lien mais je tien à rester dans le VESA classique , ca m'embetterai de devoir mettre à la poubelle toute la librairie que j'avait en mode réel , je vais quand même regarder au cas où .

Pour ce qui est du block PMI c'est le 1er probleme : "0c0000h physical memory" ca veut dire que je doit copier le 32kB du bios à partir d'un pointeur  type es:[di] , avec 0c000h dans es ? ou bien quelquechose du style [edi] , avec edi = 0c0000h ?
J'ai testé ni l'une ni l'autre pour l'instant car j'arrive pas à faire des pointeurs vers le Buffer qui doit recevoir le bios sans que ca plante .
Je vais faire des tests pour comprendre ce qui marche pas (argh , c'était vraiment plus facile le réel !)

jeudi 20 septembre 2007 à 16:57:34 | Re : Vesa en mode Protégé

patatalo

Membre Club Administrateur CodeS-SourceS
salut,




dans tous les cas si ta librairie est en mode réel, elle est obsolete mais tu peux peut etre simplement la modifier pour la convertir en mode protégé.
si elle est en mode réel, pourquoi vouloir la faire fonctionner en mode protégé ?

sinon, pour rechercher le PMInfoBlock, cela dépends si tu est en mode protégé ou en mode réel lors de la recherche.
si tu est en mode réel alors
push word 0xC000
xor di,di
mov cx,32K
pop es
.1
mov al,'P'
repne scasb
jecxz .notfound
dec di
inc cx
cmp word [di],'DI'
cmp word [di+2],'MP'
jne .1
; verifier checksum
jne .1
; ici la structure est trouvée a es:di

si tu est en mode protégé.
;-------------------------------------------------------------------
GDT:
;-------------------------------------------------------------------
dd      0,0
FLAT_DATA0  EQU $-GDT   ;+3 pour FLAT_DATA3
.01:
dw      0xFFFF      ;limit -1
dw      0       ;base 0
db      0
db      DESC_D32                        ;present, ring 0, data, expand-up, writable
db      0xCF                            ;page-granular, 32-bit
db      0
.02:
dd  0,0
dd  0,0

mov ax,FLAT_DATA0
mov edi,0xC0000
mov ecx,32K
mov es,ax
.1
mov eax,'DIMP'
repne scasb
jecxz .notfound
dec edi
inc ecx
cmp dword [edi],eax
jne .1
; verifier checksum
jne .1
...

@++


1 2 3

Cette discussion est classé dans : passer, mémoire, mode, protégé, vesa


Répondre à ce message

Sujets en rapport avec ce message

NASM en mode protégé [ par webfish ] Salut, Jusqu'à maintenant, j'ai fais de l'assembleur en mode réél avec NASM, et j'aimerais essayer le mode protégé. Comment commencer, Existe-t-il d prob mode protégé pour graphisme [ par prunkdump ] Bonjours afin de testé un de mes programmes qui passe en mode protégé j'ai éssayé de renplir en 32bits le buffer d'écran en mode graphique 13h. Au déb Passer en RING0 sous Windows XP ! [ par toto8966 ] Hello, Pour pouvoir placer du code en mode Ring0 jutilise jusqu'a présent le Driver TVicHW32. ( http://www.entechtaiwan.com/tvichw32.htm ) Ca fonction Interruptions en mode protégé [ par djqb ] Bonjour tout le monde 8D, je programme depuis pas longtemps en assembleur. J'ai réussi à faire une routine d'effacement d'écran en mode protégé mais m mode protégé + nasm [ par dodo76 ] Bonjour,je suis en train de développer un programme pour le mettre dans une eprom. Pour l'instant je programmais en mode réel mais là j'ai besoin d'ut Mode 13h en 32 bits protege [ par frostie ] Bonjour, je suis en train de travailler sur un micro-kernel en 32 bits mode protege C/ASM et je voudrais passer en mode VGA 13h (mode graphique). Le h mode protégé [ par TRAX44 ] Bonjour,je voudrai savoir cmt pa c en mode protégé sans aucun drivers ou autre! J'ai surtout des pb avec la gdt je compren pas vraiment cmt sa marche A20 or not A20? [ par SystemOfAXav ] Salut,   Pourquoi certains tutoriels sur le mode protégé parlent de la nécessité de "débloquer l'A20" et d'autres pas, est-ce une survivance des temps debug et le mode texte par 0B800h [ par ShareVB ] bonjour à tous,j'ai vu qu'il fallait lancer l'utilitaire debug dans la fenêtre console avant de lancer l'exe (16bits mode réel) pour pouvoir voir les programmation graphique en mode 12h [ par masta_jigga ] J'aimerai poser surement une bete question. Comment puis-je faire pour travailler dans le mode 12h (640x480 en 16 couleurs)en accedant directement à l


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.