
RamDisk'98
Windows 98 RAM Disk Software
New Version 0.3!

NOTE: This is a text version of readme.htm - you are much better off vieweing the 
HTML file than reading this plain text version!

What is RamDisk'98? 

    RamDisk'98 is a Windows '98 port driver that emulates as fully as possible the low-
level functionality of a hard disk (up to 2GB!) or a 1.44MB or 2.88MB floppy drive.  
The boot sector of the disk is complete enough to permit the disk to be made bootable 
with the sys command. RamDisk'98 is the only RAM disk driver for Win'98 that allows 
you to create a bootable floppy image in RAM (that I know of anyway). RamDisk'98 
also supports much larger disks than Microsoft's ramdrive.sys (which is limited to 
32MB). The RamDisk'98 drive can also be compressed using Windows '98 
DriveSpace. 
    In addition, RamDisk'98 can be configured to automatically load a disk image at 
startup and save the image to disk at shutdown.  This allows the RAM disk to function 
almost exactly like a hard disk - no data is lost when the power is turned off!  In 
addition, it makes RamDisk'98 an ideal tool for creating disk images for bootable CD-
ROMs. 

Why would I want a RAM disk in Windows anyway? 

    Ordinarily one would think that you might be better off letting Windows manage the 
disk cache, memory and swap file for optimal performance.  There are two exceptions: 
filesystem testing and disk image creation. 
    In my case, I wrote RamDisk'98 because I wanted to be able to create a 2.88M 
bootable floppy image for use on a bootable CD-ROM, but I didn't own (and couldn't 
seem to get at a reasonable price) a 2.88M floppy drive, let alone the ED media for 
them.  I tried other RAM disks but I wasn't able to make them bootable, and in any 
case they were real-mode drivers anyway which made them a pain to use.  What I 
really wanted was a simple RAM disk that I could create the filesystem I wanted on, 
and then snapshot the disk to an image file to be burned on the CD-ROM. 
    RamDisk'98 is implemented in the form of a port driver that can be installed/removed 
multiple times within a session without rebooting.  This makes it easy and convenient to 
use whenever you need a quick RAM disk. 
    In addition, the ability to use RamDisk'98 to create load images automatically makes 
it a neat, self-contained solution to many RAM disk problems.

Can RamDisk'98 improve Windows performance? 

    Several people (who have 128MB+ RAM) have reported to me improved Windows 
performance if they put the Windows swap file on a RAM disk drive.  I don't have any 
benchmarks available to back this up, and your mileage may vary, but feel free to give it 
a try.  I would be rather surprised if Windows memory management were so pitiful this 
would make a dramatic improvement.  Detailed benchmarks are welcome! 
    One possible use of a RamDisk'98 drive (suggested by a user) would be to improve 
the performance of multimedia applications by placing the multimedia file on the 
RamDisk'98 drive to improve access time.

Sys, DriveSpace, Format, and Scandisk: 

    A RamDisk'98 disk can be made bootable using the sys command.  It can also be 
compressed using DriveSpace.  Both of these are possible because RamDisk'98 
emulates a hard or floppy disk as completely as possible; Windows '98 can't tell the 
difference. 
    Windows will properly format a RamDisk'98 disk configured as a hard disk.  It will 
not, however, work for RamDisk'98 disks configured as floppy disks (the 1.44M and 
2.88M disks). The reason for this is that the format command expects to get certain 
BIOS information about floppy disks that is not present for the RamDisk'98 drive when 
it is configured as a floppy. 
    Scandisk works normally on a RamDisk'98 drive.

Installation Instructions: 

    Download the distribution below and unzip the files into a temporary directory.  You 
should have the following files: 

readme.txt
readme.htm 
disclaimer.htm 
install[1-4].jpg 
ramdsk98.exe 
ramdsk98.pdr 
ramdsk98.inf

    (Past versions of RamDisk98 were distributed with source code, but this proved to 
be a source of confusion for many users and has been discontinued.) 
    Installation is done via the Windows '98 Add New Hardware wizard in the Control 
