The Parallel Port: Standard/Traditional/Compatibility/Centronics Mode


This is the traditional mode for sending data to the printer. It lacks a proper handshake mechanism, so you have to be fast enough to react to the bytes tho host sends. Because it is the original protocal used by printers without a reverse channel, it is often called the compatibility mode.

For the compatibility mode to be active, any 1284 extended mode has to be terminated.

This mode is old and probably not properly implemented according the current 1284 specs by many printers. That may be one reason why precise information was hard to get and I had to comment with 'I do not know' at quite a few details. There is no proper handshaking, probably because the mode was not thoroughly thought through when first implemented well over a decade ago. The following diagram shows my suggestion to implement a working interface.

Unfortunately, when implementing a 1284 compliant device, I suspect it must implement this mode, because it is the fall-back mode for most host implementations.

   D0,...,D7   /Strobe   /Error   Busy   /Ack  
  
  u  
  
  h  
  
  k  
  
  k  
  
  h  
  
black separator
1  
  u  
  
  h  
  
  kh  
  
  kl  
  
  h  
   P signal no error and nothing to do
2  
  uk  
  
  h  
  
  h  
  
  l  
  
  h  
   H places data on bus
3  
  k  
  
  hl  
  
  h  
  
  l  
  
  h  
   H strobes data into P
4  
  k  
  
  l  
  
  hu  
  
  lu  
  
  h  
   H waits >= 0.5us; P may start to set Busy (and /Error)
5  
  k  
  
  lh  
  
  u  
  
  u  
  
  h  
   H unsets /Strobe. (Bad hosts might invalidate data now(?))
6  
  k  
  
  h  
  
  unk  
  
  unk  
  
  hu  
   H waits >= 0.5us; P may start to set /Ack, Busy should become valid
7  
  ku  
  
  h  
  
  k  
  
  k  
  
  u  
   H may invalidate data; Busy (and /Error) must be valid by now
8  
  u  
  
  h  
  
  k  
  
  k  
  
  ul  
   (When Busy goes low?:) /Ack should be low now
9  
  u  
  
  h  
  
  k  
  
  k  
  
  l  
   P yields /Ack for >=1us
10  
  u  
  
  h  
  
  k  
  
  k  
  
  lh  
   P deactivates /Ack (may Busy be activated?)
11  
  u  
  
  h  
  
  k  
  
  k  
  
  h  
   P yields deactivated /Ack for >=1us
black separator
  
  u  
  
  h  
  
  k  
  
  k  
  
  h  
  

Notes

Index

January 14th, 2013
Comments? Suggestions? Corrections? You can drop me a line.
zpentrabvagiktu@theiling.de
Schwerpunktpraxis