Spectrum emulátorok

Az ENTERPRISE megjelenésekor mindenki arra panaszkodott, hogy kevés a gépen futtatható játék- és felhasználói programok száma. (Ez igaz is volt.) A gép forgalmazásának megindulásakor nagy dirrel-durral beharangozták a hamarosan kapható hardware Spectrum emulátort, mellyel egycsapásra megoldódik a software hiány... Az idő telt-múlt, de az emulátor csak nem akart megérkezni. Bizonyára mindenki számára ismert, hogy az Enterprise-ban és a Spectrum-ban is a Zilog cég Z80 processzora dolgozik. Ennek tudatában könnyen fellelkesedhet az ember, hogy a Spectrum emulációt nem is lehet oly nehéz megoldani Enterprise-on. Természetesen a hardware közti különbségeket valahogyan át kell hidalni. Egy Spectrum program Enterprise-on futtathatóvá tételének alapvetően két útja van:

A beígért hardware emulátor azonban elég sokat késett, így megjelentek a Spectrum átiratok, másrészt a fejlesztés a software-emulátorok felé fordult. A módszernek egyetlen (de nagy) előnye, hogy nem igényel semmilyen elektronikai alkatrészt (a hardware emulátor csúszásának egyik fő oka volt, hogy számos alkatrészt nem lehetett beszerezni Magyarországon, sőt az egész KGST-ben!). Sajnos hátránya sokkal több van...

A Spectrum emuláció első lépésének az a útmutató tekinthető amit a Enterprise cég adott ki a szoftverfejlesztőknek, azzal a céllal, hogy Spectrumra fejlesztő programozók Enterprise-ra is adják ki a programjaikat. Ebben a dokumentumban leírták, hogyan kell a Spectrum-os memóriakonfigurációt és képernyő felépítést előállítani, valamint útmutatást adtak, hogyan kell a billentyűzet és hangkezelést megoldani, valamint az attribútumbájt kezelést módosítani. Ennek eredményeként született meg sok tucat Spectrum játék gyári EP-s kiadása, majd később sok száz nem hivatalos átirat.
Már ez a dokumentáció célzott rá, hogy ROM emulációval már létező Spectrum programok is futnának Enterprise-on, gyakorlatilag csak az előbb leírtak alapján megteremtett Spectrumos keretbe kell berakni egy olyan Spectrum ROM-mot, amiben a hardver közeli részeket (billentyűzet, hang és magnó rutinok) EP hardverhez vannak módosítva, és kész is a Spectrum emulátor! Erre az ötletre egymástól függetlenül számos programozó eljutott, így összesen körülbelül egy tucatnyi szoftveres Spectrum emulátor készült. Azonban hiába tűnik nagyszerűnek az ötlet, a szoftveres emulációnak számos hiányossága van:

Ezen okok miatt játékok futtatására egyáltalán nem megoldás a szoftveres emulátor, leginkább csak BASIC programok futtatására alkalmas.

Két emulátort érdemes külön megemlíteni, az egyik Alexander Gusev emulátora: nem csak azért, mert ez az egyedüli emulátor, mely nem magyar fejlesztés, hanem azért is, mert egyszerűen megoldotta a színkonverzió hiányát: a program monokróm, csak a kereten kezeli a színeket.
A másik a MICROTEAM emulátora, amely szolgáltatásaiban lényegesen felülmúlja a többi emulátort, így ezzel érdemes részletesebben is foglalkozni az ENTERPRESS cikke nyomán.

Az új SPECTRUM emulátor: Gép a gépben

