The following assembly routine, to my knowledge, should return the value of POLCAT in the D register. For some reason, it's not returning at all. Can anyone provide some insight? _getch: ldb ___ungetched_char beq read_key clra sta ___ungetched_char rts read_key: pshs y loop: jsr [0xA000] ; call POLCAT tfr a,b clra puls y,pc Thanks, James