Wie gebe ich Programme ein?
Es ist zweifellos eine faszinierende Sache: ein Programm abzutippen und dann das Ergebnis zu bewundern. In diesem Artikel erfahren Sie alles, was Sie beim Eintippen von Programm-Listings beachten müssen und mit welchen Tricks Sie zum »Tipp-Profi« werden.
Jeder frischgebackene Computer-Besitzer kommt einmal an den Punkt, an dem er erkennt, daß das »Elektronik-Wunder« C 64 ohne entsprechende Fütterung (sprich Programme) so dumm wie ein kleiner Taschenrechner ist. Dann gibt es zwei Möglichkeiten: Entweder man kauft sich fertige Programme für teures Geld, oder man gehtzum nächsten Zeitschriftenhändler und besorgt sich die neueste 64'er. Da Sie den zweiten Weg gewählt haben (sonst würden Sie diesen Artikel nicht lesen) möchten wir Ihnen gratulieren. Zweifellos verspüren Sie beim Lesen der Programmbeschreibungen sofort das Bedürfnis, diese herrlichen Programme abzutippen.
Daraufhin folgt die Ernüchterung: »..verwenden Sie zur Eingabe bitte den MSE...« oder »...bitte mit dem Checksummer eingeben...«. Was sind denn das für Wunderprogramme? Kann man die irgendwo kaufen? Nein, der Checksummer und der MSE sind von uns entwickelte Programme, die Ihnen helfen sollen, unsere Listings fehlerfrei abzutippen (als »Listing« wird im folgenden ein abgedrucktes Programm bezeichnet). Denn ein fehlerfreies Abtippen ist die Voraussetzung für ein korrektes Funktionieren des Programms.
Also: Ihr erster Schritt soll sein, den Checksummer und den MSE auf Seite 76 abzutippen. Doch wie macht man das eigentlich?

