示例#1
0
文件: chario.c 项目: TijmenW/FreeDOS
unsigned char read_char(int sft_idx, BOOL check_break)
{
  unsigned char c;
  struct dhdr FAR *dev = sft_to_dev(idx_to_sft(sft_idx));

  if (dev)
    return (unsigned char)raw_get_char(&dev, check_break);

  DosRWSft(sft_idx, 1, &c, XFR_READ);
  return c;
}
示例#2
0
void handle_break(struct dhdr FAR **pdev, int sft_out)
{
  char *buf = "^C\r\n";

  CB_FLG &= ~CB_MSK;            /* reset the ^Break flag */
  con_flush(pdev);
  if (sft_out == -1)
    cooked_write(pdev, 4, buf);
  else
    DosRWSft(sft_out, 4, buf, XFR_FORCE_WRITE);
  if (!ErrorMode)               /* within int21_handler, InDOS is not incremented */
    if (InDOS)
      --InDOS;                  /* fail-safe */

  spawn_int23();                /* invoke user INT-23 and never come back */
}
示例#3
0
文件: chario.c 项目: TijmenW/FreeDOS
/* writes character for disk file or device */
void write_char(int c, int sft_idx)
{
  unsigned char ch = (unsigned char)c;
  DosRWSft(sft_idx, 1, &ch, XFR_FORCE_WRITE);
}