home *** CD-ROM | disk | FTP | other *** search
- /* ------------------------------------------------------ */
- /* DETECT.C */
- /* Programm stellt den angeschlossenen Videoadapter fest */
- /* (c) 1988 by Jens Krüger & TOOLBOX */
- /* ------------------------------------------------------ */
- #include <stdio.h>
- #include <dos.h>
-
- /* BIOS-Funktion */
- #define getmode 0x0F
-
- /* Nur 80-Spalten-Modi erlaubt */
- #define width 80
-
- /* Return-Werte der Funktion detect() */
- #define ERR 0
- #define MONO 1
- #define CGA 2
- #define EGA 3
-
- int detect(void)
- {
- union REGS regs;
- short mode;
- int screen;
-
- regs.h.ah = getmode;
- int86(0x10, ®s, ®s);
- mode = regs.h.al;
-
- if (regs.h.ah != width)
- screen = ERR; /* Nur 80-Spalten-Modi erlaubt ...*/
-
- /* und einer der Charakter-Modi */
- if (mode == 7 || mode == 0x87)
- screen = MONO;
- else
- if ((mode >=0 && mode <=6)
- || (mode >=0x80 && mode <=0x86))
- screen = CGA;
- else
- if ((mode >=0x0D && mode <=0x10) || (mode >=0x8D
- && mode <=0x90))
- screen = EGA;
- else
- screen = ERR;
- return screen;
- } /* Ende von detect() */
-
- main() /* Zur Demonstration der Funktion detect() */
- {
- int screen;
-
- screen = detect();
-
- switch (screen)
- {
- case MONO :
- printf("\nMonochrome-Display detected !\n"); break;
- case CGA :
- printf("\nColor-Display detected !\n"); break;
- case EGA :
- printf("\nEGA-Display detected !\n"); break;
- case ERR :
- printf("\ndetect() : ERROR !\n"); break;
- default :
- printf("\nInternal Error !\n"); break;
- }
- exit (screen);
- }
- /* ------------------------------------------------------ */