atarionline.pl Action początki - 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: CommentAuthorAndT1975
      • CommentTime25 Dec 2018 17:12
       
      Witam. Chcę zacząć zabawę z Action! ale im więcej czytam tym jak w tym lesie co raz więcej drzew.
      Po pierwsze usilnie szukam cross kompilatora na PC. Na Effectusa trafiłem ale nie wiem co ma być plikiem tzn effectus filename [parameters] , jaki plik jest na wejściu kompilatora ? Tekstowy ? Czyli piszę kod w notatniku i zapisuję go jak ?
      No ale nawet jeśli tak to ma wyglądać to i tak droga do weryfikacji działania pisanego kodu jest utrudniona.
      Widziałem zapis link poniżej że była próba dodania definicji Action do Notepad++ ale nie wiem jak to zrobić. Import jest plikiem xml. Tylko co to da. Może sama składnia ale kompilacji w dowolnej chwili pisania kodu nie będzie.

      Zatem czy jest szansa na pisanie i kompilowanie kodu bez emulatora ? Może czegoś jeszcze nie znalazłem ?

      ->link<-
      • 2: CommentAuthorgreblus
      • CommentTime25 Dec 2018 19:12
       
      Witaj.

      Rozwój effectusa odkąd autor zaczął tworzyć Mad Studio zupełnie się zatrzymał i może nie powinienem tego pisać, ale jeśli szukasz narzędzi PC-towych to od razu zacznij od Mad Pascala, a naturalnym krokiem będzie zabawa mads-em, którego i tak z Mad Pascalem będziesz używał. Action! na dzień dzisiejszy jest super ciekawostką i warto się nim pobawić, ale jeszcze bardziej warto poznać aktualnie rozwijane narzędzia :)
      • 3: CommentAuthorAndT1975
      • CommentTime25 Dec 2018 20:12
       
      greblus : to mnie przekonuje co piszesz ; widziałem już taki wątek na forum zachwalający Mad Pascala. Lekko opadły mi ręce bo 3 dni szukałem o kompilowaniu Action na PC i nic. I tak nie da mi to spokoju. Spróbuję wyciszyć to jak piszesz Mad Pascalem.
      • 4:
         
        CommentAuthorYosh
      • CommentTime25 Dec 2018 20:12
       
      Jeżeli Cię to interesuje, mogę opisać swój Actionowy setup.

      najfajniej pisze się w zewnętrznym programie a action tylko include główny plik z jakiegoś H7: (jest wtedy full ramu na kod wynikowy)

      Natomiast mad pascal wydaje się, fajnym entry point.
      • 5: CommentAuthorAndT1975
      • CommentTime25 Dec 2018 20:12
       
      Yosh : oczywiście że interesuje. Poproszę. A co to H7 ?
      • 6: CommentAuthorAndT1975
      • CommentTime25 Dec 2018 21:12
       
      Hmmm ciekawe. Znalazłem Mad Studio. Może już lepiej przestać szukać :)
      ->link<-
      • 7: CommentAuthorgreblus
      • CommentTime25 Dec 2018 21:12
       
      Andrzej, jeśli Action! będzie nadal spędzał Ci sen z powiek, zerknij do mnie na bloga, jest tam trochę moich eksperymentów sprzed lat:

      ->link<-

      a tu moje początki ;):

      ->link<-

      I jeszcze taka opcja (pomysł Kuby Husaka z opcją -turbo w atari800):

      ->link<-

      Trzeba "nagrać" otwieranie pliku źródłowego, kompilację, zapis do pliku na urządzeniu H: (katalog z PC widziany przez atari800 jako dysk H:):

      atari800 -cart Action\!.rom -cart-type 15 -record tmp

      a potem to odtworzyć w trybie turbo:

      atari800 -cart Action\!.rom -cart-type 15 -playback tmp -turbo

      Trzeba tylko sprytnie obsłużyć zmiany końców linii i nazwy pliku ze skryptu na PC i można używać karta Action! w emulatorze z mega prędkością kompilacji (-turbo). Trochę szalone, ale używałem tego kilka lat temu z dobrym skutkiem ;).
      • 8:
         
        CommentAuthorYosh
      • CommentTime26 Dec 2018 00:12 zmieniony
       
      Końców linii nie trzeba obsługiwać - robi to urządzenie H.

      Najłatwiejsza konfiguracja to emulator z urządzeniem H.

      W głównym edytorze wystarczy mieć kod postaci:
      INCLUDE "H6:MAIN.ACT"

      (H6 to takie H1, tylko że z tłumaczonymi końcami lini.) Potrzebna jest łata CIO (dostępna w Atari800 i Altirrze napewno)
      wychodzisz do monitora i w nim tylko "C" wciskasz aby kompilować
      cały kod piszesz sobie dowolnym zewnętrznym edytorze (końce linii unixowe).
      • 9: CommentAuthorgreblus
      • CommentTime26 Dec 2018 01:12
       
      Yosh racja, H6: w Altirra i atari800 załatwia sprawę konwersji (któryś już raz o tym zapominam ;)).
      • 10: CommentAuthorzbyti
      • CommentTime11 Apr 2020 22:04
       
      [Desktop Entry]
      Type=Application
      Encoding=UTF-8
      Name=Action!
      GenericName=
      Comment=
      Icon=/home/zbyti/.icons/custom/atari.svg
      Exec=/usr/bin/atari800 -cart /home/zbyti/Retro/Atari/tools/Action/car/ACTION-37-ROM-Plain-16k.car
      Terminal=false
      Categories=Application;X-Debian-Applications-Emulators;

      Może się komuś przyda przed kursem TDC jeżeli tak jak ja nie używa pod Linuxem Altirry :]
      • 11: CommentAuthorfalcon030
      • CommentTime12 Apr 2020 13:04
       
      @TDC:
      rozumiem, że na starcie nie ma znaczenia, której wersji będziemy używać, ale jak się rozkręcimy to kto wie :-)

      Możesz wskazać sevresowski wzór poprawnego pliku *.CAR z Action do naszych nauk?

      Najnowszy po dacie to chyba ten:
      Action! v3.7P (2015-06-08)(OSS)(US)[f Peter Dell].car
      ?
      • 12: CommentAuthorzbyti
      • CommentTime12 Apr 2020 13:04 zmieniony
       
      Ja używam (zbadawszy sprawę jakiś czas temu):
      Action! greater than version 3.6 ; thanks to JAC! for compiling and fixing the known bugs.

      * ACTION-37-ROM-Plain-16k.car
      This is the latest build of the ROM version 3.7P by JAC!.
      The file is type 2 standard 16 KB cartridge that can be used directly in emulators,
      in a standard 16k cartridge without bank switching logic, and in multi ROM emulation cartridges
      like The!Cart which support this type of standard cartridge directly.

      ->link<-
      • 13: CommentAuthorzbyti
      • CommentTime12 Apr 2020 13:04
       
      @Kaz wspominałeś coś o książce od @Krolla. Dasz radę wrzucić?
      • 14: CommentAuthorzbyti
      • CommentTime12 Apr 2020 19:04 zmieniony
       
      Dla początkujących jakieś tipy zebrane na AOL i Reference Card potraktowany z niemieckiego GT, więc mogą być jakieś kwiatki.
      • 15: CommentAuthorzbyti
      • CommentTime12 Apr 2020 20:04 zmieniony
       
      No i jeszcze zasoby nieocenionego Charliego ;)
      • 16: CommentAuthorfalcon030
      • CommentTime12 Apr 2020 22:04
       
      Jeśli chodzi o "Action Reference Manual" to jest na sieci (np. ->link<- ale też nie jest idealnie napisane ...

      Nie mogę się tam doszukać np. banalnej rzeczy - jak zwiększyć wskaźnik (adres wskazywany) o +1 ..

      CARD POINTER WSKDST
      CARD DST=$2000
      WSKDST=@DST
      CARD POMOCNIK

      WSKDST==+1 ; błąd nr 8
      WSKDST=WSKDST+1 ; bląd nr 8

      Chyba muszę poczekać na kursy TDCa :-)

      Mogę to obejść przez dodatkową zmienną:
      WSKDST=@DST+POMOCNIK ; to się kompiluje OK i działa
      ale chciałbym bezpośrednio :-)
      • 17: CommentAuthorzbyti
      • CommentTime12 Apr 2020 22:04 zmieniony
       
      @falcon030 Action Reference Manual masz na pełnym wypasie tutaj ->link<-

      A co do zwiększania wskaźnika, to chyba coś takiego ogarniałem przy moich testach, za parę godzin obadam jak to było.
      • 18: CommentAuthorzbyti
      • CommentTime13 Apr 2020 00:04 zmieniony
       
      @falcon030 nie mam błędu kompilacji

      CARD DST=[0]
      CARD POINTER WSKDST

      PROC MAIN()

      PRINTF("%E %U @DST",@DST)
      PRINTF("%E %U WSKDST",WSKDST)
      PRINTF("%E %U @WSKDST",@WSKDST)

      WSKDST=@DST

      PRINTF("%E %U @DST",@DST)
      PRINTF("%E %U WSKDST",WSKDST)
      PRINTF("%E %U @WSKDST",@WSKDST)

      WSKDST==+1

      PRINTF("%E %U @DST",@DST)
      PRINTF("%E %U WSKDST",WSKDST)
      PRINTF("%E %U @WSKDST",@WSKDST)

      RETURN



      Na zamieszczonej liście błędów ty miałeś:|8|Variable not declared.
      • 19: CommentAuthorzbyti
      • CommentTime13 Apr 2020 01:04 zmieniony
       
      @falcon030 A może chodzi Ci o to?
      CARD DST=[0]
      CARD POINTER WSKDST

      PROC MAIN()

      PRINTF("%E %U DST",DST)
      PRINTF("%E %U @DST",@DST)
      PRINTF("%E %U WSKDST",WSKDST)
      PRINTF("%E %U @WSKDST",@WSKDST)

      WSKDST=@DST

      PRINTF("%E %U DST",DST)
      PRINTF("%E %U @DST",@DST)
      PRINTF("%E %U WSKDST",WSKDST)
      PRINTF("%E %U @WSKDST",@WSKDST)

      WSKDST^==+1

      PRINTF("%E %U DST",DST)
      PRINTF("%E %U @DST",@DST)
      PRINTF("%E %U WSKDST",WSKDST)
      PRINTF("%E %U @WSKDST",@WSKDST)

      RETURN



      Oczywiście oba przykłady działają z:
      CARD DST=$2000

      EDIT: @falcon030 tak nawiasem, sorki, że Cię pomyliłem z @drac030 z AtariAge ;)
      • 20: CommentAuthorzbyti
      • CommentTime13 Apr 2020 10:04 zmieniony
       
      @falcon030 napisałem jeszcze jeden przykład z użyciem POINTER ;)

      CARD SAVMSC=88
      CARD POINTER SCREEN

      PROC MAIN()
      BYTE I=[0]
      SCREEN=SAVMSC

      SCREEN==+160

      FOR I=0 TO 9
      DO
      SCREEN^=33+I
      SCREEN==+1
      OD
      RETURN



      Mam nadzieję, że pomogłem :] Czekam na te materiały co obiecałeś ;)

      @Kaz jeżeli to czytasz ;) udostępnisz książkę od @Kroll?
      • 21: CommentAuthorfalcon030
      • CommentTime13 Apr 2020 14:04
       
      @ZBYTI:
      Dzięki za wsparcie :-)
      Przepisuję "z głowy" mój projekt z QuickAssemblera z przed 25 lat (hie, hie) na Action! w tzw. wolnych chwilach (Święta, rodzina itp) ;-)

      Błąd 8 był dlatego, że skopiowałem tutaj nie po kolei linijki (deklaracja zmiennej była za nisko).
      Ogólnie wiem co to wskaźniki i jak POWINNY działać.
      Skoro w Action! wskaźnik to zmienna typu CARD to chyba jej inkrementowanie nie powinno być nielegalne?
      Sprawdzę jeszcze na innej wersji Action!, może tu jest problem.

      Czy dla Ciebie jest jasna różnica w zapisach:
      <code>
      SCREEN=SAVMSC
      SCREEN=@SAVMSC
      </code>
      ?

      Kursu nie mogę załączyć tutaj, bo:
      "Napotkano pewne problemy
      Wystąpił problem przy sprawdzaniu autentyczności wysłanych informacji."
      Poproszę Kaza o ratunek :-)
      • 22: CommentAuthorfalcon030
      • CommentTime13 Apr 2020 14:04 zmieniony
       
      Dla ew. potomnych:
      TO NIE BYŁ PROBLEM z samą obsługą wskaźnika.
      Linijkę wyżej użyłem liczby szesnastkowej (AA) i zapomniałem dodać symbol $ z przodu (powinno być: $AA).

      Kompilator uparcie wskazywał błąd w linijce z inkrementacją wskaźnika ..

      -------------------------

      Czy ktoś zna sztuczkę (co przełączyć), żeby w trybie wstawiania tabulator zabierał ze sobą tekst?
      • 23: CommentAuthorzbyti
      • CommentTime13 Apr 2020 14:04 zmieniony
       

      falcon030:

      Czy dla Ciebie jest jasna różnica w zapisach:
      <code>
      SCREEN=SAVMSC
      SCREEN=@SAVMSC
      </code>
      ?

      Tak, jest jasna, wytłumaczyć?
      • 24: CommentAuthorfalcon030
      • CommentTime13 Apr 2020 14:04 zmieniony
       
      Poproszę, najwyżej TDC będzie miał mniej roboty :-)
      • 25: CommentAuthorzbyti
      • CommentTime13 Apr 2020 14:04 zmieniony
       
      Typ CARD jest dwubajtowy, więc zapis

      CARD SAVMSC=88

      to deklaracja zmiennej która będzie przechowywać wartość komórek 88 i 89. Pod tymi adresami (lo,hi) trzymany jest adres początku pamięci ekranu.

      Dlatego zamiast wskazywać (dla SCREEN) na adres SAVMSC za pomocą operatora @ (co dało by mi wartość 88, patrz post #18 na zrzut ekranu) w tym przypadku byłem zainteresowany wartością zmiennej SAVMSC, bo ona wskazuje na miejsce gdzie się zaczyna w pamięci ekran, po którym poruszałem się już za pomocą wskaźnika wypisując litery.

      CARD SAVMSC=88
      CARD POINTER SCREEN

      PROC MAIN()
      BYTE I=[0]
      SCREEN=SAVMSC

      PRINTF("%E %U @SAVMSC",@SAVMSC)
      PRINTF("%E %U SAVMSC",SAVMSC)

      SCREEN==+240

      FOR I=0 TO 9
      DO
      SCREEN^=33+I
      SCREEN==+1
      OD
      RETURN

      • 26: CommentAuthorzbyti
      • CommentTime13 Apr 2020 19:04
       

      falcon030:

      Kursu nie mogę załączyć tutaj, bo:
      "Napotkano pewne problemy
      Wystąpił problem przy sprawdzaniu autentyczności wysłanych informacji."
      Poproszę Kaza o ratunek :-)

      Możesz wrzucić to na dysk w chmurze microsoftu lub google i tutaj dać tylko link.

      OK. Poczekam :]
      • 27: CommentAuthorfalcon030
      • CommentTime13 Apr 2020 20:04
       
      Chmury mam na 100% zapełnione :-)

      Co do wskaźników, to pytanie raczej powinno dotyczyć różnicy w deklaracji zmiennych:
      CARD SAVMSC=88 => odwołanie do słowa (adresu) w pamięci
      CARD SAVMSC=[88] => zwykła zmienna mająca wartość
      :-)
      No i po zrozumieniu wskaźniki działają jak powinny.
      Najlepiej się uczyć na własnych błędach.

      Sklejony materiały:
      ->link<-
      • 28: CommentAuthorzbyti
      • CommentTime13 Apr 2020 21:04 zmieniony
       
      @falcon030 dziękuję za materiały! :]

      Były ->link<- ale musiałbym sam składać a Ty to zrobiłeś elegancko :)
      • 29:
         
        CommentAuthorKaz
      • CommentTime14 Apr 2020 01:04
       
      @Kaz wspominałeś coś o książce od @Krolla. Dasz radę wrzucić?


      Tak, Duddie dostał ode mnie książkę od Krolla do zrobienia skanów/OCR. Wrzuciłem do Biblioteki jako "Action! Opis po polsku" i dałem znać na głównej. Kompilat Falcona030, jak już zresztą widziałeś, też dołączyłem. Gdybyście znaleźli jeszcze jakieś materiały to polecam zamieszczać w Bibliotece, żeby wszyscy mogli łatwo znaleźć i skorzystać.