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.
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 | edytuj kod]- 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