diff --git a/PDP10/kx10_cty.c b/PDP10/kx10_cty.c index fb2b148..d987f8c 100644 --- a/PDP10/kx10_cty.c +++ b/PDP10/kx10_cty.c @@ -136,10 +136,10 @@ t_stat ctyo_svc (UNIT *uptr) int32 ch; if (uptr->DATA != 0) { - ch = sim_tt_outcvt ( uptr->DATA, TT_GET_MODE (uptr->flags)) ; - if ((r = sim_putchar_s (ch)) != SCPE_OK) { /* output; error? */ - sim_activate (uptr, uptr->wait); /* try again */ - return ((r == SCPE_STALL)? SCPE_OK: r); /* !stall? report */ + ch = sim_tt_outcvt ( uptr->DATA, TT_GET_MODE (uptr->flags)) ; + if ((r = sim_putchar_s (ch)) != SCPE_OK) { /* output; error? */ + sim_activate (uptr, uptr->wait); /* try again */ + return ((r == SCPE_STALL)? SCPE_OK: r); /* !stall? report */ } } uptr->STATUS &= ~TEL_BSY; @@ -154,6 +154,8 @@ t_stat ctyi_svc (UNIT *uptr) sim_clock_coschedule (uptr, tmxr_poll); /* continue poll */ + if (uptr->STATUS & KEY_RDY) + return SCPE_OK; if ((ch = sim_poll_kbd ()) < SCPE_KFLAG) /* no char or error? */ return ch; if (ch & SCPE_BREAK) /* ignore break */