Recently I acquired a BP Microsystems BP-1200 universal programmer. It interfaces to a PC via a parallel port, and the software is meant to run under Windows XP. I tried to install it under Windows 7, and it didn’t work!
At first I thought the programmer was broken. Then I started searching the web, and found posts from other developers with the same problem. They’d tried using I/O remapping drivers like AllowIO, GiveIO, and PortTalk without success. I tried these methods myself, without success.
I learned that there are two main problems with trying to use a parallel port from a user program under Windows 7 on a modern machine. The first is that the OS prevents direct access to I/O ports. The second is that a modern parallel port uses different I/O ports than those used at the time the programmer software was written. For example my PCIe parallel port is at I/O port 0xE010, while old ISA parallel ports were at addresses like 0x378 .
I was able to solve both of these problems using the Windows XP version of the programmer software, with the latest drivers for my ASIX-based parallel port and by tricking the installer to run as an Administrator in Windows XP SP3 compatibility mode. This takes advantage of the Jungo WinDriver that the Windows XP version of the BP Microsystems software already includes. WinDriver remaps the port addresses correctly, and my programmer works flawlessly!