ANTIC
Układ o symbolu: CO 21698. Jest całkowicie niezależnym procesorem
graficznym - posiada własne, wewnętrzne MMU, które dekoduje jego
własne rejestry sprzętowe pod adresami $d400-$d4ff. Opis sygnałów:
A0-A15 - szyna adresowa - ANTIC jako jedyny układ w Atari posiada
dwukierunkową szynę adresową.
D0-D7 - szyna danych
o0 - tzw. zerowa faza zegara (wyjście) - sygnał, którym jest bezpośrednio taktowany
procesor (1,77 MHz PAL, 1,79 MHz NTSC) - jest to wynik podziału przez 2
sygnału FI0
o2 - druga faza zegara - sygnał synchronizacji magistrali z procesora
(1,77 MHz PAL, 1,79 MHz NTSC) - opóźniony w stosunku do o2 o czas
przejścia przez CPU
FI0 - sygnał taktujący zegara pikselowego z GTIA (3,54 MHz PAL, 3,57 MHz NTSC)
AN0-2 - linie przesyłają do GTIA numer aktualnie wyświetlanego koloru
LP - wejscie pióra świetlnego
REF - wyjście sygnału odświeżania (do MMU)
NMI - wyjście sygnału przerwań niemaskowalnych (do CPU)
RESET - wejście zerujące układ
R/W - sygnał Read/Write - podobnie jak szyna adresowa w ANTIC-u
jest dwukierunkowy
HALT - wyjście, sygnał, który wymusza zatrzymanie CPU, gdy ANTIC odczytuje dane
z pamięci
RDY - wyjście, sygnał, który umożliwia narzucenie CPU pracy krok po kroku
RNMI - w modelach 400/800 obsługiwał klawisz RESET, obecnie nieużywany
ANTIC posiada dwa tryby pracy - pierwszy polega na tym, że ANTIC odczytuje
dane z pamięci, z których tworzy obraz - ten tryb pracy ma wyższy priorytet, bowiem
procesor jest wtedy HALT-owany, jego linie wchodzą w stan wysokiej impedancji, a
końcówki adresowe ANTIC-a i linia R/W pracuje w trybie zapis. Drugi tryb pracy polega na
tym, że ANTIC pracuje jako bierny układ wejścia-wyjścia. Wtedy to końcówki
adresowe i R/W pracuja w trybie odczyt i śledzą adresy wysyłane przez procesor -
gdy będzie to adres $d400-$d4ff, to wtedy wewnętrzne MMU ANTIC-a udostępnia
jego rejestry sprzętowe.
POKEY
Oznaczenie: CO 12294 - odpowiada za obsługę dźwięku, timerów, klawiatury,
złącza szeregowego i 8 przetworników A/C. Opis sygnałów:
IRQ - wyjście sygnału przerwania maskowalnego
P0-P7 - wejścia przetworników analogowo-cyfrowych
KR1,KR2,K0-K5 - wejścia zakodowanego przez 2 układy CD4051 sygnału
z klawiatury
CS0,CS1 - wejście sterujące dostępem POKEY-a do magistrali - aby POKEY
był "aktywny", na CS0 musi być "0", a na CS1 "1"
Audio - analogowe wyjście dźwięku z POKEY-a
SOutD - wyjście danych złącza szeregowego
SOutC - wyjście zegara taktującego transmisję
SInD - wejście danych złącza szeregowego
BCLK - dwukierunkowa linia zegara taktującego transmisję
o2 - druga faza zegara - wejście sygnału synchronizującego pracę
magistrali (1,77 MHz PAL, 1,79 MHz NTSC). Oprócz tego sygnał dociera
do programowalnych dzielników, które mogą służyć jako timery, generatory
dźwięku, czy programowalne generatory taktujące transmisję
przez złącze szeregowe. W przydaku dźwięku sygnał może być poddawany
działaniu filtrów lub/i rejestrów przesuwających.
Obszar adresowy POKEY-a to przedział od $d200 do $d20f
GTIA
Typowym oznaczeniem GTIA jest symbol: CO 14889. Układ zajmuje się przedewszystkim
nakładaniem kolorów i spritów na maskę obrazu wysłaną przez ANTIC-a. Opis końcówek:
FI0 - sygnał wyjściowy (3,54 MHz PAL, 3,57 MHz NTSC), ma za zadanie
taktowanie ANTIC-a
CS - wejście (Chip Select), które steruje dostępem GTIA do magistrali
AN0-AN2 - wejścia, którymi z ANTIC-a jest przesyłana maska kolorów
T0,T1 - wejścia FIRE z joysticków
T3 - wejście stwierdzające obecność cartridge'a
S0-S2 - wejścia podłączone bezpośrednio do klawiszy: Start, Select, Option
S3 - wyjście 1-bitowego generatora dźwięku
PAL - wejście sygnału z generatora PAL (4,43 MHz)
CADJ - wejście sygnału opóźnienia koloru, którego częstotliwość jest
synchronizowana z sygnałem o1, czyli tzw. pierwszą fazą zegara
Lum0-Lum3 - wyjście cyfrowe sygnału luminancji (do przetwornika C/A
wizji)
OSC - sygnał taktujący (3,54 MHz PAL, 3,57 MHz NTSC), pochodzący bezpośrenio
z generatora kwarcowego (w modelach XL) lub z FREDDIE-go (modele XE, choć
są wyjątki)
COL - wyjście, którym wysyłany jest sygnał chrominancji, czyli kodowanego
sygnału koloru
SYNC - wyjście sygnałów synchronizacji poziomej i pionowej obrazu
Obszar adresowy GTIA: $d000-$d01f
PIA
Układ ten nie jest projektem firmy Atari - w przeciwieństwie do ANTIC-a,
POKEY-a i GTIA. Spotkałem się z różnymi jego oznaczeniami: 6520, 6521, 6821.
Układ steruje pracą układu MMU, obsługuje joysticki i steruje sygnałami
pomocniczymi przy transmisji szeregowej. Oto opis wyprowadzeń:
PA0-PA7 - wejścia określające położenie joysticków - mogą pracować również
jako wyjścia
PB0,PB1,PB7 - linie wysyłają do MMU informacje czy w pewnych obszarach
adresowych, pojawi się pamięć RAM czy ROM, kolejno: OS, Basic, Self-Test.
PB2-PB6 - w komputerach z pamięcią powyżej 64kB, zgodną ze standardem
130XE ustalają w dekoderze adresów dodatkowej pamięci numer aktywnego banku
CA1 - wejście sygnału PROCEED (przebieg) ze złącza szeregowego
CA2 - linia wyjściowa, sterująca pracą silnika w magnetofonie
CB1 - wejście sygnału INTERUPT (przerwanie) ze złącza szeregowego
CB2 - linia wyjściowa COMMAND - ustala, urządzenie z którym komputer
przesyłał dane przez złącze szeregowe
IRQa,IRQb - w Atari są połączone - patrz IRQ w opisie POKEY-a
CS0-CS2 - wejścia sterujące dostępem PIA do magistrali - sprzyjające
warunki to: CS0=1, CS1=0, CS2=1
Obszar adresowy PIA to zaledwie 4 komórki: $d300-$d303. Ciekawostką jest to,
że w katalogach linie adresowe A0 i A1 są zamienione miejscami, co wpływa
na to, że komórki są rozmieszczone w innej kolejności, niż podają katalogi
6502
Projekt procesora powstał w firmie MOS Technology, która oznaczyła go
jako 6502 lub 65C02. Firma Atari jednak również go produkowała i nadała
mu oznaczenie: CO 14806. W zasadzie prawie wszystkie sygnały
zostały omówione podczas opisów poprzednich układów, dlatego skupię się
tylko nad sygnałami zegarowymi.
o0 - wejście, którym dociera z ANTIC-a sygnał taktujący (1,77 MHz PAL, 1,79 MHz NTSC),
jest to tzw. zerowa faza zegara - ten sygnał taktuje pracę 6502
o1 - wyjście, tzw. pierwsza faza zegara - jest to przesunięta fazowo
o nieco ponad Pi (180 stopni), wykorzystywana do generowania przez GTIA
sygnału koloru.
o2 - wyjście, tzw. druga faza zegara - po pewnym opóźnieniu, wynikającego
z "przejścia" sygnału taktującego przez wewnętrzne struktury procesora to
właśnie ona odpowiada za synchronizację innych układów z CPU
6502 posiada również swoje specyficzne obszary pamięci: $fffa-$ffff - są
to wektory obsługi przerwań IRQ, NMI i RESET oraz obszar
$0100-$01ff, który jest wykorzystywany przez rejestr stosu.
Procesor jest sprzętowo zgodny z rodziną Motorola 6800 - zresztą jego
struktury wewnętrzne są bardzo zbliżone do 6800, z tym, że 6502 jest
szybszy i posiada więcej instrukcji i trybów adresowania.
65816
Procesor ten jest rozwinięciem układu 6502 - w trybie emulacji jest z nim
w 100% zgodny. Charakteryzuje się tym, że posiada znaczne uproszczenia
w budowie - twórcy zrezygnowali tutaj m.in. z sygnału HALT, z rozbudowanego
systemu zegarów taktujących oraz zastosowano tutaj multipleksowaną szynę
adresów i danych. Co powoduje, że aby ów procesor adaptować do
Atari 8-bit należy wykonać układ dopasowujący procesor do wymagań Atari.
Poniższy opis dotyczy procesora w obudowie typu PLCC 44-nóżkowej, jednak
podobno są również procesory w wersji 40-nóżkowej.
W zasadzie wszystkie sygnały działają niemalże identycznie jak w 6502. Tutaj
jedynie główny sygnał taktujący, to o2, a nie o0 jak w 6502. Znaczną różnicą
jest istnienie linii D/BA0-7 - stanowią one zarówno szynę adresową, jak i
szynę danych, w zależności od sygnału o2 - gdy mamy do czynienia, ze zboczem
narastającym, wtedy D/BA0-7 oznaczają linie adresowe A16-A23, natomiast w
wypadku zbocza opadającego mamy do czynienia z linami danych D0-D7.
MMU
Typowe oznaczenie MMU, to CO 61618.
Opis wyprowadzeń MMU:
TEST - wejście, stan niski oznacza obecność ROM-u z SelftesT-em w obszarze
$5000-$57ff
EN4 - wejście, stan wysoki oznacza odłączenie pamięci wewnętrznej w
obszarze $8000-$9fff
EN5 - wejście, stan wysoki oznacza odłączenie pamięci wewnętrznej w
obszarze $a000-$bfff
SEL4 - wyjście, gdy EN4="1" i na szynie pojawił się adres z przedziału
$8000-$9fff, to SEL4="0"
SEL5 - wyjście, gdy EN5="1" i na szynie pojawił się adres z przedziału
$a000-$bfff, to SEL5="0"
ROM - wejście, stan wysoki uaktywnia ROM z systemem operacyjnym w
obszarach $c000-$cfff i $d800-$ffff - w przeciwym wypadku mamy tam RAM
BasE - wejście, stan niski oznacza, że w obszarze $a000-$bfff będzie
widoczny Basic ROM - w przeciwnym wypadku będzie tu RAM
I/O - wyjście, stan niski oznacza, że na szynie pojawił się adres z
przedziału $d000-$d7ff
CasInh - wyjście, gdy pojawi się na nim stan niski, to oznacza, że
na szynie pojawił się adres, który w danym momencie nie odwołuje się do
wewnętrznego RAM-u, np. podczas, gdy był aktywny ROM Basic w obszarze
$a000-$bfff pojawił się adres $a894, co oznacza, że pamięć RAM jest w tym
momencie nieaktywna
OS - wyjście, stan niski oznacza aktywność ROM-u z systemem i Selftestem
MPD - wejście, stan niski powoduje, że część ROM-u z obszaru $d800-$dfff
będzie nieaktywna
Basic - wyjście, stan niski uaktywnia ROM Basic
REF - wejście, stan niski oznacza, że dane, które pojawiają się na
magistrali mają na celu odświeżenie pamięci i nie niosą żadnych informacji
MMU 130XE
Typowe oznazenie: CO 25953.
Układ ten występuje w komputerach 130XE - w 800XE i w najnowszych
modelach 65XE na płycie znajduje się miejsce na ten układ.
Opis sygnałów:
A14,A15 - wejścia linii adresowych - chodzi o ustalenie, czy
na szynie pojawił się adres z przedziału $4000-$7fff
~A14,~A15 - wyjścia linii adresowych, połączone z FREDDIE'm. Gdy
odwołujemy się do pamięci podstawowej, to spełniają one swoje
normalne znaczenie, natomiast w wypadku odwołań do pamięci dodatkowej
są one kontynuacją linii PB2,PB3 i mają znaczenie przy wyborze banku
dodatkowej pamięci
PB2,PB3 - wejścia linii z PIA, który dokonują wyboru jednego z
czterech banków dodatkowej pamięci
PB4 - wejście linii z PIA - stan niski oznacza aktywność banków
dodatkowej pamięci - w przeciwnym wypadku mamy dostęp do banku podstawowego
PB5 - patrz PB4, z tym, że chodzi tu o dostęp ANTIC-a, a nie CPU
CAS - wejście sygnału z FREDDIE-go - sygnał potrzebny do aktywacji
dostępu pamięci dynamicznych RAM
CAS64 - wyjście CAS dla pamięci podstawowej
CAS128 - wyjście CAS dla pamięci dodatkowej
FREDDIE
Oznaczenie: CO 61991 lub CO 61922.
FREDDIE jest układem, który pojawił się dopiero w nowszych modelach Atari.
Łączy on w sobie rolę układu, który steruje pracą pamięci dynamicznych
oraz zajmuje się wytwarzaniem częstotliwości taktowania (3,54MHz PAL, 3,57 MHz NTSC).
W starszych modelach funkcje spełniane przez ten układ realizowało
kilka układów TTL.
Opis sygnałów:
14MHz - wejście generatora 14,187576 MHz dla PAL lub 14,31818 MHz dla
NTSC, który jest m.in. dzielony przez 4 w celu uzyskania częstotliwości
taktującej GTIA, a także uzyskiwany jest tzw. delay line związany z
dostępem do pamięci dynamicznych
OSC - wyjście linii prowadzącej do wejścia OSC GTIA - (3,54MHz PAL, 3,57 MHz NTSC)
CasInh - wejście z MMU, blokujące sygnał CAS, czyli w zasadzie dostęp
do pamięci RAM
CAS - wyjście sygnału dostępu do kolumn w pamięciach dynamicznych
RAS - wyjście sygnału dostępu do wierszy w pamięciach dynamicznych
WR - wyjście sygnału Read/Write do pamięci dynamicznych
BA0-BA7- zmultipleksowane wyjście magistrali adresowej, dostosowane
do specyfiki dostępu do pamięci dynamicznych.
Komentarze