This programmer was designed for programming AT89S52 and AT89LP4052 chips using Atmel's A89ISP or ISP Programmer. I think it'll work with more chips of the same series, but I tested it only with the two mentioned. It is based on some circuits I found in internet, this among them.
Almost all the circuits of ISP programmers whic I found in internet use 74LS244 or 74LS544 ICs as buffer. I don't have neither of them, so I started to think which IC from those I have will do the same function. After some experiments I found that 74LS373 can be used as buffer as well, as two mentioned above.
So here is the circuit:
Pins 9 and 11 of LPT port are connected together. Pins 18 to 25 are connected together and grounded. I added a switch that allows to chose whether the latches of 74LS373 will be in hi-Z state or not. It is useful when programming MC in the circuit. Important: parallel port has to be coufigured as EPP. When it is defined as standard, both programs don't work correctly. Maybe ECP mode will be good too. I didn't check it.
ISP Programmer has to be confiigured to work with this programmer. In port settings you'll have to define: STROBE1, STROBE2 - Not used, Reset - Pin 17, MOSI - Pin 2, SCK - Pin 1, MISO - Pin 10, LED - Not used.
And this is the programmer I've done: