Technologie MOS 8563 - MOS Technology 8563

The Ovladač zobrazení videa 8563 (VDC) byl integrovaný obvod produkovaný Technologie MOS. Byl použit v Commodore 128 (C128) počítač pro generování 80-sloupců (640 × 200 pixel ) RGB zobrazení videa, běžící vedle a VIC-II který podporoval Commodore 64 -kompatibilní grafika. Modely DCR (stejně jako několik modelů D) modelu C128 používaly pozdější a technicky vyspělejší 8568 [D] VDC ovladač.
Historie a charakteristika
Původně určené pro plánované (ale nevydané) UNIX - obchodní počítač založený na Zilog Z8000, Komodor navrhl VDC do několika prototypových strojů. Z nich pouze Commodore 128 kdy viděl výrobu. Na rozdíl od dřívějších video čipů MOS, jako je populární VIC-II, měla VDC vyhrazenou video paměť, 16 kilobajtů (16 384 bajtů; lze upgradovat na 64 kilobajtů, 65 536 bajtů) v původním nebo „plochém“ C128 a 64 kilobajtech v C128DCR. Tato RAM nebyla přímo přístupná mikroprocesor.
Výroba modelu 8563 byla obtížnější než u většiny ze zbytku technologické řady MOS a počáteční výnosy byly velmi nízké. Rané jednotky měly také značné problémy se spolehlivostí a měly tendenci se autodestrukovat z přehřátí.[1] Také se vyskytly problémy s časováním VDC, které by způsobily nefunkčnost nepřímého zatížení a ukládání operací v jeho registrech.
Oficiálně byl VDC čip pouze pro text, ačkoli pečlivé čtení technické literatury od MOS Technology, která byla dána raným vývojářům C128, naznačovalo, že vysoké rozlišení bitmapa režim byl možný - jednoduše to nebylo nijak podrobně popsáno. BASIC 7.0, vestavěný programovací jazyk C128, podporoval pouze grafiku s vysokým rozlišením v režimu 40 sloupců přes starší čip VIC-II.

