JONES@RADC-TOPS20.ARPA@sri-unix.UUCP (08/10/83)
On 10 Jun I sent a help msg to unix-wizards (with an update on 19 Jul) concerning a problem we were having with our dialup lines. To refresh your memory: we have a PDP-11/45 with a DH-11AD and 3 Bell 113B modems running Bell Version 7 UNIX. The modems would not answer after the first hangup. We put a breakout box in the line, as ghc at bnl suggested, and sure enough, DTR was not coming back on despite the fact UNIX swore up and down it was turning it on (as shown through printf statements in the dhdm driver). After carefully examining the dhdm registers, we discovered that we had been playing russian roulette in setting DTR (i.e., DTR was being set for an arbitrary line). Further investigation revealed that this behavior was being caused by the fact that the scanner was not being turned off and the BUSY bit (bit 4 in dmcsr) cleared before changing register contents, as the Peripherals Handbook warns. The way we solved the problem was to insert the following lines in dhdm.c just before each change to the registers contents (a total of six places): addr->dmcsr = 0; /* clear dm control status register */ while(addr->dmcsr&020) /* wait for BUSY bit to clear */ ; addr->dmcsr = d&017; /* select desired line */ Emilie Jones Siarkiewicz Rome Air Development Center -------