Elementy komputera Commodore 64
Ten artykuł jest przeznaczony dla osób pragnących zajrzeć pod obudowę mikrokomputera i zapoznać się z nim od strony sprzętowej. Omówimy teraz funkcje poszczególnych elementów. Zrobimy to zgodnie z numeracją podaną na zdjęciu obok, przedstawiającym płytkę montażową z elementami C64.
1.Mikroprocesor 6510
Mikroprocesor jest najważniejszym elementem mikrokomputera odpowiedzialnym za wykonywanie wszystkich instrukcji programowych. Jest on 8-bitowym procesorem o częstotliwości 1 MHz lub 2 MHz (w C64 stosuje się 0,98 MHz dla PAL lub 1,02 MHz dla NTSC). Nie różni się on architektonicznie od popularnego mikroprocesora 6502. Zawiera jednak dodatkowo sześć programowalnych połączeń we-wy, z których trzy służą do sterowania pamięci i trzy do obsługi magnetofonu. Mikroprocesor może być dołączony do 16-bitowej trójstanowej magistrali adresowej i umożliwia dostęp do pamięci (DMA).
2.PLA
Ten układ scalony typu FPLA (ang.field programmable logic array) jest odpowiedzialny za sterowanie pamięci. Zastępuje on wiele bramek, przerzutników i multiplekserów potrzebnych do zrealizowania skomplikowanej struktury logicznej. Ma on 16 wejść i 8 wyjść i umożliwia przyporządkowanie każdej z 65536 (teoretycznie) kombinacji wejściowych odpowiedniej z 256 kombinacji wyjściowych. Specyfika tego i kilku innych układów scalonych zapewnia, że nie można samemu zbudować mikrokomputera "C64-podobnego".
3.Basic ROM
Ta 8 KB-towa pamięć typu ROM zawiera główną część interpretatora Basicu, tzn.te procedury, które są wspólne dla wszystkich mikrokomputerów, i może być (teoretycznie) przeniesiona do innych modeli.
4.Kernal ROM
System operacyjny Kernal obejmuje wszystkie procedury specyficzne dla mikrokomputera C64, tzn.te, które obsługują urządzenia we-wy, realizują instrukcje LOAD i SAVE, śa odpowiedzialne za współpracę z videokontrolerem, generatorem dźwięku itp.
5.Generator znaków
Generator znaków jest zawarty w 4 KB-towej pamięci typu ROM i dostarcza dane do utworzenia każdego z 512 używanych w C64 znaków. Informacja dotycząca jednego znaku zajmuje 8 bajtów.
6.RAM
Do realizacji 64 KB-towej pamięci RAM użyto 8 układów scalonych typu 4164, z których każdy przechowuje 64 Kb (kilobity) informacji. Interesujący jest sposób adresowania tej pamięci. Wykorzystano mianowicie 8 linii adresowych i dwie linie wybierające: jedną dla oznaczenia, że na liniach adresowych znajdują się dane dotyczące mniej znaczącego bajtu, drugą - bardziej znaczącego. Pamięć ta jest pamięcią dynamiczną, co oznacza, że przechowuje informację tylko przez pewien czas i musi być "odświeżana". Robi to automatycznie układ scalony VIC.
7.Pamięć koloru
Ten układ scalony zapamiętuje 1024x4 bity, z których są tworzone 1024 bajty. W każdym bajcie można więc modyfikować tylko 4 młodsze bity. Wystarcza to do zapamiętania jednego z 16 dostępnych kolorów dla 1000 znaków ukazujących się na ekranie (25 wierszy, 40 kolumn). Pozostałe 24 półbajty (ang.nibble) są zazwyczaj niewykorzystane.
8.Multipleksery dla RAM
Ze względu na przyjęty sposób adresowania pamięci RAM są potrzebne układy scalone umożliwiające przejście z 16-bitowej magistrali na 8-bitową oraz dwie linie wybierające.
9.SID
Głównym przeznaczeniem układu scalonego 6581 jest synteza dźwięku (trzy głosy). Zawiera on jednak poza tym dwa 8-bitowe przetworniki analogowo-cyfrowe umożliwiające np.podłączenie wiosełek (ang.paddles). Sygnał odpowiadający głosowi trzeciemu może być wykorzystywany jako "stochastyczny" lub do generacji ciągu liczb przypadkowych.
10.CIA 1
Układ scalony 6526 jest programowalnym układem sprzęgającym. Zawiera on dwie 8-bitowe bramy (ang.port), które mogą pracować jako wejścia lub wyjścia, rejestry sterujące te bramy (możliwe przesyłanie z potwierdzeniem), dwa niezależne układy czasowo - licznikowe, bramę transmisji szeregowej, a także zegar czasu rzeczywistego. Ten ostatni nie jest niestety efektywnie wykorzystany przez Kernal. Linie we-wy CIA 1 są użyte do sprzężenia z klawiaturą oraz gniazdami joysticków, przy czym brama A służy do odczytu rzędu naciśniętego klawisza i joysticka 2, a brama B - kolumny klawisza i joysticka 1. Połączone układy czasowo - licznikowe umożliwiają generację przebiegu o częstotliwości 60 Hz wykorzystywanego przy przeglądzie klawiatury i stosowanego jako sygnał przerywający IRQ.
11.CIA 2
Drugi z układów sprzęgających obsługuje urządzenia przyłączone do szeregowego interfejsu (dysk, standardową drukarkę) oraz gniazda użytkowego, np. przez linie RS-232C lub transmisji równoległej. CIA 2 umożliwia też wybór banku pamięci dla videokontrolera VIC. Układy czasowo - licznikowe są wykorzystywane przez procedury RS-232C do generacji sygnału przerywające NMI.
12.Rezystory
Dodatkowe rezystory przyłączone do źródła +5V utrzymują poziom wysoki na niektórych liniach interfejsu.
13.Bufor bramy szeregowej
W celu zwiększenia obiążalności linii transmisji szeregowej zastosowano dodatkowe inwertery.
14.Multiplekser sygnału analogowego
W grach wykorzystujących wiosełka używa się na ogół dwu ich zestawów przyłączonych do obu gniazd joysticków. Musimy więc mierzyć cztery napięcia na potencjometrach, a układ scalony SID ma jedynie dwa przetworniki analogowo - cyfrowe. Funkcją omawianego układu jest wybór pary potencjometrów, z których napięcia są mierzone. Przełączanie następuje niezależnie od wartości bitów 6 i 7 w bramie A układu CIA 1. Na ustalenie się napięcia na wyjściu multipleksera trzeba czekać około pół milisekundy.
15.Gniazdo klawiatury
Klawiatura może być odłączona od płyty głównej mikrokomputera. W gnieździe oprócz doprowadzeń do ośmiu rzędów i ośmiu kolumn klawiatury znajduje się doprowadzenie do osobnego klawisza RESTORE.
16.Generator sygnałów RESET i NMI
Ten układ scalony jest odpowiedzialny za generację sygnału RESET po włączeniu komputera. Inną jego funkcją jest generacja sygnału przerywającego NMI, gdy klawisz RESTORE zostaje szybko naciśnięty - uderzony (istotne jest zbocze impulsu).
17.Sterownik silnika magnetofonu
Do zasilania silnika magnetofonu jest potrzebne stabilizowane napięcie +6V (niezależne od +5V stale potrzebnych do zasilania jego układów elektronicznych). Napięcie to jest włączane w zależności od wartości piątego bitu w bramie procesora (adres $0001). W ten sposób uruchamia się, bądź zatrzymuje silnik. Można oczywiście do gniazda magnetofonu (zaciski 3 i 1) przyłączać przekaźnik sterujący dowolne urządzenia zewnętrzne, np.włączający światła w domu.
18.Gniazdo rozszerzenia
W gnieździe tym są dostępne wszystkie magistrale mikrokomputera: danych, adresowa i sterowania, a poza tym linie przerwań IRQ i NMI, linia RESET, sygnał zegara wizyjnego (7,88 MHz), zasilanie +5V itd. Sygnały GAME i EXROM służą w przypadku stosowania pamięci zewnętrznej (np.cartridge) do odłączania wewnętrznej pamięci RAM. Przy próbach przyłączania urządzeń zewnętrznych należy pamiętać, że magistrale są niebuforowane.
19.Gniazda drążków sterowniczych
Gniazda te są przeznaczone do przyłączania drążków sterowniczych (joysticków), ale ich pięć linii we-wy, dwie analogowe i zasilanie mogą być również wykorzystane do innych celów.
20.VIC-II
Jest to jeden z tych elementów, który zadecydował o sukcesie C64. Nota bene, jest on następcą układu scalonego VIC używanego w mikrokomputerze VIC-20. Odpowiada on za realizację wszystkich procedur związanych z wyświetlaniem informacji na monitorze w trybie tekstowym i graficznym. W odróżnieniu od swojego poprzednika umożliwia on generację duszków. VIC-II ma bezpośredni dostęp do pamięci, a pamięć ekranu może być umieszczona w dowolnym miejscu, ale w granicach 16 KB - tyle bowiem pamięci może on adresować. Dwa najstarsze bity adresu, ustalające o które 16 KB chodzi, są generowane przez CIA 2 - są to bity 6 i 4 w bramie A.
21.Ekranowany układ wizyjny
Metalowy ekran jest wykorzystywany dodatkowo jako radiator dla układu scalonego znajdującego się wewnątrz. Pod nim znajduje się VIC wraz z drobnymi elementami oraz układ dwu zegarów: procesora o częstotliwości 0,98 (lub 1,02 dla NTSC) MHz i wizyjnego o częstotliwości 7,88 (lub 8,18 dla NTSC) MHz. Ponieważ 6,5 MHz jest największą częstotliwością, przy której w typowym telewizorze można rozróżnić sąsiednie punkty, w zestawie znaków dla C64 wszystkie znaki mają po co najmniej dwa punkty w wierszu (obniża to częstotliwość o połowę dając ostre krawędzie liter - szczególnie ważne w kolorze).
22.Regulator intensywności koloru
Ten mały potencjometr umożliwia regulację nasycenia kolorów.
23.Regulator częstotliwości zegara
Zmiana częstotliwości następuje w małym zakresie i nie ma większego wpływu na działanie komputera, natomiast poprzez sprzężoną zmianę częstotliwości zegara wizyjnego znacznie wpływa na kolory ekranu. Głównym przeznaczeniem tego potencjometru jest dostrojenie kolorów podczas fabrycznej regulacji.
24.Modulator wizyjny
Zadaniem tego urządzenia jest dostarczenie modulowanego sygnału, który może być doprowadzony do gniazda antenowego telewizora.
25.Gniazdo zasilania
Do zasilania komputera C64 jest potrzebne stałe stabilizowane napięcie 5V i zmienne 9V. Napięcie 5V jest używane do zasilania wszystkich układów scalonych komputera za wyjątkiem videokontrolera. Napięcie zmienne jest prostowane wewnątrz komputera. Uzyskuje się w ten sposób napięcie: 5V do zasilania układu VIC i 12 V do zasilania VIC i SID. Napięcie zmienne jest też wykorzystane jako wzorzec częstotliwości dla zegara czasu rzeczywistego TOD.
26.Bezpiecznik
Bezpiecznik zabezpiecza tylko obwody zasilane napięciem zmiennym. Przerwa w obwodzie tego napięcia nie jest natomiast sygnalizowana przez diodę świecącą LED. Gdy dioda się świeci, a komputer "milczy", może to świadczyć o przepaleniu się bezpiecznika.
27.Powielacz napięcia
Ten układ jest potrzebny do wytworzenia 16V napięcia stałego z 9V napięcia zmiennego.
28.Stabilizator napięcia 12V
Napięcie stałe 16V jest doprowadzane do stabilizatora, który utrzymuje je na poziomie 12V potrzebnych do zasilania układów VIC i SID.
29.Stabilizator napięcia 5V
Napięcie 9V po wyprostowaniu jest doprowadzone do tego stabilizatora dostarczającego drugiego napięcia potrzebnego do zasilania układu VIC.
30.Gniazdo wskaźnika zasilania
Dioda świecąca LED jest połączona przez to gniazdo z płytą główną komputera.
Na koniec uwagi dla tych, którzy zachęceni opisem zdecydują się obejrzeć swego komodorka od wewnątrz. Jak wspomnieliśmy Commodore 64 jest rozmaicie montowany i rozmieszczenie elementów może - zależy to od serii - nie odpowiadać zdjęciu na górze. Bardzo istotne jest, ile układów scalonych jest na podstawkach. Im więcej, tym lepiej - łatwiej bowiem w przypadku awarii próbować samemu naprawić komputer.
Bohdan Frelek "Mikrokomputery - Commodore 64", wyd. Naukowo - Techniczne, Warszawa 1991
|