dmf code bug

bentson at csu-cs.UUCP bentson at csu-cs.UUCP
Thu Jul 7 02:45:36 AEST 1983


We have discovered a problem in the code distributed by Berkeley while
trying to bring up the parallel part of a DMF-11 to be used for a
Versatek printer.  The DMF keeps four mode bits in the high nibble to
describe the mode of operation and the interrupt vector base address in
the low byte of a word sized control register.  This nibble is loaded
within the DMF at power-up time.  It can be changed later under program
control.  The problem is that when dmfprobe() loads the interrupt vector
base address into the dmf it clobbers the mode bits.  This could have
been done as a byte move, but as it is done as a word move the high bits
of the control register are loaded as zeros.  Thus the effect of the
Berkeley code is to load a zero in this nibble.  The DMF appears to
reject this zero value and puts some default value in this nibble.  We
changed the pattern that is written into the whole word to reinterate
the proper value in the high nibble and things are now working properly
in the driver changes we've made.

We'll be sending this driver stuff back to Berkeley and will post to
the net if it doesn't make the 4.2 release.  The polishing of this
code will be done when we get the rest of the DMF documentation from
DEC. Questions may be directed to me or Mike Vevea (csu-cs!vevea
303/491-5642).

Randy Bentson
csu-cs!bentson
Colo State U - Comp Sci
303/491-7016



More information about the Comp.unix.wizards mailing list