user documentation            pmvdmcc                     Veit Kannegieser


purpose
=======

pmvdmcc.sys alters the _VDMINT10CreateMiniVDMSub, _VDMInt13CreateMiniVDMSub
and VDMInt13DestroyMiniVDM procedures in OS2KRNL to map more memory areas
than the original procedures. This is useful to prevent hang or trap
when booting using MemDisk on machines that are already memory contrained.
The problem was that filter code that is installed just below 640 KiB
is not mapped, when it is located below 640-8 KiB. Example machines
where problems happened where IBM/Lenovo Thinkpads, where the the boot process
would stop when IBM1S506.ADD is used, or DANIS506 with empty harddisk or
without the /!BIOS option. Similar problems when the machine is not docked
when on other machines the desktop would appear (switch to high resolution
graphics mode). A byproduct in this driver is the possibility to free the
'2K STACK' and move the extended BIOS data area, so that using the video mode
restriction to CGA, you can again archive 730 KiB DOS session memory.
It is unknown to me what the '2K STACK' is used for, but apparently it is not
used at all in my machine configuration.

usage
=====

  copy ..\boot\pmvdmcc.sy? to \os2\boot\
  add 'BaseDev=pmvdmcc.sys' line to config.sys (any position)


driver options
==============

  /q      quiet: supress error messages
  /v      verbose: more diagnostics
  /w      verbose+wait
  /f      try to free "2K STACK"


various
=======

 - Memdisk.add also has partial patch code, use 'BaseDev=MemDisk.add /1'
   to disable that code, it will completely removed in newer versions.

 - Because of BIOS 'memory management' restrictions, it is not possible
   to free the "2K STACK" when other boot code is loaded, for example
   memboot.bin.

 - The Phoenix BIOS places an pointer to the "2K STACK" in write protected
   shadow RAM. The driver does not change this pointer.


changes
=======

 - the patch for _VDMINT10CreateMiniVDMSub was wrong
 - corrected spelling errors


