It has been a while now since I wrote my last native OS/2 program - I had been
experimenting mainly with various types of online documentation (remember,
that was pre-HTML) and with a few system features and then stopped it for lack
of time and user feedback...
Anyway, as some of these programs may still be of use to someone, I have
included them here in the form as I have last archived them, which means that
they are not tested for compatibility with later versions of compilers or the
operating system. Hopefully at least some of them will be revised or updated
at some future point in time, but don't rely on it - as usual, everything
comes "as is".
Tools and documentation for the INF/HLP file format
Before HTML hit the world big time, the Information Presentation Facility
(IPF) included with OS/2 presented itself as a very useful way for
distributing "e-text" documents (like help files, manuals, newsletters) as it
offered features for hyperlinking, compression, fast full-text search etc.
IPF documents, which usually come to the end user in the form of files with
the extensions INF or HLP (not to be confused with Windows help files and
numerous other, proprietary help formats), are created by first marking up
ASCII text with a markup-language. After that, they are fed through IBM's IPFC
compiler, which converts them to a compressed and indexed binary
representation. As far as I know, IBM has still not made this compiler
available outside the complete OS/2 developer's toolkit.
Converting INF/HLP files to ASCII text
[current version: 1.02] This is a relatively simple program to retrieve all
the text from an OS/2 INF style help file and convert it into a somewhat
structed and more printable form. The package includes both executable and
source code, so it can also be used as a starting point for people who want to
create their own INF/HLP applications.
File structure documentation for OS/2 INF/HLP files
[current version: 2B] This document describes most of the internals of OS/2's
INF or HLP files. It is intended for programmers who want to create
applications accessing those files directly, for example to convert them to
other formats.
There are still some "white spots" in the description, but it should be
complete enough to retrieve all the text together with most of the layout and
structural information from the file.
[current version: 1.1] This program converts texinfo-style hypertext manuals
used in many GNU projects into source code for OS/2's IPFC help file compiler
(which in turn compiles them to INF resp. HLP files).
As this tool is mostly intended for porters of Unix software anyway, it does
not include executables, only source code. In addition, you will need the IPFC
program from IBM's OS/2 toolkit to compile the resulting help files into a
"browsable" form.
A simple "diff" file generator for the PATCH command
MakePatch can be use to create patch files for use with OS/2's standard patch
facility: The PATCH command can be used to change byte values in a file,
either interactively (which is documented in the online help), or using a
patchfile (which isn't):
To use an automatic patch file, PATCH must be called using
PATCH /a patchfile
The patchfile must contain the name of the file to be patched and a list
of the patches to apply to that file. Optionally, a file may also contain
verification info to make sure that the right version is patched.
MakePatch creates such patch files, given an original and a patched version of
a file. Basically it is not much more than a binary file compare, with the
only difference that the output can be redirected into a while which is
directly compatible to the PATCH command.
It is not possible to create patches changing the length of a file using this
method (i.e. you cannot insert or delete bytes from a file), but this ability
is not required at least for assembly-language based patches in most cases.
[current version: 1.0] This program (called "Seamless OS/2") allows starting
OS/2 applications from the commandline of a DOS box. The standard output and
standard error device are both redirected to the standard output of the DOS
session. Thus, you can use command line applications of OS/2 just as if they
were native DOS apps. For example, I wrote this program to allow compiling
with the OS/2 hosted version of Microsoft C 7.0 from a DOS session where I
could start the compiled programs right away without having to switch windows.