Basic
Alle Basic Befehle und Kommandos. Alphabetisch sortiert.
BEFEHL - Abkürzung - Format(Syntax)
ABS - aB - ABS(<Ausdruck>)
Gibt den Absolutwert eine Zahl an. Dies ist der Wert ohne Vorzeichen.
Beispiel:
10 x = ABS(Y)
20 PRINTABS (X*J)
30
IF X = ABS (X) THEN PRINT "POSITIV"
AND - aN -<Ausdruck> AND <Ausdruck>
AND wird in Boole'schen Operationen zur Prüfung einzelner Bits und zur Wahrheitsprüfung beider Operationen benutzt.
Das Ergebnis einer AND-Operation ist nur dann 1 wenn beide beteiligten Zahlen 1 sind. Wenn eine oder beide beteiligten Zahlen 0 sind, ist das Ergebnis auch 0.
Der
C64 führt AND Operationen bei Zahlen von -32768 bis +32768 durch.
Brüche dürfen nicht benutzt werden.
ASC - aS - ASC(<String>)
Durch
ASC wird eine Zahl von 0 bis 255 gegeben, die dem Commodore ASCII-Wert
des ersten Zeichens der Zeichenkette entspricht.
ATN - aT - ATN(<Zahl>)
Diese
Mathematische Funktion gibt den Arcustangens der Zahl wieder. Das Ergebnis
ist der Winkel (im Bogenmas), dessen Tangens die gegebene Zahl ist.
CHR$ - cH - CHR$(<Zahl>)
Über
diese Funktion wird ein Commodore ASCII-Code in sein entsprechendes Zeichen
umgewandelt. Die Zahl muß einen Wert zwischen 0 und 255 haben, da
sonst die Fehlermeldung ?Illegal Quantity angezeigt wird.
CLOSE - clO - CLOSE<logische Filenummer>
Über diese Funktion kann eine beliebige Datendatei oder ein Gerätekanal geschlossen werden. Die Dateinummer ist dabei die gleiche wie beim öffnen der entsprechenden Datei oder des Gerätes (Siehe Anweisung OPEN).
Beim
Arbeiten mit externen Speichern wie Kassetten und Disketten, wird durch
die CLOSE Anweisung jeder Inhalt des Puffers durch das Gerät gespeichert.
Wird dies nicht ausgeführt, so ist die Datei nur unvollständig
auf der Kassette, bzw. unlesbar auf der Diskette. Bei anderen Geräten
ist die Close-Anweisung nicht unbedingt erforderlich, sie setzt jedoch
Speicherkapazität für weitere Dateien frei.
CLR - cL - CLR
Über diese Anweisung kann RAM Speicher verfügbar gemacht werden, der benutzt wurde, aber nicht mehr benötigt wird. Die BASIC Programme bleiben unberührt, Sämtliche Variablen, Felder, GOSUB Adressen, FOR...NEXT-Schleifen, vom Benutzer definierte Funktionen und Dateien, werden jedoch aus dem Speicher gelöscht. Der Speicherplatz steht dann für neue Variablen etc. zur verfügung.
Dateien
auf Disketten und Kassetten werden nicht richtig durch die CLR Anweisung
geschlossen. Die Dateieninformation, einschließlich aller nicht vollständigen
Puffer, sind für den Computer verloren. Das Disketten-Laufwerk geht
immer noch davon aus, daß die Datei offen ist. Wegen der Einzelheiten
siehe Anweisung CLOSE-
CMD - cM - CMD<logische Filenummer> [, String]
Über diese Anweisung wird die Datenausgabe vom Bildschirm auf das angegebene File umgeschaltet. Dieses File kann auf Diskette, der Kassette, dem Drucker, oder einer Ein-Ausgabevorrichtung, wie zB einem Modem, zugeordnet sein. Die Logische Filenummer muß zuerst mit der OPEN Anweisung festgelegt werden. Der String wird, wenn er festgelegt ist, zum File geschickt.
Wenn dieser Befehl wirksam ist, werden die PRINT-Anweisungen und LIST-Befehle nicht auf dem Bildschirm angezeigt, sondern übertragen den Text im gleichen Format auf das logische File.
Damit die Ausgabe wieder auf dem Bildschirm angezeigt wird, muß der Befehl PRINT# eine Leerzeile vom CMD-Gerät vor dem Schließen (CLOSE) schicken, damit dieses nicht mehr auf eine Datenübertragung wartet (dies nennt man "Un-listening" des Gerätes)
Durch
Systemfehlermeldungen wird die Ausgabe wieder zurück auf den Bildschirm
geholt. Hiermit erfolgt kein Un-listening der Geräte, so daß
danach eine Leerzeile übertragen werden muß.
CONT - cO - CONT
Über
diesen Befehl wird ein Programm wieder Gestartet, das durch die Anweisung
STOP, END, oder durch drücken der "RUN-STOP" Taste abgebrochen wurde.
Das Programm wird genau an der Stelle fortgesetzt, an der es beendet wurde.
COS - cos - COS(<Zahl>)
Über
diese mathematische Funktion wird der Kosinus einer Zahl berechnet, wobei
diese Zahl als das Bogenmaß eines Winkels aufgefasst wird.
DATA - dA - DATA<Konstantenliste>
Hinter
der DATA Anweisung werden Informationen innerhalb eines Programmes gespeichert.
Die Informationen können über die READ-Anweisung innerhalb eines
Programmes gelesen werden. Alle DATA Anweisungen innerhalb eines Programmes
werden als Kontinuierliche Liste behandelt. Die Daten werden von links
nach rechts, von der Zeile mit der niedrigsten, zur Zeile mit der höchsten
Zeilennummer gelesen. Die einzelnen Daten innerhalb einer Zeile werden
durch Komma getrennt. Soll innerhalb einer Datei ein Komma, Doppelpunkt,
Leerstellen, Buchstaben in Großschrift, graphische Zeichen oder Cursor
Steuerzeichen enthalten sein, muß der Datensatz in Anführungszeichen
in der DATA Zeile stehen.
DEF FN - dE - DEF FN <Name>(<Variable>)=<Ausdruck>
Mit dieser Anweisung wird vom Benutzer eine Funktion definiert, die später im Programm benutzt werden kann. Diese Funktion kann aus einer Beliebigen mathematischen Gleichung bestehen. Selbstdefinierte Funktionen können Speicherplatz bei Programmen einsparen, bei denen eine längere Gleichung an mehreren Stellen auftritt.
Die Gleichung muß nur einmal in der Definitionsanweisung bestimmt werden und wird danach als abgekürzter Funktionsname aufgerufen.
Der Funktionsname setzt sich aus den Buchstaben FN gefolgt von einem beliebigen Variablennamen (bestehend aus einem oder zwei Buchstaben - der zweite kann auch eine Zahl sein) zusammen.
Die Funktion wird später mit hilfe des Funktionsnamens aufgerufen, wobei eine Variable in Klammern steht. Der Funktionsname wird wie jede andere Variable behandelt, und sein Wert wird automatisch berechnet.
Beispiel:
10 DEF FN A (X) = X+7
20 DEF FN AA (X) = Y*Z
30 DEF FN A9 (Q) = Q+I
40 PRINT FN A(9)
50 R=FN AA (9)
60 G=G+FN A9 (Z)
In
Zeile 50 in obigem Beispiel beeinflußt die Zahl in Klammern nicht
das Ergebnis, da die Funktionsdefinition in Zeile 20 nicht die Variable
in Klammern benutzt. Das Ergebnis Y*Z ist unabhängig vom Wert X, in
den beiden anderen Funktionen wird das Ergebnis durch den Wert in Klammern
beeinflußt.
DIM - dI - DIM<Variable>(<Index>)[,<Variable>(<Index>)...]
Über diese Anweisung wird ein Feld oder eine Matrix von Variablen bestimmt. Auf diese Weise können Sie den Variablenname mit einem Index benutzen. Der Index weist auf das Benutzte Element. Der niedrigste Index eines Feldes ist Null, und die höchste Zahl ist die Zahl, die in der DIM-Anweisung gegeben wird (max 32767)
Die DIM-Anweisung muß einmal (und darf nur einmal) für jedes Feld ausgeführt werden. Bei einer erneuten Ausführung dieser Zeile wird die Fehlermeldung REDIM'D ARRAY angezeigt. Aus diesem Grund, führen die meisten Programme anne DIM Operationen am Anfang aus.
Ein Feld kann beliebige Dimensionen und 255 verschiedene Indizes enthalten. Dies ist lediglich durch die Kapazität des RAM-Speichers begrenzt, die für die Variablen zur Verfügung steht. Das Feld kann aus normalen numerischen Variablen, aus Zeichenketten, oder ganzen Zahlen bestehen. Handelt es sich bei den Variablen nicht um normale Zahlen, so benutzen sie nach dem Variablennamen das Zeichen $ oder %, um eine String- oder Ganzzahlvariable anzugeben.
Wurde
für ein Feld, auf das im Programm Bezug genommen wurde, keine DIM
Anweisung gegeben, so werden automatisch 11 für jede Dimension reserviert.
END - eN - END
Durch
die END Anweisung wird die Programmausführung beendet, und die Meldung
READY. angezeigt. Ein Programm kann beliebig viele END Anweisungen enthalten,
obwohl es nicht erforderlich ist, überhaupt eine END Anweisung einzugeben.
EXP - eX - EXP(<Zahl>)
Mit
dieser mathematischen Funktion wird die Konstante e (2.71828183) in die
Potenz der angegebenen Zahl erhoben. Durch einen Wert der größer
ist als 88.0296919 kommt es zu der Fehlermeldung ?OVERFLOW.
FN - fn - FN<Name>(<Zahl>)
Diese
Funktion verweist auf die zuvor mit der DEF-Anweisung definierte Funktion.
Die Zahl wird eingesetzt, und dann der Funktionswert berechnet. Das Ergebnis
ist ein Numerischer Wert.
FOR...TO...[STEP...] - fO...to...[stE...] - FOR<Variable>=<Start>TO<Grenze>[STEP<Schrittweise>]
Dies
ist eine Variable mit der Sie eine Variable als Zähler benutzen können.
Sie müssen bestimmte Parameter angeben. Gleitpunkt-Variablen, Startwert
dieser Variablen, Endwert und bei Bedarf Schrittweite. Wird keine Schrittweite
eingegeben, wird automatisch die Schrittweite 1 gewählt. Die Schrittweite
kann eine beliebige Gleitpunktzahl sein.
FRE - fR - FRE(<Variable>)
Über diese Funktion erfahren Sie, wieviel RAM-Speicher noch zur Verfügung steht.
Die
Zahl in Klammern kann einen beliebigen Wert haben, und wird zur Berechnung
nicht benutzt.
GET - gE - GET<Variablenliste>
Über diese Anweisung wird jede vom Benutzer gedrückte Taste gelesen. Bei der Eingabe über die Tastatur werden die Zeichen im Tastaturpuffer des C64 gespeichert. Der Puffer hat eine Kapazität von 10 Zeichen, so daß der Anschlag des elften Zeichens und aller weiteren Tasten nicht berücksichtigt wird.
Durch lesen Des Zeichens mit der GET Anweisung wird das Zeichen im tastaturpuffer gelöscht, so daß Platz für weitere Zeichen geschaffen wird.
Mit
der GET Anweisung können sowohl Numerische als auch String Variablen
gelesen werden. Wird auf eine Numerische Variable gewartet, und eine String
Variable eingegeben, führt das zu einer SYNTAX ERROR Fehlermeldung.
Daher sollte man stets String Variablen erwarten, und dann ggf. in Numerische
Variablen umwandeln.
GET# - get# - GET#<logische Filenummer>,<Variablenname>
Mit dieser Anweisung werden die Zeichen einzeln von der angegebenen Datei oder dem angegebenen Gerät gelesen. Sie entspricht der GET Anweisung, nur das die Daten nicht von der Tastatur kommen. Wird kein Zeichen empfangen, so wird ein Leerstring ausgegeben (entspricht "" bei String, bzw. 0 bei Numerischen Variablen)
Zeichen
die Daten in Dateien trennen sollen, wie zB Komma oder [RETURN] Tastencodes
werden wie andere Zeichen eingelesen.
GOSUB - goS - GOSUB<Zeilennummer>
Dies ist eine spezielle Form der GOTO Anweisung. Der Unterschied besteht darin, daß bei GOSUB gespeichert wird, von welcher Stelle im Programm gesprungen wird. wird die RETURN Anweisung (nicht mit der RETURN Taste verwechseln) angetroffen, springt das Programm wieder an die Stelle der GOSUB-Sprunges zurück.
Dadurch
kann ein Unterprogramm von mehreren Stellen des Programmes angesprungen
werden, und jederzeit wieder an die Stelle des Programmes zurückgesprungen
werden.
GOTO - gO - GOTO<Zeilennummer> / GO TO<Zeilennummer>
Mit
dieser Anweisung kann man Basic Zeilen anspringen, die nicht in der Numerischen
Reihenfolge nacheinander kommen. Damit kann man zB bei einer Menüabfrage
nach der Wahl der Funktion zu den entsprechenden Programmpunkten springen.
IF...THEN... - if...tH... -
IF<Ausdruck>THEN<Zeilennummer>
IF<Ausdruck>GOTO<Zeilennummer>
IF<Ausdruck>THEN<Anweisungen>
Mit dieser Funktion kann man ein Programm nach bestimmten Bedingungen Steuern.
Dem
Wort IF folgt ein Ausdruck, der Variablen, Zeichenketten, Zahlen, Vergleiche,
und logische Operationen enthalten kann. Das Wort THEN erscheint in der
gleichen Zeile und wird entweder von einer Zeilennummer, oder einer weiteren
BASIC Anweisung gefolgt. Ist der Ausdruck falsch, wird alles was nach dem
Wort THEN in der Zeile folgt überlesen, und das Programm in der nächsten
Zeile Fortgesetzt. Bei richtigem Ausdruck, wird die Anweisung nach THEN
ausgeführt.
INPUT - input - INPUT["<Kommentar>";]<Variablenliste>
Mit
dieser Anweisung können Dateneingaben vom Benutzer erwartet werden.
Das Programm wird bei der INPUT Anweisung unterbrochen, und es erscheint
ein Fragezeichen auf dem Bildschirm. Wenn ein Kommentar eingegeben wurde,
wird dieser vor dem Fragezeichen ausgegeben. Mit dem Cursor wird der Benutzer
zur Eingabe aufgefordert. Die eingegebenen Daten werden in der Variablenliste
abgelegt, und können vom Programm verarbeitet werden.
INPUT# - iN - INPUT#<logische Filenummer>, <Variablenliste>
Mit dieser Funktion kann man Daten aus einer Disketten, oder Kassetten Datei lesen. Die Daten haben die Form von Variablen mit einer Länge von maximal 80 Zeichen. Dadurch unterscheidet sich diese Funkton von der GET# Funktion bei der nur ein Zeichen gelesen wird.
Der
Befehl INPUT# geht davon aus, daß eine Variable beendet ist, wenn
ein RETURN-Code, ein Komma, Semikolon, oder ein Doppelpunkt gelesen wird.
Diese Zeichen können beim anlegen der Datei ggf. in Anführungszeichen
eingeschlossen werden.
INT - int - INT(<numerisch>)
Gibt
den ganzzahligen Wert eines Ausdrucks wieder. Ist der Ausdruck positiv
wird der nachkommateil abgeschnitten, ist der Ausdruck negativ, so wird
der nächstniedrige ganze Zahl wiedergegeben.
LEFT$ - leF - LEFT$(<Zeichenkette>,<Ganze Zahl>)
Gibt
die Zeichenkette wieder, die die Zeichen von der äußersten linken
Position, bis zur angegebenen Zahl umfaßt. Die Argumentenwert muß
ganzzahlig und zwischen 0 und 255 liegen. Ist die ganze Zahl größer
als die länge der Zeichenkette, wird die ganze Zeichenkette ausgegeben.
Hat die Zahl den Wert 0, so wird ein Leerstring ausgegeben.
LEN - len - LEN(<Zeichenkette>)
Gibt
den Zahlenwert der Anzahl der Zeichen in einer Zeichenkette oder einem
String wieder. Nicht angezeigte Zeichen, oder Leerzeichen werden mitgezählt.
LET - lE - [LET]<Variable>=<Ausdruck>
LET weist einer Variablen den hinter dem Gleichheitszeichen angegebenen Ausdruck zu.
Den LET Befehl benötigt man in der Praxis nicht, da Wertzuweisungen auch ohne die LET Anweisung funktionieren.
LET A=10
A=10
In
beiden Fällen wird der Variablen A der Wert 10 zugewiesen. Daher wird
die LET Anweisung meist weggelassen, um Speicherplatz zu sparen.
LIST - lI - LIST [Zeilennummer-][-Zeilennummer]
LIST gibt das ganze oder Teile eines momentan im Speicher befindlichen Programmes aus. In der Regel wird die Ausgabe auf dem Bildschirm stattfinden, kann aber mit der CMD Anweisung auf andere Geräte umgeleitet werden.
Sollen
nur Teile des Programmes gelistet werden, so muß der Teil mit den
Zeilennummern eingegrenzt werden. Man kann ab einer bestimmten Zeilennummer
bis zum Ende Listen (zB. LIST 100-), einen Bereich im Programm Listen (zB.
LIST 100-200) oder von Anfang des Programmes bis zu einer bestimmten Stelle
Listen (zB. List -200)
LOAD - lO - LOAD["<Programmname>"][,<Gerätenummer>][,<Sekundärandresse>]
LOAD lädt die mit ihrem Namen bezeichnete Datei (in den meisten Fällen ein Programm) von Kassette oder Diskette. Um von Kassette zu laden gibt man die Gerätenummer 1 an, oder lässt die Gerätenummer ganz weg. Der C64 springt dann automatisch zu Adresse 1. Beim Laden vom Diskettenlaufwerk gibt man in der Regel Adresse 8 ein. Bei mehreren Floppys kann es auch ein Wert zwischen 9 und 15 sein. Die Sekundäradresse ist entweder 0 (Bei Basic Programmen, oder Maschinenprogrammen die wie Basic-Programme gestartet werden können) oder 1 bei Dateien oder Programmen die andere Daten enthalten.
Rein
Technisch ist es fast immer Möglich die Sekundäradresse 1 einzugeben,
Da in diesem Fall immer vom Computer eine Prüfung vorgenommen wird,
und das Programm entsprechend geladen wird. Bei Adresse 0 (oder wenn keine
Sekundäradresse eingegeben wird) wird das Programm immer als Basicprogramm
angenommen. Lediglich bei Programmen bei denen durch einen Speicherfehler
der Hinweis auf ein Basic-Programm verlorengegangen ist, kann durch eingeben
der Sekundäradresse 0 der Computer zum korrekten Laden gebracht werden.
LOG - log - LOG(<numerisch>)
Gibt
den natürlichen Logarithmus (Logarithmus der Basis e) des Argumentes
wieder. Ist das Argument Null oder negativ wird die Fehlermeldung ILLEGAL
QUANTITY Ausgegeben.
MID$ - mI - MID$(<String>,<numerische Zahl A>[,numerische Zahl B>])
MID$
schneidet aus dem angegebenen String Ausdruck einen Teil-String aus, wobei
die A die Position des ersten Zeichens, und B die Anzahl der zu entnehmenden
Zeichen angibt.
NEW - new - NEW
Durch
den Befehl NEW wird ein im Speicher befindliches Programm und sämtliche
Variablen gelöscht. Damit kann man ein Programm löschen, bevor
man ein neues Programm einzugeben beginnt. NEW kann auch innerhalb eine
Programmes benutzt werden, sollte aber erst in ein Fertig getestetes und
gespeichertes Programm eingebaut werden, da sonst die Fehlersuche sehr
kompliziert werden kann.
NEXT - nE - NEXT[<Variable>][,<Variable>]...
Die NEXT Anweisung wird immer zusammen mit der FOR Anweisung benutzt, um das Ende der Schleife anzugeben. Der Zähler ist der Variablenname, vom Schleifenindex, der mit FOR zum Beginn der Schleife benutzt wird. Durch eine einzelne NEXT Anweisung können mehrere verschachtelte Schleifen abgeschlossen werden, wenn danach die Variablennamen für jede FOR Zähler folgen. Dabei muß jeder Variablenname genannt werden, wobei der der Innersten Schleife zuerst, und der der äußersten Schleife zuletzt genannt werden muß. In diesem Fall müssen die Variablennamen durch Komma getrennt werden. Es können maximal 9 Schleifen verschachtelt werden.
Bei
der NEXT Anweisung wird der Zahlenwert der Schleife um den entsprechenden
STEP Wert geändert, und dann mit dem END Wert verglichen. Ist der
END Wert nicht erreicht, wird die Schleife erneut durchlaufen. Die Schleife
wird beendet, wenn der Variablenwert größer als der END Wert
ist.
NOT - nO - NOT<Ausdruck>
NOT
Ermittelt das logische NICHT eines Ausdrucks. Logisch Falsche Ausdrücke
werden daher Wahr, und umgekehrt. Numerische Variablen werden zuerst in
eine 16 Bit Zahl umgerechnet, und dann jedes einzelne Bit Umgedreht. (falls
es 0 war wird es 1 und umgekehrt)
ON - on - ON<Variable>GOTO/GOSUB<Zeilennummer>[,<Zeilennummer>]...
ON
erlaubt - ähnlich wie IF die bedingte Verzweigung in eine der hinter
GOTO bzw. GOSUB angegebenen Zeilennummer. Im Gegensatz zu IF hat man aber
die Möglichkeit mehrere Sprungziele in einer Anweisung zusammenzufassen.
Verzweigt wird jeweils in Abhängigkeit vom Verteilerwert. Eine 1 hat
zur Folge daß in die erste Zeilennummer hinter GOTO bzw. GOSUB gesprungen
wird, bei einer 2 wird in die zweite Zeilennummer verzweigt usw... Bei
ungültigen Werten wird das Programm mit der hinter ON folgenden Anweisung
fortgesetzt.
OPEN - oP - OPEN<logische Filenummer>,[<Gerätenummer>][,<Sekundäradresse>] [,"<Dateiname>[<Type>][,<Modus>]"]
OPEN öffnet eine logische Datei zum Lesen und/oder Schreiben von Daten von einem Peripheriegerät. Dazu muß die Adresse des Gerätes (zB 8 für Floppy) sowie im Kommandotext der Name der Datei angegeben werden.
Der Kommandotext kann zusätzlich noch andere Parameter enthalten, etwa den Programmtyp, bei einer Floppy-Datei. Die logische Filenummer, und die Sekundäradresse (beide dürfen Werte zwischen 0 und 255 annehmen) dienen der Unterscheidung der einzelnen geöffneten Dateien (bis zu 10 Dateien dürfen gleichzeitig geöffnet sein)
Bei allen späteren Zugriffen (durch INPUT#, PRINT# usw) muß jeweils die logische File Nummer zur Identifikation angegeben werden. Insbesondere bei Floppy-Dateien ist es sehr wichtig, daß die einzelnen Dateien auch verschiedene Sekundäradressen haben, da die Floppy diese zur Internen Verwaltung der Datenkanäle benötigt.
Am
einfachsten ist es, wenn man für die logische File-Nummer und die
Sekundäradresse jeweils die gleichen Werte nimmt. "OPEN2,8,2,"TEST,S,W"
"zB. öffnet eine sequentielle Datei namen TEST zum Schreiben von Daten.
OR - or - <Operand> OR <Operand>
OR
Verknüpft zwei Ausdrücke bitweise durch logisches ODER. Jeder
Ausdruck wird dazu intern in eine 16 Bit Zahl Umgerechnet. OR eignet sich
vor allem zum gezielten Setzen einzelner Bits, etwa der eines Registers.
PEEK - pE - PEEK(<numerisch>)
PEEK
dient zum Auslesen des Inhaltes einer bestimmten Speicherstelle. Dazu muß
die Adresse der Speicherstelle angegeben werden. Werte von 0 bis 65535
sind erlaubt. Peek bildet das Gegenstück zu POKE.
POKE - pO - POKE<Adresse>,<Wert>
POKE
schreibt den angegebenen Wert (o bis 255) in die durch ihre Adresse (o
bis 65535) bezeichnete Speicherstelle. Das gegenstück zu POKE bildet
die Funktion PEEK. POKE und PEEK (in verbindung mit SYS) eignen sich sehr
gut zur Kommunikation mit Maschienenprogrammen.
POS - pos - POS(<Hintergrundargument>)
POS
übergibt die aktuelle Spaltenposition des Cursors am Bildschirm und
kann daher bei der Programmierung von Bildschirmmasken sehr hilfreich sein.
Das Hintergrundargument wird dabei nicht berücksichtigt.
PRINT - ? - PRINT["<Text>"][<Variable>]...
PRINT
dient zur Ausgabe von Zahlen, Zeichen, und Zeichenketten jeglicher Art
und ist neben INPUT der wohl am häufigsten benötigte Befehl.
Mit hilfe spezieller Steuerzeichen, etwa CHR$(147) zum Löschen des
Bildschirms, lässt sich über PRINT auch das Erscheinungsbild
der Bildschirmausgaben verändern. Die Auszugebenden Ausdrücke
müssen jeweils durch ein Komma oder Semikolon voneinander getrennt
werden. Zum Beispiel löscht PRINTCHR$(147);"Hallo" zunächst den
Bildschirm, und schreibt dann den Text HALLO in die oberste Bildschrimzeile.
PRINT# - pR - PRINT#<logische Filenummer>[<Variable>][<,/;><Variable>]
PRINT#
hat dieselbe Funktion wie PRINT, nur das die Ausgabe nicht auf dem Bildschirm,
sondern in eine durch Ihre Logische Filenummer bezeichnete Datei erfolgt.
Der Aufbau des Auszugebenden Ausdruckes ist analog zu PRINT, allerdings
haben die Steuerzeichen bei PRINT# keine unmittelbare Wirkung (mit Ausnahme
von RETURN (CHR$(13)), das zur Trennung zweier Datensätze dient),
werden aber trotzdem in Form Ihrer ASCII-Werte geschrieben.
READ - rE - READ<Variable>[,<Variable>]
READ
leist in DATA-Anweisungen abgelegte, numerische oder alphanumerische Daten
in eine oder mehrere Variablen ein. Nach jeder READ Anweisung wird der
Zeiger auf die Daten automatisch um ein Element weitergesetzt. Nach erreichen
des letzten im Programm vorhandenen DATA-Elementes erscheint ein OUT OF
DATA ERROR. Mittels RESTORE lässt sich der DATA Zeiger auf das erste
im Programm vorhandene DATA Element zurücksetzen.
REM - rem - REM[<Kommentar>]
REM
dient zur Markierung von Kommentaren in einem Programm. Hinter REM dürfen
beliebige Texte stehen. Der Rest der Programmzeile hinter REM wird vom
Programm überlesen. BASIC Befehle die hinter REM stehen (auch wenn
sie durch Doppelpunkt abgetrennt sind) werden daher nicht bearbeitet.
RESTORE - reS - RESTORE
RESTORE setzt den DATA Zeiger auf das erste im Programm vorkommende DATA Element. Eine nachfolgende READ-Anweisung liest dann dieses Element in eine Variable ein.
RESTORE
wird insbesondere dann erforderlich, wenn in DATA-Zeilen Anweisungen abgelegte
Daten während des Programmablaufes mehrfach gelesen werden sollen.
RETURN - reT - RETURN
RETURN
bildet den Abschluß einer durch GOSUB aufgerufenen Unterprogrammes.
Nach Return springt das Programm auf den Befehl hinter dem zuletzt abgearbeiteten
GOSUB Anweisung.
RIGHT$ - rI - RIGHT$(<String>,<ganze Zahl>)
Right$
ergibt einen Teil String, der einen rechten Teil des angegebenen String-Ausdrucks
enthält, wobei der Zahlenwert die Anzahl der Abzuschneidenden Zeichen
angibt. "A$=RIGHT$("Beispiel",5)" weist A$ den Teil String "spiel" zu.
RND - rN - RND(<numerisch>)
RND erzeugt eine Zufallszahl im Bereich zwischen 0 und 1. Mit Hilfe einer einfachen Formel lassen sich daraus Zufallszahlen innerhalb eines beliebigen Bereiches erzeugen. UG+RND(1)*(OG-UG). UG steht für die untere OG für die obere Grenze des Bereiches. 1+RND(1)*9 ergibt beispielsweise eine Zufallszahl im Bereich zwischen 1 und 10.
Das Vorzeichen des Numerischen Ausdrucks hinter RND legt fest, welcher Startwert zur Berechnung der zufallszahlen genommen wird. Ein Positiver Wert hat zur Folge, daß ein intern im ROM des Rechners gespeicheter Wert als Basis genommen wird.
Der Wert Null sorgt dafür daß der Basiswert aus einem CIA Register geholt wird, wodurch sich wirklich "zufällige" Zahlen erzeugen lassen.
Bei
negativem Wert schließlich wird in Abhängigkeit vom Wert des
numerischen Ausdrucks selbst ein Basiswert generiert.
RUN - rU - RUN[<Zeilennummer>]
RUN startet ein im Speicher befindliches BASIC Programm. Ohne Angabe einer Zeilennummer hinter RUN wird das Programm von anfang an bearbeitet, andernfalls wird ab der angegebenen Zeilennummer begonnen.
Zuvor
werden in jedem Fall sämtliche evtl. aus früheren Programmabläufen
noch vorhandene Variableninhalte gelöscht.
SAVE - sA - SAVE["<Dateiname>"][,<Gerätenummer>][,<Adresse>]
SAVE
speichert das momentan im Speicher befindliche Programm auf Kassette (Gerätenummer
1) oder Diskette (Gerätenummer 8 - 15). Die Sekundäradresse hat
nur beim Speichern auf Kassette eine Bedeutung. Durch Angabe einer 2 oder
3 erreichen Sie, daß am Ende des Speichervorgangs zusätzlich
eine Band-Ende Markierung geschrieben wird.
SGN - sG - SGN(<numerisch>)
SGN
bestimmt das Vorzeichen des angegebenen numerischen Ausdrucks. Bei positiven
Werten wird dabei eine 1, bei negativen Werten wird dabei eine -1 und bei
einer Null eine Null übergeben.
SIN - sI - SIN(<numerisch>)
SIN
berechnet den Sinus eines im Bogenmas im Bogenmaß angegebenen numerischen
Ausdrucks. Die auch übliche Angabe in Grad lässt sich durch Multiplikation
mit Pi/180 ins Bogenmas umrechnen.
SPC - sP - SPC(<numerisch>)
SPC
in Verbindung mit PRINT verschiebt den Cursor um die angegebene Anzahl
Spaltenpositionen (0 bis 255) nach rechts. SPC kann beim Aufbau von Bildschirmmasken
sehr hilfreich sein.
SQR - sQ - SQR(<numerisch>)
SQR
berechnet die sog. Quadratwurzel des angegebenen numerischen Ausdrucks,
der größer oder gleich Null sein muß.
STATUS - st - STATUS
Status
(oder ST) ist eine Reservierte Variable, die nach jeder Ein-/ Ausgabeoperation
den aktuellen Status anzeigt.
STEP - stE - [STEP<Ausdruck>]
Mit
dem STEP Schlüsselwort kann man bei Bedarf die Schrittweite innerhalb
einer FOR-NEXT Schleife verändern. Ohne Step wird immer der Wert +1
angenommen, durch STEP kann dieser Wert größer oder kleiner,
oder auch negativ (zum rückwärtszählen) werden.
STOP - sT - STOP
STOP
unterbricht das laufende Programm und lässt den Computer in den Direktmodus
zurückkehren.
STR$ - stR - STR$(<numerisch>)
STR$
wandelt eine Zahl in eine Zeichenkette um, beispielsweise um diese anschließend
besser formatieren zu können. STR$ bildet das Gegenstück zu der
Funktion VAL
SYS - sY - SYS<Adresse>
SYS
ruft das ab der angegebenen Speicheradresse (0 bis 65535) beginnende Maschienenprogramm
auf. Nach abarbeitung des Maschienenprogramms wird das BASIC Programm hinter
der SYS Anweisung fortgesetzt. Ergänzend zu SYS gibt es die Funktion
USR, mit der sich Maschienenprogramme in BASIC Programme eingliedern lassen.
TAB - tA - TAB(<numerisch>)
TAB
in Verbindung mit PRINT setzt den Cursor au die angegebene Spaltenposition
(0 bis 255). Dazu wird der Cursor von seine Momentanen Position aus um
eine entsprechende Anzahl Schritte nach rechts verschoben. Als ergänzung
zu TAB gibt es die Funktion SPC. Beide können beim Aufbau von Bildschirmmasken
oder Tabellen hilfreich sein.
TAN - tan - TAN(<numerisch>)
TAN
berechnet den Tangens eines im Bogenmas angegebenen numerischen Ausdrucks.
Die übliche Angabe in Grad lässt sich durch Multiplikation mit
Pi/180 ins Bogenmas umrechnen.
TI/TI$ - ti/ti$ - TI / TI$
TI und TI$ sind zwei reservierte Variablen, die zum Stellen bz. Lesen der internen Uhr des C64 dienen. Die Uhr ist allerdings rein software-mäßig realisiert, so daß sie in der Regel sehr ungenau ist.
Zum Stellen der Uhr muß TI$ ein sechs Zeichen langer String übergeben werden: TI$="HHMMSS" "HH" Steht für die Stunden, "MM" für die Minuten, "SS" für die Sekunden. "153020" beispielsweise stellt die Uhr auf 15 Uhr 30 Minuten und 20 Sekunden.
Zum
Lesen der Uhr kann man TI und TI$ verwenden. TI$ enthält die aktuelle
Uhrzeit in demselben Format, wie beim Stellen der Uhr, also "HHMMSS". TI
dagegen enthält die Uhrzeit in 1/60 Sekunden und eignet sich daher
zum Messen sehr kurzer Zeitabstände.
USR - uS - USR(<numerisch>)
USR
erlaubt den Aufruf eines Maschienenprogramms als BASIC Funktion. Die Adresse
des Maschienenprogramms muß dazu in den Speicherstellen 785 und 786
abgelegt werden. Anschließend kann USR wie jede andere BASIC-Funktion
verwendet werden. Der Wert des hinter USR angegebenen numerischen Ausdrucks
wird jeweils an das Maschienenprogramms übergeben, von diesem verarbeitet
und schließlich ein Ergebniswert an BASIC zurückgegeben. Danach
wird das BASIC-Programm fortgesetzt.
VAL - vA - VAL(<String>)
VAL
wandelt eine in einer Zeichenkette (in Form einer Zeichenfolge) enthaltene
Zahl in eine "numerische" Zahl um, um diese beispielsweise für Berechnungen
heranziehen zu können. VAL bildet das Gegenstück zu der Funktion
STR$.
VERIFY - vE - VERYFI["<Dateiname>"][,<Gerätenummer>]
Falls
Sie nach eine SAVE Anweisung nicht ganz sicher sind, ob das Programm korrekt
gespeichert wurde, können Sie das mit VERIFY überprüfen
lassen. VERIFY vergleicht das momentan im Speicher befindliche Programm
mit dem unter dem angegebenen Namen auf Kassette oder Diskette gespeicherten.
Stimmen die beiden Programme nicht überein, so erscheint die Meldung
VERIFY ERROR, ansonsten OK.
WAIT - wA - WAIT<Speicheradresse>,<numerischer Ausdruck>[<numerischer Ausdruck>]
WAIT
verknüpft den Inhalt der Angegebenen Speicherzelle (0 bis 65535) mit
dem dritten Parameter (falls vorhanden) durch ein logisches EXCLUSIV-ODER
und anschließend mit dem zweiten Parameter durch ein logisches UND.
Solange sich bei diesen Verknüpfungen der Wert Null ergibt, werden
sie wiederholt, dh, die Programmausführung wird solange angehalten,
bis sich der Inhalt der Speicherstelle verändert.