SCP: Save global switches before dispatching to DEVICE reset routines
This commit is contained in:
parent
28b8b3a91a
commit
5a9cd144d3
1 changed files with 3 additions and 0 deletions
3
scp.c
3
scp.c
|
@ -7289,12 +7289,14 @@ t_stat reset_all (uint32 start)
|
||||||
DEVICE *dptr;
|
DEVICE *dptr;
|
||||||
uint32 i;
|
uint32 i;
|
||||||
t_stat reason;
|
t_stat reason;
|
||||||
|
int32 saved_sim_switches = sim_switches;
|
||||||
|
|
||||||
for (i = 0; i < start; i++) {
|
for (i = 0; i < start; i++) {
|
||||||
if (sim_devices[i] == NULL)
|
if (sim_devices[i] == NULL)
|
||||||
return SCPE_IERR;
|
return SCPE_IERR;
|
||||||
}
|
}
|
||||||
for (i = start; (dptr = sim_devices[i]) != NULL; i++) {
|
for (i = start; (dptr = sim_devices[i]) != NULL; i++) {
|
||||||
|
sim_switches = saved_sim_switches; /* restore initial switches */
|
||||||
if (sim_switches & SWMASK('P')) {
|
if (sim_switches & SWMASK('P')) {
|
||||||
tmxr_add_debug (dptr); /* Add TMXR debug to MUX devices */
|
tmxr_add_debug (dptr); /* Add TMXR debug to MUX devices */
|
||||||
sim_tape_add_debug (dptr); /* Add TAPE debug to TAPE 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) {
|
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) {
|
if (dptr->reset != NULL) {
|
||||||
reason = dptr->reset (dptr);
|
reason = dptr->reset (dptr);
|
||||||
if (reason != SCPE_OK)
|
if (reason != SCPE_OK)
|
||||||
|
|
Loading…
Add table
Reference in a new issue