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

not match the data being output, there is an error (eg: a line stuck high or
low). Exception: bidirectional printer ports allow the 74LS374 (or equivalent)
driver chip to be tri*-*stated, which makes the data feedback port into a
legitimate unlatched input port.

The Control Out pins were driven by 7405 inverting open collector buffers,
pulled to +5 volts via 4.7K resistors. All data lines except C2 are inverted
before going to output pins; data line C2 is double inverted before going to
pin 16 (ie: is not inverted).

The Feedback input for the Control Out register also inverted all but C2,
which was passed through uninverted. It is possible to use some or all of
the control out port bits for input, by programming the corresponding
control out to high (remembering the inversion on C0, C1, and C3), in which
case the open collector outputs are pulled high by the 4.7K resistors; any
externally applied high will retain the high state, while an externally
applied low will pull down the electical level to low. This can be read
via the corresponding feedback bit(s). If either the output from the control
register, or an externally applied signal, are low, then the input will be
low. Remember the inversions between this electrical level and the bits, tho.

The Status In register is inverted for only pin 10, register bit S7.

ESD (from Steven M. Scharf )

LSI implementations of the parallel port have often had serious ESD
(electrostatic discharge; includes static electricity) problems. National
and other high-end manufacturers have added extensive anti-ESD circuitry
to the parallel port signal lines; on cheap parallel port designs on some
other SuperIO clones ESD can easily destroy the parallel port circuit
when you turn the printer on when the computer is off or the printer is
on a switchbox.

7. Timing

The original IBM Printer Adapter which came out along with the PC (floppy
disks, pre XT) was built from TTL MSI parts. They (and their clones) were
fast enough to work with the later AT bus, now called ISA, and still do.
I've yet to hear of a TTL printer adapter which is too slow for an ISA bus.
Partly this is because it was simple and fast in bus access (unlike the
serial port 8250 chip), and partly this is because even fast 486's slow
their ISA bus down to 8-11 MHz typically.

8. How to Print to a standard printer.

This is as defined for early IBM printers, and more or less compatible with
most others that use the Centronics 36 pin interface.

Wait for not +Busy (+Busy low)
Set Data Out bits