|
|
| (Nie pokazano 28 wersji utworzonych przez 6 użytkowników) |
| Linia 1: |
Linia 1: |
| '''ANTIC''' (''Alphanumeric Television Interface Controller'') - specjalnie zaprojektowany dla Atari XE/XL układ odpowiedzialny za generowanie grafiki. Nowocześniejszym układem jest [[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>
| |