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
     
    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 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
     
    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 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
     
    A w sumie mozna tak zrobic :D. Dzieki :)
    • 6: CommentAuthorMater
    • CommentTime30 Mar 2020
     
    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 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
     
    Tak trochę w temacie, tutaj w Bibliotece Atarowca mamy podręcznik do Fortha pana Jana Ruszczyca:

    ->link<-

    • 9:
       
      CommentAuthorIRATA4
    • CommentTime31 Mar 2020
     
    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 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:
       
      CommentAuthorIRATA4
    • CommentTime31 Mar 2020 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
     
    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 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:
       
      CommentAuthorIRATA4
    • CommentTime31 Mar 2020
     
    ...oprócz Atari:(.
    • 15: CommentAuthorAdam
    • CommentTime31 Mar 2020
     

    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 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
     
    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
     
    @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
     
    @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
     
    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 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:
       
      CommentAuthorIRATA4
    • CommentTime31 Mar 2020
     
    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
     
    A dalbys rade zbyti zrobic ten sam benchmark uzywajac volksfortha ? :D
    • 24: CommentAuthorzbyti
    • CommentTime31 Mar 2020 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
     
    Dzieki @zbyti :). Jak wroce z pracy to sobie zapuszcze tego benchmarka - ciekawy jestem jaki bedzie wynik dla innych forthow :).
    • 26:
       
      CommentAuthorIRATA4
    • CommentTime31 Mar 2020
     
    @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
     
    Tak btw kiedy i gdzie jest party ? :)
    • 28: CommentAuthorzbyti
    • CommentTime31 Mar 2020
     
    @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:
       
      CommentAuthorIRATA4
    • CommentTime31 Mar 2020
     
    @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 zmieniony
     
    @IRATA4 MSX2 to jest dopiero wypas! Obadaj SD Snatcher :]

    dobra, koniec offtopa ;)
    • 31:
       
      CommentAuthorIRATA4
    • CommentTime31 Mar 2020
     
    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 zmieniony
     
    SD Snatcher to "trochę" inna wersja od tej MegaCD i jest tylko na MSX2 ->link<-
    • 33: CommentAuthorMater
    • CommentTime31 Mar 2020
     
    A mozecie polecic jakas ksiazke albo miejsce gdzie przystepnie mozna nauczyc sie jak grafika w Atarce jest zorganizowana?
    • 34: CommentAuthorzbyti
    • CommentTime31 Mar 2020
     
    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
     
    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
     
    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
     
    @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 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.