 Question:
Hints for protected-mode compiler troubleshooting
Answer: Symptoms/error messages:
- DOS\16M error: [32] DPMI host error (possibly insufficient
memory)
- Compiler crash: "unexpected interrupt OE, ... <PC
registers dump>
- DOS/4GW Professional fatal error (1010): can't initialize
loader LINEXE_LOADER[1] (under Windows)
Solution:
TI ships the C compiler DOS protected mode with all its last
releases. The protected mode compiler solves the 640KB memory limitation under real DOS.
This will solve the error:
>>>>>> OUT OF MEMORY: OPTIMIZATION ABORTED
<<<<<<<<<< when building a large C program and using
optimization.
The protected mode compiler achieves this by using a DOS
extender, called DOS4GW.exe, a product of Rational Systems. The purpose of a DOS extender
is to give an application, in this case our Compiler, access to the extended memory in a
PC. The following problems could be encountered:
PROBLEM 1. MEMORY MANAGER INCOMPATIBILITIES:
DOS4GW may have incompatibilities with existing memory managers
in your PC. There are 2 memory managers protocols: DPMI and VCPI. DOS4GW uses the DPMI
protocol. Currently we know of potential memory conflicts with Windows, EMM386.exe and
Borland Make Utility. However, conflict could exist with any program that uses the VCPI
protocol.
PROBLEM 1.1: Conflict with the old version of DOS4GW and Windows
(using DOS5.0 or DOS6.x)
Solution:
a. Use our last release compiler
b. If you don't have the last compiler release and you are using
DOS 5.0/Window environment, build programs outside of
Windows or switch to DOS version 6.2 or higher. Remember that the
DOS extender can still take advantage of the system's extended
memory outside of Windows.
c. If you don't have the last compiler release and you are using
DOS 6.0, upgrade to DOS 6.2.
PROBLEM 1.2: Conflict with DOS4GW and EMM386.exe
Solution:
If using DOS 6.2, we can provide a stable platform under DOS
only by modifying the config.sys:
device=c:\xxxx\emm386.exe NOEMS NOVCPI
The consequences of this could possibly reduce the amount of
conventional memory on the system. Not a problem for our compiler
since we use extended memory, but could be a problem on systems
that load DOS drivers that use EMS and VCPI.
PROBLEM 1.3: DOS4GW conflict with Borland MAKE utility. Borland
MAKE utility uses VPCI protocol.
Solution:
Check with Borland to see if they offer a Make Utility that uses
DPMI. Otherwise use MAKE R.
PROBLEM 2. NOT ENOUGH MEMORY:
The C compiler requires a minimum of 4MB of memory (recommended
16MB) available. Run the PMINFO.exe utility shipped with the C floating point compiler to
detect the memory available in your system (3rd line in the PMINFO print-out).
If conventional + Extended is less than 4MB:
- add more memory
- remove unused drivers from config.sys
- remove smartdrive.exe line in the config.sys
- use the DOS4GVM (virtual memory) utility to use your hard disk as
RAM (see release notes). Make sure to have enough contiguous hard disk space.
|