Pack-Programme: Korsett für Datenschwergewichte

Seit Jahren sind Packprogramme verschiedenster Art erhältlich. Sie komprimieren Dateien so, daß sie weniger Platz auf Diskette oder Platte verbrauchen.

Für die Datenfernübertragung haben »Packer« in den letzten Jahren enorm an Bedeutung gewonnen, denn schließlich zahlt sich ein guter Kompressionsalgorithmus gerade hier schnell in barer Münze aus. Während die älteren Packer, »ARC«, »AR« und »ZOO« alle mehr oder weniger nach dem gleichen Verfahren arbeiten und sich hauptsächlich in puncto Geschwindigkeit oder Ausstattung unterscheiden, ist »LZH«, ein vor einiger Zeit in Japan entwickeltes Kompressionsprogramm, ein echter Fortschritt. LZH erzielt erstaunliche Kompressionsfaktoren, so daß es sich in der Mailboxszene bereits durchgesetzt hat. Zunächst wurde dieses Programm vom Holländer Jon Webb aus der MS-DOS-Welt auf den Atari übertragen. Doch leider wies das Produkt noch erhebliche Mängel auf: Er komprimierte extrem langsam und war nicht in der Lage, ganze Pfade zu verpacken und die Ordnerstruktur beim Entpacken wiederherzustellen.

Dann setzte Yoshi, der Entwickler des neuen Kompressionsprogramms, »LZH« selbst auf den Atari ST um. Nun konnte man schon ganze Laufwerke verschnüren lassen, die Zeit, die »LZH« allerdings dazu brauchte, war immer noch inakzeptabel. Auch mit neuen, höher optimierenden C-Compilern wie Turbo-C 2.0 fiel der Geschwindigkeitszuwachs mäßig aus. Dann endlich hat sich Thomas Quester, ein Programmierer aus Hamburg, an die Arbeit gemacht und das komplette Programm auf Assemblerebene überarbeitet. Das nun vorliegende »LZH« 1.13.09 bietet eine akzeptable Geschwindigkeit bei sensationeller Kompressionsrate.

Da frühere »LZH«-Versionen noch sehr langsam beim Entpacken der Dateien waren, haben verschiedene Programmierer eigene Entpacker geschrieben. Beispiele hierfür sind »SFX« von Stefan Groß oder »PFXPAK«, über das wir ebenfalls in dieser Ausgabe berichten. Beide Entpacker erzeugen eigene, lauffähige Programme und entfernen dabei den für jede »LZH«-Datei typischen Header, so daß ältere Versionen dieses Packers nicht mehr in der Lage waren, die erzeugten Programme weiterzuverarbeiten. Deshalb hat Quester bei seiner Arbeit an der Assemblerversion von »LZH« gleich neue Features eingebaut: Das Programm kann auch durch Entpacker modifizierte Dateien dekomprimieren oder eine Liste der enthaltenen Dateien ausgeben.

»BAPACK« läuft ohne Schwierigkeiten als Accessory und ist somit jederzeit zur Hand
Diese Gegenüberstellung zeigt, was die einzelnen »Packer« bei gleichen Startvoraussetzungen leisten

So ist »LZH« eine echte Alternative zu herkömmlichen Packern geworden.

Ganz neu ist die Idee der Echtzeit- oder Onlinedekompression nicht. Schon vor Jahren konnte der »Happy Packer« Programme ver-, entpacken und anschließend starten. Dieses Programm war jedoch so uneffizient und lahm, daß es für eine ernsthafte Anwendung nicht zu gebrauchen war. Zwei neue Programme, »BAPACK« und »PFXPAK« greifen die alte Idee mit neuer Technik wieder auf. Ihr Vorteil liegt auf der Hand: Gepackte Programme belegen wesentlich weniger Speicherplatz. Darüber hinaus bringen schnelle Entpackalgorithmen sogar noch Geschwindigkeitssteigerungen, besonders auf Floppy-Laufwerken, mit sich.

»PFXPAK«, eine Entwicklung, die die Benutzerfreundlichkeit nicht erfunden hat, aber sie funktioniert dennoch

