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