Az ENTERPRISE megjelenésekor mindenki arra panaszkodott, hogy kevés a futtatandó játék- és felhasználói programok száma. Ekkor jelent meg az első és azóta is utolsó hardware Spectrum emulátor. Végre! - mondjuk - ezzel meg van oldva a programhiány. Aztán rá kellett jönnünk, hogy még sincs minden, mert a programok elég kis százaléka futott az emulátoron, valamint a lemezegység használatához szokottak is a kazettás magnóról voltak kénytelenek a programokat betölteni. (De meg kell jegyezni, hogy a játékok lelkes hívei még mindig ezt használják mert ezekhez a programokhoz jobb emulátort még nem készítettek!)
Aztán teltek-múltak a hónapok, és megjelentek a piacon az első szoftver emulátorok. Ezek természetesen nem tudták felülmúlni hardver testvérüket, de a kalózmásolatok miatt sok értékes Bartók-bankót spórolhattunk meg.
Eljött az 1991-a év, és a MICROTEAM kiváló fejlesztői csapata megjelent a SINCLAIR ZX SPECTRUM + INTERFACE 1 + MICROTEAM FX.4 PRINTER SIMULATOR version 2.0 szoftver emulátorral.
Biztosan mindenkiben felmerül a kérdés, hogy miben múlja felül az új változat társait? A program egy már közkézen forgó szimulátor továbbfejlesztett változatának tekinthető, újdonság viszont - ahogy a nevéből is kiderül - a lemezmeghajtók és a nyomtató kezelése. Kétféle változata jelent meg: a 128 Kbyte-os alapgépeken is futó szimulátor (SP.COM), illetve a memóriabővítővel ellátott gépekhez készített rendszerbővítő (SPE.EXT). (Indítása betöltés után az :SP paranccsal lehetséges.) A köztük lévő különbségek: az utóbbi képes a RAMDISK kezelésére, és szabadon kiléphetünk EXDOS-ba is az [Esc] leütésével, akár egy futó program közepén is.
"A program készítésében az elsődleges szempont az új interface-ek minél jobb kihasználása volt" - írja a MICROTEAM a programhoz mellékelt leírásában, melyet fájl formájában kap meg a felhasználó (SP.TXT). Ez a dokumentáció pont olyant, amilyenre az ember vágyik: nem hosszú, nem rövid, és minden fontos tudnivaló kiolvasható belőle.
Helyezzük nagyító alá az emulátort! Az első hiba, hogy a program nem színhelyes: a színek elérhetők, de más attributumbájtokkal. (Ennek részleteibe itt és most ne bonyolódjunk bele.) A FLASH illetve a BRIGHT utasítás nem használható, viszont 16 helyett 256 keretszín állítható elő. (A BORDER színe gépi kódú programoknál gyakran változik, ami néha zavaró.)
A szoftverek közül a Basic nyelven íródottak mindegyike rendesen fut, kivéve azokat, amelyek gépi kódú utasításokat, illetve az IN, OUT stb. utasításokat használnak. A portok olvasása és írása gépi kódban csak külön rutinok írásával oldható meg, illetve a megfelelő ROM rutinokat hívhatjuk segítségül. (A billentyűzetet például ROM rutinokkal gond nélkül olvashatjuk, de közvetlenül a portok olvasásával nem!) A gépi kódú programok közül azok sem futnak, amelyek letiltják a megszakításokat, ezért nem fut a játékprogramok nagy része sem. Ugyanakkor gond nélkül használható néhány felhasználói program: a MicroProlog, a Tasword Two, a Hisoft Pascal, a Masterfile, a Supercode, a Vu-Calc stb., nem fut viszont a Tasword Three, a Beta Basic, a Melbourne Draw, az Artist, az Art Studio. Látni kell viszont, hogy az emulátornak köszönhetően így is jelentősen bővül az ENTERPRISE-on futtatható komolyabb alkalmazások száma. (A MICROTEAM gárdája elsősorban a felhasználói programok futtatásához ajánlja az emulátort.)

