IBM-PC Parallel Printer Port
Finding out how many ports are present and where
Normally, a PC can have up to 3 parallel printer ports - LPT1, LPT2 & LPT3.
Their (16-bit) base addresses in the processor's I/O space are loaded into
memory when the machine is booted, starting at address 408 Hex.
A well-written program requiring direct access to any of these ports
should endeavour to find out which are present and where at run-time (rather
than use constant declarations as in my earlier examples!)
Due to 80x86 processors being
the addresses are stored as follows -
For example, the following values -
mean that LPT1 is at 378 Hex, LPT2 is at 278 Hex, and LPT3 is not present.
- Here are some example programs that report which LPT ports are present and
or you can use
- An alternative method, which doesn't require direct memory access, would be
to write a test byte to each of the three potential base addresses
(278 / 378 / 3BC Hex) in the processor's I/O space.
Any that can be read back successfully indicate that there must be a port at
that address. But this won't tell you which corresponds to
LPT1, 2 and 3 if more than one parallel port is present.
- You can use the
program to find out the base address of your PC's Parallel Printer Port(s).
- If you are running Windows95, you can view the PC's
Printer Port Properties
[ Previous ]
[ Index ]
last updated: 18-Apr-97