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 Maschinenspracheroutinen, die Sie in eigene Programme einbauen können. 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 Maschinenroutine, 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 festgelegte Bereich kopiert werden soll. Das kann irgendwo
im Speicher sein, zum Beispiel bei 30000 . Als Test
schreiben Sie bitte den Bildschirm mit irgendwelchen 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 sinnvolle 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 verschieben.
ULTIMA TOOL
Auch ULTIMA TOOL können Sie in eigene Programme einbauen. 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 Speicherstellen entstehen tolle Effekte, die sich durch Basic
niemals realisieren ließen. Erst die Maschinenroutine
in den Zeilen 10 bis 58 ermöglicht diese Geschwindigkeiten. Wie bei UNI-TRANSFERE können Sie auch hier
die Maschinenroutine in Ihre eigenen Programme einbauen, 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 Resettaste.
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 Commodorebetriebssystem
< F3>= MONITOR Sprung in den eingebauten Monitor
< F5>= FAST-LOADER Aktivierung des Schnelladers
< F7>= SAVE $0400 Sprung zu einer speziellen Speicherroutine
< 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 beschriebenen Funktionstasten erreichen können.
MONITOR
Mit der Taste < F3> erreichen Sie einen Sprung in
einen eingebauten Maschinensprachemonitor. Beim Einsprung in diesen Monitor werden Ihnen neben den
üblichen Registermeldungen über den derzeitigen Zustand von Akku, X-, Y-Register und der Prozessorregister 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 eines bestimmten Bereichs im Speicher des C64 .
Beispiel: M 08012000 zeigt den Bereich von $0801 bis
$2000 . Alle Zahlen werden übrigens - wie in Maschinensprache üblich - in hexadezimaler Form ausgegeben.
F ( Fill) füllt einen bestimmten Speicherbereich mit
einem bestimmten Wert. Beispiel: F 0400044 F 01 füllt
die obersten zwei Zeilen des Bildschirms mit dem
Buchstaben A.
C ( Copy) kopiert einen Speicherbereich. Beispiel:
C 0400044 F 0450 kopiert die obersten zwei Bildschirmzeilen zwei Zeilen weiter nach unten.
V ( Verify) vergleicht zwei Speicherbereiche miteinander und gibt diejenigen Adressen aus, die in den beiden Bereichen unterschiedliche Inhalte haben. Beispiel: V 080120004801 vergleicht den Bereich von
$0801 bis $2000 mit dem Bereich ab $4801 .
H ( Hunt) sucht nach einer bestimmten Bytefolge. Beispiel: H 08012000010203 sucht den Bereich von
$0801 bis $2000 nach der Bytefolge $01,$02,$03 ab.
Auch Texte können so gesucht werden:
H 08012000" 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 Maschinenprogramm ( Beispiel unter " G"), erlaubt aber eine Verfolgung 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 Speicherbereich. 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 Diskette in Laufwerk 8 nach $ C000 . Wird die Angabe der Adresse ( 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 Programm " 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 Diskette.
@( Errorchannel) gibt den Fehlerkanal der Floppy aus.
X ( eXit) verläßt den Monitor. Nach Eingabe von X können Sie zwischen Rücksprung ins Menü und Einsprung in
Basic wählen.
Das Programm belegt die Speicherbereiche von $8000 bis $9 FFF und $ B000 bis $ BFFF. In diesen Bereichen
sollten Sie mit dem Monitor besser keine Veränderungen vornehmen, da es sonst leicht zu einem Absturz
kommen kann. Beim Laden von Programmen mit dem Monitor werden sowohl Anfangsund Endadresse des geladenen 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 " einfrieren" 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 befindliches 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. Programmname 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 Kopfzeile 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 ausgegeben. 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 Basicprogramms in hexadezimaler Schreibweise ausgibt.
Starten Sie ein Basic-Programm wie gewohnt und drükken Sie für jede Programmzeile, die Sie abarbeiten
wollen, die Commodore-Taste.