David's Software Download Center

I have written many, many programs for my own personal use. Some of the programs I think may be useful to others are listed on this page. You are free to download and use any of this software if you feel it suits your purpose. The author is not responsible in any way for any problem caused by this software, whether it is used correctly or not.

If you like my software but feel that an additional feature would make it more useful for you, please send me an e-mail and tell me about it! All of these programs can be safely executed with no arguments and the program will display version and help information.

Unless otherwise specified, all software on this page was compiled to run on OS/2 and eCS. Updates to these programs are posted on this page before they are uploaded to Hobbes. Some of these programs are never uploaded to Hobbes.


addtofile - V1.01 - Program for use in Makefiles for building programs (Rexx) (addtofile-1.01.zip 2K) 17-Sep-2016.

Helps create version headers, linker command files, etc. For use in Makefiles for building programs.

cable - V1.1 - Executes a program if ethernet cable is disconnected (Cmd) (cable11.zip 26K) 05-Oct-2010.

Executes a program if your ethernet cable is disconnected. Based on CABLE 1.0 (c) 2006 Yuri Dario.

cfgcheck - V1.2 - Check your CONFIG.SYS (Cmd) (cfgcheck-1.2.zip 18K) 06-Dec-2016.

Checks a CONFIG.SYS file for errors. This is a work in progress. New checks will be added as they are needed. Some checks may not be exactly correct but should give you an idea when things are not as they should be.

testlog log files are automatically detected so -l is not normally needed. -u modifies -o so it only works if -o is used.

dbgbrk - V0.01 - Debug Breakpoint (Driver) (dbgbrk-0.01.zip 1K) 15-Jul-2012.

Executes an int 3 to get kernel debugger control.

dbghlp - V1.01 - Debug Helper (Driver) (dbghlp-1.01.zip 6K) 10-Oct-2016.

Can be used with a DEVICE= or a BASEDEV= statement in your CONFIG.SYS to perform useful functions to help debug a system.

Drv16 - V20161010 - Device Driver Development Kit for 16 Bit Drivers (Drv16-20161010.zip 56K) 10-Oct-2016.

A development kit to make developing new device drivers very easy. This kit contains header files and a library that contains all of the system related things necessary to build a device driver on OS/2. The only thing you need to focus on is your unique code for your device. Then simply link to the library and you can start testing your code. Examples of working drivers are included in the kit. Some of the MultiMac drivers are based on this kit.

Drv32 - V20161227 - Device Driver Development Kit for 32 Bit Drivers (Drv32-20161227.zip 89K) 27-Dec-2016.

A development kit to make developing new device drivers very easy. This kit contains header files and a library that contains all of the system related interfaces and thunking modules necessary to build a 32 bit device driver on OS/2. The only thing you need to focus on is your unique code for your device. Then simply link to the library and you can start testing your code. Examples of working drivers are included in the kit. Some of the Multimac drivers are based on this kit.

dyndnsupd - V1.0 - Updates a dynamic host on DYNDNS.ORG (Cmd) (dyndnsupd10.zip 17K) 17-Sep-2009.

Gets the external IP address, checks it against the given host, and updates dyndns.org if necessary. Information on the last 4 hosts are saved in OS2.INI. The following options are fixed: system=dyndns, wildcard=NOCHG, mx=NOCHG, backmx=NO

This is a single execution updater, not a stay-resident looping program. It is intended to be executed once daily as needed and is not intended to be included in a program loop. This program will not permit DNS or IP lookups more frequently than 10 minutes. To prevent a host timeout, a host update will be performed after 28 days even if not necessary.

ddupdate - V1.1 - Updates a dynamic host on DNSdynamic.org (Cmd) (ddupdate-1.1.zip 21K) 29-May-2014.

Gets the external IP address, checks it against the given host, and updates DNSdynamic.org if necessary. Information on the last 4 hosts are saved in OS2.INI.

