Kábelek és pécék

X-kábelek. A Commodore és PC összekötésére használatos kábelek. Nélkülük e két világ csak egy-egy szigorúan elszeparált, külön birodalom lenne. A legegyszerűbb alapváltozata az X1541 kábel, ami nem más, mint két szabványos csatlakozódugó belső végződéseinek összeforrasztása egymással. Az egyik végén van a PC párhuzamos portjába illeszkedő 25-tűs (DB25) papa, míg a másikon egy 6-tűs, kerek nagy-DIN, ami meg a Commodore cég IEC soros csatlakozójának felel meg. Utóbbi a CBM gépek által alkalmazott egyik adatkapcsolati protokoll, az alapgép és floppy drive (a C64-nél ez a 1541, vagy C128 esetében 1571) összekapcsolására. A kábellel az eredeti szándék az volt, hogy a meghajtót egy PC-hez is hozzá tudjuk csatlakoztatni, majd ezen keresztül a Commodore-os lemezeket írni-olvasni. Elvileg ez képessé tenné az emulátor programokat rá, hogy ne csak emulált, de valódi floppy-kat is kezeljenek; gyakorlatilag ez eléggé ritkán szokott összejönni így, s a valós felhasználás pedig nem is ez lett, hanem inkább csak a régi lemezeink beolvastatása, majd elmentése – azaz, mondhatjuk, hogy archiválása – a könnyebben kezelhető, kényelmesebb, biztonságosabb és gyorsabb, digitális D64 fájlformátumban. (Természetesen ugyanez az ellenkező irányban is működik, azaz lehet velük pl. az internetről leszedett képfájlokat kiírni egy lemezre, majd betölteni róla Commodore gépünkbe.)

Az alapkábel viszont igen gyorsan elavult, miután kiderült róla, hogy a 486-osnál újabb generációjú alaplapokkal már nem igazán működik (a PC-gyártók ugyanis időközben megváltoztatták a printer portok specifikációját). Ezért újabb változatok születtek. Első számú helyettesítő az XE1541 („E”, mint kiterjesztett, azaz „extended”), mely ugyanazt a szerepkört látja el, csak nagyobb fokú kompatibilitással (és biztonsággal); ezt már picit nehezebb volt barkácsolni házilag, hisz nem csak puszta drótforrasztás – egy-két egyéb alkatrészt is tartalmaz (négy db. egyenirányító diódát). Ezeket a kábeleket kizárólag DOS-alapú, realtime környezetből tudjuk ténylegesen alkalmazni, mivel nem képesek megszakítás-kiváltásra PC oldalról.

Miután az MS-DOS-t és társait is lassanként felváltották a gépeken a multitaszk alapú oprendszerek (pl. a Windows), megint új kábelek kellettek. Megszületett az XM1541 kábel („M”, mint „multitask”), mely fizikailag az előzőtől mindössze két forrasztási pont felcserélésében tér el: a printer port egy másik tűjét használja, mely megszakítást generál, így lehet Windows alá szoftvert írni rá. Mivel ez sem volt még tökéletes kompatibilitási szempontból (előfordult néha egy-két olyan alaplap, amivel nem ment), így még tovább fejlesztették XA1541 néven („A”, mint „aktív”), mely diódák helyett ellenállásokat és tranzisztorokat tartalmaz, s ez lett végül is a legfejlettebb, „végső” változat.

A soros kábeleknek ezenkívül vannak szokatlanabb, párhuzamos változatai (egy hozzátett „P” betűvel jelölik, és nagyobb átviteli sebességet tesznek elérhetővé, de jóval bonyolultabb felhasználni őket), illetőleg születtek mindenféle más elveken alapuló, sajátságos megoldások is (pl. én láttam olyan kábelt, ami a C64 két joystick portját használta). Ezek közül amit érdemes még megemlíteni, a 1541EMU kábel, mely a párhuzamos port mellett egy második pécés csatlakozást is igényel (igaz, csupán áramfelvételre, egy +5V-os vonalat, mely vagy a GAME port, vagy egy USB csatlakozó egyik tűje szokott lenni); utóbbi a saját, speciális szoftverével üzemel (ld. később). A kvázi sztenderddé vált soros kábeleket pedig nemcsak ilyen X-kábelek, hanem X-adapterek képében is gyártják, ami voltaképp egy kis nyomtatott áramköri lapka (esetleg egy dobozban), s a DIN végződés benne aljzat formájában van jelen, ahová a régi Commodore gép soros kábelét kell bedugni. Gyártástechnikában ez a legjobb minőségű megoldás (nekem is van kettő otthon…), vannak helyek, ahol manapság is lehet ilyet profi szintű kivitelben párezerért rendelni.

