Magic Disk 64

home to index to html: MD8810-UTILITIES-5.1.html
Auf der Oktoberausgabe der Magic Disk finden Sie die 
auf den folgenden Seiten beschriebenen Utilities:    
⌈––––––––––––––––––––––––––––––––––––––––––––––––––⌉ 
|                                                  | 
| Stix .................................. Seite 02 | 
|                                                  | 
| Uni-Transfere ......................... Seite 03 | 
|                                                  | 
| Ultima Tool ........................... Seite 06 | 
|                                                  | 
| Hack it ............................... Seite 08 | 
|                                                  | 
⌊––––––––––––––––––––––––––––––––––––––––––––––––––⌋ 
Bei den Utilities "Ultima-Tool"  und  "Uni-Transfere"
handelt es sich im Wesentlichen um  Maschinensprache-
routinen, die Sie in eigene Programme  einbauen  kön-
nen. Hier aber zunächst die Beschreibungen:          
                         STIX                        
                         ‾‾‾‾                        
Bei STIX handelt es sich um ein kleines Demoprogramm,
welches bei jedem Tastendruck andere Strichmuster auf
den Bildschirm zaubert.                              
Starten Sie das Programm mit                         
LOAD"STIX.BAS",8                                     
und anschließendem RUN oder direkt aus dem Game-Menü.
Nach  dem  Programmstart  wird  die  Maschinenroutine
"STIX.OBJ" automatisch nachgeladen und das Grafikdemo
wird gestartet.                                      
Falls Sie also Ihren Computer einmal nicht  brauchen,
so starten Sie das STIX-Programm. Den Blockfang  kann
man als "Alternative zum Aquarium" bezeichnen.       
                    UNI-TRANSFERE                    
                    ‾‾‾‾‾‾‾‾‾‾‾‾‾                    
Bei diesem Programm handelt es sich um  eine  Maschi-
nenroutine, die es erlaubt, Speicherbereiche  im  C64
beliebig zu verschieben.                             
Laden Sie es zunächst mit                            
LOAD"UNI TRANSFERE",8                                
und starten Sie die Routine mit RUN. Ein Starten  aus
dem Game-Menü ist ebenfalls möglich.                 
Kurze Zeit nach dem Start  erscheint  READY  auf  dem
Bildschirm. Das  Maschinenprogramm  ist  nun  an  die
richtige Stelle im Speicher (ab Speicherstelle 51200)
kopiert und kann wie folgt gestartet werden:         
SYS 51200, START, ENDE, ZIEL                         
Für die Worte START, ENDE und ZIEL müssen Sie jeweils
Zahlenwerte einsetzen, die folgendes bedeuten:       
START und ENDE gibt  die  erste  und  letzte  Adresse
eines zu verschiebenden Bereiches an. Wollen Sie z.B.
den Bildschirminhalt retten, so setzen Sie für  START
die Zahl 1024 und für ENDE 2023 ein.                 
ZIEL gibt an, wohin der durch START und ENDE  festge-
legte Bereich kopiert werden soll. Das kann  irgendwo
im Speicher sein, zum Beispiel bei  30000.  Als  Test
schreiben Sie bitte  den  Bildschirm  mit  irgendwel-
chen Zeichen  voll.  Diese  müssen  natürlich  keinen
Sinn ergeben. Der Basic-Befehl LIST  tut  dafür  sehr
gute Dienste. Jetzt geben Sie  bitte  folgende  Zeile
ein:                                                 
SYS 51200,1024,2023,30000                            
Es dauert nur den Bruchteil einer Sekunde, bis  READY
auf dem Bildschirm  erscheint.  Der  Bildschirminhalt
ist jetzt nach 30000 verschoben. Jetzt versuchen Sie,
den  ursprünglichen  Bildschirminhalt  zurückzuholen.
Löschen Sie dazu zunächst den  Bildschirm  durch  die
Tastenkombination   SHIFT+CLR.   Tippen   Sie   jetzt
folgende Zeile:                                      
SYS 51200,30000,31000,1024                           
... und schon sind die Zeichen von vorhin  wieder  zu
sehen.                                               
Natürlich können Sie nach obigem Schema  auch  andere
Speicherbereiche verschieben. Das  Beispiel  mit  dem
Bildschirmspeicher zeigt aber deutlich  die  Funktion
des Programms. Sicher finden Sie noch  weitere  sinn-
volle Anwendungen für das Programm.                  
Wenn Sie das Transfere-Programm in  eigene  Programme
einbinden wollen, so hängen Sie  einfach  Ihr  Basic-
Programm an das Transfere-Porgramm an. Bei  RUN  wird
dann zunächst das  Maschinenprogramm  aus  den  Data-
Zeilen nach 51200 kopiert.                           
Wir wünschen Ihnen viel Spaß beim Speicher  verschie-
ben.                                                 
                     ULTIMA TOOL                     
                     ‾‾‾‾‾‾‾‾‾‾‾                     
