Duncan Murdoch's Programs
I am an amateur (and sometimes professional) programmer, and have written a
large number of freeware and shareware programs. I tend to write programs for my
own use first; if I think other people might like them, then I'll polish them up
a bit and either give them away or sell them.
The programs that I write fall into 4 categories:
- General Utilities
- Programming Support
- Statistics and Probability
- Obsolete (?) Files
Some of these programs are free, some are shareware, a few are in the public
domain.
- DOSLFNBK Version 2.7
- Backs up Win95 long filenames from DOS or a DOS window. For more details,
click here.
- LFNSORT Version 1.7
- Sort filenames on your disk. Sort order may be by name, extension,
date/time of creation, modification or last access, file size, or custom
order. For more details, click here.
- CACHEMON.ZIP
- TSR disk cache monitor. (I wrote this in 1990, so it probably isn't worth
downloading for the original purpose, but it includes full source code and
so might be useful to someone writing their own monitor.) Free for personal
use.
12255 bytes.
- CLEAN.ZIP
- Move the floppy disk drive heads around to clean them.
8434 bytes.
- ECHON.ZIP
- Echo with no CR/LF. Sometimes useful in a batch file.
825 bytes.
- LFNDEL.ZIP
- Remove long filenames and attributes. Some Win95 long filenames are
redundant, and some long filenames or attributes need to be removed for
compatibility with older software. This little utility can do both more
reliably than RENAME or ATTRIB. Available only on the bonus
disk.
25048 bytes.
- LFNEXIST.ZIP
- Checks for existence of files by name; sets return code (batch file
ERRORLEVEL) depending on results. The name(s) may be specified in either short
or long form. Runs in both DOS and Windows on FAT file systems. In verbose
mode, shows the long and short pathnames to any file. Available only on the
bonus disk.
21123 bytes.
- LOGGER.ZIP
- Log program arguments and I/O to a file. Sometimes useful when debugging
setups where one program calls another, and you want to find out what
calling sequence was used.
6210 bytes.
- SHOWF251.ZIP
- Graphical display of files on disk. Shows the physical locations of your
files, and indicates how fragmented your disk is. Badly in need of an
update, it doesn't handle all large modern disks.
31013 bytes.
- ShowFAT 3
- Here at last, the long-awaited update to ShowFAT! This is a Win32 version
of the once-popular ShowFAT utility, which shows you the layout of files on
your disk. Click here for more details.
- TRASH.ZIP
- Detects trashed registers. Some old DOS programs will stomp on the 32 bit
registers of the 386 and higher chips; this little program will detect them,
to help track down those nasty bugs.
22500 bytes.
- WINDV10.ZIP
- DesqView-like Mark/Transfer in Windows DOS box.
28960 bytes.
Most of these files have something to do with Turbo/Borland Pascal or
Delphi; some are more general.
- DJMDebug version 0.5
- Debug exceptions in Delphi programs. Uses TD32 debug information to resolve
addresses into symbolic names and file locations.
53738 bytes.
- DumpProg version 2.1
- Disassemble 16 bit .EXEs, both real mode and protected. Will make use of a
.MAP file to resolve addresses into symbolic names.
46944 bytes.
- Version 3.0, with support for 32 bit executables (Win32's PE format) and
Turbo Debugger symbolic information, is available on the bonus
disk.
- BGIRES.ZIP
- Make Turbo Pascal BGI files into resources. This saves a few kilobytes of
memory. Free.
8566 bytes.
- BP7BUGS2.ZIP
- A list of bugs and surprises in Borland Pascal version 7, with some
workarounds. Free. See the TP 6 list too!
17944 bytes.
- CLEARMEM.ZIP
- Clear unused Turbo Pascal memory. Useful for debugging, since it makes bugs
repeatable.
1713 bytes.
- CLOSEBP.ZIP
- Close orphaned BP.EXE. Sometimes a Win 3.x DOS session will crash, leaving
the BP.EXE file open, so you can't run it again without rebooting. This
public domain program closes BP.EXE. Source code included.
5861
bytes.
- ERR87_13.ZIP
- Turbo Pascal error 207 diagnostic unit. Error 207 can come from a large
number of different causes; this attempts to figure out which one.
13551 bytes.
- FINDHELP.ZIP
- Search .TPH files. Borland Pascal puts help in .TPH files. This little
utility (available only on the bonus disk) lets you
search them.
14561 bytes.
- FULLDB13.ZIP
- Full debug info for Turbo Pascal 6. Adds line number information from your
.OBJ files to .TPU files, so the integrated debugger can single step through
them. It was such a good idea, Borland did it themselves in version 7!
14180 bytes.
- GLUE.ZIP
- "Glues" a new stub onto a 16 bit protected mode .EXE file. Works
with Windows 3.x and OS/2 2.x files. Available on the bonus
disk: version 2.0, which works on Win32 PE format executables.
14180 bytes.
- HLP2KW12.ZIP
- Builds Delphi .KWF file from a .HLP file. This helps you link foreign help
files into the Delphi help system.
17708 bytes.
- HLP2TPH.ZIP
- Convert TurboPower .HLP to Borland TPH.
33906 bytes.
- INTRFC4.ZIP
- Dumps interface for TP 4 .TPU. Useful when the unit isn't documented
properly, or when you're just curious.
20332 bytes.
- INTRFC5.ZIP
- Incomplete TP 5.0 .TPU dumper. I partially updated the version 4 dumper,
but didn't get finished before version 5.5 came out.
33581 bytes.
- INTRFC55.ZIP
- TP 5.5 TPU dumper. Besides the interface section, this will dump most of
the file.
47335 bytes.
- INTRFC63.ZIP
- TP 6.0 TPU dumper. Another TPU dumper, for another version.
56214
bytes.
- INTRFC70.ZIP
- TP/BP 7.0 .TPU dumper. And another --- this one written by Milan Dadok,
based on my version 6 dumper.
65940 bytes.
- LASTL114.ZIP
- Last minute checks of TP/BP/Delphi 1.0 programs. Looks for the things you
forgot: bad compiler options, etc.
30612 bytes.
- OPENFIL5.ZIP
- Get list of open files from DOS. This Turbo Pascal unit is useful for
tracking down bugs in programs that forget to close their files.
5786 bytes.
- PAUSEDEV.ZIP
- Turbo Pascal device driver code - PAUSE command that you can put in your
CONFIG.SYS file, with source code.
5936 bytes.
- SCANH336.ZIP
- Scan TP/BP source code to build help.
103070 bytes.
- SKIPLIST.ZIP
- Skiplist implementation in Turbo Pascal. Skiplists are a nice data
structure, like a linked list but with easy sorting, insertion and deletion.
12046 bytes.
- STREAM16.ZIP
- Many kinds of streams for Turbo Pascal and Borland Pascal.
72733
bytes.
- STRIPPED.ZIP
- Some versions of the TDSTRIP utility that comes with Borland Pascal will
damage your .EXE files, causing them to potentially crash the system. This
utility detects the damage. (The detection code is also built in to
LASTLOOK).
8443 bytes.
- TDHIDE.ZIP
- Shrink Turbo Debugger debug info, to allow you to debug larger programs.
14021 bytes.
- TP6BUGS7.ZIP
- List of bugs in Turbo Pascal version 6. See the BP 7
list too!
30522 bytes.
- TPFORT18.ZIP
- Call Fortran from TP5/6. This uses a pretty screwy calling method; it's
hard to believe it works!
27944 bytes.
- TPU2TPS.ZIP
- TP 6.0 system replacement helper. To replace the system unit, you need the
SYSTEM.TPS file. This generates one from the standard SYSTEM.TPU file.
7730 bytes.
- UNDOCFCT.ZIP
- Finds undocumented function calls in Windows 3.x .EXEs, and lists various
things about them.
24796 bytes.
- CISCLient
version 1.40
- This is a client to display searches of the online edition of the Current
Index to Statistics. You need to install the "TSFKAWS" server or a
workalike somewhere to provide the database. Updated to work with the latest
format in July, 2001. Freeware.
234661 bytes.
- Ellipse
- An R and (obsolete) S-PLUS library containing routines for drawing ellipses and confidence
regions. Includes code for the profile sketches of Bates and Watts
(1988), Appendix 6 and for the ellipse matrices of Murdoch and Chow (1997,
American Statistician). The S-PLUS version is in "shar" format; look on
Statlib for an "unshar"
utility for DOS.
47918 bytes.
- PROB20.ZIP
- Probability calculator for the normal, t, F and chi-square distributions.
On my work page you'll
find a Windows version of this program, that draws pretty graphs. I've never
had time to write the documentation for it though.
69101 bytes.
These are programs I wrote to solve problems with systems I don't use any
more. As far as I'm concerned they're obsolete, but if you're still using any of
those systems, you might find these useful.
- DV87.ZIP
- Desqview 2.26 80x87 fix: stops crashes. Freeware.
1135 bytes.
- FINDNODE.ZIP
- Find a node in Fidonet nodelist.
16616 bytes.
- FINDWORD.ZIP
- Find a word in PC Write dictionary.
19581 bytes.
- MOUSEFIX.ZIP
- Fix mouse problems with Turbo Pascal 6 and DesqView.
8299 bytes.
- NEXTCLUS.ZIP
- Find next cluster to be used by DOS.
3406 bytes.
- NMI.ZIP
- Fix NMI problems in Desqview.
1343 bytes.
- NOBOG134.ZIP
- Find bogus Fidonet echomail packets.
54378 bytes.
- NOPRTSCR.ZIP
- Turn off printscreen.
280 bytes.
- SAVEMOUS.ZIP
- Saves mouse status for later restore.
8696 bytes.
- VCPIMAP.ZIP
- Map VCPI memory usage.
4892 bytes.
Back to home page.
Last updated 21 October 2001; please send comments to
dmurdoch@pair.com. Do not use this email
address for spam of any kind; spam is a theft of services, because it forces the
recipient to pay to receive advertising. I pursue all spammers vigorously!