LE FICHIER EMM386.EXE
Gestionnaire de peripherique. Ne peut etre charge que depuis le fichier [CONFIG.SYS].
Simule la memoire paginee a partir de la memoire etendue et donne acces a la zone de memoire superieure d'un PC equipe d'un processeur 80386 ou superieur (486, pentium ou assimile). Ce gestionnaire doit etre charge par une commande [DEVICE] dans le fichier [CONFIG.SYS].
Emm386.exe fait appel a la memoire etendue pour simuler la memoire paginee utilisable par certains programmes. Emm386.exe permet egalement de charger des programmes et des gestionnaires de peripherique dans les blocs de memoire superieure.
Syntaxe
DEVICE=[lecteur:][chemin]emm386.exe [ON|OFF|AUTO] [memoire] [MIN=taille] [W=ON|W=OFF] [Mx|FRAME=adresse|/Pmmmm] [Pn=adresse] [X=mmmm-nnnn] [I=mmmm-nnnn] [B=adresse] [L=minXMS] [A=regalt] [H=descripteurs] [D=nnn] [RAM=mmmm-nnnn] [NOEMS] [NOVCPI] [HIGHSCAN] [VERBOSE] [WIN=mmmm-nnnn] [NOHI] [ROM=mmmm- nnnn] [NOMOVEXBDA] [ALTBOOT]
Parametres
[lecteur:][chemin]
Specifient l'emplacement du fichier emm386.exe.
[ON|OFF|AUTO]
Active le gestionnaire de peripherique emm386.exe (si vous specifiez ON), le desactive (si vous specifiez OFF) ou lui applique le mode Auto (si vous specifiez AUTO). Ce mode n'active la gestion de la memoire paginee et des blocs de memoire superieure que lorsqu'un programme le demande. La valeur par defaut est ON. Pour la modifier, executez la commande [EMM386] apres avoir lance emm386.exe.
memoire
Specifie la capacite maximale (en Ko) de la memoire etendue a allouer par emm386.exe comme memoire EMS/VCPI. Cette capacite s'ajoute a celle utilisee par les blocs de memoire superieure et emm386.exe. Elle est comprise entre 64 Ko et la capacite de memoire etendue disponible (32768 Ko maximum) une fois que emm386.exe est charge. La valeur par defaut correspond a la capacite de la memoire etendue disponible. Si vous specifiez le commutateur NOEMS, la valeur par defaut est egale a 0. emm386.exe arrondit la valeur au multiple de 16 inferieur.
Commutateurs
MIN=taille
Specifie la capacite minimum de memoire EMS/VCPI (en Ko) que emm386.exe doit allouer (si cette quantite de memoire est disponible et si ce gestionnaire a ete charge par la commande [DEVICE]=emm386.exe du fichier [CONFIG.SYS]). Cette capacite est comprise entre 0 et la valeur specifiee par le parametre memoire, 256 etant la valeur par defaut. Si vous specifiez le commutateur NOEMS, la valeur par defaut est egale a 0. Si la valeur de MIN est superieure a celle de memoire, emm386.exe utilise la premiere.
W=ON|W=OFF
Active ou desactive la gestion du coprocesseur Weitek. W=OFF est le parametre par defaut.
Mx
Specifie l'adresse des limites de page. Les valeurs admises pour x sont comprises entre 1 et 14. La liste suivante repertorie les differentes valeurs et leurs adresses respectives en format hexadecimal:
1 C000h
2 C400h
3 C800h
4 CC00h
5 D000h
6 D400h
7 D800h
8 DC00h
9 E000h
10 8000h
11 8400h
12 8800h
13 8C00h
14 9000h
Pour utiliser les valeurs comprises entre 10 et 14, vous devez disposer d'au moins 512 Ko de memoire vive (la RAM).
FRAME=adresse
Specifie directement l'adresse de la base du segment de limites de page. Vous pouvez en specifier une en utilisant le commutateur FRAME et en indiquant l'adresse de votre choix. Les adresses admises sont comprises entre 8000h et 9000h, et entre C000h et E000h, par increments de 400h. Vous pouvez allouer de la memoire paginee et desactiver les limites de page en specifiant FRAME=NONE, mais certains programmes necessitant de la memoire paginee risquent de mal fonctionner.
/Pmmmm
Specifie l'adresse des limites de page. Les valeurs admises pour mmmm sont comprises entre 8000h et 9000h, et entre C000h et E000h, par increments de 400h.
Pn=adresse
Specifie l'adresse du segment d'une page, n etant le numero de la page et adresse l'adresse du segment. Les valeurs admises pour n s'echelonnent de 0 a 255. Les valeurs d'adresse admises sont comprises entre 8000h et 9C00h, et entre C000h et EC00h, par increments de 400h. Les adresses des pages 0 a 3 doivent etre contigues pour etre compatibles avec la norme de memoire paginee version 3.2 de Lotus/Intel/Microsoft (LIM EMS). Si vous utilisez les commutateurs Mx, FRAME ou /Pmmmm, vous ne pouvez pas specifier les adresses des pages 0 a 3 avec le parametre /Pmmmm.
X=mmmm-nnnn
Empeche emm386.exe d'utiliser, pour une page EMS ou des blocs de memoire superieure, une plage d'adresses de segment particuliere. Les valeurs admises pour mmmm et nnnn sont comprises entre A000h et FFFFh, et sont arrondies au multiple de 4 kilo octets inferieur. Le commutateur X a priorite sur le commutateur I si leurs plages se chevauchent.
I=mmmm-nnnn
Specifie une plage d'adresses de segment a utiliser avec une page EMS ou des blocs de memoire superieure. Les valeurs admises pour mmmm et nnnn sont comprises entre A000h et FFFFh, et sont arrondies au multiple de 4 kilo octets inferieur. Le commutateur X a priorite sur le commutateur I si leurs plages se chevauchent.
B=adresse
Specifie l'adresse de segment la plus basse pour le module de la memoire paginee (echange de pages de 16 kilo octets). Les valeurs admises sont comprises entre 1000h et 4000h, cette derniere etant la valeur par defaut.
L=minXMS
Assure que la capacite de memoire etendue specifiee (en kilo octets) est toujours disponible une fois emm386.exe charge. La valeur par defaut est egale a 0.
A=regalt
Specifie le nombre de jeux de registres alternatifs rapides (utilises dans les applications multitaches) a affecter a emm386.exe. Les valeurs admises sont comprises entre 0 et 254, la valeur par defaut etant egale a 7. Chaque jeu de registres alternatifs augmente d'environ 200 octets la taille d'emm386.exe en memoire.
H=descripteurs
Specifie le nombre de descripteurs utilisables par emm386.exe. Les valeurs admises sont comprises entre 2 et 255, la valeur par defaut etant egale a 64.
D=nnn
Specifie le nombre de kilo octets de memoire a reserver pour l'acces direct memoire (DMA) par memoire tampon. Si l'on deduit la capacite de memoire (DMA) affectee aux disquettes, cette valeur correspond au plus important transfert DMA lorsque emm386.exe est active. Les valeurs admises pour nnn sont comprises entre 16 et 256, 32 etant la valeur par defaut.
RAM=mmmm-nnnn
Specifie une plage d'adresses de segment a utiliser pour les blocs de memoire superieure. Si vous ne specifiez pas de plage, emm386.exe utilise la memoire etendue disponible.
NOEMS
Donne acces a la zone de memoire superieure mais pas a la memoire paginee.
NOVCPI
Desactive la gestion des applications VCPI. Ce commutateur doit etre utilise avec le commutateur NOEMS, sinon emm386.exe ne desactive pas la gestion VCPI. Si vous specifiez les deux, emm386.exe ne tient compte ni du parametre memoire, ni du commutateur MIN. La desactivation de la gestion des applications VCPI reduit la capacite de memoire etendue allouee.
HIGHSCAN
Specifie que emm386.exe utilise une verification supplementaire pour determiner la disponibilite de la memoire superieure pour l'utilisation de fenetre UMB ou EMS. Sur certains PC, specifier ce commutateur peut n'avoir aucun effet ou forcer emm386.exe a identifier les zones de memoire superieure comme etant disponibles lorsque qu'elles ne le sont pas. Ceci peut donc provoquer l'arret de votre PC.
VERBOSE
Indique a emm386.exe d'afficher des messages d'information et d'erreur lorsque vous lancez emm386.exe. Par defaut, emm386.exe affiche des messages seulement s'il rencontre des erreurs. L'abreviation V est acceptee. (Pour afficher l'etat des messages sans ajouter le commutateur VERBOSE, appuyez et maintenez la touche ALT pendant le changement et le demarrage de emm386.exe.)
WIN=mmmm-nnnn
Reserve une plage d'adresses de segment pour windows et non pas pour emm386.exe. Les valeurs admises pour mmmm et nnnn sont comprises entre A000h et FFFFh, et arrondies au multiple de 4 kilo octets inferieur. Le commutateur X a priorite sur le commutateur WIN si leurs plages se chevauchent. Le commutateur WIN a priorite sur les commutateurs RAM, ROM et I si leurs plages se chevauchent.
[NOHI]
Interdit le chargement de emm386.exe dans la zone de memoire superieure. Normalement, une partie de ce fichier est chargee dans cette zone. Ce commutateur diminue la capacite de la memoire conventionnelle et accroit la zone de memoire superieure reservee aux blocs de memoire superieure.
[ROM=mmmm-nnnn]
Specifie une plage d'adresses de segment utilisee par emm386.exe en tant que memoire de copie pour la memoire morte (ROM). Les valeurs admises pour mmmm et nnnn sont comprises entre A000h et FFFFh, et arrondies au multiple de 4 kilo octets inferieur. Ce commutateur permet d'augmenter la vitesse de votre systeme s'il ne dispose pas deja d'une memoire de copie.
[NOMOVEXBDA]
Evite a emm386.exe de deplacer les donnees du BIOS etendu de la memoire conventionnelle vers la memoire superieure.
[ALTBOOT]
Precise que emm386.exe utilise un descripteur pour redemarrer votre PC lorsque vous appuyez sur CTRL+ALT+SUPPR. Utilisez ce commutateur seulement si votre PC arrete de fonctionner ou bien reagit differemment lorsque emm386.exe est charge et que vous appuyez sur CTRL+ALT+SUPPR.
Partage de la memoire XMS et EMS
Emm386.exe procure de la memoire EMS/VCPI pour les programmes necessitant ce type de memoire en convertissant la memoire XMS en memoire EMS/VCPI. Une fois charge, emm386.exe reserve la quantite de memoire EMS/VCPI specifiee par le commutateur MIN (la valeur par defaut est 256 Ko). Cette quantite de memoire n'est alors disponible qu'en tant que memoire EMS/VCPI et non plus XMS. emm386.exe peut convertir davantage de memoire XMS en memoire EMS/VCPI selon la quantite specifiee par le parametre MEMORY. Si vous specifiez MIN=0, emm386.exe ne reserve pas de memoire XMS pouvant etre utilisee en tant que memoire EMS/VCPI. Il ne convertit la memoire XMS que si un programme le reclame. Ceci libere de la memoire XMS lorsque la memoire EMS/VCPI n'est pas necessaire. Toutefois, emm386.exe ne peut pas fournir la quantite de memoire EMS/VCPI requise si les programmes ont alloue toute la memoire XMS au moment de la requete.
Installation de [HIMEM.SYS] avant emm386.exe
Vous devez inclure dans le fichier [CONFIG.SYS] la commande [DEVICE] relative au gestionnaire de peripherique [HIMEM.SYS] avant celle correspondant a emm386.exe.
Utilisation des commutateurs de memoire de emm386.exe
Si vous n'utilisez pas emm386.exe pour ouvrir l'acces a la zone de memoire superieure, il est inutile de specifier des commutateurs de memoire dans la ligne de commande [DEVICE] le concernant. Emm386.exe fonctionne correctement avec les valeurs par defaut, mais il peut dans certains cas etre interessant de gerer l'utilisation de la memoire par emm386.exe. Par exemple, vous pouvez decider de l'emplacement des limites de page EMS ou des segments a utiliser avec les pages EMS. Vous pouvez utiliser autant de commutateurs de memoire que necessaire et dans n'importe quel ordre.
ATTENTION: Si vous n'utilisez pas correctement les parametres de emm386.exe, votre systeme peut s'arrete, vous etes prevenu...
Utilisation de emm386.exe pour ouvrir l'acces a la zone de memoire superieure
Outre la memoire paginee, emm386.exe donne acces a la zone de memoire superieure, dans laquelle peuvent etre charges certains programmes et gestionnaires de peripherique. Pour avoir acces a cette zone, utilisez le commutateur RAM ou NOEMS. Pour que le DOS ait acces a la zone de memoire superieure mais pas a la memoire paginee, utilisez le commutateur NOEMS. Pour qu'il ait acces aux deux, utilisez le commutateur RAM. Ce commutateur donne acces a moins d'espace dans la zone de memoire superieure que NOEMS. Dans les deux cas, la commande [DOS]=UMB doit etre incluse dans le fichier [CONFIG.SYS]. La commande [DEVICE] qui charge emm386.exe doit preceder toute commande [DEVICEHIGH].
Utilisation de emm386.exe avec windows 3.x
Lorsque emm386.exe est utilise avec windows 3.x, les commutateurs I, X, NOEMS, Mx, Pnnnn et FRAME ont priorite sur les parametres EMMINCLUDE, EMMEXCLUDE et EMMPAGEFRAME du fichier SYSTEM.INI de windows. La modification de ces parametres dans le fichier SYSTEM.INI n'est pas prise en compte lorsque emm386.exe est charge.
Un double tampon peut etre necessaire a [SMARTDRV] pour utiliser emm386.exe
Si vous disposez d'un disque dur ou d'un autre peripherique SCSI ou ESDI, vous devrez peut etre ajouter la ligne suivante dans le fichier [CONFIG.SYS]: device=smartdrv.exe /double_buffer. Ajoutez cette ligne avant les instructions [DEVICEHIGH] et celles qui permettent de charger les gestionnaires de peripherique utilisant la memoire paginee. Elle permet a un controleur SCSI ou EDSI de transmettre des informations aux programmes utilisant la memoire paginee ou la zone de memoire superieure.
Exemples
Pour charger emm386.exe comme emulateur de memoire paginee a l'aide des valeurs par defaut, ajoutez les lignes suivantes au fichier [CONFIG.SYS], dans le meme ordre:
device=himem.sys
device=emm386.exe
Aucun emplacement n'etant specifie, le DOS recherche emm386.exe dans le repertoire racine du lecteur de lancement. Afin que emm386.exe alloue au maximum 4096 Ko (4 Mo) de memoire et au minimum 256 Ko (valeur par defaut), et pour specifier que le fichier emm386.exe figure dans le repertoire DOS du lecteur C:, modifiez la ligne concernant emm386.exe comme suit: device=c:\dos\emm386.exe 4096
Pour emuler la memoire paginee, specifier l'adresse de la base du segment D000h pour les limites de page EMS et allouer 512 Ko a emm386.exe, il faut taper une des commandes suivantes dans le fichier [CONFIG.SYS]: device=emm386.exe 512 frame=d000
ou
device=emm386.exe 512 p0=d000 p1=d400 p2=d800 p3=dc00
Pour empecher emm386.exe d'utiliser les adresses de segment E000h a EC00h et specifier que emm386.exe peut faire appel a 127 descripteurs, tapez la ligne suivante dans le fichier [CONFIG.SYS]: device=emm386.exe 512 frame=d000 x=e000-ec00 h=127
Pour donner acces a la zone de memoire superieure sans attribuer de memoire EMS/VCPI, tapez dans [CONFIG.SYS]: device=emm386.exe noems novcpi
Pour donner acces a la zone de memoire superieure et attribuer de la memoire EMS/VCPI, tapez la ligne de commande suivante dans [CONFIG.SYS]: device=emm386.exe ram