Újabb „csapást” mér a retróőrültekre azonban a „fölösleges” printer portok fokozatos eltűnése a modern PC-kről, mely ismételten újabb fejlesztéseket kényszerített ki… Nemrég óta tehát létezik az XU1541-ként emlegetett megoldás, mely immáron egy USB felületű összeköttetés (ld. „U” betű); ezzel tényleg csupán akkor érdemesebb foglalkozni, hogyha nincsen printer port.

   

X-kábelek szoftverei. Az első X1541-es kábel, és az ahhoz készült, vele azonos nevű, igen primitív kis adatátviteli program Leopoldo Ghielmetti találmánya volt 1992-ben. Ami viszont ténylegesen közismertté tette, illetőleg legszorosabban összefonódott e sorozat- és típusnévvel, az a Star Commander nevű szoftver, mely egy Joe Forster/STA fedőnéven tevékenykedő (ám valójában hazánk fia, Kovács Balázs nevű) úriember zseniális alkotása volt (a jelenlegi legutóbbi verziója 2010-es; nem tudom, hogy folytatja-e még a fejlesztést). Az SC teljesen a világszerte ismert, régi „Commander”-ek felhasználói felületét valósítja újra meg, miközben egy panelban lehetőség nyílik a felcsatlakoztatott CBM drive-ban lévő lemez (vagy akár egy annak megfelelő virtuális D64 image) megnyitására, és tetszőleges fájlok kényelmes és folyamatos ide-oda másolgatására a PC és a drive között (hibaellenőrzés mellett, akármelyik irányban, és turbó sebességgel is). DOS-os környezetben minden sztenderd X-kábellel kiválóan együttműködik, sőt esetleg némi ügyeskedéssel még Windows XP alól is életre kelthető (bár a siker nem garantált ilyen esetben). Amennyiben szert teszünk egy új kábelre vagy meghajtóra, mindenképpen ajánlatos első ízben ezzel tesztelni.

Mivel napi szinten MS-DOS-t már elvétve futtat csak az ember, ezért nyilván tevőleges használatra szoftverből is korszerűbbre vágyik. Ameddig a Star Commander nem lesz újraírva teljesen a Windows-kompatibilissé alakított változatában, addig mást kell alkalmazni helyette. Mint említettük, a kábelek közül az XM és az XA (valamint az XU, ami gyökeresen másik technológia) alkalmas a Windows-hoz. Jelenleg a legjobb ilyen megfejtés az OpenCBM néven futó, nyílt forráskódú, nemzetközi, közös projekt, ami két korábbi szétvált vonalat (a CBM4Win és CBM4Linux nevűeket, azaz Windows-on és Linux-on) egyesített újra: egy kernel-szintű, szabványosított, és általános eszközillesztő-program(család), elsődlegesen a Commodore IEC soros buszát tartalmazó készülékekhez (kb. minden ilyen floppy drive, esetleg nyomtató) a fenti kábeleken keresztül. Készült hozzá külön GUI (azaz grafikus felhasználói felület), mellyel biztonságosan és könnyen lehet Windows alól másolni. (Ilyenekből több is van, a CBMXfer nevűt keressük, a legfrissebb már Win7-kompatibilis!) Ami különösen érdekessé teszi, hogy ezen a saját felületen kívül tetszőleges egyéb alkalmazás képes elérni a drivert, így pl. a Star Commander alá beilleszthető, vagy akár még egyes emulátorok (pl. a VICE) újabb verziói is felismerik, támogatják, elvben tehát onnan is elérhető ezen keresztül már fizikailag a floppy drive. (Azért ez egy kicsit bátor próbálkozás, ráadásul személy szerint nem is nagyon látom értelmét… De technikai kihívásként mindenképpen izgalmas.) Maradva a másolásnál: tényleg – és elragadó – megoldás. (GUI terén azért lehetne még egy-két szolgáltatást ráépíteni.)

Van viszont egy teljesen más aspektusa is az egész kérdéskörünknek: miután az emulátor-használat, mint láthattuk, az élmény szintjén egyelőre nem kellően kielégítő, így megpróbálunk továbbra is vasat gyűrni, azaz valós gépet helyette; önmagában ezzel nincs is sok gond – egy darabig még jól bírják a strapát (és akad utánpótlás rá, a legtöbb hiba házilag is könnyen orvosolható). Egyre kevésbé mondható el azonban már ugyanez a háttértárakról: mind a meghajtókról, mind a lemezeikről. Ezek bizony gyors ütemben leamortizálódnak (meg egyébként is kényesebbek, nehézkesebbek voltak mindig is, és elég sok a korlátjuk és hátulütőjük). Szabaduljunk meg tőlük!

   

