Karácsonyi turbó

 2013.12.12. 12:12

A Commodore 64-et tizenkét évig gyártották, és lényegileg ugyanolyan konfigurációban mindvégig. Valójában persze rengeteget változott a belső felépítése ez idő alatt (egy keveset a külseje is), de a rajta futó program szempontjából mindig azonosnak tűnt. Kezdetben még csodás képességei relatíve egyre szűkebbé és korlátozottabbá kezdtek válni, ahogyan a körülötte lévő világ fejlődött. Számos különféle extra kiegészítővel (mint például memóriabővítésekkel és újabb perifériákkal) igyekeztek segíteni rajta, mégis maradt benne örökké egy fix pont – ez a processzor. Utóbb aztán lettek „turbósított” megfejtések erre is, sőt, manapság a legszebb reneszánszát éli ez a téma… Ezért talán aktuális lehet kissé áttekinteni a néhány legfontosabbat és a legérdekesebbet közülük.

kt1_c128.jpg

C128. Ez a legmezeibb és a legkézenfekvőbb, amennyiben kábé ugyanazt a vasat ütnénk, csak egy kicsit gyorsabban – hiszen maga a Commodore cég gyártotta a C64 utódaként alig három évvel később. A benne lévő 8502-es CPU (a 64-ben található 6510 utóda) átbillenthető egy közel 2 MHz-es (azaz dupla sebességű), ún. fast (gyors) üzemmódba. Sajnos ennek kellemetlen velejárója, hogy a VIC-IIe videochip nem bírja a gyötrést, és ilyenkor a képe elromlik, így ki kell iktatni. (A C128 BASIC-ben a FAST és SLOW utasításokkal lehet váltani a kétféle sebesség közt, s az előbbi idejére a képernyőt a Kernal ki is kapcsolja.) Ami viszont örvendetes, hogy a számítógép 64-es üzemmódjában is elérhető marad ez a rejtett funkció, egy trükkel. Ha nem akarjuk kikapcsolni a képet, arra kell csak ügyelni egy gépi kódú megszakításprogram révén, hogy mindig amikor az elektronsugár a látható képterületre lép (a felső keret szélénél), akkor váltsunk vissza 1 MHz-re, majd amikor a képet újra elhagyja (alsó keret), akkor lehet újra aktiválni a 2 MHz-et. Egészében ezzel mintegy 30-40 %-ot lehet nyerni nagyjából a C64 alapfutamához képest, mivel ennyit tölt a látható területen kívül. Vagyis kvázi olyan, mintha kb. 1.3 MHz-es processzorunk lenne.

TDC (aka Turbo Demo Card). Az overclocking és a tuning már a nyolcbites mikroszámítógépeknél sem volt ismeretlen fogalom. (Elég csak az Enterprise-ra gondolni, melynek Z80A processzorát akár 6-10 MHz-ig spécizték fel egyes ügyeskedők az eredeti 4 körüli értékről.) A Commodore IC-k többsége is igen komoly tartalékkal bírva elviseli akár még a beállított órajelek többszörösét is. (Legalább egy ideig… Nyilván itt is kell az élettartam rövidülésével számolni.) Ami miatt mégis vissza vannak korlátozva ezek gyárilag, az mindenhol a rendszer egy-egy legszűkebb keresztmetszete: a C64/128 esetén a kerékkötő a VIC-II(e) grafikus chip, illetve a még magasabb órajeleknél a SID. Ha megoldjuk, hogy e kettő a gyári sebességen maradjon, az összes többit lehet pörgetni. Ehhez viszont némi programozott elektronikai segédáramkörökre lesz szükség, melyeket a fenti két chip alá kell tolni – „szerencsére” pont e kettő, ami minden gépen cserélhető foglalatban van. (Ami persze nem véletlen, hiszen éppen azért lettek elhelyezve minden alaplapon így, mert már az alapjáraton is ezek mennek leghamarább tönkre, a túlmelegedés vagy más problémák miatt.)

kt2_tdc.jpg

