Well, actually, it does return -1 on no key, scancode on keypress, and 1000+scancode on extended keys. Extended keys in crt report themselves as two keys, #0 followed by something else. Arrows are #0#70-something, so they would be returned as 1000+70(something), whereas 'A' would be returned simply as 65.