Version 7 dhdm fix

JONES at RADC-TOPS20.ARPA JONES at RADC-TOPS20.ARPA
Thu Aug 11 05:02:39 AEST 1983


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
-------



More information about the Comp.unix.wizards mailing list