home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
392.lha
/
CompDisk
/
CompDisk.dok
< prev
next >
Wrap
Text File
|
1990-07-03
|
11KB
|
208 lines
======================= CompDisk & DecompDisk ========================
======================================================================
CompDisk & DecompDisk © Copyright 1990 by MXM, geschrieben von Olaf
Barthel. Wir übernehmen keine Garantien, daß die Programme CompDisk &
DecompDisk einwandfrei arbeiten und somit 100%ige Datensicherheit
gewährleistet ist. Wer die Programme oder deren Quellcode benutzt,
der tut dies auf eigene Gefahr!
============================ Hintergrund =============================
======================================================================
Derzeit sind für den Amiga soviele Programme zum Komprimieren von
Disketten verfügbar wie es Sand am Meer gibt. Diese glänzen entweder
durch extrem geringe Länge der resultierenden Datei oder durch extrem
hohe Komprimierungsdauer (es ist eben doch nicht alles Gold was
glänzt). Wieder einmal ist es Zeit, daß ein weiteres Programm dieser
Art das Licht der Welt erblickt.
Dieses Programm versucht nicht:
- Dreieinhalb Stunden an einer einzigen Diskette zu laborieren, um ein
Datenfile von dreizehn Bytes Länge zu produzieren.
- Longtracks, exotische Synchronisierungsformate und andere
Kopierschutztricks 1:1 zu reproduzieren.
- Dem Benutzer eine schwer zu erlernende Benutzerführung aufzuzwingen.
Wer eben diese Features erwartet hat, kann CompDisk & DecompDisk guten
Gewissens löschen.
========================= Leistungsmerkmale ==========================
======================================================================
Beide Programme lassen sich sowohl vom CLI, als auch von der Workbench
aus bedienen. Leider ist der alte Lattice-Arp-Interface-Code nicht in
der Lage, residente Programme zu erzeugen. 'ARes' wird bei jedem
Aufruf einen Checksum-Error melden. Die Routinen der arp.library und
der req.library kommen zum Einsatz, deshalb sollten sie vor der
Installation beider Programme in das LIBS: Verzeichnis kopiert
werden.
Der Lempel-Ziv-Komprimieralgorithmus kommt bei beiden
Programmen zum Tragen. Er ist nicht nur vergleichsweise schnell, er
komprimiert Daten bis auf weniger 50% ihrer ursprünglichen Länge.
Jede Diskette wird Spur für Spur (0-79) komprimiert. Sollte dennoch
der Inhalt einer Spur nicht durch Komprimierung verkürzt werden
können, wird der ursprüngliche Inhalt übernommen.
Über jede Spur wird vor der Bearbeitung eine 16-Bit Prüfsumme
angelegt, die mit den schließlich zu schreibenden Daten verglichen
wird. Sind Fehler, z.B. während des Transfers über Telefonleitung
aufgetreten, werden diese früh genug während der Bearbeitung erkannt
und gemeldet.
Um den Komprimierungsaufwand zu reduzieren, werden nur
wirklich benutze Datenblöcke bearbeitet, leere Blöcke werden mit
Nullen aufgefüllt.
Im ungünstigsten Fall benötigt die Komprimierung nur etwa
sechs Minuten, die Dekomprimierung im ungüstigsten Fall etwa vier
Minuten. Für gewöhnlich benötigt die Komprimierung einer Diskette
zwischen drei und vier Minuten (Durchschnittswerte nach DIN Martin).
Achtung: Die mit CompDisk erzeugten Dateien sind zu keinem
anderen Programm kompatibel. Ebenso kann DecompDisk das Datenformat
anderer Diskettenkomprimierungsprogramme nicht lesen und umsetzen.
====================== Bedienung der Programme =======================
======================================================================
Vom CLI akzeptieren die Programme unter folgender Vorgabe
FILE/A,DRIVE/A,NOCLEAR/S die entsprechenden Parameter:
FILE .......... Der Dateiname, unter dem die komprimierte Datei
erzeugt wird. Das Programm DecompDisk liest unter
diesem Namen eine komprimierte Datei ein. Hat diese
nicht das richtige Format, erscheint ein
entsprechender Hinweis.
DRIVE ......... Das Laufwerk (DF0: - DF3: oder RAD:) dessen Daten
komprimiert werden sollen. Derzeit werden nur die
Standardlaufwerke unterstützt. Das Programm
DecompDisk erwartet hier den Namen des Laufwerks, auf
das die entkomprimierten Daten geschrieben werden
sollen.
NOCLEAR ....... Nur das Programm CompDisk unterstützt diesen
Parameter. Ist er gewählt, werden unbenutzte
Datenblöcke einer Diskette nicht gelöscht.
Nur vom CLI aus gestartet wird die req.library von den Programmen
nicht benötigt und auch nicht geöffnet.
Durch einen Doppelklick auf das Icon der Programme lassen sich
CompDisk & DecompDisk von Workbench starten. Ein Fenster öffnet sich
unter dem Mauszeiger, das sechs Gadgets enthält.
Stringgadget .. Hier wird der Pfadname erwartet, unter dem die
komprimierten Dateien abgespeichert werden sollen. Im
Programm DecompDisk hat dieses Feld keine Bedeutung,
stattdessen wird an dieser Stelle der Name der derzeit
bearbeiteten Datei angezeigt. Achtung: aus
undefinierbaren (huch!) Gründen erscheint dieser Name
nicht immer (zumindest nicht bei Neumond am 25.
Februar), trotzdem wird die Datei korrekt angelegt,
bzw. gelesen.
Laufwerke ..... Hier wird das zu bearbeitende Laufwerk angewählt. Bei
CompDisk wählt man erst das Laufwerk und legt
anschließend die zu lesende Diskette ein. Bei
DecompDisk ist es genau umgekehrt: erst wird die
Diskette eingelegt, dann das Laufwerk angewählt, in
dem sich die Diskette befindet. Der Arbeitsvorgang
wird abgebrochen, sobald das Stop-Gadget angeklickt
wird, vorher erfolgt jedoch eine Sicherheitsabfrage.
Soweit möglich wird für jede erzeugte Datei ein Icon angelegt. Um die
Datei von Workbench aus wieder entkomprimieren zu können, muß dieses
Icon unbedingt erhalten bleiben!
Eine Datei wird von Workbench entkomprimiert, indem ihr Icon
doppelgeklickt wird, oder man die Shift-Taste gedrückt hält, die
einzelnen Dateien selektiert und zuletzt das Icon von DecompDisk
doppelklickt.
Übrigens: der Chefkoch empfiehlt, dieses Programm auf einem Amiga mit
Accelerator-Board laufen zu lassen, besonders wenn größere
Diskettenmengen durch den Wolf geschickt werden sollen, verkürzt sich
die Kompressionszeit erheblich (auf einem A2000 mit 33 MHz GVP-68030
Turbo-Board benötigte CompDisk ganze 1.07 Minuten zum Bearbeiten einer
100% vollen Diskette, was in etwa der Geschwindigkeit eines
DiskCopy-Befehls von Diskette in die RAD:-Ramdisk entspricht).
==================== Erweiterungen des Programmes ====================
======================================================================
Es wäre sicherlich eine gute Idee, wenn dieses Programm neben dem
Lempel-Ziv Komprimierungsalgorithmus andere Algorithmen unterstützen
würde. Der bisher brauchbarste Algorithmus, adaptives
Huffman-Squeezing (wie in LHArc), ließ sich bisher nicht erfolgreich
adaptieren, da der mir zur Verfügung stehende Quellcode sich nicht
unter Lattice 'C' compilieren läßt (der Algorithmus hängt in einer
Endlosschleife in EncodeChar() fest). Es ist jedermann freigestellt,
Algorithmen zu schicken, selbstverständlich erhält er eine neue
Version der Programme als Dank zurückgeschickt.
========================== An den Anwender ===========================
======================================================================
Die Entwicklung dieser Programme hat mehr Schweiß und Zeit gekostet,
als ursprünglich abzusehen war. Deshalb möchten wir jeden Anwender,
der dieses Programm als gut und benutzenswert erachtet, bitten, uns
eine Spende von mindestens DM 15,- zu schicken.
Schickt Briefe, Spenden, Fehlerlisten an:
Olaf Barthel, MXM
Brabeckstraße 35
D-3000 Hannover 71
CompDisk & DecompDisk sind Share-Ware und dürfen nicht zum Gegenstand
nicht-autorisierter kommerzieller Vermarktung gemacht werden. Wir
möchten darüber unterrichtet werden, wenn eines oder beide Programme
in PD-Auswahlserien übernommen werden sollen. Ausdrücklich gestattet
ist die Übernahme der Programme in deutsche PD-Serien und die
Veröffentlichung im Rahmen des AmigaJuice-Diskettenmagazins.
========================== Quellennachweis ===========================
== (or what do you think is the proper translation for 'Credits?') ===
======================================================================
Herzlichen Dank an Arp Programmers für Arp 1.3, Stephen Satchell &
Chuck Forsberg für die 16-Bit CRC-Routinen, Bruce Dawson & Colin Fox
für die req.library und nicht zuletzt an den Autor der
Kompressions/Dekompressionsroutinen, dessen Name in der scheußlichen
Programmstruktur leider nicht mehr auszumachen war.
======================= Entwicklungsgeschichte =======================
======================================================================
V1.6 In dieser Version werden jetzt schließlich und endlich die 16
Bytes Sector-Label-Daten für jeden Block mitgepackt und
abgespeichert. Unangenehmer Nebeneffekt: diese Version ist
nicht mehr abwärtskompatibel zu den älteren Versionen.
V1.5 Eine weitere Überarbeitung der Routinen bringt ein bißchen
mehr Sympathie für Multitasking, Speicherverwaltung und
die Arbeitsgeschwindigkeit der Programme mit sich.
V1.4 Sämtlicher Arbeitsspeicher wird jetzt - sofern vorhanden - im
Fast-Ram angelegt. Das Komprimieren/Dekomprimieren dürfte
damit wieder etwas schneller geworden sein (besonders Besitzer
von Accelerator-Boards mit 32-Bit-Ram dürften sich darüber
freuen).
V1.3 Überarbeitung der gesamten Routinen, Optimierung an allen
Ecken und Kanten, Geschwindigkeitsgewinn von etwa 10%-20%.
Endlich funktioniert auch der Zugriff auf die Disk-Bitmap
einwandfrei.
V1.2 Umstellung auf Lattice 'C', kleinere Veränderungen mit großem
Effekt in Hinsicht auf Codelänge (jetzt etwa 21K) und
Arbeitsgeschwindigkeit (bis zu 60% schneller!).
V1.1 Einführung der 16-Bit CRC Prüfsumme, Intuition-Interface (mit
dem RCT) eingebaut. Erste Experimente mit der Bitmap der
Diskette (die natürlich auch prompt fehlschlugen).
V1.0 Komprimierung mit der Holzhammermethode, nicht sonderlich
schnell, aber verläßlich. Programmlänge etwa 35K (Aztec 'C'
3.6).
============================ Postscriptum ============================
======================================================================
Da viele Leute an uns herangetreten sind und fragten, warum wir unsere
Doumentationen nicht in Deutsch schrieben, haben wir jetzt erstmals
den Versuch gewagt, ein Programmkonzept zuerst im deutschen Sprachraum
zu veröffentlichen. Bitte enttäuscht uns nicht, Amigas und Amigos,
wir machen diese Arbeit nur für Euch, wir warten auf Eure Reaktionen.