Here you will find an assortment of programs which I've written for the OS/2 operating system. These are largely in the way of system tools or utilities for rather specialized tasks.
The following programs may be found on this page.
- Archive Viewer
- FreeType/2 IFI
- TCP/IP Profile Manager
- VX-REXX Extras Library
Other programs of mine are available on separate pages of this site:
- Programs specific to printing under OS/2.
- Programs specific to the OS/2 Logical Volume Manager.
- Programs related to OS/2 ULS and Unicode support.
- Useful OS/2 REXX scripts.
- Software which I've ported to OS/2 from other operating systems.
Other OS/2-related programs not written by me may be found under the OS/2 Utilities section of this site.
Archive Viewer is a very simple GUI tool for viewing and extracting archive files of various types. It originated as a system utility included in eComStation (and it remains so to this day). However, I have also decided to release it as open source software under the GNU GPL.
Archive Viewer cannot create archives, nor is this ever planned as a feature. (It is not my intention to compete with commercial archive managers for marketshare.)
Version 2.2 adds a few new features which significantly enhance the program's usefulness. These include:
- The ability to search for text (such as a filename)
- The ability to extract a specific file, or group of files (with wildcards) from the archive.
- A 'view' option to quickly view a file within the archive by opening it in the default WPS viewer, without having to unpack the archive first.
The binary package provided here requires WarpIN to install.
Watcom VX-REXX (version 2.1D) is required in order to build the source code. The IBM OS/2 Toolkit is required to compile the language support files.
The current binary release includes only English language support. The source code for the language support files are provided in a separate package (below). Earlier versions of Archive Viewer had support for several other languages; the support files for these languages need updating before they can be used with version 2.2. (These files are included in the translator's package.) I would welcome contributions from those willing to assist in creating up-to-date translations for these or other languages.
|arcview_22.wpi||Archive Viewer version 2.2, program install package (WarpIN).|
|arcview_22_nlv.zip||Translator's source for the language support files, required for translating Archive Viewer into other languages. (For the benefit of translators, outdated/incomplete source files for several non-English languages, taken from earlier versions of Archive Viewer, are included.)|
|arcview_src_22.zip||Full program source code (VX-REXX); also includes the translator's source files from the package above.|
ATSHELL is a small program designed to replace PMSHELL.EXE as the OS/2 RUNWORKPLACE program. It allows an arbitrary program to be used as the 'desktop', including (but not limited to) the Workplace Shell (PMSHELL), a web browser, a file manager, or some custom application. It also allows this desktop program to be stopped and restarted, or even changed to something else entirely, without rebooting the system. In addition, ATSHELL allows you to open command prompts or shut down the system, even when the desktop program is not running.
A simple 'secure' mode is also provided, which allows the system administrator to prevent users from opening command prompts or changing the desktop program.
ATSHELL was originally conceived as a shell replacement for 'web kiosk' type systems, but it is useful for other situations as well. For instance, you can set ATSHELL as your desktop shell, then use it to start the Workplace Shell (transparently, if you wish). Then, if the WPS ever has to be terminated, you will automatically be returned to the ATSHELL window, whence you can shut down, use the OS/2 command line, or restart the WPS, as you prefer.
See the README file for more information.
ATSHELL is free software licensed under the GNU GPL.
|atshell_05_src.zip||Source code (C)|
ConText is a utility for converting text from one encoding (codepage) to another.
It does two useful things. First of all, it lets you convert text from one arbitrary codepage to another. That is, all character byte values are changed as needed to preserve the original meaning of each character under the target codepage. (Note, however, that all text is displayed using the current Presentation Manager codepage.)
Second, ConText also supports the copy and paste of Unicode text (such as may be copied using one of the Mozilla products) to and from the clipboard.
See the README for more information.
ConText is licensed under a BSD-style license. Since the program is at least partly intended as an illustration of the OS/2 Unicode APIs, the source code is included in the main distribution.
text (IBM-866/Russian to UTF-8)
(Note that, in this example, neither the input nor output text is actually readable on the screen, since the program was run under codepage 850.)
|context_04.zip||Program files and source code (C)|
DBCSMAP is an OS/2 character map program for Unicode and double-byte characters. It supports the Unicode Basic Multilingual Plane, as well as the common OS/2 codepages for Chinese (Traditional and Simplified), Japanese, and Korean.
Besides entering Unicode characters, DBCSMAP can also be potentially useful if you need to enter Asian characters (in one of the aforementioned languages), but have neither an Asian keyboard nor access to any DBCS input tools.
See the README file for more information.
DBCSMAP is free software licensed under the GNU GPL.
- Selecting Unicode (UCS-2) characters, font Arial Unicode MS
- Selecting Chinese characters (codepage 1386, GBK), font Bitstream Cyberbit
- Selecting Japanese characters (codepage 943, Shift-JIS), font Times New Roman WT J
|dbcsmap-1_51-src.zip||Source code (C)|
FreeType/2 is an OS/2 Presentation Manager font driver for TrueType fonts. It is designed to replace OS/2's built-in TRUETYPE.DLL driver, and is based on the open source FreeType library.
Some explanatory notes are in order.
- What this is:
- FreeType/2 is a system-wide font driver (more technically called an Intelligent Font Interface driver) for Presentation Manager. This means that all graphical programs which rely on OS/2 for rendering text will benefit from the improved font support.
- What this is not:
- FreeType/2 is not the same as the FreeType library, which is for use by individual applications that want to avoid using OS/2's default text rendering functions. Consequently, using FreeType/2 will have no effect on applications or GUI environments which use FreeType internally for rendering, such as the Mozilla products, QT4, or anything which uses the Innotek Font Engine.
Furthermore, FreeType/2 only replaces the TrueType support module within Presentation Manager. It cannot circumvent any of the limitations inherent in Presentation Manager's graphics layer (GRE/GPI). In particular, there is no support for antialiased fonts, or for font names longer than 31 characters (both of which are restrictions imposed by GRE/GPI, and not by the font driver).
This is version 1.3 of FreeType/2. The driver was originally (v1.0 and 1.1) written by Michal Necasek. More recent versions (v1.2) were maintained by KO Myung-hun.
Some highlights of version 1.3 compared to previous releases include:
- Several new configuration settings designed to improve the reliability of character-to-glyph mappings (especially for Unicode fonts).
- Various improvements to DBCS font support.
- Better compatibility with other font drivers with respect to how FONTMETRICS data is populated.
- Includes a workaround for the 'run-together text' bug seen with some fonts when printing from OpenOffice.org 3.x. (See here for an explanation.)
- Comes with an easy-to-use graphical configuration utility.
See the README file for more information.
Note: FreeType/2 v1.3 is linked against version 1.3.1 of the FreeType library (the similar version numbers are coincidental). As such, it only supports TrueType fonts; this includes OpenType/TT fonts (although OpenType-specific features such as layout tables will be ignored). It does not currently support OpenType PostScript fonts or any other non-TrueType font format.
The source code is distributed (see the link below) under the FreeType license.
- The configuration GUI:
- There are several images illustrating the improvements in text rendering quality here.
|ft2v134.zip||FreeType/2 installable font driver, version 1.34|
FrontenACT is a graphical front-end for the "Enhanced CTorrent" BitTorrent client for OS/2. Refer to the README for details.
FrontenACT is a complete rewrite of my older, experimental, program known as PM CTorrent Manager. It fixes some major design flaws, consumes fewer system resources, and should be much more reliable in general.
|frontact05.zip||FrontenACT version 0.50 binaries|
|frontact05_src.zip||Source code (VX-REXX)|
IMERJ is a "poor man's" input method editor (IME) for Japanese. It allows you to enter Japanese kana by typing romanized text in the edit window. You should then be able to copy and paste the Japanese text to wherever it's wanted.
The program does need to be run under codepage 932 if the Japanese characters are to display correctly.
As of version 0.7, IMERJ requires RXULS.DLL (available here).
See the README file for details.
|imerj_src_09.zip||Source code (VX-REXX)|
InstFont is a simple command-line tool for installing a font under OS/2 Presentation Manager.
This program was designed to facilitate automated font install packages. While it is possible to install a font manually (e.g. using REXX) by setting the appropriate entries in OS2.INI, using this technique requires the user to reboot in order to make the new fonts available. With InstFont, you can install a font on demand and have it available to the system immediately.
|instfont10.zip||Executable and source code (C)|
MYIP is a simple TCP/IP utility for querying the current system's IP address as seen from the Internet.
Specifically, MYIP contacts a special website that reports the IP address of your computer as the remote server sees it. This allows you to determine your public IP address even if you are connecting through a firewall or router that uses network address translation.
MYIP requires a 32-bit TCP/IP stack (i.e. MPTS 5.3/WR_8600 or higher).
Source code (released under the GPL) is included.
See MYIP.TXT for more information.
|myip_02.zip||Program files and source code (C)|
TCP/IP Profile Manager lets you define and switch between multiple different TCP/IP configurations.
This is mainly useful if you have a notebook or portable computer which you have to move between various different locations requiring diffent IP configurations.
See the program README for more information.
|ipprf_11.zip||TCP/IP Profile Manager version 1.0|
|ipprf_11_src.zip||Source code for version 1.0 (VX-REXX)|
VX-REXX Extras is an API & class library designed to extend the functionality of Watcom VX-REXX (version 2.1). Its objective is to provide various new object classes and useful functions.
The included file (VROBJEX.DLL) functions as both the object library for developers, and the runtime library for end users. Users who need to install this library can simply copy VROBJEX.DLL to anywhere in their LIBPATH. For VX-REXX developers, installation instructions are provided in the release notes.
Currently (version 1.3), the VX-REXX Extras library provides the following:
- Support for flyover help (tooltips) with any type of control.
- A progress bar control supporting different visual styles (Progress).
- An enhanced button control supporting various combinations of image and text (IconButton)
- A Warp-4-style notebook control (TabbedDialog)
- A colour selection dialog (using the PM "colour wheel" control)
- A directory selection dialog
- Functions for accessing clipboard even from text-mode programs
- Some examples of the new Progress control.
- Some examples of the new IconButton control
- VX-REXX designer showing the new TabbedDialog control
- Sample program demonstrating the use of ToolTips
- The colour selection dialog
- The directory selection dialog
|vrobjex_130.zip||VX-REXX Extras version 1.3.0|
Note: Source code for version 1.3.0 is on NetLabs SVN as revision 76.