Example #1
0
STATIC unsigned char read_char_sft_dev(int sft_in, int sft_out,
                                       struct dhdr FAR **pdev,
                                       BOOL check_break)
{
  unsigned char c;

  if (pdev)
  {
    FOREVER
    {
      if (ctrl_break_pressed())
      {
        c = CTL_C;
        break;
      }
      if (!Busy(pdev))
      {
        c = CharIO(pdev, 0, C_INPUT);
        break;
      }
      if (check_break && *pdev != syscon)
        check_handle_break(&syscon);
      /* the idle int is only safe if we're using the character stack */
      if (user_r->AH < 0xd)
        DosIdle_int();
    }
  }
  else
Example #2
0
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;
}