Basic-Programme
Das Allerwichtigste, was Sie sich einprägen müssen, ist die Bedeutung der <RETURN> Taste (ganz rechts auf der Tastatur des C 64): Wenn Sie auf der Tastatur etwas eingeben, so ist das in etwa so, als ob Sie dem Computer einen Brief schreiben. Die Bildschirmzeile(n), auf der Sie gerade Buchstaben und Zeichen eintippen, ist das Briefpapier. Der Computer kümmert sich erst dann um das, was Sie schreiben, wenn Sie die <RETURN>-Taste drücken. Sie können das etwa damit vergleichen, daß Sie den eben geschriebenen »Brief« durch die <RETURN>-Taste an den Computer »abschicken«. Erst dann versucht der C 64 das, was Sie ihm mitteilen wollen, zu verstehen, zu »interpretieren«. Also: Wenn Sie etwas eingeben, müssen Sie danach immer die <RETURN>-Taste drücken.
Das Zweitwichtigste, was Sie sich merken müssen, ist, daß der C 64 keine »Briefe« annimmt, die länger als zwei Bildschirmzeilen sind! Das bedeutet: Wenn Sie etwas eintippen, und Sie überschreiten mit dem »Cursor« (der blinkenden Schreibmarkierung) das Ende der zweiten Zeile, dann »vergißt« der C 64 alles, was Sie in den beiden vorhergehenden Zeilen geschrieben haben. Er betrachtet dann nach dem Drücken der <RETURN> Taste die dritte Zeile als das aktuelle »Briefpapier«. Das ist ganz besonders wichtig, wenn Sie ein Basic-Programm (mit den Zahlen (= »Zeilennummern«) am Anfang jeder Zeile) eintippen. Sobald der Cursor in der dritten Schreibzeile steht, wird es Probleme geben. Also: Beim Eintippen von Listings darauf achten, daß der gerade eingegebene Text nicht länger als zwei Bildschirmzeilen ist. Falls es nicht anders geht, können Sie die Freiräume zwischen den einzelnen Basic-Befehlen ersatzlos weglassen (diese Freiräume werden übrigens auch »Spaces« genannt). Unsere Listings enthalten diese Spaces nur, weil das Programm dadurch wesentlich übersichtlicher wird.
Nun wird es interessant: Sie beginnen, ein Basic-Listing abzutippen. Wichtig ist jetzt vor allem, daß Sie die Zeilennummern am Anfang jeder Programmzeile nicht vergessen. Wenn Sie beim Eintippen auf geschweifte Klammern stoßen ((CLR}) dürfen Sie das, was innerhalb der Klammern steht, nicht mit eintippen! Statt dessen drücken Sie die dort angegebenen Tasten. Also: In einem unserer Listings steht zum Beispiel:
10 PRINT "{CLR,3DOWN}HALLO!"
Beim Eintippen müssen Sie folglich nach dem Anführungszeichen zuerst die Taste <CLR> drücken. Wenn Sie diese Taste betrachten, wird Ihnen auffallen, daß die CLR-Funktion oben auf der Taste steht. Das bedeutet, daß Sie diese Taste zusammen mit der <SHIFT>-Taste drücken müssen, um die [CLR}-Funktion zu erreichen. Auf dem Bildschirm muß jetzt nach dem Anführungszeichen ein dunkles Herz auf hellem Grund erscheinen. Man nennt diesen Darstellungsmodus auch »revers« oder »invers«. Als nächstes müssen Sie dreimal die »Down«Taste drücken. Das ist die »Cursor-nach-unten«-Taste. Neben dem inversen Herzchen müssen jetzt drei inverse Qs erscheinen.
Wir wollen nun untersuchen, was passiert, wenn Sie dieses Mini-Programm mit»RUN« starten: Der C 64 »liest« den PRINT: Befehl und erkennt, daß er den folgenden Text auf dem Bildschirm ausgeben soll. Als erstes soll er den Bildschirminhalt löschen (CLR) und dann drei Zeilen weiter unten (3DOWN) den Text »HALLO« ausdrucken. Wir haben nun schon einen wichtigen Punkt gelernt: Sobald wir ein Anführungszeichen eingeben, werden alle »Steuertasten« (Cursor-Bewegungen, Bildschirm löschen, die Farbwahl-Tasten etc.) nicht mehr direkt ausgeführt, sondern als »Steuerzeichen« in den Programmtext übernommen. Dieser besondere Modus wird »Anführungszeichen-Modus« genannt.
Was aber tun, wenn wir uns innerhalb von Anführungszeichen vertippt haben, und dringend die »Cursor-nach-links«-Taste zum Korrigieren benötigen? Der C 64 würde diese Tasten-Funktion ja nicht ausführen, sondern das entsprechende Steuerzeichen ausgeben. Sie können das leicht ausprobieren, wenn Sie einfach mal ein Anführungszeichen eingeben, und dann versuchen, mit dem Cursor ein Zeichen nach links zu fahren. Aus diesem Anführungszeichen-Modus führen zwei Wege nach draußen:
- Wir geben noch ein Anführungszeichen ein und schalten dadurch den Modus aus. Das eventuell störende zweite Anführungszeichen können wir ja wieder löschen. Hauptsache, der Cursor macht wieder das, was wir wollen.
- Wir drücken <SHIFT> und <RETURN>. Dadurch wird der Cursor an den Anfang der nächsten Zeile gesetzt, ohne daß das gerade Eingegebene vom C 64 beachtet wird. Als Nebeneffekt des Ganzen wird der Anführungszeichenmodus wieder gelöscht und der Cursor darf sich wieder frei bewegen.
Steuerzeichen
Als kleine Übung können Sie ja einmal das Listing 1 abtippen. Es zeigt, wie man nur durch die Cursor-Steuerzeichen und einigen Strichen eine einfache, bewegte Grafik auf den Bildschirm zaubern kann.
Doch nun zu ein paar allgemeinen Hinweisen:
- Wie löscht man eine Programmzeile? Ganz einfach: Wir geben nur die Nummer der fehlerhaften Zeile ein und drücken die <RETURN>-Taste.
- Wenn Sie ein Programm fertig eingetippt haben, ist das Allerwichtigste, daß Sie Ihre Arbeit unbedingt zuerst auf Diskette oder Kassette speichern! Denn wenn Sie noch irgendwo einen gravierenden Tippfehler gemacht haben, kann dies zum rettungslosen Absturz des Computers führen. Und dann hilft nur noch das für Ihr Programm tödliche Aus- und wieder Einschalten des Computers. Also: Programme vor dem ersten Testlauf immer speichern!
- Was ist beim Speichern auf Diskette oder Kassette zu beachten? Bei Diskette ist es wichtig, daß Sie nach dem SAVE-Befehl einen Programmnamen (maximal 16 Zeichen) angeben. Ansonsten meldet der Computer einen »missing filename error«. Bei Datasette können Sie den Programmnamen weglassen. Im Fachjargon wird übrigens ein Programm als »File« bezeichnet. Deswegen werden Sie häufig auch »Filename« statt »Programmname« lesen.
- Wenn in einem Basic-Programm Zeilen vorkommen, die vom Inhalt her identisch, oder zumindest stark ähnlich sind, gibteseinenkleinen Trick: Um sich Tipparbeitzusparen, genügt es, wenn wir die Zeile einmal auf den Bildschirm schreiben, die <RETURN>-Taste drücken und dann nur noch die Zeilennummer durch die neue überschreiben, um die anderen Zeilen zu erhalten. Ein Beispiel: Betrachten wir uns in Listng 1 die Zeilen 30, 50, 70 und so weiter. Alle haben den gleichen Inhalt. Es genügt, wenn wir die Zeile einmal auf den Bildschirm schreiben, die <RETURN>-Taste drücken und dann einfach die Zeilennummer 30 durch eine 50, 70, 90 etc. überschreiben (<RETURN> nicht vergessen). Wenn wir jetzt »LIST« eingeben, sehen wir, daß der C 64 alle Zeilen angenommen hat. Dies ist eine äußerst effektive Methode, die man sich unbedingt merken sollte,
So, Sie haben jetzt (fast) alles gelernt, was zum fehlerfreien Abtippen eines Programms wichig ist. Man könnte nun noch sämtliche Fehlermeldungen des C 64 aufzählen und zu jeder Meldung mögliche Fehlerquellen, Tips zum Beheben und so weiter geben. Das würde jedoch den Rahmen dieses Artikels bei weitem sprengen!
Deshalb sei an dieser Stelle auf unser Sonderheft 5/86 verwiesen. Es hat den Titel »Grundwissen« und enthält alle für den C 64-Einsteiger wichtigen Informationen und einen Artikel über sämtliche Fehlermeldungen des C 64, ihre Ursachen und Tips zur Fehlersuche. Angefangen bei Kursen über Basic, Musikprogrammierungund Dateiverwaltungbishinzu vielen Tips & Tricks und weiteren nützlichen Hinweisen, ist es fast ein Standardwerk für jeden C 64-Besitzer.
Maschinensprache
Das Eintippen von Maschinensprache-Programmen ist dank unseres MSE-Programms auf Seite 76 schon deutlich einfacher. Wenn Sie die Bedienungsanleitung zum MSE auf Seite 76 genau beachten, sind Tippfehler fast ausgeschlossen. Wenn Sie ein solches MSE-Listing vollständig eingetippt und gespeichert haben, sind lediglich einige Regeln zu beachten:

