1. Why am I having trouble running my DOS/4G application from inside Lotus 1-2-3?
In order to run DOS/4G applications while "shelled out" from Lotus 1-2-3, you must use the PRIVATXM program included with your WATCOM compiler. Otherwise, 1-2-3 will take all of the memory on your machine and prevent DOS/4G from using it.
Before starting 1-2-3, you must set the DOS16M environment variable to limit Lotus' memory (see your WATCOM manual). After shelling out, you must run PRIVATXM, then clear the DOS16M environment variable before running your application.
2. Are there problems when repeatedly spawning DOS/4G applications under OS/2 2.1.
We know of a bug in OS/2 2.1 that prevents one DOS/4G application from spawning another over and over again. The actual number of repeated spawns that are possible under OS/2 varies from machine to machine, but is generally about 30.
This bug also affects programs running under other DOS extenders, and we have not yet found a workaround, other than linking your two programs together as a single program.
We know of a bug under Warp which occurs when a Warp DOS box running a DOS/4G application is switched from either full-screen to a window or vice-versa and then switched back to the original mode.
We know of no workaround at present.
4. I'm getting the following error: "DPMI host error: cannot lock stack". What does this error mean?
This error almost always indicates insufficient memory, rather than a real incompatibility. If you see it under an OS/2 DOS box, you probably need to edit your DOS Session setting and make DPMI_MEMORY_LIMIT larger.
Some versions of a program from Novell called TCPIP.EXE, a real mode program, will cause the high words of EAX and EDX to be altered during a hardware interrupt. This bug breaks preotected mode software (and other real mode software that uses the 80386 registers). Novell has released a newer version of TCPIP that fixes the problem.
6. Is DOS/4G compatible with Windows NT, Windows for Workgroups and Windows 95.
Yes. However, Windows NT, Windows for Workgroups, and Windows 95 all include a DPMI host, DOSX.EXE, with several serious bugs, some of which are difficult to work around. As a result we could not warranty operation of DOS/4G under any early versions of these operating systems.
We have worked around some of these problems in version 2.0 of DOS/4G and would be interested in hearing whether or not you experience problems running your DOS/4G programs under these environments.
You may wish to contact Microsoft Corporation to inquire about the availability of a new version of DOSX.EXE.
7. Is 32-bit development with Microsoft supported by DOS/4G?
Yes. You need Microsoft's Visual C/C++ version 4.0 or later, together with our DOS/4G version 2.5.
8. Is DOS/4G compatible with Linux DOS emulation?
Although we do not currently QA any of our products against the Linux DOSEMU package, and cannot promise that it will work, we have been following the DOSEMU development. It appears that most programs built with the DOS/4G family extenders do, in fact run under Linux, particularly with versions of DOSEMU of .60 or later.
A number of different games, including DOOM, which are built with DOS/4G, are on the "success" list of DOSEMU.
It appears that DOSEMU provides a good DPMI host, and that's all DOS/4G needs to work successfully.
There may be other DOS and/or BIOS and/or hardware features that are not supported under DOSEMU, so your application may not work, but the DOS/4G family of products seem to work very well.
9. Why does my DOS/4G program run perfectly on some machines and hang on others?
It can be difficult to determine the cause of a system hang, because the system freezes before you can get any real information about the problem. A system hang often indicates a problem in real mode code, or that DOS has been corrupted somehow.
If the program runs on other machines, compare the configuration of the two machines to find the source of the problem. Pay particular attention to make sure that any drivers required by the program are properly loaded. For example: if DOS/4G attempts to handle mouse interrupts without a mouse driver having been loaded, the results may vary from a General Protection Fault to a system hang depending on the condition of the system at the time the interrupts were generated.
We are not aware of any compatibility problems with DOS/4G and any NICs from any manufacturer. This may be a problem with the program and not DOS/4G
If you are using any memory manager (Windows, QEMM, EMM386, etc.) they will control what memory a DOS/4G program uses. All except Windows provide a way to exclude a region of memory.
If you are not using any memory manager, you can use DOS16M=4M@2M, as an example, to say use 4MB only starting at address 2MB.
At present, we are not aware of any problems with either the IBM or CYRIX chips. We have several CYRIX machines that we use for development and testing and we see no problems.
At the same time, 1.97 is several years old, so there may have been some bug that has been fixed in later versions of DOS/4G. You might consider upgrading to a newer version. See our Upgrade page for details.
Also, there have been a number of revs of the CYRIX/IBM chips -- maybe you have one with a problem.
For your information, we get a lot of reports from people suspicious that their CYRIX/IBM chip is incompatible and is causing the problems they are experiencing. So far, they have all proven to be some other problem and not caused by the chip. It may be that people are more sensitive due to all the Intel advertising, or maybe there really is a problem or two. In any case, we are not aware of DOS/4G(W) compatibility problems with CYRIX or IBM chips.
12. Is DOS/4G compatible with the Metaware Compiler?
DOS/4G is compatible with the last version we know of. We have not had any contact with Metaware for over one year, so there may be a version later than the one we know about.
Yes. You are running into a limitation of Windows. Windows can only handle one dos-extended program at a time. Unfortunately, this limitation has been formalized in the DPMI spec.
You will have the same problem in any DPMI implementation, such as Win 3.1, Win NT, or OS/2.
The only solutions are to not use a dos extender for one of the applications (not very practical); to not run in a DPMI environment (i.e. just boot Win95 to DOS mode); or to use the same dos extender for both applications.
We provide DOS/4G for Btrieve to address this last solution.
14. Can DOS/4GW be used with Borland Turbo C/C++?
No, for two reasons: