MULTIFACE

A perifériák királya? - tették fel sokan a kérdést néhány évvel ezelőtt, amikor a ROMANTIC ROBOT UK. Ltd. megjelent a piacon "varázsdobozával".
Mit is tud valójában ez a készülék? Nos elsődleges és legfontosabb tulajdonsága a teljesen univerzális és 100 százalékosan automatikus SAVE funkció, amelyet nem csak magnetofonra tud végrehajtani, hanem microdrive-ra és a legfontosabb lemezes perifériákat kezelő Interface-ekre is. Ezen túlmenően tervezői ellátták KEMPSTON típusú joystick csatlakozóval, valamint helyet kapott a készülékben 8K szabadon kihasználható RAM memória is, amely teljesen hozzáférhető, és a 128K Spectrum RAM disc-hez hasonlóan kezelhető.
Ha rendelkezünk ilyen készülékkel nem árt, ha megfogadunk néhány tanácsot, ugyanis a készüléken elhelyezett áramköri elemek hamar meghibásodhatnak, s az esetleges alkatrészcsere gondokat okozhat.
Először is, mielőtt a MULTIFACE-t a Spectrumra illesztjük, áramtalanítsuk a számítógépet, mivel ellenkező esetben készülékünk tönkre mehet. Ha a készülék illesztése megtörtént, a MULTIFACE kapcsolóját váltsuk 'ON' állásba, máskülönben működésképtelen. Ha joysticket is akarunk használni, úgy annak dugóját is csatlakoztassuk a MULTIFACE megfelelő aljzatába. Ha minden kész, bekapcsolhatjuk a számítógépet. Sajnos a MULTIFACE több verziója látott napvilágot, sőt igen sok "maszek" tákolmány is kifutott a felhasználók közé, ami nem mindig garantálja a hibátlan inicializálást, ezért előfordulhat, hogy a rendszer nem jelentkezik be. Próbáljuk megnyomni a MULTIFACE varázsgombját: Amennyiben véletlen színkombinációkon kívül más nem jelenik meg a képernyőn, áramtalanítsunk, húzzuk le a MULTIFACE-t az él-csatlakozóról, majd a bekapcsolási műveletet kezdjük előröl. Ha a rendszer ismételten sem állna fel, még próbálkozhatunk egy párszor, de előbb utóbb rá kell jönnünk, hogy a MULTIFACE javításra szorul, keressük meg a legközelebbi szakembert problémánkkal.

A MULTIFACE funkciói

A MULTIFACE aktivizálásához először is meg kell nyomnunk a varázsgombot, aminek hatására a legalsó sorban kis menü jelenik meg a képernyőn. A funkció kiválasztásához meg kell nyomnunk a megfelelő billentyűt.
A következőkben tekintsük át a lehetséges funkciókat:

A MULTIFACE Interface kompatibilitása

Beta-Disk Interface
A MULTIFACE kompatibilis a Beta 4.0 vagy magasabb verziókkal. A MULTIFACE-t a Spectrum és a Beta Interface közé kell elhelyezni. Ezen túlmenően szükséges egy kis változtatása MULTIFACE belsejében. Ezt célszerű szakemberrel elvégeztetnünk, de ha él bennünk a barkács-szellem, és vállaljuk a kockázatot, hogy biztosan nem okozunk kárt készülékünkben akkor próbálkozhatunk az átalakítással. Ha a műanyag doboz hátlapját eltávolítottuk, találunk egy kis vezeték ívet, közvetlenül a joystick csatlakozó aljzat mellett. Ezt a vezetéket vágjuk át. Igaz, hogy ezután a joystick interface működésképtelen lesz, de ez a kis műtét szükséges, mert egyébként a Beta-Interface működésében állnak elő zavarok. Természetesen a legcélszerűbb megoldás egy kapcsolót beépítenünk az átvágás helyére, így a kapcsoló ON állásában működik a joystick Interface, OFF állásban pedig a Beta Interface.

Microdrive
A MULTIFACE-t az Interface I mögé kell illesztenünk. A MULTIFACE kompatibilis az Interface I. összes verziójával.

OPUS Discovery
A MULTIFACE-t a Spectrum és az Opus Discovery közé kell beiktatnunk. Figyelem! Az Opus Discovery oldalán továbbmenő 'élcsatlakozó' a MULTIFACE-szel párhuzamosan nem használható.

Magnetofon
A MULTIFACE bármikor képes minden megkötöttség nélkül programot kimenteni kazettás magnetofonra. A kimentés a hagyományos vonalon történik. A kazettáról betöltött program bármikor átmenthető egyéb háttértároló eszközre (pl. microdrive-ra).

