Forth-wärts mit M&T-Forth 64
Inzwischen gibt es fast schon so viele Forth-Versionen für den Commodore 64 wie Basic-Erweiterungen. Gerade neu auf dem Markt ist eine Version, die sich strikt an den FIG-Standard hält und damit völlige Software-Kompatibilität verspricht.
Forth hat in der letzten Zeit einen enormen Bekanntheitsgrad erreicht. Was vor einem Jahr noch ein Geheimtip unter Insidern war, liegt jetzt von den vielen Herstellern in den verschiedensten Ausführungen vor. Das grundlegende Konzept der Programmiersprache Forth ist von uns schon in früheren Ausgaben erläutert worden, daher seien an dieser Stelle nur noch einmal die wichtigsten Unterschiede zu Basic stichwortartig angesprochen:
Forth ist eine sehr maschinennahe Sprache, deren grundlegendes Prinzip der Stack ist. Alle Berechnungen werden grundsätzlich in der Weise ausgeführt, daß zunächst die Operanden auf den Rechenstack gebracht werden und anschließend erst die gewünschte Operation ausgeführt wird (ähnlich wie bei Taschenrechnern mit der »umgekehrten polnischen Notation« UPN). Eine Addition schreibt sich damit so:
5 7 +
Programmierung in Forth besteht darin, neue Worte zu definieren, die bestimmte Funktionen ausführen. Beispiel:
ADD1 1 +
Eine Wortdefinition beginnt mit einem Doppelpunkt und endet mit einem Semikolon. Hinter dem Doppelpunkt folgt der Name des neuen Wortes, im Beispiel also »ADD1«. Anschließend folgen die Befehle (Worte) die beim Aufruf von ADD1 ausgeführt werden sollen. ADD1 schiebt also die Zahl Eins auf den Stack und führt anschließend eine Addition durch. Im Endeffekt wird also der vor dem Aufruf von ADD1 auf dem Stack befindliche Zahlenwert um eins erhöht. In analoger Weise kann man ganze Programmsysteme aus immer leistungsfähigeren Forth-Worten aufbauen. Forth arbeitet ausschließlich mit Integer-Zahlen. Das führt im Zusammenhang mit der Compilation aller Eingaben zu sehr effizienten Programmen.
Das neueste Kind auf dem Forth-Markt ist eine Version der Markt & Technik Verlags AG. M&T-Forth 64 hält sich, soviel sei hier schon gesagt, strikt an den Semi-Standard der Forth-Interest-Group (FIG). Natürlich finden sich hier sehr viele Befehle, die auf den C 64 zugeschnitten worden sind. Insgesamt umfaßt das Grundvokabular von M&T-Forth 64 rund 280 Worte. Dazu kommen dann einzelne auf der Programmdiskette mitgelieferte Programme, die ja bei Forth nichts anderes als Befehlserweiterungen sind.
M&T-Forth 64 arbeitet wahlweise mit Kassette und Diskette zusammen. Das Prinzip des virtuellen Speichers, das heißt, daß sich alle »Screens« (Textabschnitte) auf der Diskette befinden, wurde hier aus Geschwindigkeitsgründen nicht angewandt.
24-KByte-RAM-Floppy
M&T-Forth 64 simuliert vielmehr eine RAM-Disk, die 40 Screens von jeweils 16 Zeilen à 38 Zeichen enthält. Diese RAM-Disk kann jederzeit auch teilweise auf Kassette oder der echten Diskette gesichert werden. Ebenso sind schon compilierte Spracherweiterungen lad- und speicherbar. Bei Diskettenbetrieb lassen sich auch Directories listen oder der Fehlerkanal lesen und schreiben. Da außerdem Befehle wie OPEN und CLOSE im Sprachkern eingebaut wurden, kann auch eine Druckerausgabe recht einfach erfolgen.
Alles was nicht in den Sprachkern von Forth gehört, wurde konsequent auf die Programmdiskette ausgelagert. Dazu gehören der Forth-Assembler, der Zeileneditor sowie Grafik- und Sound-Befehlserweiterungen. Diese werden ja nicht ständig benötigt, und würden sonst immer nur Platz im Computer wegnehmen. Das Nachladen des Editors mag am Anfang etwas umständlich wirken, hat dann aber den Vorteil, daß er vom Benutzer jederzeit erweitert oder völlig umgebaut werden kann, ohne den Sprachkern verunstalten zu müssen.
Daß Forth recht maschinennah und somit schnell ist, ist allgemein bekannt. Trotzdem enthalten viele gute Forth-Systeme Schnittstellen zur Maschinensprache und sogar einen Assembler. Ebenso verhält es sich bei M&T-Forth 64. Der mitgelieferte Assembler hat den Vorteil, daß in Assembler strukturiert programmiert werden kann. Zeitkritische Aufgaben können somit elegant und übersichtlich realisiert werden. Zusätzlich zum Assembler wird auch ein Forth-Monitor mitgeliefert. Dieser Mini-Monitor kann es zwar nicht mit dem SMON aufnehmen, leistet aber sehr gute Dienste, wenn man unter Forth schnell mal eine Möglichkeit braucht, »direkt an die Maschine« zu gehen.
Integrierter Assembler
Der mitgelieferte Editor ist dagegen recht spartanisch. Es ist ein einfacher Standard-Zeileneditor, wie ihn fast jede Forth-Version enthält. Ein komfortabler Full-Screen-Editor wäre zwar wünschenswert, doch läßt sich mit dem Zeileneditor auch recht gut arbeiten, insbesondere, da Forth ja keine Sprache ist, bei der man drauflosprogrammieren kann.
Sehr interessant sind die mitgelieferten Grafik- und Sound-Befehle für Forth. Da ist zum Beispiel ein einfacher Spriteeditor, (in Forth gerade 11 Zeilen lang) vorhanden.
Der Grundbefehlssatz wurde absichtlich klein gehalten, damit der Endbenutzer sich die zusätzlichen Befehle an seine individuelle Anwendung anpassen kann, ein in Forth ja ganz natürlicher Vorgang.
Eine Reihe von mitgelieferten zusätzlichen Beispielprogrammen, darunter das Nicht-Standard-Wort CASES, das trotzdem gerne verwendet wird, runden das Gesamtbild des M&T-Forth 64 ab.
Fazit
Insgesamt gesehen liegt mit M&T-Forth 64 eine Forth-Version vor, die zwar nicht durch enorme Befehlsvielfalt glänzt, wie andere Versionen dieser Sprache, dafür aber eine umso solidere Basis für Eigenentwicklungen ist. Da der FIG-Standard strikt eingehalten wird, dürfte die Anpassung von schon geschriebenen Forth-Programmen überhaupt keine Probleme aufwerfen. Alles in allem also eine Forth-Version, mit der Anfänger wie Fortgeschrittene gleichermaßen gut bedient sind.
(B. Schneider/ev)Info: Happy Software, Markt & Technik Verlag AG, Hans-Pinsel-Str. 2, 8013 Haar bei München. Preis 98,- Mark.