                 =====================================
                 XPK - Die externe Kompressionslibrary
                 =====================================

Leider ist der grösste Teil der Dokumentation Englisch.  Dieser Text soll
jedoch wenigstens eine Übersicht darüber geben, welche Files wo zu finden
sind und was sie bedeuten.  Die grobe Unterteilung:  Files für Anwender und
Programmierer.


                              ------------
                              FÜR ANWENDER
                              ------------

 LIESMICH
 README

Archiv-Übersicht in Deutsch und Englisch.

 libs/xpkmaster.library
 libs/powerpacker.library
 libs/iff.library

xpkmaster.library ist die Hauptlibrary.  Sie ist das Zwischenstück
zwischen Programmen und Kompressionlibraries.  Muss nach LIBS:  kopiert
werden.  Die powerpacker.library gehört ebenfalls dahin, falls xpkmaster
in der Lage sein soll, PowerPacker Files zu dekomprimieren.  Die
iff.library schliesslich benutzt XPK, sodass ShowIFF (siehe
unten) direkt mit komprimierten Files arbeiten können.


 libs/compressors/xpkBLZW.library
 libs/compressors/xpkNONE.library
 libs/compressors/xpkNUKE.library
 libs/compressors/xpkRLEN.library
 libs/compressors/xpkIMPL.library
 libs/compressors/xpkENCO.library

Die eigentlichen Kompressionslibraries. Ein Verzeichnis compressors/
muss innerhalb von LIBS: eingerichtet werden und diese Libraries
hineinkopiert werden. Kleine Zusammenfassung der Eigenschaften:
    +--------------------------------------------------------+
    |         Packfaktor  Packgeschw. Unpackgeschw.  Modes   |
    | NUKE        +           +           ++           n     |
    | IMPL        +           0           +            j     |
    | BLZW        0           ++          +            j     |
    | RLEN        -           ++          ++           n     |
    | NONE        --          ++          ++           n     |
    | ENCO        --          ++          ++           n     |
    +--------------------------------------------------------+
Modes steht für die Kompressionseffizienz (0 bis 100).

ENCO ist eine sehr einfache Kodierlibrary, RLEN eine sehr einfache
Kompressionslibrary (beide eigentlich nur als Beispiele für Programmierer
gedacht) und NONE komprimiert gar nicht.


 docs/BLZW.doc
 docs/NUKE.doc

BLZW.doc beschreibt den BLZW Packer, NUKE.doc den NUKE Packer.


 clients/README
 clients/xDir
 clients/xLoadSeg
 clients/xPK
 clients/xQuery
 clients/xType
 clients/xUP

Dies sind Shell-orientierte Xpk-Nutzprogramme. xDir zeigt von allen Files
im aktuellen Directory (oder von einer Datei, oder eines bestimmten
Directorys) an, ob und wie die Files darin gepackt sind. xLoadSeg patcht die
LoadSeg()-Funktion so, dass XPK-gepackte Files direkt gestartet werden können.
xPK erledigt das Packen, jedes angegebene File wird gepackt mit der Endung .xpk
wieder gespeichert, wenn der Parameter -s angegeben ist. Bei den Packern IMPL
und BLZW gibt man den Kompressionsfaktor an, indem man an den Packernamen einen
Punkt und eine Zahl von 0 bis 100 anhängt. Zum Beispiel: xpk BLZW.75 test.datei

 apps/xDrop
 apps/xDrop.info
 apps/xDrop.doc
 apps/xDrop.info
 apps/ShowIFF
 apps/ShowIFF.doc
 apps/ShowIFF.info

xDrop ist der Workbench-Ansatz zum Packen.  Läuft nur unter OS 2.0.  Einfach
mit Doppelklick starten, und Files aufs AppIcon ziehen, und es wird
komprimiert.  Das Originalfile wird gelöscht.  Mit Doppelklick aufs AppIcon
bekommt man ein Control Panel, wo man den Algorithmus wählen kann.  ShowIFF
ist der altbekannte Bilder-Anzeiger, nur dass diese Version dank neuer
iff.library auch gepackte Bilder anzeigen kann.


 xfh/README
 xfh/XFH-handler
 xfh/XFH.doc
 xfh/Mountlist
 xfh/patcharp/README
 xfh/patcharp/patcharp

