Mihelyt
a programot elindítottuk, mindjárt a grafikus képernyőn elhelyezkedő
négy darab ablakkal nézünk farkasszemet. Az egyes ablakokban a
hozzájuk tartozó puffer szövege foglal helyet (hangulatos gótbetűs
karakterkészlettel), a körülöttük elhelyezkedő egyéb információkból
azonban egyszerre mindig csak a kiválasztott ablakhoz tartozót
láthatjuk. Ezek: fölül az állapotsor, alul a beviteli mező, jobboldalt
pedig az elmaradhatatlan szövegkocka. Ez utóbbi a szokványos stílusban
mutatja az ablaknak a puffer szövegében való elhelyezkedését,
és mindig pontosan vele együtt mozog. A beviteli mezőben szerkeszthetjük
bármikor, folyamatosan a következőleg kiadásra szánt mondatunk
szövegét. Ezt a billentyűzeten való gépeléssel tehetjük meg; a
programban használt billentyűzetkiosztás alapállapotban 99%-ban
a magyar ékezetes billentyűzet pontos kiosztásának felel meg (ékezetes
betűk az írásjeleken, Y és Z felcserélve stb.), ám amennyiben
ez nekünk nem tetszene, úgy a CONTROL + CAPS LOCK billentyűkombinációval
tetszőlegesen átkapcsolhatunk a hagyományos angol billentyűzet
kiosztására is. Ilyenkor az ékezetes betűket az ALT váltóbillentyűvel
együtt nyomva érhetjük el (pl. ALT + A = Á… stb.), ill. az Ö,
Ő, Ü, Ű karaktereket a CONTROL + O, I, U, Y kombinációkkal; ezek
nagybetűs megfelelői a kisbetűsek „alatt” lévő gombokon vannak
hasonlóképpen elhelyezve (pl. ALT + Z = nagy Á, CONTROL + L =
nagy Ö stb.); magyar billentyűzet esetén mindezek a kombinációk
teljességgel hatástalanok. Magyar billentyűzeten a nagybetűket
egyszerűen SHIFT-elve csalogathatjuk elő; amellett a CAPS LOCK
is használható a maga szokásos funkciójában, ami ezúttal már az
ékezetes billentyűkre is érvényes lesz – ám minderre egyszerűen
nincsen szükség, tudniillik a program egyáltalában nem tesz különbséget
a kis- és nagybetűvel megfogalmazott utasítások között. Az angol
billentyűkiosztásról a magyarra ugyancsak a CONTROL + CAPS LOCK
segítségével térhetünk vissza. A NUM LOCK billentyű is megőrizte
elfogadott szerepét.
A
szöveg szerkesztése közben a kurzorvezérlő JOBBRA/BALRA billentyűkkel
tetszőlegesen előre-hátra haladhatunk a mondatunk karakterei között,
a CONTROL + JOBBRA/BALRA révén pedig ugyanezt nem betűnként, hanem
teljes szavanként ugrálva tehetjük meg. Hogy a szöveg belsejében
beszúrunk-e vagy felülírunk, azt az INSERT kapcsoló megfelelő
állapota dönti el. Max. 256 karakternyi hosszúságú szöveget írhatunk
be egy szuszra – ennyi viszont nem fér ki a beviteli sorban, ezért
ilyenkor a program megfelelően előre-hátra görgeti a szöveget,
és csak a szükséges részét láthatjuk belőle. A HOME és END gombokkal
a teljes szöveg elejére/végére ugrunk. A DELETE az ismerős módon
letörli a kurzor pozícióján álló karaktert, a BACKSPACE pedig
egyet balra lépve töröl; kellemes újdonság viszont, hogy a CONTROL
+ BACKSPACE kombinációval itt is kiterjeszthetjük a törlés szerepét
egy egész szóra nézve (amiben a kurzor áll vagy balra tőle található,
plusz a hozzá fűzött írásjeleket is). A CONTROL + INSERT a kurzortól
balra, a CONTROL + DELETE pedig a jobbra fekvő teljes szövegmennyiséget
tünteti el végérvényesen. Az ENTER-rel tudjuk elküldeni az elkészült
mondatot, a CONTROL + ENTER pedig a mostani és a legutóbb elküldött
mondat szövegét felcseréli egymással – ennek ismételt
megnyomására a szövegek újfent visszacserélődnek. Ezáltal nemcsak
az utolsó mondat ismétlésére nyílik lehetőség, de váltogathatjuk
és párhuzamosan szerkeszthetjük mind a két mondatot, majd a végén
határozhatunk, hogy melyiküket dobjuk el.
Sőt,
nemcsak ezt a kettőt tudjuk ilyen szimultán módon alakítani, hanem
egyenesen mind a négy ablakhoz külön-külön inputsorok vannak rendelve!
Ezek közül természetesen mindig csak a jelenlegi ablakhoz tartozót
láthatjuk itt alant. Az aktuális ablak a színében különbözik az
összes többitől, és a TAB ill. SHIFT + TAB billentyűkkel lapozgathatunk
előre-hátra az egyes ablakok között; az F1…F4 által pedig közvetlenül
valamelyik ablak kijelzésére válthatunk. Az ablakok cseréjével
együtt az állapotsor, beviteli sor és a szövegkocka is rendesen
a kiválasztottnak megfelelően ugrál. Említettem, hogy a négy ablak
mellett négy puffer is létezik: a pufferokhoz tartoznak a szereplők,
s az ablakokban jelennek meg a pufferok… Azt, hogy a jelenlegi
ablakban melyik puffert óhajtjuk megjeleníteni, a CONTROL + TAB
ill. SHIFT + CONTROL + TAB révén lapozhatjuk, vagy közvetlenül
az F5…F8 billentyűkkel kapcsolhatjuk be; ezáltal tetszőlegesen
beállíthatjuk akár mind a négy ablakba is ugyanazt a puffert (és
akkor mindenütt ugyanazt a szöveget látjuk…), de jobb inkább nem
piszkálni, mert könnyen összekuszálhatjuk vele a dolgokat. Az
ESCAPE használatával ugyanakkor a pillanatnyi ablakot kinagyíthatjuk
a teljes képernyő nagyságára (vagy újabb megnyomásával vissza);
a CONTROL + ESCAPE és SHIFT + CONTROL + ESCAPE segítségével pedig
a képernyő négyféle felosztását váltogathatjuk: azt, hogy egyetlen
ablak foglalja el az egész képernyőt, kettő legyen vízszintesen,
kettő függőlegesen, vagy egyszerre tekintsük át mind a négyet.
Akármekkora méretű ablakokkal „dolgozzunk” is, a szöveg mindig
annak méreteihez igazítva, megfelelő hosszúságú sorokra széttördelve
jelenik meg majd benne, úgy, hogy soha szó egy sor végén meg ne
törjön (ha nem fér ki, akkor a következő sor elején folytatódik);
és mindegy, hogy hány ablakot látunk át egyszerre, akkor is mind
a négyben zavartalanul folyhat a kiírás – TAB és társai is ugyanúgy
működnek mind ekkor. (Legfeljebb elsőre egy kissé furcsa lesz
a látvány.) Ablakok váltogatásakor az iméntiekben említett CONTROL
+ ENTER sikerrel alkalmazható az inputsorban található szövegnek
egyik ablakból a másikba történő átvitelére is: először kicseréljük
vele a mondatot, s így a jelenlegi a „tartalékba” tolódik, majd
a másik ablakba átlépve újból megnyomjuk – mire a háttérből előkerül
az eltárolt mondatunk.
Az
ablakokat nem véletlenül hívják ablaknak, hiszen a puffernak mindig
csak egy részét látjuk bennük. Ezt az ablakot a pufferon belül
szabadon föl-le tologathatjuk a kurzor FÖL/LE vezérlőbillentyűivel,
illetve ugrálhatunk is benne a PAGE UP/PAGE DOWN segítségével;
a CONTROL + HOME és CONTROL + END a puffer elejére és végére lépteti
az állást. A CONTROL + PAGE UP/PAGE DOWN ugyancsak egy-egy oldalnak
megfelelő mennyiséget halad, de nem ugrik, hanem folyamatosan
görgeti el azt. A CONTROL + FÖL/LE pedig folyamatosan görgeti
az ablakot a szöveg elejéig/végéig. (Próbáljuk ki: ezekkel akár
egyidejűleg mozgathatjuk mind a négy ablakot is különböző
irányokba! Olyan, mintha a páternoszter fülkéi haladnának…) Igazi
különlegessége a programnak, hogy a szövegek görgetése nem karakteresen,
hanem finoman, képpontokra bontva történik! Ennek a sebességét
(pontosabban a finomságát) állíthatjuk is: 1, 2, 4, 8, 16, 32,
64 vagy 128 pixeles lépésközökkel is vonulhat a látvány. Az F11-gyel
lehet gyorsítani (durvítani), az F12-vel pedig lassítani (finomítani).
Minthogy betűink 16 képpont magasak, ez 1 képpontos mozgás esetén
azt jelenti, hogy 16 fázisban tolódik ki a képre egyetlen karaktersornak
megfelelő mennyiség (ez a legfinomabb, egyenletes mozgás – de
az esetek többségében a leglassúbb is egyben); 16 képpontosnál
éppen karakterenként halad; míg a 128 pixeles esetében már egyenesen
8 karaktersoronként ugrál (ezt csak akkor van értelme használni,
ha valami különösen lassú gépünk van, ami egyszerűen nem bírja
szuflával a görgetést…). A megjelenítés a képernyőfrissítés elektronsugár-visszafutásához
van szinkronizálva (ami a legtöbb monitornál 50-70 Hz), így ennek
és a processzor gyorsaságának megfelelően állíthatjuk be magunknak
a legkellemesebb verziót. Az átmenetileg történő lassításra van
még egy lehetőség, az, hogyha PAUSE állapotba tesszük a gépünket
(mi mással, mint a PAUSE billentyűvel): ennek meglétét a szövegkocka
invertálódó benyomódása jelzi (kikapcsolni ismételt megnyomással
lehetséges): ilyenkor valamennyi mozgás kb. az eredeti egytizenhatod-részére
lassul, és például a túl gyorsan távozó szöveget kiválóan el lehet
olvasni közben.
A
kiírás során igen lényeges szerepe van még a SCROLL LOCK kapcsolónak
is: ameddig ez bekapcsolt állapotban van, addig a gép automatikusan
tördeli nekünk a hosszú szöveget, vagyis ha nem fér ki egyben
a képernyőre, akkor egy oldal után megtorpan, és egy ENTER lenyomására
várakozik a továbbléptetése érdekében; addig is az ablak jobb
alsó sarkában megjelenő kis behajtott szamárfül jelzi ezt (ill.
karakteres képernyőnél a <Tovább> felirat). Míg ellenben
kikapcsolt SCROLL LOCK mellett semmi ilyesmi nem történik: a szövegek
megállás nélkül vágtáznak keresztül a képernyőn – ilyenkor jön
jól az iménti PAUSE funkció. Ha az ablakunk ilyen várakozó állapotban
van, akkor addig nem tudunk új parancsot elküldeni, amíg előzetesen
tovább nem léptettük a szöveget (az ENTER ilyenkor foglalt erre
az új szerepkörre). De más módokon is léptethetjük tovább: a KURZOR
LE vagy a PAGE DOWN gombokkal – esetleg egy CONTROL + END-del
azonnal a legaljára pottyanunk. (Akkor is megszűnik a várakozás,
hogyha fölfelé haladunk, ám ekkor már nekünk magunknak kell legörgetnünk
majd.) Ha sokáig nem nyúlunk hozzá, az ablak időnként önmagától
is araszolgat egy-egy sort (kb. tizenöt másodpercenként egyet).
Ha viszont nem kívánunk egyesével vacakolni mind a négy ablakkal,
akkor vagy kapcsoljuk ki a SCROLL LOCK-ot, vagy használjuk a BREAK
(= CONTROL + PAUSE) billentyűt, amely az összes ablakot egyszerre
alapállapotba hozza (leugrik az aljára, és mindenfajta késleltetést
megszüntet).
Két
különleges szerepű billentyű maradt ki csupán a felsorolásból:
az egyik a PRINT SCREEN (= CONTROL + SYS REQ), amelyik egy SCRNxxxx.TXT
file képében elmenti a jelenlegi ablak pufferének teljes szövegét
a programkönyvtár MENTÉS alkönyvtárába (ahol xxxx egy 0000-tól
9999-ig terjedő sorszám, úgyhogy rengeteg ilyen lehet); a másik
pedig a CONTROL + ALT + DELETE – nem kell megijedni, nem fogja
RESET-elni a gépet, mindössze a játékból való azonnali kilépésre
szolgál (visszatérés DOS-ba). A program emellett még egy beépített,
önműködő képernyővédő funkcióval is rendelkezik: ha öt percig
nem nyúlunk a billentyűzethez, akkor lekapcsolja a képernyőt,
amelyen egy – a Norton Commander-éhez hasonló – csillagmezőt látunk
a következő lenyomásig tündökölni.
Most
már tehát be tudjuk gépelni a programnak a kiadni óhajtott utasításainkat
– igen ám, de hogyan is fogalmazzuk meg őket? Felszólító módban
megfogalmazott mondatokat vár el tőlünk a játék, úgymint MENJ
ÉSZAKRA vagy GYÚJTSD MEG A LÁMPÁT A GYUFÁVAL stb. A parancsok
szórendje majdnem teljesen szabad, tehát az előző példát akár
beírhatjuk a következőképpen is: A GYUFÁVAL A LÁMPÁT GYÚJTSD MEG…
Vagy bármilyen más sorrendben – egyetlen megkötés, hogy az igekötőnek
az igénél hátrébb kötelező állnia valahol, s a melléknévnek pedig
a főnévnél előbb (nem mondhatjuk pl. azt, hogy MEG GYÚJTSD vagy
CSUKLYÁT ZÖLD, de ezeknek amúgy se lenne értelme, ezért nem is
jutna eszébe senkinek sem leírni hasonlót). Mivel ez nagyrészt
az előző fejezetben már elhangzott, itt csak röviden összefoglalnám
a továbbiakat. Tehát több hasonló tárgy megkülönböztetésére melléknévi
jelzőket alkalmazhatunk (FOGD MEG A NAGY KULCSOT vagy DOBD EL
A CIFRA KULCSOT stb.), a legutóbbi főnevek pedig névmásokkal helyettesíthetők
(AZT, ŐT és MAGAD és ezek másféle ragozású alakjai). Egyetlen
mondaton belül akárhány különböző parancs is szerepelhet (ponttal,
vesszővel vagy ÉS-sel elválasztva), és természetesen az összes
felsorolt mondatelemet kombinálhatjuk is egymással. Pl. így: VEDD
FEL A NAGY KULCSOT ÉS NYISD KI VELE A KŐAJTÓT. Ha valami hiányzik
a mondatból, akkor a gép célzatosan rákérdez: VEDD LE hatására
pl. úgy, hogy „Mit akarsz levenni?” – ezekre a kérdésekre elegendő
már csak a hiányzó mondatelemeket megadni (pl. KABÁTOT). De valami
teljesen új mondatot is beírhatunk akár. Természetesen, ha nem
ért meg egy szót, azt is jelzi a program. A mozgási parancsok
és néhány más sokszor használt ige is a kezdőbetűivel rövidíthető.
(Pl. ÉSZAK, mint É, VIZSGÁLD, mint V, VEDD FEL, mint VF, RAKD
LE, mint R, LELTÁR vagy LISTA, mint LI vagy rövidebben I… stb.)
Az egyes – általunk is irányítható – szereplők közül úgy választhatunk
ki valakit, hogy egyszerűen, ige és ragozás nélkül leírjuk a nevét.
A választható szereplők listája: Bilbó, Thorin, Dwalin, Balin,
Fíli, Kíli, Dori, Nori, Ori, Óin, Glóin, Bifur, Bofur és Bombur.
Hogyha teszemazt valamelyik ablakban leírjuk, hogy NORI, akkor
attól kezdve abban az ablakban (illetőleg az ahhoz az ablakhoz
tartozó pufferban) őt fogjuk irányítani. De őrajtuk kívül is még
további illetőket bevonhatunk a játék menetébe, azáltal, hogy
különféle kéréseket vagy parancsokat intézünk hozzájuk (pl.: MONDD
MEG GANDALFNAK, HOGY ADJA NEKEM A TÉRKÉPET), s így közvetve manipulálhatjuk
őket is. Ezeknél a parancsoknál lényeges, hogy a kérő utasítás
(MONDD, KÉRD, UTASÍTSD) és a tényleges tennivaló között valamilyen
elválasztójelet hagyjunk: például egy vesszőt, egy idézőjelet
vagy egy HOGY szócskát – mint az az idézett példában is látható.
Mi több, akár még több ilyen parancsot is egymásba ágyazhatunk,
mondjuk valahogy így: MONDD MEG ÓINNAK, HOGY SZÓLJON GLÓINNAK,
HOGY KÉRJE MEG BIFURT, HOGY NYISSA KI AZ AJTÓT… Az emberkék majd
szépen egymásnak adogatják tovább a mondatot, míg végül az le
nem bomlik a végső mondanivalóig, ami már közvetlenül is végrehajtható.
Olessák
Róbert (1997)