Auch ULTIMA TOOL können Sie in eigene Programme  ein-
bauen. Starten Sie das Programm  aus  dem  Game-Menü.
Sie können das Programm durch den  Basic-Befehl  LIST
anschauen. Ab Zeile 59 finden Sie eine  kleine  Demo-
Routine, die die Stärken des Programms zeigt.        
Durch das schnelle verändern bestimmter Speicherstel-
len entstehen tolle Effekte,  die  sich  durch  Basic
niemals realisieren ließen. Erst die Maschinenroutine
in den Zeilen 10 bis 58 ermöglicht diese Geschwindig-
keiten. Wie bei UNI-TRANSFERE können  Sie  auch  hier
die Maschinenroutine in Ihre eigenen  Programme  ein-
bauen, indem Sie den Programmteil bis Zeile 58 in Ihr
eigenes Programm übernehmen.                         
Und jetzt geht's ans Experimentieren. Der Befehl  für
den Effektstart hat folgende Syntax:                 
SYS 53000,SPEICHERSTELLE,ZEIT,LAENGE,ANFANGSPOSITION 
Probieren Sie etwas mit diesem Befehl herum Hier noch
einige Beispiele, die Sie auch im Demoprogramm finden
können:                                              
SYS 53000,53280,107,1,9                              
läßt einen Balken durch den Bildschirmrand laufen.   
SYS 53000,53281,3,16,0                               
malt farbige Streifen in den Bildschirm.             
SYS 53000,53270,1,7,200                              
läßt die Schrift Zickzackförmig verlaufen.           
Einen laufenden Effekt unterbrechen Sie jeweils durch
Drücken einer beliebigen Taste.                      
                       HACK IT                       
                       ‾‾‾‾‾‾‾                       
Programmstart und Installation                       
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾                       
Legen Sie die Rückseite der Magic Disk ein und  laden
Sie Hack'it durch den Befehl:                        
LOAD "HACK*",8,1                                     
oder aus dem Game-Menü wie  gewohnt.  In  jedem  Fall
startet das Programm automatisch, d.h. auch wenn  Sie
es nicht aus dem Game-Menü heraus laden,  müssen  Sie
nicht extra RUN eingeben.                            
Wie bei allen Programmen sollten Sie sich  auch  hier
eine Sicherheitskopie anlegen. Das geht ganz einfach,
nämlich direkt mit dem Programm:                     
Nach dem Programmstart drücken Sie <F1> und  der  C64
führt einen Reset aus. Geben Sie nun  im  Direktmudus
                      SYS 40377                      
ein und legen Sie eine Formatierte  Diskette  in  das
Laufwerk.                                            
Nach  nochmaligem  Drücken  der   RETURN-Taste   wird
Hack'it auf Diskette abgespeichert.                  
Arbeiten mit dem Programm                            
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾                            
Laden Sie die Sicherheitskopie mit                   
LOAD "HACK'IT",8,1                                   
und starten Sie das geladene Programm durch SYS 64738
oder durch Drücken einer eventuell vorhandenen Reset-
taste.                                               
Nach dem Start befinden Sie sich im Hauptmenü. Dieses
Menü  kann  auch  durch  Drücken  von   SHIFT-RESTORE
erreicht werden. Das  Drücken  von  COMMODORE-RESTORE
bewirkt das Abschalten der Musik beim  Einsprung  ins
Menü.  Folgende  Tasten  sind  jetzt  mit  Funktionen
belegt:                                              
<F1> = RESET         Sprung ins normale Commodore-   
                     betriebssystem                  
<F3> = MONITOR       Sprung in den eingebauten Moni- 
                     tor                             
<F5> = FAST-LOADER   Aktivierung des Schnelladers    
<F7> = SAVE $0400    Sprung zu einer speziellen Spei-
                     cherroutine                     
