home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_02_02 / 2n02023a < prev    next >
Text File  |  1990-12-17  |  1KB  |  49 lines

  1. #ifdef  __HIGHC__
  2. #pragma Alias(UpdateClock,    "_UpdateClock");
  3. #pragma Alias(clock_x,        "_clock_x");
  4. #endif
  5. #ifdef __WATCOMC__
  6. #pragma aux (OUR_C) UpdateClock;
  7. #endif
  8.  
  9. #include <dos.h>
  10. #include "defs.h"
  11.  
  12. UINT GetExtender(void)
  13. {
  14.    union REGS regs;
  15.    struct SREGS segregs;
  16.    UINT  Extender = DOS_REALMODE;
  17.  
  18.    regs.x.AX = 0x2B00;
  19.    regs.x.CX = 0x4149; /* "AI" */
  20.    regs.x.DX = 0x413F; /* "A?" */
  21.    int86(0x21, ®s, ®s);
  22.    if (regs.x.AX == 0x4149)
  23.       {
  24.       if (regs.x.CX == 0x0202)
  25.          Extender = ERGO_OS286;
  26.       else if (regs.x.CX == 0x0203)
  27.          {
  28.          segread(&segregs);
  29.          if (segregs.cs == 0x0F)
  30.             Extender = ERGO_OS386;
  31.          else
  32.             Extender = ERGO_OS286;
  33.          }
  34.       }
  35. #if defined(_I386) || defined(_I486) || defined(__386__)
  36.    else
  37.       {
  38.       regs.x.AX = 0x3000;
  39.       regs.x.BX = 0x50484152;       /* "PHAR" */
  40.       int86(0x21, ®s, ®s);
  41.       regs.x.AX &= 0xFFFF0000;
  42.       if (regs.x.AX == 0x44580000)   /* "DX00" */
  43.          Extender = PHARLAP_386;
  44.       }
  45. #endif
  46.    return(Extender);
  47. }
  48.  
  49.