Egy Przez Kisiel nevű lengyel hardverguru néhány éve megépítette a megfelelő nyomtatott áramköri lapkát, sokszorosítható formában, és állítható jumperekkel, kapcsolókkal ellátva. Ez a TDC-L fedőnevű bővítőeszköz képes 2 vagy 3 MHz, sőt, némi korlátozás mellett akár közel 4 MHz körüli órajelre kényszeríteni az öreg gépet; mindemellett tartalmaz egy második SID foglalatot, mellyel igény szerint sztereóvá tehetjük; ráadásként még egy beépített, 8-bites CoVox modemkimenettel is rendelkezik (mellyel pedig digitalizált hangot tudunk visszajátszani, ezt ugyancsak a SID-en keresztül). Mindezt vagy egy manuális, külső kapcsolóval vezéreljük, vagy a futó program tudja szoftveresen állítgatni néhány regiszteren keresztül: ilyen esetben a C128 fast módjával kompatibilis, azaz minden arra írott kódot itt is tudunk használni. (És itt ehhez nem is kell a képpel vacakolni, miután a VIC chipet az egész dolog nem érinti, tehát még gyorsabb és jobb lesz!) Igaz, hogy a szereléshez picit (egyetlen vezetéket) mégis forrasztani kell, de ennyi beavatkozást tán megér számunkra.

kt3_tc64.jpg

Turbo Chameleon 64. Jelen pillanatban ez a csúcs. Korábban már írtam róla rövid ismertetőt máshol, viszont úgy néz ki, hogy nemsokára ráteszem a kezemet egy ilyenre, így várhatólag visszatérek majd egy részletesebb, alaposabb hardvertesztben rá. Hihetetlen mennyiségű és töménységű funkcionalitás zsúfolódik össze egyetlen tenyérnyi bővítőkártya keretében, mely ráadásul önálló számítógépként is bír működni, a 64-es nélkül (minden alkatrészét helyettesíti, ha kell, az összes háttértárat is). Ami most itt minket érdekel a halmazból, a CPU: nagyjából ez képes lesz a gyári 1 MHz-ünk közel 10-14-szeresét hozni, amennyiben engedélyezzük (vagy pedig a szigorúan cikluspontos eredetit, amennyiben nem), de lehet akár korlátozni is – például a C128-cal a fentiekhez hasonlóképp visszafelé kompatibilisen működtetett 2 MHz-es értékre. Az elérhető maximális sebesség az eszköz által nyújtott többi szolgáltatás függvényében változó: ugyanis egy SD memóriát tartalmaz az összes memóriaművelethez és a belső kódmodulok futásához, sőt, a lemezegység emulálásához is: tehát ezek konkurrensen osztozkodnak annak adatelérési időciklusain: minél több minden lesz aktív, annál kevesebb jut belőle (továbbá az I/O műveletek még a gyári órajelen zajlanak, ezért ezek aránya is sokat nyom a latban). Egészében véve így is igen impozáns a teljesítmény: megközelíti ugyanis az álomszerű SuperCPU-ét (ld. lentebb), sőt, egyes speciális benchmark-tesztek esetében állítólag meg is haladja… (Igaz, ettől eltekintve csak egy hagyományos 8-bit 6510-turbó ez a változatlan utasításkészlettel.)

kt4_tc64.jpg

A Chameleon maga amúgy két korábbi projekt párhuzamos irányvonalait követi: hardverben a Jens Schönfeld-féle cartridge-ek (Retro Replay, MMC 64 és MMC Replay) továbbfejlesztése; míg szoftveroldalról a korábban a Commodore One-ban alkalmazott FPGA-64-es rendszermagot vitték át és csiszolják az új vasra.

kt5_cone.jpg

Commodore One. Jeri Ellsworth kezdetben egy VGA-kimenetet (ún. flickerfixert) akart tervezni a 64-eséhez, végül ez lett belőle… Egy teljesen új számítógép: külsőleg az ATX szabványhoz igazodó alaplap, mely tetszőleges PC-s házban (normál PC-s tápegységgel) elhelyezhető. Rengetegféle külső-belső csatlakozót, foglalatot tartalmaz, így akár a CPU is cserélhető benne (egy-egy régi mikroprocesszorra, mint pl. a 6502, a Z80, a 6809 stb.), bár gyárilag a mellé adott processzorkártyán ugyanaz a 20 MHz-es 65816 ketyeg, mely a SuperCPU-ban, 128 kB és 2 x 16 MB RAM-mal. Az újrakonfigurálható FPGA alapokon álló gép egy izgalmas kísérleti próbálkozás volt egy bő évtizeddel ezelőtt, míg „meg nem unták” tovább folytatni a fejlesztést. Azóta a Chameleon vette át a helyét (ld. fentebb), mely a maga módján ugyan még izgalmasabb (és kisebb!), csak hát sajnos kevesebbet tud. A C-One tudott volna PCI kártyákat és IDE eszközöket, CF kártyát, CD-ROM-ot, SD-RAM-ot, eredeti SID-et fogadni, s a processzora révén akár teljes körű, modern SuperCPU-utóddá is válhatott volna. Kár, hogy most már feltételes módban beszélünk vagy múlt időben róla.

