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 verarbei- ten 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 je- der 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 pro- grammieren auf Ihrem C64 noch mehr Freu- de 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 er- scheint, daß andere Personen es abbre- chen, 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 unterbun- den 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. Versu- chen Sie nun, die durchlaufende Zahlen- reihe 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ög- lichkeit 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ür- lich 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 Pro- gramms nicht mehr als reverse Zeichen, sondern als normale Zeichen mit einem
Unterstrich dargestellt. Da normaler- weise das Zeichen an der Cursorpo- sition ständig invertiert wird, er- scheint 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 Zeichen- satzes, welcher zum Zweck der besseren Erkennbarkeit dieses Vorgangs ab der linken oberen Ecke des Bildschirms kom- plett 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 norma- lerweise 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.