Free OS2 Software Programming - twse/random-stuff GitHub Wiki

Languages

Assembly & Assemblers

avra — Assember for the Atmel AVR microcontroller family.

AVRA is an assembler for Atmel AVR microcontrollers, and it is almost compatible with Atmel's own assembler AVRASM32. The programming principles and conceptions are based on the ANSI programming language "C".

Authors: Burkhard Arenfeld, Jon Anders Haugum, Jerry Jacobs, Tobias Weber et al. (1998-2010); maintained by Virgil Dupras (2019); OS/2 port by Harald Kipp, Germany (2000).

1999-03-31: v0.5 - Last version for OS/2.

NASM — Netwide Assembler.

From the docs:

...an 80x86 assembler designed for portability and modularity. It supports a range of object file formats, including Linux and 'NetBSD/FreeBSD' 'a.out', 'ELF', 'COFF', Microsoft 16-bit 'OBJ' and 'Win32'. It will also output plain binary files. Its syntax is designed to be simple and easy to understand, similar to Intel's but less complex. It supports 'Pentium', 'P6', 'MMX', '3DNow!', 'SSE' and 'SSE2' opcodes, and has macro capability.

Author: OS/2 port by Dave Yeo. Free under 'Simplified' BSD License.

Get the latest info and files from the NASM website.

C / C++

CPR — Prints C files with tables of contents and more.

Package contains C source code.

Authors: originally by Paul Breslin / Human Computing Resources Corp. (1991); OS/2 port by Mentore Siesto, Italy (2011).

1991-01-08: v3.4.

Find cpr34-os2.zip (92.7K) in the Hobbes archive: dev/c.

CScope — Code analyzer.

cscope is an interactive, screen-oriented tool that allows the user to browse through C source files for specified elements of code.

By default, cscope examines the C (.c and .h), lex (.l), and yacc (.y) source files in the current directory. cscope may also be invoked for source files named on the command line. In either case, cscope searches the standard directories for #include files that it does not find in the current directory. cscope uses a symbol cross-reference, cscope.out by default, to locate functions, function calls, macros, variables, and preprocessor symbols in the files.

cscope builds the symbol cross-reference the first time it is used on the source files for the program being browsed. On a subsequent invocation, cscope rebuilds the cross-reference only if a source file has changed or the list of source files is different. When the cross-reference is rebuilt, the data for the unchanged files are copied from the old cross-reference, which makes rebuilding faster than the initial build.

Authors: originally by Joe Steffen / The Santa Cruz Operation (1998-2000); maintained by Hans-Bernhard Bröker, Neil Horman, Petr Sorfa (2001-2012); OS/2 port by Mentore Siesto, Italy (2015).

2012-08-04: v15.8a. Free under 'Modified' BSD License.

Go to the CScope website for tutorials, documentation and more.

Pmrintf — A printf debugging aid for many compilers.

PMRINTF.EXE is a debugging aid that allows for using printf (C), writeln (PASCAL), write (FORTRAN) statements from ANY Presentation Manager program.

Author: Stanisław Kozłowski, Poland (1993).

1993-07-11: Unnumbered release.

Find pmrintf.zip (9.5K) in the Hobbes archive: dev/c.

Professor Owl — Borland C++ OWL code generator.

"Professor Owl is a C++ Code generator for the Object Window Library. It is the fastest way to wrte OS/2 applcations using your Borland C++ compiler and the Object Window Library classes. Professor Owl generates skeleton applications, make files, and C++ code with headers. It is easy to add objects and classes with functions/events to your existing C++ files or new C++ files.

You push the buttons and let Professor Owl do the rest. It knows about hundreds of functions, parameters and classes that make up the Object Window Library™."

Author: Edward J. March Jr. (1996-2005).

2005-09-01: v1.08. Free under GPL 2.0 license.

Find powl108.zip (713.9K) in the Hobbes archive: dev/cplusplus.

Source Mapper — Make a useful map of your C-style source.

"With SM you can make a useful (human readable) map of your C-style source codes. You can generate a map of a single sourcefile, or you can have SM generate a map of a huge project that consists of many source files.

The map is especially useful when you need to document the source(s) of your project. I've also found it helpful when digging into sources written by others."

Package includes example source code and compiled binaries for OS/2 and DOS.

Author: Leif-Erik Larsen, Norway (1997).

1997-01-26: v0.99e.

Find sm099e.zip (270.9K) in the Hobbes archive: dev/c.

Java

Authors: Oracle Corporation (1995-2022); OS/2 port by InnoTek Systemberatung GmbH (2002-2005).

2004-07-09: v1.4.2_09-b63 - Last version for OS/2.

The Java website has downloads for other OSes and a page to check to see if Java is installed.

Lua

Lua is a powerful, fast, lightweight, embeddable scripting language. Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.

Authors: Roberto Ierusalimschy et al. (1994-2020); OS/2 ports by Cristiano Guadagnino, Italy (2002); Alexander Walz, Germany (2018).

