alles rund um den C128'er |
Hinweis: Diese Seite wurde mit einer OCR Software erstellt. Es ist mit Schreibfehlern zu rechnen!
C128- |
|||||||||||
Aus dem 64'er Heft - 5/86 |
Der C128 ist immer noch auf weiten Strecken »Neuland«. Dieser Reisebericht gibt nützliche Tips & Tricks zum Umgang mit dem Computer. Wir glaubten unseren Korrespondenten, der sich seit einiger Zeit auf einer Forschungsreise durch den unbekannten Kontinent Commodore 128 befindet, bereits von Bit-Monstern zerrissen, da flatterte uns sein zweiter Zwischenbericht auf den Tisch.
Zwar verfügen wir im C 128 über enorm
viel Speicherplatz, und man sollte meinen, daß die Unterbringung von
einigen Bytes Assemblerprogramm keine Probleme bietet. Weit gefehlt!
Probleme treten in dem Moment auf, indem durch das Programm
Firmware-Routinen aufzurufen sind. Befindet sich das Programm dann im RAM
unter dem Firmware-ROM, wird es recht kompliziert, jedesmal
Bank-Umschaltungen mit einzubauen. Erfreulicherweise existiert aber ein
gewaltiger Bereich, über dem kein ROM zu finden ist, so daß man sich um
den ganzen Bank-Zirkus nicht zu kümmern braucht (jedenfalls nicht im
Assembler-Programm). Ohne mit einem Basic-Programmtext in Konflikt zu
geraten oder mit RAM-Bereichen, die für die Grafik notwendig sind,
können einige Speicherteile unterhalb von $1COO dienlich sein. Da bietet
sich zunächst einmal der Kassettenpuffer an. Er liegt im Gebiet $OBOO bis
$OBFF. Zweierlei spricht allerdings gegen das Einlagern eigener Routinen
dort:
Gehen wir davon aus, daß OLD nun bei $1300
startet. Das Programm ist so gebaut, daß es auch verschobene
Basic-Programme wieder restaurieren kann (falls der Zeiger $2D/2E noch
stimmt). Das funktioniert auch einwandfrei, wenn man die Verschiebung
durch einen Grafikbefehl bewirkt (wenn keine Grafik initialisiert wurde,
startet der Basic-Text bei $1COO, sonst aber bei $4000). Allerdings ist es
in diesem Fall wichtig, vor dem SYS-Aufruf noch die richtige Bank
einzuschalten. Insgesamt heißt dann der OLD-Aufruf: BANKO:SYS
DEC("1300")
Im C 64-Modus führt ein LIST im Programmtext automatisch zum Abbruch des Programms. Nicht so im C 128-Modus: Hier wird das Programm (oder der gewünschte Teil) brav abgebildet, und danach läuft das Programm weiter. Das ist für selbst-modifizierende Programme ein interessanter Aspekt. Control-C Erschrecken Sie bitte nicht, falls Sie unbeabsichtigt einmal gleichzeitig auf die Contiol- und die C-Taste gedrückt haben: Das gerade laufende Programm hält sofort an. Erst nach, einem beliebigen weiteren Tastendruck setzt es die Arbeit fort. Wir haben also eine Pausentaste im Computer! Zwei neue SPRDEF-Optionen Nicht im Handbuch beschrieben sind zwei Möglichkeiten des SPRDEF-Befehls: Die Taste »C« bewirkt eine Kopierfunktion. Nach dem Drücken von »C« meldet sich der Sprite-Editor mit der Frage »COPY FROM?«. Eine nun eingegebene Sprite-Nummer führt d.azu, daß das dazugehörige Spritemu-ster in das aktuelle Sprite geschrieben wird. Ein eventuell vorhandenes Muster wird überschrieben. Sinnvoll ist diese Option besonders beim Erstellen mehrerer ähnlicher Sprites, wie man sie beispielsweise für Trickfilme benötigt. Ein Druck auf die Fl-Taste hat übrigens dieselbe Wirkung: Gelangt man durch ein Versehen in diesen Kopiermodus, dann genügt ein RETURN, um ihn wieder zu verlassen. Control-C erlaubt das Umschalten zwischen den verschiedenen Spritemustern. Nach dem Druck auf diese Tastenkombination verschwindet die aktuelle Spritenummer. Gibt man nun die gewünschte Nummer ein, erscheint das dazugehörige Muster zur weiteren Bearbeitung.
Die Symbole »$«, » + «, »&« sowie »%« können nicht nur — wie im Handbuch erwähnt — zum Definieren von Zahlen bestimmter Systeme (in der gleichen Reihenfolge: hexadezimal, dezimal, oktal sowie binär) verwendet werden, sondern auch als Kommandos. In diesem Fall bewirken sie eine Ausgabe der gewünschten Zahl in allen Zahlensystemen. Wollen Sie beispielsweise wissen, wie die Dezimalzahl 15 in anderen Systemen aussieht, dann geben Sie einfach ein: +15 Es erscheint dann: $OF + 15 &17 Etwas weniger klar in seiner Anwendung — und vielleicht deshalb auch im Handbuch nicht erwähnt — ist das Monitor-Kommando »J« (das hängt sicher mit Jump zusammen). Soweit ich bisher herausfinden konnte, hat »J« die gleiche Wirkungwie »G« (also GO). Es startet ein Maschinenprogramm an der als Argument angegebenen Adresse. Die Syntax ist ebenfalls die gleiche wie die von »G«, also startet beispielsweise »J $01300« ein in Bank 0 bei Adresse $1300 liegendes Maschinenprogramm.
Außer dem OLD-Befehl vermißt mancher Benutzer des C 128 noch eine Möglichkeit, Basic-Programme zu verbinden, die durch einen MERGE-Befehl gegeben wird. Das Prinzip, das mit einem MERGE realisiert werden kann, unterstützt die strukturierte Programmierung. Es ist nämlich nun möglich, Programm-Module zu erstellen und zu speichern, die in sinnvoller Kombination zum Gesamtwerk verknüpft werden können.
Für Assembler-Programmierer interessant sein dürfte ein neuer Kernel-Sprungvektor, der im Programm MERGE verwendet wurde: PRIMM heißt er und wird mittels »JSR $FF7D« aufgerufen. PRIMM druckt einen Text auf den Bildschirm, der direkt nach diesem Aufruf folgt (PRint IMMediate). Das Ende der Textsequenz ist durch ein Nullbyte zu kennzeichnen. Nach dem Ausdruck wird das Programm mit dem Befehl fortgesetzt, der auf das Null-Byte folgt.
|
. |
"Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !" |
I Startseite I