Essen szó arról is, ami igazi újdonság az eddig megszokott software emulátorokhoz képest, azaz a microdrive és a nyomtatókezelésről. Sajnos, nem minden Intarface 1 utasítás működik a MICROTEAM programjában, és a gépi kódú kompatibilitás sincs megoldva. Ezen okból kifolyólag nem működik a már említett Tasword Three program sem, amely a microdrive-ot gépi kódból direktben írja. Itt is találkozhatunk azzal a nehézséggel, hogy néhány utasításnál a keretszín (BORDER) megváltozik.
A CAT (katalógus, EXDOS-on a DIR parancsnak felel meg) utasítás használható. Formája megfelel a Spectrum-nál megszokottnak, amely természetien mindes utasításnál elmondható. A parancs után álló azám adja meg, hogy melyik meghajtóról kérjük a lemezen található programok listáját (CAT meghajtószám). Ez egy egytől ötig terjedő azám lehet. (1=[A:], 2=[B:] ... 5=[E:) Az ötös azám - mint a teszt elején említettem - csak memóriabővítővel ellátott gépeken alkalmazható, hiszem ez a RAMDISK-et jelenti. Például a "CAT 3" utasítás az ENTERPRISE "DIR C:" utasításának felel meg.
A programok kimentése illetve betöltése (SAVE, LOAD) szintár működőképes a Spectrum-nak megfelelő formátumban:

LOAD * "M"; a megfelelő microdrive száma;"a betöltendő program neve {max. 8 karakter hosszú}"

továbbá

SAVE * "M";d;"programnév"

A microdrive-on természetesen mindig a lemezegységet kell érteni!) Ha egy programot rögzítünk, majd az említett CAT utasítással megnézzük a lemez tartalmát, akkor láthatjuk, hogy a lemezen ZXF kiterjesztéssel szerepel. A szimulátor ilyen kiterjesztést ad minden fájlnak. Ha a kimentett program neve 8 karakternél rövidebb, akkor aláhúzásjelekkel tölti ki az üres részeket.
Betöltéskor elegendő a kimentett program eredeti nevét megadni, azaz az aláhúzásjeleket, a kiterjesztést nem kell kiírnunk. A SAVE és LOAD utasításokhoz kapcsolódik a VERIFY parancs, amely szintén használható, viszont valamivel lassabb, mint az eredeti Spectrum-on. (Huszonöt másodperc alatt 16KB-ot tudunk ellenőrizni.)

A MICROTEAM emulátora minden olyat tud a printer-kezeléssel kapcsolatban, amit az általuk (a Spectrum gépekhez) forgalmazott FX.4 EPSON-nyomtatóvezérlő interfész ismer, és gépi kódból is írhatunk a nyomtatóval. A nyomtatókezeléshez először ismernünk kell magát az interfészt. A V3.FX típusú interface a SINCLAIR ZX Spectrum számítógép és az EPSON gyártmányú FX-80 printer illesztését valósítja meg.
Ismerkedjünk meg az interfész bájtatnak használatával!

A 128 KB-as alapgépen futó verzió az ESC billentyű lenyomásakor rákérdezés nélkül reset-el: programjainkat, adatainkat a kisujjunkkal a halálba küldhetjük. A fejlesztők arra is gondolhattak volna, hogy nem minden ENTERPRISE-os ismeri a Spectrum billentyűzetét, jó lenne on-line help formában segítséget kapni a billentyűk elhelyezkedéséről.
Összefoglalva: A MICROTEAM programja egy újabb mérföldkő a Spectrum emulátorok fejlődésében, apró, de nem megoldhatatlan hibákkal. Egy biztos: a printer kezelésében minden eddig ismert lehetőséget meghaladó eszközhöz jutottunk. A játékos kedvű felhasználók pedig továbbra is csak a hardver emulátorra, illetve az ENTERPRISE-on futó Spectntm átiratokra támaszkodhatnak.

Jelentős csúszással végül megjelent a hardware-es emulátor is, de magas ára, és kényelmetlen kezelhetősége miatt nem váltotta be a hozzá fűzött reményeket. Eközben szép számmal gyarapodtak a Spectrum-ról átírt játékok, az Enterprise software-parkjának kb.90%-a (!) Spectrum átirat. Hogy ez az Enterprise szemszögéből mennyire jó, azt mindenki döntse el maga... Szerintem a gép sikerét (Magyarországon és a nemzetközi porondon is) jelentősen segítette volna, hogyha a gép képességeit kihasználó, színvonalas játékokat készítettek volna hozzá. A gép forgalmazásának kezdetén kapható játékok azonban messze nem mutatták be a gép képességeit, és erre a Spectrum átiratok sem voltak alkalmasak...
Fontos még megemlíteni, hogy a hardware-emulátort a Zozosoft némi munkával egy igazán jól használható eszközzé tette! Ha a gép forgalmazásának kezdetén egy ilyen színvonalú emulátort kínáltak volna a géphez (valamelyest olcsóbban), máshogy is alakulhatott volna az Enterprise üzleti sikere.

Végezetül íme egy érdekes kép, melyen azt láthatjuk, hogy az emulátor-on egy emulátort futtatunk! "Perverzebbek" fokozhatják a "kéjt", ha telepítenek egy PC emulátort (pl. Virual PC-t), futtatnak rajta egy Windows-t, azon futtatják az Ep emulátort és azon futtatják a Spectrum emulátort...