. . .   B A S I C O D E   . . .   B A S I C O D E   . . .

. . .   B A S I C O D E   . . .

 . . .   

Leerzeichen werden entfernt, Ausnahme vor GOSUB, GOTO und THEN, sofern davor nicht ":" oder ")" steht.

 Eine  BASICODE-Zeile  darf (einschließlich Zeilennummer und Space) nur sechzig Zeichen enthalten.

 Jedes BASICODE-Programm beginnt in Zeile 1000. A (Byte) legt die Größe des  zu  reser­vierenden Stringraums fest, sollte nicht kleiner als 100 sein.  Zeile 1000 enthält ein "GOTO 20". Dort wird der Rechner initialisiert und ein Rücksprung zur Zeile 1010 veranlaßt.

 In Zeile 1010 beginnt die Abarbeitung des "eigentlichen" BASICODE-Programms.

 Das Programm endet mit "GOTO 950" - die Befehle RUN, END und STOP sind verboten.  Der  Rechner  wird wieder in den normalen BASIC-Zustand zurückversetzt.

 Ab Zeile 30000 stehen Erklärungen zum Programm, ab Zeile 32000 formale Fakten (Autor, Datum, Versionsnummer, verwendeter Rechner...).

     In BASICODE gültige BASIC - Befehle 

ABS     DATA    IF      LOG     PRINT   SGN     THEN    /       >=

AND     DIM     INPUT   MID$    READ    SIN     TO      ^       <>

ASC     EXP     INT     NEXT    REM     SQR     VAL     =

ATN     FOR     LEFT$   NOT     RESTORE STEP    +       <

CHR$    GOSUB   LEN     ON      RETURN  TAB     -       >

COS     GOTO    LET     OR      RIGHT$  TAN     *       <=

 

Einschränkungen:

AND darf nur auf logische Ausdrücke (Vergleiche) bezogen werden, die geklammert werden sollten, Zuweisungen von logischen Ergebnissen an eine Variable sind zu­lässig.

 ASC liefert nicht bei allen Computern in allen Fällen exakt den gleichen Wert, jedoch bei (Groß-)Buchstaben weitgehend erfüllt,

 CHR$ Vorsicht bei Werten < 32 (Steuerzeichen!).

 DEF FN name nur in der einfachen Form mit einer Variablen anwendbar, nicht rekur­siv anwendbar.  

DIM vor Nutzung von Feldern erforderlich, maximal zwei Dimensionen zu lässig, Zählung beginnt beim nullten Element.

 FOR ... TO ... STEP ... NEXT Die Schleife wird mindestens einmal durchlaufen. Ohne STEP zahl ist die Schrittweite 1. Nach NEXT muß die zugehörige Variable stehen. Nur ein NEXT zulässig, 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. IF ... THEN GOSUB.

 GOTO siehe GOSUB, Ausnahme 20 und 950. IF ... THEN zeilennummer.

INPUT nur für eine Variable.  

LOG hat Basis e, LN darf nicht verwendet werden.

 MID$ erfordert drei oder zwei Werte. MID$(A$,5) ist erlaubt.

 NEXT siehe FOR.

 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 GO­SUB 110 zu ersetzen. Nicht durch "?" ersetzbar.

REM nicht durch "'" ersetzbar, kein ":" in REM-Zeile.

 RESTORE nur ohne Zeilennummer.

 TAB TAB(0) nicht erlaubt. Sicherer GOSUB 110.

 VAL nimmt bei nicht rein numerischen Argumenten in verschiedenen Rechnern un­terschiedliche Werte an (vgl. ASC).

  

BASICODE - GOSUB - Routinen

 20 Programmstart, System-Reset, Variable löschen ...
100 Text-Modus einschalten und Bildschirm löschen.
110 Cursor auf die Position HO, VE.
120 Cursor-Position in HO,VE zuröckholen
150 Auffälliges Anzeigen von SR$; rechts und links drei Spaces.
200 Daten einer eventuell gedrückten Taste in IN$ und IN.
210 wie 200, jedoch mit Warten auf Tastendruck.
220 Holen des Zeichens aus Schirmposition HO, VE auf IN.
250 Erzeugen eines kurzen Aufmerksamkeitstones.
260 Zufallsvariable in RV mit 0 <= RV < 1.
270 Ausführen von garbage collection und Speicherplatz in FR.
280 Aus- bzw. Einschalten der STOP/BRK - Taste FR = 0 bzw. 1.
300 SR wird ohne Space in SR$ gewandelt.
310 wie 300, jedoch als Zahl mit CT und CN formatiert.
330 Alle Kleinbuchstaben in SR$ in Großbuchstaben wandeln.
350 Übergabe von SR$ an den Drucker.
360 In neue Zeile mit Drucker (CRLF).
400 Erzeugung eines Tons gemäß SV, SD und SP.
450 Warten von maximal SD * 0,1 s auf einen Tastendruck.
500 Eröffnen eines Files mit dem Namen NF$ gemäß NF.
540 Aus dem File wird ein String in IN$ übergeben.
560 SR$ wird in das File geschrieben.
580 Man schließe den Bestand mit Code NF ab.
600 Graphischen Betrieb und Bildschirm löschen.
620 Setzen eines Punktes in die Position HO, VE mit Farbe CN.
630 Zeichnen einer Linie zum Punkt HO, VE in Farbe CN.
650 SR$ an der Position HO, VE anzeigen (Grafik-Mode).
950 Beenden des Basicode-Mode.

 

Zeilen-Verwendung beim BASICODE

0 -   999     Bascoder (für jeden Computer anders).

1000         Erste Zeile des BASICODE-Programms. Sie muß folgende Form haben: 1000 A=<Wert>:GOTO 20:REM <Programmname>

1010 - 19999  Eigentliches BASICODE-Programm.

20000 - 4999 Subroutinen, welche unerlaubte Befehle verwenden. Sie sollen  möglichst vermieden, zumindest aber in REM-Zeilen genau erklärt werden (z.B. far­bige Bilder, in BASICODE-3 nicht möglich).

25000 - 29999 Eventuell benötigte DATA-Zeilen.

30000 - 31999 REM-Zeilen, z.B. kurze Programmbeschreibung, Literatur

32000 - 32767 REM-Zeilen für den Namen und die Anschrift des Autors, Datum und andere formale Bemerkungen.  

Zeilenlänge einschließlich Zeilennummer und Space maximal 60 Zeichen

 

In BASICODE verbotene Variablen 

1.   Alle Variablen, die mit dem Buchstaben O beginnen.

2.   AS, AT, DI, DI$, DS, DS$, EI, EI$, EL, ER, FN, GO, GR, IF, LN, SQ, SQ$, ST, TI, TI$, TO.

3.   PI, enthält aber nicht den Zahlenwert 3.14159. 

 

Im Bascoder verwendete Variablen mit besonderer Bedeutung

A, CN, CT, FR, HG, HO, IN, IN$, NF, NF$, RV, SD, SP, SR, SR$, SV, VE, VG.