Hlavní navigace

Projekt C64: čipová sada a první důkladné seznámení

8. 6. 2022
Doba čtení: 7 minut

Sdílet

 Autor: Michal Tauchman, podle licence: CC BY-SA 4.0
V této kapitole se podíváme ve větším detailu na použité čipy a jejich základní vlastnosti. V druhé části článku zmíním první dojmy z provedení počítače a podíváme se na jeho možnosti konektivity.

Čipová sada

Jako u osmibitových Atari jsou vlastnosti a schopnosti počítače tvořeny především podpůrnými čipy. Samotný CPU nemá dostatek výkonu, a tak grafické a zvukové schopnosti (tedy ty, které definují samotnou esenci počítače) přebírají ostatní čipy ze sady, specializované na konkrétní úlohy.

CPU: MOS 8500

Mikroprocesor 8500 je upravenou verzí slavné 6502. Ta vznikla v malém týmu pod vedením Chucka Peddleho v továrně MOS Technology. Na trh se dostala v roce 1975. Tým Chucka Peddleho předtím pracoval na návrhu procesoru Motorola 6800, takže nezačínali s celým návrhem na zelené louce, nýbrž vzali základy z již navrženého čipu a zjednodušili jej, čímž dosáhli velmi příznivé ceny a rychlejšího zpracování jednoduchých instrukcí. Jak se ale dalo očekávat, tento krok nezůstal ze strany Motoroly bez odezvy a došlo na žalobu, která skončila pokutou a finančně oslabila MOS Technology a oslabená společnost byla následně zakoupena firmou Commodore. Naštěstí poté došlo k vzájemnému smíru a po splnění daných podmínek si obě firmy vzájemně licencovaly patenty. Pro Motorolu znamenalo, že musela výrazně snížit cenu za svůj 6800 (během roku spadla cena z původních 175$ na 35$ za kus).

Pozn. tady je vidět drobná nesrovnalost s jednou poměrně používanou frází, že 6502 vznikla původně jako návrh mikroprocesoru pro kalkulačky. Nicméně jak je z tohoto vidět, 6502 již existoval dříve, než Commodore zakoupil MOS Technology za účelem nahrazení dodávek čipů firmy Texas Instruments. A právě jeho existence v kombinaci se soudní pří umožnila odkup MOSu Commodorem. Tedy jestli se nemýlím, měla by fráze spíše znít – „6502 byl původně zakoupen i s továrnou za účelem nasazení do kalkulátorů“. Nikoli cíleně navržen.

Nyní se ale vraťme k procesoru samotnému, 6502 je osmibitový CPU ve čtyřicetipinovém  pouzdře DIP. Umí pracovat na 1 až 3 MHz a zpracovává 56 instrukcí. Ve vlastněném počítači je CPU pod označením 8500, což je HMOS varianta čipu 6510, který oproti původní 6502 přidává osmibitový univerzální I/O port.

RAM: TMS4464–12NL

Paměťové čipy NMOS DRAM 2×32 KB s přístupovým časem 120 ns od firmy Texas Instruments.

ROM: CSG 251913–01 a CSG 901225–01

C64 obsahuje dva čipy ROM. CSG 251913–01 je 16 KB ROM čip obsahující BASIC 2.0 a Kernal (nízkoúrovňový OS). Druhý čip CSG 901225–01 je 4 KB ROM a obsahuje tabulku znaků.

VIDEO: VIC-II CSG 8565R2

Grafický čip počítače C64. Dokáže nabídnout maximální rozlišení 320×200 či 160×200 v barevném režimu. Barevná paleta obsahuje 16 barev. Umí obsluhovat až 8 spritů s detekcí kolize a podporuje plynulé rolování. Podporuje také textový mód 40×25 znaků.Více detailů v článku Osmibitové počítače Commodore a čip VIC-II .

Zvuk: SID CSG 8580R5

