Adresowanie ROMu

Rozbudowa C64. Część 2

Adresowanie ROMu i układów wejścia/wyjścia, port rozszerzenia.

Adresowanie ROMu
Powiększ – 33 KB

Adresowanie Układów wejścia/wyjścia.

VIC

$D000 – $D02E

SID

$D400 – $D41C

COLOR RAM

$D800 – $DBFF

CIA1

$DC00 – $DC0F

CIA2

$DD00 – $DD0F

I/O1

$DE00 – $DEFF

I/O2

$DF00 – $DFFF

Układ U17 jest programowalną tablicą logiczną (PLA). Wyjście F5 układu U17 (końcówka 12) oznaczone jako I/O przechodzi w stan „niski”, jeżeli wybrany jest którykolwiek układ WE/WY sterowany przez układ U15. Poniżej przedstawiona jest zajętość przestrzeni adresowej przez poszczególne układy WE/WY.

Adresowanie ROMu.

ROM BASIC’a umieszczony jest w przestrzeni adresowej od adresu $A000 do $BFFF. BASIC ROM jest uaktywniany, gdy wyjście F1 (końcówka 17) układu PLA U17 przechodzi w stan „niski”.
KERNAL ROM umieszczony jest w przestrzeni adresowej od adresu $E000 do $FFFF. KERNAL ROM jest uaktywniany, gdy wyjście F2 (końcówka 16) układu PLA U17 przechodzi w stan „niski”.

ROM generatora znaków (CHARACTER GENERATOR ROM) umieszczony jest w przestrzeni adresowej od adresu $D000 do $DFFF. Generator znaków jest uaktywniany, gdy wyjście F3 (końcówka 15) układu PLA U17 przechodzi w stan „niski”.

Port rozszerzenia.

Port rozszerzenia jest przedłużeniem szyny danych, szyny adresowej i sygnałów sterujących mikroprocesora. Oprócz tego, wyprowadzone są sygnały ROML i ROMH. Pierwszy z nich uaktywnia układy umieszczone od adresu $8000 do $9FFF, a drugi od $E000 do $FFFF. Przy pomocy tych wyjść układ PLA wybiera cartridge zainstalowany na porcie rozszerzenia.

Dalsze dwa sygnały I/O1 i I/O2 generuje układ U15. Sygnał I/O1 uaktywnia układy umieszczone od adresu $DE00 do $DEFF. Sygnał I/O2 uaktywnia układy umieszczone od adresu $DF00 do $DFFF.

Sterowanie pamięci RAM.

Sterowanie pamięcią RAM
Powiększ – 26 KB

Układy U13 i U25 pracują jako multipleksery linii adresowych. Jeżeli sygnał AEC, wytwarzany przez układ VIC, jest w stanie „wysokim”, wtedy do pamięci RAM docierają adresy z mikroprocesora. Jeżeli sygnał AEC jest w stanie „niskim” do pamięci RAM dociera adres odświeżania z końcówek 24 – 31 układu VIC.

Sygnał AEC przechodzi w stan „niski”, gdy zegar systemowy Ø2 jest w stanie „niskim”. Ponieważ wszystkie układy wejścia/wyjścia są dekodowane, gdy zegar Ø2 jest w stanie „wysokim”, więc odświeżanie nie przeszkadza w działaniu procesora (odświeżanie w przeciw fazie). Przy użyciu ośmiu układów 4164 DRAM zrealizowana jest pamięć 64kB. Układ pamięci RAM 2114 (1kB * 4 bity) służy do przechowywania informacji o kolorze obrazu.

Układy wyjściowe wizji i fonii – złącze 5-cio końcówkowe.

Układy wyjściowe wizji i fonii
Powiększ – 46 KB

Układ VIC generuje sygnał luminacji zsumowany z sygnałem synchronizacji na końcówce 15. Na końcówkę 14 wyprowadzony jest sygnał niosący informację o kolorze.
Całkowity sygnał video tworzony jest przez połączenie tych dwóch sygnałów. Kompletny sygnał video podawany jest na modulator i końcówkę 4 złącza monitorowego (CN5). W przeciwieństwie do wersji 8-mio końcówkowej złącza CN5, nie jest tutaj dostępny sygnał koloru.

Układy wyjściowe wizji i fonii – złącze 8-cio końcówkowe.

Układy wyjściowe wizji i fonii
Powiększ – 41 KB

Układ video kontrolera U19 VIC jest odpowiedzialny za tworzenie sygnału video. Luminacja wraz z synchronizacją (poziomą i pionową) wyprowadzona jest na końcówkę 15. Następnie, sygnał ten podawany jest na nóżkę 2 modulatora. Sygnał koloru z nóżki 14 układu U19 podawany jest na końcówkę 3 modulatora. Końcówka 9 układu U19 VIC umożliwia podłączenie pióra świetlnego.

Układ U18 SID jest odpowiedzialny za fonię. Końcówka 27 jest wyjściem fonii, a końcówka 26 wejściem fonii zewnętrznej. Modulator łączy sygnał luminacji, koloru oraz fonii i generuje kompletny sygnał TV na nóżce 5. Oprócz tego modulator przesyła na złącze CN5 sygnały wyjściowe z układu U19 VIC.
Sygnał fonii z nóżki 27 układu U18 SID, po przejściu przez wzmacniacz Q2, jest podłączony do końcówki 3 złącza CN5.
Sygnał fonii zewnętrznej z końcówki 5 złącza CN5 podawany jest na nóżkę 26 układu U18 SID. Manipulator analogowy („wiosełka”) jest podłączony do jednego z portów sterujących i testowany przez układ U18 SID na końcówkach 23 i 24.

