BETA!BETA!BETA!BETA!BETA!BETA!BETA!BETA!BETA!BETA!BETA!BETA!BETA!BETA!BETA!BETA Scrunch Professional v1.0d Preview BETA Release! Written in 100% MC68000 Assembly Language Developed & Produced via the LSD Software label _____ _________________ / /__/ _____ / \ / / \_____ \/ / \ \ \ \ \ \ \ \ \________/_________/_____mUb/ Copyright ฉ 1992 2-Cool/LSD All rights reserved. FREEWARE ------------------ User Manual KickStart/OS v1.2/1.3/2.0 compatible This Version; Release date: October 1992 ______________________________________________________________________________ User Manual - Table of Contents จจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจ Ref. Part Description จจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจจ 1. Software Disclaimer 2. Preface 3. Why Scrunch Professional? 4. Introduction to Scrunch Professional 5. Getting the Latest Version 6. Software/Harware requirements 7. Software Compatibility for the Future 8. Library Files Needed to Run! 9. Support for the Future 10. Starting from the CLI 11. Starting from the WorkBench 12. Repacking Previously Packed Files & Other DataFormats ______________________________________________________________________________ ;-------------- PROJECT MENU 13. Importing & Exporting Files 14. Deleting Files 14b. Relocating Files 15. Renaming Files 16. Export Prefs 17. 100% Priority Mode 18. Toggle Workbench 19. Putting the program into Sleep Mode - Iconify 20. NewCLI Task ______________________________________________________________________________ ;-------------- PREFS MENU 21. Customize Palette 22. Default Colours 23. (De)Encode Filter 24. (De)Encode Cols 25a. (De)Encode Mouse 25b. Always Overwrite 25c. No System Requesters 25d. Enable sound alarm ______________________________________________________________________________ ;-------------- SCRIPT MENU 26. Clear Script 27. Execute Script 28. Start Recording 29. Stop Recording ______________________________________________________________________________ 30. Comparisons of Lh_(De)Compression & General Performance 30A. Picture, 320x256, (32 colours), hand-drawn, 1 pixel = 1 byte 30B. Picture, 320x256, (32 colours), hand-drawn, bitplanes 30C. Picture, 640x400, (16 colours), sampled, 1 pixel = 1 byte 30D. Picture, 640x400, (16 colours), sampled, bitplanes 30E. Executable file, Amiga-hunk format 30F. ASCII file 31. Using Lh_PackedData within you own Programs (C & Assembler) 32. Project Development time 33. Some Terminology Explained! 34. Recent Data-Compression Research (Interesting Reading Section) 35. Scrunch Professional v1.0d - USER INTERFACE - Revision History 36. Lh_Library Support (for v1.8) - Rev history (recent changes) 37. Production Credits 38. Other Forthcoming Releases ______________________________________________________________________________ ______________________________________________________________________________ 1. Software Disclaimer ______________________________________________________________________________ There is no warranty for the programs, to the extent permitted by applicable law. Except when otherwise stated in writing the copyright holders and/or other parties provide the programs "as is" without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The entire risk as to the quality and performance of the programs is with you. Should the programs prove defective, you assume the cost of all necessary servicing, repair or correction. In no event unless required by applicable law or agreed to in writing will any copyright holder, or any other party who may redistribute the programs as permitted above, be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the programs (including but not limited to loss of data or data being rendered inaccurate or losses sustained by you or third parties or a failure of the programs to operate with any other programs), even if such holder or other party has been advised of the possibility of such damages. ______________________________________________________________________________ 2. Why Scrunch Professional? ______________________________________________________________________________ Why has Scrunch Professional been written eh? Why bother, there`s countless others... e.g. PowerPacker (TM), Imploder (TM), Crunch-O-Matic (TM), Titanics (TM), Bytekiller (TM), Defjam-Packer (TM), CrunchMania (TM), LhArcA (TM), etc............. Just what makes this so special eh? ---ซ== EFFECIENCY & SPEED ==ป--- These are just two of the reasons why the Amiga version of Scrunch Professional was developed. Also no other File/Data Compression system was available which performed the features I wanted. This is now all about to change! Below are reason why YOU should use Scrunch instead of using any other existing compressors. ป Price.. Scrunch Professional doesn`t costs a penny! ฃ00.00 Pounds!!!!! Quality has definatly -NOT- been reduced because of this! This program is Freeware, however it still remains copyright to me but you can freely distribute it like PD... Anyway Yippee its free!!! ป Speed.. The speed during Compression and Decompression is far greater than what PowerPacker (v4 or lower) achieves. This saves your valuable time, no waiting around for compression to finish... yawn, its pretty damn nippy!!!! Especially in 100% Priority TURBO mode, Try it! ป Efficiency.. It Packs data far Better/Smaller than most other can. This results in more space available (which is the whole reason for packing a file in the first place isn`t it!!!) ป Options/prefs... It has more options/preferences available than PowerPacker supports. This allows you greater freedom to configurate this system to work for YOU! Just look at this list! ป WB2 Look and feel user-interface, even on 1.2/1.3 machines. Uses pulldown menu`s and several easy to identify icons. Conforms to WB2 Standards of style and design. ป Compatible with Amiga`s A500/A600/A1000/A1500/A2000/A3000... ป Compatible with faster processors, eg, 68020, 68030, ... ป Fully multitasking with the ability to change task priority ป 60 different 'decrunches' recognised with ability to 'recrunch' files previously compressed with other crunchers. ป Built in script language for easy, quick compression of multiple files ป Built in dos commands, rename, delete, etc.. ป Large easy to use 'File requester' for importing/exporting data to and from program. ป Palette Editor and choice of several colour palette standards. ป AutoDetection of filetypes, eg. auto recognises datafiles, executables, iff-sound samples, iff-pictures, music modules, etc. ป Professional Decruncher Header support, (for demo`s,games,etc) similar to 'Defjam Packer'. With multiple clear memory regions, loader can be appeneded (optional harware diskloading routines) which could proove useful for multipart track loading demo`s, games, etc. ป AutoRunback Decruncher Header support!, apends 'RUN/LAUNCH' type routines to packed files so they auto-detach from the CLI... ป TextFile Decruncher Header support!, allows you to add an ANSI textfile to the file you wish to pack, it will be packed along with the file and during auto-decrunching it will be output to the screen. People have told me that BBS`s will LOVE this!!! (Hi MorseCode/Renegade!) ป DataFile Header support!, saves out pure compressed datafile, decruncher source is supplied! (useful for all types of programming applications!) ป Iconify, Sleep-mode, allow task to be sent to sleep (free`s up memory!) and later it can be revived. Frees about 80k of Memory buffers! ป Virus protection, 'NoSaddam & NoLinks' by 'Shagratt/LSD' of the NUKE Virus killer fame built into system, vectors checked every 1/50 sec, with the ability to toggle on/off if desired! ป Users own preferences/packer configuration can be saved to a prefs file and re-used when the user desires. ป Written in 100% Machine language... no horrible -C- Complied rubbish.. Your guarentee of fast efficient routines with less chance of system software failiures greeting your system!!!! (-hehe) ป Password Protection! Impossible 'crack', uses a variation on PRNG (Pseudo Random Number Generation) Every time you encrypt a file it will be encrypted DIFFERENT! Even if you encrypt THE SAME FILE twice. Even with the decryption formula`s its still IMPOSSIBLE to decrypt the file without knowing the correct PASSWORD, Even I cannot decypher a encrypted file without the Password! (Thanks to 'Dave Edwards' for the excellent tutorial doc`s file on encryption, it got me motivated to write a good data-encryption system, nice one Dave!) This is impossible to crack, not like the POWERPACKER one which has been 'CRACKED'. Have you seen the 'PowerPacker' Password cracker utility around yet??? I don`t think ones going to be released for this SOMEHOW !! (haha!) This options first compresses the file THEN encrypts it a certain number of times based on the password! (hi 'crackers', beat diz!, get Resourcin` ) ป Datafiles are 100% compatible with the 'Lh.Library'. This packer is based around the lh_compression routines found in this library. ______________________________________________________________________________ 3. Introduction to Scrunch Professional ______________________________________________________________________________ The Actual Compression and Decompression routines were based on the adaptive Huffman compression code which was origionally developed in -C- by Haruyasa Yoshizaki. Then they were modified, re-written, etc, in fast 680x0 machine language by Holger P. Krekel and Olaf 'Olsen' Barthel. They say this took them some three months of development time in their documentation of the 'Lh.library'. I 2-Cool have also modified the LhEncode (packing) routines to run faster again, nothing amazingly radical but worth it all the same, especially when TURBO MODE is activated! Typically around 1k or 2k Per Second is the Compression rate. Sometimes even FASTER! This reason I set about producing this packer was that I recieved a documentation file along with a Amiga-library called 'Lh.library' & various other progs etc. by a friend of mine. I read the small docfile and comparied the Performance details given in it. I was really impressed. The efficiency and speed was what I found to be most astonishing! I quickly searched the disk for the actual packer only to find two very basic CLI based commands, one for packing, one for unpacking... BOTH simple commands but when packed they required almost 13k of space... And these simple CLI commands used the Lh.library. A quick inspection revealed that they were written in -C- Language... Hmmm I guessed as much... Also a real down side to these utilities was that they could only cope with packing DATA files (e.g. text,etc..), not Executable`s! Well it was the efficiency that motivated me to write an interface with this 'Lh.library' so I again searched the disk only to find a few small examples on access detailed. While using the library I couldn`t get the routines to do exactally what I wanted... I.e. options like flashing colours while packing, current percentage packed, faster routines, etc. What I ended up having to do was to "dissassemble" the actual library and modify the routines to work as intended. I then began writing the program, after a few hours I had the shell of the program up and running. Sorry I don`t use the library, I`ve taken what I wanted out of it and I use it from within Scrunch Professional v1.0d. This has had the advantage that I`ve been able to incorporate extra features to let the user know packing is actually going on. I`ve also managed to improving the packing speed. The disadvantage of not using the library is that when/if a new version of the library ever becomes available this program will not be able to instantly take advantage of them... don`t worry thought I`ll keep you up to date with the latest routines. After adding the pack routines I carried on writing the program and began to add some nice little features I`ve always desired from a cruncher that others don`t have. You are now up to present day. Please note this is the "BETA!" release of the program which means "test" version. IF you find BUGS please contact me at Pazza`s address which is included later. There may be a few bugs in this release but please bear with me, this is the 1st time I have EVER written an program under the Amiga`s INTUITION enviroment. Normally I program the Amiga hardware directly to write my programs, demo`s etc.. but this time I decided on a different approach because I wanted this packer to be able to multitask so that I can do other things while the packing is going on. i.e, listen to music, write assembler programs, docs, etc. So I suppose this is my contribution to the Digital Party `92! Along with my other releases for LSD! ______________________________________________________________________________ 4. Preface ______________________________________________________________________________ This program is !FREEWARE!, this means that you can copy it freely as long as you don't ask any more money for it other than a nominal fee for the copying. If you would like to distribute this program you should include ALL documentation and supplied source-codes/object files with it. This program cannot be used for commercial purposes of -ANY- type without the written permission from the author of this program. This agreements includes all LICENCEWARE systems. Special permission is granted to include this program and all of its associated files/documentation,etc. in Public-Domain Collections such as Fred Fish's Amiga Library, Utility/Demo Packs, etc. If you wish to distribute this package please see the licence agreements which details copyright. PLEASE NOTE: The Scrunch Professional v1.0d is "FREEWARE" BUT... the authors of the 'Lh.library' want you to become a registered user of the Lh.compression routines (of which a modified version of these is used in Scrunch Professional v1.0d) IF you use them then PLEASE,PLEASE PLEASE become a registered user to these people as they has devoted lots of their time to produce for you the excellent packing routines. Read below, what they have to say about it,.. Concerning the 'Lh.library' A good amount of time and work was required to create Lh and the associated utilities. Needless to say, we didn't do it just for fun. Include Lh in any program which has need of it but don't forget us! Any humble contribution of at least, say 15$ US or DM 20,- will insure your registration (i.e. you will receive Lh updates as they become available) and encourage us to continue working on Lh (we know that Lh can be made faster and more efficient with a bit of extra work, but time - we both are students of Medical Informatics at Hildesheim, Germany - does currently not permit us to make severe enhancements). Please keep the following in mind if you include Lh in your program(s): Public domain program - No need to register Lh with us as long as you do not intend to make money with your program. Shareware program - Register Lh with us once to distribute an unlimited number of copies of your program. Commercial program - Lh will need to be licensed for each copy of your program. Lh_compression routines were written by Holger P. Krekel & Olaf 'Olsen' Barthel. Copyright 1990 by Holger P. Krekel & Olaf 'Olsen' Barthel.Shareware, All rights reserved. No guarantee of any kind is made that the program(s) described in this document are 100% reliable. You use this material at your own risk. ______________________________________________________________________________ 5. Getting the Latest Version ______________________________________________________________________________ The quickest way to get the most recent release of this software is to download it from one of the LSD boards worldwide. If you send any to LSD swapper a 3ฝ" disk you will get the most recent version. Please don't forget to include enough stamps or money to send your disk back. And please, state your name and address clearly in print because sometimes they are almost impossible to decipher. Every letter with a disk and/or money will be answered AS SOON AS POSSIBLE... If you have suggestions or remarks about this program, or if you discover any bugs, please let us know. Thank You. ______________________________________________________________________________ 6. Software/Harware requirements ______________________________________________________________________________ This software should run on any Amiga starting from the A500 all the way up to the A3000, any of these models with or without processor expansion boards. The Program will tell you what type of processor you have installed in your machine in the top right hand corner of the OUTPUT WINDOW. This program has been tested with KickStart 1.3 and 2.0 on all three Amiga models except the Amiga 1000. Should you have any trouble running it on your machine, please write to us with the full specifications of your machine, that is KickStart version, model, expansion boards etc... ______________________________________________________________________________ 7. Software Compatibility for the Future ______________________________________________________________________________ No KEYPAD keys have been used in this utility to keep it Compatible with the new A600. This production should work on ALL kickstart machines with ALL configurations (wishfull thinking... la la la!) BUT if it does fail to work on your system contact us! State your system details, kickstart, memory expansion size, disk drives, agnus chip, processor speed, dh0: connected? etc.. And the problem you are having with the utility.. e.g. random crashes, save or load won`t work... Or whatever... I cannot promise to fix the bugs if you do not tell me precisely what set-up you are using. ______________________________________________________________________________ 8. Library Files Needed to Run! ______________________________________________________________________________ Please remeber before sending bug reports that this utility software requies the REQ.LIBRARY to be placed in the "libs:" directory on your system disk. If this is not there, the program will fail to function. This library has been chosen as it has been widely distributed and its very user-friendly. IT MUST BE distributed with this software if you wish to use this program. This is the only additonal file/software that is required to run this utility. The 'Lh.libary' IS -NOT- required to use and run this program. Read INTRODUCTION to why I didn`t use the 'Lh.library', instead I took the routines out of it and included them Directly into the program! ______________________________________________________________________________ 9. Support for the Future ______________________________________________________________________________ This PROGRAM will DEFINATLY be supported in the future, I 2-Cool / LSD love the idea of a good FREEWARE compressor. Even if the people who wrote the (de)compression routines don`t support this project. Ie. they abandon updating the library don`t worry! If this happens I will program my OWN (de)compression routines. This is still only the BETA version... watch out for the FINAL release version coming soon... It will have LOTS more options! Maybe even FULL Arexx support!!!!!! (depending on if I can get the correct information includes,etc... any offers?) ______________________________________________________________________________ 10. Starting from the CLI ______________________________________________________________________________ To start the program from the CLI simply type: 1> ScrunchPro followed by a return. This loads the program and it will Auto-launch and detaches itself from the CLI. This means that you can start it without having to using the run command, bring the Workbench screen back to the front and then close the CLI window with the EndCLI command. ______________________________________________________________________________ 11. Starting from the WorkBench ______________________________________________________________________________ This is the easy part. Simply click on the accompaning icon and it will start. NOTE: Workbench 2.0 users can also use the Execute Command item from the Workbench menu to call the program. Simple, Eh? ______________________________________________________________________________ 12. Repacking Previously Packed Files & Other DataFormats ______________________________________________________________________________ The program will auto-detect an astonding range of crunches. It allows you to choose if you wish to repack the Packed file using the Scrunch Pro OR save out the file unpacked. It will state if the file has been Relocated, or if its still in relocatable format. Here are the supported crunchers; Special thanks to the author of the 'Decruncher library' for this list, I use the 'Decrunch.library' to allow all these packers to be detected! The 'Decrunch.library' supplied with this version of ScrunchPro currently supports the below list of crunchers, and hence, so does Scrunch! PowerPacker 2.x PowerPacker 3.0 PowerPacker 4.0" PP 3.0 Overlayed" PP 3.0 Password" PP 4.0 Overlayed" PP 4.0 Overlay/Lib" PP 4.0 Password" PP 4.0 Password/Lib" PP 4.0 Library" Imploder 1.0-3.1 P" Imploder 1.0-3.1" Imploder 4.0" Titanics Cruncher 1.1" Titanics Cruncher 1.2" TNM Cruncher 1.1" DragPack 1.0" DragPack 2.52" Master Cruncher 3.0 R" PackIt 1.0" TurboSqueezer 8.0" Lib Imploded" CrunchMania 1.4 R/N" CrunchMania 1.4 R/S" Black&Decker 2.0" ByteKiller 2.0" ByteKiller 3.0" CrunchMania 1.4 A/N" High Pressure Cruncher" RSI Packer 1.4" Master Cruncher 3.0 A" Time Cruncher 1.7-2.2" TFA Cruncher 1.54" Turtle Smasher 1.3" TetraPack 2.1" TetraPack 2.1 Pro" TetraPack 2.2" TetraPack 2.2 Pro" DefJam Cruncher 3.2" DefJam Cruncher 3.2 Pro" Compacker 4.2" Crunch Master 1.0" HQC Cruncher 2.0" MaxPacker 1.2" Mega Cruncher R" ReloKit 1.0" StoneCracker 2.70" StoneCracker 2.70 K" StoneCracker 2.99" StoneCracker 3.00" StoneCracker 3.10" Super Cruncher 2.7" Syncro Packer 4.6" TryIt 1.01" Ultimate Cruncher 1.16" Ultimate Packer 1.1b" Also it recognises the following formats... LhPacked DataFiles - Gives you the option to upack & export them. - or you can abort the operation. Executable Files - Normal Relocatable Hunk Structure Amiga files that confirm to the standards specified by Commodore Inc. IFF Samples - as output by AudioMaster,Protracker,etc.. IFF ILBM Pictures - as output by Dpaint,SpectraPaint,etc... Noise/Protracker Modules- as output by Protracker or its compatibles. Startrekker Modules - as output by Startrekker v1.3 ______________________________________________________________________________ 13. Importing & Exporting Files ______________________________________________________________________________ You can select either of these options from the pulldown menu`s. The import/export routines are intelligent enough to auto-detect what type of file has been selected. (see above for file types supported) This saves the user having to select the type of file they want to (un)pack. The user selects the file using a file requester. Click on the name of the file when the directory finishes reading from the disk or type in the files name using the keyboard. Pull down menu`s are also available to abort loading a file. You can also abort loading by pressing the cancel gadgets. Import: AmigaKey+I (Import files & analysers filetype.) Export: AmigaKey+E (Export file from buffer) If you select to export a file from the buffer when no packed file exists a message requester will be displayed telling you the buffer is empty. Other import options in the Full release version will include the ability to read/write sectors and tracks directly to and from disks. Also Preferences set in the 'Prefs' sections can be saved onto disk in the "SYS:S/" directory of your system disk. ______________________________________________________________________________ 14. Deleting Files ______________________________________________________________________________ You can select this options from the pulldown menu`s. This one has been added so that you can make space on the disk before saving out. This saves you having to mess about with either the CLI command DELETE or a directory program. Delete: AmigaKey+Z (Zaps an AmigaDOS file from a Device) ______________________________________________________________________________ 14b. Relocating Files ______________________________________________________________________________ This option will allow you to relocate AmigaDos files which conform to the system standards, e.g.. Hunk_Header/Hunk_etc.. You specify the address for the file to be relocated to and the file will be relocated continously from this address. This option is not yet implemented... ______________________________________________________________________________ 15. Renaming Files ______________________________________________________________________________ You can select this options from the pulldown menu`s. This one has been added so that you can modify the name of a file on the disk if you saved the file out with an incorrect name or whatever. This saves you having to mess about with either the CLI command DELETE or a directory tool. When you select this option a filerequester will let you type or select the name of the file to rename... a second requester will then allow you to type or select the new filename. Rename: AmigaKey+R (Renames an AmigaDOS file) ______________________________________________________________________________ 16. Export Prefs ______________________________________________________________________________ You can select this options from the pulldown menu`s. This option is not yet implemented. It will allow you to save out you own preferences.. i.e. screen colours, filter while packing, colours flashing while packing, nothing wile packing, multitasking on/off, etc... The preferences file will be automatically read when the program first loads into memory. ExportPrefs: AmigaKey+W (Writes Prefs file to a device) ______________________________________________________________________________ 17. 100% Priority Mode ______________________________________________________________________________ You can select this options from the pulldown menu`s. This allows you to either multitask while packing or give 100% priority to the encoding/decoding data routines. The advantage of 100% priority is that the encoding/decoding of data is faster than when multitasking. When you are multitask encoding it takes longer depending on the extent of the multi- tasking,... i,e, have you got 3000 programs running at the same time!!!! Having multitasking on is useful if you wish to do other things while the machine packs the file for you. I.e. you could be typing an article for GRAPEVINE magazine in Protext,etc.. while the packing of the data is going on (hehe! little advert there! HI PAZZA!!!) 100% Priority: AmigaKey+P (Multitasking switch) ______________________________________________________________________________ 18. Toggle Workbench ______________________________________________________________________________ You can select this options from the pulldown menu`s. This option only works if all other tasks are shut down. The CLI/SHELL window must be closed,etc.. If selected it will attempt to close the workbench and free some valuable memory! ______________________________________________________________________________ 19. Putting the program into Sleep Mode - Iconify ______________________________________________________________________________ You can select this options from the pulldown menu`s. This option, when selected from the main screen restore the system display and releases as much memory as possible. In this version it free`s 80k of buffers,libraries,etc. A small requester on the workbench screen will be opened showing you that it is still resident in memory. In this state it uses no CPU time and just waits for you to make the click on the appropriate option. Less than 60k of memory is used while the program is 'SLEEPING' as apposed to approximatly 180k!!!!!!!!!!!!! ______________________________________________________________________________ 20. NewCLI Task ______________________________________________________________________________ You can select this options from the pulldown menu`s. This option is not yet implemented. It will create a new CLI task for you without you having to have the "NewCLI" command on you disk. Create NewCLI: AmigaKey+N (Creates a NewCLI task) ______________________________________________________________________________ 21. Modify Palette ______________________________________________________________________________ You can select this options from the pulldown menu`s. Allows you to modify the screen colours. This option was implemented to help people if they don`t have a monitor and the colours don`t look to great on their Television. Modify Palette: AmigaKey+M (Change Screen colours) ______________________________________________________________________________ 22. Default Cols ______________________________________________________________________________ You can select this options from the pulldown menu`s. This simply resets the colours to that of the defaults. Grey, Black, Blue, and white. Default Cols: AmigaKey+D (Sets normal colours) ______________________________________________________________________________ 23. (De)Encode Filter ______________________________________________________________________________ You can select this options from the pulldown menu`s. This stops/enables the filter option. If this is set while encoding data the filter (power led) will change to show you that the program is packing. This can be disabled so that you can listen to music without the filter being toggled while packing (thats assuming that you want to and have not set 100% Priority!) ______________________________________________________________________________ 24. (De)Encode Cols ______________________________________________________________________________ You can select this options from the pulldown menu`s. What this option does is to flash the colours on the screen during packing (encoding) of data. This is to show you that it is actually working. ______________________________________________________________________________ 25a. (De)Encode Mouse ______________________________________________________________________________ You can select this options from the pulldown menu`s. This option is useful so you can identify if packing is finished when you are working on something else while packing is going on. i.e (typing a letter on a WP,etc) You can easily tell if the packing is done because the mouse pointer will stop flashing when packing is finished. This is especially useful if you are packing 'large' datafiles. ______________________________________________________________________________ 25b. Always Overwrite ______________________________________________________________________________ This option can be toggled on and off, when set (checkmark enabled) the program will always overwrite files that are already saved on the disk. If disabled you will be warned and given the option to change the save path Enabled; No requesters will ask you if you wish to overwrite The file will just be saved over the old one. Disabled; If this is selected you will be given the option of saving the file to another path. ______________________________________________________________________________ 25c. No System Requesters ______________________________________________________________________________ This option will become much more useful when the trackloader is fully implemented. Its patches the system requesters telling you that the disk is not a dos disk, etc when you are importing/exporting data to and from tracks when using non-dos disks. All annoying requesters are disabled. If you re-selected it, i.e. disable this option the normal system requesters are re-enabled. ______________________________________________________________________________ 25d. Enable sound alarm ______________________________________________________________________________ With this option enabled after compression a sound alarm will be issued to tell the user that compression is complete. This allows you to turn off your monitor while compression is in progress. Also you could be multitasking, e.g. using a wordprocessor, etc. the sound alarm would be particluarly useful in this type of circumstance. ______________________________________________________________________________ 26. Clear Script ______________________________________________________________________________ You can select this options from the pulldown menu`s. This option is not yet implemented. It will allow you to clear a previously recorded script of file to pack(unpack). Clear Script: AmigaKey+K (clears a filescript) ______________________________________________________________________________ 27. Execute Script ______________________________________________________________________________ You can select this options from the pulldown menu`s. This option is not yet implemented. This will start the process of packing (repacking) unpacking of the files in the previously recorded script. You will be asked to awnser several questions. These being the destination device for the output files. If you want to Repack files packed with PowerPacker and CrunchMania or skip them. You will then be asked if you want to proceed with script or abort the operation. Execute Script: AmigaKey+X (starts processing a filescript) ______________________________________________________________________________ 28. Start Recording ______________________________________________________________________________ You can select this options from the pulldown menu`s. This option is not yet implemented. This will allow you to add filenames/ directorynames to a buffer (makes a script). Start Recording: AmigaKey+[ (starts recoring a filescript) ______________________________________________________________________________ 29. Stop Recording ______________________________________________________________________________ You can select this options from the pulldown menu`s. This option is not yet implemented. This will allow you to finish recording the script and go back to normal filemode. Selecting execute script will call the script. Stop Recording: AmigaKey+] (stops recording a filescript) ______________________________________________________________________________ 30. Comparisons of Lh_(De)Compression & General Performance ______________________________________________________________________________ Below are some comparisons against PowerPacker, Imploder & LhArca with Scrunch Professional. These are also included in the "LhLib" documentation distributed with this program. The following tables give a brief overview on the performance of Lh. We compared Lh to the following popular data compression programs: LhArcA, The Imploder & PowerPacker. `Compression' and `Decompression' denote the time required to execute the approriate action. The duration is given in minutes. ______________________________________________________________________________ A. Picture, 320x256, (32 colours), hand-drawn, 1 pixel = 1 byte ______________________________________________________________________________ Input length in bytes: 81920 Output Compression Decompression Lh 11838 01:56 00:01 LhArcA 11849 02:04 00:10 The Imploder 13076 01:41 00:01 PowerPacker 14868 00:30 00:01 ______________________________________________________________________________ B. Picture, 320x256, (32 colours), hand-drawn, bitplanes ______________________________________________________________________________ Input length in bytes: 51200 Output Compression Decompression Lh 13870 01:27 00:02 LhArcA 14041 02:40 00:10 The Imploder 15342 02:40 00:01 PowerPacker 15840 00:27 00:01 ______________________________________________________________________________ C. Picture, 640x400, (16 colours), sampled, 1 pixel = 1 byte ______________________________________________________________________________ Input length in bytes: 256000 Output Compression Decompression Lh 76428 03:01 00:06 LhArcA 77970 04:05 00:38 The Imploder 93152 09:12 00:08 PowerPacker 90728 02:20 00:08 ______________________________________________________________________________ D. Picture, 640x400, (16 colours), sampled, bitplanes ______________________________________________________________________________ Input length in bytes: 128000 Output Compression Decompression Lh 81886 01:02 00:09 LhArcA 81580 01:42 00:44 The Imploder 93152 09:12 00:02 PowerPacker 86956 01:52 00:06 ______________________________________________________________________________ E. Executable file, Amiga-hunk format ______________________________________________________________________________ Input length in bytes: 130964 Output Compression Decompression Lh 71330 01:07 00:08 LhArcA 77970 01:48 00:34 The Imploder 73172 08:23 00:03 PowerPacker 74208 01:40 00:06 ______________________________________________________________________________ F. ASCII file 1 ______________________________________________________________________________ Input length in bytes: 81627 Output Compression Decompression Lh 32596 00:35 00:04 LhArcA 33091 00:54 00:17 The Imploder 37166 03:50 00:02 PowerPacker 38700 00:39 00:03 ______________________________________________________________________________ 31. Using Lh_PackedData within you own Programs (C & Assembler) ______________________________________________________________________________ It has been made very easy for programmers to use the decompression and compression routines from their programs. Supported programmer are as follows, C Users, Assembler SYSTEM FRIENDLY, Assembler HARDWARE ENVIROMENT. The difference beetween the system friendly assembler programmer and the Hardware assembler is that from hardware you CANNOT access libraries as the systen isn`t available. E.g. In games and demo programming. For these types of programs raw binary 680x0 PC-Relative routines are available. The routines are DIRECTLY portable to -ANY- computer that uses a 680x0 microchip! E.g. the Atari ST, Mac, etc... So you could port over your packed data and use it on other projects. VERY useful for games development where several conversions are required! ______________________________________________________________________________ -C- Users: ______________________________________________________________________________ Use the "Lh.library". The associated include files, .fd, etc. are all included for easy usage from C. Two source-code example application usages are also supplied called , 'Encode.c' and 'Decode.c'. They both along with all the other sources, etc can be found in the 'SOURCES' directory contained on this disk. ______________________________________________________________________________ MC680x0 Assembler Users: (System Programmers) ______________________________________________________________________________ There are _LVO Offsets, examples of accessing the library calls, theres a macros for the LhLIB library name, etc. Detailed descriptions of all the relevent information are contained within the sources. Also read the 'Lh.library.doc' for more information on accessing its fuctions. ______________________________________________________________________________ MC680x0 Assembler Users: (HARDWARE Programmers) ______________________________________________________________________________ Supplied are PC-Relative binary image "DECODE.BIN" & "ENCODE.BIN" files. Both of these support files for use with data. Example source-code is supplied to show you how unpack/pack files using these image files directly from your programs. ______________________________________________________________________________ 32. Project Development Time ______________________________________________________________________________ Well the Lh_Library has taken its makers some "THREE" months of work time. Now I don`t know how much of this time they actually spent developing the Lh.library but its still a long time! P.S Does anyone out there have the 'ReqTools.library' include files and documentation and/or do you have info on AmigaDOS Overlay hunk structures ? If you do please send them to Pazza so he can pass them on to me - I`ll contact you and send to you. Pazza will also be able to supply you with Grapevine Issue #11. Remember to send a SAE! Anyway here`s Pazza`s address. (I hope Pazza doesn`t mind - hehe!!!) If you have any suggestions bug reports, remarks, etc.. by all means contact us! PAZZA - LSD UK. MANAGER 2 South Parade, Gaisborough, Lincs, DN21 1UQ, England. For Registering to the 'Lh.library'.Send suggestions and registration fees to: (the address below is -nothing- to do with the author of the Scrunch Professional infact I don`t even know these guys, but please support them in their quest!) OLAF 'OLSEN' BARTHEL Brabeckstrasse 35 D-3000 Hannover 71 Federal Republic of Germany ______________________________________________________________________________ 33. Some Terminology Explained! ______________________________________________________________________________ If you don`t understand what compression is all about read the below definitions, they may help you. COMPRESSION/PACKING/CRUNCHING/IMPLODING ;- - These definitions above describe the actual process of encoding redundant information into a data format that requires less storage space (backing store) Many different techniques have been developed by different people to try to improve the "efficency" (see info) of the process. DECOMPRESSION/DEPACKING/DECRUNCHING/EXPLODING ;- - The processes of decoding previously encoded data back into the original format before compression took place. Decompression is usually far faster than the actual compression of data, decompression times however vary from cruncher to cruncher. EFFICIENCY - The efficiency tells you how well the file has been processes, i.e. if the file was, say 500k before compression and after compression it took only 50k then the efficiency was excellent (450k gain!). If however the file was 500k and compressed to 450k the compression was poor (only a 50k gain) SPEED - When we talk about the speed we are referring to the time it takes to process the data, either during compression or decompression. BUFFERS - Area`s of memory allocated from the system for internal use by the program. These hold data while it is being processed, etc. ______________________________________________________________________________ 34. Recent data-compression research ______________________________________________________________________________ Below is some interesting reading regarding the information on how compression systems actually work (for the interested only) The info is explained in more detail in the book, TEXT COMPRESSION by Timothy Bell, John Cleary and Ian Witten, Published by Prentice Hall, 1990. ISBN 0-13-911991-4. Three of the most useful types of data compression involve context modeling, Lempel-Ziv 1977, and Lempel-Ziv 1978. Context models use the preceeding few characters to PREDICT (estimate the probability of) the next character. E.g, what is the next char after "tabl"? There is a high probability that the char is "e". Much of today's research is focused on these types of data compressors because they provide the best "TEXT" compression results. The disadvantage of this family of compressors is the amount of memory required. Three practical models require from 500,000 to 5,000,000 bytes of memory. More familiar is the Lempel-Ziv 1978 (LZ78) family of data compressors. This family as well as Lempel-Ziv 1977 are classified as adaptive dictionary encoders. In these methods, text strings are replaced by pointers to previous occurrences of duplicate strings. For example, the words in this document could be represented by dictionary page and line numbers. The significant characteristic of LZ78 algorithms is the parsing of previous text data into PHRASES that are stored in a dictionary. Pointers are allowed to reference such phrases; however, pointers are not allowed to reference substrings of such phrases. Lempel-Ziv-Welch, 1984, (ARC shrinking, crushing, UNIX COMPRESS) is the most familiar of this family. Numerous articles have been published concerning this method. Unknown to many is the fact that this algorithm has a US patent number owned by UNISYS. These algorithms are FAST, however their disadvantages include the problem of handling a FULL dictionary when the input text data no longer matches the contents of the dictionary and the poor compression of non-text data. Lempel-Ziv 1977 (LZ77) algorithms have recently come into popular practical use (LHARC, PKZIP 1.10, ARJ, PAK). In the original LZ77 scheme, pointers are allowed to reference any phrase in a fixed-size window that preceedes the current phrase. A matched current phrase is replaced by the pointer to the previously occurring duplicate phrase. This pointer in LZ77 consists of an offset into the window and the length of the phrase. The original implementation was considered impractical as it used a brute force string searching method to find duplicates. It was quite slow requiring up to N character comparisons in an N sized window for each phrase looked for. However, in 1987, Timothy Bell proposed using a binary tree to index into the window to speed the lookup of phrases. This provided an order of magnitude speed increase. In the same year, Brent published an algorithm that used a secondary compression method (Huffman encoding, 1952) to further encode the output of a LZ77 encoder. Huffman encoding is the subsitution of variable bit-length codes for standard codes (8-bit ASCII) based upon frequency of occurrence. The most frequent codes have the shortest bit-lengths. LHARC is a combination of these two ideas. It uses a binary tree LZ77 encoder with dynamic Huffman encoding (1978) of the output. The advantage of using dynamic Huffman encoding is adaptivity to rapidly changing data. The disadvantage is slow decoding. PKZIP 1.0, I believe, uses a combination of binary tree encoding with SHANNON-FANO (1949) static encoding. Static SHANNON-FANO encoding has the advantage of fast decoding and the disadvantage of less optimal compression especially on rapidly changing data. PKZIP will perform better in compression than LHARC on many large files because PKZIP uses a larger window (8K) than LHARC (4K). LHARC will perform best on binary data with rapidly changing characteristics like executables that include a lot of text data. LH (LHarc 2.0), I believe, uses a digital TRIE LZ77 encoder with a static Huffman encoder. It uses an 8K window. LH uses a particularly efficient Huffman encoder which works on small data sets. Many static encoders suffer from the cost of including the table of codes with the encoded data. The digital TRIE has the advantage of always producing the most recent match unlike binary trees. This recency of match is significant when secondary compression is used. Much of this work has been derived and improved upon from literature published in the last two years. One of the most significant new encoders published is that of Fiala and Greene, 1989. This method uses pointers that point to nodes in the TREE data structure as opposed to the phrases in the window. This bypasses the problem of redundancy of phrases in any given window. Since each node is unique, fewer pointers are needed and thus are more easily compressed by a secondary compressor. This technique is also currently patent pending. I actually think that the Patent Pending situation is ridiculous, even if you improve on a idea thats been patented you cannot use them, so be extra careful you don`t break any Patents if you choose to write your own compressor. ______________________________________________________________________________ 35. Scrunch Professional v1.0d - Revision History ______________________________________________________________________________ V1.0a- Beta! Test version - this starts the ball rolling! (I hope!) Only distributed to LSD members for bug hunting, idea`s, etc. Not released to the general public. V1.0d Still in Beta form! - Lets hope we can get it complete soon! ______________________________________________________________________________ 36. Lh_Library v1.8 - Rev history (most recent change first) ______________________________________________________________________________ V1.8 Bumped the minimum sequence length LhEncode starts to compress to 2 bytes which makes compression both faster and more efficient. V1.7 First public release. V1.0- Not released. ______________________________________________________________________________ 37. Production Credits ______________________________________________________________________________ The LhCompressor "MainProgram" & most documentation was written & developed by 2-Cool of LSD, this was only made possible due to the 'Lh.library', So extra special thanks to the creators of this library, P. Krekel & Olaf 'Olsen' Barthel, Thanks! The original 'Lzhuf.c' adaptive Huffman compression code was developed by Haruyasu Yoshizaki, thanks a lot for placing it in the public domain. The 'Lh.Library' of which contains "LhEncode" & "LhDecode" were developed by Holger P. Krekel and Olaf 'Olsen' Barthel. ______________________________________________________________________________ NB: Watch out for -MORE- updates of this program in the very near future!!!!! Also what out for more cool utilities from LSD! Coming soon are some more really good quality tools.... WATCH OUT (see below for details of just a small few!) Now that I`ve decided to start coding utilites (I`ll still code the occasional demo,etc) you`ll see many more USEFUL releases from me! ______________________________________________________________________________ 38. OTHER FORTHCOMING RELEASES (From 2-Cool) ______________________________________________________________________________ Grapevine Article/Advert Editor/Creator (GAC) ====================================================== Will allow easy editing of colours, fonts, flashing, commands that are supported in Grapevine (TM) - The BEST all round Amiga magazine! You will be able to change colours etc. and test the results in a mock-up grapevine screen. All though this program does not multitask it does have a sleep option so that you can still swap between other multitasking programs. While using the program the system is frozen & it is restored when in sleep mode. It auto runback`s & has a create cli option & more! LSD Font Converter v1.0d ================================ This utility will allow you to easy convert different types of 8x8 fonts into different formats. IFF (ILBM) > STANDARD AMIGA FONTS !!! IFF (ILBM) > RAW BITPLANES (40 COLUMN) IFF (ILBM) > PURE BINARY PURE BINARY > STANDARD AMIGA FONTS !!! PURE BINARY > RAW BITPLANES (40 COLUMN) PURE BINARY > IFF (ILBM) WORKBENCH FONTS > IFF (ILBM) WORKBENCH FONTS > RAW BITPLANES (40 COLUMN) WORKBENCH FONTS > PURE BINARY The advantages of converting to and from these formats are enormous. FED - The amiga font editor isn`t exactally the most liked program on the Amiga. Dpaint is far better (And easier) to draw fonts with. Unfortunatly you cannot use your 8x8 fonts draw in Dpaint with DPAINT as fonts! Well now you CAN! This program will convert it into a fully usable system font which can be used set as the system font with "SetFont" or other similar programs. If you wish you could convert a normal system font to IFF. Load it into DPAINT, modify it and then convert it back to an AMIGA FONT again!!!! The binary & raw saving are for programmers so they can use the fonts in demo`s, utilities, etc. This will be 100% OS legal - It will run on is own custom screen so it can run alongside DPAINT & other multitasking programs. Professional Screen Developer ============================================= This project has been an on-going project for a few YEARS! with my great friend - Amiga programmer extraordinare - THE ART! (Hi Frank!) It has been updated, changed, updated, changed, tweaked, edited, etc... so many times now that its a shame. The original program was fully written by Frank Tout, That ~magic~ coder! and since the early days of version one it has undergone name changes & almost 99% recoding! Frank and I have worked hard on this project, thats why I we have decided to release it as shareware. This program is just so full of features. What its actually used for is to EDIT maps (level maps) for GAMES. A graphic artist will draw 16x16 blocks and use this editor to create a map for the programmer of the game to use. This saves absolutly TONNES of memory as a map only takes a few hundred bytes compared with a few megs if it was all pre-draw gfx! All serious games programmer NEED this program! It has a built in block creator/editor with rotate left/right/up/down flip left/right/up/down, modify colour palette, etc. The program is fully mouse driven with icons to click on. The map can be scrolled around using the mouse! Blocks are AUTO picked up when the mouse is moved over them, IFF pictures can be loaded..etc... COMING SOON!!! This one is getting released under the ~ARTWERX / LSD~ co-operation label. All spreading will be done by LSD. More details as they become available. This project is a joint effort between myself and THE ART/ARTWERX. Protracker Deluxe v1.0d - 100% Re-Code! ========================================================= Only the IDEA`s from Protracker v1.1b are being used. Everything is being 100% RECODED! A Big Task eh! This is to make it fully OS friendly. It will sport a standard amiga med-res custom, workbench 2 styled user interface, gfx,etc. It will be totally bug free (I hope) by the time it gets released. My Full upgrade support will be in this project if I can pull it off! It will probably be quite some time before this gets OFFICIALLY released. The program will be compatible with Protracker modules but it will also have the option to save out in a new format that takes up less disk space. Intelligent routines will be added like checking to see if the disk has enough space on it before trying to save to it, etc! ______________________________________________________________________________ ______________________________________________________________________________ // \X/ Another Quality LSD Production for `92... 2-Cool/LSD 1992! ______________________________________________________________________________ ______________________________________________________________________________ End.