ANTIC

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 15:10, 24 gru 2004
Tebe (Dyskusja | wkład)

← Previous diff
Aktualna wersja
Miker (Dyskusja | wkład)

Linia 1: Linia 1:
-Specjalnie zaprojektowany dla Atari XE/XL układ odpowiedzialny za generowanie grafiki. Nowocześniejszym układem była [[MARIA]] montowana w konsoli Atari [[7800]].+{{disambig}}
-cyt. Tajemnice Atari nr 2/92+*[[ANTIC (układ)|ANTIC]] - mikroprocesor graficzny w [[Atari 8-bit]]
- +*[[ANTIC (czasopismo)|ANTIC]] - amerykańskie czasopismo przeznaczone dla użytkowników Atari
-<pre>+
-Jednym z ciekawych układów elektronicznych, jakie można znaleźć wewnątrz komputera ATARI XL/XE+
-jest procesor graficzny ANTIC. Jest to układ scalony, którego zadaniem jest obrazowanie danych+
-z pewnego obszaru pamięci komputera. To, co widzimy na ekranie monitora, kiedy siadamy przed+
-komputerem jest efektem pracy ANTIC-u. Sedno działania procesora graficznego tkwi w tzw.+
-bezpośrednim dostępie do pamięci, zwanym krótko DMA (z ang. Direct Memory Access). Po prostu,+
-ANTIC pobiera dane do wyświetlenia z pamięci bez pośrednictwa głównego procesora, "podkradając"+
-mu jednak nieco czasu, czyli zwalniając jego tempo pracy. Jak napisałem powyżej, ANTIC jest+
-prawdziwym procesorem z własnym dwunastobitowym licznikiem rozkazów i zestawem instrukcji.+
-Wykonuje on program, którego adres zapisany jest w słowie SDLSTL, zajmującym komórki pamięci o+
-adresach 560 i 561, czyli $0230 i $0231.+
- +
- W wyniku działalności ANTIC-u widzimy obraz, którego podstawowym składnikiem jest tzw. pole+
-gry (ang. playfield). Dodatkowo, może on wyświetlać niezależne obiekty graficzne, które łatwo+
-animować, tzw. graczy (ang. players) i pociski (ang. missiles)+
- +
- +
-$022f 00559 SDMCTL +
- +
- +
- Ta komórka pamięci steruje bezpośrednim dostępem do pamięci procesora graficznego. Jest ona+
-cieniem sprzętowego rejestru DMACTL (54272, czyli $d400) i jej zawartość traktowana jest+
-bitowo. Znaczenie bitów SDMCTL jest następujące:+
- +
-bit 0, 1 rodzaj pola gry+
-bit 2 DMA dla pocisków+
-bit 3 DMA dla graczy+
-bit 4 rozdzielczość pionowa gracza+
-bit 5 DMA dla obrazu.+
- +
- Dwa najmłodsze bity definiują rodzaj wyświetlanego pola gry tworząc kombinacje:+
- +
-0 0 pole gry nie jest wyświetlane+
-0 1 wąskie pole gry (32 znaki w trybie 0)+
-1 0 normalne pole gry (40 znaków w trybie 0)+
-1 1 szerokie pole gry (48 znaków w trybie 0)+
- +
- Podane wyżej ilości znaków dość dobrze określają szerokości odpowiednich pól gry, chociaż+
-ten sposób określania rozmiaru ekranu nie jest w pełni zgodny z terminologią, zalecaną przez+
-firmę ATARI. Gwoli ścisłości warto więc zaznaczyć, że powinno się w tym wypadku mówić o tzw.+
-cyklach koloru (ang. color clocks), których liczba dla odpowiednich pól gry przedstawia się+
-następująco:+
- +
-wąskie pole gry 128 cykli koloru+
-normalne pole gry 160 cykli koloru+
-szerokie pole gry 192 cykle koloru.+
- +
- Nie wszystkie telewizory i monitory pozwolą nam zobaczyć cały obraz, kiedy zażądamy wyświetlenia szerokiego pola gry, ale taka możliwość jest przydatna choćby wtedy, gdy irytują+
-nas ramki z lewej i prawej strony wyświetlanego obrazu.+
- +
-Bity nr 2 i 3 uruchamiają (po wpisaniu do nich 1), lub blokują (po wpisaniu 0), odpowiednio DMA+
-dla pocisków i dla graczy. Oznacza to w praktyce, że albo widać graczy i pociski, albo ich nie+
-widać. Oczywiście można włączyć np. tylko DMA dla graczy lub pocisków, są one niezależne.+
- +
-Bit nr 4 definiuje sposób wyświetlania gracza. Więcej szczegółów na ten temat zamieszczę przy+
-okazji opisu tej techniki.+
- +
-Bit nr 5 włącza (po zapisaniu 1), lub wyłącza (po zapisaniu 0) bezpośredni dostęp ANTIC-a do+
-pamięci, a co za tym idzie wyświetlanie obrazu. Jeśli czasem zdarza się, że program wykonuje+
-dużą ilość np. obliczeń, których wyniki nie są dynamicznie prezentowane na ekranie, to warto na+
-ten czas wyłączyć DMA dla procesora graficznego. Przestanie on wtedy pracować równolegle z+
-6502, co zwiększy szybkość tęgo ostatniego o ok. 30 procent. Aby wyłączyć DMA dla ANTIC-a,+
-trzeba najpierw odczytać zawartość komórki SDMCTL i zapamiętać ją, później zaś wpisać do niej+
-zero. Po zakończeniu operacji, które chcemy przyspieszyć, należy zapisać na powrót zapamiętaną+
-wartość do tego rejestru. Często warto także zgasić ekran podczas ładowania do pamięci+
-obrazków, nie widać wtedy, jak są one rysowane, za to można obserwować końcowy efekt. Po+
-restarcie systemu do komórki SDMCTL zapisywana jest wartość 34, czyli bitowo %100010, co+
-oznacza włączenie bezpośredniego dostępu ANTIC-a do pamięci i ustawienie standardowego pola gry.+
-</pre>+

Aktualna wersja

  • ANTIC - mikroprocesor graficzny w Atari 8-bit
  • ANTIC - amerykańskie czasopismo przeznaczone dla użytkowników Atari
Personal tools