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.