Jestem tu od dosyć dawna, zaglądam na przestrzeni lat częściej lub rzadziej, ale w zasadzie dotąd się nie udzielałem. Teraz mam konkretny powód. Chodzi o programowanie na małe Atari.
Pierwsze kroki stawiałem w tym temacie w wieku 5-6 lat przepisując listingi z Bajtka, ale można powiedzieć, że na tym się niestety skończyło. Nigdy nie dane mi było zostać programistą. Myślę, że zabrakło kombinacji wtajemniczonych znajomych i odpowiedniego samozaparcia. Prawdopodobnie w odwrotnej kolejności, bo literatura zawsze istniała.
Ostatnie lata, częściowo ze względu na zawodowe aspekty, częściowo ze względu na dostatek czasu w pandemicznych realiach pozwoliły mi w końcu nieco wgłębić się w temat współczesnego kodowania. Dalej jest to poziom amatorski. Coś tam jednak już potrafię, ale co ważniejsze trochę lepiej rozumiem maszyny i sposób porozumiewania się z nimi.
W wolnym czasie, którego znów za wiele nie ma, zacząłem wgłębiać się w najczystszą, najbardziej efektywną i najbardziej elegancką formę programowania - w wydaniu 8-bitowym czyli de facto MOS 6502. W sieci jest coraz więcej materiałów traktujących o sprzęcie, assemblerze etc., ale najczęściej dotyczą głównie NES'a, urywają się w trakcie realizacji serii albo nie potrafią poukładać w głowie komuś na moim poziomie. A moje serducho zdecydowanie mocniej bije do peweksowego 130XE niż komunijnego IQ-502.
Wpadł mi do głowy ostatnio luźny pomysł. Chodzi o zorganizowanie warsztatów/bootcampa/szkolenia/zjazdu/cokolwiek, na którym spotkali by się z jednej strony ludzie zainteresowani przyswojeniem wiedzy o kodowaniu w języku maszynowym na wielkie małe Atari, a z drugiej ludzie, którzy taką wiedzę posiadają i nie mają problemu z jej przekazaniem.
Zakładam, że jeśli udałoby się to zorganizować, adepci pokryliby koszty pobytu siebie i mentorów w jakimś przyjemnym miejscu (niekoniecznie w Ritzu :-) oraz gratyfikację dla prowadzących. Sprawa ze względów organizacyjnych i moich personalnych do zrealizowania za kilka miesięcy najwcześniej, ale pytanie podstawowe czy z jednej i drugiej strony (czyli tak naprawdę po tej samej stronie ;-) znalazłaby się stosowna masa krytyczna pozwalająca na realizację całego przedsięwzięcia. Później możemy przejść do szczegółów wszelkiej maści.
Być może alternatywnie są jakieś dobre materiały w sieci, do których nie dotarłem. Będę wdzięczny za wszelkie podpowiedzi, ale i tak mam przekonanie, że przekazanie wiedzy bezpośrednio byłoby znacznie efektywniejsze. Wszystkie te sztuczki i kruczki nie przewidziane nawet przez architektów sprzętu... No i co spotkanie twarzą w twarz z ludźmi o wspólnych zainteresowaniach to jednak spotkanie...
Dzięki serdeczne @mono. Na niektóre z tych źródeł rzeczywiście trafiłem. Może trzeba będzie spróbować wgryźć się ponownie. Lost Party dobrze się zapowiada.
Jeśli chcesz szkolenie prosto od jednego z najlepszych koderów na atari to wal do JAC'a: ->link<-
Przy okazji bardzo polecam zapoznanie się z jego WUDSN - być może można sobie skonfugurować lepsze IDE, ale jego paczka praktycznie od strzału zapewnia niesamowicie dobre środowisko. (jeśli jesteś na linuchu, to nie instaluj eklipsa ze snapa - jakoś nie udało mi się go dobrze skonfigurować. instaluj normalną wersję z eclipse.org)
Wow! Mimo poszukiwań dużo mnie jednak ominęło. Zwalam to na karb algorytmów Googla i YouTube oraz rozdrobnionego nazewnictwa Atari 8-bit ;-) Dzięki serdeczne @pirx, @MaW, @George. Mam zdecydowanie co nadrabiać, ale idei szkoleniowego zjazdu nie porzucam jeszcze na tę chwilę :-)
@BartoszPe - doskonale Cię rozumiem. Mimo wielu materiałów często miewałem potrzebę o dopytanie o jakiś szczegół, który za cholerę nie chciał działać tak jak powinien, w oparciu o to, co się nauczyłem. Na przykład nie łapię do końca jak działa przełączanie tych wszystkich banków pamięci, gdzie zaangażowany może być kartridż, basic, VBXE i dodatkowa pamięć.
@tebe, jak się wie, to się wie. Ale: - które bity odpowiadają za wył/wł Basica i adres banku - które bity odpowiadają za wył/wł OS - adres banku - ogarnięcie bitów rozszerzenia pamięci i adres - ogarnięcie kartridża, tu on właściwie sam się mapuje na początku, czasem można go wyłączyć, a czasem nie. - 2 adresy. - przeświadczenie, że przełączenie banków trwa chwilę - NIE, jest natychmiastowe (chyba, że w kartridżu jest jakieś specjalne opóźnienie) - ogarnięcie banków w trybie 130xe - gdzie CPU i ANTIC mają oddzielny dostęp. - i jeszcze selftest jak się mapuje i jaki adres - no i przeróbka MAPRAM i jaki adres - tak naprawdę kartridż nie musi mapować pamięci, może nic albo np. własne rejestry i że zawsze pod 8000 bądź a000 - kartridż startuje z bffa, czyli jak będzie mapowany pod 8000 to nie wystartuje...
Hmmm, to wszystko jest opisane tylko porozpiepszane po całym Internecie. Jakbyś chciał znaleźć to w "kupie", nie da rady. Więcej się naszukasz niż nauczysz.
@tebe @jhusak @Zenon Oczywiście macie rację. :) Co ja się naszukałem, ale znalazłem, tylko potem nie działało, tak jak myślałem. Np. coś się kaszaniło, jak chciałem wymieniać dane z VBXE z 16KB oknem, jak zdefiniowałem chyba 4KB, to było OK. Dodam, że było to w Action!, więc pewnie dochodzi cart Action! i tu jest pies pogrzebany. Ogólnie pewne setupy, dobre praktyki od starszych kolegów, by się przydały, by nie rozbijać głowy o pozornie oczywiste rzeczy, za to niezwiązane z głównym projektem, nad którym się pracuje.
@BartoszPe Jeszcze takie coś znalazłem, nie oglądałem, ale wygląda obiecująco: ->link<-