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