If you don't let the OS run it's Stage 2 VBlank, the keyboard processing gets screwed up a bit.
ie, the auto repeat won't work, and the debounce timer doesn't count down which means you can't have successive presses of the same key.
You could read the keycode direct from Pokey, and use SKSTAT to determine if the key is held down or not. The keycode register on Pokey doesn't get "reset", it will always hold the value of last keypress even if it happened hours ago.
Another option is to just replicate what the OS does in it's VBlank. The debounce portion shouldn't be too long, and you can do away with auto-repeat anyhow in many cases.
Edited by Rybags, Sat Sep 24, 2011 6:52 AM.