2018-07-10: v5.3.5. Free under MIT License.

Go to the Lua homepage for downloads for recent versions, docs, source code and more.

Perl

GNU Perl — High level programming language, popular for text/data processing & Web CGI development.

From the Perl FAQ:

Perl is a high-level programming language with an eclectic heritage written by Larry Wall and a cast of thousands. It derives from the ubiquitous C programming language and to a lesser extent from sed, awk, the Unix shell, and at least a dozen other tools and languages. Perl's process, file, and text manipulation facilities make it particularly well-suited for tasks involving quick prototyping, system utilities, software tools, system management tasks, database access, graphical programming, networking, and world wide web programming. These strengths make it especially popular with system administrators and CGI script authors, but mathematicians, geneticists, journalists, and even managers also use Perl. Maybe you should, too.

Authors: Larry Wall (1989-2005), et al. OS/2 ports, 16-bit by Raymond Chen (1990), 32-bit by Andreas Kaiser, Germany (1994-1996), Kai-Uwe Rommel, Germany (1991), Paul Smedley, Australia (2012), Henry Sobotka (2003) and Ilya Zakharevich (1999-2003).

2012-01-05: v5.14.2 - Last version for OS/2.

Get more info & other files from:

Prolog

SWI-Prolog

"SWI-Prolog is a versatile implementation of the Prolog language. Although SWI-Prolog gained its popularity primarily in education, its development is mostly driven by the needs for application development. This is facilitated by a rich interface to other IT components by supporting many document types and (network) protocols as well as a comprehensive low-level interface to C that is the basis for high-level interfaces to C++, Java (bundled), C#, Python, etc (externally available). Data type extensions such as dicts and strings as well as full support for Unicode and unbounded integers simplify smooth exchange of data with other components."

Authors: University of Amsterdam et al. (1987-2022). OS/2 ports by Andreas Tönne, Germany (OS/2 2.0), Massimiliano Campagnoli, Italy (OS/2 WARP).

2001-08-20: v4.0.9 - Last version for OS/2.

Go to the SWI-Prolog website for downloads for recent versions (free under 'Simplified' BSD License), tutorials, docs and more.

Python

Python is a dynamic object-oriented programming language that can be used for many kinds of software development. It offers strong support for integration with other languages and tools, comes with extensive standard libraries, and can be learned in a few days. Many Python programmers report substantial productivity gains and feel the language encourages the development of higher quality, more maintainable code.

Authors: Guido van Rossum, Python Software Foundation et al. (1991-2021); EMX and VisualAge C++ ports by Andrew I MacIntyre, Australia (1997-2007), Jeff Rush (1999) and Andrew Zabolotny, Russia (2000); OS/2 port by Paul Smedley, Australia (2013).

2013-05-15: v2.7.5 - Last version for OS/2.

Go to the Python website for compiled versions for other OSes, wiki, bug tracker, source code and more.

REXX

Checkfunc — Mini-parser that finds all the variables and function calls in a program.

Checkfunc is a handy routine to help you develop correct and portable REXX code. It contains a mini-parser for REXX that finds all the variables and function calls in a program and lists them out for you to see. The output listing shows

  1. Three different classes of BIFs used and highlights any that are overriden by internal functions
  2. Internal functions
  3. Duplicate (and therefore unreachable) labels
  4. Rexxutil common functions
  5. Rexxutil OS/2 only functions
  6. Rexxutil Windows only functions
  7. Rexxutil Version 2 functions
  8. External functions and checks to see that the external function exists and that you have the case of it correctly in your program. This matters if you want to write code for Windows- and Unix-like systems. In a call like: x = myfunc(a,b,c), REXX takes the "myfunc" token, uppercases it to MYFUNC and looks for an internal label with the same name. If it fails to find one it will search externally for a MYFUNC.cmd or MYFUNC.rexx etc. On Windows and similar file systems where the case of a filename is not significant it doesn't matter if you func is called MYFUNC.REXX or MyFunc.ReXx, but on Unix it does. In general it is more efficient to put the name of the function call in 'quotes' and to get the case exactly right. If the name is in 'quotes' REXX will not spend time looking for an internal function first. So in general we prefer to write the above as: x = 'myfunc'(a,b,c). However, I have to admit that it makes for less readable code, and the performance gain is minimal on any modern system.
  9. External commands, such as system commands or application commands if your REXX program is an application macro.
  10. Simple variables
  11. Compound variables

Author: Toby Thurston (2001-2004).

2004-08-31: v10.4α.

Find checkfunc104.zip (16.6K) in the Hobbes archive: dev/rexx.

CodeAnalyzer — Map REXX program function and subroutine references.

"CodeAnalyzer is a generic engine for analyzing and formatting REXX code. This is a tool for the REXX programmer who works with large, complex programs. I release the program in the hope others might find it useful and in the hope others might contribute to its development."

Author: Doug Rickman / MSFC/NASA (2003).

2003-09-17: v0.07.

Find codeanalyzer007.zip (108.8K) in the Hobbes archive: dev/rexx.

DMrxWPS — REXX library that augments RexxUtil's WPS capabilities.

DMrxWPS.dll is a REXX library that provides a bridge between REXX scripts and some of the WPS related OS/2 API functions, referred to as "Win functions". Its main purpose is to facilitate the installation and the reinstallation or updating of WPS classes. The current version of DMrxWPS supports only three Win functions in addition to its own two "helper functions". One of the Win functions, WinQueryObjectPath, is only available on Warp or above. Calling its corresponding DMrxWPS function, WpsQueryObjectPath, will not work on version of OS/2 before Warp.

Many of the Win functions are available in the RexxUtil REXX library. DMrxWPS is intended to supplement RexxUtil, not replace it. The three Win functions included in DMrxWPS are WpsQueryObject, WpsQueryObjectPath, and WpsSetObjectData. The first two functions were chosen because they can be used together to obtain the path to a WPFileSystem derived template in the Templates folder without knowing the path of the Templates folder itself. This path can then be used to manipulate the template using functions from RexxUtil. The sample script DelTmplt.cmd (included with DMrxWPS) shows how this can be done."

Note: DMrxWPS.dll needs to be in one of the directories is specified in the LIBPATH statement of CONFIG.SYS. Requires OS/2 WARP.

Author: David MacMahon (1996).

1996-08-03: v1.0. Free for private use only.

Find dmrxwps1.zip (20.9K) in the Hobbes archive: dev/rexx.

DrDialog — Tool for programming PM REXX programs.

DrDialog is a very good tool to develop PM applications in REXX. You can use DrDialog to develop event driven REXX programs with PM GUI.

Author: David C. Morrill for IBM (1993-1994).

1994-04-10: v3.27. Free under IBM EWS license.

Find drdialog.zip (843.9K) in the Hobbes archive: dev/rexx.

DrDialog user control

"Progressbar control for DrDialog with setable colors, font and label. Fly over help for DrDialog with setable colors, font, delay, etc."

Package contains source code.

Author: Chris Wohlgemuth, Germany (2001-2004).

2004-11: v0.1.7. Free under 'Modified' BSD License.

Find DrDialogCtrl1.5_1.7.zip (151.8K) in the Hobbes archive: dev/rexx.

Enhanced Visual REXX

EVRexx is a package of external functions for REXX-programs. EVRexx enables the use of PM dialog-windows from your REXX-application. Source code included.

This package was inspired by VREXX, a similar package written by R.B.Lam of IBM T.J.Watson Research Center.

VREXX has a number of limitations which are overcome with EVRexx:

  • EVRexx can be used by more than one process at a time.
  • With EVRexx you can (and must) define your own dialog windows. Therefore it is possible to mix controls.
  • EVRexx allows modeless dialog windows.
  • Recovery of system resources in case of fatal (REXX-) errors.
  • Dialog windows are entered into the window list.

The price you pay for all the enhancements of EVRexx is that the package is not quite as easy to use as VREXX. In addition, the graphic capabilities of VREXX are not yet implemented in this release of EVRexx.

Author: Bernhard Bablok, Germany (1995).

1995-03-26: v1.00. Free under GPL 2.0 license.

Find evrexx.zip (146.9K) in the Hobbes archive: dev/rexx.

FastINI

This is a rexx DLL with example rexx code on how any rexx program that accesses INI files through SysIni calls are made much faster. This does not require your code to be rewritten just two small pieces of code to be inserted. I've seen a 280 times increase in INI update times! While the included example shows one way to incorporate FASTINI code, the recommended approach is to use the FASTINI.XH header file.

Package contains C source code.

Author: Dennis Bareis, Australia (1998).

1998-05-29: v98.148. Free under GPL 2.0 license.

Find FastINI-98_148.zip (48.4K) in the Hobbes archive: util/system.

FileRexx

"FileRexx allows REXX scripts to easily read/write binary files, as well as do device I/O that standard REXX doesn't support. Also, file sharing is controllable. Has additional line parsing features."

Author: Jeff Glatt (1995).

1995-09-22: v1.1.

Find filerx11.zip (100K) in the Hobbes archive: dev/rexx.

ICONRESOURCE

This package shows how to properly use the WPS object setting ICON(N)RESOURCE when refering to icons delivered in resource DLLs. It is also taking care for the differences between Warp 3 and Warp 4. The package includes a REXX sample cmd and source for a REXX-DLL, which is required for using ICONRESOURCE under WARP 3.

Author: Christian Langanke, Germany (2001).

2001-07-24: v1.00. Free under LGPL 2.0 license.

Find iconresource100.zip (21.8K) in the Hobbes archive: dev/rexx.

M Runtime — Rexx DLL for mouse support.

"High-level, easy-to-use, REXX mouse functions with usage example."

Author: André Doff, Netherlands (2011).

2011-06-12: v1.00β.

Find mruntime-1.00b.zip (51.7K) in the Hobbes archive: dev/rexx.

OLBOX — Listbox in Object REXX.

Author: Antal Koós, Hungary (1999).

1999-06-08: v1.00.

Find olbox100.zip (4.9K) in the Hobbes archive: dev/rexx.

PARSETOOL

Author: Dallas E. Legan II (2001).

2001-10-04: Unnumbered release. Free under 'Simplified' BSD License.

Find parsetool.zip (8.5K) in the Hobbes archive: util/file.

PYRxUtil

PYRxUtil library gives tools that are more universal than just only the access to API to perform the following operations:

  • keyboard input
  • screen input/output
  • input/output with files/pipes
  • redirection of standard files
  • using system clipboard
  • using dialog message boxes
  • obtaining general system and CPU information
  • management for processes, windows and tasks
  • system termination
  • power management

Author: Yury Pogrebnyak, Russia (2003).

2003-09-03: Unnumbered release.

Downloads available in the Hobbes archive in dev/rexx

  • In English - pyrxutil_20030903_en.zip (238.7K)
  • В Русский - pyrxutil_20030903_ru.zip (306.9K)

REXX2EXE — Generate EXE from CMD files.

Author: Dennis Bareis, Australia (1999).

1999-12-15: Unnumbered release.

Find rexx2exe.zip (202.2K) in the Hobbes archive: dev/rexx.

REXXCC — A tiny REXX compiler.

"REXXCC "compiles" an OS/2 REXX program by substituting the source code with mostly any text. This is possible because the OS/2 REXX interpreter stores a tokenized copy of each executed REXX program in the EAs of the program. If you execute an OS/2 REXX program, the OS/2 REXX interpreter first checks if the tokenized copy in the EAs is still valid and, if so, executes the tokenized copy and ignores the source code.

REXXCC "compresses" an OS/2 REXX program by deleting mostly all superfluous whitespaces, all linefeeds and all comments from the sourcefile."

Author: Bernd Schemmer, Germany (1994-1997).

1997-12-01: v3.21.

Find rc321.zip (228.7K) in the Hobbes archive: dev/rexx.

Rexx Dialog — Use PM dialogs in REXX.

Rexx Dialog allows an OS/2 REXX script to open multiple PM windows with list and drop boxes, spin/push/radio/checkmark buttons, sliders, menus, etc. Add a full PM (ie, visual) interface to a REXX script. Also, easily add a visual REXX interface to a C program. Much smaller than full-blown commercial Visual REXX packages, and it's free!

Package contains source code.

Author: Jeff Glatt (1995).

1995-08-08: v1.1.

Find rxdlg11.zip (214.5K) in the Hobbes archive: dev/rexx.

REXX/DW — Cross-platform GUI for REXX.

"Rexx/DW provides REXX programmers with a lightweight, cross-platform G package. Rexx/DW uses Dynamic Windows to provide the cross-platform GUI that runs natively on Windows, OS/2 and GTK."

Author: Mark Hessling, Australia (1997-2015).

2015-05-28: v2.1. Free under GPL 2.0 license.

Go to the Rexx/DW website for more info.

REXX_EXE — REXX to OS/2 executable wrapper.

"This package has two programs to wrap a rexx program in either a VIO (commandline) or PM (presentation manager) executable. You probably know some other rexx → exe converters like VXRexx, Vispro, REXX2EXE,..."

Features of this implementation:

  • build from assembler source: small size - comes close or is below the size of the wrapped rexx, less processing overhead and memory usage
  • turns the rexx scripts into plain executable resources - no need to compress the resources since the OS built-in page compression can be used. Use LxLite to squeeze the last byte from the executable.. I also see no need to encrypt a rexx script. Since there is nothing 'compiled' or tokenized, the rexx program should be portable between different OS/2 rexx interpreter versions and lines.

Package includes test programs.

Author: Veit Kannegieser, Germany (2006).

2006-04-10: Unnumbered release.

Find rexx_exe.zip (19.8K) in the Hobbes archive: dev/rexx.

RexxUni — Unicode API.

RexxUni provides a part of Unicode API for Rexx programs.

Package contains Pascal source code.

Author: Max Alekseyev, Russia (2001-2002).

2002-01-09: v2.0.

Find rexxuni20.zip (10.5K) in the Hobbes archive: dev/rexx.

REXX/Wrapper

"Rexx/Wrapper is a tool that wraps a Rexx source file, or tokenised code into an executable program. The Rexx source code can be optionally compressed and encoded to ensure that the original Rexx code cannot be viewed (unless you have the original encryption key)."

Author: Mark Hessling, Australia (2002-2006).

2006-09-21: v2.4. Free under GPL 2.0 license.

Go to the REXX/Wrapper website for docs.

ROX — REXX function package for OO programming.

"Rox is a function package for REXX that allows object-oriented programming in REXX."

Author: Patrick J. Mueller for IBM (1994).

1994-04-14: v1.8. Free under IBM EWS license.

Find rox.zip (94.6K) in the Hobbes archive: dev/rexx.

RxD — A REXX source level debugger.

RxD is a Presentation Manager source level debugger for REXX programs. It has the following features:

  • 'single step' through a REXX program
  • set breakpoints on lines in a REXX program
  • 'watch' variables
  • customizable font and colors
  • save window sizes and positions
  • console window displays input and output from program

The debugger takes the name of a REXX macro and parameters as its parameters (for example "rxd myprog parm1"). When started, RxD will display the source file in a PM window. Two other windows are available; a watch window to display variables and their values, and a console window to display input and output from the macro.

All windows used by RxD are multi-line edit controls - you can copy to the clipboard from them, and all the usual behaviours associated with multi-line edit controls are available.

On-line help is available through standard PM help.

Note that RxD is an older 16-bit app and, according to the author, there may be some errors or unexpected conditions using it on 32-bit OS/2 (like WARP).

Author: Patrick J. Mueller for IBM (1993).

1993-01-29: v1.42. Free under IBM EWS license.

Find rxd.zip (131.4K) in the Hobbes archive: dev/rexx.

RxError — Disable hard error popups in REXX.

"This REXX extension DLL allows one to toggle the hard error state of OS/2.

By disabling hard errors, one can avoid interruptions by OS/2 when a hardware device is in a not ready state, and other hard error pop-ups.

For example, if you attempt to change to the root directory of a CD drive that has a music CD in it, or no CD at all, OS/2 normally pops up a box saying that the drive isn't ready, and offers you a chance to retry, return an error code, or end the current program. This can be annoying, and it can also be fatal for automated tasks.

With hard errors disabled, this pop-up will not occur, and the directory() function will merely return a null string, indicating failure. The same is true with invalid drives."

Package includes C source code.

Author: Mike Ruskai (1999).

1999-09-01: Unnumbered release.

Find rxerror.zip (13.1K) in the Hobbes archive: dev/rexx.

rxGPIB — GPIB (IEEE488) control with REXX.

"rxGPIB is a REXX-callable DLL that provides GPIB (IEEE488) access to OS/2 Warp 3.0 and later REXX programs. With rxGPIB you can easily control instruments and perform data acquisition using REXX. rxGPIB is ideal for prototyping GPIB software and control instruments in a lab environment."

Author: Armin Schwarz / Lone Peak Automation, LLC (1999).

1999-04-21: v1.00.

Find rxgpib.zip (24.1K) in the Hobbes archive: dev/rexx.

RxMsgBox — Replacement for RxMessageBox.

This is a simple replacement for RxMessageBox.

Author: André Doff, Netherlands (2017).

2017-12-29: v1.0β.

Find rxmsgbox10.zip (23.5K) in the Hobbes archive: dev/rexx.

rxPortIO — Hardware I/O read and write services.

"rxPortIO is a REXX-callable DLL that provides hardware I/O read and write services to OS/2 Warp 3.0 and later REXX programs. With rxPortIO you can easily access hardware like digital I/O, data acquisition and other boards that require I/O read and writes. rxPortIO is ideal for prototyping hardware for both, the Professional and Hobbyists."

Author: Armin Schwarz / Lone Peak Automation, LLC (1998).

1998-06-22: v1.01.

Find rxportio.zip (132.9K) in the Hobbes archive: dev/rexx.

RXU

Rich set of Rexx functions which expose most of the OS/2 API set to Rexx programs (memory management/access, semaphores, pipes, queues, module handling, threading/tasking, system information, i/o, devioctl, etc.), as well as providing many functions which aid in Rexx programming (variable pool access, "expose" variables across external function calls, queue manipulation, macrospace management, etc.).

Package includes sample Rexx programs.

Authors: Dave Boll, Walter Metcalf (1996).

1996-05-02: v1a.

Find rxu1a.zip (201.0K) in the Hobbes archive: dev/rexx.

RXWTITLE — Manipulate window switchlist title from a rexx program. Requires EMX.

RXWTITLE contains two rexx functions you can use in your rexx scripts to manipulate the title that appears in the switchlist (window list) while your script is running. It can be used in long running scripts to indicate progress of the job.

Package contains C source code.

Author: Michel Such, France (2001).

2001-12-05: v1.2.

Find rxwtitle_12.zip (6.6K) in the Hobbes archive: dev/rexx.

spUtils

Rexx extension library which provides functions to access the registry, PM API functions for manipulation window controls, and much more.

Package contains source code.

Author: Tim Mecking, Germany (2004).

2004-02-15: v0.1. Free under MIT License.

Find spUtils_0-1.zip (368.7K) in the Hobbes archive: dev/rexx.

Visual REXX (VREXX)

"VREXX is Visual REXX - a new way for OS/2 users to create their own Presentation Manager (PM) programs using REXX! VREXX provides users with a set of functions that can be called from REXX procedures. These functions open and close standard PM windows, providing programmable control over the appearance and positioning of the windows. Dialog box functions allow file selection, display of messages, entering numbers or text strings, and making single or multiple selections through radiobutton, checkbox or listbox controls. Table, Color and font selection dialogs are also available. And, graphics functions for setting pixels, drawing markers, lines, polygons, splines, arcs, circles and text (in multiple fonts) are included."

Author: Richard B. Lam for IBM (1992-1994).

1994-01-19: v1.1. Free under IBM EWS license.

Find vrexx.zip (182.9K) in the Hobbes archive: dev/rexx.

XML

Expat

Expat is a stream-oriented XML parser. This means that you register handlers with the parser before starting the parse. These handlers are called when the parser discovers the associated structures in the document being parsed. A start tag is an example of the kind of structures for which you may register handlers.

Authors: James Clark, Clark Cooper et al. (2000-2022); OS/2 port by Ilya Zakharevich (2003).

2003-01-28: v1.95.6 - Last version for OS/2. Free under MIT License.

Go to the Expat website for docs, programs and libraries using it, downloads for other OSes and more.

gX — XML parser and editor.

Author: Gregory Bourassa (2003).

2003-02-05: v0.3.

Find gX-0-3.zip (652.8K) in the Hobbes archive: apps/internet/www/util.

libxml2 — XML parser and C library.

A multi-platform XML parser and related utilities written in C that can be utilised as a library or compiled as an external utility.

Authors: Daniel Veillard et al. (1997-2020); OS/2 ports by Myung-Hun Ko, South Korea (2010), Vincenzo Venuto, Italy (2002), Ilya Zakharevich (2003).

2010-11-04: v2.7.8 - Last version for OS/2. Free under MIT License.

Find downloads for other OSes, news, mailing list and more in the libxml2 page. Use the repository in the GitLab GNOME instance to report bugs or suggest new features.

Other Tools

apptype — Determine executable file type.

Package contains C source code.

Author: Eberhard Mattes, Germany (1993).

1993-06-11: Unnumbered release.

Find apptype.zip (9.7K) in the Hobbes archive: util/file.

AskIt/2

AskIt is a utility that will allow you to enter one of the user-defined selections, and exit at a unique errorlevel. AskIt includes the ability to timeout after a user-defined length.

Author: Ian William Robertson (1993).

1993-12-11: v1.00.

Find askit100.zip (23.7K) in the Hobbes archive: util/batch.

AUTOS2

AUTOS2 has been written to perform automation on the OS/2 PM Desktop.

This automation can only be performed on PM framed window objects and sub classes.

Once a framed window has been identified (or not) AUTOS2 can be used to navigate to a sub class (i.e. an EntryField) and perform actions on it, such as issue keystrokes. Further these activities can be Scheduled to occur at a preset Date/Time/Interval to enable "hands off" automation.

This means a task or set of tasks may be performed overnight ready for the next days production activities. Further a monitoring task can be set up to check the existence of a PM window and then take appropriate action.

These tasks could be the nightly backup or data download. There are two main entities within which to store these required tasks.

Author: Robin Whitlock / Squiredeck (1995-2003).

1996-05-20: v1.2.

Find autos2.zip (524.5K) in the Hobbes archive: util/batch.

Dialog — Script-driven curses widgets.

"Dialog is a program that will let you to present a variety of questions or display messages using dialog boxes from a shell script."

Authors: originally by Savio Lam (1993-1994), maintained by Thomas E. Dickey (1997-2021); OS/2 port by Patrick Ash (2002).

2002-05-19: v0.9β - Last version for OS/2. Free under LGPL 2.1 license.

Go to the Dialog website for version changes, downloads for other OSes, documentation and more.

DRAGINFO — Drag & drop simulation sample.

"This program provides information for testing and debugging drag-and-drop applications. When an object is dragged from this program's window, the window shows the messages received from the target. Additionally, the Draginfo and Dragitem-structures that are used to specify the requested operation can be configured on screen. It is also possible to select the desired Drag-API (DrgDrag or DrgDragFiles). This program only simulates the dragging; no explicit rendering is performed (yet)."

Package contains C source code.

Author: Christian Sell, Germany (1993).

1993-02-14: Unnumbered release. Public Domain.

Find dragin.zip (12.5K) in the Hobbes archive: dev/wps.

GCC (GNU Compiler Collection)

Authors: Richard Stallman et al. (1988-2021); OS/2 ports by Eberhard Mattes, Germany (1998), Mikuláš Patočka, Czech Republic (2002), Paul Smedley, Australia, Andrew Zabolotny, Russia (1999).

2019-02-22: v8.3.0 - Last version for OS/2. Free under GPL 3.0 license.

Go to the GCC website for downloads for other OSes, source code, wiki and more.

Glade — GTK user interface builder.

"Glade is a RAD tool to enable quick & easy development of user interfaces for the GTK 3 toolkit and the GNOME desktop environment. The user interfaces designed in Glade are saved as XML and these can be loaded by applications dynamically as needed by using GtkBuilder or used directly to define a new GtkWidget derived object class using Gtk new template feature. By using GtkBuilder, Glade XML files can be used in numerous programming languages including C, C++, C#, Vala, Java, Perl, Python, and others."

Authors: originally by Ximian, Inc., Joaquín Cuenca Abela, Paolo Borelli (2001-2006); maintained by Tristan Van Berkom, Alberto Fanjul Alonso, Juan Pablo Ugarte (2004-2021); OS/2 port by Asbjørn Pettersen, Norway (1999).

1999: v0.5.3 - Last version for OS/2. Free under GPL 2.0 license.

Go to the Glade website for downloads for other OSes, source code and more.

HCONSOLE

"HCONSOLE is a little text display tool for the OS/2 Presentation manager, developed for debugging PM-applications by showing their standard output.

It can be used to display static text files, texts dynamically appended to files and data streams."

Author: Heiko Hellweg, Germany (1998).

1998-01-24: Unnumbered release.

Find hconsole.zip (56.2K) in the Hobbes archive: dev/util.

HexEdit/2 — Binary file editor.

"With HexEdit/2, you can view and edit files in single or multibyte octal, decimal, or hexadecimal binary representation. You can resize an existing file or allocate a new file from scratch, and perform search and replace functions forward or backward through the file. HexEdit/2 provides a full help system as well as on-line documentation in the VIEW-compatible (.INF) format."

Author: Bennett C. Baker / B::Ware (1994-1996).

1996-01-08: v1.04. Free under GPL 3.0 license.

Downloads available in the Hobbes archive

  • Original pay shareware program - hexedit2.zip (109.1K)
  • Program and source - HexEdit2_1-04.zip (2.9MB)

OS/2 System Queues Analyzer

Analyzes and reports the memory used by OS/2 system queues, and optionally displays the queues, queue links, queue elements, and/or queue static data.

Author: David E. Blaschke / IBM Austin (1999-2003).

2003-06-04: v2.45.05.

Find os2sysq.zip (36.6K) in the Hobbes archive: dev/util.

PAMAKE

Notes: Included with Roundhill's PANEL Plus II screen management product.

Package contains C source code.

Author: John Roundhill / Roundhill Computer Systems Limited, UK (1988-1989).

1989-09-30: v1.80.

Find pamake18.zip (63.4K) in the Hobbes archive: dev/util.

PHYMEM — Sample device driver which does I/O to memory.

"Here is a sample device driver which does I/O to physical memory, along with a sample program which calls it.

This driver performs little useful purpose except to illustrate some basic principles of physical memory access under OS/2."

Package contains C source code.

Author: Chuck M. Grandgent (1989).

1989-08-14: Unnumbered release.

Find phymem.zip (7.1K) in the Hobbes archive: dev/drivers.

PM Developer — An integrated programming shell for PM.

"PM Developer provides a presentation manager interface for building and testing programs."

Author: Dan Holt (1991).

1991-10-03: v2.0.

Find pmdvl2.zip (37.9K) in the Hobbes archive: dev/util.

PMM — Tool to show the message stream in a PM application.

"PMM is a tool to show the message stream in a Presentation Manager application. It is designed to be linked to an application under development, and reports on the message stream relative to that application."

Package contains C source code.

Author: J. Salvador Amorós, Spain (1999).

1999-03-30: v1.00.

Find pmm100.zip (220.3K) in the Hobbes archive: dev/util.

PM Make

"Probably the most comprehensive PM based make program available, this product performs the core functions of making, backup and restore, as well as being totally tools independent.

PM Make can manage projects spread over directories, split into myriad subdirectories, numerous output files including several .exe, .inf, .hlp etc. in one make. PM Make provides plugin dll's, push button control of tools options, library selection, selective backup, restore and more.

PM Make is multithreaded and never gives you a wait pointer. You can safely run multiple instances of PM Make. In conjunction with Program Editor you can stop on errors and fix bugs on the fly. Small memory footprint.

This version uses multi disk archive management to allow the correct updating of archives over multiple disks, even if the size or number of files change."

Author: Peter Koller, France (1995-2003).

2003-01-18: v1.34.

Find mamk134.zip (427.3K) in the Hobbes archive: dev/util.

PMPrintf — Debugger with PM viewer & programmer interfaces.

Authors: Dennis Bareis, Australia (2009), Andreas Buchinger, Austria (2009-2018), originally by Michael F. Cowlishaw for IBM (1992-1993).

2018-11-04: v2.60.

Find PMPrintf260.zip (219.2K) in the Hobbes archive: dev/util.

PMSpy

"PMSpy allows you to spy:

  1. messages that are posted to windows through a message queue
  2. messages that are sent directly to windows

Package contains source code.

Authors: Jürg von Känel and Steve M. Diering for IBM (1993).

