POWERPACKER PROFESSIONAL Typed in by ???. Edited by PARASITE. AN INTRODUCTION PowerPacker is a userfriendly command and data cruncher, this means a menu driven utility that can crunch almost any file on your disks. It can be started from the CLI or the WorkBench, just type it's name in the CLI window or doubleclick it's icon. PowerPacker will detach itself from the CLI so you can close the CLI window. When you use it for the first time it's best to maintain a certain order in your actions (as we will see in chapter 6 of this document): (a) Check the packer options at the beginning of a session (Prefs menu) (b) Load the file from disk (Project menu) (c) Wait for the file to (de)crunch. (d) Save the file back to disk (Project menu) Apart from crunching, you can also recrunch files that were crunched by most other crunchers. The HunkLab enables you to e.g. force code or data in chip ram. The script allows you to e.g. crunch a dozen of files overnight. Before I demonstrate how to use PowerPacker, let's look at the file requester and an overview of the menus and capabilities. THE FILE REQUESTER Whenever you are required to enter a filename, PowerPacker sets up a file requester. This requester lists all the files (and their length) of a selected directory. You don't have to wait for the directory scan to end, you can select a file or directory the moment you see it, or you can enter it in the appropriate string gadget. If you press in a string gadget you will activate the other string gadget (file or directory). To get a list of all devices connected to your Amiga as well as all the assigns made press the right mouse button. If you wait for the directory scan to end and quit the file requester, the next time you use it all the files will still be there, so you don't have to wait for the directory to be read again. This feature has one disadvantage : if files are changed or added to the selected directory they won't be shown in the list, or they will be shown with the wrong filelength, the next time the requester appears. Therefore, if you think anything has been changed to the selected directory, use the 'GET DIR' gadget to re-read the directory. (E.g. when you save a crunched file on top of the old one, the old file length will be shown in the requester.) Use the 'Hide/Show .info' gadget to hide or show .info files (workbench icons). The 'ALL' and 'CLR' gadget are used to select all files or to clear the selection of all files, note that these gadgets are not always available. When the ALL and CLR gadgets are available you can also extend-select filenames, just press the -key when selecting files. The entries are always sorted and files and directories are seperated. The requester also contains an invisible dragbar so you can drag it to another screen position to see what is underneath. THE BASIC MENUS PROJECT The project menu contains the file manipulation options. Most of them speak for themselves: Load -> Load a file from disk and start the (de)crunching. Files crunched with other (supported) crunchers will be recognized and decrunched. Save -> Save the (de)crunched or processed file in memory to disk. Delete -> Delete a file from disk. Read -> Read an ASCII (text) file using PPMore. WorkBench -> Open or close WorkBench if possible. (Adds 42K !) Sleep -> Put PowerPacker to sleep on the WorkBench Screen, this frees 40-50K. WARNING: All buffers will be deallocated, so you are advised to save things first. About... -> Show general information. Quit -> Quit the program. NOTE: - To read a file PPMore is used. The first time you use 'Read' PPMore will probably not be found and PowerPacker will ask you where it is. Just use the file requester and select PPMore, save the preferences if you want PowerPacker to remember this the next time you run it. PREFS The prefs menu contains all the (de)cruncher settings. You can select to (de)crunch command files or data files. If you want the crunched version of your file to be executable, select 'Command file'. Now PowerPacker knows it has to add a decrunch header. If the file you want to crunch only contains data (e.g. source codes of your programs), select the 'Data file' option. This can be handy if you're going to use the PowerPacker CLI commands. I'll discuss these commands in chapter 7 of this document. NOTE: - PowerPacker will automatically decrunch a previously crunched file. You don't have to select crunch or decrunch mode anymore as in PowerPacker 2.0a. The 'Decrunch Color' submenu contains the following options : Color 0 -> The background color will change while decrunching Color 1 -> The text color changes Pointer -> Only the mousepointer's color changes Scroll -> Weird effect (just try it out !) None -> If your eyes are wearing out. These options indicate what color will flash when a file is decrunched. You can change this option before saving a crunched file, so you can save a version of your crunched program that flashes in color 1, and one that flashes in the mouse pointer. The default value is 'Pointer'. In the efficiency submenu you will find the following possibilities : Fast -> Use for small files, or for quick crunch. Mediocre -> Better but slower. Good -> Default, gains 40-50% in most cases. Very Good -> A few percent better than good. Best -> Gives best results (not always !) NOTE: - 'Best' isn't always the best. Small files crunch best with 'Very Good' or even 'Good'. The 'Speedup Buffer' controls the size of the memory buffer used to speed up crunching. You have three choices: Small -> This takes from 2K to 32K (about 8 times faster than 2.3b) Medium -> This takes from 4K to 64K (about 12 times faster) Large -> This takes around 200K !! (about 40-50 times faster !) NOTE: - If you have a 512K Amiga you probably can't use the large speedup buffer. The remaining preference switches: Data Suffix -> Attach '.pp' suffix to data files after crunching or remove '.pp' after decrunching. It is advised that you leave this switch on so you can easily spot crunched data files. BCPL Header -> Select this if you want the special decrunch header for BCPL programs (soon to be a thing of the past :-). The Workbench c: directory contains such programs. Auto HunkLab -> File is put through hunklab before crunching when you select 'Load', this way you can always automatically remove symbol and debug hunks (see further). Auto Recrunch-> If the file is crunched with an alien cruncher it is not only decrunched, but it is also recrunched. Encrypt File -> See section 1.3.3 of this manual. Color Crunch -> Flash the selected decrunch color when crunching, giving you an idea what the decrunching will look like (provided that you don't change any options just before saving to disk). LED Crunch -> Your power-LED flashes while crunching, just like the screencolors. Now, you can even turn off your monitor and still see when the cruncher has finished. Paging -> Pause and wait for mouse button when supervisor window fills up. Overwrite -> Don't prompt if it's ok to overwrite a file when saving. Verify sleep -> When this switch is on you will be prompted if you are sure you want PowerPacker to go to sleep. Sound Alarm -> When this is on PowerPacker beeps when done with crunching. Use 'Save Preferences' to save the preferences to your boot disk. The preferences will be saved in the file 's:PowerPacker.prefs', this file will be 86 bytes long. When PowerPacker 3.0a is first started it will attempt to load this file and adjust the preferences. NOTE: - While crunching, you can press both mousebuttons at the same time to abort. Keep them pressed down long enough ! CRYPT When the 'Encrypt File' switch is on PowerPacker will not only crunch files, it will also encrypt them so nobody else but you can decrunch them. Just before crunching a file PowerPacker will ask you for a password. You will be presented with a string gadget with a special feature, it won't show you what you are typing ! After entering your password you will be asked to enter it again, this is done to verify that you haven't made a typing error (watch out you don't make the same error twice :-). You can also use the 'Last' gadget to re-enter your last password again, or the 'Abort' gadget to abort the encryption and just crunch the file. When you try to load a crunched encrypted file PowerPacker will once again prompt you for your password. If you enter the correct one the file will be decrypted and decrunched. If you don't know the password, bad luck, THERE IS *NO* WAY YOU CAN DECRUNCH THIS FILE !! From version 3.0a onwards PowerPacker also encrypts executables. When you run an encrypted executable you will be prompted for the password. A small window will open and you have 3 chances to type your password followed by . There is no possibility to correct typing mistakes, this would just have made the decrunch header too long (currently 792 bytes). NOTE: - Encryption can currently not be used in a script. - Your password can be up to 16 characters long, any character is accepted, lowercase and uppercase are DIFFERENT !!!! - Take care when using the 'Last' gadget, be sure to remember what your last password was. - Don't forget your password !! It is *IMPOSSIBLE* to decrypt a file without the password !!!!! RECRUNCH HOW ? This menu is provided for the people who were using another cruncher or an older version of PowerPacker. Just select 'Recrunch File' or 'Recrunch Always' and load the file. PowerPacker will start the correct decrunch algorithm. If you selected 'Recrunch' PowerPacker will start to crunch the decrunched file. If you select 'Recrunch Always' PowerPacker will always recrunch, even if the file was crunched with this version of PowerPacker. Useful for recrunching files using a higher efficiency (e.g. recrunch a 'Fast' crunched file with 'Best'). If you select 'Load' and PowerPacker recognizes an alien crunched file it will decrunch it for you, if you have switched 'Auto Recrunch' on the decrunched file will be recrunched with PowerPacker. The 'Load' menu option actually replaces the 'Recrunch File' menu option, but the latter one was left in for old times sake :-) Use the 'Change Color' item to change the decrunch color in an already crunched file to the current decrunch color. Please note that the file will be changed on disk, nothing will be loaded into memory. Crunchers currently supported are: 'ANC Cruncher', 'TNM Cruncher 1.1', 'Relokit 1.0', 'HQC Cruncher 2.0', 'MasterCruncher 3.0', 'DragPack 1.0b', 'TurboSqueeze 5.1', 'Titan Cruncher 1.1', 'Imploder 1.0' and older PowerPacker files. If you'd like to see other crunchers supported, send me the cruncher and some programs crunched with it. If it is possible to develop a decrunch algorithm I will include it in the next version of PowerPacker. NOTE: - 'Decrunch Only' is not 100% guaranteed for 'Relokit 1.0' files, 'Recrunch' however is 100% ok ! (It's a strange world ! :-) - Several people sent me 'dirty' crunchers, these are crunchers that use absolute addresses (an absolute TABOO !!!). It is impossible to develop a decrunch algorithm for these. (In fact, nothing should have been crunched with these crunchers in the first place !) THE HUNKLAB PREFERENCES This menu is not really part of the PowerPacker crunch/decrunch routines but it wasn't worth writing a separate program for and a HunkLab is after all a very interesting utility. You can e.g. use it to remove symbol and debug hunks from files that wouldn't crunch otherwise. You can force a program's code, data or BSS (uninitialised data) into chip ram or you can remove symbol tables and debug information just by toggling the marker on/off. PROCESS FILE 'Process file' reads the file from disk and changes it according to your preferences. To save the processed file, use 'Save' from the Project menu. 'Process & Crunch' will process the file and crunch the file afterwards (if possible). To save use 'Save' in the Project menu. NOTE: - Debug and symbol hunks are only used in debuggers, so you can safely remove them from a program. (Unless you want to debug the program.) THE SCRIPT MENU The script is something that will save you a lot of time, it allows you to record a number of different commands to be executed after each other. It is ideal for crunching a lot of files in one go. It also offers you the possibility to delete the source files after crunching, so you can easily crunch a directory full of data files and delete the source files after the crunched files with .pp suffix are saved. Menu options are: 'Clear Script' and 'List Script': will do just that. 'Set # commands': select to be prompted a new maximum number of commands to be recorded. (Default is 80) 'Script Log File': is used to specify a file to redirect output to. If you cancel the requester no log file is used. 'Destination Dir': is used to specify the directory to save to. It is ghosted in normal use. 'Start Recording': is used to start the recording of the script. If the script was empty you will be asked for the destination directory. After selecting the destination you can start entering the script commands. Everything that is ghosted is not available as a command. Just enter everything as if you were actually using PowerPacker, with one big difference: you can select more than one file at a time. Just press the key to extend-select other files. When you then press OK all these files will be entered in the script. You can also use the ALL and CLR gadgets as described in the file requester section. NOTE: - You can still change the source and destination dir while recording. Every command you enter will be displayed in the supervisor window. 'Stop Recording': is used to exit the recording mode. 'Delete Last': will delete the last command after a confirmation. 'Delete Command': to delete a specific command, you will be prompted for the command number. 'Insert Command': to insert a new command after another command. You will be asked after which command you want to insert something. Enter the command number. 'Skip Crunched': when you enter this command in the script PowerPacker will skip crunched files rather than decrunch them. Select again to turn off. 'Delete Source': this command tells PowerPacker to delete the source file after it has crunched (and saved) it to the destination. Select again to turn off. 'Delete Quick': the same as the previous command but now the source is deleted BEFORE the crunched file is saved. (useful for when source and destination are on the same disk and the disk is very full) Select again to turn off. 'Execute Script': will start the playback of the script commands. If you press the menu button a requester will appear to ask you if you want to abort the script execution. After executing the script a request to clear the script will appear. NOTE: - The screen turns grey to indicate a script is executing. - While executing a script, PowerPacker will always act destructive ! Files will allways be overwritten and deleted, no confirmations !!! - After the script has executed you will be presented with the script statistics. This way you can see what the overall gain was. THE SUPERVISOR WINDOW This window displays all kind of useful information like the file status, crunch messages, and error messages. You can follow all steps, from the original file that is loaded into memory, to the final crunched version on disk. When an executable file is loaded, its hunk information is displayed. This information is rather technical, but it can be useful for programmers. If you're not interested, just ignore it. A SAMPLE SESSION Now that I have explained PowerPacker's capabilities, it's time for a little demonstation. Let's say we want to crunch the 'CLI' command in the System directory on your Workbench 1.2 disk. Select 'Pointer' in the Prefs/Decrunch Color menu (When I wrote this text, it was very late and I couldn't stand the other decrunch colors anymore !) Set 'Prefs' to 'Command file'. Now select 'Load' in the Project menu (the file requester will appear), insert your WorkBench 1.2 disk and choose the 'CLI' command in the system directory. Now you'll see a lot of hunk (or junk ?? :-) information about the CLI command:   Scanning file 'df0:System/CLI'...  Loading command file...   Hunk_header (0x03F3)  9 hunks (0 to 8).  Hunk 0 : Hunk_code (0x03E9)  (524 bytes)  Hunk_reloc32 (0x03EC)   Hunk 1 : Hunk_data (0x03EA)  (428 bytes, 0 BSS)  Hunk 2 : Hunk_code (0x03E9)  (472 bytes)  Hunk_reloc32 (0x03EC)   Hunk 3 : Hunk_data (0x03EA)  (52 bytes, 0 BSS)  Hunk 4 : Hunk_code (0x03E9)  (16 bytes)  Hunk 5 : Hunk_code (0x03E9)  (0 bytes)  Hunk 6 : Hunk_code (0x03E9)  (196 bytes)  Hunk_reloc32 (0x03EC)   Hunk 7 : Hunk_code (0x03E9)  (68 bytes)  Hunk_reloc32 (0x03EC)   Hunk 8 : Hunk_data (0x03EA)  (0 bytes, 0 BSS)   Crunching command file...  Press left and right button to abort.  Crunching, please wait.    The cruncher displays the percentage of the file already crunched and the gain so far. After some time your screen will look like this:   100% crunched.  Done.  Original length : 2356 bytes.  Crunched length : 1204 (1804) bytes.  Gained 49% (1152 bytes) !    The only thing you have to do now is save this back to disk as an executable file. Now enjoy the crunched CLI command. POWERPACKER 3.0A & THE CLI For your convenience, I have also written two CLI commands, one to crunch and one to decrunch data files. These CLI commands use the magnificent ARP library !! This means they are very powerful : wildcards are fully supported, options can be entered in any order, directories will be created when needed, etc... Make sure the arp.library is in your LIBS: directory when you run these commands. A usage line is given by typing 'Crunch' or 'Decrunch' without arguments. You'll get something like this: 1> Crunch POWER-PACKER 3.0a Data Cruncher.  Written by Nico François (PowerPeak) Usage : Crunch [] [EFFICIENCY 1-5] [COLOR 0-4] [CRYPT] [NOSUFFIX] [NOLED] [NOPER] [SLOW] [FAST] With: EFFICIENCY: 1 = Fast, 2 = Mediocre, 3 = Good (def), 4 = Very Good, 5 = Best COLOR : 0/1 = Color 0/1, 2 = Pointer (def), 3 = Scroll, 4 = None CRYPT : Encrypt file. NOSUFFIX : No '.pp' suffix. NOLED : No flashing led. NOPER : No percentage. FAST : Fast crunch. SLOW : Slower crunch. Hit ^C to abort, ^E or ^F to abort crunching only. 1> Decrunch POWER-PACKER 3.0a Data Decruncher.  Written by Nico François (PowerPeak) Usage : Decrunch [COLOR 0-4] [OPT B|F] [SKIP] [QUIET] With: COLOR: 0/1 = Color 0/1, 2 = Pointer (def), 3 = Scroll, 4 = None SKIP : Skip uncrunched files. QUIET: Be quiet. If is '*' or is omited, files will be typed to Output(). Options effective when typing: OPT B: print a banner before and OPT F: print a formfeed after each file. Hit ^C to abort, ^E or ^F to abort typing only. 1> These commands are useful to be included in your startup-sequence or to read crunched text files quickly. Some examples: Crunch df0:source/*.c TO ram:source COL 4 NOLED This will result in a crunching of every C program in the df0:source directory. If the ram:source directory exists the files will be saved there, if it doesn't it will be created if there is more than one C program in df0:source. The '.pp' suffix will be attached to the filenames. The led will not flicker, no crunch color is used. Decrunch >PRT: QUIET dh0:progs/*.asm.pp OPT BF COL 3 Every crunched assembly program will be decrunched and printed, before each file a banner will be printed, each file will start on a new page. If the file is encrypted you will be prompted for a password. It is very important that you use the QUIET option here, if you don't the copyright and information lines will also be printed. The mouse pointer will flash while decrunching. NOTE: - These commands only (de)crunch DATA files !!!! (So to (de)crunch executable files, you'll still have to use PowerPacker). - The Crunch command defaults to using the large crunch buffer, you can use the medium buffer by selecting FAST and the small buffer by selecting SLOW. POWERPACKER 3.0A & OTHER PROGRAMS INTRODUCTION This one is for the programmers among you ! With this version the decrunch source is included. I decided to do this so other programs could load data files crunched with PowerPacker. As an example I could refer to one of my other utilities : PPMore, this is a text viewing utility (like more, hence the name) that can also display ASCII files crunched with PowerPacker. Source is presented as a support function 'PP_LoadData', this function will load a data file and will decrunch it if necessary. When the file isn't crunched it'll just be loaded. Encrypted files are also supported. The source should compile under both Aztec C and Lattice C. As provided the source will compile under Lattice C 5.04 (makefile included), it should be no problem to get it to compile under Aztec C. You can use this code for non-commercial purposes as long as you leave my copyright notice intact. THE FUNCTION error = PP_LoadData (file, color, typeofmem, buffptr, lengthptr, password); with: char *file; filename of file to be loaded UBYTE color; decrunch color (see ppdata.h) ULONG typeofmem; type of memory to be allocated UBYTE **buffptr; address of buffer pointer variable ULONG *lengthptr; address of length variable char *password; pointer to password string or NULL NOTE: - error and color codes are defined in 'ppdata.h'. - memory must be freed by caller after usage : FreeMem (buff, length); You have the following decrunch colors available: DECR_COL0 Decrunch in color 0 DECR_COL1 '' '' color 1 DECR_POINTER '' '' the mouse pointer DECR_SCROLL '' '' the scroll register DECR_NONE No decrunch color is used The following errors can occure: PP_LOADOK No error, file loaded succesfully. PP_LOCKERR Couldn't lock file, file probably doesn't exist. PP_OPENERR Couldn't open file. PP_READERR Read error. PP_NOMEMORY No memory to allocate buffer for data file. PP_CRYPTED File is crypted and no password was provided. PP_PASSERR File is crypted and wrong password provided. LOADING ENCRYPTED FILES To load encrypted files a password has to be provided to the function. First of all try to load the file with a NULL pointer for 'password', when you get the PP_CRYPTED error you know that the file is encrypted. Then prompt the user for a password and call the function again with the same parameters, but now 'password' points to the password string. If PP_LoadData returns PP_LOADOK the file was decrypted, if it returns PP_PASSERR the password was incorrect. If it returns anything else some sort of error occured (see 'ppdata.h' for the error codes). COMPILING AND LINKING Use the makefile if you have Lattice C 5.04. If you use Aztec C you must compile 'ppdata.c' and assemble 'ppasm.asm', this should be no problem. Once compiled you will have two objecy files: 'ppdata.o' and 'ppasm.o'. Link with both these files if you use the 'PP_LoadData' fuction. AN EXAMPLE This small (incomplete) program shows you how to use the support function in your programs. test.c #include ... #include "ppdata.h" UBYTE *buffer = NULL; ULONG bufferlength; UBYTE password[17]; main() { int error; error = PP_LoadData ("df0:doc/Packer.doc.pp", DECR_POINTER, MEMF_PUBLIC, &buffer, &bufferlength, NULL); /* Don't forget the '&' !!!!! */ if (error != PP_LOADOK) switch (error) { case PP_LOCKERR: puts ("file not found !!!"); FreeStuffAndExit(); case PP_LOADERR: puts ("loading error !!!"); FreeStuffAndExit(); case PP_NOMEMORY: puts ("out of memory !!!"); FreeStuffAndExit(); ... case PP_CRYPTED: /* prompt the user for a password (max 16 chars) */ ... error = PP_LoadData ("df0:docs/Packer.doc.pp", DECR_POINTER, MEMF_PUBLIC, &buffer, &bufferlength, password); if (error == PP_PASSERR) { puts ("incorrect password !!!"); FreeStuffAndExit(); } else if (error != PP_LOADOK) { puts ("correct password, but couldn't load !!!"); FreeStuffAndExit(); } break; } /* now do something with the data file loaded at addr 'buffer' and with length 'bufferlength' */ ... /* DO NOT FORGET TO FREE THE MEMORY !! */ FreeMem (buffer, bufferlength); buffer = NULL; } FreeStuffAndExit() { /* free all your resources */ ... exit (0); } PROGRAM HISTORY: VERSION 1.0a First release. _________________________________________________________________________ VERSION 1.1a Fixed bugs. Improved crunch algorithm by about 5%. 'Delete' and 'Multitask' added. Better menu structure. Improved the file requester. Written CLI commands. _________________________________________________________________________ VERSION 2.0a Fixed some more bugs. Added buffer and automatic device-list to the file requester. Added 'LED Crunch', useful for turning the monitor off while crunching, and 'Paging'. New header, bug fixed. (1.1 didn't free mem when started from WorkBench) Added the hunklab. Improved CLI commands. _________________________________________________________________________ VERSION 2.1a Fixed last bug in header (2.0 crashed when you were out of memory, oops) Added script feature, now possible to crunch files overnight. Improved requesters. Automatic crunch/decrunch. Improved menu structure considerably. Intelligent recrunch implemented. Automatic crunch/decrunch. Added 'Color Crunch' option. New efficiency 'Best' added. _________________________________________________________________________ VERSION 2.1b Bug fixed in script abort. Added ability to open a log file during script execution. Now possible to recrunch PowerPacker files with a higher efficiency. Recrunch detects unsupported crunchers a lot faster. PowerPacker now automatically opens a PAL/NTSC screen. _________________________________________________________________________ VERSION 2.2a All known bugs (or better, undocumented features) fixed. 'Sleep' mode implemented, useful for multitasking freaks. While crunching the gain percentage so far is displayed. Recrunch now supports 'HQC Cruncher 2.0', 'MasterCruncher 3.0' and 'Dragpack 1.0'. New graphics in title. _________________________________________________________________________ VERSION 2.3a PowerPacker detaches itself from the CLI, so the CLI window can be closed or used for other things. CLI commands are greatly enhanced, they now use ARP. New switch : 'Overwrite' to surpress 'OK to overwrite ?' request. File requester now able to sort files, 'Sort files' switch. By popular demand: encryption of data files is now possible using the new 'Encrypt Data' switch. Encryption should be IMPOSSIBLE to crack !! Also by popular demand: Now possible to save preferences to boot disk. More memory efficient decrunch and recrunch of PowerPacker files. Decrunch source included, so other programs could be written that would load data files crunched with PowerPacker. 'Data Suffix' switch to improve adding/removing of '.pp' suffix. Decrunch color default 'Pointer'. Improved scanning of files when loading or recrunching. Fixed small bug (version 2.2a lost 256 bytes every time it was run). More info in about window. _________________________________________________________________________ VERSION 2.3b Added 'Change Color' in 'Recrunch' menu to change the decrunch color of an already crunched file. PowerPacker now starts up a process with priority -1. It now no longer slows down the rest of the system (e.g. a CLI) when crunching. New 'Verify sleep' switch to toggle the requester that verifies the sleep function on/off. Now possible to skip files already crunched with PowerPacker in script. Bug fixed in 'Recrunch', ANC files were no longer recognized. Oops :-) _________________________________________________________________________ VERSION 3.0a FIRST COMMERCIAL VERSION, *MAJOR* UPDATE !! FAST !!!! 40-50 times faster crunching than previous versions !!! Three different speeds selectable. Multitask switch removed, no longer needed. Full overlay support !!! (crunches e.g. DPaint III) Decrunching 20% faster. Crunches up to 5% (yippee :-) Recrunch now supports 'TurboSqueeze', 'Titanics' and 'Imploder'. Decrunch header more memory efficient, you can now also decrunch and run programs larger than 250K on a 512K machine. Script much more powerful: - Insert #, Delete #. - New commands : Skip crunched files. Delete source files (safe or quick). - Maximum number of script commands user-definable. Automatic hunklab and automatic recrunch switches. Recrunches data files. Encrypted executables !!!!! Protect your programs as well as data ! File requester much improved: - user-friendlier sorting, no more file-chasing ! - files / directories seperated. - show/hide .info files - extended selection possible (including ALL and CLEAR gadgets, for use in script) - drag-bar, position is remembered for the next time you use it. - shows all devices attached as well as all assigns made - 7 entries on screen at once (previously 6) - supports SHIFT-ENTER "standard" to jump from file to dir gadget Switch for BCPL programs added (WorkBench 1.3 c: directory) Position of the small sleep-window is remembered, so the window will open where you last left it. Read (crunched) text files from within PowerPacker. (using PPMore) Sound alarm. Extended menu selecting now supported. Script prints statistics after execution. Before saving, length of crunched file is compared to original length. Abort now only works when PowerPacker screen is active, no more problems when multitasking. CLI commands improved: - are reentrant, can be made resident and run from several CLI's at once. - also 40-50 times faster - shorter code - 'Crunch NOSUFFIX' bug fixed, used to delete original file if source and destination where the same and crunching was aborted. PowerPacker 3.0a written by Nico François (Yes, Nico is my first name :-) Special thanks go to - Luc Pauwels for the icons and writing the 2.0a manual, - Jorrit Tyberghein and Ives Aerts for the extensive debugging. - Christian Morant for the late night 'turbo' hack :-) - Kenny for his invaluable suggestions - a very special thank you to all the people who supported the shareware versions of PowerPacker. End.