Archeologia czyli ziarenko po ziarenku odgrzebywanie Action! (2)

Skoro postanowiłem się tym Action! pobawić więcej niż w Hello world! to warto by przemyśleć jak do tego podejść, aby zaliczyć jak najmniej fuckupów.

Action! oryginalnie występował jedynie w wersji na karcie plus dwie dodatkowe dyskietki – Runtime and Toolkit. Pierwsza pozwalała na skompilowanie kodu jako samodzielnie działającego programu i nie wymagającego karta/ROMu, druga zawierała trochę dodatkowych bibliotek i procedur. Klepanie dzisiaj w 100% kodu na 8bitowym komputerze to pewnego rodzaju archaizm, co prawda znajdą się tacy, którzy będą z tego robić sztukę, niezależnie od efektowności i efektywności takiego IDE, ale mając ograniczone zasoby czasowe i chęć raczej zrobienia czegoś do końca niż robienia czegoś i niekończenie to wybiorę nowocześniejszą metodę. Takie zabawy z retrokomputerem jako bazą kodowania można zrobić dla zabawy z czymś małym, krótkim i mając dużo czasu.

Dlaczego nie bezpośrednio na Atari:

  • edytor wbudowany w Action! niestety pracuje tylko w 40 kolumnach. Lekki dramat jeżeli wklepiecie linie z kodem i komentarzami 🙂 Oczywiście można edytować sobie kod (który jest tekstowy) w edytorze wspierającym 80 czy 64 kolumny, a potem wczytywać zapisany plik do edytora Action!, ale sprowadza to całość do jednego: piszemy kod gdzie indziej, wrzucamy go do edytora Action!, kompilujemy etc.
  • kwestia backupów, rewizji kodu, komentowania, drukowania – nie muszę tłumaczyć, że z poziomu Atari traciłbym czas na proste rzeczy, a czas to jest coś czego nie mam w nadmiarze.

Czyli skompletowanie prostego i działającego środowiska do pracy:

  • Będę pracował głównie pod Mac OS, więc zainstalowałem Atari800MacX i działa to dość fajnie, bo:
  • – można wklejać tekst ze schowka (z wyłączonym limitem prędkości jest to nawet sensowne szybkościowo),
    – można zapisać tekst na handler “P:” i dostać treść do okienka z dokumentem tekstowym na MacOS.
  • Druga opcja z której korzystam równolegle to Wine i Altirra pod Windows. Dużo bardziej rozbudowany i zaawansowany emulator, ale korzystam z niego głównie do operowania obrazami i zawartościami dyskietek oraz bardziej zaawansowanych konfigów niż Atari 800XL z Rambo i dwoma stacjami stacją dysków 1050 pod DOS 2.5.
  • Gotowe pliki .xex ale też źródła do testowania na realnym sprzęcie (1088XEL+CF3, 800+Incognito, XE GS + Ultimate + SIO2SD czy wreszcie 600XL z 64k/800XL stockowe z SIO2SD) po prostu przerzucam przez obrazy dyskietek .atr – czy na kartę CF czy na SD (SIO2SD) czy po prostu jako .xex do SIDE2. To, że działa na emulatorze to fajnie, ale ma tak samo dobrze działać na realnym sprzęcie. Równie dobrze mogę to przerzucać SIO2PC.
  • Effectus – cross kompilator pod Windows i Linuxa czyli ja znowu pod Wine 🙂 odpaliłem testowo – działa, pewnie będzie miał większe zastosowanie przy większej ilości kodu źródłowego, który może się nie pomieścić w pamięci edytora/kompilera Action!, ale to dalszy etap.

Są dwie wiadomości na start: dobra i zła. Ta dobra – ludzie już przerabiali ten temat, na atariwiki można znaleść sporo informacji, materiałów, obrazów dyskietek, kartów etc. Czyli można zgromadzić sobie jakieś podstawowe startowe rzeczy. Apetyt rośnie dalej i tutaj niestety ta druga wiadomość: wiele bardzo interesujących stron i materiałów zaliczyło już dołek internetowy. Na szczęście z pomocą przyjdzie archive.org i Wayback Machine. Jedna z takich stron to http://joyfulcoder.net – prawdę mówiąc jedna z ciekawszych albo akurat mi przydało się całkiem sporo rzeczy na niej opublikowanych.
https://web.archive.org/web/20120722063641/http://joyfulcoder.net/atari/action/code/

