For the programmer's microcontroller, I have chosen to use a PIC16F84-10. Its minimalistic set of internal hardware offers just enough ability to function as the programmer. It has a sufficient number of I/O pins to interface with all the hardware without the use of any I/O latching ICs to expand the I/O connections. The programmer runs at 8MHz to facilitate proper RS-232 timing and to keep things speedy.