home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2004 September
/
PCWorld_2004-09_cd.bin
/
software
/
vyzkuste
/
stehujemewin
/
stehujemewin.exe
/
furd19_i.exe
/
lisezmoi.txt
< prev
next >
Wrap
Text File
|
1998-08-11
|
16KB
|
343 lines
XMSDSK.EXE
&
EMSDSK.EXE
Franck UBERTO - 98/08/12
38000 Grenoble - FRANCE
Email : uberto@esrf.fr
Ces deux utilitaires sont des RAMdisks (disques virtuels). Pour certaines
personnes ils manqueront certainement de quelques gadgets, mais le but était
qu'ils soient efficaces et simples à utiliser.
Pour des raisons d'optimisation, taille et vitesse, l'un est pour XMS l'autre
étant pour EMS.
Pour une brève aide en ligne tapez XMSDSK (ou EMSDSK) /?.
Ils peuvent être utilisés sur des 286 ou plus (pour des 8086 avec EMS utiliser
EMSDSK86). Une fois installés ils occupent environ un demi-Koctet de mémoire.
Le disque peut être redimensionné (de 0 à 2 Goctets, si disponible) à tout
moment afin de libérer la mémoire pour un autre usage. Ceci est possible sur
la ligne de commande du DOS et *SURTOUT PAS* sous Windows à cause de la
virtualisation de la mémoire. La partie transitoire de l'EXE calcule tous les
paramètres du nouveau disque (ceux-ci étant identiques à ceux utilisés par le
DOS pour les disques durs et devraient donc convenir dans tous les cas).
Prenez garde si vous faites un "shell" sous DOS à partir d'un programme
utilisant le RAMdisque, des fichiers (cachés) peuvent être créés et, dans le
cas d'un redimensionnement, des choses (pas si) sympathiques peuvent se
produire.
Ces disques virtuels peuvent être installés *SUR LA LIGNE DE COMMANDE* (et
donc à partir de autoexec.bat par exemple, voir plus bas). De cette façon
l'utilisateur peut *CHOISIR LA LETTRE DU DISQUE* à installer.
Bien que cette méthode d'installation (sur la ligne de commande) ait été
testée sur MS-DOS 3.x, 4.0, 5.0, 6.x (adaptée il y a des années de
"Undocumented DOS" par Andrew Schulman, Addison-Wesley), il ne peut être
certifié que d'autres versions de MS-DOS ou "clones" la supporteront.
MAIS voyez plus bas la liste de compatibilité.
En spécifiant un disque celà permet d'installer le disque virtuel "entre ou
après" des CD-ROM ou des disques réseaux (il est parfois nécessaire de "fixer"
les lettres de ces disques; malheureusement MS-DOS nomme les disques au fur
et à mesure de leur chargement). De plus ceci peut améliorer la réponse des
caches disques (si le cache ne peut être déactivé pour un disque, en chargeant
le disque virtuel après le programme de cache celui-ci ne "voit" pas le
RAM disque et donc n'essaie pas de le "cacher": il n'est pas seulement inutile
de cacher un RAM disque mais de plus celà diminue les ressources du cache).
NB1: pour spécifier (et utiliser) un disque sur la ligne de commande il faut
que celui-ci soit <= LASTDRIVE, la valeur par défaut est E quand il n'y
a pas de LASTDRIVE dans config.sys.
NB2: quand DBLSPACE/DRVSPACE est chargé il y a 2 LASTDRIVE à prendre en
compte: celui de config.sys et un autre dans DBLSPACE/DRVSPACE.INI.
Ce dernier est un fichier système caché en lecture seulement qui se
trouve, en général, sur le disque de boot, ou C:, ou le disque-hote.
Il semble que la plus haute valeur a la priorité mais il y a des
exceptions (sinon ce ne serait pas drôle :-) ): si un ou plusieurs
disques ont été installés sur des "emplacements" réservés à
DBLSPACE/DRVSPACE alors LASTDRIVE est incrémenté de la même façon.
Désolé de n'être pas plus clair mais c'est loin de l'être pour ma
pauvre personne. :) :)
Ces fichiers peuvent être utilisés et distribués librement:
ceci est "FREEWARE".
PROFITEZ-EN ...
* Quelques suggestions ...
---------------------------
* Sur la mémoire XMS et EMS ...
La mémoire XMS est allouée en blocs _contigus_. Vous pouvez donc être surpris
de ne pas pouvoir redimensionner XMSDSK alors que MEM (ou autre) dit qu'il
reste plein de mémoire XMS disponible, étrange?
Le fait est que d'autres programmes ont pu demander des blocs de mémoire XMS
et que maintenant celle-ci est _fragmentée_. Oui comme la bonne vieille
mémoire utilisée par le DOS!
La solution est de charger les programmes nécessitant des blocs fixes de XMS
_avant_ XMSDSK de façon à prévenir la fragmentation. Ainsi vous pourrez
redimensionner XMSDSK de 0 au dernier Koctet disponible de mémoire XMS.
Ceci est un autre avantage du chargement sur la ligne de commande.
Notez que la fragmentation peut néanmoins exister sur certaines machines: ceci
est dû à l'occupation de la mémoire supérieure par le BIOS et le matériel.
Cette fragmentation n'est pas vue avec EMSDSK parce que la mémoire EMS est,
d'une certaine façon, "chamboulée" pour apparaitre contigûe.
A partir de la version 1.9g certains de mes utilitaires donnant un bref status
des "managers" XMS et EMS (EMSTAT.EXE et XMSTAT.EXE) sont inclus dans
l'archive. De même que SETXMSTO.EXE qui essaie de "convaincre" les anciennes
versions de HIMEM.SYS (de MSDOS 6.x) d'utiliser plus de 64 Mo de mémoire.
Lancer SETXMSTO, celui-ci affiche un message d'utilisation ainsi que la taille
de la mémoire connue du BIOS. S'il affiche un avertissement disant que la
fonction 15E801 n'est pas supportée et que vous essayez de forcer une taille
XMS alors vous travaillez sans filet: VOUS ETES RESPONSABLE DE CE QUI POURRAIT
ARRIVER.
Le meilleur des tests est de donner la plus grande taille possible au RAMdisque
puis de lancer SCANDISK en test de surface; ainsi tous les secteurs (et donc
toute la RAM utilisée) seront testés.
Si SETXMSTO affiche que la fonction 2F4309 n'est pas supportée alors vous ne
disposez pas de HIMEM 3.09+ (ou votre manager XMS n'utilise pas cette
fonction!). Pour QEMM antérieur à la version 8 essayer le paramètre USERAM.
* Sur les disques en général ...
Utiliser toujours un sous-répertoire: le répertoire racine a une taille fixe
qui lui est donnée au formattage et, dans la plupart des cas, limité à 512
entrées (fichiers ou répertoires), ainsi la racine peut être saturée alors
qu'il reste de la place sur le disque.
Ceci est particulièrement vrai pour XMSDSK et EMSDSK car ils sont
re-dimensionnables: la taille de la racine dépend de la taille totale du
disque.
De plus si vous utilisez des noms longs sous Win95 la racine peut être saturée
encore plus rapidement: un nom long prend une entrée pour son équivalent court
et plusieurs autres pour lui-même.
Sur la taille des clusters, celà peut-être abrégé en une seule phrase: moins
de clusters, plus de rapidité mais aussi plus d'espace perdu. A partir de la
version 1.9i l'utilisateur peut choisir la taille du cluster quand le
RAMdisque est installé sur la ligne de commande.
* Sur Win95 ... (par un utilisateur heureux :-)
Réaction de Windows 95 avec EMSDSK/XMSDSK:
Chargé depuis | Autoexec.bat | Config.sys
--------------+---------------------+------------------
XMSDSK | Pas de Problems (1) | Avertissement (2)
--------------+---------------------+------------------
EMSDSK | Pas de Problems (1) | Avertissement (2)
--------------+---------------------+------------------
EMSDSK86 | Pas de Problems (1) | Avertissement (2)
(1): *** Voir ci-dessous "Sur Win95 (bis)" ***
Seul le RAMdisque passe en 16-bit compatibility mode.
(2):
Win95 signale qu'un driver contenu dans CONFIG.SYS diminue
les performances du système.
TOUS les disques passent en mode 16-bit.
Par Joachim Otahal <jou@gmx.net>
* Sur Win95 (bis) ...
A partir de la version 1.9g le label du RAMdisque est par défaut MS-RAMDRIVE,
ceci supprime le message "le lecteur X: utilise le mode de compatibilité".
* Exemples d'utilisation
-------------------------
device[high]='chemin'\XMSDSK.EXE [taille en Koctets] (ou EMSDSK.EXE)
Installation du ramdisque depuis config.sys.
Si la taille n'est pas donnée le disque a une taille nulle.
PAS DE LETTRE DE DISQUE, et PAS d'autres options, depuis config.sys.
Si le ramdisque n'est pas chargé alors au premier lancement il demandera
à le faire. Si vous voulez le faire intentionnellement, depuis autoexec.bat
par exemple, entrez:
XMSDSK [taille en Koctets] [drive:] [/c##] [/t] /y (ou EMSDSK)
Ceci devrait charger le driver en mémoire haute sans confirmation.
Le driver est relogé d'abord en mémoire haute, si possible, sinon en
mémoire basse de façon à réduire la fragmentation.
Si un lecteur est spécifié, il sera essayé sinon la première lettre de
disque disponible sera utilisée. Le lecteur doit être <= LASTDRIVE (dans
config.sys ou dblspace/drvspace.ini, voir plus haut NB2).
L'option /t peut être utilisée pour indiquer au driver qu'il doit allouer
la mémoire à partir des adresses les plus hautes. Certaines machines
tournant sous Win95 plantent lorsqu'il n'existe pas de mémoire libre au-
dessous de 16 Moctets. Cette option peut aussi être utilisée si vous avez
des problèmes pour jouer des sons sous Windows. Ces 2 conflits semblent
être liés aux buffers DMA.
L'option /c sert à choisir une taille cluster. Sans elle le RAMdisque
est formatté pour avoir le plus petit nombre de clusters possible (plus
rapide). Avec ce paramètre une taille de 1 à 64 secteurs peut être
choisie (syntaxe: /c## ou /c ##). Rappellez-vous que les clusters sont
toujours d'une puissance de 2. Si la taille donnée ne fonctionne pas
(trop de clusters) une dimension supérieure sera utilisée, ainsi
spécifier "/c1" donnera toujours le cluster le plus petit possible
(moins d'espace perdu).
Les paramètres ne sont pas "case-sensitive", peuvent être entrés dans
n'importe quel ordre, avec ou sans espaces.
XMSDSK (ou EMSDSK)
Sur la ligne de commande du DOS, affiche la taille et le lecteur utilisés
par le RAMdisque.
XMSDSK <taille en Koctets> [/t] [/c##] (ou EMSDSK)
Modifie la taille du ramdisk.
Eventuellement fixe une taille pour les clusters et utilise le haut (top)
de la mémoire XMS.
XMSDSK <taille en Koctets> /y [/c ##] [/t] (ou EMSDSK)
Dans un fichier de commande (.bat), supprime la demande de confirmation
en cas de changement de taille.
XMSDSK (et EMSDSK) renvoie une valeur, qui peut être testée par
"errorlevel", donnant le lecteur sur lequel il est installé: 0 si non
chargé ou en cas d'erreur, 1 pour le drive A (ha?), 2 pour B (ha ha?),
3 pour C (hmmm?), etc ...
XMSDSK /u (ou EMSDSK)
Décharge le driver de la mémoire, le disque n'existe plus.
XMSDSK /u /y (ou EMSDSK)
Comme ci-dessus, sans confirmation. :-)
XMSDSK /? (or EMSDSK)
Une petite aide.
NB1: la taille est en Koctets (1024 octets) et arrondie au 16 Koctets
supérieurs.
NB2: NE PAS UTILISER LOADHIGH avec EMS/XMSDSK: celui-ci peut se reloger
avec plus de succès que le DOS ne pourrait le faire.
* Historique
-------------
v1.0 (Mai 92) Version initiale.
v1.1 (Jun 92) Optimisation de la partie résidente.
v1.2 (Oct 93) Ajoute quelques tests dans la partie re-dimensionnement.
v1.3 (Avr 94) Corrige un bug quand la taille demandée est autour de
4000 Ko et un autre qui limite la taille à 16 Mo.
Ajoute des messages d'erreur plus précis pendant
l'installation
v1.4 (Fev 96) Nettoyage.
v1.5 (Mar 96) Ajoute la possibilité d'installation sur la ligne de
commande.
v1.6 (Avr 96) Un lecteur peut être spécifié sur la ligne de commande.
Corrige un bug avec SCANDISK.
Ajout de l'option y.
v1.7 (Avr 96) Nettoyage.
v1.8 (Avr 96) Nettoyage.
v1.9 (Sep 96) Supporte jusqu'à 64 Moctets.
Ajoute l'option u pour libérer le driver de la mémoire.
EMSDSK et EMSDSK86 peuvent être utilisés alternativement
sans problème. :-)
v1.9a (Sep 96) Supporte jusqu'à 2 Goctets. Celà devrait arrêter les
questions à propos de "pourrait-il supporter plus de
xxx Ko?". :)
v1.9b (Oct 96) Corrige un problème avec DBLSPACE/DRVSPACE.
v1.9c (Dec 96) La partie résidente est relogée dynamiquement en mémoire
haute.
Corrige un problème avec le manager XMS de NWDOS 7.
Nettoyage.
v1.9d (Dec 96) Corrige un bug dans la routine d'options.
Cette routine est "_CASE SENSITIVE_".
v1.9e (Mar 97) Corrige quelques problèmes autour de 32 Moctets.
Support de FAT12 jusqu'à 32 Moctets pour optimiser la
vitesse.
v1.9f (Mar 97) Nettoyage pour les utilisateurs de GUEST95.
Ajoute quelques suggestions à propos de Win95.
v1.9g (Oct 97) Le label par défaut est MS-RAMDRIVE, ceci devrait rendre
les utilisateurs de Win95 plus heureux.
Ajoute un petit utilitaire pour que HIMEM de MSDOS 6.x
tente de gérer plus de 64 Mo (celà marche-t-il vraiment?).
Nouvelles documentations.
Modification de l'algorithme de relogement.
v1.9h (Mar 98) Les options ne sont plus "case sensitive".
Un paramètre "/t" a été ajouté à XMSDSK pour qu'il alloue
la mémoire XMS à partir des adresses les plus hautes.
Abandon des fonctions XMS 3, la plupart des serveurs XMS
soit-disant "XMS 3 compliant" gèrent très mal la mémoire
lorsque les blocs dépassent 64 Moctets. Et, "oh surprise",
maintenant le RAMdisque peut dépasser 64 Moctets sans
problème dans Win95, ce doit être la même chose avec
Win3.1x ou tout serveur XMS 2+.
v1.9i (Aug 98) Paramètre "/c" ajouté, donne la taille des clusters.
Merci, pour leur aide, tests ou suggestions, à:
Philippe Ahles <>
Mervyn Baldwin <vyn@abaldwin.demon.co.uk>
Ethan Brodsky <ebrodsky@pobox.com>
Frank Decandia <tron@agoron.com>
Lee Goldstein <72077.2054@compuserve.com>
Peter Hayward <peter@cdsl.demon.co.uk>
Armand Kadrichu <a.kadrichu@intelsat.int>
Bernard Marone <marone@conline.com>
Steve Murray <Rocket9977@aol.com>
Pino Navato <pnavato@geocities.com>
Gabriele Neukam <Gabriele.Neukam@t-online.de>
Jim Oliver <jim.oliver@welcom.gen.nz>
Joachim Otahal <jou@gmx.net>
Michel Peru <peru@esrf.fr>
Vladimir Plotto <V.Plotto@frec.bull.fr>
Mike Ray <mer1@cornell.edu>
Matt Sephton <u5ms@csc.liv.ac.uk>
John Stockton <jrs@dclf.npl.co.uk>
Michel Toussaint <100334.2645@compuserve.com>
Bruce M. Vrana <Bruce.M.Vrana@usa.dupont.com>
Edward Wittenberg <wew@papa.uncp.edu>
Ian Woolley <iwoolley@southcom.com.au>
PS1: comme vous avez pu le voir ceci est FREEWARE. Je serais heureux, si vous
appréciez (plus :-) ou moins :-( ) cet utilitaire d'envoyer un petit
message par Email.
Merci.
PS2: EMS/XMSDSK fonctionne avec les Systèmes d'Opérations suivants:
MSDOS 3 à 7 (Win95), DosEmu (Linux), NWDOS 7 (OpenDOS/DR-DOS 7), PCDOS 7.
Peut être d'autres?
Il fonctionne aussi avec les applications suivantes: DBLSPACE/DRVSPACE,
GUEST/GUEST95, Stacker 4.
* Avertissement
----------------
Copyright (C) 1992 - 1998 Franck UBERTO.
Tous droits réservés.
Cette archive vous est offerte "dans l'état", sans aucune garantie. Ces
programmes ont été testés le mieux possible mais aucune garantie n'est donnée
quant à leur fonctionnement sur un quelconque ordinateur. L'auteur ne peut
être tenu pour responsable des dommages directs ou indirects qui pourraient
résulter de l'utilisation de ces utilitaires.
Cette archive est gratuite. Vous pouvez l'utiliser et la distribuer à tous
vos amis (ou autres) à la condition que ces programmes ainsi que les
documentations afférentes restent dans leur forme d'origine. Ces utilitaires
ne peuvent être vendus ou distribués pour un quelconque profit.
Les marques déposées citées sont la propriété des sociétés les ayant
enregistrées.