Da noch nicht abzusehen ist, wann das neue Manual fertig ist, hier vorerst ein weiterer Auszug, diesmal zum Thema:


Befehle in Basicode

 

Folgende Befehle dürfen in BasiCode-Programmen verwendet werden:

Bei einigen davon sind jedoch zusätzliche Hinweise zu beachten:
Für die Winkelfunktionen ist das Argument im Bogenmaß anzugeben.
Die logischen Operatoren AND und OR dürfen in BasiCode nicht zur bitweisen Verknüpfung von Zahlen, z.B. A=5 AND 7 verwendet werden.
Bei der Verwendung der Funktionen ASC und CHR$ (der Umkehrfunktion von ASC) ist Vorsicht geboten, da manche Computer den Zeichensatz abweichend vom ASCII codieren (z.B. C64).
Neben den eingebauten Standardfunktionen können auch vom Benutzer definierte Funktionen nach ihrer Definition mit DEF FNname verwendet werden. Für den Funktionsnamen gelten die Festlegungen wie für Variablennamen (also max. zwei Zeichen). Die Definition muß in eine Zeile (60 Zeichen) passen. Sie ist nur in der einfachen Form mit einer Variablen und nicht rekursiv anwendbar. Zeichenkettenfunktionen durch den Benutzer zu definieren, ist in BasiCode-Programmen nicht möglich.
DATA: Bis zum Zeilenende folgen der DATA-Anweisung, durch Komma getrennt, Zahlen oder Zeichenketten. Zeichenketten müssen in Anführungszeichen gesetzt werden. In einer DATA-Zeile dürfen keine weiteren Basic-Anweisungen (auch nicht REM) stehen.
DIM siehe K68.35
FOR ... TO ... STEP ... NEXT: Die Schleife wird mindestens einmal durchlaufen. Ohne STEP zahl ist die Schrittweite 1. Die Schleife darf nur an einer einzigen Stelle verlassen werden. Aus der Schleife darf nicht herausgesprungen werden - vorzeitiges Verlassen durch: Laufparameter = Endwert, Sprung zum NEXT.
GOSUB: Zeilennummer darf keine Variable sein, Zeilennummer muß existieren.
GOTO: siehe GOSUB, Ausnahme 20 und 950.
IF ... THEN GOSUB oder IF ... THEN zeilennummer. ELSE nicht nutzbar
INPUT: nur für eine Variable oder Zeichenkette. Zeichenketten dürfen keine Kommentare und keine Doppelpunkte enthalten. Eine Prompt-Zeichenkette ist nicht zulässig (muß durch vorherige PRINT-Ausgabe erzeugt werden).
LEFT$: Anzahl der zu isolierenden Zeichen darf nicht 0 sein.
LET: kann weggelassen werden.
LOG(argument) gibt den natürlichen Logarithmus zur Basis e (= 2.718...) zurück.

Einzelne BASIC-Dialekte geben über LOG als Wert der Funktion den Logarithmus zur Basis 10. Es wird zwischen LOG und LN unterschieden. Der Bascoder gleicht dies aus.
MID$(A$, N) oder MID$(A$, M, N): Der numerische Ausdruck (M, N) kann einen Wert von 1 ... 255 annehmen; der Wert "0" führt zu einer Fehlermeldung.
NEXT: siehe FOR. Nach NEXT muß die zugehörige Variable stehen, mehr als eine Variable ist nicht zulässig. Für jedes FOR nur ein NEXT zulässig.
NOT: siehe AND
ON: die Variable darf nur die zulässigen Werte annehmen, also von 1 bis zur Anzahl der nach GOTO bzw. GOSUB stehenden Adressen
OR: siehe AND PRINT: Formatierung nur mit ",", ";", und TAB. Empfehlung, "," und TAB durch GOSUB 110 zu ersetzen. Nicht durch "?" ersetzbar.
READ: liest eine oder mehrere Variablen aus den DATA-Zeilen, Variablentyp muß korrekt sein.
REM: nicht durch "'" oder "!" ersetzbar, kein ":" in REM-Zeile.
RESTORE: nur ohne Zeilennummer
RIGHT$: s. LEFT$.
RUN: nur ohne Zeilennummer verwendbar.
TAB: TAB(0) nicht erlaubt. Sicherer GOSUB 110.
VAL: Da die VAL(A$)-Funktion in unterschiedlichen Dialekten unterschiedliche Wirkungen hat, ist sicherzustellen, das A$ rein numerisch ist.

Befehle, die es in nicht allen Basic-Dialekten gibt, sind in BasiCode verboten, einige von ihnen sind jedoch durch Subroutinen des Bascoders ersetzbar.


Weitere Basicbefehle, die spezifisch vorhanden sind und hier nicht aufgeführt wurden, sollten auch nicht genutzt werden,um eine universelle Austauschbarkeit zu gewährleisten.

Die numerischen Funktionen
          - MEM oder
          - FRE(parameter)

zur Angabe des freien Speicherplatzes dürfen in BasiCode nicht verwendet werden. Dazu dient allein die Subroutine 270 mit gleichzeitiger "garbage collection" und die Abfrage des Wertes der Variablen FR.

Die Bildung von Pseudozufallszahlen geschieht in BasiCode-Programmen allein über die Subroutine 260 und die Variable RV. Funktionsaufrufe oder Kommandos wie:
          - RND(parameter),
          - RANDOMIZE, RAND
sind nicht zugelassen.

Die Funktion STR$(A) ist in BasiCode verboten; an ihrer Stelle ist die Subroutine 300 mit den Variablen SR bzw. SR$ aufzurufen.