[comp.sys.dec] keyboard resetting on Vaxstation II with Ultrix 3.0

envbvs@epb2.lbl.gov (Brian V. Smith) (05/06/89)

The problem with the qvss (qv.o) driver on a Vaxstation II under Ultrix 3.0
is that when any output goes to /dev/console, the keyboard is re-initialized.

This means that, for some reason, one must hit tab or return twice to get
a tab or return (respectively), and keyclick is turned on if it was off before.

Many thanks to Karl Reuss of the University Of Maryland Computer Science Center,
who told me what the problem was in the driver.

The fix is to remove the call to _qvkbdreset in the routine _qvopen.
This may be "nop"ed out by the following:

FIRST, VERY IMPORTANTLY: locate the call to _qvkbdreset in the routine _qvopen.
It should be at offset 0x110:

example:
unix> adb /vmunix

_qvopen+110?i
8006e574:       calls   $0,_qvkbdreset

________________________________________________________________________________
NOW TO PATCH THE FILES:

>>> For the qv.o file:

unix> adb -w qv.o

_qvopen+110?W 01010101
_qvopen+113?W 01010101
^D
unix>

(note that this inserts 7, not 8 nops because the second write overlaps the first)

________________________________________________________________________________
>>> For the kernel /vmunix file:

unix> adb -w /vmunix

_qvopen+110?W 01010101
_qvopen+113?W 01010101
^D

unix>

________________________________________________________________________________
>>> Finally, if you want to change the running kernel (/dev/mem):

unix> adb -w -k /vmunix /dev/mem

_qvopen+110/W 01010101  <<<----- NOTE the '/' instead of '?'
_qvopen+113/W 01010101  <<<----- NOTE the '/' instead of '?'
^D

unix>

________________________________________________________________________________
If there is a more "correct" fix for this problem, feel free to send mail to me
or post your fix to the net.

_____________________________________
Brian V. Smith    (bvsmith@lbl.gov)
Lawrence Berkeley Laboratory

We don't need no signatures!