Commodore 64 BASIC

  1. ) Variable
  2. Der C-64 benutzt drei Arten von Variablen: Fließkommazahlen (real), ganze Zahlen (integer) und Strings (alphanumerische Zeichenketten)
    Variablennamen können auc einem einzelnen Buchstaben, einem Buchstaben mit nachfolgender Ziffer oder zwei Buchstaben bestehen.
    Integervariablen werden durch ein nachgestelltes Prozentzeichen (%) gekennzeichnet. Stringvariablen tragen nach ihrem Namen ein Dollarzeichen ($).
    Namen von Realvariablen:    A, A5, BZ
    Namen von Integervariablen: A%, A5%, BZ%
    Namen von Stringvariablen:  A$, A5$, BZ$
    
    Arrays sind Mengen von Variablen, die den selben Namen benutzen und durch die Angabe einer besonderen Nummer (Index)als bestimmtes Element dieses Arrays ausgezeichnet werden. Arrays werden durch das DIM Statement definiert. Arrays dürfen von jedem der drei Typen (real, integer, string) sein. Dem Variablennamen folgt in runden Klammern die Angabe, wieviele Elemente die Liste enthält und wie diese angeordnet sein sollen.
    A(7), BZ%(11), AS(50), PT(20,20)
    
    Bemerkung: Es gibt drei Variablen, die der C64 selbst benutzt und die nicht definiert werden dürfen: ST, TI und TI$.
    ST ist die Statusvariable und erhält ihrern Wert entsprechend einer zuvor ausgeführten Ein-/Ausgabe-Operation. ST ändert seinen wert z.B., wenn ein Problem beim Schreiben oder Lesen von Band oder Diskette auftritt.
    TI wird von der internen Uhr jede 1/60 Sekunde hochgezählt. Es hat beim Einschalten des Computers den Wert 0 und kann nur zurückgesetzt werden wenn TI$ geändert wird.
    TI$ ist ein String aus sechs Ziffern, der ständig vom System auf den gültigen Stand gebracht wird. Er hat das Format HHMMSS. Dieser variablen kann ein beliebiger Wert zugewiesen werden, der von da an hochgezählt wird.
    TI$="101530" setzt die Uhr auf 10:15 Uhr und 30 Sekunden.

  3. ) Operatoren
  4. Die arithmetischen Operatoren werden von folgenden Zeichen gebildet:
    + Addition
    - Subtraktion
    * Multiplikation
    / Division
    ↑ Exponentation
    Werden in einer Zeile mehrere arithmetische Operatoren verwendet, dann gilt für die Reihenfolge die in der Mathematik übliche "Punkt vor Strich"-Regel. Die REihenfolge der Berechnung kann durch runde Klammern geändert werden.
    Für vergleiche werden die folgenden Operatoren verwendet:
    =  gleich
    <  kleiner als
    >  größer als
    <= kleiner oder gleich
    >= größer oder gleich
    <> ungleich
    Schließlich gibt es noch die logischen Operatoren:
    AND  UND (zwei Bedingungen treffen gleichzeitig zu)
    OR   ODER (mindestens eine von zwei Bedingungen trifft zu)
    NOT  NICHT (die Bedingung trifft nicht zu)

  5. ) Kommandos
  6. CONT (Continue)
    Dieses Kommando wird benutzt, um ein Programm fortzusetzen, das durch die STOP-Taste, den Befehl STOP oder den Befehl END im Programm angehalten wurde. Das Programm arbeitet genau an der Stelle weiter, wo es unterbrochen wurde.
    CONT geht nicht, wenn Sie vorher Zeilen geändert oder hinzugefügt haben. CONT geht auch nicht, wenn die Programmunterbrechung durch einen Fehler ausgelöst wurde. In diesen Fällen erhalten Sie die Meldung: CAN'T CONTINUE ERROR.

    LIST
    Mit List lassen Sie sich Programmzeilen anzeigen. Sie können sich das ganze Programm oder auch nur Zeilen daraus ausgeben lassen.
    LIST       zeigt das ganze Programm
    LIST 10-   zeigt das Programm ab Zeile 10 bis zum Ende
    LIST 10    zeigt nur die Zeile 10
    LIST -10   zeigt das Programm vom Anfang bis Zeile 10
    LIST 10-20 zeigt die Zeilen 10 bis 20, einschließlich

    LOAD
    Diesen Befehl benutzen Sie, um einProgramm von Band oder Diskette in den Rechner zu übertragen. Wenn Sie nur LOAD eintippen und die RETURN-Taste drücken, wird das nächste programm von der Kassette gelesen. Das Kommando kann durch einen Programmnamen in Anführungszeichen ergänzt werden. Dem Namen kann ein Komma und eine Zahl oder numerische Variable folgen, die als gerätenummer interpretiert wird und die angibt von welchem Gerät das Programm zu laden ist.
    Wird keine Gerätenummer angegeben nimmt der C64 Gerät#1 an, die Kassetteneinheit. Das andere, gewöhnlich mit dem LOAD-Kommando angegebene Gerät ist das Diskettenlaufwerk, Gerät#8.
    Der Gerätenummer kann durch ein Komma getrennt eine weitere Zahl angefügt werden. Damit wird das Programm in den Speicherbereich geladen in dem es beim Speichern stand. Ohne diese Angabe wird es an den Anfang des BASIC-Speicherbereichs ($0801 = 2049) geladen.
    LOAD            liest das nächste Programm von der Kassette
    LOAD"HALLO"     sucht auf der Kassette das Programm HALLO und
                    lädt es wenn es gefunden wurde
    LOAD AS$        sucht das Programm, dessen Name in AS$ abgelegt ist
    LOAD"HALLO",8   sucht das Programm HALLO auf der Diskette
    LOAD"*",8       sucht das erste Programm auf der Dikette
    LOAD"ASM",8,1   sucht das Programm ASM auf Diskette und läd es in
                    den ursprünglichen Speicherbereich

    NEW
    Dieses Kommando löscht das Programm im Speicher des Rechners. Alle eventuell benutzten Variablen sind ebenfalls gelöscht. Wenn das Programm nicht vorher mit SAVE gespeichert wurde, ist es verloren.
    Benutzen Sie diesen Befehl mit äußerster Vorsicht!
    Sie können NEW auch in einem Programm verwenden, wenn Sie möchten daß der Computer nach Ausführung dieses Programms wieder frei für neue Programme ist.
     Anmerkung: Nach NEW steht das Programm noch physikalisch im Speicher, es werden nur Register etc und die ersten 3 Bytes auf Defaultwerte gesetzt. Ein Reset (mit optionalem Reset-Taster) bewirkt das gleiche.

    RUN
    Dieses Kommando startet die Ausführung eines Programms, wenn es in den Speicher des Computers geladen wurde. RUN ohne Angabe einer Zeilennummer beginnt die Ausführung in der Zeile mit der niedrigsten Nummer. Wird nach RUN eine Nummer angegeben startet das Programm in dieser Zeile. Die Angabe einer Variablen ist nicht erlaubt.

    SAVE
    Dieses Kommando überträgt das Programm auf Band oder Diskette. Wenn Sie nur SAVE eintippen wird das Programm auf Band gespeichert. Der Computer kann nicht feststellen ob sich an dieser Stelle des Bandes bereits ein Programm befindet. Seien Sie also vorsichtig mit Ihren Bändern, Sie könnten ein wertvolles Programm zerstören.
     Anmerkung: Um das Ende eines Programmes auf Band zu finden kann man den Befehl VERIFY nutzen. Ist das Band danach leer tut es auch ein alter Kassettenrecorder. Bei der teuren Stereoanlage ist allerdings Vorsicht geboten, die Töne könnten die Lautsprecher zerstören.
    Lassen Sie nach SAVE einen Namen in Anührungszeichen folgen oder eine Stringvariable, dann wird das Programm diesen Namen erhalten und kann in Zukunft leichter lokalisiert werden. Dem Namen kann noch zusätzlich eine Gerätenummer folgen.
    Nach der Gerätenummer kann, durch ein Komma getrennt, eine zweite Zahl folgen und zwar eine 0 oder 1. Ist die zweite Nummer eine 1, dann wird der C64 eine Marke für Bandende hinter Ihr Programm schreiben. Das signalisiert dem Computer, daß nach einem LOAD nur bis zu dieser Stelle gesucht werden soll. Wenn Sie LOAD befehlen und der Computer entdeckt dieses Zeichen bevor das gewünschte Programm gefunden wurde, meldet er einen FILE NOT FOUND ERROR.
    SAVE            speichert das Programm ohne Namen auf Band
    SAVE"HALLO"     speichert das Programm unter dem Namen HALLO
                    auf Band
    SAVE A$         speichert das Programm auf Band mit dem Namen
                    der in A$ festgelegt ist
    SAVE"HALLO",8   speichert das Programm unter dem Namen HALLO
                    auf Diskette
    SAVE"HALLO",1,1 speichert das Programm unter dem Namen HALLO
                    auf Band und setzt dahinter eine Bandende-Marke

    VERIFY
    Durch VERIFY wird der Computer veranlaßt, das Programm in seinem Speicher mit einem Programm auf Band oder Diskette zu vergleichen. Dies stellt sicher daß das Programm bei SAVEkorrekt weggespeichert wurde und währenddessen kein Fehler auf dem Band oder der Diskette auftrat. VERIFY ohne weitere Angabe läßt den C64 mit dem nächsten Programm auf Band vergleichen, unabhängig von dessen Namen.
    VERIFY gefolgt von einem Programmnamen oder einer Stringvariablen sucht dieses Programm und prüft es dann. Zusätzlich kann eine Gerätenummer angegeben werden.
    VERIFY          prüft das nächste Programm auf Kassette
    VERIFY"HALLO"   sucht das Programm HALLO und vergleicht es mit dem
                    Programm im Speicher
    VERIFY"HALLO",8 sucht auf der Diskette und prüft dann

  7. ) Befehle
  8. 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.

  9. ) numerische Funktionen
  10. ABS(X) (absoluter Wert)
    ABS ergibt den absoluten Wert einer Zahl ohne deren Vorzeichen (+ oder -). Die Antwort ist immer positiv oder 0.

    ATN(X) (Arcustangens)
    Ergibt den Winkel (im Bogenmaß), dessen Tangens X ist.

    COS(X) (Cosinus)
    Ergibt den Cosinus des Winkels X. Der Winkel ist im Bogenmaß anzugeben.

    EXP(X)
    Ergibt die X-te Potenz der mathematischen Konstanten e (2.71827183).

    FNxx(X)
    Ergibt das Resultat einer benutzerdefinierten Funktion FNxx, die mit einem DEFFN Statement festgelegt wurde.

    INT(X)
    Ergibt den Vorkommateil von X. Alle Stellen nachdem Dezimalpunkt werden abgeschnitten. Das Ergebnis ist immer kleiner oder gleich X. Das bedeutet, daß negative Zahlen nach dem Betrag größer werden. (INT(-2.1)=-3)

    LOG(X)
    Ergibt den natürlichen Logartihmus von X zur Basis e (siehe EXP(X)). Zur Umwandlung in den Zehnerlogarithmus wird durch LOG(10) dividiert.

    PEEK(X)
    Ergibt den Inhalt der Speicheradresse X, mit X im Bereich 0-65535. Das Ergebnis ist eine ganze Zahl im Bereich 0-255. PEEK wird oft im Zusammenhang mit POKE gebraucht.

    RND(X) (random number, Zufallszahl)
    Ergibt eine Zufallszahl zwischen 0 und 1. Die erste Zufallszahl sollte durch die Formel RND(-TI) erzeugt werden, damit sie bei jedem Programmlauf eine neue Startzahl bekommen. Später sollte X = 0 oder eine positive Zahl sein.
    Ein negativer Parameter X bildet eine neue Startzahl für den Zufallszahlen-Generator. Dieselbe negative Zahl wird immer die selbe Folge von "Zufallszahlen" ergeben, falls diese mit RND(1) gebildet wird. RND(0) liefert stets neue Folgen.
    Eine Zufallszahl zwischen X und Y erhält man mit der Formel:
    N=INT(RND(1)*Y)+X
    wobei X die untere Grenze und Y die obere Grenze des gewünschten Zahlenbereichs ist.

    SGN(X) (Signum, Vorzeichen)
    Mit dieser Funktion ermittelt man das Vorzeichen von X. Das Ergebnis ist 1, wenn X positiv ist, 0, wenn X=0, und -1, wenn X negativ ist.

    SIN(X) (Sinus)
    Ergibt den Sinus des Winkels X. Der Winkel ist im Bogenmaß anzugeben.

    SQR(X) (Quadratwurzel)
    Ergibt die Quadratwurzel von X, für Xgrößer oder gleich 0. Bei negativen Zahlen erhält man die Fehlermeldung ILLEGAL QUANTITY ERROR.

    TAN(X) (Tangens)
    Ergibt den Tangens des Winkels X, mit X im Bogenmaß.

    USR(X)
    Wenn die Funktion USR benutzt wird, springt das Programm in ein Maschinenprogramm, dessen Startadresse in den Speicherstellen 785 und 786 abgelegt ist. Der Parameter X wird an das Maschinenprogramm übergeben, das selbst einen anderen Wert an das BASIC-Programm zurückgibt. Weitere Einzelheiten zu dieser Funktion und zur Programmierung in Maschinensprache finden Sie Sie im C64-Programmierhandbuch.

  11. ) Stringfunktionen
  12. ASC(X$)
    Ergibt den ASCII-Code des ersten Zeichens von X$.

    CHR$(X)
    Dies ist die Umkehrfunktion zu ASC(X$) und ergibt das Zeichen, dessen ASCII-Code X ist.

    LEFT$((X$,X)
    Ergibt einen Teilstring, der die linken X Zeichen von X$ enthält.

    LEN(X$)
    Ergibt die Anzahl Zeichen (einschließlich Leerzeichen und anderer Symbole) in X$.

    MID$(X$,S,X)
    Ergibt einen String, der X Zeichen von X$ enthält, beginnend mit dem S-ten Zeichen.

    RIGHT$(X$,X)
    Ergibt die rechten X Zeichen von X$.

    STR$(X)
    Ergibt einen String, der mit der durch PRINT ausgegebenen Version von X identisch ist.

    VAL(X$)
    Diese Funktion wandelt X$ in eine Zahl um und ist im Wesentlichen die Umkehrfunktion von STR$(X). Derstring wird vom ersten linken Zeichen nach rechts untersucht bis das erste Zeichen gefunden wird, das nicht mehr in ein Zahlenformat paßt. Die so ermittelte Zeichenfolge wird in eine Zahl umgewandelt.
    10 X=VAL("123.456")     X=123.456
    10 X=VAL("12A13B")     X=12
    10 X=VAL("RIU17")      X=0
    10 X=VAL("-1.23.15.67") X=-1.23

  13. ) andere Funktionen
  14. FRE(X)
    Diese Funktion ergibt die Anzahl freier Bytes im Speicher, unabhängig vom Wert von X.

    POS(X)
    Diese Funktion ergibt die Position in der Bildschirmzeile (0-39) an der das nächste PRINT Statement ausgeführt würde. X kann jeden Wert annehmen und wird nicht benutzt.

    SPC(X)
    Diese Funktion wird in PRINT Befehlen benutzt, um X Zeichen zu überspringen.

    TAB(X)
    TAB wird ebenfalls mit PRINT benutzt. Das nächste Zeichen wird in Spalte X gedruckt. (wird vom Drucker wie SPC(X) behandelt)

zur Startseite