23.1 Mapping Parallel Ports to LPTs
The PC BIOS allocates three prioritized I/O port addresses to parallel printers. Port 0x3BC is the highest priority, followed by 0x378 and then 0x278. At boot time, the BIOS checks each of these addresses to detect parallel hardware. The highest priority parallel port detected (which may be on any of the three I/O port addresses) is assigned as LPT1:. If a second parallel port is detected, it is assigned LPT2:. If a third port is detected, it is assigned LPT3:. Some BIOSes also make provision for LPT4:, but this is nonstandard and not widely supported.
This automatic detection of port hardware and assignment of LPT numbers means that installing another parallel port may change the LPT designation of existing ports. For example, the embedded parallel port on most motherboards is assigned port 0x378 (the second priority address) by default. As long as it is the only port present, it will be mapped to LPT1: by the BIOS. If you add another parallel port configured for port address 0x3BC, that new port will be mapped to LPT1: and the existing port will be changed to LPT2:.
You set the I/O port address for most motherboard parallel ports in BIOS Setup, although older motherboards may require changing a jumper instead. You set addresses for parallel ports on most expansion cards by changing a jumper. Avoid changes in LPT mappings when installing parallel ports by verifying the port addresses for existing ports and setting the new port for a lower priority address, if possible. Always make sure that the new port does not use the same address as an existing port, or results will be unpredictable.