TSB

Aus C64-Wiki
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 Icon Port1.pngIcon Lightpen.png Icon Port1.pngIcon paddle.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 (aus 64'er 5/88)

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 und mit Hilfe anderer Methoden war es möglich, TSB gegenüber dem Original mehr als 40 zusätzliche, komplett neue Befehle zu spendieren. Mehr als 50 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.

Im Jahr 2023 wurde dann der Code von TSB von Grund auf neu geordnet, um damit die im Laufe der Jahre entstandenen vielen "Rucksäcke" (Code-Einfügungen an Stellen, die dafür gar nicht gedacht waren) loszuwerden und den Code insgesamt zu straffen. Durch diese Maßnahme gewann TSB rund 500 Bytes an Platz für Neues. Durch die Neuordnung war es naheliegend, dies auch im Namen von TSB abzubilden. Wenn man von TSB ab 2023 spricht, verwendet man üblicherweise den Namen TSBneo (ab v2.31113). Im Versionsabfragebefehl RETRACE steht bei TSBneo das Release-Jahr 2023 ("ad23").

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 (siehe TSB-Befehl INST, wonach die auch bei JiffyDOS verwendeten Abkürzungen zur Verfügung stehen), 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).

Seit der TSB-Version 2.30126 gehört zu TSB unter dem Namen "TSB.MON" auch ein Maschinensprache-Monitor. Es handelt sich dabei um eine an TSB angepasste Version des bekannten SMON aus dem 64'er Magazin.

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 BCKGNDS CALL CENTER CHECK CLS
COLD COLOR COPY CSET D! D!PEEK D!POKE DIR
DISK DISPLAY DIV DO .. DONE DO NULL DRAW TO DUMP DUP
ELSE ERROR EXEC FETCH FIND GRAPHICS INSERT INST
JOY KEY KEYGET LIN MAP MEMCLR MEMCONT MEMDEF
MEMLEN MEMLOAD MEMOR MEMPEEK MEMPOS MEMREAD MEMRESTORE MEMSAVE
MERGE MMOB MOBCOL MOB ON/OFF MOB SET MOD MOVE MULTI
NO ERROR NRM ON ERROR ON KEY OPTION OUT PAGE PAINT
PAUSE PLACE RENUMBER RESUME RETRACE RLOCMOB SCRLD SCRLD DEF
SCRLD RESTORE SCRSV SCRSV DEF SCRSV RESTORE SOUND TEXT TRACE USE
WAVE X!

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",USE,0,adresse.

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. Unter TSB gelten also auch alle folgenden Befehle:

Bewertung[Bearbeiten | Quelltext bearbeiten]

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

Siehe auch[Bearbeiten | Quelltext bearbeiten]

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). Außerdem gibt es dort eine überarbeitete PDF-Version aller Wiki-Einträge zu Simons' Basic und TSB ("TSB_Handbuch.pdf", rund 2 MB).
Dies ist so etwas wie ein ROM-Listing von TSB, an vielen Stellen ausführlich kommentiert.
mit aktuellen Informationen über die Weiterentwicklung.
  • TSB Seite vom Herausgeber
Beschreibung, Tipps und Tricks mit Beispielprogrammen, Update-History, Anwendungen