Par convention l'adressage du DOS était limité aux 640 premiers Ko Les adresses à partir de x'A0000' (mémoire supérieure) sont réservées : A0000 Affichage graphique (64 Ko) B0000 Affichage texte monochrome et Affichage texte couleur C0000 réservé aux adaptateurs (communications , etc...) E0000 BIOS ... jusqu'à x'100000' La première solution pour gérer de la mémoire supplémentaire a été d'ajouter des cartes mémoire.Cette mémoire était paginée dans un cadre de 64 Ko, par page de 16 Ko.(mémoire EMS). Puis vint la reconnaissance de la mémoire située au dessus de 1 Mo, c'est la mémoire étendue(mémoire XMS). les 64 premiers Ko de la mémoire étendue sont reconnus directement par DOS 5. (mémoire haute ou HMA). |
^ --------------------------------------- ^ ! Mémoire ! ! ! ! étendue ! (gérée par HIMEM.SYS) ! ! suivant ! ! ! ! votre ! ! ! ! config. ! ! ! ! ! ! ! ! ! ____________ ! ! ! ! Mémoire ! (possibilité d'y charger le DOS) ! 64 Ko ! v haute ! ! v ________________ ! | adaptateur| ! ^ ^ ! | LAN | etc... ! ! ! Mémoire ! ! 384 Ko ! ! supérieure ! |adaptateur | adaptateur | ! ! v ! |video texte | video graphique | ! ! ________________ ! | | | ! ! 1 Mo ^ ! ! ! ! Mémoire ! (mémoire "traditionnelle" du DOS) ! ! ! convention. ! ! 640 Ko ! ! ! ! ! ! ! ! ! v --------------------------------------! v |
Le DOS 5 permet : 1/ de reconnaître la mémoire étendue (HIMEM.SYS) HIMEM.SYS gère les conflits de mémoire, chaque programme souhaitant utiliser de la mémoire étendue en fait la demande à HIMEM.SYS qui lui alloue une adresse disponible. 2/ de charger (en partie) le dos en HMA (DOS=HIGH) à utiliser conjointement avec HIMEM.SYS 3/ d'utiliser la mémoire supérieure pour charger des drivers (EMM386.SYS) dans les espaces disponibles (UMB = UPPER MEMORY BLOCK) DOS=UMB + EMM386.SYS ce pilote permet aussi de simuler de la mémoire paginée(pour les program mes qui ne reconnaissent que ce type de mémoire) avec de la mémoire étendue. |
EMM386.SYS NOEMS (= utlisations des UMB, pas de mémoire paginée) RAM MMM (= utilisation de la mémoire paginée et des UMB) MMM = Taille de la mémoire paginée. I=xxxx-yyyy adresse à utiliser X=aaaa-bbbb adresse à exclure FRAME=zzzz ou NONE = adresse du cadre de page. Ces trois derniers paramètres nécessitent une parfaite connaissance de la mémoire supérieure de VOTRE machine. Les pilotes(gestionnaires de périphériques) seront chargés(CONFIG.SYS) par DEVICEHIGH=pppppp.SYS (mémoire conventionnelle > DEVICE=pppppp.SYS) Les TSR (TERMINATE and STAY RESIDENT) seront chargés par LOADHIGH=tttttt ou LH=tttttt (en général dans AUTOEXEC.BAT) (mémoire conventionnelle > tttttt,ce sont des exécutables) depuis DOS 6 il est possible d'indiquer l'adresse où les charger. |
Vous pouvez charger les drivers PCS en mémoire haute. DEVICEHIGH=C:\PCS\EIMPCS.SYS driver gérant la mémoire paginée pour PCS. Avec la version DOS étendu utilisez à la place PCSXI.EXE PCSXI cherche s'il trouve un gestionnaire de mémoire actif: 1/ un driver DMPI 2/ puis VCPI (EMM386,...) 3/ puis XMS (HIMEM) 4/ si aucun gestionnaire n'est trouvé PCSXI alloue TOUTE la mémoire étendue pour PCS vous pouvez limité la mémoire allouée à PCS par (dans AUTOEXEC.BAT) SET DOS16M=(adr_début-adr_fin) (taille) DEVICEHIGH=C\PCS\ECYDDX.SYS driver gérant les dossiers partagés pour PCS. |