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
     
    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
     
    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
     
    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
     
    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
     
    Yosh : oczywiście że interesuje. Poproszę. A co to H7 ?
    • 6: CommentAuthorAndT1975
    • CommentTime25 Dec 2018
     
    Hmmm ciekawe. Znalazłem Mad Studio. Może już lepiej przestać szukać :)
    ->link<-
    • 7: CommentAuthorgreblus
    • CommentTime25 Dec 2018
     
    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 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
     
    Yosh racja, H6: w Altirra i atari800 załatwia sprawę konwersji (któryś już raz o tym zapominam ;)).
    • 10: CommentAuthorzbyti
    • CommentTime11 Apr 2020
     
    N I E A K T Y W N Y
    [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
     
    @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 zmieniony
     
    N I E A K T Y W N Y
    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
     
    N I E A K T Y W N Y
    @Kaz wspominałeś coś o książce od @Krolla. Dasz radę wrzucić?
    • 14: CommentAuthorzbyti
    • CommentTime12 Apr 2020 zmieniony
     
    N I E A K T Y W N Y
    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 zmieniony
     
    N I E A K T Y W N Y
    No i jeszcze zasoby nieocenionego Charliego ;)
    • 16: CommentAuthorfalcon030
    • CommentTime12 Apr 2020
     
    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 zmieniony
     
    N I E A K T Y W N Y
    @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 zmieniony
     
    N I E A K T Y W N Y
    @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 zmieniony
     
    N I E A K T Y W N Y
    @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 zmieniony
     
    N I E A K T Y W N Y
    @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
     
    @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 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 zmieniony
     
    N I E A K T Y W N Y

    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 zmieniony
     
    Poproszę, najwyżej TDC będzie miał mniej roboty :-)
    • 25: CommentAuthorzbyti
    • CommentTime13 Apr 2020 zmieniony
     
    N I E A K T Y W N Y
    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
     
    N I E A K T Y W N Y

    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
     
    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 zmieniony
     
    N I E A K T Y W N Y
    @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
     
    @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ć.