Your problem is most likely (99%) the length of the cable from the parallel port to the programmer.
Keep this cable short as possible. I was getting the same error until I shortened the cable and now it works perfectly.
Another alternative is to use a programmer with a built in microcontroller that communicates with the PC via the serial port, then it talks to the device being programmed. This will always work in every PC, any operating system including DOS.
Good Luck