Dec 142017
Bug fix for Visual C++ - fixes DOS problem with virtual memory manager.
File VMPCH2.ZIP from The Programmer’s Corner in
Category C Source Code
Bug fix for Visual C++ – fixes DOS problem with virtual memory manager.
File Name File Size Zip Size Zip Type
PVMPHYS.OBJ 1767 1315 deflated
PVMPHYS8.DOC 8155 1968 deflated
PVMPHYS8.OBJ 1850 1369 deflated
README.DOC 3144 1450 deflated
REPVMP8.BAT 391 242 deflated
VMBIGBUG.DOC 8732 3136 deflated

Download File VMPCH2.ZIP Here

Contents of the README.DOC file

Contents:Bug fixes for the Virtual Memory Manager of MS C 7.00

Source:Guillermo Gallo, Leica - MEXICO (cis: 70153,2630)

Date:February 8, 1993

Revised:August 7, 1993 - Updated for Visual C++ 1.0 (bug still there!)


This ZIP file contains the documentation for two bugs found in the VMM,
along with the patch information to correct the problems, and a patched copy
of 'vmphys.obj' (the VM library module with the problem), renamed as
'pvmphys.obj' (object modules included with the consent of MicroSoft).

The bug founds are:

- Bad UMB allocation.
- Memory corruption.

The problem starts when there are UMBs available for allocation when the
_vheapinit() is called. The initialization routines then will corrupt random
spots along all the low memory space. In my case I have problems with DOS that
from time to time forgot to flush BUFFERS and the like. Before I discover
this, I was on the conclusion of having developed a 'magic' sequence of file
access that fools DOS and makes it forget its duties. Temporarily I
surrounded the problem 'commit()'ing the problematic file (a temp swap file)
but few weeks later the problem popped somewhere else. (Bounds Checker reported
that the vm initializing code was reading its code in some cases). If you are
using the MSC 7.00 VMM and are experimenting strange random problems in your
application here can be answer.

The file 'vmbigbug.doc' included contain the necessary information to patch the
library module your self if you wish, with the help of the venerable DEBUG.
The file 'pvmphys.obj' contains the patch already done, and is ready to replace
the original 'vmphys.obj' build in the VM library. The patched module is now
running at several customer sites without a glitch for two weeks.


Once you have the patched module you have to replace it in your libraries
with the help of the LIB manager deleting the original one and inserting the
new one. Remember to do it for all memory models.

Included files:

- readme.docThis file.
- vmbigbug.docCodeView listing extract with bug patch info.
- pvmphys.objPatched library module.

Update for VISUAL C++ 1.0 (C/C++ compiler version 8.00)

Unfortunately, it seems that the report of the cited bugs ware too late to get
in on time for the new compiler release, and the libraries coming with the
Visual C++ compiler still have the same bugs.

Although the code shows some revision work done on it, the bugs where not
removed at all. I included a new patched object file and its documentation.
If you are using Visual C++ or switch to it, you have to replace the new
patched file in all DOS libraries.


New files:
- pvmphys8.objpatch for Visual C++ (c/c++ compiler 8.00)
- pvmphys8.docpatch documentation
- repvmp8.bata batch to replace the patch in the libraries.

 December 14, 2017  Add comments

Leave a Reply