Reference Data about the Parallel
Port
Overview
The information provided here is limited to the minimum. More information
(e.g.: introductions, description of parallel port etc.) can be found
on Internet. Some interesting sites are listed on the "Links"
page.
Port
Addresses:
| Name |
Base Address |
alternative Base Address |
| |
|
|
| LPT1 |
0x0378 |
0x03BC |
| LPT2 |
0x0278 |
0x0378 |
| LPT3 |
0x03BC |
none |
Port
Register
| Register |
Direction |
Address |
Mask |
| |
|
|
|
| Data Register |
Input/Output |
Base Address |
0xFF |
| Status Register |
Input |
Base Address + 1 |
0xF8 |
| Control Register |
Output |
Base Address + 2 |
0x0F |
Remarks:
- Other registers ( e.g.: ECP or EPP ) are not used by ParaPort.
- The mask is defined by binary OR on the 'Bit Mask' value in the
following table.
- The parallel port has 8 bit input and output, 5 bit input and
4 bit output.
Port
Register and Connector Pins:
| Register |
Bit Number |
Bit Mask |
Functionality Name |
Inverted |
Pin |
| |
|
|
|
|
|
| Data Register |
0 |
0x01 |
Bit 0 of data byte |
No |
2 |
| Data Register |
1 |
0x02 |
Bit 1 of data byte |
No |
3 |
| Data Register |
2 |
0x04 |
Bit 2 of data byte |
No |
4 |
| Data Register |
3 |
0x08 |
Bit 3 of data byte |
No |
5 |
| Data Register |
4 |
0x10 |
Bit 4 of data byte |
No |
6 |
| Data Register |
5 |
0x20 |
Bit 5 of data byte |
No |
7 |
| Data Register |
6 |
0x40 |
Bit 6 of data byte |
No |
8 |
| Data Register |
7 |
0x80 |
Bit 7 of data byte |
No |
9 |
| |
|
|
|
|
|
| Status Register |
3 |
0x08 |
Error |
No |
15 |
| Status Register |
4 |
0x10 |
Select |
No |
13 |
| Status Register |
5 |
0x20 |
PaperEnd |
No |
12 |
| Status Register |
6 |
0x40 |
Acknowledge |
No |
10 |
| Status Register |
7 |
0x80 |
_Busy |
Yes |
11 |
| |
|
|
|
|
|
| Control Register |
0 |
0x01 |
_Strobe |
Yes |
1 |
| Control Register |
1 |
0x02 |
_LineFeed |
Yes |
14 |
| Control Register |
2 |
0x04 |
Initialize |
No |
16 |
| Control Register |
3 |
0x08 |
_SelectIn |
Yes |
17 |
Remarks:
- Some Pins are inverted on the connector. To set the pin to logical
high TTL ( 5 Volt ), you must clear the correspondent bit. To show
this, the functionality name has an underscore.
Copyright (c) 2002, 2003, 2004 by Paul R. ADAM,
v2.0, read the Terms of Use