Zvukový čip SID je asi nejslavnější ze sady. Zvukové schopnosti počítače se v mnohém staly legendární a SID byl použit v nejednom samostatném syntezátoru. Nabízí tři tónové generátory (0–4 kHz), čtyři formy generovaného signálu (pila, trojúhelník, modulovaný obdélník a šum), tři generátory amplitudy, tři generátory obálek a programovatelné filtry. Oscilátory mohou být vzájemně synchronizované. Čip dále obsahuje dva A/D převodníky použité ne pro zvuk, ale pro analogové vstupní zařízení (paddles). Čip také nese generátor náhodných čísel a audio vstup (neumožňuje nahrávat, ale aplikovat na vstupní audio signál filtry).

Varianta 8580 je vyrobená technologií HMOS. Toto provedení je méně ceněné, neboť kvůli technologickým změnám (mezi nimiž byla i změna napájecího napětí na 9 V z původních 12 V) je omezena funkcionalita přehrávání digitálních samplů. Tato funkcionalita nebyla v původním návrhu, tedy ji výrobce MOS považoval za bug a v opraveném návrhu ji potlačil. A díky dalším úpravám (například ve filtrech) může znít nová varianta jinak než původní.

Pozn.: U některých případů může revidovaná varianta znít nejen jinak, ale zcela špatně, později na to ještě přijde řeč. 

Více v článku Počítače Commodore a legendární čip SID.

Další podpůrné čipy

CIA 6526A a 6526B – Complex Interface Adapter, obsahuje I/O porty (paralelní a sériové), intervalové časovače a podporu hodin reálného času. Hodiny reálného času používají frekvenci 50 Hz získanou z napájecí sítě (přes střídavou část napájecího adaptéru). Nejsou však nijak zálohované (C64 neobsahuje žádnou baterii), tedy bez napájení si počítač reálný čas neudrží.

PLA LH5062B – Programmable Logic Array, čip obsahující pouze logické obvody. Tento čip v C64 často podléhá závadě (obvykle způsobené vyhřátím čipu) a jelikož tvoří můstek mezi jednotlivými částmi čipové sady, je většina závad (grafické glitche atp.) řešitelných právě výměnou tohoto IO.

Sanyo LC3514A – CMOS statická RAM o obsahu 1024 slov ve 4 bitech.

MOS 8701 – generátor hodin.

Zde si můžeme prohlédnout umístění jednotlivých čipů na základní desce:

Autor: Michal Tauchman, podle licence: CC BY-SA 4.0

Seznámení s počítačem

Commodore 64 byl pro mě kompletně novým zážitkem. Nikdy se mi tento počítač do ruky dřív nedostal, takže na něj nebudu pohlížet s nostalgickým okem. Zároveň jsem se nedostal k originálnímu breadboxu, tedy nemohu srovnat fyzické provedení.

Mnou vlastněný model II je podobný případ jako řada XE u Atari. Stejný hardware posazený do modernějšího designu. Nicméně řada XE u Atari byla dosti okleštěná co do kvality elektroniky, kde se šetřilo naprosto na všem (nekvalitní desky plošných spojů, odpadní paměťové čipy), ale C64-II na mne tímto dojmem nepůsobí. Nemohu aktuálně srovnat provedení 1:1, nicméně deska plošných spojů na mě nedělá jakkoli odbytý dojem, že by se šetřil cent za každou cenu.

Design modernizované verze je celkem jednoduchý, nicméně elegantní. Působí znatelně moderněji než původní breadbox. Nicméně řada XE od Atari je designově mnohem povedenější, stále je považuji za nejhezčí design v oblasti osmibitů.

Plasty jsou lehké, takže celý počítač působí v ruce poněkud křehce a dutě, nicméně s celkovou pevností zařízení není problém. Klávesnice má sice plastovou základnu, ale působí pevným a dobrým dojmem, má vysoký zdvih a příjemně se na ní píše. Rozložení je značně nestandardní, ale to je u osmibitů běžný jev.

Konektorová výbava působí v ohledu zpracování poněkud levněji, neboť zatímco Atari má sloty s dvířky, krytkami a železným rámováním, u C64 je díra v zadním krytu, ze které kouká odhalený kus plošného spoje. Ostatní konektory jsou klasické tehdy běžně používané DIN, cinch pro televizní signál a DE-9 pro joysticky (stejné jako používá Atari, Amiga a mnoho dalších počítačů a herních konzolí). Navíc jsou joysticky pinově kompatibilní, takže opět mohu použít to, co mám již doma. Kromě poněkud levněji působících slotů bych měl ještě jednu výtku, a to, že zcela nejpoužívanější konektor (a poměrně masivní), tedy napájecí, je vyveden z boku počítače. Musí být při provozu vždy připojený a nevzhledně kouká z boku počítače.

