"Interfacing the IBM PC parallel printer port" - читать интересную книгу автора (Stewart Z.)

when I created a cable like this (actually, a DB25 jumper box usually sold
for RS-232 jumpering, along with straight through 25 line DB-25 cables), I
used 8 10K resistors between the corresponding Data lines, to limit current
in this case. (Actually, a DIP resistor pack fit perfectly on the PC board
inside the DB-25 jumper box). The resistors are large enough to keep TTL
output from overstressing another one if both enabled, but when one is
disabled and the other enabled, the resistors are low enough to allow the
TTL output to drive a TTL input well enough.

Mode 3A: 8 bits, using Open Collector Control Outputs as inputs
This version uses 4 control outputs as inputs, plus 4 status inputs.

Side 1 Pin dir Pin Side 2 connection
------ --- --- --- ------ ----------
D0 2 =>* 1 C0- inverted
D1 3 =>* 14 C1- inverted
D2 4 =>* 16 C2+ direct
D3 5 =>* 17 C3- inverted
D4 6 => 13 S4+ direct
D5 7 => 12 S5+ direct
D6 8 => 10 S6+ direct
D7 9 => 11 S7- inverted

C0- 1 <=* 2 D0 inverted
C1- 14 <=* 3 D1 inverted
C2+ 16 <=* 4 D2 direct
C3- 17 <=* 5 D3 inverted
S4+ 13 <= 6 D4 direct
S5+ 12 <= 7 D5 direct
S6+ 10 <= 8 D6 direct
S7- 11 <= 9 D7 inverted

Gnd 25 === 25 Gnd (ground)

* Note: Control outputs used as inputs must be programmed high:
C0, C1, C3 = 0 and C2 = 1

Mode 3B: 8 bits, using Open Collector Control Outputs as inputs
This version uses 3 control outputs as inputs, plus 5 status inputs;
remaining control output is bidirectional - if left high by default,
either side can pull low (remember inverted logic).

Side 1 Pin dir Pin Side 2 connection
------ --- --- --- ------ ----------
D0 2 =>* 1 C0- inverted
D1 3 =>* 14 C1- inverted
D2 4 =>* 16 C2+ direct
D3 5 =>* 15 S3+ direct
D4 6 => 13 S4+ direct
D5 7 => 12 S5+ direct