Ez a cím biztos sokaknak ismerős (már akik olvasták az SPV-t),
akiknek nem, azoknak a kedvéért lesz majd egy-két idézet az SPV-ből).
Amióta csak létezik az ENTERPRISE, azóta próbálkoznak a SPECTRUM programok
futtathatóvá tételével. Erre két módszer létezik:
- A program átírása: nem túl egyszerű dolog, és nem is túl gyors, mégis
idáig ez a legjobb megoldás, mert például csak így lehet lemezről is betölteni
a programokat.
- Emulátor használata: léteznek software emulátorok, ezekkel az a probléma,
hogy csak kevés program fut rajtuk, azok sem színhelyesen, mert a hardware
a különbségeken nem segít. Létezik még az 'a STUDIO'-féle hardware emulátor,
de az jó néhány software és hardware hibát tartalmaz. Hogy melyek ezek a hibák,
mindjárt megnézzük, de előbb lássuk csak: miért is íródott ez a cikk? Az világos,
hogy egyszerre sok program futtathatóvá tétele kevés fáradtsággal csak emulátorral
lehetséges, mert az átírást viszonylag kevesen művelik, és az átiratok terjedési
sebessége sem túl nagy. Pedig még mindig jónéhány SPECTRUM-os létezik, vagy
azok "hagyatékaiból" (nem valószínű, hogy régi kazettáit felhasználja
például az új AMIGA-jához adathordozónak) szerezhetünk igen sok ENTERPRISE-os
berkekben ismeretlen, mégis elég jó programokat. Akkor tehát csináljunk
egy új emulátort!
Az világos, hogy ennek az emulátornak hardware emulátornak kell lennie, erre
a célra, megfelel az 'a STUDIO' féle emulátor (némi átalakítás és javítgatás
után), azután már csak egy új software-t kellett írni a hardware-hez. Most
pedig hasonlítsuk össze az eredeti és az átalakított emulátort:
Kezdjük a bekapcsolásnál: "...a színes ENTERPRISE felirat
helyett az 'a STUDIO' SPECTRUM EMULATION felirattal jelentkezik be. Ettől
kezdve már nem ENTERPRISE, hanem SPECTRUM-ként működik." (SPV) Ezzel
ellentétben az átalakított emulátor látszólag semmit nem csinál, de ha kiadunk
egy :HELP parancsot, akkor máris feltűnik a "ZX version 4.0" sor,
ebből már mindenki (remélhetőleg) rájön arra, hogy az emulátorból már egy
rendes rendszerbővítő lett. Adjuk ki tehát a :ZX parancsot, aminek következtében
SPECTRUM-má butítjuk gépünket, de csak akkor ha engedelmeskedünk a felszólításnak:
"Kapcsold be az emulátort!" Most biztos sokan kíváncsiak arra, hogy
miért került egy kapcsoló is az emulátorra? Nos azért mert egy hardware tervezési hiba miatt (ld. lésőbb) nem lehet az emulátor
minden részét bekapcsolva tartania gép normál működése mellett, mert nem valószínű,
hogy amit ilyenkor írunk az 5800h-5AFFh tartományba, azt is konvertálni kell,
mint egy SPECTRUM attribútum bájtot. (Gyengébbek kedvéért: ha nemcsak akkor
kapcsoljuk be, amikor erre a program felszólít, akkor nagyon látványos elszállásokban
gyönyörködhetünk.) Ha sikerült átjutnunk SPECTRUM módba, akkor ettől fogva
a reset SPECTRUM-resetet eredményez, ellentétben az eredetivel, ahol teljes
hidegindítás történt, tehát csak hosszabb-rövidebb (a memória méretétől és
a használt teszt-programtól függő) memória-teszt után jutottunk újra SPECTRUM
alapállapotba. De hogyan lépünk ki az emulátorból? Az eredetinél sehogyan,
az átalakítottnál csak kapcsoljuk ki a kapcsolót és nyomjuk meg a reset-gombot,
és máris visszajutottunk abba a programba, amelyikből meghívtuk az emulátort
(az érintett program szemszögéből nézve csak egy melegindítás történt), tehát
ha EPDOS-ból hívtuk, akkor EPDOS-ba tér vissza, ha BASIC-ből, akkor BASIC-be,
ráadásul még a BASIC program(ok) is megmarad(nak)!!! Most már be is kellene
tölteni valami programot: ..."Nagy kár, hogy az EXDOS-t nem használhatjuk,
pedig milyen klassz is volna, ha a SPECTRUM programokat lemezről is töltögethetnénk!!!",
írták az SPV 15. számában az eredeti EMULÁTOR-ról. Lássuk, hogyan megy ez
az átalakítás után: ha kiadjuk a LOAD "" utasítást, akkor egy kis
ablak jelenik meg a képernyő alján, benne a "Fájlnév:" felirattal...
...Az okosabbak már biztos kitalálták miről van szó, de a gyengébbek kedvéért
eláruljuk, hogy egy teljesen szokásos EXOS fájlnév megadása segítségével,
onnan tölthetjük a SPECTRUM programokat ahonnan akarjuk: magnóról, lemezről,
vagy akár a soros vonalról is. (Ha nem adunk meg kiterjesztést, akkor .ZXF
lesz.) Természetesen a szokásos kettőspont segítségével EXOS parancsot is
kiadhatunk, de kilépésre ne használjuk ezt a lehetőséget, csak akkor ha direkt
össze akarjuk kócolni az EXOS lelki világát (rendszerszegmensét). Most már
csak egy kérdés maradt, nevezetesen az, hogy hogyan hozzuk át ENTERPRISE formára
a SPECTRUM programokat. Be lehet pötyögni az SPV 18. számában lévő programot is, de egyszerűbb ha megnézzük, hogy mit takar a HELP lista "SCOPY version
1.0" sora (ugyanazt, csak mindig kéznél van). Aki már foglalkozott eme
program használatával, már biztosan tudja, hogy például egy három fejléces
fájlból álló programból hat fájl keletkezik, és már kezd rémüldözni, hogy
ennyi fájlnevet kell beírni. Az emulátornak két hasznos tulajdonsága is van
e probléma megoldására:
Ahhoz, hogy egyszerre használhassuk az emulátort és az EXDOS-t,
mindkét kártyát csatlakoztatni kell a gépre, erre a célra a legjobb megoldás
ha veszünk egy buszbővítő kártyát Mészáros
Gyulától. Így már több kártyát is csatlakoztatni tudunk gépünkhöz. Ha már
ilyen jól tudunk töltögetni, akkor éppen itt az ideje, hogy játsszunk valamit:
..."Sajnos az EMULATOR használatával elesünk mind a belső, mind a külső
botkormányok használatától" (SPV). Ezek után már mindenki sejti, hogy
változás történt ezen a téren is:
SPECTRUM joystick |
Billentyűk
|
ENTERPRISE joystick
|
||||
bal
|
jobb
|
le
|
fel
|
tűz
|
||
CURSOR / AGF / PROTEK |
5
|
8
|
6
|
7
|
0
|
INTERNAL + ALT
|
SINC. 1 / INTERFACE II. LEFT |
1
|
2
|
3
|
4
|
5
|
EXTERNAL 1
|
SINC. 2. / INTERFACE II. RIGHT |
6
|
7
|
8
|
9
|
0
|
EXTERNAL 2
|
(Általában ha csak annyit írnak ki, hogy SINCLAIR vagy INTERFACE II., akkor a SINCLAIR 2-nek megfelelő EXT 2 használható, de kivételek vannak.) Mivel ezek a joystick illesztők billentyűzet párhuzamosak, ezért a billentyű definiálásnál is felhasználhatjuk a joystick-okat. (Ez kevés átiratra teljesül, míg emulátoron minden programra amiben lehet billentyűket definiálni). Ha már az irányításnál tartunk, akkor íme a legjobb példa a hardware és software hibák együttesére: ..."Gyakran előfordul, hogy az alsó sor a "B" billentyűtől kezdődően "elhal". A dolog érdekessége, hogy időnként a felettük lévő billentyűk (pl. az 'M'-nél a 'K', az 'N'-nél a 'J' a 'SPACE' helyett az 'ENTER', stb.) kezdtek el jól, máskor pedig tudathasadásosan működni. Érdekes, hogy ez csak a gépi-kódú programok futtatásakor jött elő!" (SPV). A jelenség magyarázatához ismerni kellett volna) a SPECTRUM billentyűzet figyelését, amely az - ENTERPRISE-éhoz hasonlóan mátrix szervezésű, de a mátrix sorát nem egy külön OUT utasítással közöljük, hanem kihasználták a Z-80 ama tulajdonságát, hogy az IN/OUT műveletek esetén a címbusz alsó 8 bitje a periféria címet tartalmazza, míg a felső 8 bit az 'A' regiszter beolvasás előtti értéket tartalmazza (IN A,(n)), míg az IN r,(C) típusú utasításoknál a 'B' regiszter kerül hasonló helyzetbe, és ez a 8 bit szabja meg, melyik sorokat kell beolvasni (amelyikekhez tartozó bit 0 értékű), ez az egész lekérdezés a 254-s (0FEh) porton keresztül történik. És most lássuk milyen hibák voltak az emulátorban: 1. Elfelejtették rákötni az A15-öt az egyik IC-re, így a SPACE sorához tartozó bit mindig 1, innen ered az "elhalás". 2. Nem vették figyelembe az ENTERPRISE lapozásos technikájának a következményeit: az A14 (ez a bit az ENTER sora) és az A15 nem közvetlenül a Z-80-ból jön, hanem a DAVE-ből, és a belapozott szegmensektől függ. Ennek a két pontnak az eredményét vizsgálva a két érintett bitre, a következő táblázatot kapjuk:
SPACE sora
|
ENTER sora
|
Z80-ból
|
emulátoron
|
SPACE sora
|
ENTER sora
|
igen
|
igen
|
00
|
11
|
nem
|
nem
|
igen
|
nem
|
01
|
10
|
nem
|
igen
|
nem
|
igen
|
10
|
11
|
nem
|
nem
|
nem
|
nem
|
11
|
10
|
nem
|
igen
|
Ezeknek a hibáknak az eredményét nyilván a készítők is tapasztalták, de mivel nem találták ki az okot, így azt csinálták, hogy a programban egy AND 3Fh utasítással mindkét bitet nullázták, magyarul mindkét sort ha kell, ha nem beolvassa, innen ered a tudathasadás (amely nagyon előnyös" pl. a THE TRAIN című programban, mivel a tűz (ENTER) és a PAUSE (SPACE) egy billentyűre kerül...), de mivel nem minden programrészbe tették bele ezt az utasítást, így lehetséges, hogy előjön az "elhalás". Az átalakításnál helyére kerülő címvezeték és az új programban megfelelően összeválogatott szegmenseknek köszönhetően ez a hiba is eltűnt. Mellesleg helyesen kezeli billentyűzet figyelés címszó alatt az IN B, (C), IN F,(C), INI és az IND utasításokat is, aminek következtében több program, amelyik a menünél látszólag lefagyott, hajlandó elindulni.
Van még egy nagy közellensége az emulátoroknak: a kettes megszakítási
mód (IM 2), amelyet a SPECTRUM játékok nagy része használ (SPECTRUM-on csak
így tudnak saját megszakítási rutint alkalmazni, mivel az IM 1 belépési pontja
(38h) a ROM-ban van), aminek következtében eszükbe sem jut az emulátoron működni...
...Természetesen az új program ezt is megoldja, így máris játszhatunk például
az ACE OF ACES című programmal (amely valószínűleg a repülő szimulátorok kedvelőinek
a kedvence lenne, ha átírták volna), vagy a STREET BASKETBALL-lal, MATCH DAY
1-gyel, stb.
Köztudott, hogy a SPECTRUM ULA-ja ismeri a FLASH-t (villogás), míg a NICK
nem, ezért az eredeti emulátor figyelmen kívül hagyja, ha egy színnek villognia
kellene: "Ez a játékoknál nem túl érdekes, de az kifejezetten kellemetlen,
ha a szerkesztő-sorban elvész a kurzor!! Ha legalább inverz volna!" (SPV)
Ebből már mindenki kitalálhatja, hogy a villogó attribútumok inverzek lesznek.
(Lehetnének villogóak is, de az eléggé a sebesség rovására menne.)
Idáig tarlott az eredeti emulátor hibáinak kijavítása, most
jönnek az "extrák": akinek a közelében akad SPECCY DOS-sal felszerelt
SPECTRUM, az bizonyára ismeri a MAGIC 2.4 programot is, amelynek a lényege
az, hogy mikor megnyomjuk a MAGIG gombot (NMI), akkor lementi lemezre a processzor
állapotot és a teljes RAM-területet, és ezt később visszatöltve onnan folytathatjuk
a játékot, ahol abbahagytuk. Az új emulátor-program képes betölteni az ilyen
MAGIC-fájlt (természetesen előbb át kell rángatni EXDOS lemezre a SEC nevű
programmal, de abból is egy módosított változat kell, amely képes 48 Kb-nál
nagyobb fájlokat is kezelni. Ezt a szerkesztőségtől be lehet szerezni.). Ahhoz,
hogy egy fájlt MAGIC-fájlnak kezeljen, betöltéskor a fájlnév első karakterének
'$'-t adjunk meg (ez nem számít bele a tényleges névbe!) Ez még nem biztos,
hogy mindenki számára valami nagy dolgot jelent, de a most következő biztosan:
ha egy gépi kódú program közben megnyomjuk a HOLD (PAUSE)+STOP billentyű-kombinációt,
akkor érdekes dolog történik: megjelenik a szokásos ablak a "Fájlnév:"
kérdéssel... Itt három dolgot lehet cselekedni:
1. Megadunk egy szokásos fájlnevet, ekkor a MAGIC fájlokéhoz hasonló formában
lementődik a program (ez azt jelenti, hogy a '$' segítségével be tudjuk tölteni
az emulátoron, de SPECTRUM-on ne is próbálkozzunk), aztán folytatódik a futása
(ellentétben a SPECTRUM MAGIC-kel, az reset-el mentés után).
2. A '$'-al betölthetünk egy MAGIC-fájlt, ez főleg bővítős gépeken jó, például
egy akciójáték közben egy rázós hely előtt lementjük a programot a RAMDISK-be,
azután ha elontjuk, igen gyorsan visszatölthetjük az állást, és máris lehet
újra próbálkozni.
3. ALT+P-vel kezdve egy "POKE"-fájlt tölthetünk be, amellyel könnyen
hasznosíthatjuk a SPECTRUM kiadványokban szereplő örökélet és egyéb POKE-k
százait. Ilyen fájlt bárki könnyen tud készíteni például az ASMON-nal:
DW cím 1
DB ertek1
DW cim2
DB ertek2
...
END
vagy BASIC-ben:
10 open #1:"nev" access output
20 print #1:word$(cim1);chr$(ertek1);
30 print #1:word$(cim2);chr$(ertek2);
...
1000 close #1
Nem biztos, hogy azonnal látszik a POKE-k hatása, ezért érdemes
kitartóan kísérletezni, például több helyen megpróbálni a POKE fájl betöltését:
játék közben, a menüben, stb., vagy keresni egy másik POKE-t erre a játékra.
Ha egy program nem hajlandó működni, akkor általában igen egyszerűen működővé
tehetjük (sokkal könnyebb rávenni egy programot az emulátoron való működésre
mint átírni, mivel a legnehezebb résztől, a színek átírásától megmenekülünk.)
1. Ha a program az első egy-két fájl után megáll, akkor valószínűleg saját
betöltő-rutint használ, ami közvetlenül a magnóról tölti az adatokat, mivel
valószínűleg nem akarjuk a SPECTRUM magnó hangját hallgatni, ezért térítsük
vissza az eredeti ROM-rutin használatához, ehhez bemutatjuk a két legelterjedtebb
ROM-rutin hívást, és ha a programban valami ehhez hasonlót találunk, csak
a CALL utáni cím mutat máshova, akkkor a CALL utáni cím módosításával általában
már rendben fog működni a program.
LD DE,nnnn LD IX,nnnn LD A,x SCF CALL 0556H |
LD DE,nnnn (hossz) LD IX,nnnn (betöltési cím) LD A,x (x általában 255) SCF I NC D EX AF,AF' DEC D CALL 0562H |
A legtöbben úgy tudják, hogy a SPECTRUM-on (48 Kb-oson)
csak a 254-es port létezik, de ez nem egészen így van: az ULA készítői az
egyszerűségre törekedtek, ezért a 254-es portnak megfelelő funkciók bármelyik
páros számú portop elérhetőek, és némelyik program nem a 254-es port-ot használja,
tehát ha valamelyik program betöltődik, és látszólag minden rendben van (nem
lesz "maszatos" a képernyő), csak épp billentyű figyelés nincs,
akkor némi ASMON, FENAS, stb. használatával nézzük meg, hogy ilyen esetről
van-e szó, ha igen, akkor vegyük rá, hogy a 254-es port-ot használja. A páratlan
portoknak is van szerepük: általában 255-öt lehet ezeken beolvasni, de előbb-utóbb
biztos, hogy egy 56-os érték is jön (legalábbis azon a SPECTRUM-on amin én
próbálkoztam), tehát az ilyen utasításokat cseréljük le LD r,56 utasításra.
(Figyelem! A KEMPSTON joystick illesztő az 1Fh (31) port-ot kezeli, ezért
az erre vonatkozó utasításokat hagyjuk békén!)
3. A leggonoszabb eset az, ha a program olyan ROM-belépési pontokat használ
ami az emulátor ROM-jóban nem egészen ott van. Ilyenkor lehet keresgélni az
elszállás okát, de nem árt ha van egy kimentett SPECTRUM ROM-unk a különbségek
kiderítésére.
4. A program fut, de nagyon lelassul. Ezek általában a "zenélős"
programok, amelyekben nem csak egyszerű piff-puff hangok vannak, hanem folyamatos
zene. Ezekkel a programokkal csodát tehet, ha az OUT (0FEH),A utasításokat
OUT (0ABh),A-ra javítjuk. Itt jegyeznénk meg, hogy igen sok "kuka"
átirat van forgalomban, amelyekben így megtalálhatjuk az elveszett zenét.
Az SPV egy sajtóhibájának következtében pedig több programban 0ABh helyett
0A7h szerepel, és ezért nincs hang!
Összegezve: érthetetlen, hogy a SPECTRUM-emulátor készítői miért csapták össze ennyire ezt a kiváló hardware emulátort. Talán ha még egy hónapig dolgoztak volna rajta lehet, hogy hasonló eredményre jutottak volna. (Nekünk egy hétbe sem telt). Akinek szüksége van az új Emulátor-programra, keresse fel a szerkesztőséget. Emulátorát díjmentesen átalakítjuk, és az új programot beégetjük a régi helyére.
Enterpress 93/4. - Zozohard
Átalakítási útmutató
01. Eredeti állapot, mindkét oldalról, plusz egy "térkép" a kapcsolási rajz IC számozása szerint:
02. Első lépés az EPROM kiforrasztása, amit a rossz minőségű nyák miatt nagyon óvatosan kell végezni, különben a képen látható módon feljönnek a vezetékek
03. EPROM foglalat átalakítása 64KB-os EPROM fogadására. A foglalat beforrasztása előtt át kell vágni a 28-as és 1-es lábakat összekötő vezetéket, a piros X-el jelölt helyen. Ezután beforrasztható a foglalat, majd ezután az EPROM (U1) 1-es lábára rá kell kötni az A15-ös címvezetéket a képen látható módon.
04. U9 jelű LS374-esnél nyák hiba kijavítása: 19-18-as lábak közötti vezetéket át kell vágni a képen pirossal jelölt helyen. Ezután az U9 18-as lábára rá kell kötni az A15-ös címvezetéket, célszerűen az előző pontban az U1-es lábára kötött vezetéket folytatva. Harmadik képen látható a kész drótozása az A15-nek.
05. Tervezési hiányosság kijavítása: a port dekódolást végző U2 engedélyezéséhez nem elegendő a gyárilag bekötött -IORQ jel, ezenkívül szükséges -RD/-WR jelek egyikének aktivitása is. Ezen jelek figyeléséhez plusz logikai kapuk kellenek egy 74LS32 és egy 74LS86 IC formájában. Ezeket "emelet ráépítés" formájában lehet bekötni. Az emulátor működéséhez nem szükséges, de kiegészíthetjük egy aktivitást jelző LED-del is. Az első képen látható a plusz alkatrészek elhelyezése, és az új alkatrészekkel kiegészített IC számozás is.
Az új U17-es jelet kapott LS32-est célszerű U15 tetejére telepíteni, mivel így a tápfeszültségen kívül a -RD és -WR jel is közvetlenül a "földszintről" elérhető. Tehát a 2-es (-RD), 7-es (GND), 12-es (-WR) és a 14-es (VCC) lábakat forraszuk össze az alatta lévő U15 azonos számú lábaival. A többi lábat hajlítsuk fel, hogy ne érintkezzen az alatta lévőkkel.
U17 1-es és 13-as lábát kössük össze, majd erre vezessük rá a -IORQ jelet, amit az U14 11-es lábától tudunk idevezetni (a képen fehér drót). U18 jelet kapott LS86-os az U11 tetejére kerül, itt csak a tápfeszültség jön a "földszintről", 7-es és 14-es lábat kell összekötni az alatta lévő U11 megfelelő lábaival, a többit fel kell hajlítani.
U17 3-as lábát össze kell kötni az U18 1-es lábával, az U17 11-es lábát az U18 2-es lábával.
Az U18 3-as lábán jön ki a kombinált engedélyező jel amit az U14 13-as lábára kell kötni.
Második-harmadik-negyedik képen látható a kész "emelet" több nézetből. Ötödik képen látható az U14-nél a vezetékek bekötése. A régi engedélyező jelet le kell vágni az U14 13-as lábáról, ennek helye van jelölve a hatodik képen pirossal.
Ha LED-et is szeretnék, akkor azt az U11 eddig nem használt 8-as lábon lévő kimenetére lehet kötni, másik pólusát egy 220 Ohmos ellenálláson keresztül a +5 Voltra. Bekötése szintén látható a képeken.
06. Az EPROM címzésének módosítása. Ahhoz, hogy a teljes 64KB-os terület elérhető legyen, el kell vágni az U3 12-es lábáról az U4 3-as lábára tartó jelet (-A15) el kell vágni a piros X-el jelölt helyen, majd az U4 3-4-es lábát össze kell kötni, képen világos zöld körben.
Az Emulátor ROM-ja eredetileg a 30H szegmenstől látszik. Ha olyan bővítős EXDOS kártyával együtt akarjuk használni, ami szintén tartalmaz 30H szegmensű EPROM helyet, akkor ütközés lenne. Ennek feloldására átállíthatjuk az Emulátor ROM-ját 70H kezdetűre: ehhez a kék X-el jelölt helyen vágjuk át az U3 6-os lábáról az U4 1-es lábára tartó vezetéket (-A20), majd az U3 5-ös lábát (A20) kössük össze az U4 1-es lábával (sötétzöld körrel jelölve). (Szükség esetén hasonló módon más címre is át lehet kódolni.)
07. Már csak a megfelelő ROM fájlt tartalmazó EPROM-ot kell berakni a helyére és készen is vagyunk.
Amikor utólag, 2005-ben ZozoSoft elkészítette kártya kapcsolási rajzát, akkor derült fény még egy súlyos tervezési hibára: Bár az NMI generálás szoftverből ki/bekapcsolható a kártya egyik portján keresztül, de ez a funkció nem igazán működött, ha ki is kapcsolta az ember, 1-2 másodperc múlva újra bekapcsolt... Ezért a '93-as átalakításnál (amit mostanában csak ISS2 változatnak nevezünk), egy kapcsoló került az NMI vezetékre, a ROM program felszólít induláskor a bekapcsolásra, ill. ha kikapcsoljuk, és úgy nyomunk resetet, akkor visszajutunk EP módba. A hiba ami miatt nem működött szoftveres kikapcsolás: a tervezők nem vették figyelembe a Z80 azon tulajdonságát, hogy az IORQ nem csak port IO műveletnél aktív, hanem megszakítás elfogadás során is. Tényleges IO művelethez szükség van még az RD/WR jelek egyikének aktivitására is. Mivel erre nem figyeltek, így a kártya engedélyező regisztere véletlenszerűen felülíródott, aminek jó nagy fagyások lett az eredménye, ha nem az Emulátor ROM futott éppen. A hiba pár plusz kapu beépítésével javítható. Ennek a változatnak a neve lett ISS3. Ennél már nincs szükség a kapcsolóra, mindent a szoftver tud intézni. A kapcsolási rajz már erről készült:
Íme a Spectrum Emulátor kapcsolási rajza!
Az IC-k úgy lettek beszámozva, hogy csatival felfelé nézzük, az EPROM-tól kezdve (U1) sorban balról jobbra soronként. Nagyjából így helyezkednek el a rajzon is. Az U9-nél már helyesen van bekötve a 18-as láb. A 4.0-ás ROM használatához az NMI vezetékre kell egy kapcsolót rakni, hogy fel lehessen függeszteni az Emulátor működését, mielőtt összedönti az EXOS lelkivilágát.
A lap alján az U17,U18 jelű kapuk a plusz kiegészítés, ami a port címdekódolás biztonságosá tételéhez kellett.
Az eredeti 32 KB-os Eprom le lett cserélve 64K-sra (27C512). Ehhez az U1 1-es lábát az A15-re kell kötni, eredeti emulátor átalakítása esetén 1 vágás és 1 átkötés. Kell még a címdekódolás kiterjesztése 64KB-ra, ehhez az U3 12-es lába és az U4 3-as lába közti vezetéket kell elvágni, az U4 3-as lábát összekötni a 4-es lábbal. Ez a rajz már tartalmazza ezeket a változásokat.
Opcionális kiegészítés:
1) U15 eredetileg nem használt 8-as lábára ráköthető egy LED ami jelzi, az NMI generálás engedélyezett állapotát jelzi.
2) Microteam (klón) EXDOS kártyával együtt történő használat esetén lehet egy kis probléma: ezen kártyák egy részén 10H-20H-30H szegmens tartományban vannak a bővítő Epromok. Az Emulátor Epromja is 30H-as lenne. Ilyen esetben az U3 6-os lábáról jövő vezetéket el kell vágni, és az U4 1-es lábát az U3 5-ös lábbával összekötni. Így az Emulátor Epromja a 70H-es című lesz.
Akinek 60H-20H-70H kiosztású EXDOS-a van, annak természetesen az eredeti variáció a jó. A rajzon az eredeti látható, szövegben említve az átcímzés lehetősége.
Port kiosztás (olvashatóak):
NMI kiadása:
Az NMI kiadásakor tárolódnak el az adat és címvezetékek a 40H-42H portokra.
A SPECTRUM Emulátor eredeti (3.5) és javított (4.0) ROM-jai.
SPECTRUM Emulátor 4.1 ROM ("Deluxe" változat)
4.1-es ROM már az ISS3 változathoz készült. Először is mivel nincs már kapcsoló, így az EP módhoz úgy lehet visszatérni, ha a STOP gomb nyomvatartása közben nyomunk egy resetet.
Az új ROM segítségével futtathatóvá válnak az emulátorral a TAP és TXZ file-ok. TZX-nél természetesen adódik némi megkötés, általában csak azok a programok mennek, amik a Spectrum ROM LOAD rutinját használják, de a ROM TZX-ből kezeli a Turbo Data Block-ot, és a Pure Data-t, bár közvetlenül töltésnél nincs ennek sok jelentősége, mert ilyenre úgyis spéci loadderrel hivatkoznak. A World of Spectrom-on-on általában az eredeti mindenféle extra másolásvédett loaderes változaton kívül fent szokott lenni feltört is, és általában van TAP változat is, az a biztos... Az SCOPY-val lehetséges az ilyen fájlok szétbontása, arra az esetre ha valaki netán újabb átírat készítéséhez érezne kedvet! TAP/TZX fájlból közvetlenül töltve is konvertálva jelennek meg a betöltő képek.
Tesztelési célzattal tettem bele egy kis cheat-ot, amikor az Emulátor bekapcsolására vár, a fel+le billentyűk egyszerre lenyomásával hajlandó elindulni a HW nélkül is, persze túl sok mindenre nem használható így max. BASIC-re (lehet próbálgatni a betöltést, ezért tettem bele). Eddig egy játékra (POGO) akadtam, ami végig ROM rutinokat használ, így hajlandó elindulni. Persze attribútum konvertálás nélkül nincs benne túl sok élvezet...
A Spectrum billentyűzetet kevésbé ismerők kedvéért
:ZX fájlnév
formában is indítható az emulátor, értelemszerűen ekkor egyből betölti a megadott programot. Így nem kell bajlódni a LOAD parancs megkeresésével. (Meg így majd bele lehet tenni az EPDOS-ba is, hogy a Spectrum progik onnan is indíthatóak legyenek.)