![]() |
|
Start | Super Packer | Atari Graphics Studio | Graph2Font | Mads | MadPascal | YouTube | http://madteam.atari8.info |
Voy/SSG^Dial
Pod koniec 1983 roku specjaliści od public relations z firmy
Atari przepytywali tysiące ludzi, jak według nich powinna wyglądać idealna
konsola video. Wynikiem tego było dojście do wniosku, że jedyną szansą Atari na
rozwiązanie swoistego rodzaju zapaści na rynku domowych konsol gier video był
nowy model, czyli Atari 7800 ProSystem. x=e(y,p1) y=d(x,p2) gdzie: x = jakieś cyferki (zaszyfrowany) y = czysty tekst (niezaszyfrowany) p1 = klucz prywatny p2 = klucz publiczny
Więc JEŚLI I TYLKO JEŚLI mam klucz p1 (prywatny), mogę
zaszyfrować czysty tekst w cyferki i JEŚLI I TYLKO JEŚLI mam klucz p2
(publiczny) mogę zdeszyfrować cyferki w postać czystego. Ufff..."
W 1984 roku Atari zostało sprzedane dotychczasowemu
właścicielowi i twórcy Commodore Business Machines, czyli Jackowi Tramielowi.
Ostatnią rzeczą, jaka przemknęłaby rodzinie Tramielów przez myśl, było
sprzedawanie gier video. Tramiel chciał, by jego nową firmę zaczęto kojarzyć z
nowym komputerem domowym, który miał ukazać się na rynku na początku 1985 roku
- projekt Atari 7800 został więc zawieszony aż do odwołania. Wówczas Nintendo,
które w 1983 roku nawiązać chciało współpracę co do sprzedaży ich nowej konsoli
Famicon pod znakiem firmowym Atari, nie czuło się jeszcze na siłach pretendować
do tytułu giganta rynku gier video. Spostrzegło, że Atari nie jest
zainteresowane produkcją i sprzedażą ich systemu, opartego notabene na 6502;
dodatkowo zniechęciła ich wypowiedź Michele Ebertin, szefa Consumer Electronics
Division (dział handlowy Atari): "nabywcy nie tylko nie lubią dziwnego
systemu video, który nie posiada joysticków - oni nienawidzą manipulatorów
Nintendo". Nintendo obraziło się i sprzedało Famicon pewnej firmie ze
Stanów, nazywając je "Nin- tendo Entertainment System" i z miejsca
odniosło sukces handlowy. Atari Corp., widząc co się dzieje, do sprzedaży
skierowało ukończony model 2600jr, który Atari Inc. pod wodzą Warner Comm.
zdążyło opracować już w 1983 roku. Przekazano im też cały zespół materiałów
produkcyjnych Atari 7800, gdzie ostatecznie ukończono prace nad systemem
kierując go do sprze- daży w roku... Nie zgadlibyście :)... 1986!!! Było to
znacznie za późno... Nintendo miało w garści cały rynek gier video - cały kram
;). Atari w tym wyścigu zajęło dopiero trzecie miejsce, uplasowując się za
Segą, depczącą wraz ze swym Master System firmie Nintendo po piętach i marzyło
o dawnych dobrych czasach, gdy niepodzielnie królowało przez długie lata na
rynku konsol i automatów gier video. Ech, gdyby tylko Tramiel mógł poczekać
odrobinę ze swoją serią XE... PAMIĘĆ
W 7800 znajdują się dwa układy pamięci RAM o oznaczeniu 6116
(2Kx8) i zajmują adresy od $1800-$27FF
(w sumie 4kB). Są również częściowo dostępne (cieniowane) w obszarach $0040-$00FF i $0140-$1FF w
celu rozszerzenia strony zerowej (szybki dostęp) i pierwszej (patrz również
"Mapa pamięci Atari 7800"). Wielkość wbudowanej pamięci stałej ROM
wynosi także 4kB i zawiera się w adresach $F000-$FFFF; kod ROMu od adresu $F400 jest
odbijany w RAM od adresu $2300
i przeznaczony do wykonania (w archiwum znajdziecie image ROMu 7800 :-).
Maksymalnie do systemu może być dołączonych 52kB ROM. PORTY WE/WY
Czyli dobrze znany układ 6532 (PIA, zwany też RIOT), użyty
również w Atari 2600 VCS. W trybie 7800 wykorzystywany do operacji I/O,
jakkolwiek w trybie 2600 służy za całą pamięć RAM i timery. Jego funkcje są
nieco ograniczone, gdyż jest zbyt wolny do normalnego wykorzystywania; każdy
dostęp do niego (joystick i przełączniki I/O) powoduje zwolnienie CPU do 1.19
MHz (patrz artek o 2600 :). Porty i przełączniki dołączone do 6532 to joysticki
(bezpośrednio), Pause, Game Select, Game Reset oraz przełączniki trudności.
Jako że jest to układ dwukierunkowy, może też wygenerować sygnały do portów
joysticków. Jego wewnętrzna 128-bajtowa pamięć została przesunięta na stronę
czwartą w stosunku do 2600, gdzie zajmowała stronę zerową. Patrz również artek
"Mapa pamięci Atari 7800". DŹWIĘK
Zadanie tworzenia dźwięku spadło na barki układu TIA
(Television Interface Adapter - dokładniejszy opis tego układu znajduje się w
poprzednim numerze "Seriousa"). W Atari 7800 oprócz wykonywania tego
zadania wykorzystywane jest parę jego portów wejściowych. W trybie 2600 zajmuje
adresy $0000-$003F,
natomiast tylko częściowo dostępny jest w trybie 7800, gdyż widzialna jest
tylko sekcja w obszarze $0000-$001F.
Rejestrami znaczącymi (używalnymi) są jedynie rejestry uczestniczące w
tworzeniu dźwięku i porty wejściowe (przyciski FIRE i wiosełka). Podobnie jak w
przypadku 6532 dostęp do tego układu powoduje spowolnienie CPU do 1.19 MHz.
Jedną z gier, które nie korzystały z mocy przerobowej TIA ;), jest
"Ballblazer", posiadający własny układ dźwiękowy (sic!). Wg
niektórych źródeł układem tym był POKEY! ^_^ PORT KARTRIDŻA
Bez problemu można wkładać do niego standardowe kartridże
2600, natomiast kartridże przeznaczone do "odpalania" w trybie 7800
są nieco większe. Posiada następujące dodatkowe linie: trzy linie adresowe (na
złączu kartridża teraz jest ich dostępnych 16); linia R/W (READ/WRITE), więc
RAM może być bardzo łatwo przydzielana do każdego kartridża; linia "Phase
2 clock" służy do obsługi kartridża z własnym procesorem (!);
synchronizuje go z obecnym na płycie 6502C; linia EAudio pozwala na miksowanie
sygnału dźwiękowego z kartridża z sygnałem TIA; linia złożonego sygnału obrazu,
czyli jest możliwość doprowadzenia zewnętrznych sygnałów video oraz linia HALT,
pozwalająca kartridżowi odróżniać dostępy układu MARIA do pamięci od dostępów
mikroprocesora. Wyprowadzenia gniazda Cartridge ------------------------------- 1 R/W 17 A15 2 Halt 18 EAudio 3 D3 19 A7 4 D4 20 A6 5 D5 21 A5 6 D6 22 A4 7 D7 23 A3 8 A12 24 A2 9 A10 25 A1 10 A11 26 A0 11 A9 27 D0 12 A8 28 D1 13 +5V 29 D2 14 Masa 30 Masa 15 A13 31 IR1 16 A14 32 CLK2
Do tego dochodzi złącze Expansion Port (rozszerzenia,
dodatkowy osprzęt i tym podobne). Poniżej znajduje się rozpiska jego
wyprowadzeń. Górny rządek Dolny rządek ------------ ------------ 1-Masa 10-Masa 2-+5V 11-Audio 3-CVideo 12-Rdy 4-MLum0 13-MCol 5-MLum3 14-MLum2 6-Blank 15-MLum1 7-OscDis 16-Msync 8-ExtMen 17-Clk2 9-Masa 18-ExtOsc CPU
Najzwyklejszy w świecie ;) 6502C "Sally" taktowany
zegarem 1.79 MHz. Dostępność procesora kształtuje się w okolicach 90%, a więc
jest prawie dwa razy większa, niż w standardowej Atari 2600. GRAFIKA
Specjalnie opracowany na potrzeby konsoli układ MARIA
(oznaczenie GCC1702), taktowany wewnętrznym zegarem 7.16 MHz (!), nie
zmieniającym swej częstotliwości w zależności od częstotliwości głównego
procesora. Jest sercem konsoli i obsługuje całą grafikę oraz jej wyświetlanie
włączając obsługę sygnałów VSYNC i VBLANK. Jego rejestry znajdują się w
obszarze $0020-$003F
oraz w cieniu strony zerowej (adresy $0100-$013F), z której korzysta pospołu
z TIA. Dokładny (bardzo dokładny, he he ^_^), opis tworzenia obrazu przy użyciu
MARII znajdziesz w artku pt."MARIA - - czyżby następca ANTICa?",
który ukaże się w przyszłym numerze "Seriousa". Mapa pamięci 7800
W artykule znajduje się pełna mapa pamięci konsoli Atari
7800 ProSystem. Jest ona bardzo podobna do mapy 2600, co jest zrozumiałe
wziąwszy po uwagę koncepcję Atari 7800 jako takiej. Mapę pamięci 2600
znajdziecie w jednym z przyszłych numerów "Seriousa". CZĘŚĆ 1 - OGÓLNA MAPA PAMIĘCI
Poniżej znajdują się przedstawione bitowo obszary
przydzielone konkretnym układom (gdzie X oznacza wartość obojętną; A - bity
mogą być równe 1 lub 0). Wpisy 5 i 6 wskazują te fragmenty RAM z obszaru $1800-$27FF,
które pojawiają się na stronach 0 i 1. Ostatni wpis pokazuje, że ostatni 2kB
blok pamięci ($2000-$2700)
powtarzany jest przy $2800,
$3000
i $3000
tworząc ten 6kB obszar serią 2kB cieni. OD DO 1. TIA 000000XX 00000000 - 000000XX 00011111 2. MARIA 000000XX 00100000 - 000000XX 00111111 3. PORTY 6532 00000010 10000000 - 00000010 11111111 4. 6532 RAM (NIE UŻYWANA) 0000010X 10000000 - 0000010X 11111111 5. RAM 00011000 00000000 - 00100111 11111111 6. CIEM RAM 00X0000A 01000000 - 00X0000A 11111111 7. CIEM RAM 001XX000 00000000 - 001XX111 11111111
Na użytek szyfrowania w obszarze $FF7A-$FFF9 128 bajtów musi
być wolnych. Przed szyfrowaniem obszar ten należy wypełnić wartością $FF. _______________________ 0000 | | | Rejestry TIA | |_______________________| 001F 0020 | | | Rejestry MARII | |_______________________| 003F 0040 | | | RAM | | (6116-blok zerowy) | |_______________________| 00FF 0100 | | | Cień strony 0 | | (TIA i MARIA) | |_______________________| 013F 0140 | | | RAM | | (6116-blok pierwszy) | |_______________________| 01FF 0200 | | | Cieniowane | |_______________________| 027F 0280 | | | Porty 6532 | |_______________________| 02FF 0300 | | | Cieniowane | |_______________________| 03FF 0400 | | | Dostępna | |_______________________| 047F 0480 | | | RAM 6532 - nie używ. | |_______________________| 04FF 0500 | | | Dostępna | |_______________________| 17FF 1800 | | | RAM | |_______________________| 203F 2040 | | | Cień bloku zerowego | |_______________________| 20FF 2100 | | | RAM | |_______________________| 213F 2140 | | | Cień bloku pierwszego | |_______________________| 21FF 2200 | | | RAM | |_______________________| 27FF 2800 | | |Identyczny z 2000-27FF | |_______________________| 3FFF 4000 | | | Dostępna | |_______________________| FF79 FF7A | | |Rezerwacja na szyfrow. | |_______________________| FFF9 FFFA | | | Dostępna (wektory) | |_______________________| FFFF CZĘŚĆ 2 - STANDARDOWE REJESTRY 7800Rejestry układu TIA: -------------------- $01 INPTCTRL - INPuT PorT ConTRoL WO ("VBLANK" w TIA) $08 INPT0 - PADDLE CONTROL INPuT 0 WO $09 INPT1 - PADDLE CONTROL INPuT 1 WO $0A INPT2 - PADDLE CONTROL INPuT 2 WO $0B INPT3 - PADDLE CONTROL INPuT 3 WO $0C INPT4 - PLAYER 0 FIRE BUTTON INPuT WO $0D INPT5 - PLAYER 1 FIRE BUTTON INPuT WO $15 AUDC0 - AUDio Control channel 0 WO $16 AUDC1 - AUDio Control channel 1 WO $17 AUDF0 - AUDio Frequency channel 0 WO $18 AUDF1 - AUDio Frequency channel 1 WO $19 AUDV0 - AUDio Volume channel 0 WO $1A AUDV1 - AUDio Volume channel 1 WO Rejestry układu MARIA: ---------------------- $20 BACKGRND - BACKGRouND color R/W $21 P0C1 - Palette 0 - Color 1 R/W $22 P0C2 - Palette 0 - Color 2 R/W $23 P0C3 - Palette 0 - Color 3 R/W $24 WSYNC - Wait for SYNC STROBE $25 P1C1 - Palette 1 - Color 1 R/W $26 P1C2 - Palette 1 - Color 2 R/W $27 P1C3 - Palette 1 - Color 3 R/W $28 MSTAT - Maria STATus RO $29 P2C1 - Palette 2 - Color 1 R/W $2A P2C2 - Palette 2 - Color 2 R/W $2B P2C3 - Palette 2 - Color 3 R/W $2C DPPH - DisPlay list list WO Point High $2D P3C1 - Palette 3 - Color 1 R/W $2E P3C2 - Palette 3 - Color 2 R/W $2F P3C3 - Palette 3 - Color 3 R/W $30 DPPL - DisPlay list list Point Low WO $31 P4C1 - Palette 4 - Color 1 R/W $32 P4C2 - Palette 4 - Color 2 R/W $33 P4C3 - Palette 4 - Color 3 R/W $34 CHARBASE - CHARacter BASE address WO $35 P5C1 - Palette 5 - Color 1 R/W $36 P5C2 - Palette 5 - Color 2 R/W $37 P5C3 - Palette 5 - Color 3 R/W $38 OFFSET - dla przyszłych rozszerzeń R/W (normalnie jest tu 0) $39 P6C1 - Palette 6 - Color 1 R/W $3A P6C2 - Palette 6 - Color 2 R/W $3B P6C3 - Palette 6 - Color 3 R/W $3C CTRL - MARIA ConTRoL register WO $3D P7C1 - Palette 7 - Color 1 R/W $3E P7C2 - Palette 7 - Color 2 R/W $3F P7C3 - Palette 7 - Color 3 R/W Porty układu RIOT (6532): ------------------------- $280 SWCHA - P0,P1 JOYSTICK R/W DIRECTIONAL INPUT $282 SWCHB - CONSOLE SWITCHES RO $281 CTLSWA - I/O ConTroL for SWCHA R/W $283 CTLSWB - I/O ConTroL for SWCHB R/W gdzie: RO - tylko do odczytu WO - tylko do zapisu R/W - odczyt/zapis STROBE - dowolna wartość przy wpisie (rejestr reaguje już na sam fakt wpisania, dane są ignorowane) CZĘŚĆ 3 - CYKLE DMA
Liczba cykli DMA (Direct Memory Access - bezpośredni dostęp
do pamięci) nie jest pewna, gdyż wewnętrzny zegar MARII ma częstotliwość 7.16
MHz w przeciwieństwie do mikroprocesora, taktowanego 1.79 MHz lub 1.19MHz. W
wyniku tego nie jest również znana liczba dodatkowych cykli potrzebnych na
rozpoczęcie/wstrzymanie DMA w celu dostosowania się do 6502. Możliwe to jest jednak
dla 6502, gdy TIA lub RIOT (6532) są połowie długiego okresu korzystania z
pamięci (tzw. long access). Praca procesora jest wstrzymana, więc niepewność co
do ilości dodatkowych cykli dochodzi wtedy do 5. Rozpoczęcie DMA: 5-9 cykli Nagłówek (4 bajty): 8 cykli Nagłówek (5 bajtów): 12 cykli Odczyt grafiki: - bezpośredni 3 cykle - pośredni/1 bajt 6 cykli - pośredni/2 bajty 9 cykli Dostęp do mapy znaków: 3 cykle Przebiegi przy wstrzymywaniu: - ostatnia linia obszaru 10-13 cykli - inne linie obszaru 4 - 7 cykli.
Koniec VBLANK osiągany jest przy rozpoczęciu DMA i przy
długim wstrzymywaniu. Voy/SSG^Dial |