PRODUCT : Borland C++ NUMBER : 1393 VERSION : ALL OS : ALL DATE : October 25, 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 : October 25, 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 : October 25, 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 : October 25, 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 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 : October 25, 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.