Amstrad CPC (Color Personal Computer - barevný osobní počítač) je řada osmibitových domácích počítačů vyráběných v letech 1984 až 1990 britskou firmou Amstrad. Byl navržen jako přímý konkurent modelů Commodore 64 a Sinclair ZX Spectrum, které v té době ovládaly trh s domácími počítači. Největšího tržního úspěchu dosáhl ve Velké Británii, Francii a Německu (pod značkou Schneider).
V této řadě bylo postupně na trh uvedeno šest modelů: CPC 464, CPC 664 a CPC 6128 byly komerčně velmi úspěšné modely, na rozdíl od pozdějších pokusů prodloužit životnost této řady pomocí drobnější hardwarových vylepšení (modely 464plus, 6128plus a GX4000). Všechny modely byly založeny na CPU Zilog Z80A, doplněném o 64 kilobytů (CPC 464 a CPC 664) nebo 128 kilobytů (CPC 6128) operační paměti. Podobně jako ostatní domácí počítače tehdejší doby byly založeny na konceptu "počítač v klávesnici", zvláštností bylo zabudování záznamové jednotky (kazetová jednotka u CPC 464, 3" disketová jednotka u pozdějších modelů) do hlavní jednotky. Počítače byly prodávány dohromady s monitorem (zeleným monochromatickým GT65 nebo barevným CTM644) který zároveň sloužil jako napájecí zdroj.
Celkově byly vyprodukovány přibližně 3 milióny počítačů této řady. Na hry pro počítače řady Amstrad CPC byl zaměřen časopis Amstrad Action, první časopis vydavatelství Future Publishing.[1]
První model CPC 464, uvedený na trh v roce 1984 byl navržen jako přímý konkurent Commodore 64. Byl prodáván jako "kompletní systém" - měl kazetopáskovou jednotku a dodáván byl spolu s monitorem. To ho výrazně odlišovalo od ostatních domácích počítačů tehdejší doby, které jako zobrazovací jednotku většinou používaly běžný televizor a kazetová jednotka byla samostatným zařízením (např. Commodore 1531).
Na začátku roku 1985 byl na trh uveden první nástupce pod označením CPC 664, jehož hlavní odlišností bylo nahrazení kazetopáskové mechaniky disketovou jednotkou pro diskety s rozměrem 3 palce a s tím související úpravy ROM (přidání rutin pro operace s disketami). Tento model byl ještě v témže roce nahrazen model CPC 6128. Nejvýznamnější novinkou tohoto modelu bylo rozšíření operační paměti na 128 kilobytů.
V roce 1990 byly na trh uvedeny vylepšené modely 464plus a 6128plus. Nejvýznamnější změnou bylo přidání cartridge slotu, vylepšení grafického subsystému. Paleta byla rozšířena na 4096 barev, přibyla hardwarová podpora spritů a možnost rozdělit obrazovku na několik oblastí s různými grafickými módy. Práce se sprity však nebyla na starších modelech příliš složitá a možnost rozdělit obrazovku též do určité míry existovala již u starších modelů. Nové modely tedy nenabídly oproti starším mnoho navíc a nebyly komerčně příliš úspěšné.
Poněkud stranou stojí model GX4000. Jednalo se o herní konzoli odvozenou od modelu 464plus odstraněním klávesnice a kazetové jednotky. Jeho osmibitový hardware byl však na tehdejší dobu (1990) již zastaralý a neobstál oproti výkonnější konkurenci (především Commodore Amiga a Atari ST).
Všechny modely řady CPC byly založeny na CPU Zilog Z80A pracujícím s taktem 4 MHz. Protože paměť RAM je sdílená s videoobvodem, Z80 může přistupovat k paměti pouze v každém čtvrtém cyklu, délky instrukčních cyklů jsou proto zarovnány k nejbližšímu vyššímu násobku čtyř. Výsledkem je, že rychlost počítače zhruba odpovídá stroji se CPU taktovaným na 3,3 MHz.
Základní modely byly vybaveny buďto 64 KB (CPC 464, CPC 664, 464plus, GX4000) nebo 128 KB (CPC 6128, 6128plus) operační paměti. Toto množství bylo možné rozšířit pomocí přídavných desek (např. Vortex SP512). Protože Z80 je osmibitový procesor (a má šířku adresy 16 bitů), může přímo adresovat pouze 64 KB paměti. Pro přístup k paměťovému prostoru nad 64KB se používá stránkování paměti.
Základem obrazového subsystému je obvod Motorola 6845, který slouží jako adresový generátor. Tento je napojen na pixelový generátor schopný pracovat v režimu 1, 2 nebo 4 bpp (bits per pixel - bitů na pixel). Adresový generátor pracuje s konstantní frekvencí, proto 4bpp režim generuje poloviční množství bodů oproti 2bpp a čtvrtinové oproti 1bpp režimu. Dostupné jsou 3 základní režimy, pomocí přeprogramování adresového generátoru 6845 je však možné vytvořit i další.
Standardní módy:
Barvy lze vybírat z palety 27 barev odvozené z RGB prostoru kde je každá složka buďto vypnutá, zpola zapnutá nebo plně zapnutá. Pozdější "plusové" modely tuto paletu rozšířily na 4096 barev a přidaly hardwarovou podporu spritů.
Vysokofrekvenční televizní ani kompozitní video výstup není dostupný, místo toho mají počítače proprietární šestipólový konektor DIN pro připojení Amstrad monitoru. Jako volitelné příslušenství bylo možné samostatně zakoupit externí TV modulátor. Pomocí patřičně zapojené redukce je možné na šestipólový DIN konektor napojit televizor pomocí SCART vstupu, protože je zde vyveden signál v analogové normě PAL s kompozitní synchronizací.
Pro generování zvuku je použit obvod AY-3-8912, který poskytuje tři kanály, z nichž každý lze nastavit tak, aby generoval obdélníkový signál, bílý šum nebo obojí. Mono výstup poskytoval malý (4 centimetry) interní reproduktor s hardwarovou regulací hlasitosti a interním zesilovačem. Pro výstup stereo zvuku je použit 3,5 mm jack.
Přehrávání digitálních samplů v přibližně pětibitovém rozlišení je možné posíláním proudu hodnot zvukovému obvodu, což je ovšem velmi náročné na CPU a je tedy velmi obtížné zkombinovat přehrávání v této kvalitě s jakoukoliv jinou akcí která vyžaduje práci CPU.
Pro disketový subsystém zvolila firma Amstrad třípalcové diskety od firmy Hitachi, zatímco naprostá většina výrobců přijala 3,5-palcový standard firmy Sony. Zvolený model je jednostranná jednotka s hustotou zápisu 40 stop. Pro přístup ke druhé straně diskety je nutné ji fyzicky vyjmout z mechaniky, otočit a znovu vložit. Jednotlivé strany jsou označeny "A" a "B" a každá má vlastní přepínač ochrany proti zápisu. Kapacita každé strany je 180 KB (ve formátu AMSDOSu, 2 KB pro adresář a 178 KB pro data), celkem tedy 360 KB na disketu.
Jako řadič byl použit obvod NEC 765, ovšem nejsou využity všechny jeho možnosti (např. možnost používat jednoduchou hustotu zápisu a DMA přenosy) z důvodu úspory nákladů. Diskety jsou formátovány s dvojitou hustotou v MFM (modifikovaná frekvenční modulace) formátu.
Diskety byly dodávány v papírovém pouzdře případně v plastové krabičce (podobná jako u kompaktních disků). Jejich vnější obal je tlustší a pevnější než u běžných disket rozměru 3,5 palce. Posuvný kovový kryt čtecího otvoru je umístěn uvnitř pouzdra a je aretován, na rozdíl od jednoduchého vnějšího posuvného krytu u disket Sony 3,5 palce. To přispělo k tomu, že byly tyto diskety výrazně dražší než běžnější alternativy formátu 3,5 a 5,25 palce. Spolu s jejich poměrně malou kapacitou se stala vyšší cena rozhodujícím faktorem, proč opustily trh krátce poté, co z něj odešla řada Amstrad CPC.
Mimo řadu CPC a některé další počítače společnosti Amstrad (řada PCW a ZX Spectrum +3) byl tento formát disket používán velmi zřídka.
Jelikož rozhraní pro připojení disketových jednotek bylo kompatibilní se standardem Shugart, mohly počítače Amstrad CPC využívat i běžné jednotky pro diskety formátu 3,5 a 5,25 palce. I na těchto disketových jednotkách je ale možné s AMSDOSem využívat pouze jednu stranu diskety v maximální kapacitě 180 KiB, pro využití obou stran je nutné buď připojit přepínač nebo využít jiný DOS.[2] Programy jako ROMDOS a ParaDOS rozšiřovaly standardní AMSDOS o podporu oboustranných osmdesátistopých formátů a umožňovaly tak ukládat až 800 KB na jednu disketu.
Podobně jako většina ostatních domácích počítačů tehdejší doby jsou i počítače CPC vybaveny interpretem jazyka BASIC který je uložen v ROM počítače. Použitá varianta je Locomotive BASIC, zajímavý především tím, že umožňoval poměrně snadný přístup ke všem hardwarovým možnostem počítače (především grafickému a zvukovému subsystému), což především u počítačů používajících některou z variant Microsoft BASICu nebylo běžné a používaly se komplikované konstrukce pomocí příkazů PEEK a POKE. Mezi další zajímavé vlastnosti patřila možnost používat časovače (příkazy AFTER a EVERY).
BASIC počítačů Amstrad CPC možné rozšířit o další příkazy pomocí RSX (Resident System eXtensions). Přidané příkazy začínají znakem |. Rozšíření Graphics Extensions přidává RSX příkazy usnadňující práci s textem, grafikou a barvami, např. příkazy |STIPPLE, |COPYCHAR, |FILL, |CIRCLE a |ELLIPSE.[3]
Počítače CPC 464 obsahují Locomotive Basic ve verzi 1.0, CPC 664 ve verzi 1.1, v CPC 6128 se může nacházet verze 1.20, 1.21 nebo 1.23 a počítače řady Plus obsahují verzi 1.4.[4]
Firmware počítačů obsahuje mnoho rutin, které jsou k dispozici programátorům, ať se jedná o rutiny pro nastavení chování systému počítače, čtení klávesnice, práci s textem a grafikou či přímo s obrazovou pamětí, práci se zvukem, pro vstup a výstup dat na/z magnetofonu a disketové jednotky a rutiny pro matematické výpočty.[5] Na tyto rutiny je v ROM blok rozeskoků, takže i když je umístění vlastních rutin v ROM u jednotlivých verzí počítače různé, blok rozeskoků se nachází stále na stejném místě, takže rutiny se volají u všech verzí počítače vždy skokem na stejnou adresu.
U modelů které byly vybaveny disketovou jednotkou (případně u CPC464 s externí disketovou jednotkou) byl v ROM obsažen i diskový systém AMSDOS, který byl programátorovi dostupný buďto přímo pomocí volání rutin v ROM, nebo v prostředí BASICu. Obsahoval mimo jiné kód který mapoval původní kazetové rutiny na volaní rutin pro obsluhu disketové jednotky a umožňoval tak bez úprav provozovat software napsaný pro kazety i na disketách. Řada CPC obsahuje AMSDOS v0.5, s řadou Plus byl dodáván AMSDOS v0.7 na kártridžích.[4]
AMSDOS přidává své vlastní RSX příkazy pro práci s diskem, např. příkazy |A a |B pro nastavení aktuální disketové mechaniky, |TAPE pro přepnutí příkazů pro ukládání a nahrávání dat na práci s magnetofonem, |CPM pro nahrání operačního systému CP/M z boot sektoru diskety a jeho spuštění.[6]
Operační systém CP/M od firmy Digital Research byl distribuován společně s "disketovými" modely (CPC664, CPC6128) a s jednotkou DD-1 (externí řadič a disketová jednotka pro CPC464). Modely s pouze 64 KB RAM byly dodávány pouze s verzí CP/M 2.2, modely se 128KB RAM také s verzí CP/M 3.1.
Verze CP/M 2.2 byla poměrně malá a z většiny byla uložena v boot sektoru diskety, oblasti označované jako "System format". Tuto oblast bylo možné načíst do paměti (a předat do ní řízení) pomocí příkazu |CPM v Locomotive BASICu, čehož využívala řada herních zavaděčů. Verze CP/M 3.1 byla výrazně větší a v boot sektoru byl tedy uložen zavaděč který ji načetl ze souboru. Mnoho public domain software pro CP/M bylo uvolněno pro CPC.
Přestože kompilátory pro Locomotive BASIC, Pascal a C byly dostupné, naprostá většina software pro CPC byla psána v assembleru Z80. Mezi populární asemblery patřil Hisoft Devpac, Arnor Maxam a francouzský DAMS. CPC664 a CPC6128 byly dodávány s disketovou verzí interpretu jazyka Logo, spouštěného z CP/M 2.2, která ovšem byla značně spjatá s hardwarem CPC a mnoho rutin měla uloženo v systémové AMSDOS ROM.
Kvůli expanzi na německy mluvící trhy (Německo, Rakousko a Švýcarsko) uzavřel Amstrad partnerství s německou společností Schneider, která podobně jako Amstrad byla až do té doby známá pouze díky svým audio zařízením. Za účelem prodeje počítačů byla v roce 1984 vytvořena dceřiná společnost Schneider Computer Division, která prodávála kompletní řadu Amstrad CPC pod svojí značkou, pouze s minimálními vnějšími změnami (například barevné klávesy britské verze byly nahrazeny šedivými).
V roce 1988 odmítla firma Schneider prodávat PC klony z produkce Amstradu a partnerství bylo ukončeno. Schneider následně vyprodal své zbývající zásoby řady CPC po celé Evropě a již vybudovaná tržní pozice mu umožnila uvést na trh vlastní řadu PC klonů. Amstrad se později neúspěšně pokusil se svojí vlastní značkou vstoupit na německy mluvící evropské trhy.
Řada CPC se těšila solidní oblibě poměrně dlouho dobu, i po ukončení výroby. Jedním z důvodů bylo i to, že se počítače dokázaly prosadit nejen v domácnostech, ale i v komerční sféře, kde pro některé úlohy dostačovaly i v době, kdy byly na trhu dostupné výrazně výkonnější počítače. Nadšení programátoři dodnes tvoří nový software, včetně grafických operačních systémů jako jsou FutureOS nebo SymbOS. Po ukončení produkce byly firmou Amstrad uvolněny obsahy ROM počítačů CPC (a také Sinclair ZX Spectrum) k volnému šíření (za předpokladu dodržení copyrightu). To umožňuje vývojářům emulátorů distribuovat firmware společně s jejich softwarem, na rozdíl od některých jiných platforem (Atari ST, Commodore Amiga).
V tomto článku byl použit překlad textu z článku Amstrad CPC na anglické Wikipedii.