Obsah
1. Grafický subsystém počítačů Amiga
2. Čipové sady v počítačích Amiga
7. Konfigurace bitových rovin u grafických režimů čipu Denise
9. Obsah následující části seriálu
1. Grafický subsystém počítačů Amiga
Osobní počítače Commodore Amiga, jejichž zvukové schopnosti jsme si popsali již v 59. části tohoto seriálu, byly – především díky promyšlenému návrhu jejich architektury – mezi uživateli velmi oblíbené a s trochou nadsázky je možné říci, že se již v době své největší slávy staly legendami, podobně jako jejich největší rival – počítače řady Atari ST. Obliba těchto počítačů pramenila mj. i z toho, že jejich grafický subsystém byl založen na několika vzájemně spolupracujících čipech o vysoké integraci (VLSI), které mohly některé činnosti vykonávat souběžně s mikroprocesorem (řady Motorola 680×0). Tím bylo mj. umožněno, aby i na počítačích vybavených relativně pomalým mikroprocesorem mohly být provozovány graficky poměrně náročné aplikace, například hry, dema či programy pro editaci videa. Jeden z těchto čipů jsme si již popsali – jednalo se o zvukový čip Paula, který podporoval přenos zvukových vzorků (samplů) z operační paměti pomocí přímého přístupu do paměti (DMA – Direct Memory Access), tj. bez nutnosti spolupráce s mikroprocesorem.
Obrázek 1: Legendární počítač Amiga 500 obsahující čipset OCS a oblíbený mikroprocesor Motorola 68000, taktovaný na 7,14 MHz. V základní konfiguraci byl tento počítač osazen již 512 KB paměti, jež byla rozšiřitelná na 32 MB (Fast RAM). Naproti tomu byl model Amiga 500 Plus osazen 1 MB s možností rozšíření Chip RAM na 2 MB a Fast RAM až na 32 MB.
2. Čipové sady v počítačích Amiga
Firma Commodore vytvořila poměrně velké množství modelů počítačů nesoucích jméno Amiga. Tyto modely je mj. možné rozlišit i podle toho, jakou sadu čipů (čipset) tvůrci pro sestavení daného modelu použili. První modely nabízené po roce 1985, především Amiga 1000 a Amiga 500, byly vybaveny sadou čipů pojmenovanou OCS – Original Amiga Chipset, v roce 1990 se začaly prodávat modely vybavené novým čipsetem ECS – Enhanced Chip Set a modely prodávané po roce 1992 (například Amiga 1200) obsahovaly čipset nazvaný AGA – Advanced Graphics Architecture. Zajímavé je, že všechny tři zmíněné čipsety podporovaly téměř výhradně grafické režimy založené na takzvaných bitových rovinách (bitplane), což na jednu stranu umožnilo snadnou tvorbu určitých efektů, například paralelně se pohybující pozadí v některých hrách (Shadow of the Beast), ovšem hry vyžadující přímou manipulaci s jednotlivými pixely („doomovky“) se v těchto režimech implementovaly složitěji. I to je jeden z pravděpodobných důvodů, proč byly i tyto počítače nakonec překonány architektonicky mnohem jednoduššími PCčky (ve skutečnosti byly i pro Amigy později nabízeny vylepšené grafické karty, to je však již téma, kterým se budeme zabývat příště).
Obrázek 2: Plošný spoj počítače Amiga 500 (viz první obrázek), na kterém můžeme vidět některé čipy náležící do Original Amiga Chipsetu.
3. Original Amiga Chipset
Original Amiga Chipset, zkráceně též OCS, byl použit především v osobních počítačích Amiga 1000 (základní model), Amiga 500 (ekonomická varianta, velmi oblíbená, například i v našich zemích), Amiga 2000 („hi-end“ model), Amiga 2500 a Amiga 1500. Z technologického hlediska se jedná o velmi zajímavý čipset, při jehož návrhu bylo prvotním cílem co největší odlehčení práce centrální procesorové jednotky – CPU. Tuto snahu lze snadno pochopit, protože použité procesory Motorola 68000 s taktovací frekvencí 7,14 MHz i přes velmi dobře navrženou instrukční sadu a třicetidvoubitovou bitovou architekturu zpočátku velkou rychlostí neoplývaly, což by se negativně projevilo například při nutnosti provádění všech grafických operací přímo mikroprocesorem. Neexistence podpůrných čipů byl mj. i jeden z nedostatků prvních verzí počítačů Apple Macintosh. Z tohoto důvodu pracují čipy použité v OCS do značné míry nezávisle na mikroprocesoru, který pouze provádí inicializaci všech operací a tyto operace následně probíhají samostatně, popřípadě s řízením přes přerušení. Original Amiga Chipset se skládal z více částí (čipů), které budou popsány v následujících kapitolách.
Obrázek 3: Prvním komerčně dostupným počítačem z řady Amiga byla Amiga 1000, která začala být firmou Commodore prodávána v roce 1985. V té době byl největším konkurentem Amig počítač Atari ST (zejména 520ST, později také 1040ST, viz dva předchozí díly tohoto seriálu), částečně také Apple. Prodávané modely tohoto počítače byly osazeny 256 kB nebo 512 kB paměti Chip RAM, která byla teoreticky (omezení OCS) rozšiřitelná až na 32MB (Fast RAM).
4. Čip Agnus
Čip Agnus (zde můžeme poprvé vidět, že se v počítačích Amiga používala především ženská jména) je určen především pro řízení přístupu do operační paměti (RAM), nazývané také Chip RAM. Při řízení přístupu jsou použity priority, takže Agnus zde působí podobně, jako arbitr u sběrnic. V tomto čipu jsou přítomny i dva funkční bloky nazvané Blitter a Copper, jejichž popis je uveden v navazující části tohoto seriálu. Původní verze čipu Agnus dovedla adresovat maximálně 512KB paměti, později se začala používat Fat Agnus (gentlemansky řekněme „plnoštíhlá Agnus“ :-), u níž byl umožněn přístup až k 1MB RAM. Další rozšíření adresovatelné paměti zvládaly až modernější čipy obsažené v později zavedených čipsetech ECS a AGA. Při přístupu do operační paměti se čipy a mikroprocesor střídaly podle jednotlivých cyklů. Základním rozlišením, na kterém se přístup či Chip RAM prováděl, byl sudý a lichý cyklus – odd/even cycle, další typy přístupů si popíšeme v následující části tohoto seriálu, ve kterém si mj. ukážeme i některé typické grafické režimy nabízené jednotlivými čipsety.
Obrázek 4: Osobní počítač Amiga 2000, který byl nabízen jako hi-end model společně s low-endovou řadou počítačů Amiga 500 (podobné dělení jsme ostatně viděli i u počítačů řady Atari ST a Atari TT). Tomu odpovídá i vybavení Amiga 2000, zejména použití šestnáctibitové i osmibitové sběrnice ISA, na kterou bylo možné připojit přes přídavné karty například pevné disky, jednotky CD-ROM i další rozličná zařízení používaná například i u počítačů PC. Také se zde objevuje proprietární Zorro slot určený pro rozšiřující moduly.
5. Čip Paula
Zvukový čip Paula (opět ženské jméno!) podporuje ve standardním režimu čtyři zvukové kanály se stereo výstupem, přičemž první dva kanály jsou přiváděny do levého reproduktoru a další dva kanály do reproduktoru pravého. Toto striktní oddělení kanálů je sice akceptovatelné pro výstup na reprobedny, ale při poslechu ve sluchátkách (kde nedochází k téměř žádným interferencím) je vhodnější provést externí „promíchání“ všech kanálů s poměrem od 30% do 65%. Toto míchání lze například navolit i v emulátorech počítačů Amiga, provádí ho i mnohé přehrávače hudebních modulů (viz další kapitoly).
Vzorkovací frekvence každého zvukového kanálu může dosahovat až 28867 Hz, což je omezení dané originálním čipsetem (OCS) a způsobem práce s pamětí při generování obrazu (pro každý kanál lze zvolit odlišnou frekvenci). Rozlišení vzorků je rovno osmi bitů, přičemž pro jejich uložení je použit dvojkový doplněk (střední hodnota je rovna nule, nikoli 127). Navíc je možné pro každý kanál nastavit hlasitost pomocí šestice bitů, čehož může být využito pro zvýšení počtu bitů ve vzorcích/samplech z původních osmi na čtrnáct. Důležité je, že jak o načítání jednotlivých vzorků z operační paměti, tak i o jejich mixování, se z velké míry stará přímo čip Paula a Agnus, tj. pro tuto činnost není zapotřebí používat mikroprocesor.
Obrázek 5: Amiga 3000 byla uvedena na trh v roce 1990 jako náhrada za stávající modely vyšší řady Amiga 1000 a Amiga 2000. Namísto čipsetu OCS se v tomto počítači objevuje nový čipset nazvaný ECS – Enhanced Chip Set. Také původní procesor Motorola 68000 byl nahrazen novějším modelem 68030, který se (kromě dalších vylepšení) navenek jevil jako plně třicetidvoubitový procesor, což se samozřejmě pozitivně projevilo na celkové rychlosti počítače.
6. Čip Denise
Dalším čipem obsaženým v OCS je čip nazvaný Denise, jenž byl určen především pro práci s grafickými režimy. Z technologického hlediska se jedná o velmi dobře navržený čip, jehož schopnosti byly dále rozvíjeny i v modernějších čipsetech (ECS a AGA) a některé jeho vlastnosti nejsou dodnes překonány – například se jedná o nezávislý scrolling (posuv) jednotlivých bitových rovin (bitplanů), čehož bylo možné využít například v některých typech her. Základní vlastností každého grafického čipu jsou podporovaná rozlišení a počet současně zobrazitelných barev. Denisa se může nacházet ve dvou základních režimech. Prvním je takzvaný režim lowres, jehož horizontální rozlišení je 320 pixelů, druhým je režim hires s horizontálním rozlišením 640 pixelů. Vertikální rozlišení bylo buď 200 řádků při použití televizní normy NTSC nebo 256 řádků v normě PAL. Pomocí prokládaného (interlaced) režimu se však toto rozlišení dalo zdvojnásobit, takže se používalo i 400 resp. 512 řádků se všemi přednostmi i zápory prokládaných režimů.
Základní grafické režimy počítačů Amiga s čipsetem OCS:
Režim | lowres | hires |
---|---|---|
PAL, non-interlaced | 320×256 | 640×256 |
PAL, interlaced | 320×512 | 640×512 |
NTSC, non-interlaced | 320×200 | 640×200 |
NTSC, interlaced | 320×400 | 640×400 |
Obrázek 6: Další pohled na velmi oblíbený osobní počítač Amiga 500.
7. Konfigurace bitových rovin u grafických režimů čipu Denise
Velmi zajímavé a pro počítače Amiga ve své podstatě i typické bylo rozdělení obrazové paměti. Denisa totiž pracuje striktně v módu planární bitmapové grafiky, což znamená, že barva jednoho pixelu je získána z obsahu přes sebe ležících bitových rovin (bitplanů), podobně jako je tomu například v šestnáctibarevných grafických režimech karet EGA a VGA. Počet barvových bitových rovin je měnitelný a pohybuje se od jedné do pěti, k dispozici je i šestá bitová rovina určená pro speciální účely. Konfigurace bitových rovin mohla být následující (podrobnosti si uvedeme příště):
- EHB – extra half-brite: pět bitových rovin je určeno pro specifikaci barvy pixelu (výběr z barvové palety), šestá bitová rovina modifikuje jeho světlost. Počet současně zobrazitelných barev je tedy (bez vlivu Copperu) roven 32/64 (podle chápání barvové palety). Tento grafický režim byl použit například i ve hře Black Crypt.
- HAM – hold and modify: každý šestibitový pixel je rozdělen na dva řídicí bity a čtyři datové bity. Řídicími bity je určeno, zda se datovými bity přímo nastaví barva, nebo se modifikuje jedna ze tří barvových složek RGB. V tomto režimu je tak možné zobrazit až 4096 barev, což bylo neporovnatelné s počítači PC té doby (resp. s jejich grafickými kartami). Zvýšený počet barev se však negativně projevuje na rychlosti práce s bitmapami.
- Dual playfield: jsou použity dvě relativně nezávislé pixmapy, přičemž každá se skládá ze tří bitových rovin. V každé pixmapě je možné zobrazit až osm barev.
Kromě třech výše uvedených grafických režimů tvořících vlastně „podklad“ pro vytváření obrazu na monitoru či televizi, bylo možné pracovat až s osmi nezávisle vykreslovanými sprity, jejichž horizontální velikost byla rovna šestnácti pixelům a vertikální velikost byla ve své podstatě libovolná (vzdáleně je tento systém podobný spritům generovaným čipem GTIA na osmibitových počítačích Atari). Pixely ve spritech mohly nabývat jedné ze tří barev, „čtvrtou“ barvou byla průhlednost. Spojením dvojice spritů se dosáhlo zvýšení počtu barev na patnáct, šestnáctá hodnota byla opět rezervována pro průhlednost, tj. pro část spritu, přes který mohly prosvítat barvy pozadí. Spritů bylo možné zobrazit i více, pokud se použil režim podobný režimu u osmibitových Commodorů či Atari, tj. změna horizontální pozice spritů během přerušení při zpětném běhu elektronového paprsku. Se sprity bylo možné provádět poměrně značné množství grafických efektů (především při znalosti interní funkce čipsetu), z nichž některé si popíšeme v navazující části tohoto seriálu.
Obrázek 7: Hra Black Crypt využívající grafický režim EHB (Extra Half-Brite).
8. Odkazy na Internetu
- Amiga
http://en.wikipedia.org/wiki/Amiga - GalaxSIM: Solutions for Digital Living
http://www.amiga.com/ - Denise Pin Assignment
http://www.ntrautanen.fi/…c/denise.htm - Motorola 68000
http://en.wikipedia.org/wiki/68000 - Motorola 68008
http://en.wikipedia.org/…torola_68008 - Motorola 68020
http://en.wikipedia.org/…torola_68020 - Motorola 68030
http://en.wikipedia.org/…torola_68030 - Great Microprocessors Past and Present
http://www.microprocessor.sscc.ru/great - Custom Chips: Paula
http://www.amiga-hardware.com/…hardware.cgi?… - Big Book of Amiga Hardware
http://www.amiga-resistance.info/bboahfaq/ - Amiga Hardware Database
http://amiga.resource.cx/ - ExoticA
http://www.exotica.org.uk/wiki/Main_Page - The absolute basics of Amiga audio
http://www.sufo.estates.co.uk/…/amimus.html
Obrázek 8: Amiga CDTV byla, podobně jako Amiga 3000, uvedena na trh v roce 1990. Mělo se jednat především o herní systém, čemuž odpovídá jak název výrobku, tak i jeho design v černém provedení. Původně byl tento počítač dokonce dodáván bez klávesnice, myši a disketové jednotky. I zde byl, stejně jako u předchozího modelu, použit čipset ECS. Tento počítač byl osazen procesorem Motorola 68000 taktovaným na obligátních 7,14MHz, základní kapacita paměti RAM byla rovna jednomu megabajtu.
9. Obsah následující části seriálu
V následující části seriálu o architekturách počítačů se budeme zabývat především popisem podporovaných grafických režimů a grafických efektů, které je možné na Amigách provádět. Popíšeme si například možnosti spritové grafiky, použití grafických režimů HAM (Hold and Modify), souběžného zobrazení více aplikací, z nichž každá využívá jiný grafický režim i další možnosti, které přispěly k velké oblíbenosti těchto počítačů, jak mezi programátory her či dem, tak i mezi běžnými uživateli.