STONE CRACKER v2.92 Welcome to another update of StoneCracker crunchers. As you all should know the Stc family was mainly developed for demomaker's and crackers purposes and that's the reason why any of Stc crunchers don't support Amiga's excellent multitasking abilities. So use this cruncher if you need to crunch pure data or programs into absolute addresses. The history of Stc crunchers is very long. It's my habbit never finish anything at once. Earlier version: v2.70, v2.71, v2.80 and v2.81 were all based on same crunching algorithms and because of that they were compatible with each other. New versions: v2.91 (never finished) and this v2.92 have new crunching algorithms and they are incompatible with earlier versions. Stc v2.92 was totally re-programmed (sigh) and as a result the code lenght is much shorter, user interface is more human and the efficiency is a bit better (not in all cases). There aren't any pulldown menus or gadgets because they eat quite a lot of memory. All features are still included except 'decrunch colour'. Even some new featured have been added. For example you have to locate the decrunch header somewhere into memory. You can stop crunching by pressing both mousebuttons and exit the cruncher by typing '*' into any question! There are few disadvantages in this cruncher. You can't define flags into Status Register (SR) when using 'Killer Decruncher'. Also files that have areas over 64Kb with same value (e.g 64Kb of 0) decrunching will fail. Because such cases are really rare I forgot this thing. Now let's introduce Stv2.92 through out. I'll explain you all requests and how to use them. 'MegaCrunch' - Quite useful when crunching extremely long files and you don't have more than 1Mb of memory. There's a little program that turns your memory expansion off if it isn't already off. Then the cruncher uses the memory expansion's memory area as a 512Kb buffer. Because the way to turn the memory expansion off is very illegal (jumps to ROM) it will probably work only with Kick 1.2 and 1.3. Note! The memory expansion must be at $c00000-$c7ffff! Old A1000 may have memory expansion at $200000 so be careful with this option. Default: skips the megacrunch mode. 'Buffer Size' - Amount of memory your file needs. If the file is too long to fit into the buffer you will be informed about it. Extra space doesn't make crunching time longer or affect to the efficiency. 'File to load' - I think there's nothing to explain. 'Efficiency' - The memory area that cruncher searchs for equalities. The better the efficiency is the better the result (normally) is. Unfortunately better efficiency makes the crunching time longer. Default: number 3 - 2048 bytes. Zz zz zzzz z zzz zz zz zz Crunching... The crunching time is still far too long. Sorry for not much speed improvement! You can abort crunching by pressing both left & right mousebuttons. After crunching the file you will see how many bytes you won. 'Save Executable or Data' - You can save the crunched file as a self executing program (decrunch header included into the crunched file) or just raw data. There should be a source code for the decrunch header with this cruncher (remember to spread all three parts: cruncher, docs and decrunch source). Default: executable 'Decruncher type' - Normal decruncher does nothing else than decrunches the program and the runs it. If you choose killer decruncher then you can define Amiga's state in very low level. Relocate both User and Supervisor stacks, define IntEna ($dff09a), DmaCon ($dff096), AdkCon ($dff09e) and Status Register (SR - no flags!). When running the program, Amiga has that state you wanted. Note, killer decruncher turns off the system so be careful. More info about killer decruncher later. Default: normal decruncher. 'Decruncher location' - Where the decrunch header should be. A good place is $100. The lenght of decruncher is $f0 (=#240) bytes and the use of stacks during decrunching is only four bytes. 'Start address' - Your program will be located into this address. 'Jump address' - Your program starts here. 'File to save' - I think there's nothing to explain. 'Save again' - You can save the file again. If you answer yes next question is 'Save executable or data'. Default: don't save again. 'Crunch more' - Now it's time to exit this cruncher or go back to the fisrt question 'MegaCrunch'. Default: crunch more. Now deeper info about the killer decruncher. As you already know the killer decruncher turns the system off. This option is very useful when your program needs the whole memory. You can decrunch programs up to 511.75 Kb long. I advice you not to use this option if you aren't sure what you are doing. There are several extra questions to answer if you choose the killer decruncher. 'Supervisor stack' - Location of SSP. MC680xx uses this stack when the 5th bit in Status Register (SR) is set (supervisor state is on). SSP is for interrupts, traps etc. The stack needs about #256 bytes or more memory depending on your use of the stacks. 'User stack' - Location of USP. MC680xx uses this stack when the 5th bit in Status Register (SR) is cleared (user state is on). USP is for normal use. The stack needs about #256 bytes or more memory depending on your use of the stacks. 'Status register' - Value of SR. You can define the state of MC680xx. For example value $2700 = supervisor state is on and all interrupts are off. Note, it's useless to define the lower 8 bits of SR (flags) because they will change during decrunching (they aren't needed so often anyway). 'Interrupt enable' - ($dff09a) You can define which interrupts are on and which are off. Note, all interrupts are turn off at the beginning of decrunching ($7fff to $dff09a). 'Adk con' - ($dff09e) Same as below but for audio, disk, control. 'Dma con' - ($dff096) Same as below but for dma control. Last words... Thanks must go to AntiAction/DefJam for his legendary crunchers and to Nico Francois/Power Peak for his PowerPacker (the best cruncher ever made). And to all those 100000 other Amiga (demo-) crunchers for their superb colour effects. Remember to spread decrunch source, docs and cruncher on the same time. Thanks for using this cruncher and I hope you had use of it. If you want to contact me (Mr.Spiv/Cave) for any reason except swapping write to: Jouni Korhonen Hiihtomajantie 11120 Riihimaki FINLAND PS: Hellos to all of my cool friends around the world...