DriveCheck v.034

DRIVECHK.CMD is a REXX program to scan a drive and determine wasted space 
for both the HPFS and FAT file systems.  Usage and more specific 
information is in the comments of the program.  You can run INSTALL.CMD to
copy the files to a directory, set up an INI file (only useful for the
Visual REXX portion), and create a desktop object.

History:

[no version] - Initial release just displayed directories being worked on.

v.02  - Added display of file being worked on, and ability to direct final 
        output to a file.

v.021 - Fixed problem with how data from 4OS2 was handled - apparently 4OS2
        2.0 and 2.51 have different outputs for the DIR command.  Also
        fixed problem with an aliased DIR in 4OS2 screwing up the output.
        Many thanks to Kari Jackson <KARIJACKSON@delphi.com> for pointing
        out these oversights, and helping me fix them.

v.03  - Recently re-discovered Visual REXX, and implemented it.  You can
        still optionally use it in text-only mode.  When running in VREXX
        mode, starting from CMD.EXE does not bring the desktop to focus
        for some reason (if you are in a full screen session).  You will
        have to manually switch to the desktop.  To use the graphical
        method, you must have VREXX installed on your system.  VREXX is
        available from hobbes.nmsu.edu or any good OS/2 BBS as VREXX2.ZIP

v.031 - Fixed the way command-line arguments were processed so that it
        wouldn't be necessary to put something in the place of '/S' in 
        order to use '/O:' for an outfile.  

v.032 - Fixed the screwups I created in the last fix regarding command-line
        arguments.  They should now work logically.  Also discovered a bug
        in 4OS2 version 2.51 Revision A, concerning the display of a file's
        EA size.  If you want to count EA sizes, then use CMD until 4OS2
        is fixed.  Also fixed a screwup in the way I was handling the 
        detection of VRexx.  And I also fixed a silly screwup involving
        putting a carriage return/line feed on strings (I had used 0x0a0d
        instead of 0x0d0a, the correct order).  All should now work well.

v.033 - Fixed minor errors, and found out that the aforementioned bug with
        4OS2 is actually a bug in the 32-bit OS/2 API (CMD is 16-bit).  Any
        EA that is greater than 32k in size will be reported as 32k, due to
        the 32-bit API call returning twice a file's actual EA, yet not
        returning a value greater than 64k (which would be fine if it
        reported the correct figure, since 64k is the limit of an EA).  
        4OS2/32's workaround (halving the returned figure) works up to 32k.
        4OS2/16, as it uses the same 16-bit API call as CMD, does not have
        any problems with EA sizes.

v.034 - Added detection of Object REXX, and use of 5 millisecond delay in   
        three locations if Object REXX is used (SysSleep in Classic REXX
        doesn't support fractional seconds).  The performance penalty is 
        negligible, but the CPU usage level is quite a bit less (while the
        default priority of REXX programs ensured that other normal
        priority programs ran fine, idle-only programs suffered).  Will be
        experimenting with more of Object REXX later, probably rewriting,
        and therefore separating the programs in Classic and Object REXX.
        Also fixed some minor glitch with the installation utility, and
        worked around RxFuncQuery and RxFuncAdd not returning results as
        documented, when detecting the presence of VRexx.


Direct any comments or questions to:

Mike Ruskai <thanny@ibm.net>
Mike Ruskai @1:107/634
