diff --git a/scp.c b/scp.c index 792c1366..15898a40 100644 --- a/scp.c +++ b/scp.c @@ -7289,12 +7289,14 @@ t_stat reset_all (uint32 start) DEVICE *dptr; uint32 i; t_stat reason; +int32 saved_sim_switches = sim_switches; for (i = 0; i < start; i++) { if (sim_devices[i] == NULL) return SCPE_IERR; } for (i = start; (dptr = sim_devices[i]) != NULL; i++) { + sim_switches = saved_sim_switches; /* restore initial switches */ if (sim_switches & SWMASK('P')) { tmxr_add_debug (dptr); /* Add TMXR debug to MUX devices */ sim_tape_add_debug (dptr); /* Add TAPE debug to TAPE devices */ @@ -7306,6 +7308,7 @@ for (i = start; (dptr = sim_devices[i]) != NULL; i++) { } } for (i = 0; sim_internal_device_count && (dptr = sim_internal_devices[i]); ++i) { + sim_switches = saved_sim_switches; /* restore initial switches */ if (dptr->reset != NULL) { reason = dptr->reset (dptr); if (reason != SCPE_OK)