DOS/4G

Tenberry Home

Consulting Services

Order DOS/4G

DOS/4G(W) FAQ

Release Notes

DPMI Spec

* * *

DOS/4GW

DOS/16M

DOS/4G and DOS/4GW FAQ - Index and Questions

This is the HTML edition of the FAQ for the DOS/4G and DOS/4GW DOS extenders from Tenberry Software. It was last updated on April 8, 2003.

For further technical support on DOS/4G from Tenberry Software, send email to <4gsupport@tenberry.com>.

For further technical support on DOS/4Gw from Tenberry Software, send email to <4gwhelp@tenberry.com>.

This FAQ is also accessible as a single 71KB text file at ftp://ftp.tenberry.com/pub/4gfaq.txt, or as a 25KB zip file at ftp://ftp.tenberry.com/pub/4gfaq.zip.


List of Topic Areas:

  1. What are DOS/4G and DOS/4GW?

  2. Upgrading DOS/4GW

  3. Known Bugs and Problems

  4. BIOS Upgrade Errors

  5. Pointer and Address Conversions

  6. Memory Management

  7. Interrupt Handling

  8. Virtual Memory Management

  9. Debugging

  10. Compatibility

  11. File I/O

  12. Mouse Callbacks

  13. Video Support

  14. Interpreting Error 2001

  15. Interpreting Error 2002

  16. DMA Addressing

  17. Performance

  18. Hardware I/O

  19. Watcom Compatibility

  20. Year 2000 compliance

  21. Executable File Format(s)


List of Questions in each Topic Area:

  1. What are DOS/4G and DOS/4GW?

    1. What are DOS/4G and DOS/4GW?
    2. Is DOS/4G(W) a replacement for DOS?
    3. What is a DOS extender?
    4. What is Protected Mode?
    5. What is Real Mode?
    6. How Does a DOS Extender Work?
    7. What happens when my program makes a DOS request -- does DOS/4G(W) handle it?
    8. How about BIOS requests?
    9. How about TSR or device driver calls?
    10. All this seems complicated -- why bother?
    11. All this seems complicated -- will my program slow down?
    12. Can I use my existing 32-bit compiler?

  2. Upgrading DOS/4GW

    1. Is the version 2.01a update a direct replacement for my version 1.97?
    2. Can we still substitute our own WSTUB.C in version 2.01a?
    3. Can we still freely redistribute our product if we use DOS/4GW 2.01a?
    4. Will my application run faster if I upgrade DOS/4GW from version 1.97 to 2.01?
    5. Will my application run faster if I upgrade from DOS/4GW version 1.97 to DOS/4G for Watcom or full DOS/4G?

  3. Known Bugs and Problems

    1. What is the 'PATH too large' bug?
    2. Is there any work-around for the 'PATH too large' bug?
    3. Is there a way to run games that use DOS/4G(W) under Windows/NT/2K/XP?

  4. BIOS Upgrade Errors

    1. Why am I getting a 'Error 2 - File does not exist' error when I try to update my BIOS?
    2. Why does your BIOS update program AMINF386.EXE return 'Error 2 -- File does not exist' when I run it in DOS?

  5. Pointer and Address Conversions

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

  6. 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?

  7. Interrupt Handling

    1. My program installs a hardware interrupt handler. 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?
    7. Can all published DOS interrupts be emulated with protected-mode code?
    8. So, what DOS interrupts are handled by protected-mode code?

  8. 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?

  9. Debugging

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

  10. Compatibility

    1. Is DOS/4G(W) compatible with Windows 95?
    2. Is DOS/4G(W) compatible with Windows 98?
    3. Is DOS/4G(W) compatible with Windows ME?
    4. Is DOS/4G(W) compatible with Windows NT?
    5. Is DOS/4G(W) compatible with Windows 2000?
    6. Is DOS/4G(W) compatible with Windows XP?
    7. Can DOS/4GW be used with Borland Turbo C/C++?
    8. I'm experiencing problems trying to run my DOS/4G application with Novell. Any idea what might be happening?
    9. Is DOS/4G compatible with Windows NT, Windows for Workgroups and Windows 95?
    10. Is 32-bit development with Microsoft supported by DOS/4G?
    11. Is DOS/4G compatible with Linux DOS emulation?
    12. Why does my DOS/4G program run perfectly on some machines and hang on others?
    13. 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?
    14. 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?
    15. Is DOS/4G compatible with the Metaware Compiler?
    16. 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?
    17. I'm getting the following error: 'DPMI host error: cannot lock stack'. What does this error mean?
    18. Are there problems when repeatedly spawning DOS/4G applications under OS/2 2.1?
    19. Is there a problem with resizing a DOS box window under OS/2 Warp while a DOS/4G application is running?
    20. Why am I having trouble running my DOS/4G application from inside Lotus 1-2-3?

  11. File I/O

    1. Do you have any suggestions for speeding up file I/O?

  12. Mouse Callbacks

    1. Must I do anything special to handle mouse callbacks?

  13. Video Support

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

  14. Interpreting Error 2001

    1. My program generates an error (2001). How do I tell what's going on?

  15. Interpreting Error 2002

    1. I'm getting an error 2002 (transfer stack overflow). What shoud I do?

  16. 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?

  17. Performance

    1. Will my application run faster if I upgrade DOS/4GW from version 1.97 to 2.01?
    2. Will my application run faster if I upgrade from DOS/4GW version 1.97 to DOS/4G for Watcom or full DOS/4G?
    3. What impact does running in protected mode have on my program?
    4. Assuming the machines are of equal speed (MHz), will DOS/4GW run faster on a PPro or a normal Pentium?
    5. I'm worried about the time spent switching between modes.
      Can I do all my execution in protected mode and eliminate switching to real mode?
    6. What is the fastest way to handle an interrupt?
    7. Can I reduce mode switching by using a particular compiler?
    8. Do calls to the standard C library cause mode switches?

  18. 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?

  19. Watcom Compatibility

    1. What versions of Watcom are you compatible 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?
    3. Isn't Watcom out of business?
    4. Doesn't that mean that the Watcom compiler is no longer available?
    5. Doesn't that mean that the Watcom compiler is no longer supported?

  20. Year 2000 compliance

    1. Is DOS/4GW Year 2000 compliant?
    2. Is DOS/4G Year 2000 compliant?
    3. Will my DOS/4G(W) program be Year 2000 compliant?

  21. Executable File Format(s)

    1. What is the format of DOS/4GW executables?
    2. What are the differences between the LE and LX formats?
    3. Where can I get details about the LE/LX formats?
    4. What is the format of DOS/4G executables?
    5. Where can I get details about the PE format?
    6. Why don't you have the definition of the PE format available online?
Note: The DPMI 0.9 specification is also available at the Tenberry web site at http://www.tenberry.com/dpmi/index.html.


[DOS/4G] * [Home] * [Tenberry] * [News] * [DOS/4GW] * [DOS/16M]
Last modified 2003.04.08, Your questions, comments, and feedback are welcome.