Low-Cruncher --------------
Der Cruncher, den wir in dieser Ausgabe vorstellen, ist in seiner Art etwas besonderes. Zum einen dadurch, daß er nur auf einem EPROM gebrannt funktioniert, und zum anderen, weil er durch die Vielzahl von Auswahlmöglich- keiten jeden Speicherbereich crunchen kann. Zuerst jedoch ein paar allgemeine Worte zu Crunchern/Packern: Packer oder Cruncher sind Programme, mit deren Hilfe andere Programme komprimiert werden können. Dabei werden entweder Folgen von gleichen Zeichen (Byte-Packer) oder identische Bytefolgen zusammengefaßt (Sequenz-Packer). Wie diese Verfahren im einzelnen funktionieren kann ich hier nicht erklären - dies würde den Umfang dieser Rubrik wohl sprengen. Packer gibt es in den zwei Formen, nämlich solche, die im Speicher stehen und einen Speicherbereich packen, und andere, wie unser Low-Cruncher, die auf EPROM gebrannt, den gesamten Speicher des C64 komprimieren können. Der Nachteil der ersten Form ist klar erkennbar: Wenn der Packer im Speicher steht, kann ein Teil des Speichers nicht für das zu packende Programm genutzt werden. Der Vorteil: Es ist kein EPROM und EPROM-Karte notwendig, um den Packer zu betreiben. Der EPROM-Packer kann hingegen den gesamten Speicher verwenden, kann aber ausschließlich nur als EPROM-Version arbeiten. Dazu ist die Anschaffung einer EPROM-Karte notwendig, die im Einzelhandel ca. 20,- DM kostet. Weiterhin wird ein 8-K-EPROM (2764) benötigt, um den Packer darauf zu brennen. Als letztes muß das Programm auf das EPROM begrannt werden. Hierzu ist ein sog. EPROM-Brenner nötig; eine relativ teure Anschaffung, wenn man ihn nur sehr selten benötigt. Die Preise schwanken von Hersteller zu Hersteller zwischen 50,- und 250,- DM. Um Sie nicht in Unkosten zu stürzen, kann der Low-Cruncher, auf EPROM gebrannt, zusammen mit einer EPROM- Karte, zum Preis von 30,- bei uns bestellt werden.
CP Verlag GmbH & Co. KG Low-Cruncher Gufidaunerstraße 13 8501 Schwarzenbruck
Um jetzt nicht ganz vom Thema abzu- kommen, widmen wir uns nun der Anleitung des Low-Crunchers. Wenn die EPROM-Karte mit dem Low- Cruncher im Expansionsport (rechts hinten) steckt und eingeschaltet ist, kann der Packer durch RESET oder drücken der RESTORE-Taste gestartet werden. Auf die Frage CRUNCHEN (J/N) antworten Sie mit "J", wenn Sie das Programm, das sich gerade im Speicher befindet, packen möchten. Daraufhin kann die niedrigste und höchste Packadresse eingegeben werden (LOW MEM $xxxx und HIGH MEM $xxxx). Als nächstes benötigt der Packer einen Offset-Wert (OFFSET $xx). Dieser Wert gibt die Suchtiefe an, mit der der Packer arbeitet. Werte von $00 bis $FF werden hier akzeptiert. Im allgemeinen gilt: je höher dieser Wert, desto besser ist das Packergebnis. Jedoch erhöht sich damit auch die Zeit, die der Packer benötigt. Werte zwischen $08 und $1f liefern ein akzeptables Ergebnis bei einem ebenfalls akzeptablen Zeitaufwand. Als nächstes muß der Packtyp angegeben werden (PACK TYP 1,2,3,4). Hier kann einer von vier verschiedenen Modi angewählt werden, mit dem das Programm gepackt wird. In der folgenden Tabelle finden Sie die Speicherbereiche, die die einzelnen Packtypen bearbeiten können.
Typ 1 $0200 - $0000 $0000 - $0100
Typ 2 $0200 - $0000
Typ 3 $0200 - $0000 $0011 - $0200 Typ 4 $0200 - $0000 $0100 - $0200
Nachdem Sie Ihren Packtypen gewählt haben, beginnt der Packer mit der Arbeit. Während des Packens sehen Sie die Hintergrundfarbe flackern - ein Zeichen, daß der Packer arbeitet. Sobald dieser mit der Arbeit fertig ist, muß die Startadresse des gepackten Programmes (EINSPRUNG: $xxxx) eingegeben werden. Der Wert der Speicherzelle $01 wird ebenso benötigt wie die Angabe, ob der Interrupt erlaubt oder gesperrt sein soll, wenn das Programm startet. Antworten Sie auf die Frage $01: $xx mit $37, wenn das BASIC und das KERNAL eingeschaltet bleiben sollen. Die anderen Bitkombinationen entnehmen Sie dem Handbuch des C64. Die Frage CLI SET: J/N können Sie in 98% der Fälle mit "N" beantworten. Jetzt gelangen Sie ins Hauptmenü, in dem Sie unter anderem das gepackte Programm speichern können. Haben Sie die erste Frage (PACKEN J/N) mit "N" beantwortet, gelangen Sie sofort ins Hauptmenü. Hier stehen folgende Möglichkeiten zur Auswahl: F1-DIR : Directory anzeigen F2-Speicher mit $xx füllen : hier muß LOW MEM, HIGH MEM und ein WERT zwischen $00 und $FF angegeben werden, mit dem der gewählte Speicherbereich gefüllt wird. F3-Speicher setzen : Hier wird durch LOW MEM und HIGH MEM festgelegt, welcher Bereich beim Packen bearbeitet wird. F4-$0800-$0000 löschen : der Speicher von $0800 bis $0000 wird mit $00 gefüllt. F5-Cruncher starten : es können noch maximal zwei Files geladen werden. Die Startadresse der Files kann im Gegensatz zur LADE-Funktion auch $0000 betragen. Danach wird genau so fortgefahren, wie weiter oben bereits beschrieben. F6-Exit : Packer verlassen und ins BASIC zurückkehren. F7-Laden : Files können geladen werden. "J" lädt, "N" überspringt das File. Wird ein File angewählt, so kann die Startadresse verändert werden. Die Endadresse kann auch als HIGH MEM übernommen werden. F8-Speichern : Name eingeben und RETURN drücken - das File wird gespeichert. I- Kurze Anleitung
Damit diese Anleitung nicht zu einem Mammutwerk ausartet, komme ich nun zum Schluß. Ein Tip noch: Experimentieren Sie ruhig ein wenig mit dem Packer herum, um besser damit zurecht zu kommen. (wk)