Stand vom 7. November 1989 Version 1.3
Die Installation von FORTH beschränkt sich im wesentlichen auf die Anpassung der Ein- und Ausgaberoutinen, die Angabe der oberen Speichergrenze für das System und den Adressbereich, den die verwendete RAM-Disk belegt.
Ab ORIGIN (das ist die Leitadresse des FORTh-Systems) sind 100H für die Anpassung der I/O-Routinen und für die User-Area reserviert. Es gilt folgende Aufteilung:
ORIGIN + -------- 00H NOP JMP COLD 04H NOP JMP WARM 08H JMP CI ;warte auf Tastaturbetätigung 0BH JMP CO ;Zeichenausgabe auf Console 0EH JMP CSTS ;True (-1), wenn Taste gedrückt, kein Warten 11h JMP LO ;Zeichenausgabe auf Drucker 14H JMP BYE ;Sprung zum Betriebssytem 17H DW TOP ;oberste vom FORTH nutzbare Adresse 19H DW SOD ;erste Adresse, die die RAM-Disk belegen kann 1BH DW EOD ;letzte Adresse, die die RAM-Disk belegen kann 1DH - 0BFH ;Platz fuer I/O-Anpassungen 0C0H - 0FFH ;fuer USER-Area reserviert
Für nahezu alle Rechner liegt ORIGIN bei 320H. Alle I/O-Routinen verhalten sich FORTH-typisch, d.h. sie erwarten ihre Parameter auf dem Stack bzw. hinterlassen sie dort. Als Datenstack benutzt FORTH den Hardware-Stack des Rechners. Die Routinen müssen bei Bedarf den Instruction-Pointer (BC-Register) und den Returnstack-Pointer (IY-Register) retten und mit einem Sprung nach NEXT (ORIGIN+102H) enden.
Zur Installation müssen die Routinen in den reservierten Bereich eingetragen und die gezeigten Sprungvektoren aktualisiert werden. Die Aufrufe der I/O-Routinen und die Behandlung der RAM-Disk ist im Vokabular I/O untergebracht. Es empfiehlt sich, die betreffenden Worte mit Hilfe des Decompiler's SEE 'name' zu studieren. Die Größe der RAM-Disk wird vom FORTH selbstständig aus den in der Boot-Area enthaltenen Werten errechnet und bei Neustart in das FORTH-Systen übernommen. Eine Änderung von Konstanten im FORTH ist daher nicht nötig. Es sind die Blöcke 1 bis MAX# (Diskgroesse / B/BUF) verfügbar. Ein Zugriff auf nicht vorhandene Blöcke führt zu einer Fehlermeldung.
Die Routinen zum Laden bzw. Abspeichern der RAM-Disk auf Kassette müssen für jeden Rechner speziell entwickelt werden. Selbstverständlich sollten dazu die Routinen benutzt werden, die das jeweilige Rechner-Betriebsprogramm dem Nutzer bietet. Aus Vereinheitlichungsgruenden werden dafür die Befehle PUT und GET empfohlen, die als nicht initialisierte Vektoren schon im Wörterbuch enthalten sind. Die entsprechenden Routinen sollten ins Vokabular I/O gelegt werden. Für die installiert vertriebenen FORTh-83-Systeme der FG FORTH ist das bereits geschehen bzw. liegen FORTH-Programme dafür vor!
Danach ist der Kern mit der Sequenz:
MARK EMPTY HERE FENCE !
zu versiegeln.
Die Flexibilität des FORTH-Systems erlaubt es, den spezifischen Nutzerwünschen angepasste Versionen zu erstellen. Man sollte aber nur die Grundversion weitergeben, eventuell mit entsprechenden Zusatzquelltexten (Screens), da wir als FG FORTH nur für diese Version die Betreuung übernehmen können.
Als Literatur zu FORTH-83 kann bis auf weiteres nur R. Zech: „Forth 83“ (Franzis-Verlag) empfohlen werden. Das von der FG FORTH vertriebene System ist abwärtskompatibel zu dem im vorgenannten Buch beschriebenen. Zum Erlernen von Forth eignet sich der Forth-Kurs in der Zeitschrift „Mikroprozessortechnik“. Vertiefende Studien erlaubt die Übersetzung von G.-U. Vack: „Der Standard Forth 83“, herausgegeben von der KdT, BVo Suhl. Vom gleichen Autor ist ein weiteres Buch zu Forth 83 angekündigt. Ein Glossar zum FORTH-83 der Fachgruppe FORTH ist als Disketten- bzw. Kassetten-Files (Z1013) bei der Fachgruppe erhältlich. Es ist geplant, dieses Forth-System auch für den Bildungscomputer A 5105 zu vertreiben. Damit in Zusammenhang wird das Institut für Film, Bild und Ton eine Broschüre herausgeben, in der das Glossar ebenfalls enthalten ist.
Michael Balig, Dr. Thomas Beierlein
Fachgruppe FORTH im Kulturbund der DDR
Die zum Vertrieb kommende Version 1, angepaßt von Andreas Driesel, ist ohne Änderungen nur mit dem Betriebssystem A.2 von Robotron und dem installierten Sprungverteiler ab 0FFFH lauffähig. Dazu liegt im Bereich von 200H bis 31FH die Verzögerungsschleife für die INKEY-Funktion (in FORTH-83: KEY? ). Sie ist über RST 18 eingebunden. Damit darf dieser Restart nicht uminitialisiert werden, sonst ist mit einem Systemabsturz zu rechnen.
Soll das Forth-System auf andere Betriebsbedingungen angepaßt werden, ist folgendermaßen vorzugehen: