home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / grafik / cbgi111 / src / ati / detect.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-04-07  |  1.8 KB  |  102 lines

  1. #pragma inline
  2.  
  3. #include <stdio.h>
  4. #include <dos.h>
  5. #include <mem.h>
  6.  
  7. char *signature = "761295520";
  8. char *extended_vga = "31";
  9.  
  10. #define EXTENDED_REG  0x1ce
  11. #define DATA_I           0xbb
  12.  
  13. main()
  14. {
  15. char memsize, monitor;
  16.  
  17. if( !memicmp( signature, MK_FP( 0xc000, 0x31), 9) && 
  18.     !memicmp( extended_vga, MK_FP( 0xc000, 0x40), 2))
  19.     {
  20.     printf( "Found an ATI VGA Wonder card.\n");
  21.     }
  22. else
  23.     {
  24.     printf( "Did not find an ATI VGA Wonder card.\n");
  25.     return( 0);
  26.     }
  27. asm    cli
  28. asm    mov    dx, EXTENDED_REG
  29. asm    mov    al,DATA_I
  30. asm    out    dx,al
  31. asm    inc    dx
  32. asm    in    al,dx
  33. asm    sti
  34. asm    and    al,0x20
  35. asm    mov    memsize, al
  36. if( memsize == 0x20)
  37.     {
  38.     printf( "Board has 512K installed.\n");
  39.     }
  40. else
  41.     {
  42.     printf( "Board has 256K installed.\n");
  43.     }
  44. asm    cli
  45. asm    mov     dx,EXTENDED_REG
  46. asm    mov     al,DATA_I
  47. asm    out     dx,al
  48. asm    inc     dx
  49. asm    in      al,dx
  50. asm    sti
  51. asm    and     al,0fh
  52. asm    mov    monitor, al
  53. switch( monitor)
  54.     {
  55.     case 0:
  56.          printf( "EGA monitor installed.\n");
  57.      break;
  58.  
  59.     case 1:
  60.          printf( "PS/2 monochrome monitor installed.\n");
  61.      break;
  62.  
  63.     case 2:
  64.          printf( "TTl monochrome monitor installed.\n");
  65.      break;
  66.  
  67.     case 3:
  68.          printf( "PS/2 color monitor installed.\n");
  69.      break;
  70.  
  71.     case 4:
  72.          printf( "RGB color monitor installed.\n");
  73.      break;
  74.  
  75.     case 5:
  76.          printf( "Multisync monitor installed.\n");
  77.      break;
  78.  
  79.     case 7:
  80.          printf( "PS/2 8514 monitor installed.\n");
  81.      break;
  82.  
  83.     case 9:
  84.          printf( "Nec Multisync 2A monitor installed.\n");
  85.      break;
  86.  
  87.     case 0xb:
  88.          printf( "Nec Multisync 3D monitor installed.\n");
  89.      break;
  90.  
  91.     case 0xd:
  92.          printf( "Nec Multisync XL monitor installed.\n");
  93.      break;
  94.  
  95.     default:
  96.          printf( "Unknown monitor installed.\n");
  97.      break;
  98.  
  99.     }
  100. return( 0);
  101. }
  102.