Although dBASE IV 1.0 does not support Expanded Memory (EM), if you
have unused megabytes of expanded memory you can put it to work to
improve your dBASE IV or RUNTIME performance significantly by
configuring the memory as a RAM disk (a part of memory that will act
as a disk drive) or VDISK (Virtual Disk). Then copy the dBASE or
RUNTIME system files to the RAM Disk and execute dBASE or RUNTIME from
the RAM Disk. This increases performance dramatically because the
system files can now be read right from your speedy RAM memory rather
than having to be found and read from the hard disk each time they're
needed. Because the dBASE system files take up a little over 2
megabytes of disk space, 2.5 megabytes of Expanded memory is required
to copy the dBASE system files to the RAM disk and RUNTIME will
require at least 1 megabyte.
The 1.1 update that is expected soon will have the EEMS (Enhanced
Expanded Memory Support) support. dBASE IV will use this EEMS memory
in a similar way to cache its overlay and your program files that are
being executed. You'll still need a certain amount of conventional
DOS memory (what some call the "Foot Print") to run your dBASE IV.
With the 1.0 Version that requirement is 516K, with the 1.1 update the
"Foot Print" is expected to be reduced by some undetermined but
Setting up the RAM DISK
To set up the RAM disk you need to use the RAMDISK.SYS or VDISK.SYS
utility that comes with your operating system and include the
appropriate DEVICE statement in the CONFIG.SYS file in the root
directory of your boot drive. For example on a TOSHIBA T5200/100 with
6 megabytes of extended memory you can configure three megabytes as a
VDISK and leave the other 3 Megabytes available to the Extended Memory
Manager for software that does support EEM (Expanded Memory Support)
with the following statements in the CONFIG.SYS file:
DEVICE=C:\DOS\VDISK.SYS /E 3000 512 128
Now with the VDISK configured, copy the dBASE system to the ram drive.
Keep in mind that RAM memory is volatile and when the system is shut
down everything in memory is lost, including any files you created in
dBASE and left on the VDISK. One way to configure VDISK for dBASE IV
is to let your AUTOEXEC.BAT file copy the relevant dBASE System files
from your hard disk to the ram drive when you boot the machine.
By default dBASE creates temporary files in the current directory. You
should tell dBASE to create these files in a subdirectory on the hard
drive by setting the DOS TMP environment variable in your
AUTOEXEC.BAT. Otherwise, you may eventually get an "Insufficient disk
space" error because dBASE is trying to create files on the VDISK,
which is virtually consumed up by the dBASE system files.
Now let's make a few assumptions:
dBASE IV is installed on the C: drive in the dBASE IV directory
The VDISK has been assigned a drive letter of G:
We have a subdirectory also on the C: drive called TMPFILES where we
will direct the dBASE temporary files to be created.
Given these assumptions, here is a sample AUTOEXEC.BAT that
initializes the dBASE IV VDISK and sets the DOS TMP environment
COPY C:\DBASEIV\*.RES G:
COPY C:\DBASEIV\CONFIG.DB G:
Using dBASE on the RAM disk
Because the RAM DISK space is limited and virtually consumed by dBASE
we now need to tell dBASE to find our CATALOGS, DATA BASE FILES,
QUERIES, and other application files on the hard drive. One way is to
use the SET PATH TO command to locate our files, but don't use this
command to locate program files otherwise you will encounter a "FILE
ALREADY OPEN" anomaly mentioned later in this article.
I like to change directories through DOS to the directory where my
application is located (i.e., C:\DBASEIV\APPS), go to my VDISK drive
(i.e., G:); start up dBASE (i.e., dBASE) and, either within the
CONFIG.DB, the application, or at the DOT PROMPT, SET DEFAULT TO C.
This will pull up files from my C:\DBASEIV\APPS directory since that
was the last directory I was in when I changed to the RAM drive. Here
is a sample DOS batch file to start up a dBASE IV application from
your RAM disk (we'll also take care of those messy temporary files
dBASE creates but doesn't delete by erasing them in the batch file
when dBASE is QUIT:
Don't forget you have to SET DEFAULT TO C...