Nascom Journal |
September 1981 · Ausgabe 9 |
Im letzten Heft
wurde der prinzipielle Aufbau einer
Threaded-Code-Sprache beschrieben. In diesem Heft folgt nun das
Assembler-Listing einer 1. Version, die nach der Anleitung von Richard
Fritzson
(„Write Your Own FORTH Interpreter“,
Microcomputing, Februar 81;
„Write Your Own Pseudo-FORTH Compiler“,
ebenda, März 81)
geschrieben wurde. Wie der Titel des zweiten Aufsatzes schon
sagt, hat sich „der Sohn vom Fritz“ nicht streng an die
Terminologie des Standard-FORTH gehalten, falls es so etwas im strengen
Sinne überhaupt gibt. Erst nach der Fertigstellung dieser Version kam
mir ein Verzeichnis des Standard-FORTH der FORTH Interest Group in die
Hände – zu spät, um noch Anpassungen vorzunehmen. Programmaufbau,
Threaded-Code-Routinen und Konstruktion des „Dictionary“
habe ich von Fritzson übernommen. Die Maschinencode-Routinen wurden
vom
8080-Assembler-Code
in
Z-80-Code
umgeschrieben und teilweise mit
den effektiveren Z-80-Befehlen verbessert. Die Hauptschwächen der
Vorlage (nur positive Zahlen, keine Überlaufkontrolle bei den
mathematischen Funktionen, keine Syntax-Kontrolle) wurden noch nicht
verbessert. Ich habe jedoch eine Reihe von logischmathematischen
Operationen hinzugefügt und eine Software-Schnittstelle zum
Betriebs-System, die den Einbau fast aller Unterprogramme des Monitors in
FORTH-Programme ermöglicht. Diese Routine ist allerdings spezifisch auf
NAS-SYS zugeschnitten und muß von T2/
Da ich bei meinem Nascom nur 5 KB Speicher für den Quelltext zur Verfügung habe, mußte ich das Programm in Blöcken assemblieren. Deshalb wurden alle nicht lokalen Marken durch EQU-Definitionen im Block 0 ersetzt. Damit das Programm trotzdem leicht zu ändern ist, sind die Adressen nicht absolut sondern relativ definiert, jeweils durch die Länge der vorangehenden Routine. Aus dem gleichen Grund habe ich auf alle Kommentare verzichtet, nur der Name der Routine wird jeweils als Kommentar angehängt. Es folgt darum unten eine Kurzbeschreibung aller Routinen, die von FORTH aus aufgerufen werden können. Die nicht im „Dictionary“ enthaltenen Unterprogramme werden im nächsten Heft erläutert. In der Beschreibung bedeutet „T“ den obersten Wert auf dem Stack, „T−1“ den zweitobersten etc. „X“ steht für das brit. Pfundzeichen, § für das Dollarzeichen.
An das Assemblerlisting schließt sich noch eine Demonstration des Programms an. Mit der U-Option lief die Schreibmaschine mit, als das Programm aufgerufen wurde. Alle Eingaben und alle Antworten des Interpreters bis zum Rücksprung ins Betriebssystem wurden so dokumentiert. Ich hoffe, daß dies eine Hilfe bei der Inbetriebnahme des Programms darstellt.
| Seite 10 von 28 |
|---|