Remote Console: Exit simulation when a master mode connection is dropped (equivalent to master power switch).
This commit is contained in:
parent
c7131700c0
commit
c869a973d3
1 changed files with 6 additions and 0 deletions
|
@ -394,6 +394,7 @@ static int32 sim_rem_step_line = -1; /* step in progress on line # */
|
||||||
static t_bool sim_log_temp = FALSE; /* temporary log file active */
|
static t_bool sim_log_temp = FALSE; /* temporary log file active */
|
||||||
static char sim_rem_con_temp_name[PATH_MAX+1];
|
static char sim_rem_con_temp_name[PATH_MAX+1];
|
||||||
static int32 sim_rem_master_mode = 0; /* Master Mode Enabled Flag */
|
static int32 sim_rem_master_mode = 0; /* Master Mode Enabled Flag */
|
||||||
|
static t_bool sim_rem_master_was_connected = FALSE; /* Master Mode has been connected */
|
||||||
static t_offset sim_rem_cmd_log_start = 0; /* Log File saved position */
|
static t_offset sim_rem_cmd_log_start = 0; /* Log File saved position */
|
||||||
|
|
||||||
|
|
||||||
|
@ -666,6 +667,7 @@ for (i=(was_stepping ? sim_rem_step_line : 0);
|
||||||
i++) {
|
i++) {
|
||||||
t_bool master_session = (sim_rem_master_mode && (i == 0));
|
t_bool master_session = (sim_rem_master_mode && (i == 0));
|
||||||
|
|
||||||
|
sim_rem_master_was_connected |= master_session; /* Remember if master ever connected */
|
||||||
lp = &sim_rem_con_tmxr.ldsc[i];
|
lp = &sim_rem_con_tmxr.ldsc[i];
|
||||||
if (!lp->conn)
|
if (!lp->conn)
|
||||||
continue;
|
continue;
|
||||||
|
@ -1000,6 +1002,8 @@ for (i=(was_stepping ? sim_rem_step_line : 0);
|
||||||
sim_rem_single_mode[i] = FALSE;
|
sim_rem_single_mode[i] = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (sim_rem_master_was_connected && !sim_rem_con_tmxr.ldsc[0].sock) /* Master Connection lost? */
|
||||||
|
return SCPE_EXIT;
|
||||||
if (stepping)
|
if (stepping)
|
||||||
sim_activate(uptr, steps); /* check again after 'steps' instructions */
|
sim_activate(uptr, steps); /* check again after 'steps' instructions */
|
||||||
else
|
else
|
||||||
|
@ -1156,6 +1160,8 @@ if (sim_rem_master_mode) {
|
||||||
}
|
}
|
||||||
stat |= stat_nomessage;
|
stat |= stat_nomessage;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
sim_rem_master_was_connected = FALSE;
|
||||||
|
|
||||||
return stat;
|
return stat;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue