MOS Technology 8563

MOS Technology 8563 Video Display Controller (VDC) – układ scalony produkowany przez firmę MOS Technology. Użyty był w komputerze Commodore 128 do wyświetlania 80-kolumnowego obrazu w rozdzielczości 640×200.

Układ oryginalnie miał być przeznaczony dla komputera uniksowego, który ostatecznie nie powstał. Firma Commodore zainstalowała go jedynie w kilku prototypowych egzemplarzach maszyny. W przeciwieństwie do wcześniejszych chipów wideo firmy MOS, takich jak VIC-II, układ VDC posiadał 16 KB pamięci VRAM (rozszerzalnej do 64 KB). Owa pamięć nie była bezpośrednio dostępna dla procesora. Początkowo produkt przynosił mało zysków, a proces jego produkcji był nieco trudniejszy w porównaniu do pozostałego asortymentu firmy MOS.

Edytor tekstu wyświetlany przez układ VDC

Oficjalnie 8563 mógł wyświetlać tylko tekst, mimo iż ze starannej lektury specyfikacji technicznej wynikało istnienie trybu graficznego wysokiej rozdzielczości. Język Commodore BASIC 7.0 wbudowany w komputer C128 obsługiwał wyłącznie 40-kolumnowy tryb wysokiej rozdzielczości, poprzez układ VIC-II. Wkrótce po premierze C128, tryb graficzny wysokiej rozdzielczości został dokładnie opisany w książce Data Beckera opublikowanej pod koniec 1985 r. Wraz z publikacją dostarczany był program umożliwiający zapalanie lub wygaszenie każdego piksela na ekranie z poziomu języka BASIC. Umożliwiał on również kreślenie kształtów geometrycznych w 80-kolumnowym trybie graficznym. W lutym 1986 r. magazyn RUN opublikował artykuł zatytułowany Ultra Hi-Res Graphics, również opisujący ów tryb. Dołączony listing programu (w języku maszynowym) rozszerzał możliwości BASIC-a o obsługę rozdzielczości 640×200 wykorzystując do tego celu układu 8563. W późniejszym czasie autorzy, Lou Wallace i David Darus wydali program Ultra Hi-Res przeznaczony dla BASIC 8.0. W końcu firma Commodore zdecydowała się opublikować oficjalną dokumentację VDC pt. Commodore 128 Programmer's Reference Guide. Tryb graficzny w dużym stopniu wykorzystywany był przez system operacyjny GEOS. Choć VDC nie posiadał obsługi obiektów sprite, to dysponował możliwościami Blitter w postaci kopiowania bloków pamięci bezpośrednio do VRAM-u.

Adresując wewnętrzne rejestry MOS 8563, program musiał dać znać układowi, do którego z 37 rejestrów chce mieć dostęp. Następnie program musiał zaczekać, aż układ będzie gotowy i umożliwi dostęp. Przeprowadzenie takiej operacji wygląda następująco:

ldx #regnum       ;VDC register to access
stx $d600         ;write to control register
loop    bit $d600         ;check bit 7 of status register
bpl loop          ;VDC not ready
lda $d601         ;get contents of VDC register

Maksymalna liczba klatek na sekundę do uzyskania w trybie graficznym dzięki tej metodzie kontrolowania układu VDC, była zbyt mała by sprostać wymaganiom gier.

Dane techniczne edytuj

  • Wyjście RGBI zgodne ze standardem CGA
  • Możliwość adresowania 16 lub 64 KB pamięci wideo
  • Rozdzielczość: 640×200 px, 640×400 px (w trybie z przeplotem) lub 720×700 px (przy 64 KB VRAM)
  • Matryca znaku: 80×25 px, 80×50 px lub 40×25 px
  • 8 kolorów o dwóch poziomach jasności