TSB

Aus C64-Wiki
(Weitergeleitet von Tuned Simons’ Basic)
Zur Navigation springenZur Suche springen
TSB
Die Oberfläche (Beispielbild)
Entwickler Arndt Dettke, David Simons
Verleger Arndt Dettke
Release 1986
Lizenz MIT Lizenz
Plattform(en) C64
Genre Programmiersprache
Steuerung Icon tastatur.png Icon maus.png Icon joystick.png
Medien Icon cartridge.png Icon disk525.png
Sprache(n) Sprache:englisch
Information Erweiterung von Simons' Basic

Beschreibung[Bearbeiten | Quelltext bearbeiten]

Demo mit geändertem Zeichensatz

TSB“ ist ein Akronym zu „Tuned Simons' Basic“. Es handelt sich dabei um eine „Erweiterung einer Erweiterung“, d.h. die bekannte Basic-Erweiterung „Simons' Basic“ ist durch TSB verbessert und erweitert worden. Entgegen den Angaben im Originalhandbuch von Simons’ Basic (und aller weiteren Literatur, die offenbar nur dort abgeschrieben hat), ist eine stattliche Anzahl von Befehlen nicht oder nicht vollständig funktionstüchtig. Manche Befehle sind sogar komplett falsch beschrieben (z.B. der Befehl OUT). Wegen all dieser Fehler setzte sich der Programmierer Arndt Dettke daran, Simons' Basic völlig neu zu schreiben und stellte es 1986 fertig.

Durch eine Eigenheit des Simons’ Basic können die Schlüsselwörter, die für die Basic-Funktionen reserviert sind, auch als normale Befehlswörter aktiviert werden (und umgekehrt), wovon TSB reichlich Gebrauch macht. Auf diese Weise war es möglich, TSB gegenüber dem Original 23 zusätzliche, komplett neue Befehle zu spendieren. Weitere 35 Befehle/Funktionen wurden mit zusätzlichen, neuen Eigenschaften ausgestattet oder so überarbeitet, dass die in ihnen enthaltenen Fehler ausgemerzt sind.

Schließlich und endlich wurden auch die wichtigen Systemroutinen einer gründlichen Revision und Anpassung unterzogen, so dass die Interpreterschleife, die Eingabewarteschleife, die Routine zur Umwandlung von Schlüsselwörtern in Tokens, die Routine zur Auswertung eines arithmetischen Ausdrucks, die LIST-Routine (siehe auch DELAY), die Befehle LOAD und SAVE und der BASIC-Warmstart nicht mehr mit den entsprechenden Routinen in Simons’ Basic vergleichbar sind. So ist z.B. das Anhängen einer Laufwerksnummer bei den zugehörigen Befehlen in TSB überflüssig. Die Befehle, die einen eigenen Stack verwalten (EXEC, LOOP und REPEAT) leisten in TSB wirklich das, was in Simons’ Basic nur versprochen wurde, nämlich jeweils 10 Verschachtelungen zu verkraften, ohne in die Knie zu gehen.

Grafikdemo

Alle TSB-Befehle können bei der Eingabe abgekürzt werden (z.B. "RE" Shift +"N" für RENUMBER), allerdings haben TSB-Befehle dabei Vorrang vor den BASIC-V2-Befehlen. "L" Shift +"O" kürzt in TSB den Befehl LOOP ab (und nicht mehr wie sonst LOAD). Anders als in Simons' Basic können mehrere Aufrufe von Prozeduren in einer einzigen BASIC-Zeile stehen. Außerdem kann das Schlüsselwort EXEC (ähnlich wie LET) beim Eingeben des Prozeduraufrufs weggelassen werden, so dass BASIC-Zeilen wie diese möglich sind: 100 vorne: mitte: hinten: END oder 100 IF NOT hindernis THEN vorwaerts. (Die Prozedurnamen dürfen BASIC-Schlüsselwörter enthalten wie hier INT und OR, allerdings nicht an erster Position.) Das heißt, dass bei entsprechender Prozedurnamensvergabe fast natürliche Sprache zum Programmieren verwendet werden kann (siehe dazu das zweite Beispiel zu DUP oder auch das zweite Beispiel zu MOB SET).

Zu den Features von TSB gehört es auch, dass es per BASIC-Befehl zwei weitere Ergänzungen einbinden kann. Dies sind das DOS Wedge 5.1 (das danach die Jiffy-DOS-Abkürzungen zur Verfügung stellt) und die Hochgeschwindigkeits-Grafikerweiterung HSG aus dem 64'er-Sonderheft 6/86) mit neuen, geschwindigkeitsoptimierten Grafikbefehlen, vor allem für das Zeichnen von Kreisen (siehe TSB-Befehl GRAPHICS).

Im Unterschied zu allen anderen C64-Basics startet TSB im Großschrift-/Kleinschrift-Textmodus.

Liste der zusätzlichen bzw. geänderten Befehle[Bearbeiten | Quelltext bearbeiten]

In der folgenden Tabelle sind Befehlsworte, die fett gedruckt sind, komplett neu geschriebene Befehle, die andere Funktionen ausführen als die Original-Simons'-Basic-Befehle. Die übrigen wurden um Parameter erweitert oder von ihren internen Fehlern befreit, so dass sie nun erst ihre Funktion wirklich erfüllen.

%% $$ AT CALL CENTRE CHECK COLD COLOUR
CSET D! DIR DISK DISPLAY DO .. DONE DO NULL DRAW TO
DUMP DUP ELSE ERROR EXEC FETCH GRAPHICS INSERT
INST JOY KEY LIN MEMLOAD MEMREAD MEMSAVE MERGE
MOD MOVE MULTI NO ERROR NRM ON ERROR ON KEY OUT
PAGE PAINT PAUSE PLACE RENUMBER RESUME RETRACE SCRLD
SCRSV TEXT TRACE USE

Der LOAD-Befehl wurde in TSB so erweitert, dass er auch an vorgegebene absolute Adressen laden kann (wie BLOAD in BASIC 7.0). Dazu muss, anders als in BASIC V2, die Sekundäradresse 0 angegeben werden. Ein Aufruf könnte so aussehen: LOAD "dateiname",0,0,adresse. Die Geräteadresse ist unter TSB ja unerheblich, deshalb kann sie - wie hier - auch 0 lauten, womit sich die ungewöhnliche Sekundäradresse vielleicht leichter merken lässt.

Die folgende Navigationsleiste gibt einen alphabetisch geordneten TSB-Befehlsüberblick:

Alle (nicht schon in der Liste oben erfassten) Befehle von Simons' Basic gelten auch unter TSB. Eventuelle kleinere Unterschiede zwischen dem Simons'-Basic-Befehl und dem TSB-Pendant werden dort beschrieben.

Bewertung[Bearbeiten | Quelltext bearbeiten]

Bewertung der C64-Wiki-Benutzer (10=die beste Note):
6.89 Punkte bei 9 Stimmen (Rang 454).
Zur Stimmabgabe musst Du angemeldet sein.

Weblinks[Bearbeiten | Quelltext bearbeiten]

Das D64-Image ist rund 99 KByte groß und enthält die BASIC-Datei "README.RUN", die genauere Informationen zu den obigen Befehlen gibt. Außerdem befindet sich eine ganze Reihe Beispielprogramme darauf.
TSB steht dort auch als Cartridge-Datei zur Verfügung (65 KByte).
Dies ist so etwas wie ein ROM-Listing von TSB, an vielen Stellen ausführlich kommentiert.

Siehe auch: Simons' Basic