Lista gdzie zajrzeć bez grzebania w martwych już zawartościach stron:

  • Przede wszystkim na AtariWiki i część poświęconą Action! – znajdziemy tam wszystko, co pozwoli wystartować. Obrazy dyskietek, obrazy kartów, manuale (również zaktualizowane), bardzo dużo informacji i bardzo dużo linków – być może nawet za dużo na start i można utonąć, ale warto tam wracać szukając odpowiedzi na napotkane problemy.
  • Jeżeli macie doświadczenie z programowaniem w innych językach typu C, Pascal, BASIC to warto zaraz po skompletowaniu IDE spojrzeć na listę znalezionych błędów – i sposoby aby je omijać. Niestety – nie powstała nowsza wersja Action! niż 3.6 a jest to kombajn połączony edytora, kompilatora i jeszcze paru rzeczy (oryginalnie rezydujących w czterech bankach po 4k i przełączanych wg aktualnej potrzeby działania), nie aktualizowano tego i nie usuwano błędów na zasadzie kolejnych rewizji oprogramowania. To jak uczenie się starożytnej greki czy łaciny.

opulenti atarini multos deos habent

Dlaczego nie polecam suma sumarum cyklu o Action! z Bajtków i Mojego Atari? Mam wrażenie, że jest to żywcem wyrwane z materiałów anglojęzycznych, przy czym – w tych oryginalnych można znaleść to co się szuka szybciej i w większym opracowaniu tematu. Oczywiście – można przez sentyment i z ciekawości zajrzeć do tego pod czym podpisał się Wojciech Zientara.

Wracając do Action! – patrząc na szybko – im głębiej w to wchodzę, tym mam wrażenie większej archeologii. Język niszowy, nie zdobył dużej popularności pomimo bardzo fajnych możliwości i bardzo dobrej wynikowej prędkości po kompilacji. Z czego to wynikało? Forma dystrybucji (cart)? Brak dalszego rozwoju? OSS (Optimised System Software) tworzyło 15 osób, w sumie mieli kilka bardzo dobrych produktów jak MAC/65 i ActioN!, ale niestety też parę niewypałów sprzedażowych jak BASIC XE. W 1988 roku połączyli się z ICD (SpartaDOS). Próbowali swoich sił w sofcie na Apple II, Atari ST, ale raczej bez sukcesów. I znikli. Na marginesie – źródła Action! są dostępne publiczne.

Natomiast już wiem, że większość rzeczy pomimo tego, że ludzie zjedli na tym zęby w latach 80tych i do połowy 90tych jest nadal do “wykopania” – to wrażenie po poczytaniu forów. Z jednej strony fajne, z drugiej – zacząłem gromadzić materiały o tym języku, żeby nie musieć się pytać i robi się pokaźna zawartość folderu na dysku. Może kiedyś scalę to w jedną publikację.

Żeby zdjąć cokolwiek z kupski wstydu lat 80tych potrzebuję na start odczytać grafiki bitmapowe, móc je wczytać z dysku jako dane raw, wyświetlić je najchętniej z dysku (wtedy mam temat doładowania binarek rozkmniniony). Rzecz druga to obsługa klawiatury/joysticka. Poszło szybciej niż myślałem.

Przeskoczenie z Atari BASIC’a nie jest bolesne, daję mu szansę 🙂

W sumie – przestawiając się z jakiegokolwiek innego kompa i nawet szczątkowej trzeba znać przede wszystkim a/ deklaracje zmiennych i wskaźników, b/ operowanie większymi danymi (pamięć RAM i masowa) c/ przekładanie tego na tekst i grafikę, d/ specyficzne dla platformy rozwiązania graficzno/muzyczno/sprzętowe. Skoro człowiek robił coś na jednej platformie, to zrobi też na innej 🙂