noPM Support for OS/2.
----------------------

You've just unpacked a set of several PM DLLs to organize your work
in OS/2 without PMSHELL, for instance in "cut" OS/2 systems based
on TShell, BootOS2 Shell, etc.
This set should work in any version of OS/2.

This archive is absolutely legal and free.

Synopsis.
Some text-mode OS/2 programs using PM calls, thus they can't work without
PMSHELL installed, because first call of WinInitialize lead to a system hung.
To avoid this inconvenience I wrote several tiny stubs for such DLL-s,
where I left only necessary functions. Almost all of them just returns
an awaited error code and nothing else. Many others are just redirections
to int 3, because all the programs, I have tested, don't use them at all,
but connect them when .exe module is loaded.

All functions are contained in these DLL-s can be seen in the directory 
techinfo\.

The only really worked functions are calls of the Prf* API, these functions
are used for .INI files manipulations.
They have following disadvantages (limits):
   only 32-bit versions of calls Prf API have been written;
   there is no any support for OS2.INI and OS2SYS.INI files;
   it is possible to open only 1024 files simultaneously in a system;
   it is possible to open only 1024 files simultaneously in one process;
   every opened .INI file is kept in RAM;
   if file was damaged the error code is always returned.

For proper work Prf* functions it is necessary to start inid.exe daemon 
first. This daemon can be started from \config.sys with a line
RUN=Path\inid.exe included, or from a command line on the next way
'detach Path\inid'.

The description for structure of .INI files is available in techinfo\os2ini.pas.

There is a special command file named install.cmd to install noPM DLL-s set
into existent system.
To remove noPM use command file named uninstal.cmd. It will return
previous versions of those DLL-s back.
Next command file, tn_patch.cmd, is a patch for IBM telnetd.exe (see below).

DLL-s has been tested with the programs listed below:
go.exe, top.exe, tn/2, TVFS, VP, IDA2, IBM TCP Apps (ftp.exe, telnet.exe, 
telnetd, and the rest of standard programs from \tcpip\bin\*.exe), Moylan's 
ftpd, Weasel.

Note about telnetd.
IBM's telnetd passes into DosStartSession function a block of parameters with
a size in 50 bytes, that prevents telnetd to work without PMSHELL. 
Provided command file tn_patch.cmd, patches in the telnetd daemon single
byte and restores status-quo.
There is one extra problem with a telnetd I've found - I couldn't force to work
newer versions of telnetdc.exe (from TCP/IP stack versions higher than 4.1).
But you can try to do that and tell me about your experience then ;)

---
name:   Stepan Kazakov
e-mail: madded@mitm.ru
fido:   2:5050/13.29
url:    http://zuko.mitm.ru
irc:    nick zuko or [zuko] in the #os2russian channel in irc-network efnet.
