GV-Forth V1.0 - Professionell und preiswert
Für den C 64 werden bereits von verschiedenen Softwarehäusern Forth-Compiler angeboten. GV-Forth ist nicht nur in punkto Leistungsfähigkeit eine interessante Alternative.
Der ständig wachsenden Gemeinde der Forth-Anhänger wird mit immer neuen Implementationen dieser eleganten Programmiersprache Rechnung getragen. Die hier nun vorliegende Version bietet, verglichen mit anderen, ein gutes Preis-Leistungs-Verhältnis. Zum Lieferumfang gehören die Programmdiskette, eine Datendiskette mit Programmen und Demos sowie ein recht umfangreiches deutsches Handbuch. Das Kürzel »GV« steht nicht etwa für einen neuen Standard, sondern für Geßwein/Voges, die beiden Urheber, über die GV-Forth direkt erhältlich ist.
GV-Forth bietet einen überdurchschnittlich umfangreichen Wortschatz von über 400 Befehlen, üblich sind etwa 300. Es wäre sicherlich verkehrt, wollte man die Anzahl der Worte, die man je bezahlter Mark erhält, für die Kaufentscheidung heranziehen. GV-Forth kann jedoch außer mit Quantität auch mit einem leistungsfähigen und auf die meisten Möglichkeiten des C 64 abgestimmten Befehlssatz aufwarten.
Der Befehlsumfang
Der Basis-Sprachumfang entspricht dem FIG-Forth-Standard, ist kompatibel zum Wortschatz des Buches Programmieren in Forth von Leo Brodie und enthält darüber hinaus die wichtigsten Befehle zur Grafik- und Musikprogrammierung sowie zur Sprite-Animation und Interrupttechnik. Damit ist einerseits im Forth-Kern die Kompatibilität zu anderen Versionen gewährleistet. Weiterhin werden die hervorstechenden Eigenschaften des C 64 statt durch unübersichtliche PEEKs und POKEs durch die nachvollziehbare logische Forth-Syntax erreicht.
Beginnen wir mit der Grafik: Hier fällt vor allem die teilweise extrem hohe Geschwindigkeit der Zeichenroutinen auf. Ferner ist es erlaubt, daß die Zeichen-Parameter den darstellbaren Koordinatenbereich des Bildschirms im Rahmen der 16-Bit-Zahlen übersteigen. Dies vereinfacht einige Grafikprogramme wesentlich, da sich Clipping-Routinen (clipping = beschneiden) erübrigen, kann aber bei extremer Bereichsübertretung zu erheblichen Zeitverlusten führen. Neben den Primitivs zur Manipulation der VIC-Register (Grafik ein/aus, Farben setzen und so weiter) lassen die Befehle für die Grafikprogrammierung kaum Wünsche offen. So lassen sich Punkte, Linien und Vektoren jeweils setzen, punktieren, löschen und invertieren. Der zuletzt gesetzte Punkt wird jeweils in einer 32-Bit-Variablen gespeichert und macht eine Reihe vereinfachter Befehle möglich, zum Beispiel für Polygonzüge oder, um den nicht vorhandenen Box-Befehl zu definieren. Selbstverständlich vorhanden sind Worte zum Zeichnen und Löschen von Ellipsen und Kreisbögen. Der Paint-Befehl füllt Figuren aus, versagt aber bei allzu komplexen Gebilden, da gemäß den Forth-Eigenarten ein Stacküberlauf eintritt. Sehr bequem ist auch das Mischen von Grafik und Text sowie das Erstellen eines eigenen Zeichengenerators.
Grafik und Sound
Letzteres ist sehr sinnvoll, da der vom System verwendete Zeichensatz (Tech-Script) nicht jedermanns Geschmack trifft. Zur Spritebehandlung stehen etliche Befehle zur Verfügung, mit denen insgesamt 32 Sprites zum Beispiel animiert und coloriert werden können.
Leider wird die Erstellung dieser Grafikobjekte in keiner Weise unterstützt. Mit den Befehlen zur Tonerzeugung hat man den SID-Baustein fest im Griff. Hier wurden alle Einstellungsmöglichkeiten berücksichtigt. Der eine oder andere mag vielleicht eine »PLAY«-Routine vermissen, gemäß dem offenen Forth-Konzept wurde hier jedoch auf starre Strukturen verzichtet und schließlich sind derartige Routinen kinderleicht in Eigenarbeit zu kreieren.
Die Hardware-Steuerung
Als Massenspeicher verwendet GV-Forth nur das Diskettenlaufwerk. Hier, wie auch in vielen anderen Punkten, beweist das Programm erfreulicherweise Konsequenz: Da die virtuelle Speicherverwaltung eine der elementaren Forth-Eigenschaften ist, wurde auf die wenig sinnvolle Kassettenspeicherung verzichtet. Für die virtuelle Verwaltung des Laufwerks stehen 8 Blöcke mit jeweils 260 Bytes als Puffer zur Verfügung. Auf diesen kann durch eine Reihe von Befehlen direkt zugegriffen werden.
Die Diskettenzugriffe wurden allgemein beschleunigt und sind verglichen mit anderen Versionen um ein mehrfaches schneller. Ebenso einfach ist die Ansteuerung des Druckers. Daß dagegen »Peripheriegeräte« wie Joystick, Lightpen und Paddle nicht berücksichtigt wurden, verwundert beim vorliegenden Forth-Konzept nicht weiter, da es sich dabei nur um harmlose Registerabfragen handelt.
GV-Forth bietet eine ganze Reihe recht ungewöhnlicher aber nützlicher Befehle an. Hier sei nur ein kleiner Ausschnitt genannt: Mit ARRAY läßt sich der Speicherplatz für ein eindimensionales Feld reservieren. ROLL rotiert den Stack mit beliebiger Tiefe. Mit !TIME wird eine interne Uhr gestartet. BYE löst einen Basic-Warmstart aus. Die Benutzung von Kleinbuchstaben ist ebenfalls mit <SHIFT + Buchstabe> möglich. Ferner sind einige Sonderbefehle zur Stringbehandlung vorhanden und sämtliche Stackoperationen liegen auch als 32-Bit-Varianten vor.
Assembler und Editor
Aus Platzgründen wurden Assembler und Editor sowie ein Recompiler auf die Demodiskette ausgelagert. Diese lassen sich nach Bedarf in Forth einbinden und können dann als Worte aktiviert werden. Der Assembler entspricht dem Standardverfahren für den 6502-Prozessor, der von W.F. Ragsdale in dem Magazin »Forth Dimensions No. 8« beschrieben wird. Selbstverständlich kennt der Assembler alle 6502-Mnemonics und ermöglicht darüber hinaus strukturierte Programmierung mit den entsprechenden Sprachelementen aus Forth. Die UPN-Notation bleibt erhalten. Macros sind leider nicht möglich, eine Option auf die bei Forth allerdings gut verzichtet werden kann, da der Umweg über in Assembler neudefinierte Primitivs fast genauso effektiv ist.
Der Editor entspricht ebenfalls dem Forth-Standard und ist streng zeilenorientiert. Sicherlich wird damit dem Prinzip des Input-Streams durch den Benutzer besser entsprochen. Wem jedoch der Editor zu wenig Komfort bietet, kann diesen ja sehr leicht auf der Demodiskette ändern. Das gleiche gilt natürlich auch für den Assembler und alle anderen Programme auf dieser Diskette.
Die Demodiskette
Auf der Demo- und Arbeitsdiskette sind außer den bereits angesprochenen Utilities einige Grafikprogramme enthalten, die die Leistungsfähigkeit und die Geschwindigkeit von GV-Forth eindrucksvoll demonstrieren. So wird nicht nur das Spektrum aller vorhandenen Grafikbefehle abgedeckt, sondern gleichzeitig interessante Anwendungen demonstriert wie zum Beispiel Lissajous-Figuren, binäre Bäume und mathematische Kurven. Als Programmierhilfen sind ein Recompiler und ein Tracer vorhanden. Mit dem Recompiler lassen sich High-Level-Definitionen, also Worte, die ihrerseits in Forth programmiert wurden, bis zu den Ursprüngen zurückverfolgen. Mit dem Tracer lassen sich Primitivs und High-Levels bei der Abarbeitung Schritt für Schritt analysieren. Die Vorteile dieser Funktionen bei der Programmerstellung und der Fehlersuche sind ja ebenso bekannt wie beliebt. In diesem Zusammenhang wäre als Utility sicherlich noch ein Programm wünschenswert gewesen, das selbsterstellte Programme mitsamt den Run-Time-Routinen so compiliert, daß sie direkt von Basic aus gestartet werden kann. Sonst wird nämlich der Geschwindigkeitsvorteil von Forth durch den langwierigen Systemstart fragwürdig. Die Autoren bieten jedoch als besonderen Service einen »Programmzuschnitt nach Maß« an. Wer die eine oder andere Funktion bei GV-Forth vermißt, kann sich ebenfalls an die untenstehende Adresse wenden.
Das Handbuch
Man muß sich schon gut mit dem 6502-Assembler, seinem C 64 und mit Forth auskennen, um dieses Handbuch lesen zu können. Die Autoren haben ziemlich tief in die Terminologien-Kiste gegriffen und sich gar nicht erst die Mühe gemacht, Zusammenhänge auch für Anfänger klar verständlich darzustellen. Dafür wird der Profi Informationen und Internes zum Forth-Konzept in ausreichender Fülle finden. Sämtliche Worte sowie Assembler und Editor werden für Spezialisten erschöpfend behandelt. Bemängelt werden muß die fehlende Übersichtlichkeit (zum Beispiel wird das Vokabular ohne funktionelle Reihenfolge präsentiert) und die fehlende Dokumentation zur Demo-Diskette. Bei den Demos hilft da nur die Screens zu listen und nach Wort-Definitionen zu suchen.
Bilanz
Der wichtigste Gesamteindruck: Hier liegt für 99 Mark eine Forth-Version mit einem sehr guten Preis-Leistungsverhältnis vor. Beim Befehlsumfang wurde »geklotzt und nicht gekleckert«, das heißt, es wurde nicht versucht, die Gesamtbilanz durch möglichst viele aber unwichtige Worte zu frisieren, sondern man hat sich auf das Wesentliche konzentriert. Positiv ist auch, daß es möglich ist, Sicherheitskopien vom Original anzufertigen. Auf den Kopierschutz wurde zugunsten einer Seriennummer verzichtet. Die besprochenen Mängel erscheinen im Gesamtbild als Unzulänglichkeiten. So entstand während der Testphase ein »Setup-Screen«, mit dem gleich nach dem Programmstart kleinere Mängel ausgemerzt wurden. Ein solches Screen kann sich natürlich jeder individuell und ohne Probleme selbst zusammenstellen. Haar in der Suppe bleibt das Handbuch. Besonders zu empfehlen ist GV-Forth deshalb gemeinsam mit dem oben genannten Buch von Leo Brodie oder ähnlicher Literatur.
(Matthias Rosin/nj)Info: GV-Forth, Preis: 99 Mark, Jürgen Geßwein/Stefan Voges, Kopernikusstr. 67, 8900 Augsburg Tel. 0821/82993