Page 16 - Enterpress Magazin - 2016. 1.
P. 16

16. oldal                                                                              2016. november



        Meglepő fordulat azonban, hogy az JSep   dig elnézést, de hadd örüljek néha egy kis   szintén  megy  (azóta  EnterMice  dolgok  is).
        megoldása más esetben is hasznos lehet   sikernek én is, a sikerélmény mint motiváló   Ahogy ezt is, sok dolgot egyszerű volt meg-
        (főképpen hasznos lesz, de itt is egy alapos   tényező fontos kérdés abban, hogy az em-  csinálni, mert az JSep-be írt JavaScript kó-
        újraírás után lehetne számítani elfogadható   ber ne hagyja abba a dolgot. :)  domat kellett „átfogalmazni” csupán C-be.
        eredményre): a különböző mobil eszközök-                                Viszont új például az SD kártya cartridge
        re, okos telefonokra, és tabletekre gondolok   Egy nosztalgikus napon (már 2015-ben va-  támogatás, ami sem JSep-ben, sem pedig
        most.  Annak idején kipróbáltam  szerzemé-  gyunk) eszembe jutott az első Enterprise   ep128emu-ban nincs (azóta ep128emu-ban
        nyemet a saját okos telefonomon, az ered-  emulátor projektem, az amit C-ben írtam, és   is van). Jelenleg csak olvasni lehet vele (az-
        mény lehangoló volt, talán slideshow-nak   csak Linux alatt futott (tehát a Xepem). Mivel   óta már írni is), de ez már mutatja, hogy az
        lett volna csak alkalmas az eredmény. Vi-  az SDL2-vel (az SDL egy cross-platform „mé-  JSep-hez képest megvan a natív implemen-
        szont a mostani okos telefonommal és egy   dia réteg” ami elérhető pl. Linux, Windows,   táció előnye, ezt weben megoldani főleg
        mostani böngészővel rajta egész meglepő-  Android stb. rendszerekre is) szerettem vol-  egy nagy méretű disk image eseten elég
        en jó eredményt képes produkálni! Ez egy-  na (jobban) megismerkedni, elhatároztam,   nehézkes. A SymbOS Xep128-al működik,
        részt köszönhető persze a kérdéses eszkö-  hogy megpróbálom a régi projektemet (már   egérrel, SD kártyáról is (JSep-vel is működik,
        zök hardware szintű fejlődésének, azonban   a forrása se volt meg) „utánozni” SDL2 ala-  persze ott nem SD-ről).
        a JavaScript teljesítménye is meredeken   pokon, ezúttal nem saját, hanem a z80ex
        növekszik az elmúlt években, és szinte ver-  projekt  Z80 emulációját  felhasználva (amit   Hogy mi még „extrém hardware”, arra jó pél-
        senyt űznek a böngésző gyártók ebből. Las-  már régebben is felhasználtam pár kisebb   da  a  Z180  emuláció  a  Xep128-ban  :)  Nem
        san oda jutunk, hogy egy kissé heterogén   saját projektnél, pl. a CP/M emulációs réteg   sok embernek van Z180-al szerelt Enterpri-
        mobil eszköz környezetben (Android? iOS?   a UNIX környezetben, és hasonló őrültsé-  se-sza, tudtommal egyetlen egynek :) Mégis,
        Windows Phone?) lehetőség nyílhat egy   geknél). Ezúttal a dolog jobban ment mint   érdekes problémának tűnt ennek megoldása
        egységes megoldás használatára (főleg a   anno, ez talán annak is köszönhető, hogy   (még nincs kész, de arra már jó, hogy Z180
        jelenlegi mobil specifikus web API-k és meg-  a Z80 emuláció biztosan teljes, és jó volt :)   által nem ismert Z80 opcode-okat kiszúrja
        oldásokkal, amivel JS-ben akár az eszköz el-  Az új emulátor a Xep128 nevet kapta. Neve   például). A ZX Spectrum hardware emulátor
        mozdulása és ilyesmik is kezelhetőek). Hoz-  a UNIX-os eredetre vezethető vissza (GUI-s   kártya emulálása :) szintén elég őrült ötlet-
        zátenném, az JSep „kézzel” írt JavaScript   programok nevei – azaz X11 alatt futóak – ré-  nek tűnt, bár lehet, ez nem túl eredeti ötlet
        kód, nem az asm.js megoldás, amihez akar   gebben hagyományosan X-szel kezdődtek).   (ep128emu-ban is van, tudtommal). Azon-
        C fordító is van (pl.: emscripten), mely képes   Hasonlóan az JSep-hez, itt is a tanulás volt a   ban kétségkívül a legértékesebb az lenne, ha
        C kódot az asm.js nevű JavaScript részhal-  fő szempont: SDL2 ezúttal. Őszintén, addig   a félbehagyott munkát az EPNET emuláci-
        mazra „fordítani”. Ezekre a megoldásokra azt   sem terveztem eljutni, mint az JSep-vel.  óját folytatnám. Ha valaki még nem hallott
        mondják, hogy már csak kétszer-másfélszer                               volna róla, az EPNET Bruce Tanner barátunk
        lassabb adott esetben mint a natív kód (ezt   A Xep128 szintén csak Linux alatt futott, ám   (aki az eredeti IS-BASIC-et, és az EXOS egy
        igazolni nem tudom, még nem igazán pró-  bennem volt a kisördög, hogy ha már SDL   részét is írta például) projektje, dióhéjban:
        báltam). Természetesen a webes technikák-  (ami cross-platform) mennyire lenne bo-  „kössük az Enterprise-t az Ethernet LAN-unk-
        nak van még hova fejlődniük, az JSep-nek   nyolult Windows-os programot is gyártani   ra és az Internetre”. Ezt emulálni egy webes
        meg különösen ;)                    belőle  (persze  ez  most  egyszerűsítés,  az   emulátor nem is tudná, hiszen nem képes
                                            SDL2 mellett volt benne közvetlen Linux   http-n és hasonlókon kívül más, natív proto-
        Az JSep másik „sikere” az elrettentés volt :)   specifikus dolog is, amit előbb orvosolnom   kollal használni a hálózatot, jellege miatt. A
        Történt ugyanis, hogy rátaláltam a SymbOS   kellett). Ismételném: sose volt Windows-om,   Xep128 mivel natív alkalmazás, képes lehet
        nevű remek kis multi-tasking Z80-ra írt ope-  Windows alá meg pláne nem programoz-  erre. Szerény véleményem az, hogy az EP-
        rációs rendszerre, ami  azonban  akkoriban   tam még semmit! A megoldás tehát az lett,   NET mindenképpen ütős kis hardware lesz
        még nem futott Enterprise-on. Egy őrült   hogy kipróbáltam a Mingw nevű cross-com-  majd, hiszen „Enterprise a neten” az valami
        ötlettől vezérelve betöltöttem a CPC-s ver-  pilert, ami Linux alatt futva képes C kódból   új. Ennek emulálása szerintem ezért eléggé
        ziót egy CPC emulátorba, amit forráskód   Windows-os exe-t gyártani. El lehet képzel-  fontos feladat lehet. A SymbOS új verziójá-
        szinten  átírtam: saját formátumba mentve   ni meglepetésemet, amikor fel óra melóval   ban  már  van hálózat  támogatás  (igaz még
        adott pillanatban a memória tartalmat és a   előállt egy exe, ami a wine alatt legalábbis   nem az EP-s verzióban), és Prodatron való-
        Z80 állapotát. Aztán kissé módosítottam a   elfutott. Ha már idáig eljutottam (ami az   színűleg örömmel tenne EPNET támogatást
        saját EP emulátoromat, hogy ezt be tudja   elején szintén csak kíváncsiság volt részem-  is az Enterprise verzióba majd. A Xep128 EP-
        tölteni, majd pár órát eltöltöttem vele, hogy   ről: menne-e Windows alá is) elhatároztam,   NET emulációjával meg mindez valódi hard-
        a CPC memória/CPU állapotnak „pillanatké-  hogy a „duál platform” jelleget megtartom   ware nélkül is kipróbálható lenne (lenne, ha
        pe”  hogyan  futtatható tovább egy  tök  má-  (azóta ez már nem csak „duál”), a Xep128-  haladnék vele).
        sik gépen, az Enterprise-on :) A módosított   nak mennie kell Linux (vagy más hasonló
        JSep emiatt kis részben CPC-t is emulált az   UNIX)  és Windows  operációs  rendszerek   Az Xep128 egyik nagy hátránya jelenleg,
        EP mellett! A tervem az lett volna, hogy ap-  alatt egyaránt.           hogy köszönőviszonyban sincs a felhaszná-
        ránként patch-elgetem a mentett CPC me-                                 lóbarátság (legalábbis, ha a felhasználó nem
        móriatartalmat addig, amíg a CPC hack-ek   A fejlesztési szokásaimon (hobbi szinten is,   command line fetisiszta, mint én) fogalmá-
        nélküli emulátorban is elfut, ami után csak   mert munkában amúgy is így volt mindig   val :) Az JSep esetén ez még elfogadható
        némi betöltő kell hozzá: tehát a SymbOS   is) szintén próbáltam csiszolni: ezúttal már   annak jellege miatt („web”), hogy nem lehet
        portolásáról lett volna szó memóriakép alap-  verziókövető rendszerbe tettem a dolgokat   szabadon configolni, helyi file-okat betöl-
        ján az  Enterprise 128-ra :) Tudom, az ötlet   (git), és a Github-bal így egyben elérhetővé   teni ROM-kent, disk image-ként stb. Azon-
        elég furcsa. Annyira őrült, hogy Prodatron   és tettem mások számára. Illetve, célul tűz-  ban a Xep128 egyik lényeges jellemvonása
        (a  SymbOS  szerzője)  válaszolt  nekem,  és   tem ki, hogy a Xep128 se „általános” emu-  pont az, hogy natív applikáció. A problé-
        kijelentette, hogy ez annyira hülyeség, hogy   látor legyen, hanem valamire szakosodjon:   mát azonban nehezíti, hogy lényegében az
        már jó :) Illetve „elrettenve” ettől, inkább por-  ahogy az JSep a web-re, úgy a Xep128 az   SDL  csak  egy  (SDL2  -  vagy  több)  „ablakot”
        tolta ő maga Enterprise-ra rendesen a Sym-  „extrémebb” hardware elemek emulálásá-  ad, amibe szabadon lehet „rajzolni”. Ha az
        bOS-t  :)  Az  igazsághoz tartozik,  hogy  már   ra. Hogy miért? Mivel a Xep128 is legalább   ember beállító paneleket, stb. akar, azt neki
        régebben is volt az Enterprise-ra portolásról   annyi (sőt több!) hiányossággal rendelkezik   kell megrajzolnia kvázi képpontonként (még
        terv, de – amennyire én tudom – ennél több   (frissítés: rendelkezett ...) mint az JSep, ezért   egy szöveg kiírása is így megy). A másik le-
        addig nem igazán történt. Tehát ha közvet-  csak ki kellett találnom valamit, hogy akkor   hetőség, hogy az SDL mellett az emulátort
        lenül nem is, közvetve hasznos volt az JSep   miben  jó  legalább  :)  Igen,  a  Xep128  több   futtató operációs rendszer saját GUI eleme-
        a  SymbOS Enterprise-ra  való megjelenése   tekintetben annyit sem tud (tudott) mint az   it kell felhasználni. Ez azonban azért prob-
        kapcsán is :) Persze lehet, hogy Prodatron   JSep, csak VINT/1Hz interrupt van (volt) je-  lémás, mert így akkor megszűnne azonnal
        ezt másképp mesélné el :) Az olvasótól pe-  lenleg például. Viszont a boxsoft féle egér   a csaknem teljesen közös Linux/Windows
   11   12   13   14   15   16   17   18   19   20