Panel.  Double-click on the wizard icon in the Control Panel and follow the 
instructions. When prompted to have the wizard search your system non Plug-and-Play 
hardware, choose "No, I want to select the hardware from a list."  Select Hard 
disk controller from the menu, and tell the wizard you "Have Disk ...".  A dialog box 
will come up asking you where the files are located; enter the path to the directory 
where you unzipped the RamDisk'98 drivers.  After this you will be presented with a 
box showing  you a "RAM Disk Controller" . 
 
Select the RAM Disk Controller and tell the wizard to Finish installation.  This will 
install the RamDisk'98 controller on your system, copy the files, set up the registry 
entries, start the driver with the default values (10MB hard disk), and a registration 
reminder window will pop up for the shareware version. See below for instructions on 
how configure RamDisk'98 using the registry entries. 
    The RAM disk will now be available as the next drive letter on your system. 
Beware -  this may or may not be the drive letter that will be assigned when you 
reboot, depending on the configuration of your system!  It might be a good idea to 
reboot now to avoid any confusion! 
    Also note that at boot the RAM disk will not be available until Windows is fully 
initialized, so you will not be able to copy files to the disk from autoexec.bat. You 
could, however, automatically copy files to the RAM disk using a batch file in your 
Startup folder. An even better way would be to use the automatic image load/save 
features to restore the drive automatically at startup.

Configuring RamDisk'98: 

    When the RamDisk'98 driver is loaded it reads configuration information from the 
Windows system registry.  This information consists of a key and set of subkey values 
that determine the disk type and size, and whether or not image files will be loaded 
and/or created.  You can start the registry editor by typing the command "regedit" in a 
MS-DOS Prompt box.  The key is located in 
HKEY_LOCAL_MACHINE\Software\RamDisk98 as shown below: 
 
    A particular subkey can have its value changed by double clicking on the name as 
listed in the right hand panel shown above.  Subkeys can have numerical or ascii values, 
and numerical values can be entered in decimal or hexadecimal. 
A description of the subkey entries and their function is listed below: 

DiskType:    An ascii string specifying the disk type.  Allowed values are HDC for a 
hard disk, or FDC14 and FDC28 for a 1.44MB or 2.88MB floppy disk.  If HDC is 
specified, then the subkey SizeIn4kPages is used to determine the disk size. 

SizeIn4kPages:     Specifies the size of the disk in 4kB memory pages for the 
HDC DiskType.  The formula for the size in pages given a desired DiskSize in MB is: 
SizeIn4kPages = DiskSize (in MB) x 256
So, for example, if you wanted a DiskSize of 32MB, you would enter SizeIn4kPages as 
8192 using the Registry Editor.  Be careful to enter the value is decimal when editing this 
key! 

LoadImageOnStart and SaveImageOnExit:    These subkeys determine 
whether or not an image file will be loaded when the driver starts or saved when the 
driver is exited (for example, system shutdown).  A value of one will enable disk image 
load/save; any other value will disable the disk image load/save.  The image file will be 
read from/written to the path specified in LoadImageFile and SaveImageFile, 
described below. 
    Please note that loading/saving image files for large disks (64MB+) can take a 
substantial amount of time at system startup and shutdown.  Be patient, all of that data 
has to be read from/written to your hard disk! 
    If an image file cannot be located on startup the driver loads with an empty 
(formatted) disk.  If an image file cannot be opened on shutdown, no image file will be 
created and no error message will result.  If there is insufficient disk space in the 
specified path, the output file will be truncated. 
    Finally, do not attempt to load an image file for a size other than that of the current 
RamDisk'98 configuration!  Doing so will result in (at best) a corrupted RAM disk or 
(at worst) system failure. 

LoadImageFile and SaveImageFile:   An ascii string that specifies the full 
path and filename of the image file to be loaded or saved when the 
LoadImageOnStart and SaveImageOnExit subkeys are set. 
Special Note: The RamDisk'98 registry entries are read once when the driver 
initializes.  The driver must be stopped and restarted for modified registry entries to take 
effect (see below).

Uninstalling/Stopping/Starting the RamDisk'98 driver: 

     Removing the port drivers is as simple as installing them - just go to the System icon 
in the Control Panel and double-click.  Under the Device Manager tab, highlight the 
RAM Disk Controller and click Remove.  The port driver will be uninstalled and the 
disk it was controlling will be removed. 
    Alternatively, if you think you might want to use the disk later but just want the 
memory back for now you can choose to "Disable in this hardware profile" under 
the properties menu for the RAM Disk Controller.  In this way you can start the disk 
back up again quickly whenever you need it (without rebooting!).  You may also want 
to disable and restart the driver because you have modified the registry entries. When 
you disable the driver, the disk associated with it (listed as RAMDSK98 RAM Disk) 
will be disabled and appear in the Device Manager listing with a red X (as shown 
below).  It is a good idea to remove this disk when the driver is disabled; you can do 
this by selecting the RAMDSK98 RAM Disk and clicking the Remove button. 
 
    You can restart the RamDisk'98 driver by clicking the "Enable Device" button (see 
below) under the properties menu for the RAM Disk Controller.  The driver will 
restart, creating a new disk from the current properties listed in the system registry. 
 
Who wrote this software? 

    I did (John Lajoie, lajoie@iastate.edu).  Well, most of it, anyway... 
    The RAM disk driver core in RamDisk'98 is based upon the source code provided 
with Walter Oney's excellent book Systems Programming for Windows 95 from 
Microsoft Press. What I did was to pick up where he left off by trying to improve the 
boot sector initialization of the disk (and fix a few of Walter's bugs) to properly emulate 
a hard disk or a 1.44M or 2.88M floppy drive. I also added the registry interface and 
disk image load and save, as well as the shareware splash screen. 
(The original license for Walter's source code granted the right distribute and modify the 
source provided that I "agree to indemnify, hold harmless, and defend Microsoft and its 
authors from and against any claims or lawsuits.."  Aren't lawyers great?) 
    If you have any problems with the software, feel free to contact me at the address 
above.  I can't guarantee you a solution, but I'll try.

Will RamDisk'98 work in Windows '95? 

    The RamDisk'98 driver has been compiled on a Win'98 machine using the Win'98 
DDK and is not backwards compatible with Windows 95.

How do I register the software? 

    You may download and use the shareware version for evaluation purposes. The 
shareware version of the software contains an annoying reminder to register that is not 
present in the registered version.  If you like it and find it useful, please support ongoing 
development efforts and register the software by sending $20 to: 

John Lajoie 
710 Keystone Dr. NE 
Ankeny, IA  50021

    Once your registration is received, I will email you a password that will allow you to 
download the registered version of the software from this site.  Updates and upgrades 
are free to registered users.  The software is also available on CD-ROM for an 
additional $10. 

    Site licenses for multiple copies are also available: 
    Single Copy                       $20.00 
    Copies 2-10                       $15.00 ea 
    Copies 10+                        $10.00 ea

    Of course, the software provided is without warranty of any kind (see the 
disclaimer ). Use this software at your own risk - I am not responsible for any loss of 
data that may occur!

Revision History: 
2/15/99:    Version 0.1 - First release. 
3/01/99:    Version 0.2 - Added 32, 64, 96 and 128M hard disk options.  Hard disk 
cluster size and FAT type now set by disk size to match what is used by DOS/Win. 
4/26/99:    Version 0.3 - Cleaned up a few minor issues with disk format and minimized 
cluster size. Added automatic image save/load feature.  Disk size and type configuration 
is now done via the registry, so there is only one port driver for all disks. Source code 
removed from shareware distribution.

Problems? Contact lajoie@iastate.edu.
  
  
  
