Input/Output ports (I/O ports) are ranges of addresses that function like mailboxes, allowing programs and components to exchange messages and data. An I/O port has a base address, which is the hexadecimal address of the first byte allocated to that I/O port, and a length, which is also expressed in hexadecimal. For example, many network adapters default to base address 300h and are 20h bytes (32 decimal bytes) long, and so occupy the range 300-31Fh.
There’s no shortage of I/O ports, because thousands exist. We have never seen I/O port conflicts with PCI devices operating in a Plug and Play environment, but I/O port conflicts commonly occur when two ISA devices are unintentionally assigned overlapping ranges. For example, another common base address for network adapters is 360h (range 360-37Fh). Unfortunately, that range overlaps the range of LPT1: (base address 378h), so setting a network card to 360h results in conflicts with the parallel port.