home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / vp21beta.zip / AEXMPSRC.RAR / TESTUTIL / TESTUTIL.PAS
Pascal/Delphi Source File  |  2000-08-15  |  4KB  |  117 lines

  1. {█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█}
  2. {█                                                       █}
  3. {█      Virtual Pascal Examples. Version 2.1.            █}
  4. {█      VPUtils example                                  █}
  5. {█      ─────────────────────────────────────────────────█}
  6. {█      Copyright (C) 1995-2000 vpascal.com              █}
  7. {█                                                       █}
  8. {▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀}
  9.  
  10. { This program demonstrates how to get/set low-level      }
  11. { information that would normally require BIOS calls or   }
  12. { access to CMOS RAM if written for DOS.                  }
  13.  
  14. program TestUtil;
  15.  
  16. {$PMTYPE VIO}
  17. {&CDecl-,T-,X+,Delphi+,Use32+}
  18.  
  19. uses
  20.   Strings, VPSysLow, VPUtils;
  21.  
  22. const
  23.   DrvStr : Array[TDriveType] of PChar
  24.          = ('Floppy', 'FAT', 'HPFS', 'Invalid',
  25.             'Novell', 'CD ROM', 'Network', 'NTFS', 'Unknown',
  26.             'TVFS', 'Linux Ext2', 'JFS');
  27.  
  28. Var
  29.   Osver  : Word;
  30.   s      : String;
  31.   Name   : String;
  32.   Drives : DriveSet;
  33.   Ch     : Char;
  34.   Rows, Cols, Colours: Word;
  35.   P1, P2, P3: Pointer;
  36.  
  37. begin
  38.   { Set screen resolution to 80x50 characters }
  39.   VPUtils.SetVideoMode( 80, 50 );
  40.  
  41.   WriteLn('Virtual Pascal TestUtil            Copyright (C) 1996-2000 vpascal.com');
  42.   Writeln;
  43.   { Get and display the current OS/2 version }
  44.   OsVer := VPUtils.OsVersion;
  45.   Writeln( '  OS Version        : ',Lo(OsVer),'.',Hi(OsVer) );
  46.  
  47.   { Get the process ID of this process }
  48.   Writeln( '  Process ID        : ','$',Int2Hex(VPUtils.GetForegroundProcessID,4) );
  49.  
  50.   { Get the current time since midnight in milliSeconds }
  51.   Writeln( '  Time in mSec      : ',VPUtils.GetTimemSec );
  52.  
  53.   { Output current window size }
  54.   VPUtils.GetVideoModeInfo( Cols, Rows, Colours );
  55.   Writeln( '  Console window is : ',Cols,'x',Rows,', ',Colours,' colours');
  56.  
  57.   { Get the volume label of drive C: }
  58.   Writeln( '  C: volume label   : ',VPUtils.GetVolumeLabel( 'C' ) );
  59.  
  60.   { Get the boot drive letter }
  61.   Writeln( '  Boot Drive Is     : ',VPUtils.GetBootDrive,':' );
  62.  
  63.   { Get the drive type for all valid drives }
  64.   GetValidDrives(Drives);
  65.   for Ch := 'C' to 'Z' do
  66.     if Ch in Drives then
  67.       Writeln( '  Drive Type ('+Ch+')    : ',DrvStr[VPUtils.GetDriveType(Ch)] );
  68.  
  69.   { Search PATH for CMD.EXE and display result }
  70.   Name := {$IFDEF OS2} 'CMD.EXE' {$ELSE} 'COMMAND.COM' {$ENDIF} ;
  71.   If VPUtils.FileExistsOnPath( Name, s ) then
  72.     Writeln( '  File '+Name+'    : ',s )
  73.   else
  74.     Writeln( '  File '+Name+' cannot be found on PATH' );
  75.  
  76.   { Check whether any of the standard files are redirected with pipes }
  77.   Writeln( '  StdIn redirected  : ',not VPUtils.IsFileHandleConsole( SysFileStdIn ) );
  78.   Writeln( '  StdOut redirected : ',not VPUtils.IsFileHandleConsole( SysFileStdOut ) );
  79.   Writeln( '  StdErr redirected : ',not VPUtils.IsFileHandleConsole( SysFileStdErr ) );
  80.  
  81.   { Display the state of INSert and CAPS Lock }
  82.   Writeln( '  INSert State      : ',VPUtils.GetKeyboardState( kbd_Insert ) );
  83.   Writeln( '  CAPS Lock State   : ',VPUtils.GetKeyboardState( kbd_CapsLock ) );
  84.  
  85.   { Fullscreen only: Set the state of INSert and CAPS Lock }
  86.   Writeln( '  ... Disable Insert, Enable Caps Lock:' );
  87.   SetKeyboardState( kbd_Insert, False );
  88.   SetKeyboardState( kbd_CapsLock, True );
  89.  
  90.   { Re-display keyboard state }
  91.   Writeln( '  INSert State      : ',GetKeyboardState( kbd_Insert ) );
  92.   Writeln( '  CAPS Lock State   : ',GetKeyboardState( kbd_CapsLock ) );
  93.  
  94.   { Display currently used codepage }
  95.   Writeln( '  Current Codepage  : ', VPUtils.GetCodePage );
  96.  
  97.   { Allocate a few bytes of dynamic memory }
  98.   GetMem(P1, 100);  GetMem(P2, 1000);
  99.   { Display dynamically allocated memory }
  100.   Writeln( '  Dynamic Memory    : ', VPUtils.MemUsed, ' (System: ',AllocMemSize,')' );
  101.  
  102.   { Write the value of pointer P1 }
  103.   Writeln( '  Pointer P1        : ', VPUtils.Ptr2Hex(P1));
  104.  
  105.   { Free the dynamically allocated memory }
  106.   FreeMem(P1); FreeMem(P2);
  107.   { Display dynamically allocated memory }
  108.   Writeln( '  Dynamic Memory    : ', VPUtils.MemUsed, ' (System: ',AllocMemSize,')');
  109.  
  110.   { Again, display time in mSec }
  111.   Writeln( '  Time in mSec      : ', VPUtils.GetTimemSec );
  112.  
  113.   Writeln;
  114.   Write('Press ENTER');
  115.   Readln;
  116. end.
  117.