Boční panel počítače s konektory pro pákové ovladače, vypínačem a napájecím DIN konektorem.

Boční panel počítače s konektory pro pákové ovladače, vypínačem a napájecím DIN konektorem.

Autor: Michal Tauchman, podle licence: CC BY-SA 4.0

Boční panel počítače obsahuje napájecí konektor a joystickové porty (+ hlavní vypínač napájení). Zbytek I/O portů počítače se nachází na zadní stěně a při pohledu zezadu to jsou (zleva):

  • Expanzní port – typicky používaný pro připojení cartridge a pamětí
  • Anténní výstup – analogový televizní signál
  • A/V výstup – obsahuje kompozitní video signál (+ další obrazové signály) a audio výstup
  • Sériový port – typicky používaný pro připojení disketových mechanik a tiskáren
  • Port pro dataset – určený pro připojení firemního magnetofonu
  • Uživatelský port (userport) – volně programovatelný port užitečný pro připojení různých rozhraní či cartridgí
Zadní panel se zbývajícími konektory.

Zadní panel se zbývajícími konektory.

Autor: Michal Tauchman, podle licence: CC BY-SA 4.0

Zprovoznění počítače je velmi jednoduchou záležitostí, pro základní funkci stačí pouze připojit napájení a obrazový výstup. C64-II používá osmipinový DIN pro připojení obrazového výstupu, původní breadbox má pětipinový DIN, stejně jako Atari 800. Výhoda je, že všechny tyto počítače jsou pinově kompatibilní, tedy dříve zakoupený videokabel od Lotharka funguje s Atari 800, C64 i C64-II, které má sice vícepinový konektor, ale stále je možné do něj zasunout původní pětikolík a funkce zůstává zachována.

Při zprovozňování jsem narazil na drobný problém: když jsem chtěl použít svůj levný převodník z AV na HDMI (zmíněný již u předchozích projektů), u C64 končím s hláškou No signal. U ostatních počítačů (Atari 800 XL, ST, všechny mé Amigy) funguje zcela bez obtíží. Při připojení C64 bez převodníku přímo na kompozitní vstup u TV obraz nabíhá bez vad.

V takto základním zapojení počítač naběhne do BASICu, kde můžeme z klávesnice ihned začít psát program. Nemůžeme jej poté samozřejmě uložit, neboť jak bylo obvyklé, počítač nemá žádné uživatelské interní úložiště, vše je pouze v RAM, která vše zapomíná okamžitě po odpojení napájení.

Pro nějaké zajímavější zkoušení je třeba připojit nějakou formu externího úložiště, v mém případě již zmíněné SD2ieC. To obsahuje dva přívodní kabely, jeden komunikační sériový port pro data, a druhý je napájecí. Napájecí kabel nabízí několik variant, odkud brát napájení, v mém případě obsahuje koncovku pro dataset (zapojené je pouze napájení, tam žádná data nejdou). SD kartu jsem vytáhl starší 2GB ze zásob, pro velikost aplikací pro Commodore 64 je taková kapacita královská. Nenašel jsem maximální podporovanou kapacitu karty, SD2ieC podporuje SD i SDHC, nicméně jsem narazil po internetu na zmínky, že s většími kartami mají uživatelé občas problémy, tedy nějaká starší s maximálně pár GB ze zásob je ideální.

Linux tip

Vzhledem k tomu, že zařízení nemá žádný displej, je třeba přemýšlet o nějaké aplikaci pro správu obrazů přímo na obrazovce počítače. Procházet mezi obrazy jednoduše pomocí tlačítek není možné a bez jakékoliv formy displeje by to i tak bylo velmi nekomfortní. SD karta by měla být ideálně naformátovaná na FAT32, zařízení však přečte i základní formát FAT.

Poté již stačí k počítači připojit joystick a možnosti zkoušení se najednou exponenciálně rozrostou.