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 megnyomnia 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:
-
(e)xit - 'meleg RESET' + kilépés a BASIC
rendszerhez Segítségével kiléphetünk a BASIC rendszerhez, de úgy, hogy a
programunk épségben a memóriában marad. Ennek a dolognak az egyetlen
alapfeltétele, hogy a normál Spectrum rendszerváltozók a memóriában
sértetlenül megmaradjanak, máskülönben a rendszer sajnos
"lefagyhat". Sikeres kilépés esetén teljes hozzáférhetőségünk lesz a
programhoz, abban változtatásokat eszközölhetünk, majd a MULTIFACE varázsgomb
megnyomásával visszatérve a MULTIFACE főmenühöz, a módosított programot
kimenthetjük. Ha a programot akarjuk újraindítani, akkor ismernünk kell a
start sort, vagy címet.
-
(r)eturn - a program folytatása Ha egy futó
(játék)programot megállítunk a MULTIFACE varázsgomb megnyomásával, és
dolgainkat elvégeztük, a program futását a (r)eturn funkció kiváltásával
engedhetjük tovább.
-
(s)ave - mentő rutinok aktivizálása Először is
meg kell adnunk a program nevét. Csak 9 karakter van engedélyezve (BETA
Interface felhasználása esetén pedig csak 7), majd meg kell nyomni az
ENTER-t. Újabb választás előtt állunk: (t)ape; (c)artridge; (w)affer;
(d)isk A disk kiválasztásán túl több dolgunk nem lesz, mivel a
MULTIFACE magától megállapítja, hogy pl. BETA, vagy DISCOVERY van
csatlakoztatva. Mindezen túl meg kell adnunk, hogy programot -
(p)rogram, vagy képernyőt - (s)creen kell kimenteni. A
kimentéskor a MULTIFACE tömörít, vagyis a háttértároló eszközön a futó
programnak csak egy tömörített változata lesz elhelyezve, ebből adódóan a
betöltési idő is lecsökken (főként a kazettás magnetofon esetében). Mindezt
figyelembe véve megállapíthatjuk, hogy a tömörített kód egyszerű
disassemblálása nem lehetséges.
- (t)ool - MULTIFACE TOOLKIT rutinok meghívása
- (q)uit -
visszatér a MULTIFACE főmenübe - ENTER+SPACE - PEEK/POKE
funkció SPACE törli az input mezőt, ekkor egy memóriarekesz címének
megadását várja a gép. Ha begépeltük a címet, azonnal megjelenik a rekesz
aktuális tartalma. ENTER megnyomására. tovább lépünk a következő memóriacímre,
egyébként átírhatjuk a tartalmat, amelyet szintén ENTER-rel
érvényesíthetünk. - (h)ex - átváltás a hexadecimális és decimális
kijelzés között - (r)eg - kijelzi a processzor regisztereinek
aktuális értékeit. A regisztertartalmakat a dec~imális 16358-16383 címekre
másolja át. - (w)indow - MONITOR ablak megnyitása A képernyő
felső részén megnyit egy 128 byte méretű ablakot, melyben az aktuális
memóriacímet követő 128 rekesz tartalmát tekinthetjük át. A megfelelő, és
átírandó cím a, kurzorbillentyűk használatával választható
ki. -(t)ext - ASCII ablak megnyitása Az előző funkciótól annyiban
különbözik, hogy a memóriarekeszek tartalma ASCII karakterek formájában
jelenik meg a képernyőn.
- (c)opy - Képernyő-tartalom kinyomtatása
Kinyomtatja az aktuális
képernyő-tartalmat olyan nyomtatóra, amely ismeri a COPY parancsot (pl. LPRINT
III., KEMPSTON 'E', stb.).
- (j)ump - Ugrás egy új címre
Nem egy új címen kezdődő
programfuttatást valósít meg, hanem egy új címmezőre való átugrást, további
manipulációk céljából. Az ugrási cím a decimális 8192/8193 címeken tárolódik
el. Az ugrási cím a teljes Spectrum ROM/ RAM tartományba mutathat, továbbá
a MULTIFACE 8K RAM-ba is. A MULTIFACE 8K RAM átfedi a Spectrum ROM-ot
(8192-16383), a lapozási státuszt a 8194. címen találjuk. Ha ezen a címen
zérus van, az alap ROM működik, 1 esetén pedig a MULTIFACE RAM.
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 Spectrum 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ó.
|