Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tiny:forth [2019/05/22 08:45]
volkerp
tiny:forth [2019/06/06 10:00] (aktuell)
volkerp [FORTH]
Zeile 1: Zeile 1:
 ====== FORTH ====== ====== FORTH ======
 +
 +  * {{ :​tiny:​tiny_forth.zip |}} JU+TE-FORTH für 4K ES1988 und 6K ES4.0, incl. Assembler-Quellcodes
 +  * {{forth-83.pdf}} (allg.) FORTH-Lehrgang aus Jugend+Technik,​ von Dr. H. Hoyer
 +  * spezifische Beschreibung der Implementation s. [[#​Systembeschreibung|]] (Auszug aus {{:​tiny:​jutecomp3.pdf|JU+TE 01/1990}})
 +
 +{{:​tiny:​unickel_tiny_v12.jpg?​200}} {{:​tiny:​forth_4k.gif?​150|}} ​
  
 Das JU+TE-FORTH-System setzt das 4K-System ES1988 sowie 8 Kbyte RAM voraus. ​ Das JU+TE-FORTH-System setzt das 4K-System ES1988 sowie 8 Kbyte RAM voraus. ​
 Das FORTH-System wird von Kassette geladen und läßt sich ab %E000 über PROG oder BASIC starten. Das FORTH-System wird von Kassette geladen und läßt sich ab %E000 über PROG oder BASIC starten.
  
-Basic: einfach mit 10 Call %E000 (20 End) starten\\+Basic: einfach mit RUN (+) starten ​(Basic-Programm CALL %E00A ist im Forth enthalten)\\
 PROG: GE000, L PROG: GE000, L
  
Zeile 11: Zeile 17:
   * Speichern von %E000 bis DP, am einfachsten bis %FBFF   * Speichern von %E000 bis DP, am einfachsten bis %FBFF
   * 173 Systemworte   * 173 Systemworte
 +
  
 Beim 6K-ES4.0 wird Forth auf Adresse %D000 geladen. Der Start erfolgt mit Beim 6K-ES4.0 wird Forth auf Adresse %D000 geladen. Der Start erfolgt mit
Zeile 17: Zeile 24:
   JD000   JD000
  
-{{:​tiny:​forth_6k_start.gif|}} {{:​tiny:​forth_6k_words.gif|}} ​{{:​tiny:​forth_6k_words2.gif|}}+{{:​tiny:​forth_6k_start.gif|}} {{:​tiny:​forth_6k_words.gif|}} 
 + 
 +Das FORTH für ES4.0 ist eine gepatchte Version des FORTH für ES1988. Die Tastaturabfragen erfolgen anders, z.B. haben QUERY und EXPECT neue Implementierungen. Dafür musste VIEW weichen. 
 + 
 +**Neue Version** Ich habe die Version fürs ES4.0 überarbeitet. Nun ist ein VIEW mit drin (bricht jedoch bei CODE ab statt in den Monitor zu springen). Außerdem ist diese Version kürzer als das Original.
  
 ===== Systembeschreibung ===== ===== Systembeschreibung =====
Zeile 27: Zeile 38:
 Mit der leistungsstarken Programmiersprache FORTH-83 erhält der JU+TE-Computer Mit der leistungsstarken Programmiersprache FORTH-83 erhält der JU+TE-Computer
 neue Anwendungsmöglichkeiten. Mit diesem Beitrag wird ein von Kassette ladbares neue Anwendungsmöglichkeiten. Mit diesem Beitrag wird ein von Kassette ladbares
-FORTHSystem ​beschrieben. Nur für Leser, die diese Sprache bereits kennen, ist es+FORTH-System ​beschrieben. Nur für Leser, die diese Sprache bereits kennen, ist es
 allerdings in allen Einzelheiten sofort verständlich. Diejenigen, die zum allerdings in allen Einzelheiten sofort verständlich. Diejenigen, die zum
 Beispiel mit unserem ABC den Einstieg beginnen (vgl. dazu S. 67 ff. in diesem Beispiel mit unserem ABC den Einstieg beginnen (vgl. dazu S. 67 ff. in diesem
Zeile 73: Zeile 84:
  
 Abb 1: Abb 1:
 +<​code>​
   ‘ , -TRAILING .( >BODY ABORT   ‘ , -TRAILING .( >BODY ABORT
   ABORT" COMPILE CONVERT CREATE   ABORT" COMPILE CONVERT CREATE
   DOES> EXECUTE IMMEDIATE LITERAL   DOES> EXECUTE IMMEDIATE LITERAL
   PAD SPAN [ ['] [COMPILE] ]   PAD SPAN [ ['] [COMPILE] ]
 +</​code>​
  
 **Besonderheiten** ​ **Besonderheiten** ​
Zeile 91: Zeile 104:
 werden kann, zur Anzeige. Jede andere Taste unterdrückt diese Ausgabe. werden kann, zur Anzeige. Jede andere Taste unterdrückt diese Ausgabe.
  
 +{{:​tiny:​forth_4k_view.gif?​150 |}} 
 Die Übersicht über das Wörterbuch ist damit ganz einfach: WORDS bringt die Namen Die Übersicht über das Wörterbuch ist damit ganz einfach: WORDS bringt die Namen
 (jeweils sieben untereinander) zur Anzeige, wobei mit der ENTER-Taste (jeweils sieben untereinander) zur Anzeige, wobei mit der ENTER-Taste
Zeile 115: Zeile 129:
 mit Hilfe von HERE jederzeit anzeigen (Abb. 3). mit Hilfe von HERE jederzeit anzeigen (Abb. 3).
  
 +Abb 2:\\
 +<ditaa noedgesep>​
 ++----------------------+
 +| Countbyte 100XXXXX ​  |
 ++----------------------+
 +| Name ASCII           |
 ++----------------------+
 +| Linkfeld (High, Low) |
 ++----------------------+
 +| Kennbyte ​            |
 ++----------------------+
 +| Maschinencode ​       |
 +| (Rumpf, = CFA = PFA) |
 ++----------------------+
 +</​ditaa>​
  
 Abb 3: Anzeige der Wörterbuchgrenze:​ Abb 3: Anzeige der Wörterbuchgrenze:​
Zeile 170: Zeile 199:
  
 Abb 5: Eintragen von TOS ins Wörterbuch (n --): Abb 5: Eintragen von TOS ins Wörterbuch (n --):
 +<​code>​
   : , HERE 2 ALLOT ! ;   : , HERE 2 ALLOT ! ;
 +</​code>​
  
 **Maschinenprogramme** ​ **Maschinenprogramme** ​
Zeile 220: Zeile 251:
  
 Dr. Helmut Hoyer Dr. Helmut Hoyer
 +
 +**HINWEIS**
 +
 +JU+TE 01/1990, Seiten 70-73 
 +
 +Zunächst noch ein Hinweis zum
 +FORTH-System,​ das auf an
 +JU+TE eingesandte Magnetbandkassetten
 +geladen wird:
 +Dieses Programm nutzt den
 +RAM-Modus des 4-K-Betriebssystems
 +zur Anzeige
 +und zur Eingabe von Maschinenprogrammen
 +in FORTH-Wörtern.
 +Befindet sich das
 +Betriebssystem in einem U
 +2732 C oder U 2764 C, gilt die
 +Startadresse %1352. Ist das
 +Betriebssystem in zwei U 2716
 +C geteilt, beginnt der RAM-Modus
 +jedoch auf %2352. In
 +diesem Fall müssen im
 +FORTH-System die Bytes auf
 +den Adressen %EBEB und
 +%EDD3 von %13 auf %23
 +geändert werden, damit die
 +Anwendung des Wortes CODE
 +klappt. Für diese Änderung
 +eignet sich der RAM-Modus,
 +nach Laden des FORTH-Systems
 +aus dem Resetmenü gestartet, am besten.
 +
 +===== Einstieg =====
 +
 +Als kleines "​Programm"​ zum Einstieg kann man die Malfolge nehmen
 +
 +<​code>​
 +: MALFOLGE 11 1 DO DUP I * . LOOP DROP ;
 +</​code>​
 +
 +Damit hat man ein Programm (eine neues FORTH-Wort) "​MALFOLGE"​ definiert. Mit einer Zahl davor wird die Malfolge 1*n .. 10*n ausgegeben:
 +
 +  3 MALFOLGE
 +  9 MALFOLGE
 +  -2 MALFOLGE
 +  111 MALFOLGE
 + 
 +Als weiteren Einstieg kann ich das auch Handbuch zum KC85-Forth empfehlen. Es ist sehr gut geschrieben. Über weite Teile kann man das auch für den TINY nehmen, z.B. "​Elefanten füttern"​! http://​www.mpm-kc85.de/​dokupack/​M026_FORTH.pdf