Branch Always Packer 1.00 ========================= (C) Branch Always Software, 1990. All rights reserved. released: January 19, 1990 The file BAPACK.ACC and this text file make up the BA Pack 1.00 release. This is a freeware release, and may be used by all Atari ST users. The software may be copied freely. It may not be modified, disassembled, or used for commercial purposes. What is BA Pack? ================ BA Pack is an executable program packer. It takes an existing program, which may have a .PRG, .TOS, .TTP, or .ACC extender, and creates a file which is smaller but still remains executable. This frees up disk space, and allows more programs to fit on a floppy disk or hard disk. Desk accessories as well as normal applications can be packed. For example, the size of Flash 1.6 drops from 135K to 97K, a savings of about 38K of disk space. Calamus drops in size by about 80K. The larger the program, the more the savings. Typical programs will compress to about 50% to 80% of their original size. BAPACK.ACC itself is packed. On a standard 360K single sided floppy disk, it is usually possible to free up about 100K of disk space, simply by packing the programs on the disk. We tested BA Pack on dozens of different programs, like Flash, Calamus, Word Writer, ST Writer, Tempus, Laser C, ARC, ARC Shell, Quick ST, etc, and all the programs worked perfectly when packed. The reason that BA Pack was written in the first place was to allow us to put more files on our upcoming software releases. We looked at several alternatives: - use a double sided 720K disk - 520ST users would kick and scream - self extracting ARCs - this requires more disk space for extraction - ARC the files - this requires ARC.TTP (which eats more disk space) and some people may not be familiar with ARC. - use two disks - this raises the price of the software All 4 of the above alternatives were unacceptable, so BA Pack was written. Differences between PACKing and ARCing ====================================== A program packer is slightly different than a normal ARCing program. The two main characteristics of a file compression program are the efficiency of compression, and the speed of decompression (or unpacking). Programs like LHARC offer very good compression of files, but they take a long time to do the decompression. A program like ARC is slightly faster but doesn't compress as well. BA Pack is even faster than ARC, but does not compress as efficiently. The reason is simple. A packed program must unpack very quickly, otherwise it will annoy users if they have to wait a minute or two each time they double click on a program. So there is a tradeoff between compression efficiency and pack/unpack time. BA Pack performs the packing and unpacking operations entierly in memory, so it is extremely fast, but as a result, the packed programs are larger than what could be obtained by using ARC or LHARC. The algorithm that BA Pack uses is also different than what ARC might use. There is a compression scheme known as Huffmann encoding, which is widely used for compressing files. Unfortunately, Huffmann encoding and decoding is not terribly fast. The compression scheme used by BA Pack, although quite "brain dead", is effective nevertheless. It works on the fact that a program will tend to have a lot of repeating 68000 instructions, since there are just a limited number of instructions in common use. But you don't have to worry about how BA Pack works! In future releases we will experiment with other methods of compression which may be slower or faster, smaller or larger. The current method was chosen as the best compromise between speed and packed size. There is another consideration that makes BA Pack slightly different. If you try to pack a program that is smaller than 1K, BA Pack won't let you do it. The reason is that the ST allocates disk space 1K at a time. So it doesn't matter if a file is 5 bytes long or 995 bytes long, it still uses up 1K (1024 bytes) of disk space. Therefore, since our main goal is to save disk space, it is unnecessary to try performing packs that save less than 1K of disk space. BA Pack also displays all file sizes in terms of kilobytes rather than bytes, since the actual number of bytes is somewhat unimportant. When a packed program is run, it performs all the unpacking in memory, at a rate of about 30K per second. On a floppy disk system, this will usually mean that a packed program loads faster than the unpacked program, because the time spent unpacking is less than the time it would take to load the larger unpacked program. When running a packed program from a hard disk or RAM disk, the load time will usually be too fast to make a difference. There will be a slight delay on large files as the program unpacks. This may take up to 5 seconds on very large files. Using BA Pack ============= BA Pack uses an intuitive GEM based interface. There is currently only one operation supported: packing. For our purposes it was not necessary to have an unpack feature. We also recommend that whenever you pack a file, you should always keep a backup of the original unpacked version. This is so that the original file can be used for such purposes as ARCing, or patching (a method of updating programs). There are programs out there, such as ARC Shell, which store configuration information right in the program file itself, so when changing the configuration, you must have the unpacked version handy. BA Pack runs as a desk accessory or an application. To install is as a desk accessory, simply rename it to BAPACK.ACC and copy it to the root directory of your boot disk. To run it as an application, rename the file to BAPACK.PRG and run it from the desktop. Programs that are already packed should not be packed again, since this will not reduce the size of the program further. BA Pack is already packed. In addition to the memory required to load the unpacked file into memory, BAPACK uses about 300K of memory for the packing process. Therefore it is almost a must to have at least a megabyte of memory. The memory is required for the fast packing process we regret if this causes an inconvenience to 520ST users. The unpacking of a packed file does not require any additional memory. To go and pack, run BA Pack and click on the button marked "Pack a program". Two file selectors will pop up in succession. The first one is for specifying the file to pack, i.e. the original unpacked program. When that is done, the second file selector will come up and you must type in the name of the packed file. The packed file does not exist yet, but in case you do select an already existing file, it will prompt you to make sure. Once both the packed and unpacked files are selected, BA Pack will go and pack. This will take from a few seconds to a minute, depending on the size and complexity of the unpacked file. You can also click on "Packed file statistics" to check the compression of a packed file, or to check whether a file is already packed or not. To avoid confusion, we recommend the use of the .APP extender on packed files. For example, if you pack Flash 1.6, the unpacked file name is FLASH.PRG, and the packed file name is FLASH.APP. Although APP stands for APPlication, it is so seldom used that it could just as well mean A Packed Program. Make sure that when packing, there is enough room on the disk for the packed file that will be created. Under no circumstances should the packed and unpacked files be the same file! If you do not want the unpacked file, copy it to a floppy disk for future use. The future of BA Pack ===================== BA Pack was written for a very specific purpose, and was not intended to be yet another ARC program. However, even using the current brain dead compression scheme, it is possible to compress non-program files, such as text files, quite well. For example, typical text compresses by about 40%. The main advantage of BA Pack on non-program files as we see it would be its speed of packing and unpacking. If users demand it, BA Pack will be expanded into a full blown ARC-like program, with compression, decompression, archive listings, multiple file support, and other features. So, please vote on the future of BA Pack. Send us your responses by email or regular mail. Please answer as many of the following questions as possible. Q1: Do you find BA Pack useful for packing programs? Q2: Will you continue to use it in its current state? Q3: Would you like the ability to pack non-program files (such as text files, graphics files, etc) given the current speed of compression and efficiency of compression? Q4: If the answer to Q3 was Yes, would you like to see BA Pack use its own built-in GEM based shell, or should it be made comptible with ARC.TTP so that it can be used with ARC Shell? BA Pack will remain freeware, although we reserve the right to make non-freeware versions for distribution with future Branch Always products. Branch Always Software Box 2624, Station B Kitchener, Ontario N2H 6N2 Canada phone: (519)-570-4340 or (519)-747-0386 Compuserve: 73657,2714 GEnie: DAREKM Current versions ================ These are the current versions of current Branch Always products: Quick ST 1.8, available at Atari dealers for $19.95. Quick Find 1.7, Quick Inf 1.7, Quick Label 1.7, Quick View 1.61 - these programs were part of the Quick Utilities shareware package, which is being replaced by a new cheaper package very soon now! To update to the latest versions, mail in your original Quick ST or Quick Utilities disk and $3 and you will receive the updated disk. Well, that's about all our products for now! Please check your local bulletin board or online service on March 2, 1990 for the announcement of our new commercial software products. We also have Compilation Disks available for $9.95. See the "About" boxes in BA Pack for more information. Also be on the lookout for our upcoming "STe Demos", which will be uploaded to the bulletin boards and online services. These will include 4096 color graphics demos, digital stereo sound demos, and more! You will of course need an Atari STe computer, but these are readily available now everywhere but in the United States. They're really cheap here in Canada. Note: to date, we have found that the following popular programs do not run on the Atari STe: Neodesk 2, Hotwire, UIS II, Vkiller. If you try to pack them using BA Pack, they will still not work! Don't forget to vote on the future of BA Pack!
Back to Packer/Depacker