Floppy-emulációk. Réges-régen megfogalmazódott már a gondolat, miszerint egy-egy ilyen X-kábelt lehetséges volna éppenséggel fordítva is üzemeltetni: vagyis, hogy a PC ne az alapgépet emulálja, hanem csak a háttértárat váltsa ki a Commodore gép számára (mint afféle fájlszerver). Két említésre méltó próbálkozás történt e téren. Nem meglepő módon mind a kettő realtime, DOS-alapú alkalmazás (lásd fentebb a cikluspontossággal kapcsolatos eszmefuttatásokat!), és egyik sem épp stabil, avagy megbízható működésű túlzottan. (Láthattuk, a pécés architektúra nem kimondottan kedvező az ilyen feladatokra.) Amit előzetesen még tudni kell a kérdéshez: egy CBM floppy korántsem egy egyszerű eset. Ellentétben ugyanis a pécés meghajtókkal, ez egy ún. intelligens periféria, ami azt jelenti: maga is egy komplett számítógép tulajdonképpen, mely saját belső CPU-t és RAM-ot tartalmaz, a processzor a saját belső szoftverével fut (jelen esetben egy 16kB-os ROM modulba – vagy opcionálisan egy EPROM-ba – égetetten bebootoló mini-oprendszer); és ez a rendszer adatátviteli protokollokon át kommunikál folyamatosan a (másik) számítógéppel. (A PC-floppy ehhez képest buta ócskavas, az alaplapon lévő mikrokontroller-chip vezérli.) Ennélfogva mindezt emulálni hasonlatos feladat magához a C64 emulációjához (a komplett emulátorokban persze szintén benne van).

Konkrétan a 1541-es lemezegység operációs rendszerének például még neve és verziószáma is volt: CBM DOS 2.6, így hívták (a Plus/4-eshez való 1551 is ezt tartalmazta, míg a 1571-es már a 3.0/3.1 verzióját stb.). Fizikailag a drive szíve egy MOS 6502-es CPU, mely kompatibilis (egy-két memóriakezelési sajátosság híján azonos) a C64 gépben található 6510-es változatával. (Más, régebbi CBM drive-okban még három processzor is volt!) Miután az alapgéppel egyező szerkezetű kódot tudott futtatni, és 2kB méretű, önálló RAM memóriája is volt, továbbá pedig ezt a memóriát a megfelelő utasításokkal az alapgépről írni-olvasni is lehetett a soros protokollon keresztül, ez elérhetővé tette ennek felhasználói szintű programozását. (Ténylegesen akadtak olyan elvetemült programozók, akik ko-processzor gyanánt használták! Sőt, idővel a demóprogramozásban egyenesen alapfogás lett pl. Mandelbrot-halmazok részelemeinek vagy 3D vektorgrafikák következő képkockájának a kiszámíttatása a segédletével. Egyik legextrémebb alkalmazási példáját egy nemzetközi fórumon olvastam, ahol valaki azt tervezte, hogy mini-sakkprogramot készít, ami egyedül a drive-ban fut, így max. 8 db. felcsatlakoztatott egység tudott volna realtime versenyezni egymással… Hogy ez végül kész lett-e, vagy sem, azt nem tudom.)

A sztenderd, gyári adatátviteli szoftver-protokoll egy kissé kezdetleges volt még, sajnos ugyanis a gépek fejlesztésén szorgoskodó mérnökök eleinte rettentően szoros határidőbeli nyomás alatt álltak, így nem tudták idejében kijavítani annak minden hibáját, s emiatt a benne rejlő potenciált végül nem használták ki. Más szóval egy „kicsit” lassúcska volt alapjáraton, pedig annál nagyságrenddel (!) többet tudott teljesíteni. Utólag ezt orvosolták gyorstöltőkkel, ún. „turbo loader”-ekkel stb. A legjobb gyorstöltők az eredeti szoftver sebességének a több tízszeresével mentek; ezek titka pedig nem más, mint – megintcsak – a cikluspontosság. Először egy tökéletes szinkront kellett létrehozni csak a két processzor között („egyeztessük óráinkat!”), majd azután – mivel ezek iker-azonosak voltak, ezért elvben pontosan „tudták” közben egymásról, hogy épp mit csinál a másik – egyszerűen őrült módon lehetett az adatokat ömleszteni más további ellenőrzés nélkül.

   

