diff --git a/scp.c b/scp.c index 274749bd..094a544d 100644 --- a/scp.c +++ b/scp.c @@ -2416,17 +2416,23 @@ sim_is_running = FALSE; sim_log = NULL; if (sim_emax <= 0) sim_emax = 1; -sim_timer_init (); +if (sim_timer_init ()) { + fprintf (stderr, "Fatal timer initialization error\n"); + read_line_p ("Hit Return to exit: ", cbuf, sizeof (cbuf) - 1, stdin); + return 0; + } sim_register_internal_device (&sim_expect_dev); sim_register_internal_device (&sim_step_dev); if ((stat = sim_ttinit ()) != SCPE_OK) { fprintf (stderr, "Fatal terminal initialization error\n%s\n", sim_error_text (stat)); + read_line_p ("Hit Return to exit: ", cbuf, sizeof (cbuf) - 1, stdin); return 0; } if ((sim_eval = (t_value *) calloc (sim_emax, sizeof (t_value))) == NULL) { fprintf (stderr, "Unable to allocate examine buffer\n"); + read_line_p ("Hit Return to exit: ", cbuf, sizeof (cbuf) - 1, stdin); return 0; }; if (sim_dflt_dev == NULL) /* if no default */ @@ -2434,11 +2440,13 @@ if (sim_dflt_dev == NULL) /* if no default */ if ((stat = reset_all_p (0)) != SCPE_OK) { fprintf (stderr, "Fatal simulator initialization error\n%s\n", sim_error_text (stat)); + read_line_p ("Hit Return to exit: ", cbuf, sizeof (cbuf) - 1, stdin); return 0; } if ((stat = sim_brk_init ()) != SCPE_OK) { fprintf (stderr, "Fatal breakpoint table initialization error\n%s\n", sim_error_text (stat)); + read_line_p ("Hit Return to exit: ", cbuf, sizeof (cbuf) - 1, stdin); return 0; } signal (SIGINT, int_handler); diff --git a/sim_timer.c b/sim_timer.c index b8764395..5209338b 100644 --- a/sim_timer.c +++ b/sim_timer.c @@ -257,7 +257,10 @@ else if (stat == ETIMEDOUT) timedout = TRUE; else { - fprintf (stderr, "sim_idle_ms_sleep(%u): pthread_cond_timedwait() return %d - %s\n", msec, stat, strerror (stat)); + char ans[32]; + + fprintf (stderr, "sim_idle_ms_sleep(%u): pthread_cond_timedwait() return %d - %s\r\n", msec, stat, strerror (stat)); + read_line_p ("Hit Return to exit: ", ans, sizeof (ans) - 1, stdin); abort (); } sim_idle_wait = FALSE;