home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / MAXIMUS / MAXDLLS.ZIP / COMM.ZIP / MAXRATE.C < prev    next >
C/C++ Source or Header  |  1994-01-13  |  2KB  |  65 lines

  1.  
  2. #define INCL_NOPM
  3. #define INCL_DOS
  4. #define INCL_DOSERRORS
  5. #define INCL_DOSDEVIOCTL
  6. #include <os2.h>
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9.  
  10.  
  11. typedef struct _qbr {   // extended query bit-rate
  12.     LONG rate;
  13.     BYTE fraction;
  14.     LONG min_rate;
  15.     BYTE min_fraction;
  16.     LONG max_rate;
  17.     BYTE max_fraction;
  18. }QBR;
  19.  
  20. void cdecl main(int argc, char **argv)
  21. {
  22.     USHORT rc;
  23.     QBR qbr;
  24.     RXQUEUE rxq;
  25.     FILE *inf;
  26.  
  27.     if(argc != 2){
  28.         printf("█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█\n");
  29.         printf("█ MaxRate                                                   █\n");
  30.         printf("█                                                           █\n");
  31.         printf("█ Usage:  MaxRate <com port>                                █\n");
  32.         printf("█                                                           █\n");
  33.         printf("█ This program asks your serial device driver for the       █\n");
  34.         printf("█ maximum bps rate that your hardware supports.             █\n");
  35.         printf("█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█\n");
  36.         exit(1);
  37.     }
  38.  
  39.     inf = fopen(argv[1], "rb");
  40.     if(!inf){
  41.         perror(argv[1]);
  42.         exit(1);
  43.     }
  44.  
  45.  
  46.     DosDevIOCtl(&rxq, 0L, ASYNC_GETINQUECOUNT, IOCTL_ASYNC, fileno(inf));
  47.     printf("\nInput  queue size = %d bytes\n", rxq.cb);
  48.  
  49.     DosDevIOCtl(&rxq, 0L, ASYNC_GETOUTQUECOUNT, IOCTL_ASYNC, fileno(inf));
  50.     printf("Output queue size = %d bytes\n", rxq.cb);
  51.  
  52.     rc = DosDevIOCtl(&qbr, 0L, 0x63, IOCTL_ASYNC, fileno(inf));
  53.     if(rc){
  54.         printf("SYS%04u:  Couldn't query baud rate\n", rc);
  55.         if(rc == ERROR_BAD_COMMAND)
  56.             printf("(may require a newer version of com*.sys or OS/2 to run this program)\n");
  57.         exit(1);
  58.     }
  59.     printf("Current Rate = %ld\n", qbr.rate);
  60.     printf("Min     Rate = %ld\n", qbr.min_rate);
  61.     printf("Max     Rate = %ld\n", qbr.max_rate);
  62.     exit(0);
  63. }
  64.  
  65.