Wybaczcie pytania początkującego, jeżeli "wszystko już gdzieś jest opisane"...
Czy MadPascal ma wsparcie do obsługi Carta? Jeżeli nie ma natywnie, to czy koledzy, którzy mają doświadczenie w tym temacie, byli by chętni podzielić się wiedzą?
Przykładowy scenariusz: używam pamięci karta do ładowania grafiki i innych elementów - np. muzyki dla danego etapu. Rozumiem, że pierw muszę przygotować dane w postaci 16kB bloków, by wcześniej przygotowanym programem ("wątek obok") przenieść je na karta (z możliwością zapisu).
Czy, w momencie inicjalizacji karta, pamięć spod niego będzie dostępna w MadPascalu? Np. by nie tracić pamięci, w pamięci natywnej przechowuję ekran początkowy HighScore i instrukcję. W momencie przejścia do gry inicjalizuję karta, ustawiam odczyt np. z bloku $01, po ukończeniu etapu przełączam na blok $00, gdzie przechowuję dane "międzyetapowe", potem przełączam na $02 - czyli kolejny etap - itd. itp.
...czy taki sam układ danych mogę użyć dla obsługi pamięci rozszerzonej? Rozumiem, że wtedy zapisanie bloków musi dokonać się iteracyjnie przed załadowaniem właściwego programu, następnie zacząć ładowanie głównego modułu, a na koniec przekazać mu sterowanie.
Z dokładnością do tego, że to wersja bardzo beta - praktycznie zintegrowana z danymi na kartridżu (niestety inaczej nie wchodziło na kartridż). Kiedyś popracuję nad zrobieniem tego bardziej uniwersalnie.
No ja dla początkujących to proponuję zrobić zwykły dosowy plik ATR. Najlepiej taki pod 512kB (jak w załączniku). Wszystko tam powgrywać jak trzeba na tym ATR. A potem zamienić ATR za pomocą ATR2JAC na obraz carta (*można też ATR2CAR). Powstanie nam obrazek carta. I na koniec flahser i fizyczny cart od @jhusak i mamy gotowe finalne własne dzieło gotowe do wsadzenia do pudełeczka.
*ATR2CAR produkuje dla S-XEGS, do programowania tego standardu trzeba mieć programator pamięci flash.
Dlatego polecam iść w standard J(atari)Cart512(kB) :)
Gienek, fajnie, śledzę Twój wątek i doceniam opcję uruchamiania obrazu dyskietki z Carta - ale tu nie o taką obsługę pamięci carta chodzi. M.in. przez to, że odpada możliwość korzystania z pamięci Carta jako bloków pamięci bezpośredniej:
Czy, w momencie inicjalizacji karta, pamięć spod niego będzie dostępna w MadPascalu? Np. by nie tracić pamięci, w pamięci natywnej przechowuję ekran początkowy HighScore i instrukcję. W momencie przejścia do gry inicjalizuję karta, ustawiam odczyt np. z bloku $01, po ukończeniu etapu przełączam na blok $00, gdzie przechowuję dane "międzyetapowe", potem przełączam na $02 - czyli kolejny etap - itd. itp.
Jeżeli była by możliwość zapisu do carta bezpośrednio z programu/preloadera, rozwiązanie było by idealne. Rozumiem, że musiało by być dostosowane pod jeden, określony typ karta - ale: _dostępnego_jako_pamięć_ bezpośrednio z programu załadowanego do atari. Czyli tak, jak na komputerze z rozszerzoną pamięcią.
W ATR2CAR domyślnie cart jest wyłączony. Przy pamięci flash 512kB i dyskietce SD 80% carta jest puste. I można sobie je normalnie bankować. Oczywiście jak będziemy chcieli jednocześnie bankować i czytać to będzie konflikt. Ale ten konflikt będzie i przy normalnej pracy.
Przy ambitniejszym projekcie niestety trzeba wszystko projektować specjalnie pod cartridge. Mało tego, pod konkretny cartridge. Bo zupełnie inaczej jest jak się przełącza bloki 8kB a inaczej 16kB. Jakby nie patrzeć 16kB to 1/4 zakresu pamięci całego ATARI. Odejmując ROM to tak na oko mamy tylko połowę przestrzeni żeby się minąć z danymi. A jeszcze jak w carcie nie ma danych na gotowo, ale tu jakiś obrazek, tam jakiś kod. To jak zmiana umeblowania w ciasnym pokoju :)
A jak dojdzie zapis to już się robi naprawdę ciekawie. Bo wszystko trzeba robić pod konkretną pamięć flash. I tu dochodzi jeszcze problem bufora na zapis do pamięci flash. A sektor do zapisu może być duuuuży :)