Is this method of programming incorrect?
Yup. Call the keyhit function once and it resets the current keyhit value for the key you are checking against.
To do your example above you could use a selectr case statement or more if's
[code]
if keyhit(28_