INSUFFICIENT
MEMORY WINDOWS v2.0 and Compiled apps. You should be able to run from within Windows --
assuming sufficient available memory resources. Due to differences in how Windows manages
memory (versus DOS), running dBASE has a couple extra requirements. You must either have
3Mb of free XMS memory (after starting Windows) or you must have Windows set up to use a
permanent swapfile.
The conclusive means to determining if dBASE
IV 2.0 can run in Windows -using your configuration- is to modify the dBASEIV.PIF file to
execute PMINFO.EXE instead of dBASE.EXE.
Use the PIF Editor in Windows, and bring
up the dBASEIV.PIF file on the dBASE directory.
Change Program filename to be
"C:\dBASE\PMINFO\.EXE"
Change the checkbox for "Close Window
in Exit" to be un-X'ed, or unchecked, so that the window will remain open after
PMINFO is running
Save these changes - Double-click on the
dBASE IV (for v2.0) icon, this will run PMINFO and the screen output will remain available
to viewing.
After finishing collecting data restore
the original settings to the dBASEIV.PIF file to restore normal operations.
Observe the line specifying the "K
bytes available for DOS/16M programs" in the extended memory column. This must show
about 3224K+ bytes free in order to run v2.0 and/or compiled apps from within Windows.
If you receive the insufficient memory error
check out the following:
dBASE IV v2.0 as a default will try to load
into a minimum of 5Mb of virtual memory (base memory + available extended + swap file
space). In Windows try looking at the following factors:
Use the Windows' -Control Panel-
application to check the following;
Check the size of the Windows swap file,
make sure it is large enough to accommodate dBASE plus some other apps. Since the swap
file is a regular DOS file, space must be available to accommodate it. Having no swap file
may yield an insufficient memory message under Windows.
Make the swap file permanent and route it
to an uncompressed disk partition.
Enable 32-bit access, if possible.
Try decreasing the amount of KB
desired/required for conventional memory in the .PIF file. Decreasing the amount of memory
under the KB Required and KB Desired can free some memory for Windows to allocate as
extended memory. If a -1 value is used try changing it to a different value like 640 or
512 or as low as 130. BIN files are held in lower memory so don't lower the KB Required to
as low as 130 but choose a corresponding higher value that reflects that amount of memory
taken up by the BIN plus some extra for buffer space. Under Windows, using -1 for the KB
Desired value in some conditions will give an "insufficient memory" error.
In order to limit dBASE IV's use of memory
the DOS16M environment variable is used. As per the README file, the SET DOS16M=: must be
set to 4M or higher. For example:
SET DOS16M=:5M
* Make sure you follow this exact syntax
* These following two lines will not work!
SET DOS16M =:5M
SET DOS16M = :5M
^ ^ no spaces
The colon is required and M indicates
megabytes. Removing the M indicates kilobytes. Look at the README file on the dBASE
directory and QDOS16.ZIP in Lib 10, for more
information about the SET DOS16M environment setting. For v2.0, the BDC Compiler and 16
bit generated .EXE's, when used under Windows, SET DOS16M= will limit the maximum amount
of memory used by that program.
dBASE will not use virtual memory when
interfacing with a DPMI server. Common DPMI server environments are Microsoft Windows 3.1,
OS/2 2.x, Qualitas' 386MAX v6.x memory manager. Therefor under Windows the .VMC file
settings will be ignored and unused. When you run a compiled application from within
Windows (started in enhanced mode), the VMM never comes into play. All virtual memory
management is effected by Windows. If there is not enough extended/XMS memory for the
compiled application to run, Windows will swap the rest out to its swap file. As far as
the compiled application is concerned, it is using memory only. It does not detect the
difference between actual RAM memory and virtual memory as provided by Windows. (This is
assuming a permanent Windows swap file.)
If running dBASE.EXE or a compiled app
from the -File | Run- this will probably fail because the settings used are those
configured in the _DEFAULT.PIF. The Windows _DEFAULT.PIF sets XMS KB Required to 0. dBASE
will not run with the _DEFAULT.PIF settings or from the default MSDOS/PROMPT icon in
Standard mode. However _DEFAULT.PIF and the MSDOS/PROMPT icon will run dBASE IV version
2.0 in enhanced mode. (see next item, regarding standard vs. enhanced mode) Either change
the _DEFAULT.PIF settings or run from the dBASE icon, the icon will use the settings in
the dBASEIV.PIF file. Create a separate .PIF file for the .EXE's and configure them
similar to the dBASEIV.PIF settings.
To slightly decrease the 3224K memory
requirement, before entering Windows, issue the command: SET DBASEIV_BUFF=7 Setting the
bufmin parameter in DBASEIV_BUFF will force dBASE to use less memory for buffering and
make more available for program use. Setting the buffsize parameter in DBASEIV_BUFF
environment variable to 9, 8, 7 or 4 will typically make more memory available than not
setting it at all. DBASEIV_BUFF=7 should drop the memory requirement from about 3224K to
2753K.
Standard Mode vs. Enhanced Mode
dBASE/16M uses DPMI under Windows 386 Enhanced mode only. (PMINFO shows DOS/16M switch
mode 0.) Windows Standard mode does not support DPMI. When in Standard mode, dBASE uses
the same memory configuration that it would use outside of Windows. ( PMINFO will return a
switch mode >0 ) When you run a DOS program from within Windows (in standard mode), by
default no extended/XMS memory is provided. Further, Windows will not effect any virtual
memory -- all that is available to the DOS app is true RAM. This is evidenced by running
the DOS command MEM. However, the PIF file can be modified to provide extended/XMS memory
(assuming it is there to be provided). If there is sufficient RAM memory, modify the PIF
file to provide enough to run the compiled application. (Note: the PIF Editor interface
will appear different when Windows is run in enhanced mode versus standard mode.) When
running under Standard mode, dBASE requires a .PIF with XMS Memory settings. The XMS
Memory, KB Required setting must be set to at least 1024.
In Enhanced mode the XMS memory settings do not effect 16M memory use. Note Windows cannot
be run in enhanced mode on 80286 computers, so no permanent swap file is possible. This
means that the free RAM memory requirement is the only possible choice on these computers.
On this computer you would only be able to run the compiled application under DOS.
[Home] [FAQ Index]
|