..:: Serious Magazine ::.. wydanie 14
| |
Wstępniak
Fairy Castle czyli Zaklęty Zamek
Piano v1.0
Prezentacja Fairy Castle, Piano
Klimat...
Profesor
Nowoczesne zakupy...
Postać Atari - Nir Dary
List do mnie i o mnie - Jabol
Teraz ja!
Dekoder
Humor w Serious'ie
Recenzja, polemika: Numen
Nowy
K.S.O. 2T06 TURBO
Notka - TURBO 2T06
Moja przygoda z Atari...
Zabobony
Sidcar
Design Master
Próbnik - trzecie oko elektronika
Sterowanie biologiczne
Jak się pozbyć...
Grzebanie w popiele
Nakładka
Kontroler obrazu
Jaka dokładność?
Atari w Internecie
LCD
Gadżet
Gadżet - demo
Zestaw kilku prac
Wyjście
|
Dekoder
Nie pamiętam który to był rok, było to dawno. Pewnie 1992 lub +-1. Pojechałem na giełdę, a tam ku mojemu zaskoczeniu jakiś
gość sprzedawał książki o Atari. Zgadnijcie co zrobiłem? Kosztowała 2850zł. Wtedy dużo, a i dziś niemało. Książka nazywa się ASSEMBLER 6502 wydana przez SOETO
w 1987, Ruszczyca. Lektura była pierwszorzędna, choć muszę przyznać nie wszystko było jasne i zrozumiałe. Np. na stronie 167 jest dosyć skrócona mapa pamięci. Oczywiście
podobnych miałem już wiele, ale dopiero ta wzbudziła moje zainteresowanie. Dlaczego? Czytam coś takiego:
D000-D7FF obszar rejestrów, poza nimi nie do wykorzystania w tym:
D000-D0FF GTIA...
D100-D1FF Nieużywane
D200-D2FF POKEY...
D300-D3FF PIA...
D400-D5FF ANTIC...
D600-D6FF Nieużywane
D700-D7FF Nieużywane
???
Nadal nic nie wiem. Dlaczego!?
Przecież komputer jest, działa i takie marnotrawstwo pamięci? Dlaczego pewne obszary nie są używane, na dodatek niedostępne, z czego to wynika? Schemat do ręki,
analizujemy (mam na myśli komputer Atari 800XL). Szyna adresowa, dokładnie jej linie adresowe A11, A12, A13, A14, A15 dochodzą do MMU. Ten układ między innymi
wyodrębni z całości adresy z przedziału $D000-$D7FF. Sygnalizuje to wystawieniem stanu niskiego na końcówkę 17 oznaczoną IO (z kreseczką na górze) co właśnie stanowi,
że aktywnym sygnałem jest stan niski. Tuż obok jest układ 74LS138, który jest niczym innym jak dekoderem 1 z 8. Czytaj: jeden z ośmiu. Do jego wejść adresowych A,B,C
doprowadzone są linie adresowe A8, A9, A10. Wejścia wyboru połączone są następują co:
Wszystko O.K. Ale lepiej widać to będzie na poglądowym schemacie....
oraz na "tablicy prawdy"...
| A15 | A14 | A13 | A12 | A11 | A10 | A9 | A8 | Opis |
| 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | GTIA |
| 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | Nieużywany |
| 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | POKEY |
| 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | PIA |
| 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | ANTIC |
| 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | CCTL |
| 1 | 1 | 0 | 1 | 0 | 1 | 1 | 0 | Nieużywany |
| 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | Nieużywany |
Sygnał aktywności dla GTIA pojawia się na pinie 15 układu 74LS138
Sygnał dla POKEY'a na pinie 13
Sygnał dla PIA na pinie 12
Sygnał dla ANTIC'a na pinie 11
Sygnał dla CCTL na pinie 10
Sygnał CCTL to nic innego jak sygnał uaktywnienia cartridge'a. Polega to na tym, że jeżeli procesor wystawi na szynę adres z zakresu $D500-$D5FF to sygnał CCTL przyjmuje
stan zera logicznego. Linie adresowe A0-A7 wyznaczą jedną z komórek na tej stronie. Stąd rejestrów sprzętowych może być 256.
To samo dzieje się dla GTIA, POKEY'a i PIA. Z tym że do tych układów nie są doprowadzone wszystkie linie adresowe A0-A7 a tylko niektóre. Występuje tzw. niepełne
dekodowanie. Adresy się "przewijają" co znaczy, że w danym układzie, dany rejestr dostępny jest pod kilkoma adresami. To legło u podstaw zbudowania modułu stereo do
Atari, bo wystarczy rozbudować dekoder by każdy POKEY adresowany był innym adresem, etc... etc...
Z ANTIC'iem jest nieco inaczej, bo nie jest sterowany przez sygnał wyjściowy dekodera 74LS138 lecz sam w sobie ma dekoder "czuły" na adresy $D400-$D4FF.
Jaki stąd wniosek?
Sygnały zaznaczone na powyższym schemacie jako nieużywane mogą być... używane. Wystarczy wyprowadzić je na zewnątrz komputera i będą miały taki sam status
jak sygnał CCTL dla cartridge'a. Tak więc dostępne staną się strony: $D1, $D6, $D7 oraz jako produkt uboczny sygnał adresujący stronę $D4 która defakto należy do ANTIC'a.
Bez najmniejszych oporów sygnały oznaczone jako nieużywane można wyprowadzić kawałkiem przewodu na rozbudowane gniazdo cartridge'a (patrz i czytaj stosowny artykuł
na ten temat w tym numerze magazynu SERIOUS). Literatura podaje, że strona $D1 jest przeznaczona dla tzw. "Nowych urządzeń". Więc niech tak będzie. Warto dodać,
spoglądając na zamieszczoną wyżej "tablicę prawdy" że linia adresowa A11 służy do:
- gdy jest zerem, wyboru urządzeń IO
- gdy jest jedynką wyboru pakietu procedur zmienno - przecinkowych zamieszczonych w Systemie Operacyjnym
Przełączeń dokonuje MMU bez udziału dekodera 74LS138. Oczywiście mówimy stale o adresowaniu obszaru $D000 - $DFFF.
Jednak to temat innego artykułu
Po tej analizie jest już dla mnie jasne, dlaczego pewne obszary nie są dostępne. Bo nie ma połączeń. A bardziej swojsko?
Konstruktorom Atari albo brakło inwencji, albo co jest bardziej prawdopodobne, pozostawili celowo drzwi otwarte do eksperymentatorów takich jak ja. Dziękuję za...
dalekowzroczność.
Strona $D6 jak pamiętamy albo i nie, jest używana dla TTP, natomiast strona $D7 dla D_ROM'a.
I tak oto po nitce do kłębka labirynt stał się "przezroczysty". Nie przypadkowo w tym magazynie znajduje się schemat PRÓBNIKA oraz opis jak z niego korzystać. Teraz może się
przydać. Wystarczy go dołączyć do płyty Atari, a końcówkę pomiarową dołączyć do odnośnego punktu na płycie. Będą to więc piny 7, 9-15 dekodera 74LS138. Jumper próbnika
odpowiednio ustawiony pozwoli zaobserwować przebieg cyfrowy synalizowany miganiem diody LED.
Wróćmy więc do ANTIC'a. Na pinie 11 dekodera 74LC138 pojawia się przebieg cyfrowy, choć pin ten niczym nie steruje,
"wisi w powietrzu". To efekt dekodowania adresu przynależnego do ANTIC'a, a właściwie strony jemu przyporządkowanej. Normalnie ANTIC cały czas pracuje, więc na
szynie adresowej pojawiają się adresowe odwołania do niego. ANTIC potrafi rozszyfrować co do niego należy, natomiast dekoder pracuje sobie. Stąd... pinu 11 nie można
użyć do sterowania jak w przypadku pinów 7, 9, 10 i 14.
A co się stanie gdy zablokowane zostanie DMA i wszystkie przerwania? Mowa o ANTIC'u. Po cichu namawiam by to sprawdzić, ale wpierw należy zbudować PRÓBNIK :)
Zenon/Dial
|
|
|