[comp.sys.atari.st.tech] Shift key problem - hardware or software?

grahamt@syma.sussex.ac.uk (Graham Thomas) (08/07/90)

Can anyone give me advice on whether a problem I've found is likely to
be a hardware or a software problem?

I recently upgraded my old (March 86) 520ST to TOS 1.4.  In the course
of fitting the ROMs I ham-fistedly dislodged my RAM upgrade board and,
apparently, did something to the glue chip.  My local repairman fixed it
up and it now works - almost - perfectly.  I should add that this ST
does not have an internal disk drive or power supply, and it has a rev.C
board.  (I told you it was old.)

Today I noticed that the right shift key was misbehaving: it was
actually sending characters.  Usually it sent two at a time, mainly
characters from the lowest row on the keyboard - typical combinations
for each keypress were: vn /N M, /O n.  Sometimes it only sent one
character.  I couldn't find any pattern.

I wrote a small program to print out scancodes and ascii codes for the
characters.  (In the course of this I found out that, using Laser C at
least, the following code fragments put different values into 'keycode':

A.	long keycode;
	keycode = Cconin();
	printf("\n%lx",keycode);

B.	long keycode;
	keycode = Bconin(2);
	printf("\n%lx",keycode);

Sheldon Leeman's book on TOS says that both of these should return both
the scancode and the ascii value of the key in 'keycode'.  I found that
only Bconin(2) does this, whereas Cconin() gives you just the ascii
value.  Anyway, this is an aside.)

In the course of running this program a couple of times, the shift key
suddenly started behaving itself again!  I tried several things -
running the program inside and outside the Laser C shell, rebooting with
warm and cold boots, etc.  Once, after I'd cold booted, the problem came
back, only to go away again after a few minutes.  The next time I cold
booted the shift key stayed OK.  Oh, and I wasn't running any auto progs
or accessories at the time.

Anyone got any clues?

Graham