CRUNCH!

PACKER. CRUNCHER. DATENKOMPRESSION.

Packer und Cruncher für den Commodore 64 (C64)

August 20, 2022 | Datenkompression

In den 1980er Jahren, als der C64 seinen Höhepunkt erreichte, waren Speicherressourcen begrenzt und teuer. Disketten, die als primäre Speichermedien für den C64 verwendet wurden, hatten nur begrenzte Kapazitäten, typischerweise im Bereich von 170 bis 180 Kilobyte pro Seite. Es war in dieser Umgebung der begrenzten Speicherkapazität und hohen Speicherkosten, dass die Idee von Packern und Crunchern entstand.
Die Idee hinter Packern und Crunchern bestand darin, Programme und Daten so zu komprimieren, dass sie weniger Speicherplatz auf den begrenzten Speichermedien benötigen. Durch die Entfernung von redundanten Informationen und die Anwendung effizienter Kodierungstechniken konnten Packer und Cruncher die Größe von Programmen erheblich reduzieren, ohne ihre Funktionalität zu beeinträchtigen.

Packer und Cruncher verwenden verschiedene Komprimierungstechniken, um die Größe von Programmen und Daten zu reduzieren. Der Prozessablauf ist wie folgt.
Das Programm analysiert den Quellcode oder die Daten und identifiziert redundante oder wiederkehrende Muster. Basierend auf der Analyse wendet der Packer oder Cruncher verschiedene Komprimierungsalgorithmen an, um redundante Informationen zu entfernen oder effizienter zu kodieren. Dies kann das Ersetzen von wiederkehrenden Daten durch kürzere Token, Huffman-Kodierung, RLE (Run-Length Encoding) oder andere Techniken umfassen. Das komprimierte Programm oder die Daten werden im Anschluss auf dem Speichermedium gespeichert.

Die Verwendung von Packern und Crunchern bietet mehrere Vorteile. Zum einen: Platzersparnis. Durch die Reduzierung der Größe von Programmen und Daten können mehr Programme auf einer Diskette gespeichert werden, was die Kosten für Speichermedien senkt und die Benutzerfreundlichkeit verbessert.
Dann sind die Ladezeiten ein wichtiger Faktor. Kleinere Programme und Daten können schneller von Disketten geladen werden, da weniger Daten übertragen werden müssen.
Und letztendlich: die Verbreitung der Software. Durch die Komprimierung von Software konnten C64-Programme und Spiele einfacher übertragen werden, sei es per Diskette, Modem oder andere Übertragungsmedien.

Einige C64 Packer und Cruncher im Vergleich

Double-Disk-Checkin-Packer: Diese Art der Packer, wie der "Unipacker", verwendet einen zweistufigen Prozess, um Programme zu überprüfen und zu komprimieren. Durch die Überprüfung von OP-Codes und das Entfernen von Nullen kann eine effiziente Komprimierung erreicht werden. Dieser Ansatz bietet eine gute Balance zwischen Komprimierungseffizienz und Geschwindigkeit.

Quick 1-Pass Packer. Schneller, aber weniger effizient als der Double-Disk-Checkin-Packer, funktioniert dieser Packer im 1-Pass-Modus und wendet einfache Komprimierungstechniken an. Beispiele hierfür sind 'Sledgehammer'. Obwohl weniger effizient, sind sie dennoch nützlich für Situationen, in denen Geschwindigkeit wichtiger ist als maximale Komprimierung.

Singlefile-Cruncher. Diese Art von Cruncher, wie 'Time Cruncher', 'Equal Sequence' und 'Power Cruncher', verwenden einen 1-Pass-Modus, um Programme sofort zu verkleinern. Die Geschwindigkeit kann variieren, aber sie bieten eine gute Balance zwischen Komprimierungseffizienz und Geschwindigkeit.

Der Cruel Cruncher verwendet beispielsweise im Gegensaz zu den Singlefile-Crunchern einen 2-Pass-Modus, um bessere Komprimierungsergebnisse zu erzielen. Obwohl langsamer als der Singlefile-Cruncher, bietet der Cruel Cruncher eine höhere Komprimierungseffizienz und ist daher für Anwendungen geeignet, bei denen maximale Speichereinsparungen erforderlich sind.

Die Zeit, die benötigt wird, um Dateien auf dem C64 zu entpacken, hängt von verschiedenen Faktoren ab. Angefangen von der Größe der Datei. Größere Dateien erfordern in der Regel mehr Zeit zum Entpacken als kleinere Dateien. Dann die Geschwindigkeit des Crunchers. Ein schnellerer Cruncher benötigt weniger Zeit zum Entpacken als ein langsamerer. Und nicht zuletzt, die Komplexität der Komprimierung. Einige Komprimierungstechniken erfordern mehr Rechenleistung und Zeit zum Dekodieren.
Die Entpackungszeit für eine Datei auf dem C64 je nach Größe und Komplexität der Datei sowie der verwendeten Cruncher-Variante kann zwischen wenigen Sekunden bis hin zu mehreren Minuten oder sogar Stunden variieren. Letzteres ist allerdings eher selten, die längste Zeit, die ich ohne Cartridge beim Decrunchen einer Datei auf dem C64 gewartet habe, war 4 Minuten.

Nochmal von vorn: wofür sind Packer und Cruncher auf dem C64 gut?

Ein Packer ist ein Programm, das Programme und andere Daten komprimiert, um Speicherplatz zu sparen. Ein Cruncher ist ähnlich wie ein Packer, jedoch mit besseren Kompressionsraten. Beide sind für den C64 verfügbar und helfen, den begrenzten Speicherplatz effizient zu nutzen.
Es gibt verschiedene Arten von Packern und Crunchern für den C64. Es gibt sogenannte Double-Disk-Checkin-Packer und Quick 1-Pass Packer sowie den Singlefile-Cruncher und so weiter.
Packer und Cruncher analysieren Programme und Daten, um verschwendeten Speicherplatz zu identifizieren und zu eliminieren. Sie wenden Komprimierungstechniken an, um die Dateien auf kleinere Größen zu reduzieren. Die praktische Anwendung von beiden Tools erfordert das Verständnis der Umwandlung von Dezimal in Hexadezimal. Ein kleines Beispiel: Die Zahl 20 in Dezimal entspricht einer 1A in Hexadezimal.
In einer Zeit, in der Speicherplatz ein kostbares Gut war, spielten Packer und Cruncher eine entscheidende Rolle dabei, die Leistung und Vielseitigkeit des Commodore 64 zu maximieren. Ihre Fähigkeit, Programme und Daten effizient zu komprimieren, ermöglichte es den Benutzern, mehr aus ihren Systemen herauszuholen und ihre kreativen Grenzen zu erweitern. Auch wenn sie in der heutigen Zeit - ausserhalb ihrer Anwendung in der Demoszene -  nicht mehr so relevant sind wie damals, bleibt ihr Vermächtnis im Bereich der Computertechnologie und der Softwareentwicklung auf dem C64 von unschätzbarem Wert.


Verwandte Artikel