From e7cb21c7dc48355f262f784389eddbc544ffa680 Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Sat, 7 Mar 2020 14:40:53 -0500 Subject: [PATCH] KA10: CTY no longer polls for input when it has pending data. --- PDP10/kx10_cty.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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 */