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