** StoneCracker v4.02a ** and ** StoneCracker Library v2.0 ** 25-Jul-93 * Contents * 1.0 - StoneCracker v4.02a 1.1 - Credits & Improvments 1.2 - You need... 1.3 - Filetypes & abort 1.4 - Decrunch effect 1.5 - Security length 1.6 - Overwrite & add dataID 1.7 - Library decruncher 1.8 - Data formats & source codes 1.9 - Coming next... 2.0 - StoneCracker Library v2.0 2.1 - Credits 2.2 - What you can do... 2.3 - Includes 2.4 - Compatability & future 1.0 - * StoneCracker v4.02a * 1.1 - StoneCracker is a program for crunching all kinds of data in your Amiga computer. All algorithms and userinterface were developed & programmed by Jouni 'Mr.Spiv' Korhonen of StoneWare SoftWorks. This program is PD and may not be used in commercial programs without my permission. The userinterface was programmed in C and designed with GadToolsBox. Since the last version 4.01 StoneCracker v4.02a has got heaps better efficiency, easier to use userinterface, more reasonable data format, better multitasking and decrunchers work with 68040 caches. For any reason considering StoneCracker contact me at: Jouni Korhonen Hiihtomajantie 11120 Riihimaki FINLAND 1.2 - To run StoneCracker v4.02a you need atleast... KickStart 2.0+ Reqtools.library v38+ ( (c) Nice Francois) Stc.library v2.0+ Because StoneCracker was developed with a basic A2000C 7MHz 68000 + 3Mb ram + HD it's not memory hungry and speed has been one of the main topics during developing crunching algorithms. NOTE! CRUNCHED PROGRAMS WORK IN ALL KICKSTARTS and AMIGAS! 1.3 - StoneCracker v4.02a supports three filetypes: executables, datas and absolute address files. There is a cyclegadget for changing the filetype. Executable - After loading a file cruncher checks if it can handle the hunk structure of the file. If the hunks are ok they will be processed which makes the file always shorter than the original. Bad thing is that it's impossible to get the original file back. During saving a crunched executable, decruncher is be attached to the file. The decruncher is a compromise between speed and size, not the fastest or the shortest. There's also library based decruncher available (set Library option on). It decrunches fast and the size of the decruncher is really short. But need stc.library for decrunching! The decruncer(s) can handle 68040 caches! Unfortunately decrunching needs twice the memory than the original file does. After decrunching the usage of memory will go back to normal. Data - Data files are saved without decruncher and in that way usefull when you just need to crunch pure data. Decrunch infoheader is attached to crunched file. We talk about it later. Absolute - Though Amiga is a multitasking computer some programmers want to program their programs into special memory address. And sometimes it's even a must... or makes things much easier. But be careful... You may easily overwrite system areas! The absolute file decruncher is simple and there aren't many parameters to pass. Only load address and jump address. Note that the absolute decruncher also handles 68040 caches and that is done with system calls. Keep that in mind! You may abort crunching anytime by pressing the _Abort_ gadget! 1.4 - Decrunch effect is a sign that tells you something is happening during decrunching. There is a cyclegadget for changing the effect. No effect is the default - as some people hate 'color shows'. Decrunch effect doesn't affect the filesize or decrunching speed... Just visual entertainment. 1.5 - Security length isn't that important in normal use. I recommendent you to use the default value (=16+64). Some data or absolute files may not be very crunchable at the beginning of the file. In that case increasing the security length is useful. Note! The larger the security length the more memory is needed during decrunching. 1.6 - Overwrite - If you set overwrite option on, StoneCracker doesn't check if you overwrite already existing file. Add dataID - If you set this option on (default), '.stc' identifier is added to every crunched data file's name. 1.7 - Library decruncher - If you set Library option on, saved executables need stc.library for decrunching. The advantage is that the decruncher will extremely short and much faster but remember... Decrunching is impossible without stc.library! 1.8 - Data formats - read this carefully if you are going to use crunched files from your own programs. Every crunched file has a decrunch infoheader (=16 bytes) in front of the data. The form is: 'S???' ;four bytes - algorithm version, 'S403' at the moment securitylength ;longword - overlap buffer size ;(used security length in this file) uncrunched ;longword - original length crunched ;longword - crunched length . . . Crunched files are decrunched from the end to the beginning of the file. The memory is also filled from the last address to the first address. Crunched data and decrunched data may overlap. Just take care that the first address of the crunched data is atleast security length distance (in lower memory) from the start address of decrunched data area! There should be sourcecodes for datadecruncher. I think it's quite well optimized for speed. If you find better sollution please send it to me! 1.9 - Because StoneCracker v4.02a was actually just an example userinterface for the stc.library it's not the best possible. Next release of StoneCracker (planned to be v4.03 -> v4.10) will of course support new stc.library version and include more useful options: - full commandline control - asl instead of reqtools - save datas to tracks I don't know when I find time to program it but hopefully before the Christmas. 2.0 - * StoneCracker Library v2.0 * 2.1 - StoneCracker Library is a new library for programs that need to crunch data. Stc.library v2.0 is the first release of StoneCracker Library. All algorithms used in stc.library were developed and programmed by jouni 'Mr.Spiv' Korhonen of StoneWare SoftWorks. The library was programmed 100% in fast 68000 assembly. All routines are especially optimized for 68000 but they will work ok in 68010/20/30/40/... The library is KickStart 1.2/1.3/2.0+ compatible! Stc.library is also PD and may not be used in commercial programs without my permission. 2.2 - With stc.library you can crunch data, load files, allocate buffers, process executable files and save crunched files. Actually stc.library is a complete cruncher without an userinterface! So if you want you can easily build your own cruncher around the library and that's something I'd like see. Just don't use the name *StoneCracker*!! Executable file decruncher(s) that are included in the library can only decrunch processed executables. 2.3 - With this release there should be standard include files for SAS/C and assembler. There should also be a docfile (=library.doc) that explains every single library function. How to use in and for what! 2.4 - Although StoneCracker v4.02a is KickStart 2.0+ only stc.library works with all KickStarts! The library routines were programmed following all rules stated in books so there shouldn't be any problem with compatability in different Amiga models or equipment. It's obvious that there are bugs around and if you find any please let me know. Tell your equipment and describe where and how the error happened. Major update v2.1+ of the stc.library is already planned. I hope to increase the crunching speed and include 68020+ support (=more speed). MOVEQ #0,D0 RTS