A 1541EMU néven emlegetett projekt célja volt, hogy saját, különleges kábelével (lásd fentebb) egy PC gépet hozzákapcsolva egy Commodore-hoz, a 1541-es lemezegység teljes belső hardver-architektúráját mindenestül emulálja számára, így lehetővé téve annak tökéletes helyettesítését. A gyakorlatban mindez úgy néz ki: a PC-n elindítva az alkalmazást, teszteli az adatkapcsolatot, s ha sikeresen elindult, úgy onnantól egy egyszerű kis menüből lehet a PC-n tárolt D64 képfájlokból válogatva egyet-egyet „betenni” a „drive”-ba, mely a Commodore gép oldaláról autentikusan floppy gyanánt szerepel. Sajnos, azt kell mondani, hogy igen-igen kényes, válogatós, instabil a drága, bár amikor épp jókedvében találjuk, olyankor tényleg lenyűgöző élmény látni, ahogy minden régi program – gyorstöltőkkel együtt – teljes pompájában szerepel. Nagyon ritkán lehet hozzávaló kábelt találni (nem árulnak ilyet sehol, különleges szerencsével lehet használt példányt kifogni), bár elvileg a kapcsolási rajzból ki-ki megépítheti azt magának. A szoftver maga 2002 után támogatás nélkül befejezett fejlesztés (talán éppen amiatt, mert oly kevesen használták). Nekem van egy ilyen kábelem, és tesztelgettem is egy ideig, sőt több különböző géppel, ez alapján annyit mondhatok, hogy minél erősebb a PC processzora, annál könnyebb vele sikert elérni; nekem végül is egy Core2Duo-val sikerült amolyan többé-kevésbé megbízhatóan hadrendbe állítani… Így is rendszeresek maradtak az időnkénti fagyások és összeomlások. (Jó sommásan ennyit csak a cikluspontosságunk követelményeiről.)

   

Másik ilyen projekt meg a 64HDD. Ugyancsak egy DOS-os alkalmazás, azonban ez jelentősen szerényebben közelít a témához: mindössze az alapvető, sztenderd, általános szabvány IEC soros buszprotokollt implementálja. Más szóval itt gyorstöltőkről, pufferelésről, floppy-programozásról, s más efféle nyalánkságról szó sincs: gyakorlatilag a kutyaközönséges beépített LOAD/SAVE utasításokat kapjuk, alapsebességen járatva. Csak az X vagy XE kábelt tudja használni (pontosabban vannak hozzá szintén saját fejlesztésű, speciális párhuzamos kábelek, amelyekkel egy bizonyos saját gyorstöltővel lehet felgyorsítani az átvitelt), viszont legalább a hardverkövetelménye is szerényebb (állítólag már egy 386-oson elindul). Stabilabb is, megbízhatóbb is a másiknál (a tapasztalataim szerint azért ez sem éppen 100%-os…). Tulajdonképpen tehát egyfájlos programokat tudunk vele egyesével elindítgatni (utántöltős, lemezkezeléses játék csaknem kizárva). Ami ugyanakkor komoly erőssége mégis, hogy a behelyezett képfájlokon kívül, gyakorlatilag a komplett PC-n lévő fájlrendszert is egy az egyben leképezi számunkra: elérhető akár még az optikai meghajtó, a hálózat, vagy bármi: minden, ami DOS alatt is látható, megjelenik itt is, ráadásul kiterjesztett, hosszú fájlneveket használva… Magához a PC-hez így nem szükséges se monitor, se billentyűzet, amennyiben gondoskodunk róla, hogy a DOS után a program bootoljon be rajta; elég csak a bekapcsológombot megnyomni, majd várni. Utána a Commodore-on böngésszük a teljes fájlrendszert. (A maga módján ez is érdekes egy élményt nyújt.)

   

A pécés emulációnak ez a fajtája így végső soron inkább csak egy furcsa zsákutcának bizonyul (ehhez vegyük még hozzá, hogy egy telepített konfigurációnak kell zúgni-zakatolnia a háttérben, így teljes lesz az illúziórombolás). A legvégső kegyelemdöfést egy kétoldalú hóhérteszteléssel tudnánk megadni a számára: kössünk össze két PC-t, az egyiken egy C64 emulátort futtatva, a másikon meg valamelyik 1541-es kaszkadőrt. (Technikailag a dolog megoldható, mindösszesen kettő darab X-adapter kell hozzá – mind a kettőn mama-féle, nagy-DIN aljzattal, s a kettő közé iktatni egy hagyományos szimpla összekötő kábelt –, avagy pedig helyette egy X-adapter és egy X-kábel – ez esetben nyilván utóbbi beledugható az elsőbe.) Majd próbáljuk meg floppy drive-ként használni az egyikkel a másikat… Bár kísérletünk (egyelőre) hipotetikus, egy kissé perverz, ráadásul értelmetlen is, a végeredménye már jóelőre borítékolható: összeomlás, világvége, dráma… „S a többi néma csend…”


Következő: „A C64 utódai és a kiegészítők”

 

 

Szoftveres emulációk

Kábelek és pécék

A C64 utódai és a kiegészítők

A SID-ek bosszúja

Szoftverfejlesztések

Linkgyűjtemény