U T I L I T I E S
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Neben Spielen finden Sie auf der Magic
disk 64 auch sinnvolle Anwendungen, mit
denen Sie mehr aus Ihrem C64 machen kön-
nen. Diese Utilities wollen wir Ihnen
nun beschreiben, damit Sie sie problem-
los bedienen können. Wenn Sie eine be-
stimmte Beschreibung suchen, so entneh-
men Sie die entsprechende Seitenzahl
bitte der folgenden Liste:
Interupt Module 1.0..................02
Protector............................08
Packer...............................10
Sprite Editor........................17
Picture Starter......................18
Interupt Module 1.0
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Beim Interupt Module 1.0 handelt es sich
um eine Basicerweitung, die mit LOAD
"INTERUPT MODULE",8,1 geladen und mit
SYS 64738 oder dem Drücken eines Reset-
tasters gestartet wird.
Wenn das geschehen ist, so meldet sich
die Erweiterung mit ihrer Einschalt-
meldung und einem hellgrauen Bildschirm-
hintergrund, der auch durch RUN/STOP-
RESTORE nicht geändert wird.
Das alte Commodore Basic funktioniert
auch weiterhin, es sind jedoch einige
Befehle hinzugekommen, die sich zur
Sicherung von Programmen als sehr nütz-
lich erweisen und oft unerwartete Effek-
te erzeugen.
Die neuen Befehle sind:
ON RESET GOTO x ON RUNSTOP GOTO x
ON NMI GOTO x ON LIST GOTO x
ON BRK GOTO x ON ERR GOTO x
Ganz neu ist die Form dieser Befehle
sicher nicht, denn ON a GOTO x gab es
bisher ja auch schon. Neu ist aber, daß
die Befehle nur einmal am Anfang des Ba-
sicprogramms stehen müssen und trotzdem
erst dann ausgeführt werden, wenn das
entsprechende Ereignis eintritt. Zum
Beispiel...
ON RESET GOTO:
Nachdem dieser Befehl durchlaufen wurde,
ist der Resettaster 'umprogrammiert'.
Wenn von jetzt ab Reset gedrückt wird,
um Ihr Programm zu unterbrechen, so wird
statt dessen die Zeile angesprungen, die
nach dem GOTO festgelegt wurde.
ON NMI GOTO:
Der Effekt ist der gleiche wie bei
Reset, nur daß hier die entsprechende
Zeile durchlaufen wird, wenn man die
Restoretaste drückt. NMI heißt es nur
deswegen, weil die Restoretaste an die
NMI-Leitung des C64 angeschlossen ist.
ON BRK GOTO:
Wenn Sie schon einmal SYS2048 eingetippt
haben, dann wissen sie sicherlich, daß
das zu einer Reaktion des Computers
führt, die RUN/STOP-RESTORE gleichkommt.
Gelegentlich wird dieser Effekt, der
immer auftritt, wenn ein Maschinen-
programm auf ein Byte mit dem Inhalt 00
stößt, dazu benutzt, um in die Listings
von Programmen zu kommen. Mit diesem Be-
fehl können Sie Ihr Progamm davor schüt-
zen, indem Sie mit dem GOTO eine Stelle
in Ihrem Programm bestimmen, zu der der
Computer springt, wenn er normalerweise
einen solchen 'Break' (-daher der Name
BRK) durchführen würde.
ON RUNSTOP GOTO:
Der Sinn ist sicher jedem klar: Wer das
Drücken der Run/Stop-Taste verhindern
will, der POKEt 808,225. Jetzt gibt es
aber zusätzlich noch die Möglichkeit,
auf den Versuch, Ihr Programm zu unter-
brechen, mit einer eingebauten Routine
Ihrer Wahl zu reagieren.
ON LIST GOTO:
Sinnvoll können alle Schützereien natür-
lich nur dann sein, wenn man das Pro-
gramm nicht mehr auflisten kann. Dafür
ist dieser Befehl. Anstatt zu LISTen
wird die festgelegte Programmzeile ange-
sprungen.
ON ERR GOTO:
Einige mögen diesen Befehl schon kennen.
Wenn ein Fehler im Programm auftritt, so
wird das Programm nicht mehr abgebro-
chen, sondern es wird eine Unterroutine
durchlaufen, die im Programm enthalten
ist.
Lange und breite Erklärungen sind für
diese Befehle wohl nicht nötig. Auf der
Diskette befindet sich aber ein Bei-
spielprogramm, welches die einzelnen
Effekte gut demonstriert. Bitte beachten
Sie aber, daß die Erweiterung nach ein-
maligem Starten des Beispielprogramms
aktiv wird und ein Auflisten oder Ähn-
liches nicht mehr möglich ist.
Protector
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Mit dem Interupt Module 1.0 haben wir ja
schon eine gute Möglichkeit vorgestellt,
Basicprogramme vor fremdem Zugriff zu
schützen. Hier nun eine weitere:
Der Protector wird mit LOAD "PROTEC-
TOR",8,1 geladen. Nach NEW sollte das zu
schützende Basicprogramm geladen werden.
Dann startet man den Protector mit SYS
49152. Es erscheint eine Anzeige auf dem
Bildschirm, auf der Sie erkennen können,
welche Zeile des Programms gerade ge-
schützt wird. Wenn Sie nur einen Teil
Ihres Programms schützen wollen, so
drücken Sie vor der entsprechenden Zeile
RUN/STOP. Ansonsten halten Sie eine be-
liebige Taste solange gedrückt, bis das
ganze Programm geschützt ist. Ein Auf-
listen ergibt zwar die Darstellung der
Zeilennummern, die Zeilen selbst aber
sind verschwunden und lassen sich nicht
mehr zurückholen. Später eingefügte Zei-
len bleiben sichtbar und lassen sich bei
Bedarf nochmal mitschützen.
Eine Sicherheitskopie des Basicprogramms
sollten Sie sich natürlich vorher schon
machen.
Packer/Depacker
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Ein weiteres Utility ist in diesem Monat
ein sog. "PACKER" bzw. "DEPACKER". Was
kann man aber mit diesem Programm anfan-
gen?
Kurz gesagt: Man kann damit einige
Programme erheblich verkürzen, was sich
darin äußert, daß diese "gepackten" Pro-
gramme weniger kostbaren Speicherplatz
auf der Diskette benötigen.
Gepackt werden können alle Basic- und
Maschinenprogramme, die nicht aus mehre-
ren Teilen bestehen, beim normalen Ba-
sicanfang (=2049, =$0801) beginnen und
nicht mit einem Autostart arbeiten.
Kurz gesagt, alle Programme, die sich
nach dem Einschalten des C64 mit
LOAD"NAME",8 und RUN starten lassen.
Wie kann man nun ein Programm packen?
Nun, zunächst schalten Sie bitte Ihren
C64 aus und wieder an, damit dessen Ar-
beitsspeicher gelöscht wird. Laden Sie
dann das Packer/Depackerprogramm mit:
LOAD"PACKER/DEPACKER",8,1
Erscheint die Meldung READY auf dem
Bildschirm, so geben sie bitte NEW ein
und drücken RETURN. Das Packer/Depacker-
paket ist jetzt installiert.
Jetzt schieben Sie die Diskette in das
Laufwerk, die das Programm enthält, das
Sie packen möchten, und laden das Pro-
gramm wie gewohnt:
LOAD"PROGRAMMNAME",8
Nach READY geben Sie jedoch nicht RUN
ein, denn das Programm soll ja jetzt
nicht starten, sondern gepackt werden.
Stattdessen starten Sie den Packer mit:
SYS 50000
... worauf sich der Packer melden müßte
und von Ihnen den Namen des gepackten
Programms verlangt. Das ist der Name,
unter dem das gepackte Programm auf
Diskette abgespeichert wird. Schieben
Sie also jetzt erst eine Diskette, die
noch genügend Speicherplatz enthält und
ohne Schreibschutz ist, in Ihr Laufwerk.
Danach geben Sie bitte den gewünschten
Namen ein (maximal 16 Zeichen) und
drücken RETURN.
Hinweis: Es hat sich als praktisch er-
wiesen, das gepackte Programm mit einem
ähnlichen Namen wie das Originalprogramm
zu bezeichnen. Beispielsweise mit dem
Originalnamen, dem die Zeichen "P/" vor-
angestellt werden.
Haben Sie den Namen eingegeben, beginnt
das Programm mit dem Packen. Auf dem
Bildschirm stehen drei Hexadezimalzah-
len. Die linke ($0801) bezeichnet den
Programmstart (entspricht 2049), die
rechte Zahl dementsprechend das Pro-
grammende. Die Mittlere schließlich
zeigt dem Programmierer, an welcher
Stelle im Speicher der Packer gerade
packt. Hat diese Zahl die rechte Grenze
erreicht, so ist Ihr Programm fertig ge-
packt und der Computer meldet sich mit
READY.
Wenn sie noch weitere Programme packen
möchten, so verfahren Sie wie oben be-
schrieben. Das Programm "PACKER/DEPAK-
KER" müssen Sie nun nicht nochmal laden.
Wenn Sie nun einen Blick auf das In-
haltsverzeichnis der Diskette werfen, so
können Sie feststellen, ob das gepackte
Programm kürzer ist als das Original.
Ist das der Fall, so hat sich das Packen
gelohnt.
Das "Entpacken" funktioniert ähnlich.
Geben Sie dazu 'SYS 51000' ein, worauf
sich der Depacker meldet und den Namen
des gepackten Programms verlangt. Dieses
wird dann von der Diskette gelesen, ent-
packt und im Speicher des C64 abgelegt.
Sie können es nach READY ganz normal mit
RUN starten.
Zum Packen eignen sich am besten Spiele,
die auf einem relativ großen Spielfeld
aufbauen. Das legendäre Spiel "FORT
APOCALYPSE" ist so ein Programm. Es
braucht in der Originalversion 157
Blocks auf der Diskette. In gepackter
Version sind es nur noch 90!
Sprite Generator
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Mit diesem wohl einmaligen Programm
können Sie im Speicher befindliche Spri-
tes verändern und aufstöbern. Natürlich
können Sie auch eigene Sprites erstel-
len. Vor allem die vielen komfortablen
Funktionen wie invertieren, kopieren,
spiegeln, scrollen, mischen und überla-
gern machen das Programm zum unentbehr-
lichen Werkzeug eines jeden Programmie-
rers. Weitere Beschreibungen zu Sprite
Generator sind nicht nötig, da sich das
Programm selbst erklärt.
Picture-Starter
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Fast alle Spiele, die es zu kaufen gibt,
sind mit einem Autostarter ausgestattet,
d.h. Sie müssen nicht das lästige RUN
eingeben, um das Programm zu starten.
Das übernimmt der Computer für Sie.
Mit dem Picture-Starter können Sie nun
endlich auch Ihre Basicprogramme mit
einem derartigen Startsystem versehen.
Und was noch besser ist: Sie können so-
gar noch eine ganze Bildschirmseite aus-
geben. Auf dieser Bildschirmseite können
dann Aufforderungen wie 'PLEASE WAIT'
oder 'BITTE WARTEN' stehen.
U T I L I T I E S
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Ein weiteres kleines Utility diesen Mo-
nat ist eine Routine für alle, die auf
ihrem C128 vorwiegend im C64-Modus pro-
grammieren. Dabei ist es nämlich lästig,
daß der extra Zahlenblock rechts von der
normalen Tastatur im C64-Modus nicht zu
verwenden ist. Das Utility "ZEHNERBLOCK"
schafft da Abhilfe. Es wird mit:
LOAD"ZEHNERBLOCK",8,1
geladen. Danach geben Sie bitte NEW ein
und aktivieren die Zehnertastatur mit:
SYS 53100.
Sie können jetzt alle Tasten des Zehner-
blocks (mit Ausnahme des Dezimalpunktes)
sowie die Cursortasten oben verwenden.
Ausgeschaltet wird die Zehnertastatur
mit RUNSTOP + RESTORE.