home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / extra / uxkerunx.c < prev    next >
C/C++ Source or Header  |  2020-01-01  |  1KB  |  68 lines

  1. #include <stdio.h>
  2. #include <sgtty.h>
  3.  
  4. extern int turn,speed;
  5.  
  6. ttopen(tn)
  7. char *tn;
  8. {
  9.     int fd;
  10.  
  11.     if (tn == 0) return(0);
  12.     if ((fd = open(tn,2)) < 0)
  13.     {
  14.     printmsg("Cannot open %s",tn);
  15.     exit(1);
  16.     }
  17.     return(fd);
  18. }
  19.  
  20.  
  21. ttbin(fd,old)
  22. int fd;
  23. struct sgttyb *old;
  24. {
  25.     struct sgttyb new;
  26.  
  27.     gtty(fd,old);            /* Save current mode so we can */
  28.     gtty(fd,&new);            /* restore it later */
  29.     new.sg_flags |= (RAW);
  30.     if (!turn) new.sg_flags |= TANDEM;    /* use xon/xoff if no handshaking */
  31.     new.sg_flags &= ~(ECHO|CRMOD);
  32.     if (fd != 0) setspd(&new);        /* Speed if requested and supported */
  33.     stty(fd,&new);            /* Put tty in raw mode */
  34. }
  35.  
  36. ttres(fd,old)
  37. int fd;
  38. struct sgttyb *old;
  39. {
  40.     sleep(1);        /* wait before releasing the line */
  41.     stty(fd,old);
  42. }
  43.  
  44. setspd(tty)
  45. struct sgttyb *tty;
  46. {
  47.     int spbits;
  48.     if (speed)                /* User specified a speed? */
  49.     {
  50.     switch(speed)            /* Get internal system code */
  51.         {
  52.         case 110:  spbits = B110; break;
  53.         case 150:  spbits = B150; break;
  54.         case 300:  spbits = B300; break;
  55.         case 1200: spbits = B1200; break;
  56.         case 1800: spbits = B1800; break;
  57.         case 2400: spbits = B2400; break;
  58.         case 4800: spbits = B4800; break;
  59.         case 9600: spbits = B9600; break; 
  60.  
  61.         default:   printmsg("Bad line spbits.");
  62.                exit(1);
  63.     }
  64.     tty->sg_ispeed = spbits;
  65.     tty->sg_ospeed = spbits;
  66.     }
  67. }
  68.