Some older software cannot use an arbitrary port address, and you run into serious trouble.
For example, the well-known avrdude command-line chip programmer.
A new version (since March 2013) of my fork of well-known inpout32.dll has a built-in automatic address translation!
Therefore, applications relying on this library will run with such PCI / PCIexpress cards with no further setup. This also applies to 64 bit versions of Windows, and true 64 bit applications (latter use inpoutx64.dll instead, also contained in ZIP archive).
You can check the current address translation by invoking the following command line:
»rundll32 inpout32.dll,Info«. A MessageBox will be shown.
This program can redirect the port accesses for you, and does it universally for all known cases (DOS Box, Win16, Win32, VxD, other kernel-mode driver) in kernel mode.
The bad news: Currently, this software runs on Windows 3.1 (Enhanced Mode), 3.11, 95, 98, Me, NT 3.51, NT4, 2000. But not on XP and newer. Not on SMP machines. ECP and EPP parallel port extensions are not supported.This program, written for a completely other purpose, has to be set-up as follows:
Screenshots for right program settings as port address translator