home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 19 / CD_ASCQ_19_010295.iso / dos / prg / pas / swag / win_os2.swg / 0001_DETCWIN.PAS.pas next >
Pascal/Delphi Source File  |  1993-05-28  |  1KB  |  52 lines

  1. { GREG ESTABROOKS }
  2.  
  3. Program Win3XInf;      { Simple Detection routines For Windows 3.X    }
  4.                        { Last Updated March 3/93, Greg Estabrooks     }
  5. Uses
  6.   Crt,
  7.   Dos;
  8.  
  9. Var
  10.   Regs : Registers;    { to hold register info }
  11.  
  12. Function Win3X : Boolean;
  13. { Routine to determine if Windows is currently running }
  14. begin
  15.   Regs.AX := $4680;    { Win 3.x Standard check }
  16.   Intr($2F, Regs);     { Call Int 2F }
  17.   if Regs.AX <> 0 then { if AX = 0 Win in Real mode }
  18.   begin                { else check For enhanced mode }
  19.     Regs.AX := $1600;  { Win 3.x Enhanced check }
  20.     Intr($2F, Regs);   { Call Int 2F }
  21.     if Regs.AL in [$00,$80,$01,$FF] then { Check returned value }
  22.       Win3X := False   { Nope not installed }
  23.     else
  24.       Win3X := True;   { Ya it is }
  25.   end
  26.   else
  27.     Win3X := True;     { Return True }
  28. end;
  29.  
  30.  
  31. Function WinVer :Word;
  32. {  Returns a Word containing the version of Win Running }
  33. {  Should only be used after checking For Win installed }
  34. {  Or value returned will be meaningless                }
  35. begin
  36.   Regs.AX := $1600;    {  Enhanced mode check }
  37.   Intr($2F, Regs);     {  Call Int 2F         }
  38.   WinVer := Regs.AX;   {  Return proper value }
  39. end;
  40.  
  41.  
  42. begin
  43.   ClrScr;
  44.   if Win3X then
  45.   begin
  46.     Writeln('Windows is Running! ');    { Display version }
  47.     Writeln('Version Running is : ', Lo(WinVer), '.', Hi(WinVer));
  48.   end
  49.   else
  50.     Writeln('Windows is not Running!');
  51. end.
  52.