1
3 2 1 0 9 8 7 6 5 4 3 2 1
---------------------------------
\ o o o o o o o o o o o o o /
\ o o o o o o o o o o o o /
-----------------------
2
5 4 3 2 1 0 9 8 7 6 5 4
DB-25 Female
IO addresses and IRQs;
| LPT nr | IO Addr | IRQ |
|---|---|---|
| 0 | 0x378 | 7 |
| 1 | 0x278 | 5 |
Or;
| LPT nr | IO Addr | IRQ |
|---|---|---|
| 0 | 0x3BC | 7 |
| 1 | 0x378 | 7 |
| 2 | 0x278 | 5 |
Printer ports on PCI cards may have other addresses and IRQs.
Standard Parallel Port.
Pre SPP.
Pin Signal Dir Purpose 1 -STROBE -> Control 2 D0 -> Data 3 D1 -> Data 4 D2 -> Data 5 D3 -> Data 6 D4 -> Data 7 D5 -> Data 8 D6 -> Data 9 D7 -> Data 10 ACK <- Status 11 -BUSY <- Status 12 PAPER END <- Status 13 SELECT <- Status 14 -AUTOFEED -> Control 15 -ERROR <- Status 16 INIT PRINTER -> Control 17 -SELECT PRINTER -> Control 18-25 GND '-' means inverted.
Control lines may be open collector / open drain, with or without pull-up resistors.
| Register | Address | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
|---|---|---|---|---|---|---|---|---|---|
| Data | Base | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Status | Base + 1 | -Busy | Ack | PE | Select | Err | -IRQ | ||
| Control | Base + 2 | EnBiDi | EnIrq | -SelPr | InitPr | -AF | -Strb | ||
EnIrq = Enable IRQ Via Ack Line.
EnBiDi = Enable Bi-Directional Port. SPP and newer only!
'-' means inverted at connector.
Timing;
Data ------ ------------------- ----------
0-7 X Data valid X
------ ------------------- ----------
-Strobe ------------ ------------------
\ /
-----
Busy -----
/ \
---------------- --------------
-Ack ------------------------- ------
\ \ /
---------
This can be done with pre SPP stuff.
Dir
1 -Strobe -> Set to '1'.
2
3
4
5
6
7
8
9
10 PtrClk <-
11 PtrBusy <- Bit 3/7
12 AckDataReq <- Bit 2/6
13 Xflag <- Bit 1/5
14 HostBusy -> '0' when the PC receives, '1' when it sends.
15 -DataAvail <- Bit 0/4
16 -Init -> Set to '1'.
17 1284Active ->
18-25 GND
Data register needs to be bidirectional / tristate (SPP and newer).
Dir
1 HostClk ->
2 D0 <->
3 D1 <->
4 D2 <->
5 D3 <->
6 D4 <->
7 D5 <->
8 D6 <->
9 D7 <->
10 PrtClk <-
11 PtrBusy <-
12 AckDataReq <-
13 Xflag <-
14 HostBusy ->
15 -DataAvail <-
16 -Init ->
17 1284Active ->
18-25 GND
Enhanced Parallel Port.
Dir
1 -Write ->
2 D0 <->
3 D1 <->
4 D2 <->
5 D3 <->
6 D4 <->
7 D5 <->
8 D6 <->
9 D7 <->
10 -Intr <-
11 -Wait <-
12 User Defined <-
13 User Defined <-
14 -Data Strobe ->
15 User Defined <-
16 -Init ->
17 -Address Strobe ->
18-25 GND
Extended Capabilities Port.
Dir
1 HostClock ->
2 D0 <->
3 D1 <->
4 D2 <->
5 D3 <->
6 D4 <->
7 D5 <->
8 D6 <->
9 D7 <->
10 Perif Clock <-
11 Perif Ack <-
12 -Ack Reverse <-
13 X-Flag <-
14 Host Ack ->
15 Perif Request <-
16 -Reverse Request ->
17 1284 Active ->
18-25 GND