Magic Disk 64

home to index to html: MD9407-UTILITIES-NINJA-TOOLS.html
               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)



Valid HTML 4.0 Transitional Valid CSS!