Cranker is a new Commodore Amiga executable cruncher and loader. It decrunches while loading and decrunching requires no additional memory. Cranker is by far the fastest way to run large executables from disk on old, unexpanded Commodore Amiga systems like Amiga 500, 600, and 2000. The source of the loader/decruncher is provided as an example, and you can specify a custom decruncher in the commandline. This way you can create custom executables. An example decrunch header is included that shows the load/decrunch progress. Cranker does not allocate memory. All allocations are made by the OS loader. Hence it is decided right at the beginning if the executable fits into memory and will be loaded at all. Cranker uses a combination of techniques, hunk overlay, asynchronous and buffered I/O, and overlapping, in-place decrunching with one of the fastest decrunchers in existence. A small logic allows to switch between async and buffered loading, for coping with reloc tables efficiently. Relocs are packed into 1, 2, and 4 bytes entities. Due to its complexity, the decrunch header is quite large, but it probably can be further optimized for size. The decrunch header and a few extra bytes to allow overlapping/in-place decrunching are the only memory that add to the required memory of the executable. It will be freed by the OS at exit, like all other sections.

More news: Generation Amiga magazine