Witam po dlugiej nieobecnosci.
Ponieważ mialem mozliwosc dyskutowania z Zenonem jego pomyslu, a takze konsultowania sie z XXL'em i Sebanem na bardzo podobny temat, pozwolę sobie na slowo komentarza.
Mam wrazenie, ze wiekszość komentatorów nie załapała co jest najważniejsze w pomyśle Zenona. Otóż najmniej ważne jest jaki procesor będzie na carcie! Najważniejszy jest pomysł na "wahadłową" zamianę dwóch 8kB banków pamięci między procesorem głównym a koprocesorem, przy czym ta zamiana jest sterowana zawsze przez 6502 komputera.
Pomysł koprocesora jest bowiem stary jak świat, ale "wąskim gardłem" był właśnie dostęp do pamięci (lub też wymiana danych między procesorem głównym a koprocem). W grę wchodziła dotąd albo fizyczna zamiana procesora w komputerze na mocniejszy, albo pomysł z pamięcią dwuportową.
Zrobiłem rozeznanie i pamięci dwuportowe są albo nieosiągalne albo baaardzo drogie.
Ja miałem jeszcze jeden pomysł: sprzętowa emulacja pamięci dwuportowej przez szybki procesor na carcie (np. Atmel). Ale po konsultacji z Zenonem i Sebanem pomsł wydał się za trudny w implementacji.
Tymczasem Zenon wymyślił genialny bufor: każdy z dwóch procesorów widzi naprzemiennie jeden z dwóch 8kB obszarów pamięci. I to jest istota jego pomysłu. Reszta to szczegóły, które mogą się zmieniać w konkretnych implementacjach.
Co nam to daje? Ano możemy sobie przyłączyć do tego interfejsu dowolny procesor. Jeśli będzie to 816 to będzie on uniwersalnym koprocesorem, a jego program będzie mu podawany w 8kB pamięci.
Ale, wbrew temu co napisał Candle może to być przecież mikrokontroler np AVR. Dlatego, że wcale nie musi on czytać swojego programu z zewnętrznego RAM'u dzielonego z Atari! Może mieć w swoim ROM'ie program (nazwijmy go "rdzeniem") a z Atari wymieniać jednynie dane.
Ograniczeniem będzie tu brak uniwersalności. Ale w ten sposób możemy sobie zrobić zależnie od potrzeb carta z rdzeniem wykonującym szybkie obliczenia matematyczne, albo z rdzeniem realizującym wieeelkie i liczne sprzętowe duchy.
Ja wręcz zastanawiałem się czy Weronika nie powinna być jednynie buforem obsługującym podmiane 8kB banków pamięci + złącze. I w to złącze możnaby sobie wstawiać płytkę z procesorem, byle potrafił on dostosowac swoją pracę do zasady działania Weroniki.
Wiem, że brzmi to dośc mgliście, ale myślałem nad tym od kilku miesięcy i uważam, że jest to możliwe.
A weźcie pod uwagę, że dzielimy tylko 8kB pamięci. A obszar cartridga w RAM'ie Atari ma 16kB. Czyli pozostałe 8kB z obszaru cartridga może zawierać zwykłą bankowaną pamięć gdzie może być umieszczona gra. Taki cart zawierałby wszystko co programiście i graczowi do szczęścia potrzebne. Np grę wymagającą sprzętowych duchów i procesor, który je realizuje.
A propos sprzętowych duchów, to dla mnie jest to najbardziej pociągający temat do implementacji w tym nowym cartridgu. W kolejnym poście postaram się dokładnie opisać jak mogłyby one działać na Weronice.
Z rozmów z Zenonem zarysowała się niestety też jedna dośc poważna wada: konieczność użycia dośc dużej ilości układów cyfrowych - co najmniej kilkanaście. Może to oznaczać, że cart nie wejdzie w standardową obudowę, oraz co gorsza koszt tych układów może być wiekszy niż mikrokontrolera. Ale może da się te układy cyfrowe troche jeszcze zredukować albo nawet zastąpić jakąś programowalną logiką...? Kto wie.