LinkExchange

DOS/4G FAQ - Introduction

This is the HTML edition of the FAQ for the DOS/4G DOS extender from Tenberry Software. It was last updated on May 23, 1997. For further technical support from Tenberry Software, email <4gsupport@tenberry.com>. The FAQ is also accessible as a single 57KB text file at ftp://ftp.tenberry.com/pub/4gfaq.txt, or as a 18KB zip file at ftp://ftp.tenberry.com/ftp/pub/4gfaq.zip.


Table of Contents:

1. Address Conversion

  1. How do I convert between pointers and linear addresses?
  2. How do I convert between code and data pointers?
  3. How do I convert between pointers and low memory addresses?
  4. How do I convert between linear and physical addresses?
  5. How do I convert between real and linear addresses?
  6. Does DOS/4G provide null pointer checking?

2. Memory Management

  1. I'm using WATCOM 9.5 and DOS/4G 1.96. Are there problems with the malloc() and realloc() functions? They seem to be failing prematurely.
  2. Why can't I access all 128MB of physical memory available on my machine?
  3. How can I allocate a block of memory in protected mode that doesn't cross a page boundary?

3. Interrupt Handling

  1. My program installs a hardware interrupt hander. The program runs fine under plain DOS but crashes under DPMI. What might be happening?
  2. Why can't I get the WATCOM library signal() function to work with Ctrl-Break?
  3. I'm writing a hardware interrupt handler. Can you give me some tips?
  4. Does DOS/4G support VESA Int 10h Function 4F00?
  5. Is it true that the Watcom function _disable() only disables interrupts for the process, and not the processor?
  6. Is there any way around this, for example, using an asm "cli" call?

4. Virtual Memory Management

  1. Is there a way that my program can check for the presence of a virtual memory manager?
  2. Are there any precautions I need to take when spawning a DOS/4G program from another DOS/4G program in a virtual memory environment?
  3. My program runs fine without VMM but crashes when VMM is running. What should I be looking for?
  4. My program is running out of memory, even though I have a huge virtual address space. What could be wrong?
  5. Is there an advantage to creating a permanent swap file?
  6. How do I specify a directory name for the swap file?
  7. How should I configure VMM for best performance?
  8. I've tried various things to speed up my program, but it still seems sluggish. Are there any other factors that affect VMM performance?
  9. Why do I need such a big swap file?
  10. Can you have virtual memory for one DOS/4G program, and not for the other DOS/4G programs that it spawns?

5. Debugging

  1. Can I debug a bound application?
  2. What versions of WVIDEO are supported?

6. Compatibility

  1. Why am I having trouble running my DOS/4G application from inside Lotus 1-2-3?
  2. Are there problems when repeatedly spawning DOS/4G applications under OS/2 2.1.
  3. Is there a problem with resizing a DOS box window under OS/2 Warp while a DOS/4G application is running?
  4. I'm getting the following error: "DPMI host error: cannot lock stack". What does this error mean?
  5. I'm experiencing problems trying to run my DOS/4G application with Novell. Any idea what might be happening?
  6. Is DOS/4G compatible with Windows NT, Windows for Workgroups and Windows 95?
  7. Is 32-bit development with Microsoft supported by DOS/4G?
  8. Is DOS/4G compatible with Linux DOS emulation?
  9. Why does my DOS/4G program run perfectly on some machines and hang on others?
  10. Are you aware of any compatibility problems between a DOS/4G program and a Novell/Eagle NE3210 EISA NIC which uses a shared RAM area at address D000h-D7FFFh? Is there some way I can exclude this area from DOS/4G?
  11. My game's video hangs at the same spot after several hours playing. The game manufacturer says that the DOS extender (version 1.97) might be incompatible with my IBM 6x86 166+ CPU. Could this be possible?
  12. Is DOS/4G compatible with the Metaware Compiler?
  13. When we try to run our protected mode application under Windows 95 in the same DOS session as Btrieve, Windows tells us that protected mode cannot be entered. Any idea what might be the problem?
  14. Can DOS/4GW be used with Borland Turbo C/C++?

7. File I/O

8. Mouse Callbacks

9. Video Support

  1. Can I under Windows 95 switch between screen resolutions like 800x600 and 1024x768?
  2. Does DOS/4G translate VESA extentions?

10. Interpreting Error 2001

11. Interpreting Error 2002

12. DMA Addressing

  1. My TSR currently uses 26K of conventional memory. I can reduce this number even more by allocating the sound card DMA buffer from extended memory. Is this worth the effort?

13. Performance

  1. What impact does running in protected mode have on my program?
  2. Assuming the machines are of equal speed (MHz), will DOS/4GW run faster on a PPro or a normal Pentium?

14. Hardware I/O

  1. Can I virtualize I/O ports under DOS/4G?
  2. Is there any restriction on using the I/O address space access functions, such as inp(), with DOS/4G?

15. Watcom Compatibility

  1. What versions of Watcom are you compatable with?
  2. Why doesn't my program work with Watcom 11.0 when DOS4GW.EXE is situated in the same directory as the executing program?
Note: The DPMI 0.9 specification is also available at the Tenberry website.


[Back to the DOS/4G Home Page]
[Home] * [Tenberry] * [News] * [InstantC] * [DOS/4G] * [DOS/16M] * [Rational Systems]
Last modified 1997.5.23, <webmaster@tenberry.com>