This is a single execution updater, not a stay-resident looping program. It is intended to be executed once daily as needed and is not intended to be included in a program loop. This program will not permit DNS or IP lookups more frequently than 10 minutes.

dupfinder - V1.0 - Duplicate Finder for PATH and LIBPATH (Cmd) (dupfinder-1.0.zip 18K) 10-Mar-2016.

Finds duplicate files in PATH and LIBPATH and others. The default path is PATH taken from the environment variable PATH. For PATH the default search file mask is *.exe. For LIBPATH the default search file mask is *.dll. Dn = Delete duplicate n. Cn = Copy duplice n to all others.

eaclean - V1.1 - EA Cleaner Utility (Cmd) (eaclean-1.1.zip 14K) 18-Apr-2016.

Displays and cleans EA litter from files. -c or -c1 = clean ea litter only Removes UID, GID, MODE, INO, RDEV, GEN, FLAGS EAs. Also removes MR.ED.TXTPOS EA. -c2 = same as -c1 plus remove unnecessary .LONGNAME EAs -c3 = same as -c2 plus remove mismatched .LONGNAME EAs

fsync - V1.3 - File Syncronizer (Cmd) (fsync13.zip 26K) 12-Apr-2010.

Keeps your files syncronized between two systems by tracking changes and transferring changes via your choice of removeable media. commands: TO = copy files to drive FROM = copy files from drive MAKE = make list files on drive

netio - V1.33 - Network Throughput Benchmark (Cmd) (netio-1.33.zip 134K) 30-May-2016.

Updated version of Kai-Uwe Rommel's netio program.

pcicfgwr - V0.01 - PCI Configuration Write (Driver) (pcicfgwr-0.01.zip 2K) 07-Sep-2012.

Writes values to PCI Configuration space.

showargs - V1.0 - Show Command Arguements (Cmd) (showargs-1.0.zip 14K) 06-Sep-2010.

syncdir - V1.8 - Syncronize Directories (Cmd) (syncdir-1.8.zip 17K) 04-Feb-2016.

Syncronizes one directory to another based on the specified options. The TargetDirectory must already exist. If the specified Target is only a drive (ie. 'c:'), then the entire path on the Target drive is assumed to be the same as on the Source drive. No files are added to the Target unless the -a switch is used. No files are deleted from the Target unless the -d switch is used. No files are replaced in the Target unless the -r switch is used. By default, -r only copies files if the file in the Source is newer than the file in the Target. Files are copied if they are different, even if the file in the Target is newer if -c is used. This program only compares file sizes and dates, and does not compare file contents. Supports files greater than 2GB.

syncnist - V1.2 - Syncronize clock with NIST server (Cmd) (syncnist12.zip 20K) 08-Mar-2012.

Syncnist sets the local clock from the NIST time server using the Daytime Protcol (RFC867), and does NOT rely on (or use) the TZ environment variable. You must use the -s and -d arguments to specify your offset in hours (or minutes) from UCT. For each of the -s and -d options, n specifies the offset from UTC in hours or minutes, and str specifies the TZ string to be used if modifying CONFIG.SYS. If you do not use daylight time, simply omit the -d argument. Information for when daylight time starts and ends is provided by the time server. For example, someone in California would use 'syncnist -s8 -d7', or 'syncnist -s8,PST8 -d7,PDT7'. CONFIG.SYS will only be changed if the appropriate string is specified and if a change is necessary. The TZ environment variable is checked to see if a change is needed before checking CONFIG.SYS. At least one of -s or -d must be specified. The default server is time.nist.gov.

testlog - V2.18 - Create a log file to submit with a bug report (Rexx) (testlog-2.18.zip 6K) 27-Feb-2017.

Create a log file that you can submit with your test results when reporting a problem with a driver. This is a REXX script which collects all the data about your system and the driver under test, and puts it into a single log file with appropriate dividers between the sections in the file. The script also zips the log file into a zip file so that you have a smaller file to attach to an email. Currently collects data for uniaud, genmac, acpi, MultiMac, panorama, and usb. Other drivers may be added in the future.