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
homecomputer:ac1:software:forth [2026/09/11 06:30] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1homecomputer:ac1:software:forth [2026/09/11 06:30] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden volkerp
Zeile 1: Zeile 1:
 +====== Forth 83 ======
 +
 +2024/2025 habe ich das [[forth:fgforth|]] an den AC1 angepasst. Es läuft auf allen Systemen, speziell für den [[..:picoac1]] gibt es I/O-Routinen zur Nutzung der SD-Karte.
 +
 +{{:homecomputer:ac1:forth83_ac1.png|}}
 +
 +===== Download =====
 +
 +  * {{ :homecomputer:ac1:forth_ac1.zip |}} Forth, Docs, Zusatzpakete, Beispiele, picoAC1-GET/PUT\\ Der Ordner forth wird beim picoAC1 auf eine SD-Karte kopiert.
 +  
 +===== Kurzanleitung =====
 +
 +  * Start mit "f"  
 +  * 1 EDIT startet den Full-Screen Editor, Ende mit ^C
 +  * 1 GET filename lädt eine Datei in die RAM-Disk
 +  * 1 n THRU compiliert Screen 1 bis n
 +  * Worte können mit SEE name decompiliert werden
 +  * Vokabulare: VOCS und ORDER
 +  * Dictionary: WORDS
 +  * Ende mit BYE
 +
 +
 +===== Beschreibung =====
 +
 +| Dateiname | FORTH83 |
 +| Laden in | OS (mon3.1, ...) |
 +| Programmstandort | 2000h-46FFh |
 +|  | 8000h-BFFFh  RAM-Disk |
 +| OS-Kommando | f |
 +
 +Beischreibung des Forth s. [[forth:fgforth|]]
 +
 +{{simplenavi>forth:fgforth}}
 +
 +===== picoAC1 =====
 +
 +Das Forth (incl. Varianten) und Programme werden als Z80-Dateien auf der SD-Karte abgelegt, z.B. in einem Ordner "forth".
 +
 +im Mon wird zuerst die Datei ''getput_pico.Z80'' laden (nach 8000h), dann ''forth83''.
 +Forth wird gestartet mit einer der drei Möglichkeiten: 
 +  f
 +  J:
 +  J 2000
 +
 +In Forth werden die bereits in der RAM-Disk stehenden I/O-Routinen compiliert mit ''1 6 THRU''. Ab jetzt stehen die Worte ''.FILES, GET, PUT'' zur Verfügung (s. [[forth:fgforth:kassette|I/O]]). Mit ''.FILES'' wird das aktuelle Verzeichnis gelistet. Mit ''1 GET filename'' lädt man eine Datei in die interne RAM-Disk. Nach dem Laden wird die Zahl der geladenen Screens angezeigt (#scr n). Mit ''1 n THRU'' erfolgt üblicherweise das Compilieren des geladenen Programms, es gibt aber auch Ausnahmen! 
 +
 +Gespeichert wird mit ''1 n PUT filename''. Dieses Kommando speichert Screen 1 bis n auf SD-Karte unter dem Namen "filename" im Z80-Format. Als Typ wird "F" (für Forth-Datei) eingetragen. Ein Dateityp wird nicht automatisch an den Filenamen angehängt!
 +
 +===== Systemzusammenstellung =====
 +
 +<code>
 +as_z80 forth83.asm
 +erzeugt forth83.z80, Adresse 2000-46FF
 +
 +starten mit "f" (oder J 2000), Restart mit "r"
 +
 +Fullscreen-Editor
 + Sedit_AC1.Z80
 + extern laden (nach 8000), Forth starten
 + 1 LOAD
 + Anwenden: n EDIT (editiert Screen n, n = 1..xx)
 +
 +SEE - Dekompiler
 + SEE           vp.z80
 + extern laden (nach 8000), Forth starten
 + 1 10 THRU
 + Anwenden: SEE xxx
 +
 +Datei-Arbeit
 + getput_ac1pico.Z80
 + extern laden (nach 8000), Forth starten
 + 1 6 THRU
 + Anwenden: .FILES (DIR) 
 + n GET fname (Lädt File ab Screen n)
 +
 +
 +MARK EMPTY  HERE FENCE !
 +SAVE-SYSTEM FORTH83A3
 + speichert das gesamte Forth incl. Pakete
 +</code>
 +
 +
 +===== Beispiele =====
 +
 +Die Beispiele können auch am originalen AC1 getestet werden. Dazu verlässt man Forth, lädt die Datei im Monitor-Modus nach 8000h, und geht dann zu Forth zurück (mit "f").
 +
 +Am picoAC1 werden die Dateien direkt unter Forth geladen, z.B. "1 GET LINED.Z80". Groß-/Kleinschreibung des Dateinamens ist egal.
 +
 +==== lined.z80 ====
 +[[forth:fgforth:lined|]]
 + 1 6 THRU
 + 1 EDIT \ Screen 1 bearbeiten 
 + ...
 + DONE
 +
 +==== turmvonhanoi.z80 ====
 +demonstriert, wie der "Turm von Hanoi" optimal gelöst wird. ''n HANOI'' startet das Programm für n (≤ 5) Scheiben.
 + 1 5 THRU
 + 3 HANOI \für 3 Scheiben
 +{{:homecomputer:ac1:turmvonhanoi.png|}}
 +
 +==== unsinnstext.z80 ====
 +nach L. Brodie, erzeugt witzige Texte
 + 1 5 THRU \ Screen 6..10 enthalten Textbausteine
 + TEXT \ nach jedem Absatz ENTER drücken
 + NOCHMAL \ gibt letzten erzeugten Text nochmal aus
 +{{:homecomputer:ac1:unsinnstext.png|}}
 +
 +
 +==== demorechner.z80 ====
 +Großanzeige von Ziffern und Rechenzeichen. Enthält in Screen 1 und 2 Eaker-Case, nutzt AT vom Paket SEDIT (Screen-Editor).
 + 1 8 THRU
 + DEMO \ erwartet korrekte Fortheingabe, z.B. 15 6 *
 +{{:homecomputer:ac1:demorechner.png|}}
 +
 +Zusammen mit formi2.f83 kann die Aufgabe auch in infix-Notation eingeben werden: ''{ 12 * 4 + 3 * 2 }''