Wafadrive
A MULTIFACE a Spectrum és a Wafadrive közé, vagy a Wafadrive mögé is csatlakoztatható. A Wafadrive a MULTIFACE által automatikusan kiválasztott periféria, ezért vezérlése is automatikusan történik. Némelyik Wafadrive modell nem teljesen kompatibilis a MULTIFACE-szel, erről könnyen meggyőződhetünk, nézzük meg, hogy a Wafadrive hátsó részén a jobb alsó sarokban elhelyezett RS-232 csatlakozó busz felső sávjához milyen színű vezetékek csatlakoznak. Bíbor, vörös és fehér esetén a kompatibilitással problémáink lesznek.

Kempston Disk Interface
Ha 128K Spectrumot használunk 48K módban, a menüben találunk még egy (k)emp funkciót is, amely lehetővé teszi a Kempston Disk Interface aktivizálását. A MULTIFACE-t a Spectrum 128K és a Kempston Disk Interface közé kell illeszteni.

Javaslatok a MULTIFACE felhasználásához

A MULTIFACE varázsgombját bármikor megnyomhatjuk, függetlenül attól, hogy a program milyen típusa található a memóriában, vagy attól, hogy begépelt programról, vagy betöltött programról van-e szó. A MULTIFACE a memóriatartalmat tömörített RAM formában menti ki. A kimentés mindig 4 elkülönített részben valósul meg:
- betöltő BASIC; - képernyő; - főkód; - műveleti kód
Minden program esetén rendelkezésünkre áll egy teljes törlési lehetőség is. Hasznos, hogy a BREAK funkciót is aktivizálhatjuk bármelyik periféria működése alatt. Ha hiba fordul elő, visszatérünk a menühöz. Sajnos különböző rendszerek felhasználása különböző hibacsapdákat eredményezhet.
A Beta Disk Interface + Drive, valamint a Wafadrive kijelzi azoknak a file-oknak a nevét, amelyeket már kimentettünk. Mindkét rendszer megengedi, hogy felülírjuk az előzőleg kimentett file-t, vagy a file nevét átnevezzük.
Az Opus Discovery automatikusan felülírja az azonos néven előzőleg kimentett file-t.
A három rendszer közül egyik sem kezdi el a kimentést, ha a kimentés kezdeti pillanatában kevesebb hely áll rendelkezésre a háttértárolón, mint amekkora a program tömörített formájának a hossza.
A microdrive hibaüzenetek pl. 'Microdrive not present', 'File already exists' az ismert I/0 hibaüzeneteknek megfelelőek.
A MULTIFACE oldalán elhelyezett kapcsoló a MULTIFACE-t "láthatatlanná" teszi. Ez megszünteti annak a lehetőségét, hogy a MULTIFACE "összegabalyodjon" bármilyen software vagy hardware működésével. Ez akkor is hasznos lehet, ha futtatni akarjuk a MULTIFACE-szel kimentett, de még a memóriában lévő programunkat, mivel a mai programok többsége gyakran "befagy", a MULTIFACE aktív állapota mellett. Sok játék nem is indul el, ha a MULTIFACE aktív állapotban van, tehát induló játék esetében mindig legyen a MULTIFACE kikapcsolt állapotban. Ilyen esetben - a bevezetőben leírtaktól eltérően - a kapcsolót csak akkor váltsuk ON állásba, ha aktivizálni akarjuk a MULTIFACE 'RESET' gombot. Sajnos ezeknél a "gubancos" programoknál nagyon nagy az esélye annak, hogy (r)eturn, vagy (e)xit esetén "befagy" a rendszer. Ekkor nincs más hátra, újra be kell tölteni.

A MULTIFACE programozása

A MULTIFACE 8K szabadon felhasználható RAM-mal rendelkezik, amely átmeneti pufferként alkalmazható, ezen túl a rendszer vezérlését egy 8K ROM (EPROM) végzi el.
A plusz 8K RAM-ot felhasználhatjuk saját gépi kódú rutinok (esetleg monitor/disassembler programok) tárolására, vagy egyéb adatok megőrzésére is. BASIC program itt nem tárolható.
A RAM aktivizálása előtt a memóriát lapoznunk kell. A lapozás csak gépi kódban oldható meg, a BASIC IN és OUT nem működik.
Az itt ismertetett blokk-mozgató rutin példát mutat a memória lapozására:

10 RESTORE
20 GO TO 50
30 LET H=INT (1/256 )
40 LET L=1-H * 256: RETURN
50 INPUT "Start cím:";i:GO SUB 30
60 LET SH=H: LET SL=L
70 INPUT "Cél cím:";i:GO SUB 30
80 LET CH=H: LET CL=L
90 INPUT "Blokk hossz:";i:GO SUB 30
100 LET BH=H: LET BL=L
110 FOR i=23296 TO 23313
120 READ a: POKE i,a: NEXT i
130 RANDOMIZE USR 23296
140 DATA 243,219,159,33,SL,SH
150 DATA 17,DL,DH,1,BL,BH
160 DATA 237,176,219,31,251,201

