Trouble Shooting Borland Products with DOS 6.0
PRODUCT : Borland C++ NUMBER : 1393
VERSION : ALL
OS : ALL
DATE : July 31, 1993 PAGE : 1/5
TITLE : Trouble Shooting Borland Products with DOS 6.0
Configuring Your System with DOS 6.0
====================================
The most common conflict that exists with the Borland C++
compiler and DOS 6.0 arises from the fact that DOS may be
configured without enough extended (or XMS) memory available for
the compiler to load. However, other conflicts can also arise.
This document addresses the most common problems that can arise.
1) INSTALLING ON DOS 6.0
---------------------
If you are experiencing difficulties during installation of
Borland/Turbo C++, install on a clean boot. (See Clean
Booting With DOS 6.0)
2) NOT ENOUGH AVAILABLE EXTENDED MEMORY
------------------------------------
Turbo C++ 3.0/Borland C++ 3.x DOS compilers need 1 megabyte
of extended(XMS) memory _available_. Turbo C++ 3.x/Borland
C++ 3.x Windows compilers need 2 megabytes of extended(XMS)
memory _available_.
DOS 6.0's 'memmaker' will optimize your system for maximal
available conventional memory, (the first 640k in memory).
It does this by loading as much TSR's and devices in the
extended area of memory, (above 640k), as possible.
a) How to get a report of available extended memory: To
get an accurate report of how much memory is available,
exit from all applications that you are currently
running at which point you should be at a DOS prompt.
At the DOS prompt type 'mem' which will give you a
report similar to the following:
Memory Type Total = Used + Free
---------------- ------ ------ ------
Conventional 639K 102K 537K
Upper 104K 96K 8K
PRODUCT : Borland C++ NUMBER : 1393
VERSION : ALL
OS : ALL
DATE : July 31, 1993 PAGE : 2/5
TITLE : Trouble Shooting Borland Products with DOS 6.0
Adapter RAM/ROM 0K 0K 0K
Extended (XMS) 7064K 1336K 5728K
---------------- ------ ------ ------
Total memory 7807K 1534K 6273K
Total under 1 MB 743K 198K 545K
Total Expanded (EMS) 7472K (7651328 bytes)
Free Expanded (EMS) 5728K (5865472 bytes)
Largest executable program size 537K (549968 bytes)
Largest free upper memory block 7K (7104 bytes)
MS-DOS is resident in the high memory area.
To compute the total amount of Extended memory available,
(that is the total amount above 640k conventional), add the
free amount for 'Extended(XMS)' and the free amount of
'Upper' in the above report.
b) Suggestions for freeing up more extended memory: First,
become familiar with both your CONFIG.SYS and your
AUTOEXEC.BAT before making any changes. Know what each
line in these two files are doing. The DOS 6.0 User's
Guide is a great reference for this. Some of the most
common statements that load devices and/or TSR's into
the extended or high area of memory are:
'devicehigh'
example: devicehigh=c:\mouse\mouse.sys
could be changed to: device=c:\mouse\mouse.sys
'lh' or 'loadhigh'
example: lh c:\dos\share.exe
could be changed to: c:\dos\share.exe
'device=c:\dos\smartdrv.exe 1024 2048'
could be changed to: device=c:\dos\smartdrv.exe 512
HINT: 'rem' will temporarily remark out anything that
follows on a single line. This is a very powerful
tool to use when attempting to reconfigure these
two files.
PRODUCT : Borland C++ NUMBER : 1393
VERSION : ALL
OS : ALL
DATE : July 31, 1993 PAGE : 3/5
TITLE : Trouble Shooting Borland Products with DOS 6.0
After making changes, reboot your system and again run
'mem' to see how much more you have freed up in the
extended area.
3) USING EMM386 MEMORY MANAGER
---------------------------
a) If using emm386 memory manager, only use DOS 6.0's version
of himem.sys. Never mix Windows and DOS versions of emm386
and himem.sys.
b) When using emm386 memory manager, we recommend using the ram
parameter. The ram parameter allows access to both EMS and
extended(XMS) memory and allocates it from the same memory
pool. This setting allows the full use of Borland's tools,
including those such as td286 that use EMS memory.
c) If you are using either DOS 6.0's version of emm386 or
Windows version 3.1 of emm386 you _may_ experience conflicts
such as unknown general protection faults or exceptions.
This especially will occur when interfacing with BRIEF
programmer's editor.
We have provided a patch for using Borland C++ with either of
these versions of EMM386. This patch is described in Borland
C++'s readme file. Before applying the patch do the following:
1. Make a backup copy of dpmi16bi.ovl, located in the
borlandc\bin directory.
2. Clean boot your machine. (See Clean Booting)
3. Run dpmiinst.exe from the borlandc\bin subdirectory.
4) GENERAL PROTECTION OR EXCEPTION FAULTS
--------------------------------------
These types of errors can happen for various reasons.
One of the reasons may be that other devices or TSR's do not
know how to behave well in protected mode. Another source
may be that you don't have enough Extended(XMS) memory
available. Check your available memory and then clean boot,
see if problem persists. If after clean booting, the problem
PRODUCT : Borland C++ NUMBER : 1393
VERSION : ALL
OS : ALL
DATE : July 31, 1993 PAGE : 4/5
TITLE : Trouble Shooting Borland Products with DOS 6.0
goes away, it is most likely due to a device or software
that is loaded in either your CONFIG.SYS or AUTOEXEC.BAT
that needs to be carefully scrutinized or possibly removed.
To find out what piece of software, TSR or device that is
causing the fault, add statements back one by one to your
AUTOEXEC.BAT and CONFIG.SYS, reboot and test again.
5) CLEAN BOOTING WITH DOS 6.0
--------------------------
a) Clean booting for Borland/Turbo C++ for DOS:
DOS 6.0 provides a quick and easy way of clean booting to test
DOS applications. Upon rebooting, immediately after receiving
the "Starting MS-DOS" press the <F5> key. This will bypass
your AUTOEXEC.BAT and CONFIG.SYS files.
b) Clean booting for Borland/Turbo C++ for Windows:
Create an AUTOEXEC.BAT that has only your path and prompt
statements. Create a CONFIG.SYS that has files=30,
buffers=30, device=c:\dos\himem.sys. In addition, if you are
using any kind of disk compression utility, such as
DoubleSpace, add those directives. Edit your win.ini so that
the load and run lines are blank: 'load= ' and 'run= '.
Edit your system.ini as follows: 'shell=progman.exe'. Boot
with your new AUTOEXEC.BAT and CONFIG.SYS in your root drive,
and execute Windows in standard mode by typing 'win /s' at the
DOS prompt.
HINT: DOS 6.0 provides for Multi-Configuration booting that
can make this easier. Refer to your DOS User's Guide
for further information.
6) COMMON QUESTIONS AND ANSWERS:
-----------------------------
Q: Why do I get one of the following errors when I attempt to
run Borland/Turbo C++?: "Memory Manager Cannot Initialize"
"DPMI Server Initialization Error->Not Enough Memory for
PMInit" "Application Load and Execute Error FFXXX"
PRODUCT : Borland C++ NUMBER : 1393
VERSION : ALL
OS : ALL
DATE : July 31, 1993 PAGE : 5/5
TITLE : Trouble Shooting Borland Products with DOS 6.0
A: All these errors refer to there not being enough available
extended memory for the compiler to load, see (2) above.
Q: Why do I get this error when attempting to run td286?
"System: Machine is running incompatible expanded memory
manager"
A: Td286 depends on EMS memory. It uses a VCPI protocol. If
you are using a memory manager with the parameter noems, or
frame=none, or novcpi, then it can't run. These parameters
prevent access to expanded memory. We recommend using the
ram parameter.
Q: When I clean boot and then run mem, I get 0 bytes free of
Extended(XMS) memory, but I know I have extended memory!
A: When you boot without himem.sys, mem will report 0 bytes
free of Extended(XMS) memory. To get the amount free,
reboot with your himem.sys device.
Q: When I attempt to load the development environment, I get
"Disk full, not enough swap space".
A: Borland/Turbo C++ automatically checks for space to create a
swap file. If you get this error, you don't have enough
space for this swap file to be created. Either use the /rx
switch, where x is another drive, or execute bc.exe from
another drive.
DISCLAIMER: You have the right to use this technical information
subject to the terms of the No-Nonsense License Statement that
you received with the Borland product to which this information
pertains.
Comments
Post a Comment