kt6_scpu.jpg

SuperCPU. Még régebbi matuzsálem – ennek révén lett a „65816” fogalom egy ismert név. A Western Design Center WDC 65C816S típusjelű lapkája a 65xx architektúra egy 16-bites kiterjesztése, mely a régi utasításkészletet a végső határáig bővíti (az egy bájton elérhető mind a 256-féle operanduskódot kiaknázza, így a nem dokumentált, ún. illegális opkódokat nem lehet már rajta használni), a címzésmódban pedig 24-bites lehetőségeket ad hozzá (ezzel 16 MB natív memória válik közvetlenül elérhetővé), plusz új regisztereket és üzemmódokat. Alapvetően egy 14 MHz-es órajelű processzor volt, azonban a Creative Micro Designs 1996-ban piacra dobott SuperCPU-jában túlpörgették ezt is 20 MHz-re (ezenkívül néhány egyéb komputerben alkalmazták, pl. az Apple IIGS-ben). A SuperCPU-nak ezenfelül tartozéka legfeljebb 16 MB SIMM RAM (azonos a korabeli 486-osokban használt memóriatípussal), és egy 128 kB-os, intelligens DOS szoftver (többek között beépített JiffyDOS-szal ellátva). A CMD cégnek a Commodore platform életben tartásáért hozott rendkívüli erőfeszítéseinek csúcspontja. Sajnos nem terjedt el széles körben, mivel drága volt és későn érkezett, de mindmáig a játékosok és a gyűjtők egyik álma ez a C64/128 izmos bővítését célzó dobozka.

kt7_f7.jpg

F7 Turbo Card. Egy újabb lengyel zseni, becsületes nevén Przemyslaw Krawczyk – illetve a számunkra is megjegyezhető és kiejthető verzióban: Lotharek – szabadidejében csodás modern retróeszközöket épít. Saját weboldalát végiglapozva az egyik ámulatból eshetünk a másikba (ki ne hagyjuk eközben a MIST nevű Amiga és Atari ST FPGA-klónt!), míg meg nem látjuk azt, amelyen per pillanat dolgozik. Hogy mi lesz belőle majd pontosan, ha elkészül, még rejtély, de nagyon olybá tűnik, mint egy SuperCPU…! Ismét felbukkan a két jóbarát: a 20 MHz-es 65816 CPU és mellette a 16 MB-os SIMM RAM foglalat. (El is gondolkodhatunk most rajta, vajon ez az utóbbi manapság még egyáltalán miért kell: azért, mert az alkalmazott SD-RAM-ok és a firmware moduljai közös időzítéseiből egyelőre nem igazán jön ki az a megbízható 20 MHz-es órajel – ezt konkrétan a Turbo Chameleon FAQ-jában említik meg, magyarázatképpen arra, hogy a Chameleon miért nem képes emulálni azt.) Hát ez viszont nagyon Yikes! És drukkolunk. (Előjegyzéseket pedig máris felvesz rá az úriember, úgyhogy lehet neki e-mail-t küldeni.)

chameleon.jpg

A fentiek közül a Turbo Chameleon megrendelhető a német Vesalia webshopból (potom 240 euró + postaköltség, és esetleg egyéb kiegészítők), míg TDC és F7 ügyben azok gyártóinál lehet érdeklődni személyesen (utóbbi még egyelőre nem készült). A C-One és a SuperCPU már évek óta nem létezik újként, csupán használtan, így nagyritkán az eBay-en még egy-egy példány fel-felbukkan, aztán csillagászati áron szokott gazdát cserélni… A C128 a Vaterán is vadászható (mind közül a legkönnyebben elérhető, szerencsére elég sokat legyártottak pár évtizede).

c128.jpg