Most nézzünk egy példát a konkrét adatmozgatásra. Rajzoljunk valamit tetszés szerint a képernyőre, és ezt mozgassuk át a MULTIFACE RAM területre. Ha a képünk előállt, GO TO 1 (nem RUN!), ezt követően adjuk meg a bemenő paramétereknek a következőket: Start cím: 16384; Cél cím: 8192; Blokk hossz: 6912.
Töröljük a képernyőt és futtassuk újra a programot (ha most RUN-nal indítjuk, a törlést automatikusan elvégzi). írjunk startcímnek 8192-t, célcímnek 16384-et, blokkhossznak 6912-t és a kép ismét megjelenik a képernyőn.
A plusz RAM természetesen ezen túlmenően számos lehetőséget biztosít nekünk. A legcélszerűbb, ha ide töltünk assemblert, monitort, vagy egyéb toolkit-et.
A NEW nem törli a 8K RAM területet, és a tartalma mindaddig megőrződik, amíg a MULTIFACE feszültség alatt van.
A 8K RAM tartalma közvetlenül nem menthető ki, azt először át kell mozgatnunk a 5pectrum RAM szabad területére, s a kimentés onnan már elvégezhető.
A MULTIFACE operációs rendszere lehetővé teszi közvetlen ugrások végrehajtását is a varázsgomb segítségével. A varázsgomb leállítja bármelyik program futását, amelyik éppen a memóriában található. Alaphelyzetben ilyenkor a főmenü jelentkezik be a képernyő alsó sorában. Ez a manipuláció kb. 2500 byte-ot használ fel a 8K RAM területből. A gép a BASIC-hez való visszatéréshez a 11743-11746 címeket használja fel. Ehelyett természetesen saját visszatérő rutinokat is írhatunk, pl. visszatérés előtt még írja ki nekünk a regiszterek aktuális állapotát, a megszakítási státuszt, stb.
Az előbb említett direkt ugró rutin belépési címe a 8192/8193 címeken tárolódik. A 8195/8196/8197 címek speciális azonosító kódot tartalmaznak. Ez RUN esetén 82/ 85/78 (decimális). A 8194. cím tartalma jelen esetben lényegtelen.
Bármikor, ha megnyomjuk a varázsgombot, a direkt ugrás a megadott címre történik, és nem a MULTIFACE menü jelenik meg.
A MULTLFACE menübe úgy térhetünk vissza, hogy a varázsgombot és a BREAK billentyűt egyidőben nyomjuk meg.
Normál módban a MULTIFACE használja a 8210-10753 címeket, mint puffert, kimentés közben pedig a 8210-12722 terület is foglalt. Ilyen esetben az éppen ott lévő adataink felülíródnak.

Egyéb disk rendszerek felhasználása

A MULTIFACE teljesen kompatibilis a Discovery és a Beta valamint 128K Spectrum esetén a Kempston Disk illesztőkkel, csak a menüben kell kijelölnünk a megfelelő opciót.
Egyéb disk rendszerek is felhasználhatók, de ez esetben előbb ki kell menteni a programunkat szalagra, majd el kell végezni a módosítást az új disk rendszerrel való felhasználáshoz.
Ehhez szükséges két segédprogram, amelyek a mentő/töltő műveleteket végzik el a disk-re.
KEMPSTON rendszer esetén, ha a (k)emp nem jelenik meg a menüben, előbb mentsük ki a programot kazettára, áramtalanítsuk a gépet, csatoljuk szét a MULTIFACE rendszert, illesszük a gépre a Kempston Interface-t, kössük rá a disk-et, majd futtassuk a következő programot:

10 CLEAR VAL "24751"
20 LOAD"" CODE: PRINT# 4: SAVE "3" CODE VAL "24752",x
30 LOAD"" CODE: PRINT#4: SAVE "2" CODE VAL "16384",y
40 LOAD"" CODE VAL "16464": PRINT#4: SAVE "1" CODE VAL "16464",VAL "1906"

Az x változó értéke a 20. sorban a főkód hossza, maximum 40783 byte. Az y változó értéke a 30. sorban a képernyő hossza, maximum 6912 byte. Mindkét blokk tömörített és fejléc nélküli. A 3. blokk mindig 1906 byte hosszú. BASIC program esetén az eljárás ismert.
Más rendszerek esetén a PRINT#4 utasítások helyett a megfelelő csatorna adatot kell beállítani.
A Disk-ről való visszatöltéshez is szükséges egy BASIC program. Kempston Interface-hez írjuk be és futtassuk a következőt:

10 CLEAR VAL "24751': PRINT#4: LOAD"3" CODE
20 PRINT# 4: LOAD"2" CODE
30 RANDOMIZE USR VAL "24792": PRINT#4: LOAD"1" CODE
40 RANDOMIZE USR VAL "20795"

Természetesen egyéb disk rendszereknél a PRINT utasítás mellett a csatornaszám módosítható.

Spectrum Világ 6-7. rész