SCP: Save global switches before dispatching to DEVICE reset routines

This commit is contained in:
Mark Pizzolato 2020-09-15 04:44:22 -07:00
parent 28b8b3a91a
commit 5a9cd144d3

3
scp.c
View file

@ -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)