NINJA-TOOLS - Lautlose und flinke Helfer -
Die Ninja-Tools bestehen aus vier kleinen Programmen, die Ihnen das Zusammenspiel 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 Namen " NINJA-TOOLS", dient quasi als Auswahl- 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ählte 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 aktiviert, 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" wieder 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 funktioniert. Aus technischen Gründen kann
Ninja-Load nur Programme mit einer maximalen Länge von 202 Blocks ( bis Adresse
$ D000) laden, was jedoch bei der Laderoutine 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 Inhaltsverzeichnis der momentan eingelegten Diskette 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 Bildschirm in grauen Farben flackert. Anschließend sind Sie dazu aufgefordert, eine Zieldiskette einzulegen, was ebenfalls mit ' RETURN' bestätigt wird, und woraufhin das erste Drittel der Quelldiskette geschrieben wird. Dieser Vorgang 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 Kopierens 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 funktioniert) .
c)' R'- RESET Diese Funktion setzt nach einer, mit ' Y' oder ' N' zu beantwortenden, Sicherheitsabfrage, den C64, sowie die Floppy wieder in den Einschaltzustand zurück, womit Sie Ninja-Copy auch verlassen.
d)' F1'- VERIFY Mit dieser Taste schalten Sie die Verify- Funktion ein und aus. Bei eingeschaltetem Verify wird während des Kopierens geprüft, ob die geschriebenen
Daten auch wirklich sauber auf die Diskette übertragen wurden. Gerade bei alten 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 werden, ob ein Verify während des Formatierens 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 ( ohne 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 Tastendruck, der Sie wieder zum Programmanfang zurückbringt.
5) NINJA-LOREPA Dies ist ein Programm, das besonders für
die Programmierer unter Ihnen interessant 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 kostbaren Speicherplatz im Hauptspeicher des Computers, da herkömmliche Packer erst
nach dem Laden entpacken, wobei Speicherplatz für die gepackten und entpackten benötigt wird. Mit Ninja-LoRePa können Sie nun also z. B. die Leveloder
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ückkehren können ( wohl aber können Sie mehrere 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 mittels ' RETURN'- Taste, wird die Datei nun
geladen und gepackt, was durch ein Bildschirmflackern 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änge, 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 geschrieben. 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 Anfang zurück, von wo Sie ein neues File
packen können.
Bei allen Filenamensabfragen kann als
Name übrigens auch das "$"- Zeichen angegeben werden, was das Programm dazu ver- anlasst, das Inhaltsverzeichnis der eingelegten Diskette anzuzeigen ( Bedienung
wie ' F7' im Hauptmenu) .
b)' F3'- ENTER MEM OF LOREPA Mit diesem Menupunkt können Sie die
Startadresse der Ladeund Entpackroutine verändern. Hierzu erscheint ein Eingabecursor in der untersten Menuzeile
(" Adress"), wo Sie die neue Adresse in
hexadezimaler Schreibweise eingeben können.
c)' F5'- RELOCATE AND SAVE LOREPA Mit diesem Menupunkt wird die Ladeund
Entpackroutine von LoRoPa an die mit
' F3' eingegebene Adresse relokiert und
kann anschließend gespeichert werden.
Geben Sie hierzu lediglich den gewünschten Namen an, unter dem die Routine auf
Diskette wandern soll, und bestätigen
Sie mit ' RETURN' . Nach dem Speichervorgang 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 Inhaltsverzeichnis 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 Programm 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 anderen Adresse untergebracht, so müssen Sie
jeweils diese Startadresse als Aufrufadresse 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 Devicenummer 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 Sprungvektoren der LOAD-Routine des Betriebssystems geschrieben. Dadurch wird
bei jedem normalen LOAD-Befehl automatisch die LoRePa-Routine aufgerufen. Um
die Routine zu installieren, müssen Sie zunächst Lowund Highbyte der Startadresse der Routine berechnen, und dann
in die Adressen 816 und 817 schreiben.
Für die Beispieladresse von $ C000 lauten
Lowund 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 automatisch 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)