Technologia MOS VIC

Technologia MOS VIC (wersja PAL 6561-101)
Schemat pinout wersji 6560 układu MOS VIC. Ten obwód został zapakowany w standardową 40-pinową DIP .

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ż

  •   Bagnall, Brian (2005). On The Edge: Spektakularny wzrost i upadek Commodore . Wariant Naciśnij. ISBN 0-9738649-0-7 .
Konkretny

Linki zewnętrzne