home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_08_07 / 8n07096a < prev    next >
Text File  |  1990-06-19  |  2KB  |  57 lines

  1.  
  2. /* WHICH_MOUSE -    interrogates a mouse driver to determine
  3. **                          hardware specifies.
  4. **
  5. ** compiler:   Microsoft C v5.10, or QuickC
  6. */
  7.  
  8. #include <dos.h>
  9.  
  10. void which_mouse ( void)
  11.  
  12.      {
  13.      union REGS InReg, OutReg ;
  14.      unsigned char sub_species, IRQnum ;
  15.  
  16.      static char *type_str[6] =
  17.           {                       /* type of mouse */
  18.           "an unidentified",      /* 0 */
  19.           "a bus",                /* 1 */
  20.           "a serial:              /* 2 */
  21.           "an InPort",            /* 3 */ 
  22.           "a PS/2",               /* 4 */ 
  23.           "a Hewlett-Packard"     /* 5 */ 
  24.           } ;
  25.      static char *IO_req[8] =
  26.           {                             /* IRQ number */
  27.           "a PS/2 auxiliary port.",     /* 0 */
  28.           "INVALID.",                   /* 1 */
  29.           "a Bus card interrupt.",      /* 2 */
  30.           "the COM2 interrupt.",        /* 3 */
  31.           "the COM1 interrupt.",        /* 4 */
  32.           "the LPT2 interrupt.",        /* 5 */
  33.           "INVALID.",                   /* 6 */
  34.           "the LPT1 interrupt."         /* 7 */
  35.           };          
  36.  
  37.      /* interrogate the driver */  
  38.      InReg.x.ax = 36 ;  
  39.      int86( 0x33, &InReg, &OutReg) ;
  40.                               
  41.      /* report driver version */
  42.      printf ("Major_Version: %x\n", OutReg.h.bh) ;
  43.      printf ("Minor Version: %x\n", OutReg.h.bl) ;
  44.  
  45.      /* range checks */
  46.      sub_species = ((OutReg.h.cl > 5) ? 0 : OutReg.h.ch) ;
  47.      IRQnum      = ((OutReg.h.cl > 7) ? 1 : OutReg.h.cl) ; 
  48.  
  49.      printf ("Mouse type %x is %s device that uses\n",
  50.           OutReg.h.ch, type_str[sub_species]) ;
  51.  
  52.      printf ("IRQ number %d:\t%s\n",
  53.           OutReg.h.cl, IO_req[IRQnum]) ;
  54.  
  55.     }
  56.  
  57.