Interfejs pamięci kasetowej.

Intefejs pamięci kasetowej
Powiększ – 30 KB

Jedną z cech układu 6510 jest wbudowany port we/wy (P0-P5). Linie P3 – P5 sterują większością funkcji interfejsu pamięci kasetowej. Na linii P3 wyprowadzony jest sygnał danych do zapisu, który podłączony jest do końcówek E i 5 złącza CN3. P4 jest wejściem, które służy do określania stanu w jakim znajduje się przycisk odtwarzania pamięci kasetowej. Linia P5 jest wyjściem, które steruje silnikiem pamięci kasetowej. Przejście linii P5 w stan niski powoduje zatkanie tranzystora Q2, co w rezultacie doprowadza do ustalenia napięcia na bazie tranzystora Q1 na poziomie 7.5V. Tranzystory Q1 i Q3 zostają nasycone, umożliwiając przepływ prądu przez uzwojenia silnika pamięci kasetowej.

Układ U1 realizuje funkcję rozbudowanego układu we/wy. Zwiera porty równoległe, wyjścia szeregowe i układy czasowe. Dane odczytane z pamięci kasetowej są podłączone do końcówek D i 4 złącza CN3, a następnie na nóżkę 24 (FLAG) układu U1.

Interfejs klawiatury, joysticka i manipulatora analogowego.

Intefejs klawiatury, joysticka i manipulatora analogowego
Powiększ – 47 KB

Matryca klawiatury.

Matryca klawiatury
Powiększ – 15 KB

Klawiatura podłączona jest do układu U1 CIA. Do dekodowania przycisków klawiatury użyte zostały obydwa równoległe porty układu U1. Sygnały portu A (PA0 – PA7) są wyjściami. Sygnały portu B (PB0 – PB7) są wejściami. Na liniach portu A pojawia się wędrujące „0”. Przyciśnięcie któregokolwiek klawisza powoduje pojawienie się „0” na odpowiadającej mu linii portu B.
Program zapisany w KERNAL ROM generuje wędrujące „0” na liniach portu A i dekoduje powracające sygnały na liniach portu B.
Przyciśnięcie klawisza RESTORE powoduje generację impulsu przez wygenerowanie przerwania niemaskowalnego – NMI. W wyniku tego procesor wykonuje procedurę, która inicjuje układy we/wy. Jeżeli w tym samym czasie zostanie wciśnięty klawisz STOP inicjowane są również flagi BASICa.

Interfejs joysticka.

Układ U1 współpracuje również z joystickiem. Joystick B, związany z portem 2, jest podłączony do portu A. Joystick A, związany z portem 1, jest podłączony do portu B. Przesunięcie dźwigni joysticka w górę, w dół, w lewo, w prawo lub przyciśnięcie przycisku „fire” powoduje zwarcie odpowiedniego wejścia układu U1 do masy.

Interfejs manipulatora analogowego.

Pokrętło manipulatora połączone jest z regulowanym rezystorem. Obracając pokrętłem, zmieniamy rezystancję, która z kolei wpływa na stałą czasową układu RC. Napięcie, które ustali się na kondensatorze podawane jest na wejście przetwornika analogowo-cyfrowego (A/D), znajdującego się w układzie U18 SID. Informacja w postaci cyfrowej jest przechowywana w jednym z rejestrów układu SID. Położenie manipulatora może być określone przez odczyt zawartości tego rejestru. Do przełączania sygnałów z obydwu manipulatorów wykorzystano układ kluczy analogowych 4066 CMOS (układ U28). Sygnały z manipulatorów są przekazywane do układu SID, podczas gdy wejścia zezwalające (E0-E3) układu U28 są w stanie „wysokim”.

UWAGA: Przyporządkowanie końcówek portu U1 podane na schematach jest błędne. Właściwy opis umieszczony jest na rysunku matrycy klawiatury.

Interfejs szeregowy i port użytkownika.

Interfejs szeregowy i port użytkownika
Powiększ – 41 KB

Interfejs szeregowy.

Interfejs szeregowy sterowany jest z układu U2 CIA przez sygnały PA3 – PA7 portu równoległego.
Sygnał PA3 jest sygnałem wyjściowym i spełnia funkcję linii zajętości (ATN). Sygnał zajętości jest odwracany przez układ U8. Linia PA4 jest wyjściem zegara. Transmisja danych z mikrokomputera C64 do urządzenia zewnętrznego jest synchronizowana sygnałem zegarowym na linii PA4. Dane wyjściowe przesyłane są na linii PA5. Sygnały PA4 i PA5 są buforowane przez układ U8.

Transmisja danych z urządzenia zewnętrznego do mikrokomputera C64 jest synchronizowana sygnałem zegarowym generowanym przez urządzenie nadające, który podłączony jest do linii PA6.
Transmisja danych z urządzenia zewnętrznego do mikrokomputera odbywa się na linii PA7. Urządzenie zewnętrzne, które chce nawiązać łączność z mikroprocesorem wystawia sygnał żądania obsługi wprowadzając linię SRQ IN w stan „niski”.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *