Warp 3 Support Kit for Odin
===========================

CHANGES

  28/07/2002  Initial version (5474+5478, for WGSS/PMWINX only)
  26/03/2003  Changed to PMMERGE wrapper. Fixed Ctrl/Shift keys being
              inoperable in some applications.
  13/07/2003  Descended to 8.254
  17/08/2003  Fixed to allow systemwide drop-in of Merlin/Aurora DLLs:
              PMWP.DLL, PMCTLS.DLL, PMGPI.DLL, PMWINX.DLL, WPPRINT.DLL,
              WPCONFIG.DLL, SCENTER.DLL, PMBIDI.DLL, HELPMGR.DLL can all be
              borrowed from a recent Merlin/Aurora fixpak.
  24/10/2003  Descended to 8.246 to get rid of SOFTDRAW dependence in
              memory-constrained systems (8.260 still recommended)
  27/11/2003  Fixed SYS3175 in a mixed environment when the same applications
              are accessed from 9.xxx.


INTRODUCTION

  This program acts as a wrapper for PMMERGE.DLL, providing certain APIs
  "borrowed" from 9.036 level. Strictly speaking, it requires the user to
  steal one more Merlin library so it's not a good idea to use it on an
  IBM-supervised installation, as breaking the FixPak license breaks your
  support. However, for private use of a now-defunct product, I think it's
  permissible.


INSTALLATION

  To get Odin and its derivatives working under Warp 3, follow this these
  steps:

  1. Install XR_W040 or higher, be sure to have MMPM/2 installed.
  2. Bring MPTS to CSD level WR08400 or higher (WR08423+ recommended if
     you really intend to use networking)
  3. Extract REGISTRY.DLL from XR_M012 (in English-US version, it's in
     XR_M012.FDK) and copy it into \OS2\DLL.
  4. Copy the enclosed WMMERGE.DLL into \OS2\DLL.
  5. Patch WGSS50.DLL (in custom builds, it may have a different name, but
     the same instructions apply). Use HIEW, DLLRNAME or any other applicable
     tool to replace "PMMERGE" with "WMMERGE" in that file.

  6. [Optional] To get Win32K working, one needs to obtain OS2KRNL.SYM for
     retail kernel, unfortunately the only way to get hold of one is through
     dumpster-diving, i.e. constantly monitoring
     ftp://testcase.boulder.ibm.com/ps/fromibm/os2 for new kernels.

     When Odin first starts, there might be a 10 seconds pause due to first-time
     initialization of registry services. It should run instantly afterwards.


NOTES

  1. As of 26/03/2003, there is a larger dependence on the level of PMMERGE.DLL.
     It hooks deep into PMMERGE routines and makes its way based on certain
     machine code sequences. Only the versions of PMMERGE from
     XR_W022/XR_W031/XR_W040/42/43/R044 were tested. NLVs may fail. If it fails,
     it will fail immediately, i.e. end up with SYS3175 or similar.

  2. Opera/2, Virtual PC/2 (4.32/5.0/5.1) and Acrobat Reader Kit are all known
     to work. The "PMMERGE->WMMERGE" patch is to be applied against
     OPWGSS50.DLL, VPCWGSS.DLL or AR32WIN.DLL, respectively. Be sure to back up
     the distribution files! Similar hacks may work for Innotek Kit for Java,
     OpenOffice, and all similar Odin-based porting efforts.

  3. NLS-related functions report Cyrillic locale when asked. This shouldn't
     be visible to the end user.


HACKING

  1. If one copies PMWINX.DLL from XR_M012 and modifies it to use WMMERGE, it
     becomes possible to run Lotus SmartSuite. Tested with LSS v 1.51/1.6.

  2. (more hacking, useful for academical purposes only). One may mix the
     Merlin/Aurora PM libraries with those of Warp 3 in arbitrary order,
     tailoring the former to the latter by means of WMMERGE.DLL. Sometimes
     this is useful (e.g. to get an updated PMGPI/HELPMGR or install
     WarpCenter), sometimes it just makes fun (as with PMWP/PMCTLS).


CONTACTING THE AUTHOR

  E-mail: andrew_belov@newmail.ru, or post your comments directly into the
  Odinusers group.

  Source code (mostly comprising raw disassembly and a set of intelligent
  "hooks") is available upon request.
