Discussion:
altes Forth und Fragen dazu
(zu alt für eine Antwort)
Christoph C
2021-03-01 10:08:25 UTC
Permalink
Hallo an alle,
ich bin seit einiger Zeit nun begeisterter "Forther" und wollte mal etwas in die Runde fragen, mit Hoffnung auf Antwort :D

Ich besitze mehrere Retrocomputer und einer von denen ist mein geliebter Sinclair ZX81. Auf diesem läuft eine Version von fig-Forth. Den Editor kann man aber nicht mehr nachladen, da es ein kleines Problemchen mit den neuen Dateiendungen. Ich wollte also den Editor per Hand eintippen und dann das Forth mit Neudefinitionen speichern... Und da kommt das Problem.
Vielleicht kennt ja hier jemand die "verschollenen" USR Calls.
Mit BYE kehrt man auf die BASIC Ebene zurück, nun will ich speichern (auf SD Karte) und dann wieder ins Forth zurück, ohne die Definitionen zu verlieren. Bei einem normalen Start löscht Forth alles und startet, in dem Falle GOTO 2
Nun hatte ich also die geniale Idee, die PFA von WARM zu finden, da sollte alles erhalten bleiben. mit -FIND DROP DROP . erhält man die PFA,
Problem: Wie erwartet klappt es nicht. Es wird alles vergessen vom Forth
Kennt jemand vielleicht die Lösung für das Problem?
Ich würde gerne das Artic Forth startklar machen und das ein wenig verstehen
LG Christoph
Rafael Deliano
2021-03-01 18:32:32 UTC
Permalink
Post by Christoph C
Retrocomputer
Dafür gibt es eine eigene newsgroup die aber FORTH nicht abdeckt:
de.alt.folklore.computer
Für FORTH gibt es eine englische newsgroup die belebter,
aber nicht besser ist.

FORTH + Retrocomputer pflegt vor allem
Carsten Strotmann https://forth-schulung.de
dem man um diese Jahreszeit normalerweise hier begegnete:
http://www.vcfe.org/D/
Aber derzeit wohl nur per email fragen kann.
Post by Christoph C
Auf diesem läuft eine Version von fig-Forth.
... das ein wenig verstehen
Scans der fig-FORTH Listings und des Implementation Manuals
werden im www sicher vorhanden sein.
Ein threaded Implementierungsmodell hat natürlich den Nachteil
daß man es nicht einfach durch einen Disassembler schicken kann.

MfG JRD
Christoph C
2021-03-02 09:36:05 UTC
Permalink
Hallo, danke für die Nachricht.
Ich bin an sich schon mal sehr weit gekommen. Interessant ist natürlich folgendes: Das ZX-Forth an sich wird wohl in Forth geschrieben sein (wie man es kennt) also primitive words und dann oben drauf die Highlevel words. Ich habe also ursprünglich geglaubt, dass die CFA oder PFA von WARM im Forth dazu führt, dass man ohne Probleme ins System zurück kommt. Aber mein Problem ist nun, dass trotzdem alles verloren geht, wenn man das Forth als MC-Prog neu startet. Nächste Überlegung, es würde ein FORGET gestartet werden bevor der Compiler anfängt zu arbeiten (WARM Sprungadresse klappt) aber mit FENCE justieren ist auch nicht viel gewonnen. Hat Forth auf einer Z80 irgendwelche Parameter, welche erhalten bleiben müssen, wenn man zurück ins System will ohne Definitionen zu verlieren?
Anton Ertl
2021-03-02 16:43:47 UTC
Permalink
Hat Forth auf einer Z80 irgendwelche Parameter, welche erhalten ble=
iben m=C3=BCssen, wenn man zur=C3=BCck ins System will ohne Definitionen zu=
verlieren?
Egal ob Z80 oder sonstwas, typischerweise muss DP (die
(User-?)Variable hinter HERE) erhalten bleiben und von jedem
Vocabulary die Adresse des juengsten Eintrags. Wenn da User-Variablen
dahinter stehen, dann noch die Basis der User-Variablen (evtl. UP)

Schau Dir an, was FORGET kaputtmacht, dann weisst Du, was Du
mindestens reparieren musst. Und bei Systemen mit User-Variablen auch
noch UP.

- anton
--
M. Anton Ertl Some things have to be seen to be believed
***@mips.complang.tuwien.ac.at Most things have to be believed to be seen
http://www.complang.tuwien.ac.at/anton/home.html
Christoph C
2021-03-03 18:01:41 UTC
Permalink
Hallo Anton,
ich habe soweit mal die Origin Daten verändert und an die passenden Adressen alles hineingeschrieben, was nötig ist. Das wäre einmal 12 +ORIGIN für LATEST und 28 und 30 +ORIGIN für HERE dann noch FENCE überschrieben und eine mysteriöse FIG-Forth Zeile ´ FORTH 8 + 32 +ORIGIN ! ausgeführt keine Ahnung, was die macht (daran wirds wohl auch liegen wieso es noch nicht richtig funktioniert) aber den Dictionary Pointer habe ich nirgends verwenden müssen... höchstens eben HERE aber DP ist ja eine andere Adresse.
Das Programm bleibt lustigerweise erhalten bis zum Neuladen, da sind alle Definitionen intakt aber starten nicht oder das System stürzt ab, sobald ich versuche den Test zu starten... Der ZX81 besitzt ja noch den RAMTOP, dahinter könnte sich was abspeichern, was dann wegen der SAVE Routine nicht gespeichert wird...
LG Christoph
Anton Ertl
2021-03-06 15:29:11 UTC
Permalink
Post by Christoph C
Hallo Anton,
ich habe soweit mal die Origin Daten ver=C3=A4ndert und an die passenden Ad=
ressen alles hineingeschrieben, was n=C3=B6tig ist. Das w=C3=A4re einmal 12=
+ORIGIN f=C3=BCr LATEST und 28 und 30 +ORIGIN f=C3=BCr HERE dann noch FENC=
E =C3=BCberschrieben und eine mysteri=C3=B6se FIG-Forth Zeile =C2=B4 FORTH =
8 + 32 +ORIGIN ! ausgef=C3=BChrt keine Ahnung, was die macht (daran wirds w=
ohl auch liegen wieso es noch nicht richtig funktioniert) aber den Dictiona=
ry Pointer habe ich nirgends verwenden m=C3=BCssen... h=C3=B6chstens eben H=
ERE aber DP ist ja eine andere Adresse.=20
Das Programm bleibt lustigerweise erhalten bis zum Neuladen, da sind alle D=
efinitionen intakt aber starten nicht oder das System st=C3=BCrzt ab, sobal=
d ich versuche den Test zu starten...
Ja, wenn da nur aus dem Forth-System rausgesprungen wird, und nichts
ueberschrieben wird, muesstest Du dann nur wieder an die richtige
Stelle hineinspringen (nicht COLD und nicht WARM, sondern eher QUIT
oder so). Eventuell sind die Register nicht richtig gesetzt oder
sowas. Alles nur Herumgerate meinerseits.

- anton
--
M. Anton Ertl Some things have to be seen to be believed
***@mips.complang.tuwien.ac.at Most things have to be believed to be seen
http://www.complang.tuwien.ac.at/anton/home.html
Loading...