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.