From 9cc726790eafbc5e493132d822563d8ffdadd6e4 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Fri, 27 Jul 2018 08:39:23 -0700 Subject: [PATCH] SCP: Avoid "Unexpected internal error" for expected conditions --- scp.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/scp.c b/scp.c index 25010776..ca22fc9c 100644 --- a/scp.c +++ b/scp.c @@ -10565,7 +10565,7 @@ return buf; t_stat sim_process_event (void) { UNIT *uptr; -t_stat reason; +t_stat reason, bare_reason; if (stop_cpu) { /* stop CPU? */ stop_cpu = 0; @@ -10604,12 +10604,13 @@ do { reason = SCPE_OK; } AIO_EVENT_COMPLETE(uptr, reason); - if ((reason != SCPE_OK) && /* Provide context for unexpected errors */ - (reason != SCPE_STOP) && - (reason != SCPE_STEP) && - (reason != SCPE_EXPECT) && - (reason != SCPE_EXIT) && - (reason != SCPE_REMOTE)) + bare_reason = SCPE_BARE_STATUS (reason); + if ((bare_reason != SCPE_OK) && /* Provide context for unexpected errors */ + (bare_reason != SCPE_STOP) && + (bare_reason != SCPE_STEP) && + (bare_reason != SCPE_EXPECT) && + (bare_reason != SCPE_EXIT) && + (bare_reason != SCPE_REMOTE)) reason = sim_messagef (SCPE_IERR, "\nUnexpected internal error while processing event for %s which returned %d - %s\n", sim_uname (uptr), reason, sim_error_text (reason)); } while ((reason == SCPE_OK) && (sim_interval <= 0) &&