This page

PIC programmer

This PIC programmer can be powered with two 9V batteries, or any DC or AC voltage between 15V and 26V. For 12V it uses low dropout regulator so the batteries can be used even if they are not totally fresh. It uses LPT port to comunicate with the PC. You can use WinPic800 software with this programmer.

The diode on the output of the Schmitt trigger is necesary because LPT input is expecting open collector and also new machines have LPT operating on 3.3V . For digital signals is said that they are very resistant to noise. This is true only for level signals, but edge signals are very sensitive to noise and that is why we really need Schmidtt trigger. LPT cable can now be any length.