ANTIC
From Atariki
(Różnice między wersjami)
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