NINJA-TOOLS - Lautlose und flinke Helfer - ----------------------------------------
Die Ninja-Tools bestehen aus vier klei- nen Programmen, die Ihnen das Zusammens- piel zwischen C64 und Floppy erleichten sollen. Es handelt sich dabei um kleine Helfer zum Schnelladen, -kopieren und -formatieren, sowie um eine Packroutine, die während des Ladens entpackt. 1) ALLGEMEINE BEDIENUNGSHINWEISE Auf dieser MD finden Sie ingesamt fünf "Ninja-Files". Das erste davon, mit Na- men "NINJA-TOOLS", dient quasi als Aus- wahl-Menu für die vier eigentlichen Tool-Programme. Laden Sie es mit LOAD "NINJA-TOOLS",8 und starten Sie es durch 'RUN'. Sie können nun eines der Tool- Programme mit Hilfe der Tasten von '1' bis '4' auswählen, woraufhin das gewähl- te Programm automatisch nachgeladen und gestartet wird. Sie können aber auch jedes der Ninja-Programme "von Hand" laden und starten (das erspart das Laden des Menus), indem Sie es ganz normal mit LOAD"NINJA-XXX",8 laden und ebenfalls mittels 'RUN' starten. 2) NINJA-LOAD Dies ist der serielle Flopyspeeder des Ninja-Tool-Systems. Laden und starten Sie ihn, so erscheint die Meldung "NIN- JA-LOAD BY TEKLSOFT" auf dem Bildschirm, die Sie darüber informiert, daß der Schnellader aktiv ist. Laden Sie nun ein File mittels LOAD in den Speicher, so wird automatisch der Schnellader akti- viert, der bis zu 25 Mal schneller ist, als die original Laderoutine des C64. Ninja-Load bleibt solange aktiv, bis die Tastenkombination 'RUN/STOP-RESTORE' gedrückt, oder ein Reset ausgelöst wird. Danach kann sie mit einem "SYS320" wie- der reaktiviert werden. Einige Programme können nach dem Laden und Starten abstürzen, da sie den Speicherbeich von $E000 bis $FFFF nutzen, in dem Ninja- Load sich breitgemacht hat. In diesen Fällen sollten Sie den Schnellader vor dem Starten des geladenen Programs immer mit 'RUN/STOP-RESTORE' deaktivieren, damit alles wieder wie gewünscht funk- tioniert. Aus technischen Gründen kann Ninja-Load nur Programme mit einer maxi- malen Länge von 202 Blocks (bis Adresse $D000) laden, was jedoch bei der Lade- routine des Betriebssystems ebenfalls der Fall ist. 2) NINJA-COPY Hierbei handelt es sich um ein schnelles Disketten-Kopier-Programm. Es kopiert eine ganze Diskette in nur 90 Sekunden (mit Verify in 145 Sekunden). Nach dem Laden und Starten erscheint zunächst ein kleiner Intro-Bildschirm, aus dem Sie mit einem Druck auf die 'SPACE'-Taste in das eigentliche Programm gelangen. Hier stehen Ihnen nun einige Funktionen zur Verfügung die mit den folgenden Tasten aufgerufen werden: a) 'D' - DIRECTORY Dieser Menupunkt zeigt das Inhaltsver- zeichnis der momentan eingelegten Dis- kette auf dem Bildschirm an. Mit einem beliebigen Tastendruck gelangen Sie dann wieder ins Hauptmenu zurück. b) 'C' - COPY DISK Dies ist der eigentliche Kopierteil des Programms. Hierbei werden Sie zunächst dazu aufgefordert, eine Quelldiskette einzulegen, was mit einem Druck auf die 'RETURN'-Taste bestätigt wird. Es wird nun das erste Drittel der Diskette in den Speicher geladen, wobei der Bild- schirm in grauen Farben flackert. An- schließend sind Sie dazu aufgefordert, eine Zieldiskette einzulegen, was eben- falls mit 'RETURN' bestätigt wird, und woraufhin das erste Drittel der Quell- diskette geschrieben wird. Dieser Vor- gang wiederholt sich nun insgesamt drei Mal, bis die gesamte Diskette kopiert ist. Zum Abschluß gelangen Sie mit der 'RETURN'-Taste wieder ins Hauptmenu zurück. Sollte der Bildschirm während des Kopie- rens nicht flackern, so gibt es Probleme mit Erweiterungen am User Port. Sie sollten diese dann vorher entfernen, damit das Programm einwandfrei läuft (bei einem Drucker mit Centronics- Interface, reicht es in der Regel, den Drucker einzuschalten, damit alles funk- tioniert). c) 'R' - RESET Diese Funktion setzt nach einer, mit 'Y' oder 'N' zu beantwortenden, Sicherheit- sabfrage, den C64, sowie die Floppy wie- der in den Einschaltzustand zurück, wo- mit Sie Ninja-Copy auch verlassen. d) 'F1' - VERIFY Mit dieser Taste schalten Sie die Ve- rify-Funktion ein und aus. Bei einge- schaltetem Verify wird während des Ko- pierens geprüft, ob die geschriebenen Daten auch wirklich sauber auf die Dis- kette übertragen wurden. Gerade bei al- ten oder kaputten Disketten sollte diese Option zur Datensicherheit verwendet werden. 4) NINJA-FORMAT Dies ist ein Programm zum besonders schnellen Formatieren von Disketten. Nach dem Programmstart wird zunächst nach dem Namen der zu formatierenden Diskette, sowie ihrer zweistelligen ID gefragt. Hiernach kann noch gewählt wer- den, ob ein Verify während des Formatie- rens durchgeführt werden soll ('Y' für "Verify an", 'N' für "Verify aus"). Nun muß nur noch die Zieldiskette eingelegt werden, was Sie mit einem Druck auf die 'SPACE'-Taste bestätigen. Die eingelegte Diskette wird in nur 12(!) Sekunden (oh- ne Verify) formatiert. Mit Verify dauert es etwas länger. Nach abgeschlossener Formatierung gibt Ihnen das Programm noch den Diskettenstatus aus und wartet Anschließend auf einen beliebigen Ta- stendruck, der Sie wieder zum Program- manfang zurückbringt. 5) NINJA-LOREPA Dies ist ein Programm, das besonders für die Programmierer unter Ihnen interes- sant sein dürfte. Es handelt sich dabei um einen Bytefolgen-Packer, mit dem es möglich ist, eine gepackte Datei WÄHREND des Ladens zu entpacken. Das hat mehrere Vorteile: Zunächst einmal nimmt eine Datei auf Diskette weniger Platz ein. Zudem wird sie schneller geladen, da ja weniger Daten zu transferieren sind. Nicht zuletzt sparen Sie auch noch kost- baren Speicherplatz im Hauptspeicher des Computers, da herkömmliche Packer erst nach dem Laden entpacken, wobei Spei- cherplatz für die gepackten und entpack- ten benötigt wird. Mit Ninja-LoRePa kön- nen Sie nun also z.B. die Level- oder Grafikdaten eines selbstprogrammierten Spiels effizienter nachladen, wobei die Daten während des Ladens automatisch an der richtigen Fileadesse untergebracht werden. Nach dem Starten des Programms erscheint gleich auch schon das Hauptmenu, aus dem Sie die folgenden vier Menupunkte wählen können: a) 'F1' - START PACKER Hiermit starten Sie den eigentlichen Packer. Bitte beachten Sie, daß Sie vom Packer nicht mehr ins Hauptmenu zurück- kehren können (wohl aber können Sie meh- rere Files hintereinander packen). Nach dem Starten des Packers sind Sie zunächst dazu aufgefordert, den Namen des Files anzugeben, das gepackt werden soll. Nach Eingabe und Bestätigung mit- tels 'RETURN'-Taste, wird die Datei nun geladen und gepackt, was durch ein Bild- schirmflackern angezeigt wird. Nach dem Packen erscheint eine Information über die erreichte Verkürzung der Daten. Sie sehen hier zunächst die ursprüngliche Länge des Files, sowie die gepackte Län- ge, jeweils in Disketten-Blocks. Es wird nun nach dem Namen gefragt, unter dem das File wieder auf Diskette gelangen soll. Nach Eingabe desselben werden die gepackten Daten auf Diskette geschrie- ben. Hiernach haben Sie die Möglichkeit, die Daten beliebig oft unter anderem Namen oder auf andere Disketten noch einmal zu schreiben. Geben Sie hier "<" an, so kehrt der LoRePa wieder zum An- fang zurück, von wo Sie ein neues File packen können. Bei allen Filenamensabfragen kann als Name übrigens auch das "$"-Zeichen ange- geben werden, was das Programm dazu ver- anlasst, das Inhaltsverzeichnis der ein- gelegten Diskette anzuzeigen (Bedienung wie 'F7' im Hauptmenu). b) 'F3' - ENTER MEM OF LOREPA Mit diesem Menupunkt können Sie die Startadresse der Lade- und Entpackrouti- ne verändern. Hierzu erscheint ein Ein- gabecursor in der untersten Menuzeile ("Adress"), wo Sie die neue Adresse in hexadezimaler Schreibweise eingeben kön- nen. c) 'F5' - RELOCATE AND SAVE LOREPA Mit diesem Menupunkt wird die Lade- und Entpackroutine von LoRoPa an die mit 'F3' eingegebene Adresse relokiert und kann anschließend gespeichert werden. Geben Sie hierzu lediglich den gewünsch- ten Namen an, unter dem die Routine auf Diskette wandern soll, und bestätigen Sie mit 'RETURN'. Nach dem Speichervor- gang wird ein Reset ausgelöst, und damit das Programm verlassen. Die Routine kann nun unter dem angegebenen Namen, mit der Endung ",8,1" in den Speicher geladen, und zum Entpacken während des Ladens benutzt werden (s.u.). d) 'F7' DIRECTORY Dieser Menupunkt liest das Inhaltsver- zeichnis der eingelegten Diskette und gibt es auf dem Bildschirm aus. Hiernach kann mit der 'SPACE'-Taste wieder zum Hauptmenu zurückgekert werden. 6) DIE LOREPA-ENTPACKROUTINE Möchten Sie nun aus einem eignen Pro- gramm heraus gepackte Daten nachladen, so haben Sie zwei Möglichkeiten die Lo- RePa-Entpackroutine zu verwenden. In unseren Beispielen gehen wir von einer an Adresse $C000 relokierten Routine aus. Haben Sie die Routine an eine ande- ren Adresse untergebracht, so müssen Sie jeweils diese Startadresse als Aufrufa- dresse der LoRePa-Laderoutine verwenden. In beiden Anwendungsmethoden muß die Routine zuvor natürlich mit LOAD"NA- ME",8,1 in den Speicher geladen worden sein: a) DIREKTES LADEN Hier setzen Sie den Namen und die Devi- cenummer mit Hilfe des BASIC-Befehls <SYS57812 "NAME",8> fest. Nun wird die LoRePa-Routine mit "SYS <Startadresse>" aufgerufen, um die gepackten Daten zu laden. Hier ein Beispielprogramm:
10 SYS57812"GEPACKT",8:SYS49152 20 ...weiter im Programm...
b) INDIREKTER AUFRUF Bei dieser Methode wird die Startadresse der LoRePa-Routine direkt in die Sprung- vektoren der LOAD-Routine des Be- triebssystems geschrieben. Dadurch wird bei jedem normalen LOAD-Befehl automa- tisch die LoRePa-Routine aufgerufen. Um die Routine zu installieren, müssen Sie zunächst Low- und Highbyte der Start- adresse der Routine berechnen, und dann in die Adressen 816 und 817 schreiben. Für die Beispieladresse von $C000 lauten Low- und Highbyte 0 und 192 (192*256+0= 49152= $C000). Mit den folgenden beiden POKEs wird nun der LOAD-Vektor verbogen:
POKE816,0: POKE817,192
Geben Sie nun den Befehl LOAD"NAME",8,1 ein, so wird die bezeichnete Datei auto- matisch mit der LoRePa-Routine geladen und entpackt. Bitte beachten Sie jedoch, daß die Routine jedes angegebene File zu entpacken versucht. Sie können nun also keine ungepackten Files mehr laden. Hierzu müssten Sie den LOAD-Vektor mit den folgenden beiden POKEs wieder auf die normale Betriebssystems-Routine zurücksetzen:
POKE816,165: POKE817,244
c) BENUTZUNG VON ASSEMBLER AUS In Assembler muss lediglich mit Hilfe der SETNAM-Routine des Betriebssystems der Name des zu ladenden Files gesetzt werden. Ein anschließender Sprung auf die LoRePa-Routine lädt das File dann: LDA #04 ;Länge d. Filenamens LDX #<(NAME) ;Low-Byte Namensadresse LDY #>(NAME) ;High-Byte Namensadresse JSR $FFBD ;SETNAM aufrufen JSR $C000 ;LoRePa-Routine aufrufen ... Natürlich kann auch von Assembler aus die LOAD-Routine des Betriebssystems verwendet werden. Einfach mittels LDA und STA den Vektor bei $0330/$0331 verändern und dann wie gewohnt die LOAD- Routine bei $FFD5 verweden.
(ub)