Software and Source Code
I've written a lot of programs over the years, that do various things. I've learned a lot, and done a lot of stupid things. So, what do I do? I expose my mistakes and knowledge, and let y'all judge for yourself. Enjoy.
It should also be noted that a lot of this stuff is very old, and most of the Windows programs, given many of the changes that have been made over the years, likely no longer work. I make no claims to this stuff's quality, so consider this mostly a time capsule of a young programmer trying to find his way in the world.
Most of these scripts and programs have been compressed using the ZIP format, so you'll need an appropriate decompressor.
The especially large downloads are because of VB6 runtimes (yes, really), otherwise they're pretty small because I statically link everything I distribute in binary form as a rule. Source code...well, that's your problem. Note that the source files are distributed as source only; if there's any interest in binaries and you can't build them, I'll see what I can do.
Any time that you see an MFC program that utilizes Document/View architecture, the main code you should be worried about is in the View. Most of these are for VC++ 6.0, though a couple are for VS.NET. Nothing is used in the .NET version that cannot be used in the VC++ version; just be sure that you have your latest service packs for VC++ 6.0.
This is a program based on Ken Taylor's original command-line DNI extractor; DNI being the generic name for the archive file format of realMYST. This version displays the archive file in a tree structure, and allows you to pick things, etc.
D'ni Desk Clock
This is a set of programs for putting a Band Object in your taskbar that behaves like, well, a D'ni clock. I think it's unfinished; there was supposed to be a function where it transformed to an "analog" clock when you dragged the band off of the taskbar. Don't think I ever got the hands of the clock working quite right, which is why I never distributed it. Demonstrates band objects, and COM programming. Also, builds as a DLL, plus there's an installer program.
Example Code: Demonstrates one way of reading the Intel HEX format, a text file format that is used to load binary code onto embedded microprocessors. Also contains a header file with the results of the painstaking effort of translating all of the PIC microcontroller instructions into a header file.
Not going to tell you why I wrote this utility, just know that it exists. Takes a binary file, and shifts all of the bytes by a specific offset.
Generates a sine table for use as initialized data in a microcontroller. Written originally for a final project when I was in college, though someone else would find it useful, too.
Example Code: Interfaces with a particular hardware monitoring chip that may be installed on your very motherboard, and fetches temperature sensor data from it. It also writes said information out to COM1. The io.dll library was not written by me, but it is required to perform direct hardware I/O without writing a device driver in NT/2000/XP. This utilizes a .NET solution file.
Reads the FFVII PC TEX files, and displays them. The format is a simplistic palettized bitmap format that I'm sure I haven't figured out all of the nuances of. Still, it can display these files for the most part.
Example Code: Messes around with the high-performance timer APIs. Not a whole lot more to say about it, really.
Open Sesame, LGP!
This program allows you to extract the files from the Final Fantasy VII PC version LGP archive files. If you have MIDI, you can play them, or learn the title of the song that you extracted merely by looking at the "detailed" file listing of what's in the archive. Various other niftiness has been included, as well.
A program that allows you to edit INI files as if you were editing the Registry. Simple to use, wrote it in a fit of boredom one day, when I was still fascinated with GUI-based manipulation of text files.
Based somewhat on code from the Amolitor Mushcode Unformatter program, this allows you to unformat mushcode files that have been formatted in this fashion. It mimics the output of the other program completely, and it's a little friendlier, too. For the most part, I think it's stable for use.
An implementation of the IDENT protocol as defined in RFC 1413. This program is designed to be used with the Win32 port of Perl, since most Unices already have identd. Regardless, it should work right nicely on a *nix-based system. (Although you should be wary of using IDENT regardless.)
This is a little script that connects to the HTTP server provided with the FreeSCO router implementation and returns the date and time as specified by the server. As of this version, however, it cannot set the time on the system running the script. Time formats (when requesting one), include unix, mdy, dmy, dym, ydm, and myd.
This is a VERY simple script for connecting to a MUX/MUSH/MUD/etc. and retrieving the who listing, printing it out to the user. It's also a very simple example of forking processes, and could be extended to other uses, such as providing a listing of who's online on a website with the CGI package.