Being young and stupid I bought a microcontroller without checking for programmer and programming software availability. Fortunately, the programming protocol is simple, and I was able to make my own programmer based on an Arduino.
- Flashes IntelHex files
- Verifies uploads
- Erases flash
- Dumps flash from chip to a file
- Verifies chip ID
- Works on Linux
- Probably usable on Windows
- Requires only a small software modification to allow for AT89C4051 programming
A more detailed guide to using this programmer can be found in this instructable.