- CLOSE
- Dieser Befehl vervollständigt Files, die mit OPEN geöffnet wurden und schließt sie wieder. Die Zahl nach CLOSE ist die Nummer des Files, das geschlossen werden soll.
CLOSE2 Nur File 2 wird geschlossen
- CLR
- Dieser Befehl löscht alle Variablen im Speicher, läßt aber das Programm selbst intakt. CLR wird automatisch ausgeführt wenn RUN befohlen wird.
- CMD
- CMD sendet Ausgaben, die normalerweise an den Bildschirm gehen würden (z.B. PRINT oder LIST, aber nicht POKE) stattdessen an ein anderes Gerät. Das kann ein Drucker sein oder ein Datenfile auf Band oder Diskette.Dem Befehl CMD muß eine Zahl oder numerische Variable folgen, die sich auf die Filenummer bezieht.
OPEN 1,4 öffnet Gerät 4, den Drucker
CMD 1 jede normale Ausgabe soll nun an den Drucker gehen
LIST das Programmlisting wird nun nicht auf dem Bildschirm
sondern auf dem Drucker ausgegeben
- DATA
- Dieser Aussage folgt eine Liste von Angaben, die durch READ genutzt werden sollen. Die Angaben können vom numerischen Typ sein oder Textstrings. Sie werden untereinander durch Kommata getrennt. Strings brauchen nicht in Anführungszeichen stehen, es sei denn, sie enthalten Leerstellen, Doppelpunkt oder Komma. Steht einmal nichts zwischen zwei Kommata, dann wird der Wert numerisch als 0 gelesen oder als leerer String.
10 DATA 12,14.5,"HALLO,PARTNER",3.14,TEIL1
- DEF FN
- Eine komplexe Rechnung kann als Funktion mit einem kurzen Namen definiert werden . Im Falle einer sehr umfangreichen Formel, die häufig benötigt wird, kann damit viel Platz und Zeit eingespart werden.
Der Funktionsname ist FN, erweitert um jeden zulässigen Variablennamen (1 oder 2 Zeichen). Die Funktion wird definiert durch das Statement DEF, dem der Funktionsname folgt. Nach dem Namen wird in Klammern eine numerische Variable angegeben. Danach kommt ein Gleichheitszeichen und dann die aktuelle Formel, mit der Variablen am richtigen Platz. Die Funktion kann nun aufgerufen werden, indem für die Variable jeder beliebige Wert oder eine andere Variable eingesetzt wird.
10 DEF FNA(X) = 12*(34.75-X/.3)
20 PRINT FNA(7)
Für dieses Beispiel wird das Ergebnis 137 sein.
- DIM (Dimensionieren eines Feldes)
- Wenn ein Array mehr als 11 Elemente enthalten soll, muß dafür ein DIM-Befehl ausgeführt werden. Behalten Sie im Auge, daß das ganze Array Platz im Speicher belegt. Erzeugen Sie also kein Array, das wesentlich größer ist, als Sie unbedingt benötigen.
Um zu ermitteln , wieviele Variablen ein Array enthält, multiplizieren Sie die Größe aller Dimensionen miteinander.
10 DIM A$(40),B7(15),CC%(4,4,4)
^ ^ ^
41 / 16 / 125 Elemente
Sie können mehr als ein Array in einem DIM-Statement erklären. Dimensionieren Sie ein Array aber nicht mehr als einmal.
- END
- Wenn das Programm ein END entdeckt, hält es an, als ob es ans Ende der letzten Zeile CONT können Sie es wieder starten.
- FOR...TO...STEP
- Zusammen mit dem Befehl NEXT sorgt dieses Statement dafür, daß ein Programmabschnitt mehrmals durchlaufen wird (Die Anzahl der Durchläufe kann angegeben werden ). Das Format dieses Befehls ist:
FOR (Variablenname) = (Zähleranfang) TO (Zählerende) STEP (Schrittweite)
Während der Programmlaufs wird zur Zählvariable die Schrittweite addiert oder subtrahiert.Wird kein STEP angegeben, bedeutet das Schrittweite = 1. Zähleranfang und Zählerende stellen die Grenzwerte für die Laufvariable dar.
10 FOR L = 1 to 10 STEP .1
20 PRINT L
30 NEXT L
- GET
- Mit GET können Daten von der Tastatur übernommen werden, und zwar jedesmal ein einzelnes Zeichen. Wenn GET ausgeführt wird, wird das eingetippte Zeichen der Variablen zugeordnet. War kein Zeichen eingetippt, wird ein leeres Zeichen oder Null zugeordnet.
Wird eine numerische Variable benutzt, und eine nicht numerische Taste gedrückt, hält das Programm mit einer Fehlermeldung an.
Der GET-Befehl sollte in einer Schleife formuliert werden , die ein leeres Resultat abprüft. Die untenstehende Schleife wartet bis irgendeine Taste gedrückt wird:
10 GET A$:IF A$ = "" THEN 10
- GET#
- GET# wird benutzt um mit einem vorher durch OPEN geöfneten File oder Gerät, um von diesem ein Zeichen einzulesen.
GET#1,A$
liest ein Zeichen aus einem Datenfile.
- GOSUB
- Dieser Befehl wirkt ähnlich wie GOTO, der Computer merkt sich aber, an welcher Stelle des Programms er den Befehl GOSUB erhalten hat. Erreicht das Programm den Befehl RETURN, springt es an die Stelle direkt hinter GOSUB zurück. Dies ist besonders nützlich wenn ein Programmteil häufiger benutzt werden kann. Man muß diese Programmzeilen nicht mehrfach eintippen, sondern kann sie durch GOSUB bei Bedarf mehrfach "aufrufen".
20 GOSUB 800
- GOTO oder GO TO
- Das Programm springt in die nach GOTO angegebene Zeilennummer und fährt dort mit der Arbeit fort. Kommt die angegebene Zeilennummer nicht im Programm vor, stoppt das Programm mit einer Fehlermeldung.
- IF...THEN
- IF...THEN läßt den Computer die vorliegende Situaion analysieren. Er entscheidet sich dann für eine von zwei Möglichkeiten, je nach Resultat der Analyse. Ist die Bedingung nach IF erfüllt (wahr), dann wird der Teil nach THEN ausgeführt. Das kann jedes beliebige BASIC-Statement sein.
Ist die Bedingung nicht erfüllt geht das Programm zur nächsten Zeile über. Die Bedingung kann eine Variable oder eine Formel sein. Sie gilt als wahr, wenn das Ergebnis der Berechnung nicht Null ist, andernfalls gilt sie als nicht erfüllt (falsch). In den meisten Fällen steht als Bedingung ein Ausdruck, der einen der logischen Operatoren (=, <, >, <=, =>, <>, AND, OR, NOT) enthält:
10 IF X>0 THEN END
- INPUT
- Mit dem INPUT-Befehl kann sich das Programm Daten vom Benutzer übermitteln lassen und sie einer Variablen zuordnen. Das Programm hält an, gibt ein Fragezeichen auf dem Bildschirm aus und wartet bis der Benutzer eine Antwort eingetippt und die RETURN-Taste gedrückt hat.
Nach INPUT steht ein Variablenname oder eine Liste von Variablen, die durch Kommata getrennt sind. Zwischen INPUT und den Variablen kann in Anführungszeichen eine Botschaft an den Benutzer vorgegeben werden. Werden Eingaben für mehrere Variablen gemacht, müssen diese durch Kommata getrennt eingetippt werden.
10 INPUT "BITTE GEBEN SIE IHREN NAMEN AN";A$
20 PRINT "GEBEN SIE JETZT NOCH IHRE CODEZAHL EIN":INPUT B
- INPUT#
- INPUT# ist ähnlich wie INPUT, übernimmt die Daten aber mit einem vorher durch OPEN geöffneten File.
- LET
- LET leitet eine Zuweisung ein, wird aber kaum in Programmen benutzt, da seine Angabe wahlfrei ist.. Der Variablenname, dem das Ergebnis zugewiesen werden soll. steht links vom Gleichheitszeichen, die Formel steht rechts.
LET A=5
LET D$="HALLO"
- NEXT
- NEXT wird immer in Verbindung mit FOR...TO benutzt. Erreicht das Programm den Befehl NEXT, überprüft es die Laufvariable, um zu sehen, ob die vorgeschriebene Grenze schonerreicht ist. Ist die Schleife noch nicht zu Ende, wird der nach STEP angegebene Wert zumZähler hinzuaddiert. Ist die Grenze bereits erreicht fährt das Programm mit dem auf NEXT folgenden Befehl fort.
Nach NEXT darf ein Variablenname oder eine Liste von Variablen, durch Kommata getrennt, stehen. Es muß immer die innerste Schleife zuerst abgearbeitet werden.
10 FOR X=1 TO 100:NEXT
- ON
- Dieser Befehl macht aus den Befehlen GOTO und GOSUB spezielle Versionen des IF-Befehls. Auf ON folgt eine Formel, die errechnet wird. Ist das Resultat der Rechnung 1, wird die erste Zeile der Liste ausgeführt. Ist das Resultat 2, wird die zweite Zeile ausgeführt usw. Ist das Resultat 0 oder größer als die angeführte Liste von Zeilennummern, wird der Befehl nach ON bearbeitet.
10 INPUT X
20 ON X GOTO 10,20,30,40,50
- OPEN
- Mit demBefehl OPEN kann der C64 Daten mit Geräten wie demKassettenrecorder oder Diskettenlaufwerk, einem Drucker oder sogar demBildschirm austauschen. Auf das Schlüsselwort OPEN folgt eine Nummer (0-255), die logische Filenummer, auf die sich alle nachfolgenden Anweisungen beziehen. Gewöhnich folgt der wersten Nummer eine zweite, die Gerätenummer.
Die Gerätenummern sind:
0 Tastatur
1 Kassette
3 Bildschirm
4 Drucker (oder 5)
8 Disk (oder 9-15)
Der Gerätenummer folgt häufig, ebenfalls durch Komma getrennt, eine dritte Zahl, die Sekundäradresse. Im Falle der Kassette ist dies eine 0 für Lesen, eine 1 für Schreiben und eine 2 für Schreiben mit Bandende-Markierung.
Im Falle der Diskette bezieht sich die Sekundäradresse auf die Puffer- oder Kanalnummer. Beim Drucker kontrolliert sie Zusatzeinrichtungen wie etwa formatierten Druck. Weitere Einzelheiten finden Sie im Commodore 64 Programmierhandbuch.
10 OPEN 1,0 öffnet die Tastatur als Gerät
20 OPEN 2,1,0,"D" öffnet die Kassette zum Lesen, das gesuchte File ist D.
30 OPEN 3,4 öffnet den Drucker
40 OPEN 4,8,15 öffnet den Befehlskanal auf Disk
Siehe auch CLOSE, CMD, GET#, INPUT#, PRINT#, Systemvariable ST
- POKE
- POKE wird immer von zwei Zahlen oder Formeln gefolgt. Die erste Angabe ist die Adresse eines Speicherplatzes. Die zweite Angabe ist ein Wert zwischen 0 und 255, der in die entsprechende Speicherstelle geschrieben wird und der den bisher dort stehenden Wert ersetzt.
10 POKE 53281,0
20 S=4096*13
30 POKE S+29,8
- PRINT
- PRINT ist wohl der erste Befehl, den der Neuling zu gebrauchen lernt. Einige Variationen sollen dabei beachtet werden. Nach PRINT können stehen:
Textstrings in Anführungszeichen
Variablennamen
Funktionen
Satzzeichen
Satzzeichen dienen der Formatierung auf dem Bildschirm. Das Komma unterteilt den Bildschirm in vier Spalten, wogegen ein Semikolon jeden Zwischenraum unterdrückt. Jedes der beiden Zeichen kann als letztes Symbol in einer Zeile vorkommen. Dies bewirkt, daß das nächste mit PRINT ausgegebene Zeichen so behandelt wird, als sei es eine Fortsetzung des ursprünglichen PRINT-Befehls.
10 PRINT "HALLO"
20 PRINT "HALLO",A$
30 PRINT A+B
40 PRINT J;
50 PRINT A,B,C,D
Siehe auch die Funktionen POS, SPC und TAB
- PRINT#
- Zwischen diesem Befehl und PRINT bestehen einige Unterschiede. Auf PRINT# folgt eine Zahl, die sich auf ein vorher mit OPEN geöffnetes Gerät oder Datenfile bezieht. Nach dieser Zahl steht einKomma und danndie Liste dessen, was auszugeben ist.Das Komma und das Semikolon haben den selben Effekt sie bei PRINT. Beachten Sie, daß einige Geräte nichts mit TAB oder SPC anfangen können.
Vorsicht: PRINT# darf nicht durch ?# abgekürzt werden!
100 PRINT#1,"Dateninhalte";A%,B1,c$
- READ
- READ wird benutzt um Informationen aus DATA-Zeilen auf Variablen zu übertragen, damit diese verarbeitet werden können. Sie müssen darauf achten daß kein String gelesen wird wenn READ einen numerischen Wert erwartet. Dies würde einen TYPE MISMATCH ERROR ergeben.
- REM (Remark, Bemerkung)
- Nach REM steht eine Bemerkung für irgendjemanden, der das Programmlisting lesen wird. Sie könnte zum Beispiel einen Programmabschnitt erklären oder zusätzliche Informationen beinhalten. Hinter REM kann ein beliebiger Text stehen. Es hat auf einProgramm keinerlei Wirkung, außer daß es dieses länger macht.
- RESTORE
- RESTORE setzt den Zeiger auf das nächste aus einer DATA-Zeile zu lesende Element auf den Anfang zurück. Diese Informationen können so mehrfach gelesen werden.
- RETURN
- Dieser Befehl schließt ein Unterprogramm ab. Wenn das Programm ein RETURN entdeckt, springt es zu dem unmittelbar auf GOSUB folgenden Befehl zurück. Wurde zuvor kein GOSUB befohlen, erhalten Sie einen RETURN WITHOUT GOSUB ERROR.
- STOP
- Dieser Befehl hält ein Programm an. Die Meldung BREAK IN xxx wird angezeigt, wobei xxx die Zeilennummer ist, in der STOP steht. Das Programm kann nach Eingabe von CONT weiter arbeiten. STOP wird gewöhnlich zum Debugging, der Suche nach Programmfehlern, gebraucht.
- SYS
- Auf SYS folgt eine Zahl oder ein numerischer Ausdruck im Bereich 0-65535. Das Programm startet dann ein Programm in Maschinensprache, das bei dieser Speicheradresse beginnt. SYS ist ähnlich dem USR, läßt aber keine Übergabe von Parametern zu.
- WAIT
- WAIT wird benutzt, um ein Programm solange anzuhalten, bis eine bestimmte Speicheradresse einen bestimmten Wert angenommen hat. Auf folgt die Speicheradresse (x) und bis zu zwei Variablen. Das Format ist:
WAIT X,Y,Z
Der Inhalt der angegebenen Adresse wird zuerst EXCLUSIV OR verknüpft mit dem dritten Wert Z (falls dieser angegebenn ist), und dann wird mit dem zweiten Wert Y ein logisches AND ausgeführt. Ist das Resultat 0, prüft das Programm den Inhalt dieser Adresse erneut. Ist das Ergebnis nicht Null, arbeitet das Programm mit dem nächsten Statement weiter.
|