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önnen. Diese Utilities wollen wir Ihnen
nun beschreiben, damit Sie sie problemlos bedienen können. Wenn Sie eine bestimmte Beschreibung suchen, so entnehmen 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 Resettasters gestartet wird.
Wenn das geschehen ist, so meldet sich
die Erweiterung mit ihrer Einschaltmeldung und einem hellgrauen Bildschirmhintergrund, 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ützlich erweisen und oft unerwartete Effekte 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 Basicprogramms 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 Maschinenprogramm auf ein Byte mit dem Inhalt 00 stößt, dazu benutzt, um in die Listings
von Programmen zu kommen. Mit diesem Befehl können Sie Ihr Progamm davor schützen, 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 unterbrechen, mit einer eingebauten Routine
Ihrer Wahl zu reagieren.
ON LIST GOTO:
Sinnvoll können alle Schützereien natürlich nur dann sein, wenn man das Programm nicht mehr auflisten kann. Dafür
ist dieser Befehl. Anstatt zu LISTen
wird die festgelegte Programmzeile angesprungen.
ON ERR GOTO:
Einige mögen diesen Befehl schon kennen.
Wenn ein Fehler im Programm auftritt, so
wird das Programm nicht mehr abgebrochen, 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 Beispielprogramm, welches die einzelnen
Effekte gut demonstriert. Bitte beachten
Sie aber, daß die Erweiterung nach einmaligem Starten des Beispielprogramms
aktiv wird und ein Auflisten oder Ähnliches 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 geschü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 beliebige 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 Zeilen 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 anfangen?
Kurz gesagt: Man kann damit einige
Programme erheblich verkürzen, was sich
darin äußert, daß diese " gepackten" Programme weniger kostbaren Speicherplatz
auf der Diskette benötigen.
Gepackt werden können alle Basicund
Maschinenprogramme, die nicht aus mehreren Teilen bestehen, beim normalen Basicanfang (=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 Arbeitsspeicher 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/ Depackerpaket ist jetzt installiert.
Jetzt schieben Sie die Diskette in das
Laufwerk, die das Programm enthält, das
Sie packen möchten, und laden das Programm 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 erwiesen, das gepackte Programm mit einem
ähnlichen Namen wie das Originalprogramm
zu bezeichnen. Beispielsweise mit dem
Originalnamen, dem die Zeichen " P/" vorangestellt werden.
Haben Sie den Namen eingegeben, beginnt
das Programm mit dem Packen. Auf dem
Bildschirm stehen drei Hexadezimalzahlen. Die linke ($0801) bezeichnet den
Programmstart ( entspricht 2049), die
rechte Zahl dementsprechend das Programmende. 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 gepackt und der Computer meldet sich mit
READY.
Wenn sie noch weitere Programme packen
möchten, so verfahren Sie wie oben beschrieben. Das Programm " PACKER/ DEPAK-KER" müssen Sie nun nicht nochmal laden.
Wenn Sie nun einen Blick auf das Inhaltsverzeichnis 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 Sprites verändern und aufstöbern. Natürlich
können Sie auch eigene Sprites erstellen. Vor allem die vielen komfortablen
Funktionen wie invertieren, kopieren, spiegeln, scrollen, mischen und überlagern machen das Programm zum unentbehrlichen Werkzeug eines jeden Programmierers. 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 sogar noch eine ganze Bildschirmseite ausgeben. 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 Monat ist eine Routine für alle, die auf
ihrem C128 vorwiegend im C64- Modus programmieren. 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 Zehnerblocks ( mit Ausnahme des Dezimalpunktes) sowie die Cursortasten oben verwenden.
Ausgeschaltet wird die Zehnertastatur
mit RUNSTOP + RESTORE.