Emulátorok. Sajna emulátorfronton közel sem ilyen szélesek a kilátások, ugyanis a szoftveres C64-emulátorokban szégyenletesen gyér az efféle gyorsítások implementáltsága jelenleg. Holott éppenhogy egy bivalyerős PC kínálná ezt tálcán, vélhetnénk – ott aztán a határ tényleg csak a csillagok… Valamiért mégsem gondolnak a fejlesztők rá, s a „zászlóshajó” VICE-ban sincsen ilyen beállítás. (Létezik egy ún. warp mode ugyan helyette, csakhogy az az egész emulátort gyorsítja fel mindenestül, arra pedig senkinek sincs szüksége…) Csak a legközelebbi múltban történt kísérlet a helyzet javítására, és ráadásul ez egy magyar programozó, a Newcomer kapcsán ismerősen hangzó nevű Soci (azaz Kajtár Zsolt) műve, aki készített a VICE-ból egy saját, „custom” variánst a SuperCPU egy korlátozott emulációjával kiegészítve. Pillanatnyilag még kissé béta verziós és hiányos, de remélhetőleg, ha egyszer elkészül, a „hivatalos” VICE is átveszi. (Ugyanakkor még ha megvalósul is ez, mindjárt legyinthetünk rá egy kissé csalódottan előre: minek kell e nyamvadt 20 MHz-cel beérni, amikor a mai PC-k tudásával immár több százszoros vagy ezerszeres gyorsítás is elérhető lenne. Gondoljunk csak bele, hogy az egyik első emulátor húsz éve egy 386-oson is elfutott, s a mai processzorok ehhez képest milyen teljesítménykülönbséget rejtenek!)

A VICE 2.4 SuperCPU „Experimental” változata itt letölthető. A SuperCPU-val való futtatáshoz átalakított játékprogramok listája pedig itt található. (Nem garantált, hogy mindegyik feltétlenül menni fog!) Így a Freescape nem lesz többé diafilm.

Visszatérve eredeti témánkhoz, a különféle turbókhoz: végső soron láthatjuk, ez tipikusan olyan szerepkör, mely emulátor alatt szinte semennyire nem támogatott még. Ami azért fájó, mivel pont a legnehezebben hozzáférhető és legborsosabb árú vasakról van szó, melyek beszerzését a legszívesebben úszná meg az ember (akkor is, ha egyébiránt remek érzés birtokolni őket). Elvileg a megfelelő módszerekkel lehetséges volna a futó programból detektálni ezeket a futtatási környezeteket, majd ennek függvényében megváltoztatni a futását – mindegyikhez testre szabni valamennyire. (Például a valós C64/128 környezeten kívül nem kellene sokat törődni a MHz-ek kapcsolgatásával, mivel másutt nem jön elő az ominózus VIC-bug, ugyanakkor tudhatjuk, hogy nem szabad az utasításhosszak cikluspontosságára hagyatkozni sehol sem; vagy 65816 esetében nem alkalmazhatók az illegális opkódok, ám cserébe egy komplett módon kibővített utasításkészlet áll rendelkezésre. És így tovább, előnyök és hátrányok.) Ennek megbízható tesztelése viszont egyelőre megoldhatatlan és ellenőrizhetetlen az eredeti vasak nélkül, míg az emulált környezetek készítői nem nyújtanak segítséget hozzá.

kt8_rose.jpg

Viszlát jövőre!

(előzmények: Gép az emulánsok ellen és Commodore 128 Personal Computer; a téma folytatása: Turbo Chameleon 64)

Címkék: pc c64 vice chameleon f7 cmd tdc jeri ellsworth c128 supercpu 65xx jiffydos 65816 c-one jens schönfeld lotharek

A bejegyzés trackback címe:

https://rosetta.blog.hu/api/trackback/id/tr1005680424

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

CodeKiller 2014.03.06. 23:28:51

Üdv,
Azt hiszem, valami elveszett fordítás közben, mert a Chameleon FAQ-ban szó nincs az SD/microSD-kártya sebességéről... (egyébiránt pl egy UHS-1 osztályú kártya ~100MB/70MB/s R/W-t tud)
Amiről ott írnak, az a használt SDRAM precíz időzítésének problémája, mivel abban van a VGA framebuffer, a disk drive adatok, stb... Elvileg valami összetettebb puffereléssel és memóriakezelővel megoldható lenne (szerintem)