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

  FORUM HardWare.fr
  Programmation
  C

  Mémoire étendue sous DOS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mémoire étendue sous DOS

n°771840
jojobibine
Posté le 21-06-2004 à 18:56:45  profilanswer
 

Salut,
Comment faire pour installer un exécutable en mémoire haute sous DOS (freedos).
J'ai installé himem64.exe ainsi que EMM386.exe.
J'ai un problème , je fais un calloc dans mon programme et je n'ais pas assez d'espace mémoire pour l'allocation .
Quelqun aurait la réponse?
merci

mood
Publicité
Posté le 21-06-2004 à 18:56:45  profilanswer
 

n°771846
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 21-06-2004 à 19:00:35  profilanswer
 

dans l'autoexec.bat :  

Code :
  1. lh executable.exe


question : pour quoi faire, le DOS ?


Message édité par Harkonnen le 21-06-2004 à 19:00:57

---------------
J'ai un string dans l'array (Paris Hilton)
n°772161
Carbon_14
Posté le 21-06-2004 à 23:31:54  profilanswer
 

Y a eu des DOS extenders à une époque pour "flatifier" la mémoire, je crois. http://www.tenberry.com/dos4g/ à voir, sais pas si ça convient....

n°772385
jojobibine
Posté le 22-06-2004 à 10:22:08  profilanswer
 

Pourquoi sous DOS ?
---> c'est un système embarqué. Avec que DOS d'installé dessus.
Le problème de cette solution c'est que quand tu charge le programme en mémoire, il s'éxecute en même temps.
Merci Carbon_14, il faut sans doute que je prenne cette piste.
Mais ce n'ais pas possible de créer de nouvelle page mémoire avec EMM386.exe(mémoire paginée), je crois que c'est juste pour les drivers, etc... ??

n°772387
jojobibine
Posté le 22-06-2004 à 10:23:01  profilanswer
 

Merci a toi aussi Harkonnen

n°773223
bjone
Insert booze to continue
Posté le 22-06-2004 à 20:40:37  profilanswer
 

bin si, mais avec EMM386 ou himem tu vas rapidement comprendre ta douleur....
 

n°773299
Carbon_14
Posté le 22-06-2004 à 21:45:57  profilanswer
 

Fonctions de l'EMM : INT 67H, fonctions 01 à 0EH.

n°773971
jojobibine
Posté le 23-06-2004 à 10:44:54  profilanswer
 

Ok, je ne vais pas me lancer là dedans!!! (emm386...)
J'ai essayé de compiler mon prog en DOS4/G(dos extender 32bits), le problème c'est que j'utilisais une librairie en 16 bits.  
En utilisant une librairie pour dos4/g, il manque certaines fonctions importantes.
Je vais essayer de créer un nouveau projet PHARLAP (DOS extender aussi )
Merci pour vos conseils...


Message édité par jojobibine le 29-06-2004 à 15:57:48
n°781566
jojobibine
Posté le 29-06-2004 à 15:33:47  profilanswer
 

En fait les problèmes de librairies étaient due à l'ancienne version de mon environnement de développement qui me générait des erreurs.
Maintenant mon programme tourne à peut près bien.
A peu près... car certaines fonctions réserve en mémoire des addresses de composants matériels (composants électroniques), et la le programme plante. (un beau crash).
Et ce que c'est le dos extender qui rentre en conflit avec l'emm386 ou bien existe t'il une solution pour que dos4g n'utilise pas une certaine plage d'addresses? (overwrite)
si quelqun peut m'aider!!!
merci d'avance

n°781573
bjone
Insert booze to continue
Posté le 29-06-2004 à 15:40:49  profilanswer
 

bah, ton hardware, il est dans l'espace mémoire du premier Mo ?

mood
Publicité
Posté le 29-06-2004 à 15:40:49  profilanswer
 

n°781584
jojobibine
Posté le 29-06-2004 à 15:55:50  profilanswer
 

non, la plge est E000-EFFF

n°781621
bjone
Insert booze to continue
Posté le 29-06-2004 à 16:31:51  profilanswer
 

oui donc sous le premier Mo...
 
quand tu alloues avec DOS4G, c'est toujours au dessus du premier Mo, donc pas de risque de taper où il ne faut pas..
 
t'as pensé à linéariser tes segments ? ie le segment E000, ça donne 0xE0000.

n°781633
jojobibine
Posté le 29-06-2004 à 16:38:34  profilanswer
 

Non je n'y avait pas pensé mais cela ne change rien.
Quand je lance l'exec. , j'ai:
DOS/4GW error(2001) : exception ODh (general protection fault) at....
merci pour tes conseils...

n°781695
jojobibine
Posté le 29-06-2004 à 17:39:52  profilanswer
 

Comment faire pour reserver un espace mémoire sous dos4gw?

n°781819
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 29-06-2004 à 21:10:49  profilanswer
 

jojobibine a écrit :

Comment faire pour reserver un espace mémoire sous dos4gw?


regarde dans la spec DPMI
http://burks.brighton.ac.uk/burks/ [...] mispec.htm


---------------
J'ai un string dans l'array (Paris Hilton)
n°782640
bjone
Insert booze to continue
Posté le 30-06-2004 à 16:27:37  profilanswer
 

donne un exemple de ton code.
 
en mode réel, tu changais un registre de segment en E000 pour atteindre ton périphérique.
 
en mode protégé tu n'as pas le droit de modifier ES ou DS avec un E000 sorti de nulle part. (ça ne corresponds pas à un descripteur).
 
donc pour atteindre l'adresse physique E0000 (le segment : offset E000:0000 en mode réel), tu utilises bêtement l'adresse E0000 sans changer un registre de segment.
en faisant bêtement un:  
 
mov al, BYTE PTR[0E0000h]
 
ou un:
 
unsigned char *myhardware=0x0E0000;
 
myhardware[0x4]=0x0fef; /// ce que tu veux....
 
-----
 
après si ton périphérique a un espace mémoire en dehors du premier Mo, il faut utiliser ça:
 
http://www.tenberry.com/dpmi/16.html
 
mais ce n'est pas ton cas, c'est plustôt pour le hardware PCI moderne.


Message édité par bjone le 30-06-2004 à 16:28:24
n°782788
jojobibine
Posté le 30-06-2004 à 19:05:31  profilanswer
 

Merci beaucoup, bjone, mon problème est résolu!!!
Merci à toi et JTY
a+
jojo

n°784202
Fou Furieu​x
Posté le 01-07-2004 à 23:21:55  profilanswer
 

Putain vous êtes balaise là dedans j'ai rien compris ! [:mlc]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Mémoire étendue sous DOS

 

Sujets relatifs
Script Dos extinction Pc allumés depuis liste passée en paramètreDétection d'allocations mémoire
Menu affichable sous DOSBatch ftp - dos
Mmap probleme d allocation memoire d un tableau double entréeQuestion sur la memoire
Questions sur la mémoire[Visual Basic] utilisation d'un dll C++ && fuite memoire
ouvrir une nouvelle fenêtre dos à partir d'une fenetre dos ?Programmation DOS
Plus de sujets relatifs à : Mémoire étendue sous DOS


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