
                                 XMSDSK.EXE
                                     &
                                 EMSDSK.EXE

                          Franck UBERTO - 93/11/15
                             Grenoble - FRANCE
                           Email : uberto@esrf.fr


These utilities are 2 ramdisks. For some people, they surely will  lack  of
some  "bells  and  whistles",  but  I  made them efficient and easy to use.
There are 2 programs because I wanted to optimize size and speed, so one is
for  XMS  and the other one is for EMS.  To get help for running them, just
type : XMSDSK (or EMSDSK) /?.

You can use them on 286  and  upper  (use  EMSDSK86  for  8086  cpu).  Once
installed they will occupy about 400 bytes. I have performed some tests and
I found them not so  bad  compared  with  concurrents  (even  well  known).
Surprisingly  I  discovered  that  EMS ramdisk is a bit faster than its XMS
counterpart on 386+ (with EMM386).

You can resize the disk (down to zero, or up to all memory) at any time and
so  regain  memory  for another usage. This is possible on DOS command line
but *NOT* under WINDOWS because of virtualization. The  transient  part  of
EXE will calculate all parameters for new size disk (I use the same ones as
MS-DOS for hard disk, so they should be convenient for all cases).

Take care, if you shell out of a DOS program and modify  the  size  of  the
disk  :  in  the case you have set TEMP (or TMP) variable on the ramdisk or
you have told this program to use the ramdisk, then some (hidden) files may
have been created and some (not) pleasant things can happen.

These two EXE are in fact some mixing of SYS and COM files.  Resident  part
is   written   in   assembler   (for   optimization)   and  transient  part
(initialization of driver and size modification) in C (for simplicity). For
this  I  have  to modify the startup code of my compiler because the driver
part (resident and installation code) must be placed before it. So  at  the
end you have :

	- resident part of driver in assembler
	- initialization of driver in C
	- C startup code in assembler
	- size modification part in C

Well all this to say that some day I will release source code, but for the
moment you can use and distribute these files : it's freeware.

 So ENJOY ...


 * Examples

 device[high]='path'\XMSDSK.EXE [size] (or EMSDSK.EXE)
	Install ramdisk in config.sys. If size is not specified then 512 Ko is
	requested.

 XMSDSK (or EMSDSK)
	On DOS command line, tells you the size and drive used by the ramdisk.

 XMSDSK size (or EMSDSK)
	Modify the size of the ramdisk.

 echo y | XMSDSK size (or EMSDSK)
	In autoexec.bat, modify, without prompting, the size of the ramdisk.

 * History

	v1.0 (May 92)	Initial version.
	v1.1 (June 92)	Adds some optimization in resident part.
	v1.2 (Oct. 93)	Adds some tests in size modification part.
