Microsoft KB Archive/93161

From BetaArchive Wiki

CodeView Versions 4.0x, 4.1, for MS-DOS Memory Use


The information in this article applies to:

  • Microsoft CodeView for MS-DOS, versions 4.0, 4.01, 4.02, 4.05, 4.1


Versions 4.0, 4.01, 4.05, and 4.1 of the CodeView debugger for MS-DOS require at least 2 megabytes of memory. Any one of the following memory managers can supply the required memory.

  • VCPI (Virtual Control Program Interface) Memory
  • DPMI (MS-DOS Protected Mode Interface) Memory
  • XMS (Extended Memory Specification) Memory

Versions 3.0, 3.11, and 3.14 of CodeView for MS-DOS provide the /X, /E, and /D options to specify the type of memory to be used. Later versions of CodeView do not support these options. Instead, CodeView checks the types of memory that are available on the system in the following order:

  1. CodeView will use DOS Protected Mode Interface (DPMI) services if they are available. DMPI providers include Windows (DOS session), 386MAX, and QEMM.
  2. CodeView will use EMS memory provided by the VCPI services if they are available.
  3. CodeView will use XMS memory if it is available.

If CodeView does not find EMS or XMS memory, it will not run.


EMM386.EXE and EMM386.SYS are two examples of VCPI servers. EMM386 also enables a program to use EMS (expanded memory specification) memory, provided by the LIM (Lotus/Intel/Microsoft) version 4.0 specification. Both versions of EMM386 are provided with MS-DOS version 5 and Windows versions 3.x. Ensure that the latest version of the server is installed.

CodeView detects when EMM386 loads VCPI support and tries to use EMS memory. However, if you use EMM386 with the NOEMS option, no EMS will be available. This causes CodeView to fail with the error message CPU in protected or Virtual mode, since VCPI is detected, but there is no EMS memory available. It is recommended that you allocate 4096K for EMS memory for CodeView to run. EMM386 also needs HIMEM.SYS loaded in order to work.

386MAX.EXE is an example of a DPMI server. Microsoft C/C++ version 7.0 includes 386MAX to provide DPMI memory when Microsoft Windows is not running.

HIMEM.SYS is an example of an extended memory manager.

When CodeView runs in a VDM under enhanced mode Windows, it uses memory that the Windows DPMI server provides. When CodeView runs in a VDM under standard mode Windows, it uses memory from a VCPI server or from an XMS memory manager (preferring VCPI memory). If there is not enough memory allocated to the driver or to the server, the following error may occur:

CV1303 ERROR: not enough extended memory

To address this error, increase the memory allocation.

Additional query words: kbinf 4.00 no32bit

Keywords : kb16bitonly
Issue type :
Technology : kbAudDeveloper kbCodeView kbZNotKeyword3 kbCodeView400DOS kbCodeView401DOS kbCodeView402DOS kbCodeView405DOS kbCodeView410DOS

Last Reviewed: June 26, 2001
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.