home *** CD-ROM | disk | FTP | other *** search
- /*****************************************************************************
-
- This is a simple example of how to use INT 31h/AX=EEFFh to get information
- about the DOS extender and the protected mode system. DOS extender developers
- are encouraged to support this call as a standard detection method.
-
- *****************************************************************************/
-
- #include <stdio.h>
- #include <i86.h>
-
- main (void)
- {
- union REGS r;
- struct SREGS sr;
- char far *copyright;
- char *systems[] = {"Raw", "XMS", "VCPI", "DPMI"};
- char *processor[] = {"80386", "80486", "80586","Unknown"};
-
- r.x.eax = 3;
- int386 (0x10, &r, &r);
-
- segread (&sr);
- r.w.ax = 0xEEFF;
- int386x (0x31, &r, &r, &sr);
-
- if (r.x.cflag) {
- printf ("Extender Info Function Not Present!\n");
- exit (1);
- }
-
- copyright = MK_FP (sr.es, r.x.ebx);
-
- printf ("Copyright String:\n");
- printf ("-----------------\n");
- printf ("%s\n\n", copyright);
-
- printf ("System Information:\n");
- printf ("-------------------\n");
-
- printf ("Extender Code : %.6Xh ", r.x.eax);
- printf ("(%c%c%c%c)\n", r.x.eax >> 24, r.x.eax >> 16, r.x.eax >> 8,
- r.x.eax);
- printf ("Extender Version : v%d.%d\n", r.h.dh, r.h.dl);
-
- printf ("System Type : %s\n", systems[r.h.ch]);
-
- if (r.h.cl > 5) r.h.cl = 6;
- printf ("Processor : %s\n", processor[r.h.cl-3]);
-
- return 0;
- }
-
-