Magic Disk 64

home to index to text: MD8712-TIPS_+_TRICKS-9.1.txt
             Tips & Tricks              

Trotz der großen Zahl an Programmen, die derzeit für den C64 auf dem Markt erhältlich sind, nimmt die Schar derer, die sich für spezielle Probleme ihre eigenen Programme schreiben, täglich zu.
Das ist gut so, denn schließlich soll es ja auch in ein paar Jahrzehnten noch Menschen geben, die programmieren und nicht nur vorgekaute Programme verarbeiten können.
Die Programmierarbeit wird oftmals durch kleine Tricks, die nicht unbedingt in jedem Handbuch zu finden sind erheblich erleichtert.

Solche Programmierkniffe wird Ihnen das Magic team in jeder Ausgabe an dieser Stelle präsentieren. Zusammen mit den kleinen Hilfsprogrammen, die Sie auf jeder Magic disk unter der Rubrik " UTILI-TIES" finden, können Sie sich so mit der Zeit eine Bibliothek an Utilities und Tricks erstellen, durch die das programmieren auf Ihrem C64 noch mehr Freude macht.
In dieser ersten Folge beschäftigen wir uns mit dem Programmschutz und einer Deluxe-Cursordarstellung, wie sie sonst nur bei den PC' s zu finden ist.

Sicher kennen Sie das folgende Problem:
Sie haben ein Programm geschrieben, bei dem es Ihnen nicht von Vorteil erscheint, daß andere Personen es abbrechen, listen, verändern ( z. B. durch eine falsche Urhebererklärung) etc.
Ein laufendes Basicprogramm kann man normalerweise durch die Taste " RUN/ STOP" unterbrechen. Diese Möglichkeit kann jeodch durch folgenden Befehl unterbunden werden:
POKE 788,52

Er bewirkt, daß das Betriebssystem die Routine, die die Stoptaste abfragt, nicht mehr anspringt. Probieren Sie es aus:

FOR I = 1 TO 100 : PRINT I : NEXT I     

Diese Zeile, im Direktmodus eingegeben, druckt die Zahlen 1 bis 100 aus. Versuchen Sie nun, die durchlaufende Zahlenreihe mit der STOP-Taste anzuhalten, so werden sie feststellen, daß ein Druck auf dieselbe nicht mehr fruchtet. Geben sie diese Zeile als Programm ein und starten es mit RUN, so kann auch dieses nicht mehr unterbrochen werden.

Eine Unterbrechung erreicht man jedoch immer noch durch die Tastenkombination RUN/ STOP + RESTORE. Um auch diese Möglichkeit außer Kraft zu setzen, geben sie nur:
POKE 808,225 ein. Probieren Sie wieder die Wirkung am Beispiel der FOR . . . NEXT Schleife.
Ein noch raffinierterer Trick besteht im Ausschalten des LIST-Befehls. Geben Sie einmal folgenden Befehl ein:
POKE 775,199

Jetzt versuchen Sie bitte, sich ein im Speicher vorhandenes Basicprogramm durch LIST anzusehen . . . überrascht?
Durch RUN läßt sich Ihr Programm natürlich noch ganz normal starten, als sei nichts passiert.
Nun zur versprochenen Cursordarstellung a la PC. Wenn Sie das Inhaltsverzeichnis der Magic disk 64 anschauen, so finden Sie dort das Programm " STRICHCURSOR" .
Das kurze Basicprogramm verändert den Zeichensatz Ihres C64 . Reverse Zeichen werden nach dem Durchlaufen dieses Programms nicht mehr als reverse Zeichen, sondern als normale Zeichen mit einem

Unterstrich dargestellt. Da normalerweise das Zeichen an der Cursorposition ständig invertiert wird, erscheint stattdessen nun ein blinkender Unterstrich.
Das Programm kopiert den Zeichensatz aus dem Festspeicher ( ROM) Ihres Computers in den Schreib-Lesespeicher ( RAM) . Dies erkennen Sie am Aufbau des Zeichensatzes, welcher zum Zweck der besseren Erkennbarkeit dieses Vorgangs ab der linken oberen Ecke des Bildschirms komplett dargestellt wird. Man kann so gut beobachten, wie die Zeichen aufgebaut werden. Das ganze geschieht zweimal, da es ja im C64 zwei Zeichensätze gibt: Den

für die Blockgrafikzeichen und den für die Kleinschrift.
Am Schluß werden die Zeichen, die normalerweise revers dargestellt werden, unterstrichen. Das Programm läuft ca.2 Minuten, bis alle Zeichen kopiert sind.
Danach ist der Anfang des durch Basic programmierbaren Speichers auf 12288 erhöht, damit der Zeichensatz nicht durch ein Programm überschrieben werden kann, und der Speicher ist gelöscht. Für eigene Programme stehen Ihnen nun noch ca.28 kByte Speicherplatz zur Verfügung, was wohl in den meisten Fällen ausreichen dürfte.

Valid HTML 4.0 Transitional Valid CSS!