LAVA: Forums

Full Version: Legacy I/O Addressing of Serial and Parallel Ports in Windows
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Issue:
Legacy hardware and software may require that a Serial, or Parallel port, be located at its traditional I/O Address (i.e. 0x3f8, 0x2f8, 0x3e8 & 0x2e8 for Serial Ports and 0x378 & 0x278 for Parallel Ports).

This is because the hardware, or software, assumed these ports would always be located at fixed addresses and never move. However, with the evolution of add-in PCI cards these ports are now mapped by the BIOS at boot time and by default aren’t set to the I/O Address expected by the legacy hardware, or software.

Resolution:
In Windows 95/98/ME Microsoft allowed users to change the I/O Resources of add in cards after boot through the device manager; however this sometime resulted in stability issues.

As of Window 2000, and all subsequent versions, Microsoft removed the ability to modify the I/O Resources of any Add-In cards. It is possible to modify the resources of Serial and Parallel ports that are located on the motherboard, but there is absolutely no work around for modifying the resources of an add-in PCI Card.

To resolve the issue there are really only a couple of options:

1. Locate a system with an ISA Bus - ISA Cards can be manually set to legacy I/O Addresses, therefore its possible to set these ports to legacy I/O Addresses

2. Locate a system with on-board ports - Ports on the motherboard are often located at these legacy addresses, and if not Microsoft does allow the modification of these resources

3. Contact the original hardware or software manufacturer – Some manufacturers have addresses this issue through, free or paid, upgrades.

4. Down grade the system to Windows 95/98


Applies to:
All PCI Cards in Windows systems from Windows 2000 onwards.
I've found the entry of the PCI parallel port that I'm using in the registry, but I cannot find any values the look like the base address decimal or hex.

It seems as though many of the references/utilities I've found expect that all parallel ports are mapped into legacy addresses 378h, etc.
Most modern systems do not have with motherboard parallel ports.

Is it possible to retrieve the addresses of plugin parallel ports through a user-mode utility?
Would someone point me to a reference that has a program to do this- or shows how to find the base address of a PCI/PCIe parallel port?

Even though I'm currently using Windows XP, we will be migrating to Windows 7 in the near future. Ideally, the method of finding the address
will work for both OSs

Thanks

http://gta-po-seti.oktbmash.ru/igrat-po-internetu-gta/
The best way to determine the actual I/O Address of a Parallel Port (and Serial Port for that matter) is via the Device Manager.

By right clicking on the Port and selecting Properties you are able to pull up all the settings and detail for the port. The I/O Address will be listed on the Resources Tab.

- Lava Support