I have tendonitis, and would prefer to avoid typing unnecessarily. Similarly, the caller is not allowed to make any assumptions about what the called function did with the t registers.
Keystrokes are always single characters.
You can just look at the first character of the input and ignore the rest for the non-numeric input. For numeric input you must check that every character is valid and generate an error message if an invalid character is detected. That can be in the main loop. This avoids conceptual bugs and makes debugging easier. Then load it into SPIM and check the code panel.