[net.unix-wizards] Plessy DZ problems

dvk (09/03/82)

Well, the Plessy DZ-11, much vaunted though it may be to be identical to the
DEC DZ-11, is alas not quite. The problem that you are experiencing is one we
saw a long time ago (but before we got uucp - that's why we never broadcast
it). What happens on our system (an 11/44, and previously on our 11/34a) is
that when characters are being *input* to the DZ-11 at a rate faster than it
can empty the pitifully small 16 character silo, the DataValid bit in the
DZ-11 RBUF gets set to 0 and the characters are "not there". The DZ driver
cannot handle this. Here is the scenario:

	1) ...many input characters (say 14) before processor level gets
		below BR5.
	2) _dzin is called: Loop => (Reads a character, tests the DataValid
		bit, exit if clear, otherwise processes the character)
	3) While in the processor loop, the clock (BR6) interrupts.
	4) Three more characters come in. (An interrupt is posted, but since
		the processor is at BR6, it waits). The DZ-11 silo overflows,
		and for reasons we do not understand, the DataValid bit gets
		*cleared* on the botton character (maybe it bubbles down?).
	5) The clock exits, processor goes to BR5, the loop in 2) continues,
		*but*, the DataValid bit is clear, so the loop exits. (When
		the silo is empty, the bit is cleared, so the loop guesses
		that there are no characters left to read. Wrong! There are
		16 of them stacked up waiting! Each one except the first in
		line has a DataValid bit set.)
	6) Another character is typed. An interrupt is posted, and the loop
		is started. Since the silo was just overflowed again, the
		bottom character's DataValid bit goes to 0, and the loop exits
		when it tries to read the character. Loser!
	7) Repeat forever.

You do *not* have to reset the whole DZ-11, or even reboot. A simpler fix is
to write a stupid little routine that *reads* two characters from the RBUF
(wherever it lives in "kmem"). The next interrupt you get will *fill*, not
overflow the DZ-11 silo, and all the characters will come tumbling out in the
loop in 2). Since the DZ-11 does not have a SILO-full indicator, there is
(regrettably) no way to fix this in your DZ driver.
	The moral is: 1) Do *NOT* buy Plessy DZ-11's. They don't work right.
(Some other Plessy products are fine, tho'). 2) If you can, get DH-11's from
Able. They are great.

	-Dan Klein, Mellon Institute, Pittsburgh