The nprof 0.4 alpha release (both binaries and source) is now available! The tabbed interface has been improved and a number of bugs have been fixed.

Note: there was a last-minute correction to the download, for those who might have jumped on it after it was released. The latest filename should be

Remember to send me some feedback if you’re trying it out.


Read full post

I was considering adding a new feature to the profiler, but I’m looking for some feedback before starting. My idea is to hook up a function call tracer that could be enabled or disabled at any time during the profile run. This would allow you to track function calls made in response to a user action, such as clicking the mouse or hitting a keystroke. Ideas? Suggestions? Send them to the mailing list.

Read full post

I’ve finally got up to a point in Citydesk where I can publish it.  I’m still not completely convinced that I’ve got all my content up, but it should at least appear as if I do.  Let me know if you find any errors or omissions.

Read full post

I’ve managed to locate the code for HP-Kermit, as well as the binaries for the first version of Death Match.  I’ll have these items up (as well as screenshots for Death Match) as soon as I can.  I also managed to find the source for some of my POV-Ray  stuff, as well.

Read full post

I added a style picker to the bottom of the page to allow the visitor to pick which style they would like to use when navigating the site.  It uses a piece of Javascript written by Mark Wilton-Jones to save the current stylesheet in a cookie and later restore it when the page changes.

Each style link consists of a short Javascript link like so:

javascript:changeStyle('Default Style')

A small script in the <head> section of the HTML, along with the body onunload method, is hooked up to the style saving/loading code to transparently maintain the user’s current style:

<script type="text/javascript" language="javascript1.2">

<body onload="useStyleAgain('lastStyle');" 

The Javascript to do this magic can be found here.

Read full post

I managed to find a copy of Death Match on an old CD.  It took me a little while to the program running.  The first thing that came up was a copy protection scheme that I had written into it.  At the time it was written, most commercial games had a lookup sheet that you would need to consult to get the program to run.

I had written up a scheme where each letter would map to a different symbol.  For instance, the letter A maps to .  The screenshot below illustrates what a user would see:

The 6-character mapped character string was then looked up in a table of words and compared to the word that the user entered.  I had originally compressed Death Match with an executable compressor called “PKLITE”.  Because of this, I couldn’t just hex-edit the executable and locate the string table.  Luckily, I hadn’t protected the compressed version, so PKLITE allowed me to decompress it:

C:\old\pklite>pklite -x \old\dthmatch\dthmatch.exe
PKLITE (tm)   Executable File Compressor   Version 1.12    6-15-91
Copyright 1990-1991 PKWARE Inc.  All Rights Reserved.  Patent Pending
Original Size: 39929  Expanded 
Size: 112672

Once I had done that, it was a simple matter of using notepad to grab the string translations from the executable.

After that, I used The Gimp to create PNG files of each letter and created an HTML file to map the 6-character codes to the appropriate words.  I was then greeted with the title screen and main menu!

Getting the game to run properly is a bit tricky.  Bochs seemed to freeze in the main menu and running it under Windows 2000 seemed to result in corrupted graphics in a number of places.  I think I might be missing a few files that might be important.  Once I scour the remaining floppies, I should be able to discover which files are missing.

Update: I discovered that the code “LEMMEIN” works for any of the codes as well.  You can see it in the screenshot of notepad above.

Read full post