DurexFORTH - Diskussion zum Tutorial

  • Etwas off-topic aber auch mit Forth bezug: ich bin vor kurzem über das "FIGnition inFuze" Kit gestolpert und habe mir gleich mal eins bestellt. Ist doch cool, wenn man mal wieder was zu basteln hat und am Ende ein kleiner Forth Computer dabei herauskommt. Hat hier schon jemand Erfahrung mit dem Teil?
    -
    Gesucht:
    Hewlett Packard HP-9826 (1981)
    Jupiter ACE (1982)
  • Chagizzz schrieb:

    Super! :thumbsup:

    Habe mich erst nicht rangetetraut, aber mir jetzt mal kurz die Zeit genommen. Gefällt mir. Nicht zu lang, da kann man sich immer mal ein paar Minuten Zeit nehmen.
    Bleibe dabei!

    Gibt's sowas nicht auch für Assembler? :D
    Vielen Dank für das Lob, ich arbeite bereits an Teil 4, kann aber noch ein kleines bißchen dauern
    -
    Gesucht:
    Hewlett Packard HP-9826 (1981)
    Jupiter ACE (1982)
  • JeeK schrieb:

    [..]
    Es wird zwar immer gerne das Einsteigerbuch von Leo Brodie zu Forth genannt. Aber ich kann auch jenes von Ronald Zech, Die Programmiersprache FORTH : eine kompakte Darstellung der Programmiersprache mit vielen Beispielen, 2. Auflage, Franzis Verlag empfehlen. Vermutlich nicht so ohne weitere käuflich zu bekommen, aber (Uni-)Bibliotheken und öffentliche Büchereien werden schon ein Exemplar haben. Ob's einen Scan davon gibt, weiß ich jetzt nicht. Sollte ich vielleicht mal machen. :D
    Richtet sich sowohl an Einsteiger und geht bis ganz ins Innerste. Für mich das deutschsprachige Referenzwerk, wenn es um Forth geht.
    Ich hab extra die 2. Auflage besorgt (besitze nur ein Exemplar der 1. Auflage) und diese höchstpersönlich gescannt und sie steht nun in der F64 Wolke zur Verfügung (unter Bücher/Allgemein: "Franzis Die-Programmiersprache-Forth.pdf"). Wie gesagt, wärmstens zu empfehlen. Viel Spaß jedenfalls damit. :D

    Wer übrigens den dort abgedruckten Assembler in einer weiterentwickelten Version (inkl. 65C02-Unterstützung), in der zumindest damals verbreiteten und üblichen Ragsdale-Syntax - DurexForth hat da glaub ich einen anderen Assembler, mit anderer Syntax - zum Experimentieren oder so haben möchte, kann sich diesen Online holen (da gibt's auch einen Disassembler, Decompiler - also das, was gemeinhin SEE macht). Das waren Sachen, die ich für das C64 Forth/79 von Micro. Prod. damals brauchte oder zumindest zu implementieren äußerst interessant fand. ;)
  • JeeK schrieb:

    Ich hab extra die 2. Auflage besorgt (besitze nur ein Exemplar der 1. Auflage) und diese höchstpersönlich gescannt und sie steht nun in der F64 Wolke zur Verfügung (unter Bücher/Allgemein: "Franzis Die-Programmiersprache-Forth.pdf"). Wie gesagt, wärmstens zu empfehlen. Viel Spaß jedenfalls damit.

    ThomBraxton schrieb:

    Wie lautet denn der Dateiname?

    So wie es oben in der Klammer steht (gut, die Idee den Verlagsnamen in den Titel zu geben, war nicht von mir - scheint im Vergleich zu den anderen Büchern inkonsistent, aber ich wollte jetzt nicht ständig an der Upload-Geschichte herummosern). ;)
  • daybyter schrieb:

    Auch in einem anderen Forum wird gerade etwas für Forth geworben:

    forum.tlienhard.com/phpBB3/viewtopic.php?f=2&t=2338#p29758
    Sieh an, ein Forth für den ZX-81 (also vermutlich nur am Emulator wirklich lustig). Erstaunlich. Die Beispiele im Thread sind zwar nicht immer so im richtig typischen Forth-Stil (z.B. das Sieb des Eratosthenes), aber das Bottom-Up-Prinzip wird schön veranschaulicht. Wie auch immer informativ und ein super Einstieg.

    Da hätt ich auch was Interessants, und zwar an der VC-20-Front ...
    V-FORTH - Forth-83 for the VIC
    Schon (im Emu) probiert. Wirklich nett. :thumbsup:
  • Hallo, guten Tag.

    Ich habe das Durexforth vor 3 Jahren zum letzten mal angepackt.
    Hatte jetzt vor 2 Wochen auch wieder damit angefangen.
    Es wurde wunderbar erweitert. Das schöne ist man kann den ASM-Source mit Acme selber kompilieren.
    Die Base.fs habe ich am Ende selber mit meinem eigenen Includes erweitert.

    Ich hatte damals ein Programm für die C-64-Floatroutinen geschrieben für Durexforth und habe eine Lösung gefunden um 2 Grafikbildschirme wechselseitig zu nutzen desweiteren die Reubefehle eingebunden.

    Forth hat mich schon in den Achtzigern interessiert. Leider konnte ich auch damals keinen davon überzeugen.
    Ich spiele nur mit dem Vice und dem Durexforth.

    Vielleicht hast du hier jetzt Glück mit deiner Überzeugungskraft.
    Meine alten Progamme von vor 3 Jahren laufen nicht alle, weil sich jetzt einige Befehle geändert haben.

    Ich werde dir weiterhelfen mit meinem 68 Jahren wenn du möchtest.
    Ich freue mich wenn du das hier durchhälst und die Jungs hier mitspielen.

    Gruss
  • spacer schrieb:

    Forth hat mich schon in den Achtzigern interessiert. Leider konnte ich auch damals keinen davon überzeugen.
    Ich spiele nur mit dem Vice und dem Durexforth.
    Das war damals wirklich ein schwieriges (neige zu sagen unmögliches) Unterfangen. Da war ich auch zum Scheitern verurteilt. Speziell bei Forth, hat man ja das Basis-System als Grundlage gebraucht. Wenn man nicht gerade ein Header-Less-Forth hatte oder erzeugen konnte, so war man mit dem Forth-Kern bereits mit rund 30 bis 60 Blocks dabei, nur um einen Einzeler zu produzieren. Den Geschwindigkeitsvorteil mit Faktor 10 war ein gutes Argument, aber wiegte die Schwierigkeit für gestandene BASIC-Programmierer, sich mit Syntax und RPN anzufreunden, nicht auf. Die, die ihr Heil in der Assembler-Programmierung suchten, konnte man durch "Hochsprache", trotzdem maschinennah, aber halt leider 10 mal langsamer auch nicht aus der Reserve locken (ja, natürlich kann man mit dem Forth-Assembler auch vortrefflich mischen). Aber auch hier war die "Neubarriere" nicht zu überwinden.

    Die Cross-Entwicklungsumgebung hat das freilich alles viel leichter gemacht.
    Ich hoffe, dass die Forth-Anhängerschaft sich somit zumindest hält oder aber sogar leicht anwächst.
  • spacer schrieb:

    Da das Durexforth hier als eigenständiges Programm läuft hat es ca den Factor 80 gegenüber dem Basic.
    Das Durexforth hat die Forthwörter im kompakten effektiven ASM.

    Den Bitmapscreen (8000 Byte) schreibt es in 1 sec voll.
    Mach es mal mit Poke in Basic.
    Natürlich, jedes Forth hat Wörter die in ASM (Primitives) enden, mehr oder weniger. Bei Durex mag der Anteil höher sein. Aber dennoch, ist das nicht der Forth-Geist, viele (alle) Wörter des Standardvokabulars in Assembler auszuformulieren (aus Portierungsgründen, was aber hier wohl nicht gebraucht wird). Üblicherweise nur punktuell, wo es die größten Performance-Gewinne warten. ^^

    Genau. Dafür gibt es ja auch entsprechende Primitive-Words wie FILL oder CMOVE, die das "native" in Maschinencode machen. Das ist aber nicht unbedingt ein fairer Vergleich mit etwa einer FOR-NEXT-Schleife in BASIC. Wenn man von "durchschnittlichen" Aufgaben ausgeht (entsprechend ausgewogen in Relevanz), dann hat man eine Größenordnung zwischen BASIC und Forth (also ein Faktor zwischen 10 und 100). Oft wird ja vernachlässigt, dass BASIC immer mit Fließkommazahlen rechnet und Forth üblicherweise 16-bit-Ganzzahlen verwendet. ;)
  • Was man in Basic versucht : Neue schnelle Basicwörter reinbingen (siehe die vielen Erweiterungstools für Grafik, Musik usw)
    wird in Forth mit der eigenen Sprache reingebracht schnell und effektiv mit wenig Speicherverbrauch.
    Mit 16kb habe ich Musik, Grafik , Sprite , Float und die Grundbefehle und dazu noch 2 Hiresscreen von je 8kb frei um durch umschalten eine fließende Grafik zu erzeugen und noch platz für eine Menge Sprite die animiert werden. Ich kann da mit den gleichen Grafikbefehlen beide Screens beschreiben, es wird nur die Bitmap umgeschaltet.

    So etwas brauche ich für einen mageren 8-Bitter und ist sehr interessant wenn es so schnell klappt.

    Mit Basic allein schaffe ich das nicht und es fehlt die Schnelligkeit.
    Ich habe es mal mit BasicBoss probiert, bloß da fehlen die Musikbefehle und die Grafikbefehle und muss da sehr viel Poken und Peeken.
    Das kompilat von BasicBoss ist aber superschnell
    Gruss

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von spacer ()