- Maschinensprache-Programme müssen immer (!) mit dem Zusatz »,1« am LOAD-Befehl geladen werden. Beispiel: LOAD"LISTING" 8,1 (Diskette) oder LOAD'LISTING",L1 (Kassette). Man nennt dies »absolut« laden. Es hat etwas mit der Stelle im Speicher zu tun, an die das Programm geladen werden soll.
- Maschinensprache-Programme werden fast immer durch einen SYS-Befehl, und nicht durch »RUN« gestartet. Es gibt eine Ausnahme: Manche Programme haben eine einzige Basic-Zeile mit dem entsprechenden SYS-Befehl zum Starten. Diese Programme werden mit »RUN« aktiviert. Sie erkennen sie an der Startadresse »0801« im MSE-Listing.
- Bei Maschinensprache-Programmen ist es ganz besonders wichtig, daß nicht zwei Programme gleichzeitig im selben Speicherbereich liegen dürfen. Der jeweils verwendete Bereich steht in der Kopfzeile des MSE-Programms. Besonders häufig wird der Speicher ab Adresse $C000 verwendet.
- Die Startadresse hinter dem SYS-Befehl ist für das Programm »lebenswichtig«. Wenn Sie sich hier vertippen, kann unter Unständen der Computer vollständig abstürzen.
Damit wären wir am Ende dieser kleinen »Einführung in die Kunst des Programme-Abtippens« angelangt. Wir hoffen, daß wir Ihnen in diesem Artikel eine Menge nützlicher Hinweise geben konnten. Und verzagen Sie nicht: Jeder »syntax error« hat einen auffindbaren Grund!
(tr)10 print"{clr}":a$="{home}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{down}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}"
20 printa$"{down} {up}{left}M{down}{rvon} {rvof}"
30 gosub200
40 printa$" {SHIFT--}"
50 gosub200
60 printa$"{rght} N"
70 gosub200
80 printa$"{rght}{rght} {down}{left}{SHIFT-*}"
90 gosub200
100 printa$"{rght}{rght}{down} {down}{left}M"
110 gosub200
120 printa$"{rght}{rght}{down}{down} {left}{left}{SHIFT--}"
130 gosub200
140 printa$"{down}{down}{rght} {left}{left}N"
150 gosub200
160 printa$"{down}{down} {up}{left}{SHIFT-*}"
170 gosub200
180 goto20
200 fori=1to100:next:return