»BAPACK« stammt ebenso wie der »ST-Transformer«oder »Quick ST« von dem Kanadier Darek Mihocka und seiner Firma »Branch Always Software Development«. Der Packer ist eigentlich ein Programm-File, Sie können ihn aber auch als Accessory installieren, so daß er jederzeit aufrufbar ist. Eine leicht bedienbare GEM-Oberfläche führt durchs Programm und erlaubt somit auch Unkundigen, den Packer zu nutzen. Sie erzeugen mit »BAPACK« sowohl Programmdateien (also »PRG« oder »TOS«-Programme) als auch Accessories oder Programme mit Kommandozeilenübergabe. In unserem Test verpackte »BAPACK« eine Programmdatei der Größe 500 K in 52 Sekunden. Die neu erzeugte Datei war nur noch 361 K lang. Mit Hilfe eines eigenen Menüpunkts ermitteln Sie aber auch die Rate jedes anderen mit »BAPACK« komprimierten Programms. Die von uns getestete PD-Vorabversion kann einmal gepackte Programme nicht wieder in ihre unkomprimierten Pendants zurückverwandeln. Das ist ein »Fehler« im wahrsten Sinne des Wortes.

Bei Echtzeit-Entpackern ist vor allem die Zeit entscheidend, die zur Dekompression der neuen Daten vonnöten ist. Hierbei erweist sich »BAPACK« als recht lahm. Nach dem Start des neu erzeugten Programms vergingen nämlich etwa 18 Sekunden, bevor es entpackt war und von selbst startete. Diese Zeit ist für Harddisk-Benutzer bei weitem zu hoch. Die Autoren arbeiten zwar noch an schnelleren Algorithmen, es wird sich zeigen, inwiefern die Entpackzeiten akzeptabel werden. Bei der derzeitigen Rate möchten wir den »Branch-Always-Packer« nur für den Diskettenbetrieb empfehlen, oder aber zum Packen von Accessories. Diese nämlich verarbeitet das Programm nicht:

»PFXPAK« stammt von zwei deutschen Programmierern. Der eine, Markus Fritze, entwickelte den sensationellen »Turbo-Assembler«, der andere, Thomas Quester, setzte den »LZH«-Packer in Assemblercode um und kennt sich deshalb mit den Kompressions-Algorithmen dieses Programms bestens aus. Ihr Echtzeitpacker »PFXPAK« liegt in zwei Versionen vor. Zum einen ist eine kostenlose Kommandozeilenversion erhältlich, die zwar nicht gerade durch Benutzerfreundlichkeit überzeugt, aber vollständig funktioniert. Die GEM-Ausgabe kann bequem per Maus bedient werden und ist neben ihrer verbesserten Benutzerfreundlichkeit in der Lage, durch einen FFF (»Fast File Finder«) ganze Pfadbäume mit Programmen einzupacken. Accessories lassen sich mit keiner der beiden Versionen packen, die beiden Entwickler arbeiten noch daran.

Im Test zeigte sich eine hervorragende Performance der Packverfahren. Das Einpacken der 500-K-Datei nahm zwar erheblich mehr Zeit in Anspruch (etwa vier Minuten), das Ergebnis kann sich jedoch sehen lassen. Der gepackte Code belegte etwa 260 KByte Speicher. Damit erreicht »PFXPAK« eine extrem hohe Packrate von annähernd 50%.

Geradezu blitzschnell gestaltet sich die Dekompression. Gerade vier Sekunden (!!!) benötigte das komprimierte Programm, um sich selbst zu entpacken und zu starten. Damit verlangsamt »PFXPAK« eine Festplatte nur unwesentlich. Für Diskettenbenutzer bringt das Programm aber merkliche Beschleunigung:

Das Laden des unkomprimierten Programms hätte inklusive Ressourcen etwa 70 Sekunden gedauert, das des gepackten Programms nur etwa 40. So ist »PFXPAK« Platzsparer und Floppy-Speeder in einem. Da »PFXPAK« keine eigenen Routinen besitzt, mit denen der Packer das Originalprogramm . wiederherstellt, hat Quester seinen »LZH«-Entpacker auf die »PFXPAK«-Dateien angepaßt, so daß dieser Entpacker quasi kompatibel ist. Wir können »PFXPAK« uneingeschränkt empfehlen. (mb)

»LZH« wurde von Thomas Quester komplett auf Assemblerebene überarbeitet

Bezugsquellen:

PFXPAK:

PD-Version: D-Box Hamburg

GEM-Version: Zusammen mit »LZH« für 20 Mark bei Thomas Quester, Lampenland 9, 2050 Hamburg 80

LZH:

D-Box Hamburg, oder gegen 20 Mark (Schein) inklusive »PFXPAK« bei Thomas Quester, Lampenland 9, 2050 Hamburg 80

BAPACK:

Derzeit noch kostenlos in allen gut bestückten Mailboxen oder gegen Einsendung eines Rückumschlags und 5 kanadischen Dollars bei

Branch Always Software Development, P.O. Box 2624, Station B, Kitchener, Ontario N2H 6N2, Canada


Laurenz Prüßner
Aus: ST-Magazin 07 / 1990, Seite 62

Links

Copyright-Bestimmungen: siehe Über diese Seite