DOS/4G Release Notes

                         DOS/4G RELEASE NOTES

                       | Key to release notes |
                       |                      |
                       | E -- Enhancement     |
                       | B -- Bug (fix)       |
                       | D -- Documentation   |

Release 2.01, April 3, 1996 (changes since release 2.00)

E ** Configuration error reporting has been enhanced. It now prints a pointer
     to the location of the error with approximate options string content.

B ** Fixed: A bug in our DPMI INT 31h/0800h caused mappings of 4MB or greater
     to be misaligned.

B ** Configuration error numbers (400x) conflicted with GLU error numbers.
     These have been changed to 500x.

     Configuration Processing Errors
     DOS/4G error (5000): cfg syntax error - Invalid value
     DOS/4G error (5001): cfg syntax error - Invalid Section
     DOS/4G error (5002): cfg syntax error - Zero length option string
     DOS/4G error (5003): cfg syntax error - Invalid option string
     DOS/4G error (5004): cfg syntax error - Invalid char after option string

B ** Fixed: A low memory int21/3f (Read From File With Handle) failure which
     occurred under certain conditions.

B ** Fixed: A bug which caused environment variables as values for
     configuration options to fail.

Release 2.00, November 20th, 1995 (changes since release 1.97)

D ** The manual has been dramatically enhanced since version 1.97. There
     are now two manuals (The DOS/4G Family Programmer's Guide and The
     DOS/4G User's Manual) and overall size has increased by about 50
     percent. A brief list of the more important changes and corrections

      * Detailed instructions on how to compile and link a DOS/4GW program.

      * An additional section describing in detail how to build DLLs.

      * Many new chapters have been added to provide as much information
        on protected-mode programming for the DOS/4G family as possible.

E ** Configuration has been enhanced for flexibility and consistency
     across the DOS/4G Family of products. Most of the options have
     remained the same.  Please review chapter 4 of the the DOS/4G Family
     Programmer's Guide for details.
     Note: The new format for configuration options is not backwards
     compatible with the 1.97 version configuration options. You must
     convert your preexisting options to the new format or they will
     not work.

E ** Support has been implemented for 32-bit arguments to int 21h functions
     48h(allocate), 49h(free), and 4Ah(resize).

E ** DPMI int 31h 0800h & 0801h physical address mapping calls can now handle
     mappings up to 64MB.

E ** Processing speed for int 21h has been improved.

E ** Processing speed for int 31h under VM has been improved.

E ** The kernel's machine identification strategy has been upgraded to better
     recognize some newer systems.

E ** Some VM changes have been implemented:

     o The swapfile will not grow beyond the SwapMax actual max reported in
       the VM options section if PRINTCONFIG is enabled;

     o Several blatant logical configuration errors now result in the report
       of a fatal error and DOS/4GW will terminate execution;

     o If the actual physical memory available to VM is greater than the
       PhysNoVM option, a printout of relevant options will occur if the
       PRINTCONFIG option is enabled.

E ** The stub program may now be built by the Watcom 16-bit compiler.

B ** A problem which caused "DOS/4G error(2511) : swap out error[2]" has been

B ** A failure when there is more than 64MB of RAM present has been fixed.

B ** A problem using INT 21h/67h (grow handles) in the Linexe loader that
     caused access to DLLs to fail under VM has been fixed.

B ** You can now unload a second instance of a DLL without causing the DLL to
     completely unload.

B ** There was a problem with the environment variables LIBPATH and LIBPATH32.
     If you had a '..\' at the beginning of your DLL path, the search failed.
     This has been fixed.

B ** Memory loss problems with the zero-based Linexe loader have been fixed.

B ** Non-linexe symbols are now relocated in the debugger without crashing.

B ** You can now load an exactly-64k segment from a segmented executable file.

B ** A segmented executable .DLL initialization function calling problem has
     been fixed. It now initializes correctly.

B ** Fixed a fast PSP switching problem with some versions of DOS, under VM.

B ** Fixed a problem under VM where the memory report would show that physical
     pages are greater than the virtual space.

B ** Fixed the mouse32 handler to ignore a Microsoft Windows DOS box bug
     which mangles the high word of ESP.

B ** Fixed problems relating to the use of '.' as the path specification with
     Novell networks, (e.g. DOS4G-VM.SWAPNAME=.).

B ** Fixed a bug which caused EDX and EBX to be swapped after an NMI.

B ** Fixed an accounting bug located in the VM code for handling int 31h/0502h;
     evidenced by an apparent loss of free pages as reported by int 31h/0500h
     when doing repeated MALLOCs and FREEs under VM.

B ** Fixed an accounting bug in the VM code for handling int 31h/0503h.

B ** Fixed an int 21h/4Ah resize bug.

B ** Fixed and enhanced the protected mode critical error handler to only
     allow valid choices.

B ** A VM accounting bug which occurred when spawning has been fixed.

B ** Int 31h functions 050Ah, 0702h, and 0703h now work correctly under VM.

                      KNOWN BUGS AND LIMITATIONS

                      | Key to Bugs/Limitations|
                      |                        |
                      | A -- API Functions     |
                      | C -- Configuration     |
                      | O -- OS/Environment*   |
                      | M -- Miscellaneous     |

M ** DPMI function 0009h (Set Descriptor Access Rights) requires that
     certain bit fields in the access and extended access rights/type bytes
     passed to this function be set to 0 or 1; in addition, the DPL field
     must equal the caller's CPL (determined most easily by performing an
     LAR instruction on the calling program's code segment).  See the DPMI

M ** DPMI function 0102h (Resize DOS Memory Block) fails on requests to
     increase block size; requests to decrease block size succeed.

M ** DPMI functions 0600h/0601h (Lock/Unlock Linear Region), contrary to the
     description in the manual, return with the carry flag set when VM is not

[Tenberry] * [DOS/4G] * [Order] * [FAQ] * [Release Notes] * [DPMI] * [Watcom Users]
Last modified 2003.4.08. Your questions, comments, and feedback are welcome.