home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_200 / 228_01 / sethayes.c < prev    next >
Text File  |  1987-07-31  |  2KB  |  57 lines

  1. /*
  2. HEADER:         CUGXXX;
  3. TITLE:          Hayes Smartmodem initialization program;
  4. DATE:           3-20-86;
  5. DESCRIPTION:    Initializes Hayes Smart-modem;
  6. KEYWORDS:       Communications;
  7. FILENAME:       SETHAYES.C;
  8. WARNINGS:       None;
  9. AUTHORS:        Lynn Long;
  10. COMPILER:       Lattice C;
  11. REFERENCES:     US-DISK 1310;
  12. ENDREF
  13. */
  14. /***********************************************************************
  15.  *  This is to serve as an example of how to initialize a Hayes Smart- *
  16.  *  modem out of Lattice C.  It initialize the baud  rate divisors  at *
  17.  *  baud, sets the parametes at 8 data bits, no parity, and 1 stop bit *
  18.  *  You can replace the pointer *mdmstg to the command values that you *
  19.  *  want to set the Hayes to.                           *
  20.  *         Program By:                           *
  21.  *                 Lynn Long                       *
  22.  *                 Tulsa IBBS C-SIG                   *
  23.  *                 300/450/1200, XMODEM, 24 hours           *
  24.  *                 Registration Required               *
  25.  ***********************************************************************/
  26.  /*    for comm port # 1.  i will make this into a function as soon as    *
  27.   *    i have time and pass the comm port, baud rate and setup string    *
  28.   *    to it.     Lynn Long   */
  29.  
  30.  
  31. main()
  32. {
  33.  
  34.  
  35.     unsigned byte=0x00;
  36.     char *mdmstg =    "ATE0X1V1Q0M0ST=45S2=255S0=1\r";
  37.  
  38.     outp(0x3fb,0x80);     /* to access baud rate divisors */
  39.     outp(0x3f8,0x60);     /* set baud    rate divisor lsb for 1200 bd */
  40.     outp(0x3f9,0x00);     /* set baud    rate divisor msb for 1200 bd */
  41.     outp(0x3fb,0x23);     /* set line    control reg for 8 bits, !parity, and 1 stop bit */
  42.     outp(0x3fc,0x03);     /* force dtr and cs    signals on */
  43.     outp(0x3f9,0x00);     /* disable interrupts */
  44.  
  45.     while(*mdmstg != '\0'){        
  46.         byte = inp(0x3fd);          /* input line status register byte */
  47.         byte &= 0x20;           /* look at transmit    hold status bit */
  48.         if(byte == 0x20){
  49.             outp(0x3f8,*mdmstg);    /* if transmit hold reg empty then */
  50.             *mdmstg++;        /* output a byte    and bump pointer to string */
  51.         }
  52.     }
  53.  
  54. }
  55.  
  56.     
  57.