atarionline.pl FORTH - potrzebuje porady - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1: CommentAuthorMater
      • CommentTime30 Mar 2020 13:03
       
      Hej wszystkim,

      Od jakiegos czasu zaczalem uczyc sie Fortha. Widze, ze sa dwa rozsadne implementacje X-FORTH oraz Volksforth. Ktora implementacje byscie polecili ? Kolejne pytanie - napisalem sobie jakies proste programiki zapisalem je, ale nie mam pojecia jak zrobic plik wykonywalny ktory jak wrzuce do stacji odpali go i uruchomi. Za wszelkie rady z gory dziekuje :)
      • 2: CommentAuthorzbyti
      • CommentTime30 Mar 2020 13:03 zmieniony
       
      O! Miłośnik FORTH :D

      VolksForth ma implementacje także na MS-DOS / ATARI ST / CP / M / ATARI 8Bit więc jakbyś chciał się rozwinąć na inne platformy i znasz niemiecki (dokumentacja) to może to dobry kierunek?

      Na ile rozumiem filozofię FORTH to chyba bez większego znaczenia co wybierzesz bo zasada ta sama, co najwyżej słownikiem się będą różnić i narzędziami.

      Co do plików wykonywalnych wyczytałem coś takiego na wiki ->link<-

      X-FORTH:

      use INCLUDE" D:MKFRTH.F" to write a new FORTH.COM to the disk. The new FORTH.COM includes all your new definitions! The new FORTH.COM autostarts the last defined word. If you like to drop to the "OK"-Prompt after loading FORTH.COM; define a WORD with the command "QUIT" as last word, example : MYFORTH ." This is MyFORTH!" CR QUIT ;
      • 3: CommentAuthorMater
      • CommentTime30 Mar 2020 13:03
       
      Dzieki za odpowiedz :). No przez przypadek dowiedzialem sie o tym jezyku i bardzo mi sie spodobal - jest zupelnie inny niz reszta jezykow i jego nauka jest ciekawa :). A jest mozliwosc ustalenia z ktorego slowa odpala stworzony COM ? Bo z tego co tutaj przytoczyles to odpala z ostatnio stworzonego slowa co troche mija sie z celem :D
      • 4: CommentAuthorzbyti
      • CommentTime30 Mar 2020 13:03 zmieniony
       
      @Mater nie jestem ekspertem ale słownik nie jest w FORTH alfabetyczny.

      Tak jak tam (na wiki) proponują, jak masz jakieś słowo co uruchamia całość to jak zdecydujesz się kompilować do COM to tworzysz nowe słowo które odpala to słowo którym zazwyczaj posługujesz się do uruchamiania i powinno śmigać.

      Przynajmniej ja tak to rozumiem.
      • 5: CommentAuthorMater
      • CommentTime30 Mar 2020 13:03
       
      A w sumie mozna tak zrobic :D. Dzieki :)
      • 6: CommentAuthorMater
      • CommentTime30 Mar 2020 18:03
       
      Nie rozumiem tylko jednej rzeczy - jedna komenda robi wedlug tej instrukcji dwie rzeczy -

      use INCLUDE" D:filename" to load file, example INCLUDE" D:S.F" to load Stack-View Word

      use INCLUDE" D:MKFRTH.F" to write a new FORTH.COM to the disk

      Nie probowalem jeszcze tego robic gdyz jestem w pracy, ale troche dziwnie to wyglada, ze jedna komenda z tym samym parametrem wykonuje magicznie dwie czynnosci.
      • 7: CommentAuthorzbyti
      • CommentTime30 Mar 2020 20:03 zmieniony
       
      Nie używałem nigdy X-FORTH ale też nie rozumem co Cię dziwi?

      Pokombinuj najpierw a jak utkniesz to daj nać ;)

      Generalnie spróbuj jednak VolksForth bo X-FORTH wydaje się nieukończonym projektem.

      Instrukcja jak pod Volks się działa jest tutaj ->link<-
      • 8:
         
        CommentAuthorKaz
      • CommentTime30 Mar 2020 20:03
       
      Tak trochę w temacie, tutaj w Bibliotece Atarowca mamy podręcznik do Fortha pana Jana Ruszczyca:

      ->link<-

      • 9:
         
        CommentAuthorCOR/ira4
      • CommentTime31 Mar 2020 00:03
       
      Jakie gry zostały napisane w tym języku ?
      na pewno A.D.2044,no i chyba większość gier TDCa,zna ktoś jakieś inne ?
      • 10: CommentAuthorzbyti
      • CommentTime31 Mar 2020 00:03 zmieniony
       

      IRATA4:

      Jakie gry zostały napisane w tym języku ?
      na pewno A.D.2044,no i chyba większość gier TDCa,zna ktoś jakieś inne ?

      Tak widziałem jedną z gier TDC napisaną w FORTH. Ja nie wiem ale customowy słownik był zbudowany z samych wulgaryzmów - a słowo startujące program było hasłem prosto z Seksmisji.

      Mało tego, w prywatnej wiadomości @TDC chwalił mi się, że jego gry w Action! to ściema. Dawno temu @TDC napisał kompilator FORTH -> Acion! tylko po to by uchodzić za programistę tego języka.

      @TDC opublikował byś w końcu ten kompilator :]
      • 11:
         
        CommentAuthorCOR/ira4
      • CommentTime31 Mar 2020 01:03 zmieniony
       
      Tak też można.
      więc pomijając gry TDCa w Action! to znacie jakieś napisane w Forth ? ciekaw jestem jak radzi sobie ten język z grami.
      Edit
      bo skoro nawet jest specjalna wersja ze słownikiem ułatwiającym pisanie gier,do tego w książce piszą o wielu portach arcade napisanych w tym języku więc i szansa na znalezienie perełek również jest:),no niekoniecznie w bibliotece JIL;),ale podobno w przypadku tego języka,konwersja jest stosunkowo prosta.
      • 12: CommentAuthorAdam
      • CommentTime31 Mar 2020 01:03
       
      W Polsce chyba tylko Roland Pantoła publikował gry w Forth. Na Atarimanii lista gier w kategorii "Compiled FORTH" wygląda tak: ->link<-
      • 13: CommentAuthorzbyti
      • CommentTime31 Mar 2020 01:03 zmieniony
       
      @IRATA4

      Co do gier w FORTH to wymieniano je w wątkach na AOL i AA więc sobie odszukaj.

      EDIT: @Adam mnie uprzedził w tej kwestii.

      FORTH bez wstawek w ASM nie jest dość wydajny by pisać w nimi gry arcade - przeprowadzałem testy wydajności, możesz odszukać.

      Była specjalna wersja FORTH do pisania gier (także arcade) na wszystkie znaczące platformy 8-bit (Spectrum/CPC/C64) oprócz Atari o nazwie White Lightning ->link<- ->link<-
      • 14:
         
        CommentAuthorCOR/ira4
      • CommentTime31 Mar 2020 01:03
       
      ...oprócz Atari:(.
      • 15: CommentAuthorAdam
      • CommentTime31 Mar 2020 01:03
       

      zbyti:

      Była specjalna wersja FORTH do pisania gier (także arcade) na wszystkie znaczące platformy 8-bit (Spectrum/CPC/C64) oprócz Atari o nazwie White Lightning

      A możesz wskazać jakiś link z informacją, że to wyszło na Amstrada CPC? Tak na szybko nie mogę znaleźć.
      • 16: CommentAuthorzbyti
      • CommentTime31 Mar 2020 01:03 zmieniony
       
      @Adam mój błąd. Leciałem z pamięci a okazuje się, że tej firmy na Amstrada wyszedł tylko Laser Genius i Laser Basic a White Lighting nie.

      Tak pokazuje mój katalog retro ;)
      • 17: CommentAuthorAdam
      • CommentTime31 Mar 2020 02:03
       
      No więc może nie przesadzajmy, że jakoś negatywnie wyróżnili małe Atari - Oasis Software było chyba brytyjską firmą, tam w okolicach 1984 roku popularniejsze były komputery BBC Micro, Oric, a dla nich też nie powstała wersja "White Lightning" :)
      • 18: CommentAuthorzbyti
      • CommentTime31 Mar 2020 02:03
       
      @Adam nie miałem takiej intencji, po prostu jak gromadziłem ten soft tak zapamiętałem.

      Po za Amstrad / C64 / A8 / Spectrum to inne komputery nie funkcjonują w mojej świadomości, Amstrada to i tak widywałem tylko na reklamach w gazetach a o istnieniu MSX trzeba mi jeszcze teraz przypominać :D

      Dobrze, jak tak stawiasz sprawę to prostuję: wyszło tylko na C64 i ZX Spectrum :]
      • 19: CommentAuthorAdam
      • CommentTime31 Mar 2020 02:03
       
      @zbyti:
      Domyślam się, że nie miałeś takiej intencji, ale trochę tak wyszło. Jak czytam wypowiedź Iraty4 "...oprócz Atari:(", to czuję, że niepotrzebnie budzą się demony "na Atari nie było" z polskiej rzeczywistości końca lat 80. i 90. ;)

      Było więcej popularnych w UK platform 8-bitowych, a oni wydali tylko na dwie najbardziej u nich popularne - tak, takie zdanie lepiej przedstawia kontekst.
      • 20: CommentAuthorMater
      • CommentTime31 Mar 2020 13:03
       
      A czy to nie przypadkiem nie zalezy od tego jak forth jest zaimplementowany ? Np DurexForth na C64 jest bardzo zoptymalizowany i w testach jest 50x szybszy od BASICa. Nie wiem jak to sie ma wzgledem assemblera :P. BTW jednak przerzucilem sie na FIGFortha 1.1.
      • 21: CommentAuthorzbyti
      • CommentTime31 Mar 2020 13:03 zmieniony
       
      @Mater to zależy też do jakiego BASIC porównujesz, ten na C64 to jedna z najgorszych implementacji ever ;)

      FIGFortha 1.1 - nie udało mi się poprawie działającej kopii znaleźć na A8. Dużo się nie bawiłem ale z każdym obrazem jaki używałem miałem jakiś problem.

      Przypomnę wydajność SIEVE w moich testach (ten kanoniczny bench, który mylnie nazwałem fejkiem a co wytropił @ilmenit):

      MADS 2.1.0 (opt)       SIEVE:    440 ticks in 10 iterations
      CC65 2.1.8 (opt) SIEVE: 602 ticks in 10 iterations
      Mad Pascal 1.6.4 (opt) SIEVE: 644 ticks in 10 iterations
      Millfork 0.3.14 (opt) SIEVE: 701 ticks in 10 iterations
      Mad Pascal 1.6.4 SIEVE: 739 ticks in 10 iterations
      Millfork 0.3.14 SIEVE: 791 ticks in 10 iterations
      Action! 3.7p SIEVE: 1003 ticks in 10 iterations
      Advan BASIC (opt) SIEVE: 1050 ticks in 10 iterations
      Quick 1.6 SIEVE: 2022 ticks in 10 iterations
      Quick 2.2 SIEVE: 2199 ticks in 10 iterations
      PL65 SIEVE: 3853 ticks in 10 iterations
      FastBasic 4.0 FBI SIEVE: 6312 ticks in 10 iterations
      Advan BASIC SIEVE: 6800 ticks in 10 iterations
      fig-Forth 1.1 SIEVE: 8482 ticks in 10 iterations
      Turbo-BASIC XL 1.5 [C] SIEVE: 16880 ticks in 10 iterations
      Turbo-BASIC XL 1.5 SIEVE: 46060 ticks in 10 iterations
      Atari BASIC SIEVE: 133960 ticks in 10 iterations

      Wiec sam sobie policz ile razy jest szybszy od atarowskiego basica ;)

      Chociaż już nie pamiętam czy najszczęśliwiej było to w Atari BASIC napisane i wzięte do tabelki. Można było tam przyspieszyć inicjalizację tablicy metodą o której przypomniał @xxl i jeszcze parę sztuczek o których nie mam pojęcia a on ma, więc różnica by zmalała.

      Generalnie z powyższego powodu wyniki Atari BASIC i Turbo Basic możesz odrzucić. Za to masz porównanie do ASM.
      • 22:
         
        CommentAuthorCOR/ira4
      • CommentTime31 Mar 2020 13:03
       
      o,MADS szybszy od Action! !?
      Ja kiedyś brałem się za Forth,z uwagi na to że używa słów i jest dla mnie przyswajalny i logiczny,ale chyba zacznę bawić się w Turbo Basic bo demka w nim fajnego się nie napisze...
      DO MADS/a Wojtek robił świetny niezbędnik do nauki,ale nie dokończony,samemu to rozgryźć to trudna sprawa .
      Najlepszy jednak jest Asembler,fakt że nie mamy nic zdefiniowanego,ale przez to też żadnych ograniczeń ;).
      • 23: CommentAuthorMater
      • CommentTime31 Mar 2020 13:03
       
      A dalbys rade zbyti zrobic ten sam benchmark uzywajac volksfortha ? :D
      • 24: CommentAuthorzbyti
      • CommentTime31 Mar 2020 13:03 zmieniony
       
      Dałbym ale Ty też byś dał ;) ->link<-



      \ Sieve Benchmark
      8192 CONSTANT SIZE
      0 VARIABLE FLAGS
      0 FLAGS !
      SIZE ALLOT

      : DO-PRIME
      FLAGS SIZE 1 FILL ( set array )
      0 ( 0 COUNT ) SIZE 0
      DO FLAGS I + C@
      IF I DUP + 3 + DUP I +
      BEGIN DUP SIZE <
      WHILE 0 OVER FLAGS + C! OVER + REPEAT
      DROP DROP 1+
      THEN
      LOOP
      • 25: CommentAuthorMater
      • CommentTime31 Mar 2020 14:03
       
      Dzieki @zbyti :). Jak wroce z pracy to sobie zapuszcze tego benchmarka - ciekawy jestem jaki bedzie wynik dla innych forthow :).
      • 26:
         
        CommentAuthorCOR/ira4
      • CommentTime31 Mar 2020 14:03
       
      @zbyti to ty nie znasz MSXa ???
      Ja niebawem będę miał na stanie egzemplarz,więc jak będziesz na party to chętnie udostępnię .
      • 27: CommentAuthorMater
      • CommentTime31 Mar 2020 14:03
       
      Tak btw kiedy i gdzie jest party ? :)
      • 28: CommentAuthorzbyti
      • CommentTime31 Mar 2020 14:03
       
      @IRATA4 tak jak znam prawie cały świat z globusa tak wiele 8-bit też znam ale z emulacji ;)

      Po prostu jako Polak z PRL gdy mówię, nie wdając się w szczegóły, o 8-bit to mam na myśli Spectrum, Atari i C64. Tak naprawdę Amstrad to już dla mnie egzotyka.

      Ale dzięki za propozycję. Może w 2021 skorzystam ;)
      • 29:
         
        CommentAuthorCOR/ira4
      • CommentTime31 Mar 2020 14:03
       
      @zbyti
      ja znam gdyż na tym komputerze początek miała seria METAL GEAR,prawdziwy MGS,nie to co Nesowy port,kiedyś nie mogłem uwierzyć że taki skromny komputer(w sensie 8Bit)miał takie gry,Gdyby tak łamerykańce wzięli jego rodzinę w niewolę i Kojima urodził by się w USA to może mielibyśmy MGSA z platfusem(prostokątny piksel) na JIL ;).
      • 30: CommentAuthorzbyti
      • CommentTime31 Mar 2020 14:03 zmieniony
       
      @IRATA4 MSX2 to jest dopiero wypas! Obadaj SD Snatcher :]

      dobra, koniec offtopa ;)
      • 31:
         
        CommentAuthorCOR/ira4
      • CommentTime31 Mar 2020 14:03
       
      znam Snatchera mam na CD (MEGA DRIVE).
      Wypas,do tego zdaje się że jest w pełni kompatybilny z poprzednikiem,była nawet wersja 16BIT ale to już inna bajka.
      W sumie to chyba podobny trochę do Amstrada ?
      • 32: CommentAuthorzbyti
      • CommentTime31 Mar 2020 14:03 zmieniony
       
      SD Snatcher to "trochę" inna wersja od tej MegaCD i jest tylko na MSX2 ->link<-
      • 33: CommentAuthorMater
      • CommentTime31 Mar 2020 16:03
       
      A mozecie polecic jakas ksiazke albo miejsce gdzie przystepnie mozna nauczyc sie jak grafika w Atarce jest zorganizowana?
      • 34: CommentAuthorzbyti
      • CommentTime31 Mar 2020 18:03
       
      Jakiś materiały oczywiście mam, ale nic nie polecę, są na tym forum ludzie w wiele bardziej kompetentni ode mnie.

      Sam chętnie zobaczę jakieś rekomendacje.
      • 35:
         
        CommentAuthorimmolator
      • CommentTime1 Apr 2020 13:04
       
      Kurde, Forth. Chyba już na zawsze pozostanie dla mnie takim Haskellem tamych czasów :D Pamiętam jak w monitorze dyskowym podglądałem ciągi znaków i próbowałem tego używać.

      Co do książek w zakresie organizacji grafiki, to chyba najlepiej De Re Atari:

      ->link<-

      wersja po polsku:
      ->link<-
      • 36:
         
        CommentAuthorKaz
      • CommentTime1 Apr 2020 14:04
       
      Mater - przejrzyj Bibliotekę Atarowca - tam sporo książek w różnym stopniu zaawansowania. O grafice możesz poczytać na przykład w "Atari Basic" Miguta. Też się przydaje do pojęcia, jak to działa. Aczkolwiek zawsze trzeba zachować zasadę jak na drodze :) - "ograniczonego zaufania", bo to wiedza zbierana w latach 80-tych, z dostępnych wówczas materiałów.
      • 37:
         
        CommentAuthorimmolator
      • CommentTime1 Apr 2020 15:04
       
      @Kaz, dzięki za link do książki. Nie wiem dlaczego do tej pory po nią nie sięgnąłem. Jest genialnie napisana. Pierwsze rozdziały to skarby do cytowania:

      "Jest on pod tym względem językiem niezwykłym, bowiem tworzy sam siebie. Niektórzy żartobliwie pytają, czy w ogóle FORTH istnieje."

      "poznawanie języków programowania staje się ważnym składnikiem podnoszenia ogólnego poziomu wiedzy każdego Polaka,w tym zwłaszcza wchodzących w życie pokoleń."

      Gdyby Duddie ją drukował, biorę w ciemno.

      Sorki za delikatny offtop Panowie.
      • 38:
         
        CommentAuthorKaz
      • CommentTime16 Apr 2020 21:04 zmieniony
       
      A tak przy okazji grzebania w starociach, znalazłem artek ze stycznia 1984 roku na temat implementacji Fortha na Atari, dostępnych w owym roku.