From 38f77e0afa944c093012e9bc3927fda1e99f0c4a Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Sat, 23 Dec 2017 16:56:50 -0500 Subject: [PATCH] B5500: Allowed for LLL instruction to be interrupted by SCP. --- B5500/b5500_cpu.c | 6 ++++++ B5500/b5500_dtc.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/B5500/b5500_cpu.c b/B5500/b5500_cpu.c index db301cf..4c1abdd 100644 --- a/B5500/b5500_cpu.c +++ b/B5500/b5500_cpu.c @@ -3652,6 +3652,12 @@ control: do { Ma = CF(B); memory_cycle(5); + if (sim_interval <= 0) { /* event queue? */ + reason = sim_process_event(); + if (reason != SCPE_OK) { + break; /* process */ + } + } temp = (B & MANT) + (A & MANT); } while ((temp & EXPO) == 0); A = FLAG | PRESENT | toC(Ma); diff --git a/B5500/b5500_dtc.c b/B5500/b5500_dtc.c index cfb11da..a356737 100644 --- a/B5500/b5500_dtc.c +++ b/B5500/b5500_dtc.c @@ -584,7 +584,7 @@ dtco_srv(UNIT * uptr) switch(c) { case '\005': /* ^E ENQ who-are-you */ dtc_lstatus[ln] &= ~(BufSMASK); - dtc_lstatus[ln] |= BufIRQ|BufAbnormal|BufWriteRdy; + dtc_lstatus[ln] |= BufIRQ|BufWriteRdy|BufAbnormal; IAR |= IRQ_12; sim_debug(DEBUG_DETAIL, &dtc_dev, "Datacomm recieve ENQ %d\n", ln);