unsigned char check_handle_break(struct dhdr FAR **pdev) { unsigned char c = CTL_C; if (!ctrl_break_pressed()) c = (unsigned char)ndread(&syscon); if (c != CTL_C && *pdev != syscon) c = (unsigned char)ndread(pdev); if (c == CTL_C) handle_break(pdev, -1); return c; }
int con_break(void) { int c = ndread(&syscon); if (c == CTL_C) con_skip_char(&syscon); return c; }
STATIC void con_hold(struct dhdr FAR **pdev) { int c = check_handle_break(); if (*pdev != syscon) c = ndread(pdev); if (c == CTL_S || c == CTL_C) { con_skip_char(pdev); Do_DosIdle_loop(pdev); /* just wait */ check_handle_break(); con_skip_char(pdev); } }