Sl (ARP) version 2.03 by Peter Thompson   - 3544 bytes in size. Accept no imitations.   ## 26 ## 26 ## 26 ## 26 ## 26 ## 26 ## 26 ## 26 ## 26 ## 26 ## 26 ##  NO WARRANTY OF ANY KIND IS GIVEN FOR THIS PROGRAM. USE AT YOUR OWN RISK. Explicit permission is given for this program to be included in the Fred Fish Public Domain library series. The binary program may be distributed in any way as long as: a) Copyright remains solely vested in the author. b) It remains unaltered. c) The whole of this file accompanies it. d) No charges other than media costs are made for distribution. e) It is not used in any facility that conducts the design and/or testing of weapons of war or of handgun manufacture. The misuse of both is too widespread for exceptions to be made. Thanks are due to: ~~~~~~~~~~~~~~~~~~ Charlie Gibbs for a great, fully featured FREE assembler (A68k 2.71) The Software Distillery for the (FREE) linker (Blink version 6.9) Tim Strachan for publishing PPlist & Sl in MegaDisc. What does it do? ~~~~~~~~~~~~~~~~ Sl displays the sizes of datafiles crunched using PowerPacker (up to version 3.0b). It also displays several other things : the version of the data crunching algorithm, the efficiency used, the percentage of the size of the original file that the crunched file saves, and many others more boring than these. Sl also does much the same thing for files that Most (by Richard Wynn) decrunches. It also recognises IFF files. Listings are automatically sorted alphabetically by filename and are indented by 2 spaces for each directory level. Filenames are displayed in fields just large enough for the largest filename in the listing. Sl is 100% re-entrant and thus can be made resident. How can I control this monstrosity? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Through CLI only. See below for futher details. Do not attempt to start Sl from the Workbench; the GURU will STRIKE! Hitting control-C terminates the disk scan. Sl prints ***Break and then prints as much of the listing as it had scanned before you hit control-C. If you were to type Sl ? you would see this message appear: Path,CHECK=CHK/k,ONLY/s,NOICONS=NOWB/s,ALL/s,FMT/k: Type ? again and press return and the following message will appear: Sl (ARP) 2.03 © December 1991 (freeware) by Peter Thompson. Usage : Sl [file or directory] [CHECK=CHK filetypes] [ONLY] [NOICONS=NOWB] [ALL] [FMT options] - see also Sl203.Doc. CHECK for Least (m,l), PowerPacker (p,q), and IFF (i) datafiles; list ONLY these files; list NOICONS; scan ALL sub-directories. FMT: show file (n)otes; hide protection (b)its, (d)ate, (t)ime. The case (upper or lower) of options does not matter.  The options to CHECK mean: p,q - recognise PowerPacker datafiles. For some unknown reason, Nico put the decrunched length at the end of the file & it takes extra work to find it. Use q to save time if you just want to find the method with which a file is packed but are not particularly interested in its real length. The only drawback is that the crunched rather than decrunched length is added to the running total, thus giving inaccurate results. m,l - recognise Most datafiles (those crunched with Least). The length info is stored at the start rather than the end of the file, so which option you choose makes no difference. [Ed: This will apply less now since we no longer use either Most or Least on Megadisc.] i - recognise all IFF files. At present this just prints out the four letter file code (e.g. ILBM). Future updates may actually understand what some of the codes mean and add supplementary information. If ONLY is present on the command line, only the files specified by CHECK are listed. This option has no effect if no CHECK is specified. If NOICONS or NOWB is present on the command line, no files ending in .info (that is, WorkBench icons) are tested or displayed. If ALL is present on the command line, all subdirectories of the Path are displayed (and all their subdirectories, etc, etc...).  The options to FMT mean: n - if a filenote/comment is attached to a file or directory it is displayed on the following line (like the DOS command List). b - protection bits (eg ----rwed) are NOT displayed for each file. d - does NOT show date file was last written (eg 25-Dec-90) t - does NOT show time file was last written (eg 17:00 is 5pm) s - shows the directories first in a listing; i.e. like ARP dir (directories followed by alphabetically sorted filenames) instead of like ARP list with SORT switched on (sorts in name alphabetical order). Finally, the path may contain wildcard expressions; if you don't know what they are, consult any good DOS manual or read the documentation in the ARP distribution. They're much too complex to explain in the time I care to devote to the subject. Examples: "Sl ALL FMT bdt" looks like "dir opt as". "Sl ALL FMT n" looks like List, but goes through all subdirectories. "Sl CHECK pm NOICONS FMT b" shows all files (except those ending in .info) in the current directory, with date & time but not protection bits, and checks all files to see if they are PowerPacked or Most datafiles, and totals how many bytes the compressed files would occupy if expanded (you get all that?). "Sl ALL FMT n CHK pmi" shows all files in all subdirectories, with protection bits, filenote (if present), date & time, checks for PowerPacker, Most & IFF filetypes, totals the expanded size of all compressed files (this is a side effect of specifying a CHECK string), and causes your disk drive to thrash something chronic (this is a side effect of AmigaDos). Information ~~~~~~~~~~~ I have had to compress information slightly to make it format nicely: below are a couple of tables for coversion from my notation to the real meaning: IF YOU SEE: IT MEANS: MOST File needs Most program (by Richard Wynn) to be displayed PP11 Crunched under PowerPacker 1.x PP2+ Crunched under PowerPacker 2.0+ PX2+ Crunched under PowerPacker 2.3+ and encrypted Fast Crunched with efficiency Fast Poor Crunched with efficiency Mediocre Good Crunched with efficiency Good Nice Crunched with efficiency Very Good Best Crunched with efficiency Best Requirements ~~~~~~~~~~~~ Sl is 100% pure re-enterant assembler. It does, however, need the arp.library version 39 (ARP 1.3) or higher. It's only other needs are memory : about 350 bytes for every filename or directory that appears in the listing. Sl exits gracefully (all memory, etc. freed) after printing a consolatory message if it runs out of memory. It uses stack space as well; but at about 32 bytes a directory level it's nothing much to worry about. Sl has only been tested under Workbench/Kickstart 1.3. Bugs & such ~~~~~~~~~~~ Bugs: Sl can't tell the difference between a link (under Workbench 2.0) and an ordinary file/directory. This is common to all ARP based commands. Fix : Wait for the WorkBench 2.0 version, and don't make links from any directory to its ancestor meanwhile... Note: Sl ALL counts when is non-wild. This is a feature, not a bug. *IF* you discover a bug (or better still an undocumented feature) write to the address below and tell me about it. The first report of a bug that I can both duplicate and fix gets a free update. I would be glad to hear from any of you who have bug reports, suggestions for improvement of the program, job offers, spare cash, etc., etc., etc. Improvement ideas in the queue: 1) Workbench 2.0 only version. Due as soon as I can afford the upgrade and documentation. 2) IFF intelligence. Dump data on files e.g. ILBM: 640x200x6 3) Recognition of other file types (eg PowerPacker command files, Imploded files, LHarc/Zoo/Arc/PKZip/Pak archives, etc.) 4) Implementation of certain features from list; e.g. LFORMAT, TO, UPTO, SINCE. KEYS, BLOCKS, NOHEAD, FILES, and DIRS will probably not be supported. Contact: ~~~~~~~~ SNAIL: Peter Thompson 33 Pleasant Street Pascoe Vale Vic 3044 AUSTRALIA EMAIL: No reliable email address, but pdt@mundil.cs.mu.OZ.AU may reach me.  A FEW CLARIFICATIONS ARP stands for AmigaDos Replacement Project. It was(is?) an effort by a group of assembler programmers to provide a set of CLI commands that were smaller, faster and more flexible than the standard AmigaDos 1.2 and 1.3 commands, as well as a library of useful functions for use in other programs - for example, the (in)famous file requestor. The latest version is ARP 39.1, available from almost anywhere (including MegaDisc) - except Fred Fish. 'PowerPacker' is an excellent cruncher written by Nico François. It is available as Shareware in versions BEFORE 3.x on several Fish disks. Higher versions (3.0a and up - much faster!!!) can be obtained from: UGA Software P.O. Box 881 3700 AW Zeist NETHERLANDS UGA also publish "NewsFlash", a disk magazine. 'Most' is a text and file viewer written by Richard Wynn. It also reads files that have been crunched using his own cruncher, Least - which has not been released. Richard Wynn can probably be contacted via Megadisc. IFF is a standard for various types of files, devised by Electronic Arts in 1984 & released in 1985. IFF stands for Interchange File Format. More detail would be both boring and redundant. If you're really interested, get the Amiga IFF Developers disk off Fred Fish. History ~~~~~~~ 2.03 - 30 December 1991 - 3544 bytes 1. Got tired of trying to remove residual bugs from date subroutine and decided to use the ARP datestamp/string conversion routines. This shrunk the code a bit. 2. "Sl XXX: " now prints the name of the volume mounted in device XXX, not XXX: as was the case in all previous ARP based versions. 3. Used a couple more ARP library functions to replace my own code. 2.02 - 7 December 1991 - 3704 bytes 1. Bug fix in PowerPacker check routine - was ignoring anything but Best files - I never use any other setting myself, so... No major hassle, since 2.01 was never released. 2. Bug in number of directories count (sometimes twice, sometimes none) (hopefully) removed. 2.01 - 21 November 1991 - 3664 bytes 1. Arp based. a) wildcards. b) GADS command line parsing. c) BREAK handling now ARP's responsibility. I'm not sure yet if I have to do anything special myself as well.. 2. Shifted assemblers from Seka to a68k/blink combination. 3. Massive changes to command line parameters format, too numerous to enumerate. 4. Since the arrival of PPatch and PPLoadSeg, icons CAN be crunched; files ending in .info are now ignored only if NOICONS is set. 1.4c - 5 May 91 - 3604 bytes 1. Oops! Found I was including instead of excluding *.info on PP & MOST files. 2. Made IFF slightly more robust. 3. Work on ARP version (Wildcards, full path, readable switches, smaller code size (I hope)) in progress. 1.4b - 14 March 91 - 3608 bytes 1. Discovered how to fill field with 0's when using Exec RawDoFmt() - just prefix field width with 0. This let me get rid of a couple of kludges. 1.4a - 9 March 91 - 3636 bytes 1. Changed name from PPList to Sl to reflect new abilities. 2. Changed from stack to global memory allocation. Effects: now uses very little stack. 3. Changed default options to mimic list command. 4. Added Most & IFF file recognition. 5. Changed format of directory listings. 6. Fixed minor bug in date leap year calculations. 7. fixed another minor bug in date calculations. 8. parsing COW? maybe not... a single letter was not recognised under ConMan. Now not dependent on arglen. 1.31 - 11 Jan 91 1. Fixed QUAD (QUick And Dirty) parsing code. It is now COW (Completely Obscure but Works). 2. Ctrl-C now stops a directory listing. This is handy for when you have made a mistake with your options or you just can't stand the noise the drive is making... For those who want to know these things, I carefully replaced the exception vectors with my own for the duration of the program. For those of you who don't want to know those things.. well.. tough.  ## 26 ## 26 ## 26 ## 26 ## 26 ## 26 ## 26 ## 26 ## 26 ## 26 ## 26 ##