Remote Console: Exit simulation when a master mode connection is dropped (equivalent to master power switch).

This commit is contained in:
Mark Pizzolato 2015-02-11 11:14:52 -08:00
parent c7131700c0
commit c869a973d3

View file

@ -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 char sim_rem_con_temp_name[PATH_MAX+1];
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 */
@ -666,6 +667,7 @@ for (i=(was_stepping ? sim_rem_step_line : 0);
i++) {
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];
if (!lp->conn)
continue;
@ -1000,6 +1002,8 @@ for (i=(was_stepping ? sim_rem_step_line : 0);
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)
sim_activate(uptr, steps); /* check again after 'steps' instructions */
else
@ -1156,6 +1160,8 @@ if (sim_rem_master_mode) {
}
stat |= stat_nomessage;
}
else
sim_rem_master_was_connected = FALSE;
return stat;
}