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