home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 mARCH / PCWK3A99.iso / Pcwktxt / XMSDSK / readme.txt < prev    next >
Text File  |  1998-08-11  |  16KB  |  341 lines

  1.  
  2.                                   XMSDSK.EXE
  3.                                       &
  4.                                   EMSDSK.EXE
  5.  
  6.                            Franck UBERTO - 98/08/12
  7.                           38000 Grenoble - FRANCE
  8.                                    Email : uberto@esrf.fr
  9.  
  10.  
  11. These utilities are two RAMdisks. For some people they surely will lack of
  12. some "bells and whistles", but I made them efficient and simple to use.
  13. There are 2 programs because I wanted to optimize size and speed, so one is
  14. for XMS and the other one is for EMS.
  15. To get help for running them, just type: XMSDSK (or EMSDSK) /?.
  16.  
  17. You can use them on 286 and upper (use EMSDSK86 for 8086 CPU). Once installed
  18. they will take about half a Kbyte of memory.
  19.  
  20. You can resize the disk (down to zero, or up to 2 Gb if available) at any
  21. time and so regain memory for another usage. This is possible on DOS command 
  22. line but *NOT* under WINDOWS because of virtualization. The transient part of 
  23. EXE will compute all parameters for the new disk (the same ones used by
  24. MS-DOS for hard disk, so they should be convenient for all cases).
  25.  
  26. Take care, if you shell out of a DOS program and modify the size of the disk:
  27. in the case you have set TEMP (or TMP) environment variable on the ramdisk or
  28. you have told this program to use the RAM disk, then some (hidden) files may
  29. have been created and some (not) pleasant things can happen.
  30.  
  31. These RAM disks can be installed *ON THE COMMAND LINE* (and hence in
  32. autoexec.bat for example, see below). This way users can even *CHOOSE THE
  33. DRIVE LETTER* to be used.
  34.  
  35. Although the installation method (on command line) has been successfully
  36. tested on MS-DOS 3.x, 4.0, 5.0, 6.x (adapted years ago from "Undocumented DOS"
  37. by Andrew Schulman, Addison-Wesley), it can't be certified that other MS-DOS 
  38. versions or 'clones' support it.
  39. BUT see the compatibility list somewhere below.
  40.  
  41. By _SPECIFYING A DRIVE_ this permits to install the RAM disk between or after
  42. CDROM and network disks (some people want to have them at given 'letter' 
  43. drives; unfortunately MS-DOS assigns drive name as they are loaded). BTW this 
  44. method can improve some disk cache behaviour (if the cache can't be disabled
  45. for a given drive, by loading the RAM disk after the cache software, this 
  46. latter does not see the RAM disk and so does not try to cache it: it is not 
  47. only superfluous to cache a RAM disk but it wastes cache resources).
  48.  
  49. NB1: for a drive to be successfully used when specified on the command line
  50.      one must take care that this drive is <= LASTDRIVE , default value
  51.      (when not set in config.sys) is E.
  52.  
  53. NB2: when DBLSPACE/DRVSPACE is loaded there is 2 LASTDRIVE to take into 
  54.      account: the one in CONFIG.SYS and another one in DBLSPACE/DRVSPACE.INI.
  55.      This latter is a read-only, hidden, system file located, in general, on 
  56.      your boot disk, or C:, or the host-disk.
  57.      It seems that the highest of the 2 values takes precedence, but there 
  58.      are exceptions (else it won't be funny  :-) ): if one or more drives are
  59.      installed on "slots" reserved for DBLSPACE/DRVSPACE then LASTDRIVE is 
  60.      incremented accordingly.
  61.      Sorry, I tried to be as clear as possible but I can't be more as it's 
  62.      very far to be clear for my poor person.  :) :)
  63.  
  64.  
  65. You can use and distribute these files: it's FREEWARE.
  66.  
  67. So ENJOY ...
  68.  
  69.  
  70.   
  71.   * Some hints ...
  72.   -----------------
  73.   
  74.   * About XMS and EMS memory ...
  75.   
  76. XMS memory is allocated in _contiguous_ block. So you can have the surprise
  77. of not being able to resize XMSDSK although MEM (or other) reports that you
  78. have plenty of XMS mem available, strange isn't it?
  79. The fact is that other programs may have requested fixed blocks of memory
  80. and now XMS mem is _fragmented_. Yes just like old DOS memory!
  81. The solution is to load programs which need fixed mem blocks _before_ XMSDSK
  82. so as to prevent XMS fragmentation. This way you'll be able to resize XMSDSK
  83. from 0 to up the last Kbyte of available XMS memory.
  84.  
  85. This is another advantage of loading the RAM disk from the command line.
  86.   
  87. Note that on some systems fragmentation can nevertheless persist: this is
  88. related to the way these BIOS or hardware configuration deal with upper mem.
  89.   
  90. This fragmentation is not seen with EMSDSK because EMS mem (true or emulated)
  91. is, sort of, "scrambled" to appear to be contiguous.
  92.  
  93. From version 1.9g up is included some of my tools to report a brief status of
  94. EMS and XMS managers (EMSTAT.EXE and XMSTAT.EXE). Is included too SETXMSTO.EXE 
  95. which tries to convince old versions of HIMEM.SYS (from MSDOS 6.x) of managing 
  96. more than 64MB.
  97. Run SETXMSTO, it displays a little usage and how much memory BIOS knows of.
  98. If it displays that func. 15E801 is not supported and you try to set an XMS
  99. size then you're on your own: USE AT YOUR OWN RISK.
  100. The best way to make a quick but deep test is to set the biggest RAMdisk you 
  101. can and launch SCANDISK in surface test, in this mode all sectors (and 
  102. therefore all RAM used) will be tested.
  103. If SETXMSTO displays that func. 2F4309 is not supported then you don't have 
  104. HIMEM 3.09+ (or your XMS manager does not use this function!). For QEMM before
  105. version 8 try the parameter USERAM.
  106.  
  107.  
  108.   * About disks in general ...
  109.  
  110. Always try to work in a sub-directory: the root directory is assigned a fixed
  111. size when the disk is formatted and, in most cases, it is limited to 512
  112. entries (files or directories) so the root can be "overflowed" although
  113. there's a lot of space left on the disk.
  114. This is particularly true as XMSDSK and EMSDSK are resizable disks: root size
  115. depends on the total size of the disk.
  116. This is even more of a concern if you use long filenames under Win95: long
  117. filename takes up one entry for the equivalent short name and several other
  118. entries to store the long name. So this should fill up the root directory
  119. very quickly.
  120.  
  121. About cluster size, this can be shortened to a single sentence: less clusters,
  122. more speed but more wasted space as well. Since version 1.9i, user can select
  123. the cluster size when installing the RAMdisk from the command line.
  124.  
  125.  
  126.   * About Win95 ... (from a happy user  :-)
  127.   
  128. Reaction of Windows 95 with EMSDSK/XMSDSK:
  129.  
  130. Loading from  | Autoexec.bat      | Config.sys
  131. --------------+-------------------+----------------
  132. XMSDSK        | No Problems (1)   | Big Warning (2)
  133. --------------+-------------------+----------------
  134. EMSDSK        | No Problems (1)   | Big Warning (2)
  135. --------------+-------------------+----------------
  136. EMSDSK86      | No Problems (1)   | Big Warning (2)
  137.  
  138. (1):          *** See below "More about Win95" ***
  139. Win95 does use the 16-Bit (=compatibility) mode to access this drive
  140. but leaves all other drives unaffected and 32-Bit access functional.
  141. A little note:
  142. With EMS/XMSDSK loaded you might sometimes hear about 1 to 3 seconds
  143. of increades HD activity during startup of the Graphical User Interface.
  144. This is normal and doesn't do anything bad.
  145.  
  146. (2):
  147. Win95 starts up with a warning that a driver from CONFIG.SYS
  148. reduces the system performance.
  149. If you right-click your "Workplace" then Properties->Performance
  150. You will see that all drives are used in compatibility mode,
  151. which in that case DOES harm the performance.
  152.  
  153. So the solution is to put the ramdisk into your autoexec.bat and
  154. Win95 will use this drive without any problems. Even if the size is
  155. zero, you will only get an "unable to access" message when
  156. trying to read from that drive for example from the Explorer.
  157. You will have to define the size of that drive before the start of
  158. the Graphical User Interface.
  159.  
  160. This little testing was done with XMS/EMSDSK version 1.9e on
  161. a P5/133 MHz/48MB RAM/DOS 7.0/Win95, self built of course,
  162. by Joachim Otahal <jou@gmx.net>
  163.  
  164.  
  165.   * More about Win95 ...
  166.   
  167. Starting from version 1.9g RAMdisk label is hard-coded to MS-RAMDRIVE, this
  168. suppresses the annoying Win95 message about "drive X: is using compatibility
  169. mode".
  170.  
  171.  
  172.  
  173.   * Examples of use
  174.   ------------------
  175.  
  176.   device[high]='path'\XMSDSK.EXE [size in Kbytes] (or EMSDSK.EXE)
  177.      Install ramdisk in config.sys.
  178.      If size is not specified then disk has a null size.
  179.      NO DRIVE LETTER, and NO other options, can be specified from config.sys.
  180.  
  181.   If the RAM disk is not loaded, at the first time the EXE will be run it
  182.   will ask to do so. So if you want to do it purposely, in autoexec.bat for
  183.   example, type:
  184.  
  185.   XMSDSK [size in Kbytes] [drive:] [/c##] [/t] /y (or EMSDSK)
  186.      This will try to load driver in upper mem without being prompted.
  187.      The driver part is relocated in the "best fit" place, first in upper
  188.      memory otherwise, if unsuccessful, in lower memory. This should prevent
  189.      memory fragmentation.
  190.      If a drive is specified then it will be tried, otherwise first available
  191.      drive will be used. Drive must be <= LASTDRIVE (in config.sys or 
  192.      dblspace/drvspace.ini, see NB2 above).
  193.      Parameter /t can be used to tell the driver to allocate XMS memory from
  194.      the top addresses instead of lower ones. Some machines under Win95 hang 
  195.      up when there's no free memory under 16 MBytes. It can be used too if 
  196.      you have problem playing sounds under Windows. These 2 issues seem to be
  197.      related to DMA buffering.
  198.      Parameter /c is used to set a cluster size. Without it the RAMdisk is 
  199.      formatted to have the least number of clusters (more speed). With /c you
  200.      can specify a cluster size from 1 to 64 sectors (syntax: /c## or /c ##).
  201.      Remember too that clusters are always a power of 2. If the given size 
  202.      can't work (too much clusters) the next good size will be used, so
  203.      setting "/c1" will always give the smallest cluster size possible (less 
  204.      wasted space).
  205.      Options are not case-sensitive, can be entered in any order, with or 
  206.      without space.
  207.  
  208.   XMSDSK (or EMSDSK)
  209.      On DOS command line, tells you the size and drive used by the ramdisk.
  210.  
  211.   XMSDSK <size in Kbytes> [/t] [/c##] (or EMSDSK)
  212.      Modify the size of the ramdisk.
  213.      Eventually setting the cluster size and using "top" XMS memory.
  214.  
  215.   XMSDSK <size in Kbytes> /y [/c ##] [/t] (or EMSDSK)
  216.      In a batch file this prevents being prompted when modifying size.
  217.      XMSDSK (and EMSDSK) returns a value which can be used with "errorlevel"
  218.      to tell where it is installed: 0 if not installed or in case of error,
  219.      1 for drive A (huh?), 2 for B (huh huh?), 3 for C (hmmm?), etc ...
  220.  
  221.   XMSDSK /u (or EMSDSK)
  222.      Remove driver from memory, disk doesn't exist anymore.
  223.      
  224.   XMSDSK /u /y (or EMSDSK)
  225.      Same as above, without prompting.  :-)
  226.   
  227.   XMSDSK /? (or EMSDSK)
  228.      A little help.
  229.  
  230.  
  231.   NB1: size is in Kbytes (1024 bytes) and rounded to the upper 16 Kbytes.
  232.   NB2: it's BETTER TO NOT USE LOADHIGH with EMS/XMSDSK as it can relocate
  233.        itself with more success than DOS could do.
  234.  
  235.  
  236.   * History
  237.   ----------
  238.  
  239.     v1.0  (May 92)   Initial version.
  240.     v1.1  (Jun 92)   Adds some optimization in resident part.
  241.     v1.2  (Oct 93)   Adds some tests in size redefinition part.
  242.     v1.3  (Apr 94)   Corrects a bug when requested size was around 4000 Kb
  243.                      and another one which limited size to 16 Mb.
  244.                      Adds more accurate error messages instead of "error
  245.                      during installation".
  246.     v1.4  (Feb 96)   Some cosmetic cleaning.
  247.     v1.5  (Mar 96)   Adds possibility of installation on the command line.
  248.     v1.6  (Apr 96)   Drive to be used can be specified on the command line.
  249.                      Corrects a bug which prevent compatibility with SCANDISK
  250.                      (may be other?) program.
  251.                      Adds option y.
  252.     v1.7  (Apr 96)   Bug fix.
  253.     v1.8  (Apr 96)   Some cleaning.
  254.     v1.9  (Sep 96)   Supports up to 64 Mbytes.
  255.                      Adds option u to remove driver from memory.
  256.                      EMSDSK and EMSDSK86 can be used in place of each other
  257.                      safely.  :-)
  258.     v1.9a (Sep 96)   Supports up to 2 Gbytes. This should stop the question
  259.                      about "could it support more than xxxKb?".  :)
  260.     v1.9b (Oct 96)   Corrects a problem with DBLSPACE/DRVSPACE.
  261.     v1.9c (Dec 96)   TSR part is now relocated "dynamically" in upper memory.
  262.                      Fixes a problem with NWDOS 7 XMS manager.
  263.                      Some cosmetic change.
  264.     v1.9d (Dec 96)   Fixes a bug in options parser.
  265.                      !!! Options parser is _CASE SENSITIVE_.
  266.     v1.9e (Mar 97)   Kills some bugs (problems around 32 Mbytes).
  267.              Sticks to FAT12 up to 32 Mbytes to get higher speed.
  268.     v1.9f (Mar 97)   Some cosmetic change to get GUEST95 happy.
  269.                      Adds some hints to this doc about Win95.
  270.     v1.9g (Oct 97)   Disk label is hard-coded to MS-RAMDRIVE to get Win95
  271.                      users happier.
  272.              Adds some helper to convince MSDOS 6.x HIMEM of
  273.              supporting more than 64MB (does it really work?).
  274.                      New documentations.
  275.              Changes the relocation algorithm.
  276.     v1.9h (Mar 98)   Options are no more case sensitive.
  277.                      Parameter "/t" added to allocate memory from top of XMS
  278.              memory.
  279.              XMS 3 functions not used anymore. A lot of so-called 
  280.              "XMS 3 compliant" server manages block memory larger than 
  281.              64MB very strangely. Now, "surprise", Win95 can use RAM 
  282.              disk in excess of 64MB without problem, should be the 
  283.              same for Win3.1x or other XMS 2+ manager.
  284.     v1.9i (Aug 98)   Parameter "/c" added, to set a cluster size.
  285.  
  286.  
  287.   Thanks, for their help and testing (or suggestion), to:
  288.     Philippe Ahles <>
  289.     Mervyn Baldwin <vyn@abaldwin.demon.co.uk>
  290.     Ethan Brodsky <ebrodsky@pobox.com>
  291.     Frank Decandia <tron@agoron.com>
  292.     Lee Goldstein <72077.2054@compuserve.com>
  293.     Peter Hayward <peter@cdsl.demon.co.uk>
  294.     Armand Kadrichu <a.kadrichu@intelsat.int>
  295.     Bernard Marone <marone@conline.com>
  296.     Steve Murray <Rocket9977@aol.com>
  297.     Pino Navato <pnavato@geocities.com>
  298.     Gabriele Neukam <Gabriele.Neukam@t-online.de>
  299.     Jim Oliver <jim.oliver@welcom.gen.nz>
  300.     Joachim Otahal <jou@gmx.net>
  301.     Michel Peru <peru@esrf.fr>
  302.     Vladimir Plotto <V.Plotto@frec.bull.fr>
  303.     Mike Ray <mer1@cornell.edu>
  304.     Matt Sephton <u5ms@csc.liv.ac.uk>
  305.     John Stockton <jrs@dclf.npl.co.uk>
  306.     Michel Toussaint <100334.2645@compuserve.com>
  307.     Bruce M.Vrana <Bruce.M.Vrana@usa.dupont.com>
  308.     Edward Wittenberg <wew@papa.uncp.edu>
  309.     Ian Woolley <iwoolley@southcom.com.au>
  310.  
  311.  
  312. PS1: as you may have seen this package is FREEWARE. I would be glad if you
  313.      appreciate (more :-) or less :-( ) it to send a little Email message.
  314.      Thanks.
  315.     
  316. PS2: EMS/XMSDSK is known to work with the following Operating Systems:
  317.      MSDOS 3 to 7 (Win95), DosEmu (Linux), NWDOS 7 (OpenDOS/DR-DOS 7), 
  318.      PCDOS 7.
  319.      May be other?
  320.      It works too with these "special" apps: DBLSPACE/DRVSPACE, GUEST/GUEST95,
  321.      Stacker 4.
  322.  
  323.  
  324.   * Disclaimer
  325.   -------------
  326.  
  327. Copyright (C) 1992-1998  Franck UBERTO.
  328. All rights reserved.
  329.  
  330. This package is offered to you "AS IS" without any warranty. This software has
  331. been thoroughly tested but no guarantee is given that it will work on every
  332. computer. The copyright owner may not be held liable for any damages, direct
  333. or consequential, which may result from the the use of this program.
  334.  
  335. This archive is freely distributable. You may use the software and share it
  336. with all your friends (or others) as long as the program is supplied in its
  337. original, unmodified form, which includes this documentation. This program
  338. must not be distributed for profit.
  339.  
  340. All trademarks herein given are the proprietary of their respective holders.
  341.