DurexFORTH - Diskussion zum Tutorial


  • lodger
  • 8762 Views 88 replies

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Das FORTH ist für den C64 eigentlich eine Krankheit.

    FORTH ist eine Sprache für verschiedene FORT-Rechner, die dafür hergestellt werden.

    Irgendwann wurde das FORT an verschiedene Rechner (C64, C128, ZX81 CPC usw) rangequält.

    Aber hat nie den richtigen FORTH-wunsch erfüllt, es wurde immer nur irgend wie rangezimmert.

    Ich habe mich auch für FORTH zum C64 interessiert , das DUREX-Forth dafür kam mir als Krücke noch am besten vor.
    Und habe dann damit einige Spiele erstellt. Hat spass gemacht. Mehr kam da nicht heraus.

    Wenn einer Forth-Sachen erstellt , interessiert es nie anderen Menschen wie es hergestellt wurde sondern nur,
    das es funktioniert.

    Darum muss du immer alleine Rumwursten. Wir können uns zwar unterhalten wie es werden soll, bleibt aber dann uns beiden
    überlassen wie es zustande kommt.
    Darum ist es unsinn , einen anderen Programmierer in FORTH etwas aufzuzwängen. Das ist nicht der Sinn.

    Gruss
  • SamW wrote:

    Hmmm, hab mal auf der Durex-Seite gesucht. Ne Variante "Forth" hab ich aber nicht gefunden... :nixwiss:

    spacer wrote:

    Was sucht du denn eigentlich ? Was willst du denn in FORTH erstellen? Was ist dein Ziel?
    Man sucht sich eine variante von FORTH und dann legt man los.

    Durexforth ist eine Variante von Vielen....seit den 70zigern.

    Gruss
    Du hast den Witz dahinter nicht verstanden ;)
    ______________________________________________
    Wenn ich posten will, werde ich Briefträger...
  • Das klingt schon sehr negativ, @spacer ... ich seh das nicht so.

    spacer wrote:

    Irgendwann wurde das FORT an verschiedene Rechner (C64, C128, ZX81 CPC usw) rangequält.
    Das ist kein "Ranquälen", Forth ist per Design dafür vorgesehen auf andere System zu portieren. Das kann man faktisch für alle Rechner machen und es gibt Forth faktisch auch auf jeder erdenklichen Plattform. Speziell im Embedded-Systems-Bereich stößt so ein System auf fruchtbaren Boden. Da investiert man auch gerne in das eher sperrig zugängliche Forth-Konzept ...

    spacer wrote:

    Aber hat nie den richtigen FORTH-wunsch erfüllt, es wurde immer nur irgend wie rangezimmert.
    Und? Das gilt auch für COMAL, Pascal, C, Logo, Lisp, ... alles nett und mehr oder weniger eine Machbarkeitsstudie auf dem C64. Allesamt entsprechen nicht dem C64 Way-of-life, die beim Lern-Investment und Resultate in Bezug auf Geschwindigkeit nicht mit BASIC (das "einfach" im ROM ist und alle haben es) zusammen mit Assemblerprogrammierung konkurrieren können. Wer anständige Ergebnisse am C64 erzielen will, kommt um Maschinesprache nicht herum. Den Lernaufwand dort zu investieren ist weit geringer und führt schneller zum Ziel, als sich vielleicht generell Forth zu verschreiben und sich hier gut auszukennen. Die Wahrscheinlichkeit mit Forth-Kenntnissen irgendwo später nochmal anbringen zu können (wenn man nicht arg spezialisiert ist), ist eher gering, speziell, wenn man etwa mit dem Programmierermarkt für anderer Programmiersprachen, wie Java, Python, etc. vergleicht.

    spacer wrote:

    Ich habe mich auch für FORTH zum C64 interessiert , das DUREX-Forth dafür kam mir als Krücke noch am besten vor.
    Und habe dann damit einige Spiele erstellt. Hat spass gemacht. Mehr kam da nicht heraus.
    Es ist natürlich immer das Interessant, wo es gute Unterstützung für die Systemeigenschaften eines C64 gibt (Grafik, Sound, I/O, ...). Es schon klar, dass in portiertes FIG-Forth am C64 keinem etwas herausreißt, wenn man damit nicht mehr machen kann, also mit BASIC V2 ... dass es "schneller" ist, mag bei dem Aufwand (fehlende Verbreitung, extra Laden etc.) es zu nutzen, trotzdem nicht fördern.
    In meinem Fall hab ich ein eher nacktes Forth (Forth-79 Performance Micro Prod. - ordentliche I/O-Routinen und brauchbarer Editor) auch deswegen genommen, wo der Spaß darin lag, die Grafik-Routinen etc. selbst zu entwerfen und in Forth zu integrieren.
  • spacer wrote:

    Was sucht du denn eigentlich ? Was willst du denn in FORTH erstellen? Was ist dein Ziel?
    Man sucht sich eine variante von FORTH und dann legt man los.

    Durexforth ist eine Variante von Vielen....seit den 70zigern.

    Gruss

    Bezog sich das auf mein Posting? Falls ja: paar Leute basteln hier an CPUs für/auf fpga Boards und es ging halt drum, wie man mit minimalem Aufwand darauf eine Hochsprache ans Laufen bekommen könnte. Ich wollte also wissen, wieviel Forth Worte man implementieren muss, damit man den Rest in Forth selbst hinzufügen kann.
    Hier könnte ihre Signatur stehen!
  • New

    JeeK wrote:

    wins4 wrote:

    Noch eine Frage zu DurexForth. Es scheint keine 'cold'-Anweisung zu geben. Gibt es dafür einen anderen Befehl?
    Wozu brauchst du das?
    Könnte man sich wie folgt definieren:

    Source Code

    1. hex
    2. : cold 80d sys ;
    Das ist die Startadresse des BASIC-Intros, 2061 ...

    Ich setze gerne mal das System wieder zurück, wenn ich es übertrieben habe. Ich es ist mir aufgefallen, als ich mir den Quelltext angesehen habe. Ich
    habe mir das DurexForth selbst kompiliert.
    _________________________________________________________________________
    Kickstarter C64, TAPunio, SD2IEC, ZX Spectrum 48k, Harlequin 128 mit ZX-HD, DivMMC Pro,
    ZX Spectrum 128 Toast Rack, Amiga1200, Turbokarte ACA1233n, MiSTer FPGA, TI99/4A mit PEB
  • New

    Da hast du schon eine erste eigene Lösung für Durexforth.

    Du kannst in der github.com/jkotlinski/durexfor…/master/forth_src/base.fs ganz unten in den letzten Zeilen Sachen rausnehmen.
    Musst nur darauf achten, das das ASM da in der Mitte drin bleibt bei der base.fs

    Ich hatte es mal bis auf das sogenannte Kernel gemacht und dann selber Sachen eingebaut.
    Mit dem ACME kannst du es dann schön compilieren.

    Die fs müssen ein besondere Form haben im Textformat , sonnst funktionieren sie nicht beim Einlsen in Durexforth.
  • New

    spacer wrote:

    Ich hatte es mal bis auf das sogenannte Kernel gemacht und dann selber Sachen eingebaut.
    Mit dem ACME kannst du es dann schön compilieren.
    Genau. ;)
    Z.B. den cold-Befehl gleich fix eingebaut:

    Difference-File

    1. diff --git a/durexforth.asm b/durexforth.asm
    2. index 93218ff..56a84f3 100755
    3. --- a/durexforth.asm
    4. +++ b/durexforth.asm
    5. @@ -76,6 +76,7 @@ C_YELLOW = 7
    6. ; -------- program start
    7. +entry_code
    8. jsr quit_reset
    9. jsr PAGE
    10. @@ -124,6 +125,13 @@ pushya
    11. !text "start"
    12. +VALUE _START
    13. +; cold start
    14. + +BACKLINK
    15. + !byte 4
    16. + !text "cold"
    17. +COLD
    18. + jmp entry_code
    19. +
    20. +BACKLINK
    21. !byte 2
    22. !text "bl"
    Display All
    Leider ist das BASIC-Intro bisserl schlampig ausgelegt und geht von fixen Annahmen aus, wie z.B., dass der Code immer bei 2061 beginnt ...