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