Installationshinweise fuer die FORTH83-Version der Arbeitsgemeinschaft FORTH Die Installation des FORTH beschraenkt sich im wesentlichen auf die Anpassung der Ein- und Ausgaberoutinen, die Angabe der oberen Speichergrenze fuer das System und den Adressbereich, den die verwendete RAM-Disk belegt. Ab ORIGIN sind 100H fuer die Anpassung der I/O-Routinen und fuer das User-Area reserviert. Es gilt folgende Aufteilung: ORIGIN+ 00H NOP JMP COLD 04H NOP JMP WARM 08H JMP CI ;warte auf Tastaturbetaetigung 0BH JMP CO ;Zeichenausgabe auf Console 0EH JMP CSTS ;True (-1), wenn Taste gedrueckt, 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 Alle I/O-Routinen verhalten sich FORTH-typisch, d.h. sie erwarten ihre Parameter auf dem Stack bzw. hinterlassen sie dort. Sie muessen 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 muessen 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 Groesse der RAM-Disk wird vom FORTH selbststaendig aus dem im Boot-Area enthaltenen Werten errechnet. Eine Aenderung von Konstanten im FORTH ist nach einer Aenderung der Boot-Area unnoetig. Es sind die Bloecke 1 bis MAX# (Diskgroesse / B/BUF) verfuegbar. Ein Zugriff auf nicht vorhandene Bloecke fuehrt zu einer Fehlermeldung. Die Routinen zum Laden bzw. Abspeichern der RAM-Disk auf Kassette muessen selbst entwickelt werden. Selbstverstaendlich sollten dazu die Routinen benutzt werden, die das jeweilige Rechner-Betriebsprogramm dem Nutzer bietet. Aus Vereinheitlichungsgruenden werden dafuer die Befehle PUT und GET empfohlen, die als nicht initialisierte Vektoren schon im Woerterbuch enthalten sind. Die entsprechenden Routinen sollten ins Vokabular I/O gelegt werden. Danach ist der der Kern mit der Sequenz: MARK EMPTY HERE FENCE ! zu versiegeln. Zweckmaessiger Weise sollte es zu jedem Rechner ein nachladbares Zusatzpaket geben, das spezifische Hardware-Moeglichkeiten des jeweiligen Rechners (Grafik, Sound u.ae.) erschlieszt. Die Flexibilitaet des FORTH-Systems erlaubt es, den spezifischen Nutzerwuenschen angepasste Versionen zu erstellen. Weitergegeben sollte aber nur die Grundversion, eventuell mit entsprechenden Zusatzquelltext, da wir als FG nur fuer diese Version die Betreuung uebernehmen koennen. Die Kaltstart- Meldung (.VERSION) ist durch Patch oder Neudefinition ( : HELLO .......... .VERSION ; DEFER BOOT ' BOOT IS HELLO : COLD BOOT QUIT ; ! ) so zu veraendern, dass sowohl der Name des Entwicklers (Th. Beierlein), als auch der Name desjenigen, der die vorliegende Version auf den speziellen Rechner angepasst hat, sowie die Bezeichnung "AG FORTH" enthalten sind. Die erste Zeile der Meldung sollte dabei nicht veraendert werden. Installationshinweise fuer den Z1013 Die vertriebene Version F83 1.3 ist ohne Aenderungen nur mit dem Betriebssystem A.2 von Robotron und dem installierten Sprungverteiler (ab FFF1) lauffaehig. Im Bereich von 200H bis 31FH liegt die Verzoegerungsschleife fuer die INKEY-Funktion. Sie ist ueber RST 18 eingebunden. Eine Nutzung dieser Zelle fuehrt zu Systemabsturz. Arbeitsablauf: 1. System ueber Header laden 2. PUT/GET ueber Header auf 3400H laden 3. Systemstart (J 200) 4. nach Meldung " 1 4 THRU" ENT betaetigen nach OK fertig GET (n--) Vok FORTH liest ab Screen n ueber den Header in den RAM PUT (n1 n2--) Vok FORTH schreibt von Screen n1 bis n2 auf Kasette SAVE-SYSTEM (---) Vok FORTH schreibt gesamte aktuelle System auf Kasette MORE (----) Vok FORTH wiederholt Headervorgang mit gleichem Kopf Anpassungshinweise: 1. Grundversion o. Brosigbetr. 1.1. System * Adr 363 jetzt DF 00 26 in E7 04 26 aendern * Abspeichern von 200H bis altes Systemende * Programmstart 320 * wenn Bereich 200H-31FH fuer andere Zwecke benoetigt wird, ab 320H abspeichern. Diese Version aber keinesfalls weitergeben, da die Anpassung fuer A.2 - Monitor dann fehlt. * In die Grundversion (16K) laesst sich immer nur ein Programm z.B. der Editor einladen. Laeuft der Stack ueber stuerzt das System ab. * Steht mehr Speicherplatz zur Verfuegung, so ist es zweckmaessig vor dem Start die Inhalte von TOP,SOD,EOD zu aendern (siehe Tabelle oben). Diese Aenderung wird aber nur bei einem Neustart wirksam. Beispiel (TOP) 337H # FF 33 in FF 5F (SOD) 339H # 00 34 in 00 60 (EOD) 33BH # FF 7F in FF DF neue Systemobergrenze 5FFFH RAM-Disk von 6000H bis DFFFH 1.2. GET/PUT "ALPHA" bei Brosig Monitor * Konstante PRST aendern 320 CONSTANT PRST Bsp.: 1 4 THRU ALSO I/O HEX 320 ' PRST 2+ ! * Bei Bedarf PRAN aendern 320 CONSTANT PRAN (nur wenn Speicher ab 200H fuer andere Zwecke gebraucht wird,(nicht weitergeben) Bsp.: 320 ' PRAN 2+ ! 2. fehlender Sprungverteiler * Konstanten aendern E003 CONSTANT SARUF E000 CONSTANT LORUF oder bei 16K * 3C03 CONSTANT SARUF 3C00 CONSTANT LORUF Bsp.: 3C00 ' LORUF 2+ ! * Abschluss aller Aenderungen mit Aufruf: COLD Danach kann das System mit SAVE-SYSTEM abgespeichert werden. 3. Bei installiertem Sprungverteiler und originalem Z1013 oder Brosigmonitor ist das GET/PUT ORIG/BR ohne Anderungen verwendbar