XFH ist ein dekomprimierender File-Handler. Er laesst eine Partition oder
Subdirectory so erscheinen, als ob alle XPK-komprimierten Files darauf
nicht komprimiert wären. Das Vorgehen:
      Assign XFH0: DH1:
      Mount XH0: from Mountlist
Danach kann man XH0: so benutzen als wäre es DH1:, der einzige Unterschied
ist, dass komprimierte Files beim Lesen dekomprimiert werden. Man kann
beliebig viele dekomprimierende Handler gleichzeitig benutzen.



                           FÜR PROGRAMMIERER
                           -----------------

 docs/sublibs.doc   
 docs/xpk.doc       
 docs/xpksub.doc
 docs/philosophy.doc

Diese Dokumente sind alle Englisch.  xpk.doc ist eine Beschreibung der
Funktionen der XPK-Library im Autodoc-Format.  xpksub.doc dasselbe für
Unter-Libraries, und sublibs.doc beschreibt, wie man Unter-Libraries
selber macht. Philosophy.doc beschreibt die Idee hinter XPK.


 examples/makefile
 examples/xpkdice.c
 examples/xpkmanx.c
 examples/xpksas.c
 examples/xpkgcc.c
 examples/xsum.asm
 examples/xsum.c
 examples/xsum2.c

xpk* sind normale Filepacker/Unpacker für die 4 bekanntesten C-Compiler.
xSum.c zählt alle Bytes in einem komprimierten File zusammen, ist mit allen
Compilern compilierbar.  xSum.asm tut dasselbe in Assembler.  xSum2.c macht
dasselbe, ohne je das ganze File zu lesen.


 include/libraries/xpk.h
 include/libraries/xpk.i
 include/libraries/xpksub.h
 include/libraries/xpksub.i
 include/inline/xpk.h
 include/inline/xpksub.h
 include/xpkmaster.fd
 include/xpksub.fd

Hier sind die Includefiles für C und Assembler, die man für XPK benötigt.
Die Files in inline sind für den GCC-Compiler.  Mit den .fd Files kann man
XPK sogar von BASIC aus benutzen, oder aber Includefiles für andere Compiler
generieren.


 lib/xpkdice.lib
 lib/xpkmanx.lib
 lib/xpksas.lib

Dies sind die Link-Libraries für XPK. Sie werden bei SAS und Manx C nur
benötigt, wenn man die .....Tags() Funktionen verwendet, bei DICE immer.


 rlen/makefile
 rlen/xpkRLEN.c

RLEN ist ein Beispiel für eine sublibrary, die ganz in C geschrieben ist.


 enco/makefile
 enco/xpkENCO.c

ENCO ist ein Beispiel für eine Kodierlibrary.


 sources/makefile
 sources/xDir.c
 sources/xPK.c
 sources/xQuery.c
 sources/xType.c

Dies sind die Sourcen zu den entsprechenden Programmen aus der clients/
Directory.


 oberon/examples/xpk.mod           
 oberon/examples/xsum.mod          
 oberon/interfaces/XpkMaster.mod   
 oberon/interfaces/XpkSubCalls.mod 
 oberon/interfaces/XpkSubDefs.mod

Dies sind die Definitionsmodule und Beispielprogramme zum Schreiben
von XPK-Programmen mit Amiga Oberon.



                                  ---------
                                  COPYRIGHT
                                  ---------

Das Copyright für XPK liegt bei den Autoren (Urban Dominik Müller, Bryan
Ford u.a.), jedoch darf es für nichtkommerzielle Zwecke frei genutzt
werden. Interessenten für eine kommerzielle Nutzung und Autoren von
neuen XPK-Kompressoren wenden sich an die Redaktion der AmigaPlus
oder 

   Urban Dominik Müller
   Schulhausstrasse 83
CH-6312 Steinhausen
   SCHWEIZ

   umueller@amiga.physik.unizh.ch



                                   -------
                                   AUTOREN
                                   -------

Urban Müller        XPK Konzept, xpkmaster.library, NUKE, RLEN, NONE, ENCO
Bryan Ford          XPK Konzept, xpkmaster.library, BLZW
Peter Struijk       Imploder, IMPL
Nico Francois       PowerPacker
Kristian Nielsen    XFH
Martin A. Blatter   xDrop
Christian Schneider XPK Konzept, xLoadSeg
Christian Weber     iff.library Anpassung, ShowIFF
Markus Wild         GCC interface & Beispiele
Harmut Goebel       Oberon interface & Beispiele
