The Cruncher v5.0 (C) 1991 Magnus
- Linker/Packer to crunch binary files
Yeah! At last! Ladies and gentlemen, World Federation of Mad Hackers proudly presents: THE CRUNCHER v5.0 – the first sequence-bit packer for Atari 8-bit.
Don’t forget that this is the shareware program. If you use it, please send $5 (or $10 to get a new version – when it will appear of course) to:
Well… don’t save your money this time!
If you’ve any questions, notes, you’ve found a bug, you’ve got an idea to improve this program or you just need a little help with using it – feel free to contact me at address above.
The following document is a standard ATASCII text file without any control characters, therefore it can be printed with any text-editor on every printer.
Forget and forgive me all fatal bugs in my English, I know it isn’t the best!!!
Though Atari 8-bit is rather old computer and it’s present around for about ten years, there’s still very little quantity of packers for this machine. I saw about 15 packers for Commodore 64 (which is even “younger” than Atari) and exactly ONE for our 8-bitter. Yes, I know that some people pack their own files and/or spread the packing routines, but…first: those are pointer crunchers, second: only assembler freaks can use them. I personally also made a pointer packer known as “The Cruncher v2.69” and anyone could use it. But since pointer-crunching has poor results it still wasn’t good enough.
Now, after an year of research I’d like to present you my new masterpiece – “The Cruncher v5.0”. It is the pointer-sequence-bit packer that really shrinks files and gains thousands of bytes. Of course crunching process takes much longer time than in previous version, but I think it’s worth to wait ten minutes longer and to have file 30% (average data) shorter. One more thing: “The Cruncher v5.0” can pack DOS files only.
Here comes the brief instruction…
HOW TO USE THIS PROGRAM?
Yeah! It’s really simple. The important note is that crunching proceeds in two phases.
The first phase – packing:
Boot the master-disk without the BASIC. After few moments the title page appears in the front of you. Press START key and insert a disk with your programs. Press SPACE BAR to read a directory, then point a file to crunch by using the cursor keys (no need to hold CONTROL). Press RETURN and wait till the file is loaded.
It can happen that file starts automatically and it’s because the file start address loads into $2E2 (738 dec) and not into $2E0 (736 dec). You can repair it by changing the last six bytes of file. If you’re lamer and you don’t know how to do it… I’m sorry.
If everything is ok, remove your disk, insert the master-disk into the drive (warning: the master-disk must be unprotected all the time) and press SPACE BAR. After few moments you’ll be asked for STEP, which is between 1 and 7.
There’s no time and place to explain what does STEP mean, but general way of using it is: the longer program you gonna crunch – the smaller STEP should be selected. So, make your decision and wait till the first pass is finished. It’s a pointer pass, so it takes only about 5 seconds.
In case the program after this pass is longer than $C400 bytes, crunching is aborted and red bars appear in the front of you. Try the smaller STEP.
If all went good you’re asked for OFFSET. Also, you can see an actual length of your program (after the first pass). OFFSET is the number of bytes which are searched forward for the sequence.
OFFSET 1 – $0100 bytes
-“- 2 – $0200 -“-
-“- 3 – $0400 -“-
-“- 4 – $0800 -“-
-“- 5 – $1000 -“-
-“- 6 – $2000 -“-
-“- 7 – $4000 -“-
Yeah! You guessed it! The smaller OFFSET is selected – the faster packing proceeds. But then it also got a worse results. Yet, don’t suppose that if you select OFFSET equal to 7, you will get the best results. You have to know that if the OFFSET if big, a lotsa of bits is lost for the decruncher commands. I personally noticed that the best OFFSET is 4 ($0800 bytes). Of course it also depends on kind of file to crunch. And don’t try to pack a file with OFFSET bigger than its length.
Okay, OFFSET has been selected, now wait some minutes till the packing process is finished. During packing a single line is on the screen. It shows you how many bytes left to crunch (LEFT), how many bytes have been saved to disk (ON DISK) and how long file is (LENGHT). When the packing ends a colorful bars appear on the screen and you can press RESET.
The first phase of crunching is done, boot the master-disk to start the second one – linking.
When the title screen appears press SELECT. You enters the LINKER. It will link packed data with decruncher and file markers and will save it in normal DOS format.
In the screen you can see length of unpacked file, length of data after packing, length of final file (with decruncher and markers), OFFSET which has been used and start address of original file. You can add contents of half a stack (memory location $100 – $17f) to destination file by pressing OPTION. If you’re glad of a result press SPACE to load data into memory. Then insert a destination diskette and type in the filename for packed program. Confirm it by pressing Y and SPACE and wait till the final version of your program is saved on disk. Reset the computer and check out, whether your program works. It probably will, but if not – there’s nothing you can do.
“The Cruncher v5.0” packs data contained in following memory-locations:
$0480 – $06FF
$0C00 – $CFFF
$D800 – $FFFF.
And that’s folks! See you all in my next productions.
of Mad Hackers
Bootable disk (ATR / 7-Zip): Cruncher 5.0