<F2> = CLEAR RAM     Löschen des Basicspeichers      
<F4> = DIRECTORY     Ausgabe des Diskettendirectories
<F6> = POKEFINDER    Suchen von Pokes in Spielen     
<F8> = INFOPAGE      Anzeige einer Informationsseite 
Nun folgen die Beschreibungen der  einzelnen  Befehle
und Unterprogramme, die Sie mit den eben  beschriebe-
nen Funktionstasten erreichen können.                
MONITOR                                              
‾‾‾‾‾‾‾                                              
Mit der Taste <F3>  erreichen  Sie  einen  Sprung  in
einen eingebauten Maschinensprachemonitor. Beim  Ein-
sprung in  diesen  Monitor  werden  Ihnen  neben  den
üblichen Registermeldungen über den  derzeitigen  Zu-
stand von Akku, X-, Y-Register und  der  Prozessorre-
gister auch noch die IRQ  und  NMI-Vektoren  gezeigt.
Alle angezeigten Werte - mit Ausnahme des NMI-Vektors
- lassen sich durch überschreiben verändern. Folgende
sonstige Befehle wurden in den Monitor integriert:   
M (Memory-Dump) zeigt Ihnen die Speicherbelegung  ei-
nes  bestimmten  Bereichs  im   Speicher   des   C64.
Beispiel: M 0801 2000 zeigt den Bereich von $0801 bis
$2000. Alle Zahlen werden übrigens - wie  in  Maschi-
nensprache üblich - in hexadezimaler Form ausgegeben.
F (Fill) füllt einen bestimmten  Speicherbereich  mit
einem bestimmten Wert. Beispiel: F 0400 044F 01 füllt
die obersten zwei  Zeilen  des  Bildschirms  mit  dem
Buchstaben A.                                        
C (Copy)  kopiert  einen  Speicherbereich.  Beispiel:
C 0400 044F 0450  kopiert  die  obersten  zwei  Bild-
schirmzeilen zwei Zeilen weiter nach unten.          
V (Verify) vergleicht zwei Speicherbereiche miteinan-
der und gibt diejenigen Adressen aus, die in den bei-
den Bereichen unterschiedliche  Inhalte  haben.  Bei-
spiel: V 0801 2000 4801 vergleicht  den  Bereich  von
$0801 bis $2000 mit dem Bereich ab $4801.            
H (Hunt) sucht nach einer bestimmten Bytefolge.  Bei-
spiel: H 0801 2000 01 02 03  sucht  den  Bereich  von
$0801 bis $2000 nach der Bytefolge $01, $02, $03  ab.
Auch Texte können so gesucht werden:                 
H 0801 2000 "abcd"                                   
G (Goto)  startet  ein  Maschinenprogramm.  Beispiel:
G C000 startet das Programm ab $C000. In  Basic  wäre
das gleichbedeutend mit dem Befehl SYS49152.         
T (Trace) wirkt wie G, startet also ein Maschinenpro-
gramm (Beispiel unter "G"), erlaubt aber eine Verfol-
gung der ausgeführten Befehle.                       
A  (Assemble)  assembliert,  d.h.  Assemblerquellcode
wird in das Zahlenformat umgewandelt und im  Speicher
abgelegt. Beispiel: A C000 LDA #$08                  
D (Disassemble) disassembliert einen besimmtem  Spei-
cherbereich. Beispiel: D C000 C100                   
L (Load) lädt ein Programm  an  eine  bestimmte,  von
Ihnen festgelegte Adresse. Beispiel:                 
L "NAME" 08 C000 lädt das Programm "NAME" von Disket-
te in Laufwerk 8 nach $C000. Wird die Angabe der  Ad-
resse (hier: C000) weggelassen, so wird das  Programm
an die  Originaladresse  geladen,  bei  der  es  auch
stand, als es abgespeichert wurde.                   
S (Save) speichert einen  Bereich  auf  Diskette  ab.
Beispiel: S "NAME" 08 C000 C100  speichert  ein  Pro-
gramm "NAME" auf Diskette von $C000 bis $C100 ab.    
P (Periphery) lenkt die Ausgabe, z.B.  eines  Memory-
Dumps, auf ein anderes Gerät als den  Bildschirm  um.
Beispiel: P 4 aktiviert für alle  folgenden  Ausgaben
den Drucker als Ausgabegerät.                        
O (Off) schaltet ein  durch  P  angesprochenes  Gerät
wieder aus. Dieser Befehl entspricht  in  Basic  etwa
den Befehlen PRINT#1:CLOSE1                          
$ (Directory) zeigt das Inhaltsverzeichnis  der  Dis-
kette.                                               
@ (Errorchannel) gibt den Fehlerkanal der Floppy aus.
X (eXit) verläßt den Monitor. Nach Eingabe von X kön-
nen Sie zwischen Rücksprung ins Menü und Einsprung in
Basic wählen.                                        
Das Programm belegt die  Speicherbereiche  von  $8000
bis $9FFF und $B000 bis $BFFF.  In  diesen  Bereichen
sollten Sie mit dem Monitor besser keine  Veränderun-
gen vornehmen, da es sonst leicht  zu  einem  Absturz
kommen kann. Beim Laden von Programmen mit dem  Moni-
tor werden sowohl Anfangs- und Endadresse  des  gela-
denen Bereichs als auch der  Fehlerkanal  ausgegeben.
Beim Speichern wird nur der Fehlerkanal angezeigt.   
Bei den Befehlen M und D wird die Funktionstaste <F1>
mit einer NO SCROLL-Funktion  belegt.  Durch  Drücken
dieser Taste können Sie eine Ausgabe jederzeit  "ein-
frieren" und durch nochmaliges Drücken fortsetzen.   
Nun aber weiter mit den Befehlsbeschreibungen:       
FAST LOAD SYSTEM                                     
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾                                     
Mit <F5> wird  ein  Floppyspeeder  aktiviert.  Dieser
meldet sich mit FAST LOAD SYSTEM ENABLED.            
SAVE $0400                                           
‾‾‾‾‾‾‾‾‾‾                                           
Diese Option ermöglicht es Ihnen, ein im Speicher be-
findliches Programm und eine  Vorspannseite  zusammen
abzuspeichern. Vorher können Sie diese  Vorspannseite
noch kreieren. Der Editiervorgang läuft  im  normalen
Basic ab. Es darf also nie RETURN gedrückt werden, da
es sonst zu Fehlermeldungen kommen kann.  Ein  Ersatz
für RETURN ist z.B. SHIFT-RETURN.                    
Ausserdem haben beim Editieren  dieser  Vorspannseite
folgende Tasten Sonderfunktionen:                    
<F1> Abspeichern von Vorspann und Programm           
<F3> löscht die aktuelle Bildschirmzeile             
<F5> Einschalten der Musik                           
<F7> Ausschalten der Musik                           
Um das abgespeicherte  Programm  zu  aktivieren,  muß
folgende Basiczeile abgespeichert werden.  Z.B.  Pro-
grammname ist "TESTPROGRAMM":                        
Eingabe der Basiczeile:  10 LOAD "TS",8,1            
Abspeichern unter Name:  SAVE "TESTPROGRAMM",8       
Zur Aktivierung wird "TESTPROGRAMM" geladen,  welches
dann das eigentliche Programm "TS" nachlädt.         
POKEFINDER                                           
‾‾‾‾‾‾‾‾‾‾                                           
Dieser Programmpunkt dient dazu, bei einem Spiel  den
Befehl herauszufinden, der die Anzahl Ihrer  Schiffe,
Männchen, Flugzeuge etc. begrenzt.                   
Das Spiel muß sich im  Speicher  befinden,  wenn  der
POKEFINDER aktiviert wird. Nach Erscheinen der  Kopf-
zeile werden Sie aufgefordert, die Anzahl  der  Leben
einzugeben, die einem  das  Spiel  normalerweise  zur
Verfügung stellt. Danach werden  automatisch  die  in
Frage kommenden Speicherzellen und deren Inhalte aus-
gegeben. Mit dem Monitor können  Sie  nun  versuchen,
diese Werte zu ändern.                               
INFOPAGE                                             
‾‾‾‾‾‾‾‾                                             
Nach Betätigung der Taste <F8>  wird  eine  Infoseite
ausgegeben. Diese enthält Informationen wie  IRQ-Vek-
tor, LOAD-Vektor etc. Beispiel:                      
Ein Zeichensatz auf $2000  (dezimal  8192)  wird  mit
POKE 53272,24 aktiviert. Der unter $D018 beschriebene
Wert (24) gibt Ihnen nun Auskunft über den Anfang der
Daten des Zeichensatzes (24: $2000, 29: $3000  etc.).
Den  Zeichensatz  können  Sie  nur  mit  dem  Monitor
abspeichern.                                         
Folgende Hilfsprogramme  stehen  Ihnen  außerdem  zur
Verfügung.  Die  Programme  werden  jeweils  mit  SYS
gestartet. Das geht natürlich nur aus Basic heraus.  
Directory            SYS 32777                       
Status               SYS 32780                       
Reset                SYS 32795                       
Musik ein            SYS 32783                       
Musik aus            SYS 32786                       
Set Interrupt        SYS 32789                       
Single-Step Basic    SYS 39962 und SYS 39996         
Old                  SYS 40055                       
Kursiv               SYS 40112                       
Long Screen          SYS 40195                       
Cursor mit Joystick  SYS 40272 (Joystick in Port #2) 
Single-Step Basic ist  eine  Einzelschrittsimulation,
die die aktuelle Zeilennummer eines laufenden  Basic-
programms in hexadezimaler Schreibweise ausgibt.     
Starten Sie ein Basic-Programm wie gewohnt und  drük-
ken Sie für jede Programmzeile,  die  Sie  abarbeiten
wollen, die Commodore-Taste.                         
Valid HTML 4.0 Transitional Valid CSS!