1993-07-23: v1.1. Free under IBM EWS license.

Find PMSpy_1-1.zip (344.0K) in the Hobbes archive: util/system.

QDevelop — Development environment.

"QDevelop is a development environment entirely dedicated to Qt4, which requires Qt4, gcc under Linux or MinGW under Windows, possibly gdb for program debugging and ctags for code completion.

QDevelop is not a Kdevelop like or reduced. It's an independent IDE dedicated to Qt and is totally independent of KDevelop. Less complete, but faster, light and especially multi-platforms. QDevelop and KDevelop have different code sources.

Features

  • Cross Platform: Supports Linux, Windows 2000/XP/Vista, macOS and FreeBSD
  • Reading and writing project files (with some small restrictions)
  • A powerful editor with code completion, syntax highlighting, bookmarks, auto-brackets, auto-indentation, auto-save before build, line numbers and selection margin.
  • A class browser which allows the programmer to browse, navigate, or visualize the structure of classes, members and functions.
  • Debugging with gdb. Toggle breakpoints by click in the line number on editor or by right click. Local variables are automatically displayed when program stops at breakpoint.
  • Independent build for each projects. Only modified projects are rebuild.

Authors: Jean-Luc Biord, France (2006-2010); OS/2 port by Salvador Parra Camacho, Spain (2011).

2010-04-17: v0.38. Free under GPL 2.0 license.

Find qdevelop038-os2.zip (1.8MB) in the Hobbes archive: apps/editors.

Resource Manager

"The OS/2 Resource Manager (RESMGR) is an application development tool that lets you manage application resources, such as messages, strings, pointers, menus, and dialog boxes."

Package contains source code.

Author: Martin Lafaix, France (1994-2002).

2002-04-12: v0.06.000.

Find resmgr.zip (58.2K) in the Hobbes archive: dev/util. The program is included with every release of eComStation.

SDFDump

"This is a quick-and-dirty dumping facility for SDF (Structure Definition Files). Its main goal is to provide a human-readable version of SDF which may be essential to the system-level debugging and communicating with kernel."

Package contains C source code.

Author: Andrew A. Belov, Russia (2001).

2001-05-20: Unnumbered release.

Find sdfdump.zip (7.8K) in the Hobbes archive: dev/util.

Simple DirectMedia Layer

"Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and man Humble Bundle games."

Authors: Sam Lantinga et al. (1997-2021); OS/2 ports by Takashi Ebisawa, Japan (2009); Andrey Vasilkin, Russia (2014-2016).

2016-01-02: v2.0.4 - Last version for OS/2. Free under zlib license.

Go to the SDL website for downloads for other OSes, source code, mailing lists, wiki, bindings for other languages and more.

Source Debugger — PL/X-86 and C application debugger.

"SD386 is a debugger for PL/X-86 and C applications running under OS/2 2.x. SD386 can debug 32-bit, 16-bit, and mixed 16- and 32-bit applications. SD386 is designed to speed up PL/X-86 and/or C program development."

Package contains C source code.

Author: IBM (1988-1996).

1996-08-23: v5.0. For IBM internal use only.

Find sd386v50.zip (1.1MB) in the Hobbes archive: dev/util.

Trac — Software development tracking system.

"Tracker is designed to monitor large software development projects. It allows to see quickly who is working on what piece, when they were assigned the task, when it is due to be completed, and when it is actually completed."

Author: Paul Beverly (1993).

1993-01-14: v99β.

Find trac_099.zip (92.2K) in the Hobbes archive: dev/util.

Tracer — Debugging program.

Package contains C source code.

Author: Daniel Hildebrand (1990).

1990-03-19: Unnumbered release.

Find tracer10.zip (23.1K) in the Hobbes archive: dev/util.

Universal Resource Editor

"The Universal Resource Editor is a graphical design environment that allows application programmers to design Presentation Manager (PM) applications complete with windows, menus, and dialog boxes, quickly and easily. It also creates the required resource files."

Author: Prominare Inc. (1993-1998).

1998-03-05: v1.15.

Downloads available in the Hobbes archive in dev/pm

  • Base program - ure115.zip (2.9MB)
  • Fix Kit - urefix.zip (1.7MB)

WPS Toolkit

"The Workplace Shell Toolkit provides helper functions for easier creation of new Workplace Shell Classes. Many functions are also useful for plain PM or VIO programming."

Author: Christian Langanke, Germany (2008).

2008-10-16: v1.70. Free under LGPL 2.1 license.

Find wpstk170.zip (1.4MB) in the Hobbes archive: dev/wps. Netlabs' FTP server has the same archive.

XRay — a PM window peeker.

"Xray is an OS/2 programmers utility to display process and window information for the window under the mouse pointer."

Package contains C source code.

Author: Michael Shillingford / CodeSmith Software, Canada (1996-1997).

1996-12-28: v1.0.

Find xray10.zip (55.5K) in the Hobbes archive: util/wps.