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 jó – é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…”