INTRODUCTION

     Sizer reports the size of selected disk objects (including
subdirectories).  It reports the number of bytes in all plain files and the
number of blocks occupied by files and directories.  It is intended for the
Workbench user who wants to know if there is room to drag-copy one or more
icons.

     I wrote Sizer for three reasons.  First, I wanted it for my own use. 
Second, I wanted to learn how to use the Workbench startup module.  Third, I
wanted to learn how to examine the contents of directories using Examine()
and ExNext().


INSTRUCTIONS

     Sizer works only from the Workbench.  If started from the CLI it will
terminate without doing anything.

     Select Sizer and all the objects you want sized using extended
selection.  Click once on the Sizer icon.  Hold down the shift key and
select the objects you want sized.  Double-click on the last one.  Sizer
will open a window and show you the number of bytes and blocks.  While Sizer
is working the numbers will keep changing.  When it finishes it will write
"Program completed.  Select close gadget to exit." into the window.  If the
program fails for some reason it will indicate "Program failed.  Select
close gadget to exit."

     While Sizer is running you can cancel it by selecting the close gadget. 
Sizer will stop executing and close the window.


WARNINGS

     Sizer calculates blocks for the old file system (OFS) and the fast file
system (FFS).  Information about the file systems' overhead is coded in the
program.  Sizer's block counts do not apply to any other file systems.

     Because the Amiga is a multitasking system, the size of a file can
change at any time.  Keep this in mind when using the information Sizer
gives you.


DISTRIBUTION

     Sizer is in the public domain.


AUTHOR

--Fabbian G. Dufoe, III
   350 Ling-A-Mor Terrace South   | GEnie:    F.DUFOE3
   St. Petersburg, Florida  33705 | internet: fgd3%nifty@tct.com
   813-823-2350                   | uucp:     ...tct!deep6!nifty!fgd3


REVISION HISTORY

15 October 1991: Initial release, version 1.0.

18 May 1992: Version 1.1
   If address 0 contained a non-zero value Sizer would fail when it
   encountered a directory within a directory.  The problem was a function
   call that passed a NULL pointer instead of a pointer to a NULL string.
   It was a dumb mistake, but it's been fixed.

13 June 1992: Version 1.2
   Sizer used the number of blocks in the FileInfoBlock (fib_NumBlocks) to
   accumulate its block count.  There are several problems with that
   approach.  First, directories on disk have fib_NumBlocks set to 0
   (for directories on RAM: it is 1) but directories take up one block of
   disk space each.  Second, the number of blocks required for a given file
   may vary depending on whether the file is written to an old file system
   (OFS) or fast file system (FFS) disk.  The block size is different.
   Knowing how many FFS blocks a disk object occupies doesn't tell you
   (easily) how many OFS blocks it will require.

   By calculating the blocks from the block size and the number of bytes in
   the file I solved both problems.  Sizer now reports the number of blocks
   correctly whether the object being sized is on disk or RAM:.  Sizer gives
   you both the number of OFS blocks and FFS blocks.

