Technologia MOS VIC
VIC (Video Interface Chip) , znany jako MOS Technology 6560 ( wersja NTSC ) / 6561 ( wersja PAL ), to układ scalony odpowiedzialny za generowanie grafiki wideo i dźwięku w komputerze domowym VIC-20 firmy Commodore. Pierwotnie został zaprojektowany do zastosowań takich jak niedrogie terminale CRT , monitory biomedyczne, wyświetlacze systemów sterowania oraz konsole do gier wideo lub domowe .
Chip został zaprojektowany przez Ala Charpentiera w 1977 roku, ale Commodore nie mógł znaleźć rynku dla tego chipa. W 1979 roku firma MOS Technology rozpoczęła prace nad chipem wideo o nazwie MOS Technology 6564 przeznaczonym dla komputera TOI , a także pracowała nad innym chipem, MOS 6562, przeznaczonym dla kolorowej wersji Commodore PET . Oba te chipy zawiodły z powodu ograniczeń czasowych pamięci (oba wymagały bardzo szybkiej, a tym samym drogiej pamięci SRAM , przez co nie nadają się do masowej produkcji). Zanim w końcu zaczął używać VIC w VIC-20, projektant chipów Robert Yannes wprowadził funkcje z 6562 (lepszy generator dźwięku) i 6564 (więcej kolorów) z powrotem do 6560, więc przed rozpoczęciem masowej produkcji dla VIC-20 został gruntownie zrewidowany.
Jego funkcje obejmują:
- 16 kB przestrzeni adresowej dla pamięci ekranu, znaków i kolorów (tylko 5 kB wskazuje na pamięć RAM w VIC-20 bez modyfikacji sprzętowej)
- 16 kolorów (górnych 8 można używać tylko w globalnym tle i kolorach pomocniczych)
- dwa rozmiary znaków do wyboru (8 × 8 lub 8 × 16 bitów; szerokość piksela wynosi 1 bit dla znaków „wynajmowanych” i 2 bity dla znaków „wielokolorowych”)
- maksymalna rozdzielczość wideo zależy od systemu telewizyjnego (176 × 184 jest standardem dla oprogramowania układowego VIC-20, chociaż do 248 × 232p / 464i jest możliwe na maszynie NTSC i do 256 × 280 jest możliwe na maszynie PAL )
- 4-kanałowy system dźwiękowy (3 fale kwadratowe + szum „biały” + globalna regulacja głośności)
- DMA na chipie
- dwa 8-bitowe przetworniki analogowo-cyfrowe
- lekka obsługa pióra
W przeciwieństwie do wielu innych układów wideo tamtej epoki, nie oferuje możliwości dynamicznego odświeżania pamięci RAM . W związku z tym VIC-20 wykorzystywał droższe układy statycznej pamięci RAM (SRAM). Jest to prawdopodobnie powód, dla którego maszyna była sprzedawana z zaledwie 5 KB pamięci RAM. Rozszerzenia pamięci dla VIC-20 albo wykorzystywały również SRAM, albo zaimplementowały własny obwód odświeżania.
VIC został zaprogramowany poprzez manipulację jego 16 rejestrami kontrolnymi , pamięć zmapowana do zakresu adresów pamięci 9000–900 $ F w przestrzeni adresowej VIC-20. Wbudowane przetworniki analogowo-cyfrowe były używane do odczytów położenia dwóch łopatek przez VIC-20, który również korzystał z pióra świetlnego VIC . VIC poprzedzał znacznie bardziej zaawansowany VIC-II , używany przez następców VIC-20, C64 i C128 .
VIC-20 z rozszerzoną pamięcią RAM mają swoją pamięć wideo (550 bajtów) za 1000 USD, a gdy jej nie ma, 1E00 USD. Zestawy znaków zdefiniowane przez użytkownika muszą być umieszczone w obrębie pierwszych 5 KB systemowej pamięci RAM. Domyślna PETSCII kosztuje 8000 USD, a każdy znak zajmuje 8 bajtów do przechowywania. Jednorazowo można użyć do 128 znaków. Podczas gdy PET miał ukośnik odwrotny (\) w swoim zestawie znaków, został on zastąpiony na VIC-20 (i wszystkich kolejnych maszynach Commodore) znakiem funta brytyjskiego (£).
Programowalne znaki to jedyny sposób tworzenia grafiki i animacji na VIC, ponieważ układ nie ma sprite'ów ani trybu mapy bitowej z możliwością adresowania wszystkich punktów. Z 16 kolorów w palecie osiem może być użytych jako pierwszy plan (na kolorową pamięć RAM za 9400 USD) i obramowanie, podczas gdy pozostałe są ograniczone do wielokolorowych tła i pomocniczych. MSB kolorowej pamięci RAM to flaga używana do wskazania, czy ten znak jest wielokolorowy, czy ma wysoką rozdzielczość. Ze względu na ekstremalną blokowość tego pierwszego, większość gier VIC-20 wykorzystuje postacie do wynajęcia.
VIC nie obsługuje przewijania ani przerwań rastrowych, jak w VIC-II, ale liczniki linii skanowania mogą być odpytywane dla określonego punktu na ekranie, aby uzyskać efekty rastrowe. Ta funkcja była rzadko używana w grach, z wyjątkiem kilku tytułów, takich jak Demon Attack firmy Imagic .
Programowanie dźwięku w VIC odbywa się poprzez umieszczenie wartości częstotliwości w jednym z czterech rejestrów na $900A-$900D (są one wyłączane przez wpisanie do nich zera). Pierwsze trzy to generatory fali prostokątnej oddalone od siebie o pół oktawy, a czwarty jest przeznaczony do białego szumu.
Rejestry
VIC ma 16 rejestrów odczytu/zapisu wymienionych poniżej:
Rejestr | Szesnastkowy | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
---|---|---|---|---|---|---|---|---|---|
0 | 9000 | Przeplatać | Pochodzenie poziome | ||||||
1 | 9001 | Pochodzenie pionowe | |||||||
2 | 9002 | VA9 | Liczba kolumn | ||||||
3 | 9003 | R0 | Liczba rzędów | 8/16 | |||||
4 | 9004 | Linia rastrowa (bity 8-1) | |||||||
5 | 9005 | Adres wideo (bity 13-10) | Adres znaku (bity 13-10) | ||||||
6 | 9006 | Lekki długopis poziomy | 1 | ||||||
7 | 9007 | Lekki długopis w pionie | |||||||
8 | 9008 | Wiosło X | |||||||
9 | 9009 | wiosło Y | |||||||
10 | 900A | włączać | Częstotliwość oscylatora 1 | ||||||
11 | 900B | włączać | Częstotliwość oscylatora 2 | ||||||
12 | 900C | włączać | Częstotliwość oscylatora 3 | ||||||
13 | 900D | włączać | Częstotliwość białego szumu | ||||||
14 | 900E | Kolor pomocniczy | Tom | ||||||
15 | 900F | Tło | RV | Granica |
Paleta kolorów
Pełna paleta szesnastu kolorów została wygenerowana na podstawie wariacji sygnałów YPbPr :
Numer — imię | Y | Pb (rel.) | Pr (rel.) |
---|---|---|---|
0 — czarny | 0 | 0 | 0 |
1 — biały | 1 | 0 | 0 |
2 — czerwony | 0,25 | −0,3826834 | 0,9238795 |
3 — cyjan | 0,75 | 0,3826834 | −0,9238795 |
4 — fioletowy | 0,5 | 0,7071068 | 0,7071068 |
5 — zielony | 0,5 | −0,7071068 | −0,7071068 |
6 — niebieski | 0,25 | 1 | 0 |
7 — żółty | 0,75 | −1 | 0 |
8 — pomarańczowy | 0,5 | −0,7071068 | 0,7071068 |
9 — jasnopomarańczowy | 0,75 | −0,7071068 | 0,7071068 |
10 — jasnoczerwony | 0,5 | −0,3826834 | 0,9238795 |
11 — jasnobłękitny | 1 | 0,3826834 | −0,9238795 |
12 — jasny fiolet | 0,75 | 0,7071068 | 0,7071068 |
13 — jasnozielony | 0,75 | −0,7071068 | −0,7071068 |
14 — jasnoniebieski | 0,5 | 1 | 0 |
15 — jasnożółty | 1 | −1 | 0 |
Uwaga: Y ma 5 możliwych wartości (0, 0,25, 0,5, 0,75 i 1); Pb i Pr mają 7 możliwych wartości (-0,9238795, -0,7071068, -0,3826834, 0, 0,3826834, 0,7071068, 0,9238795)
Lista VIC IC
- Technologia MOS 6560 NTSC
- Technologia MOS 6561E PAL Wersja ceramiczna, używana we wczesnych VIC-20-tych
- Technologia MOS 6561-101 PAL
Zobacz też
- Kontroler wyświetlania wideo
- Motoroli 6847
- Lista komputerów domowych według sprzętu wideo
- MOS VIC-II używany w Commodore 64
- Bagnall, Brian (2005). On The Edge: Spektakularny wzrost i upadek Commodore . Wariant Naciśnij. ISBN 0-9738649-0-7 .
- Konkretny