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.Why would I want a RAM disk in Windows anyway?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.
If you want to skip the rest of these instructions and proceed directly to download, click here.
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.Can RamDisk'98 improve Windows performance?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.
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!Sys, DriveSpace, Format, and Scandisk: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.
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.Installation Instructions: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.
Download the distribution below and unzip the files into a temporary directory. You should have the following files:Configuring RamDisk'98: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.
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:Uninstalling/Stopping/Starting the RamDisk'98 driver:
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).
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.Who wrote this software?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.
I did (John Lajoie, lajoie@iastate.edu). Well, most of it, anyway...Will RamDisk'98 work in Windows '95?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.
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:Revision History:John Lajoie
710 Keystone Dr. NE
Ankeny, IA 50021Once 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.00Of 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!
Copies 2-10 $15.00 ea
Copies 10+ $10.00 ea2/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.
Download RamDisk'98
here - rdsk98v3.zip.
Problems? Contact lajoie@iastate.edu
. (Be certain to read the disclaimer first!)