Krátce po vydání C128 VDC bitmapa režim byl podrobně popsán v Data Becker kniha „Commodore 128 - Das große GRAFIK-Buch“ (vydaná koncem roku 1985 ve Spojených státech Software Abacus ) a německými autory Klausem Löffelmannem a Dieterem Vüllersem byl poskytnut program montážního jazyka, ve kterém bylo možné nastavit nebo vymazat jakýkoli pixel nebo pomocí ZÁKLADNÍ k provedení potřebných výpočtů vygenerujte bitmapové geometrické tvary na obrazovce 80 sloupců.[1] V únoru 1986, necelý rok po Commodore 128 vydání, BĚH časopis zveřejněno "Grafika ve vysokém rozlišení", článek popisující bitmapový režim VDC a zahrnující a typový program (napsáno v 8502 montážní jazyk ), který rozšířil možnosti BASIC 7.0 o podporu grafiky s vysokým rozlišením 640 × 200 pomocí 8563.[2] Autoři Lou Wallace a David Darus později vyvinuli nástroj Ultra Hi-Res do komerčního balíčku, ZÁKLADNÍ 8. Jeden z nejpopulárnějších nástrojů třetích stran pro C128 nabízel pokročilejší funkce VDC s vysokým rozlišením širokému publiku programátorů.
Commodore nakonec nabídl kompletní oficiální dokumentaci k VDC v Commodore 128 Programmer's Reference Guide. Bitmapové režimy VDC byly ve verzi C128 značně používány GEOS operační systém.
VDC chybělo skřítek schopnosti, což omezilo jeho použití v hraní aplikace. Obsahoval však blitting možnosti samostatného provádění kopií paměti malého bloku v rámci vyhrazené video RAM. Zatímco VDC provádí takovou kopii, může systémový procesor pokračovat v běhu kódu za předpokladu, že se před dokončením kopírování nepokusí o žádný jiný přístup VDC. Tyto funkce používal editor obrazovky C128 ROM k rychlému posouvání nebo mazání částí obrazovky.
Technické specifikace
- RGBI výstup (RGB plus intenzita) kompatibilní s IBM CGA video standard.*
- 16 nebo 64 kilobyte adresový prostor pro zobrazení, tvar znaků a paměť atributů displeje (vyhrazené, oddělené od systémové paměti).
- Rozlišení videa až 720 × 700 pixelů v prokládaném režimu (maximum s 64kB video RAM) [3]. Jiné velikosti obrazu jsou možné v závislosti na potřebách programátora, například 640 × 200 neprokládaný, 640 × 400 prokládaný atd.
- Rozlišení textu 80 × 25 znaků (výchozí hodnota C128); možné jsou i jiné velikosti, například 80 × 50 nebo 40 × 25.
- 8 barev při 2 intenzitách.
* To platí pouze pro USA 60 Hz C128s. 50 Hz stroje C128 vydávají signál s 50 Hz svislou obnovou. I když neodpovídá standardu CGA, většina monitorů CGA dokázala bez problémů zobrazit signál 50 Hz. Některým monitorům se však buď nepodařilo signál vyřešit, nebo se jej podařilo vyřešit, ale dříve či později by jejich vychylovací obvody selhaly.
Programování
Adresování interních registrů VDC a vyhrazené grafické paměti musí být provedeno nepřímými prostředky. Nejprve musí program sdělit VDC, ke kterému ze svých 37 interních registrů má mít přístup. Dále musí program počkat, dokud nebude VDC připraven na přístup, po kterém může být provedeno čtení nebo zápis do vybraného interního registru. Následující montážní kód je typické pro čtení registru:
ldx #regnum; VDC registr pro přístup stx 600 $ ; zápis do řídícího registru smyčka bit 600 $ ; zkontrolujte bit 7 stavového registru bpl smyčka ; VDC není připraveno lda $ 601 ; číst z registru VDC ...
Následující kód je typický pro operaci zápisu do registru:
ldx #regnum; VDC registr pro zápis stx 600 $ ; zápis do řídícího registru smyčka bit 600 $ ; zkontrolujte bit 7 stavového registru bpl smyčka ; VDC není připraveno sta $ 601 ; zápis do registru VDC ...
Totéž je možné v ZÁKLADNÍ jazyk, konkrétní volání KERNAL rutiny:
Tento kód je typický pro čtení registru VDC, kde <register> je to číslo mezi 0 a 36, jak je uvedeno níže.
BANKA15...SYS DEC("CDDA"),, Registrovat : RREG VDCREM $ ccda aka 52698 v desetinnýTISK VDC ...
tento kód je typický pro zápis do VDC registru, kde <register> je to číslo mezi 0 a 36 a <value> je to číslo od 0 do 255, které chcete vložit do tohoto registru.
BANKA15...SYS DEC("CDCC"), hodnota, RegistrovatREM $ ccdc aka 52684 v desetinný ...
Díky této poněkud těžkopádné metodě ovládání VDC je možné maximum snímková frekvence v bitmapový režim je obecně příliš pomalý pro arkádové akční videohry, ve kterých je vyžadována bitově náročná manipulace s displejem.
Ve standardním textovém režimu se VDC chová podobně jako VIC-II, kromě 2k paměti obrazovky namísto 1k. Zapnutí výchozí konfigurace umisťuje paměť obrazovky na $ 0- $ 7FF a barevnou paměť na $ 800- $ 9FF a lze je přesouvat kdekoli v paměti VDC, pokud je na hranici 2k. Atributy jsou zpracovávány jako režim vysokého rozlišení VIC-II s globální barvou pozadí a barvou popředí každého znaku individuálně pro každou barevnou RAM. Kromě barevných údajů obsahuje tato také údaje o atributech pro každý znak. Bit 4 způsobí, že znak bliká, pokud je povolen, bit 5 vytváří podtržené znaky a bit 6 invertuje bitmapový vzor postavy. Bit 7 umožňuje alternativní znakovou sadu. VDC může používat až 512 znaků. Když je pro daný znak povolen alternativní znakový znak, bude se znakový vzor kreslit ze znaků 256-511. Pokud je tedy zobrazen znak 65, aktivací alternativního znakového znaku se místo toho zobrazí znak 321. Alternativní příznak znaků se obvykle používá, když je nastaven režim velkých / malých písmen - příznak je povolen pro všechny pozice obrazovky VDC, což způsobí, že se místo výchozí velké / grafické znakové sady zobrazí velká / malá znaková sada a její obrácené verze videa. .
VDC nepoužívá znakovou ROM, místo toho se vzory ROM ROM VIC-II jednoduše kopírují do VDC RAM jako součást síly C128 při inicializaci, včetně vzorů pro reverzní video znaky, přestože VDC je schopen invertovat znaky v hardwaru. Ukládání vzorů znaků trvá 16 bajtů místo 8, protože VDC má nastavitelnou výšku znaků. Vzhledem k tomu, že obrazovka má 25 řádků, je v praxi výška znaků omezena na 8 řádků, což znamená, že polovina prostoru pro data znaků zůstane nevyužita a zbytečná. Zapnutí výchozí konfigurace umístí data znaků do $ 2 000 - $ 3FFF. $ 2 000 - $ 23FF obsahuje vzory pro velká a malá písmena, $ 2C00 - $ 33FF pro velká / malá písmena, zatímco $ 2 400 - $ 2 BFF a $ 3 400 - 3FFF obsahují obrácené vzory videa pro každou sadu. Uživatel může libovolně definovat libovolné vlastní znaky a mapovat je do paměti VDC.
Registrovat výpis
Tyto informace byly převzaty z Commodore 128 Programmer's Reference Guide[2]
Registrovat | Hexadecimální | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 | Popis |
---|---|---|---|---|---|---|---|---|---|---|
Horizontální celkem | ||||||||||
Zobrazeno vodorovně | ||||||||||
Horizontální poloha synchronizace | ||||||||||
Šířka vertikální / horizontální synchronizace | ||||||||||
Vertikální celkem | ||||||||||
Vertikální nastavení | ||||||||||
Zobrazeno svisle | ||||||||||
Vertikální poloha synchronizace | ||||||||||
Režim prokládání | ||||||||||
Znak celkem svisle | ||||||||||
Režim kurzoru, spuštění skenování | ||||||||||
Řádek pro ukončení skenování | ||||||||||
Zobrazit počáteční adresu High Byte | ||||||||||
Zobrazit počáteční adresu, nízký bajt | ||||||||||
Pozice kurzoru, vysoký bajt | ||||||||||
Pozice kurzoru, nízký bajt | ||||||||||
Svislá poloha světelného pera | ||||||||||
Horizontální poloha světelného pera | ||||||||||
Aktualizujte adresu High Byte | ||||||||||
Aktualizovat nízkou adresu adresy | ||||||||||
Atribut Počáteční adresa Vysoký bajt | ||||||||||
Atribut Počáteční adresa Nízký bajt | ||||||||||
Celkem znaků vodorovně, zobrazení znaků vodorovně | ||||||||||
Zobrazení znaků svisle | ||||||||||
Vertikální plynulé posouvání | ||||||||||
Horizontální plynulé posouvání | ||||||||||
Barva popředí / pozadí | ||||||||||
Přírůstek adresy na řádek | ||||||||||
Adresa základny znaků | ||||||||||
Podtržení řádku skenování | ||||||||||
Počet slov | ||||||||||
Registr údajů | ||||||||||
Blokovat počáteční adresu High Byte | ||||||||||
Blokovat počáteční adresu, nízký bajt | ||||||||||
Zobrazit Povolit Začátek | ||||||||||
Zobrazit Povolit Konec | ||||||||||
Obnovovací frekvence DRAM |