Bejelentkezés

Sir Clive tündöklése és bukása?!

Toplista

Játékújdonságok a piacon

Piyamarama

Bat Man

Másolóprogramok

White Lightnig

Hardware ötletek

Paintbox III/1

Basic

Programozástechnika

Gépi kód tanfolyam I.

Ez lesz itt az olvasó oldala

Pályázati rejtvény

 

 

BEJELENTKEZÉS

 

C.1982. Sinclair Research Ltd.

C.1987. Spectrum Világ V1.0

 

Megkésve bár, de talán még időben kerülhet ez a kiadvány azoknak a kezébe, akik szabad idejüknek javarészét legszívesebben Spectrumuk társaságában töltik. Szinte minden - a számítástechnikával foglalkozó - kiadvány hasábjain találkozhattunk olyan olvasói levelekkel, melyek rendszeres, sokoldalú és nagy mennyiségű információt igényeltek Sinclair-számítógépek felhasználásához, legyen az játék, hw/sw-trükkök és még sorolhatnánk...

 

Most jövünk mi !

 

Célunk kettős: egyrészt megfelelni az előzőekben leírt követelményeknek, másrészt viszonylag olcsó kiadvány életre hívása - nemcsak amíg a készlet tart (hiszen a téma kifogyhatatlan), hanem amíg igény van rá.

Terveinkről: az első két rész készen áll, a sorozat további darabjait szeretnénk az igényeknek megfelelően alakítani, sőt lehetőséget biztosítunk arra, hogy az olvasó íróvá váljék, bármilyen ötletét, írását szívesen fogadjuk.

Lehetőségeink: több részesre tervezett sorozatunk megjelenéséhez szükséges anyagi feltételeink 2 rész erejéig biztosítottak. A továbbiak a piaci sikerektől függnek, ezért már most elnézést kérünk az Olvasótól, ha netán vállalkozásunk gazdasági kudarcba fulladna, és emiatt megkezdett sorozataink befejezetlenül maradnának.

 

Adja a Spectrumosok lelkes és nagy táborának "Istene", hogy következő számunk szerkesztői üzenetek c. rovata ne "KIJELENTKEZÉS" címmel jelenjen meg...

 

Felelős kiadó:   Rucz Lajos

 

Címünk:          "Spectrum Világ"         Budapest 3.

                                          Postán maradó

                                          1300

Eng. szám:       KF 56890

ISBN OK:         963 500 667 5

ISBN:            063 500 668 3

 

Készült: EGRESSY GÁBOR MŰV. HÁZ. ÓCSA

 

Scan&OCR: gafz, 2006

 

 

SIR CLIVE SINCLAIR TÜNDÖKLÉSE ÉS...

 

 

Forrás: Planet Sinclair1940-et írtak, a németek teljes gőzzel törtek előre Európa nyugati része felé, a Brit-szigetek irányába. Ekkoriban egy Richmond nevű kisvárosban élt Bill Sinclair és felesége, Thora. Elsőszülött gyermeküknek, Clive-nek az élete kezdetben a háború szörnyűségei miatt elég keserves volt. Richmondi házukat lebombázták, új helyre kellett költözniük. Clive gyermekkori beceneve "Bambino" - amely a mai napig rajta maradt - onnan ered, hogy a születési anyakönyvi kivonatának betűjele: "BAMB". Clive gyermekkorában már kiderült, hogy kivételes képességekkel rendelkezik: három éves korában már felnőtthöz méltó hangsúllyal és kifejezőképességgel beszélt.

10 éves korában tanárai külön képzésre javasolták, ekkor már IQ mutatója az átlagosnál jóval magasabb volt. A fiatal Clive jó "koponyával" lett megáldva, 15 évesen képes volt a legbonyolultabb matematikai problémákat is a legrövidebb úton és idő alatt megoldani. 17. születésnapjára Clive a Weybridge-i St.George Iskolában folytatott tanulmányai mellett megszerkesztett egy mini-rádiót, amely nem volt nagyobb egy hagyományos öngyújtónál. Nem sokkal később egy újságíró megjósolta, hogy a Sinclair név még ismert lesz az emberek előtt. Ettől kezdetben féltek a szülők, de váratlanul Clive első unokatestvére beváltotta a jóslatot, területi, majd nemzeti vívó ill. atlétikai sikereket ért el - persze az újságíró nem így gondolta -. Clive nem volt sportember, bár indult a londoni és new york-i maratoni futóversenyen is, de számottevő sikereket a sport terén nem sikerült elérnie.

A "csend" csak addig tartott, amíg Clive meg nem alapította a személyi számítógép-fejlesztéssel foglalkozó kísérleti kutatóközpontját, amely a "Sinclair Research Ltd." nevet kapta. Sok kísérlet, kutatómunka eredményeképpen született meg az első prototípus, melynek Clive a családi nevet adományozta. Ettől a pillanattól kezdve indult el a Sinclair név a világhír felé a számítástechnikai körökben. Clive "meredek" dologra szánta el magát: tetszetős dobozba kerülő, figyelemfelkeltő csomagolású gép mintadarabjait - mindennapos egyszerűséggel - szétosztogatta utcai járókelők között. Ez is tükrözte kreatív gondolkodásmódját. Pályafutásának felfelé ívelő szakasza itt kezdődött. Rövidesen két megtisztelő cím is elterjedt róla: "Az év üzletembere" cím védője és "Az évtized számítástechnikai személyisége" lett.

Az első produkciója a ZX-80 volt, amelyet hamar követett utódja, a ZX-81. Az emberek szinte el sem hitték, hogy Z-80 mikroprocesszorral működő gépet 100 Font alatti áron is megvehetnek, hiszen ezt eddig 500 Font alatt nem eshették meg. A nagy siker láttán amerikai megrendelők is érkeztek. Igaz csak némi módosítással vették át a ZX-81 alapgépet, de TIMEX néven a gép hamarosan a tengerentúlon is ismert lett.

Elérkezett a "robbantás" éve: 1982-ben piacra került a SPECTRUM. Óriási Sinclair dömping indult meg: a gép először 16, majd ezzel párhuzamosan 48 K-s változatokban a világ minden részén gomba módra kezdett szaporodni.

Anyja szemében csak akkor vált igazán megalapozottá az újságíró egykori kijelentése, amikor Clive a munkásságáért elnyerte a lovagi címet. A lovagi cím átadására 1983-ban - a királynő születésnapjának tiszteletére megrendezett ünnepségen - került sor. Akkor a "Sinclair Research Ltd." főnöke már milliomos volt, tevékenységével meghatározta az egész szigetország számítógépes gondolatvilágát.

 

 

...BUKÁSA ?!

 

 

 

Egy újabb év elteltével megszületett a QL, amely már nem volt akkora siker, mint elődje, de - immáron Sir - Clive még mindig nem panaszkodhatott. Párhuzamosan viszont új dologba vágott bele: a C5 típusú elektromos autó kifejlesztésébe. Ekkor még nem sejthette, hogy ez meghatározza későbbi pályafutását. Megrendelései voltak, s a kísérleti időszak után a C5 már futott az utakon.

A QL átmeneti kudarca és a felhasználók igénye alapján a tervező stáb - Sir Clive vezetésével - úgy gondolta, hogy a lehetséges legjobb megoldás, ha egy ötvözött gépet hoznak létre. Így született meg a Spectrum 128K. Ugyanebben az évben 1985-ben legyártották az 1 milliomodik Spectrumot is (amelynek közben módosított "+" jelű változata is forgalomba került). A jubileumi példány ünnepi külsőt kapott: hófehér dobozban, aranyozott billentyűkkel adta át a gyártó - ezrek jelenlétében - Sir Clive-nak a Skót Nemzeti Csarnokban.

Elérkezett 1986, ami rosszul indult: a rendelések visszaestek, a központi vevők raktárai "dugig" voltak a Sinclair gépekkel, nem beszélve az egyéni érdeklődés csökkenéséről. Ez kihatott a termékárak csökkenésére is. A C5 típusú elektromos autó konstrukciós, valamint üzlettaktikai hibáiból adódóan a cég a versenytárgyalásokon alulmaradt, sőt az eredeti rendelők is visszamondták igényléseiket. A történtek alapján a céget nagy anyagi veszteség érte, s ebből a csávából még a 128-as megjelenése sem jelentett kiutat. Sir Clive eladósodott, az egyedüli megoldás a cég áruba bocsátása lett, és - az ekkor már felfutóban lévő - AMSTRAD cég -"főnöke" Alan Sugar szinte nevetséges kikiáltási árért megvásárolta a Sinclair Research Ltd.-t.

Tévedés lenne azt gondolnunk, hogy evvel a Sinclair gépek történetének vége. Ennek több oka is van: a meglévő géppark ettől még éppen olyan sikeres mint régen, a software-fejlesztők várhatóan a jövőben is készítenek software-eket Sinclair gépekre.

Az AMSTRAD cég a beolvadást követő időszaktól újabb "közös" típusok megjelenését segíti elő. Az AMSTRAD-SINCLAIR Spectrum 128 +2 gép 128 K-s, keménybillentyűs, beépített AMSTRAD magnóval rendelkezik, a legújabb +3 típus pedig már mágneslemezegységet is tartalmaz. A legújabb hírek szerint Sir Sinclair is új gépet fejlesztett ki: a Z-88-at (az említett típusokról a következő számokban még lesz szó), amelyet a Cambridge Electronic Ltd. forgalmaz. A gép nem viselheti a Sinclair nevet, hiszen azt az AMSTRAD megvette.

Összességében megállapítható, hogy a Sinclair cég gondjai nem okoztak zavarokat a felhasználók körében, sőt lehet, hogy mindez a fejlesztés előnyére vált: napjainkban a software-cégeknek még mindig az egyik legjobb befektetése Sinclair gépekre programot írni!

 

TOP

 

10

 

1987 AUGUSZTUS

 

1.

 FEUD

- Bulldog

2.

 GAUNTLET

- US GOLD

3.

 ROBIN OF THE WOOD

- Odin

4.

 PAPERBOY

- Elite

5.

 OLLI AND LISA

- Firebird

6.

 SHORT CIRCUIT

- Ocean

7.

 ARNHEM

- CCS

8.

 PIYAMARAMA

- Mikro-Gen

9.

 TIR NA NOG

- Gargoyle Games

10.

 BAT MAN

- Ocean

 

 

 

JÁTÉKÚJDONSÁGOK A PIACON

 

 

 


 

NINJA - Mastertronic

 

Megélénkült a karateszimulációk gyártása az angol játékpiacon: az AVENGER (WAY OF THE TIGER II.), az AVENGING ANGEL (SABOTEUR II.) és az EXPLODING FIST II. sikere után a Mastertronic is egy új karateszimulációval rukkolt ki. Akik szeretik az ilyen típusú játékokat, meg lehetnek elégedve vele: a grafika jó, a játék izgalmas. Az akció több szinten zajlik, a különböző szinteken egyre több ellenséggel találkozhat a játékos. A szintek között a képernyő tetején látható átjárókon lehet feljutni.


MARTIANOIDS - US GOLD

 

Mióta az ULTIMATE cég beolvadt a US GOLD-ba se vége, se hossza azoknak az új játékoknak, amelyek a klasszikus KNIGHT LORE stílusban zajlanak (pl. ilyen a később bemutatásra kerülő BATMAN). A MARTIANOIDS egy szokásos mászkálós játék, amelyben egy robottal kóválygunk egy labirintusban ahol különféle tárgyakat kell gyűjtenünk. Ezt barátságtalan élőlények akadályozzák, amelyek fogyasztják a robot telepeit (energiáját). Az ellenségeket és a mozgásunkat gátló falakat lézerrel semmisíthetjük meg. A grafika jó, akik szeretik a mászkálós játékokat, biztosan megkedvelik ezt is.


SYGMA 7 - Durell

 

Az URIDIUM nemes hagyományait követő űrhajós/lövöldözős játék, kitűnő zenével és grafikával. Az első pályán az űrben kell harcolnunk az ellenséggel, a második pályán elhagyjuk az űrhajónkat és pontokat gyűjtünk. A harmadik pályán egy gömbbel vagyunk. Ha nem KEMPSTON joysticket választunk, definiálhatjuk a vezérlő billentyűket.


STRIPPER - Individual

 

A SAMANTHA FOX nyomdokain készült játék. Normál ötlapos póker, hagyományos játékszabályokkal: két licitálási lehetőség van (közöttük cserével), a limit 20 font. Minden pályán más hölggyel mérhetjük össze tudásunkat (és szerencsénket). A lányok tudása egyre jobban nő, a 4. pályán lévő hölgy például olyan szemérmetlenül blöfföl, mint egy igazi hamiskártyás. A játék 90-90 fonttal indul, ha elvesztünk mindenünket, elvész egy életünk (induláskor 5 van). Akik nem tudnak pókerezni, a játék főmenüjéből kérhetnek - angol nyelvű -instrukciókat. Az irányítás definiálható, alaphelyzetben a CURSOR-joystick billentyűinek felel meg.


UCHI MATA - Martech

 

Jó grafikával és animációval kivitelezett judoszimuláció. A harc - természetesen - az ellenfél legyőzéséért folyik, játszható a gép ellen vagy két játékossal. A gyakorló üzemmódban megismerkedhetünk a játék közben alkalmazható mozgás- és dobásformulákkal. Ezeket a program a képernyő felső részén jelzi az adott formula neve melletti szimbólum színezésével.


SCALEXTRIC - Leisure

 

Rendkívül jó grafikával megrajzolt autóverseny-szimuláció. Két játékos játszhatja, de lehet partnerünk a gép is, ha a "2 PLAYER" kérdésre ENTER megnyomásával válaszolunk. Ha a gép ellen kívánunk játszani, be kell állítanunk a nehézségi fokozatot is. Definiálhatóak a gyorsítás/lassítás/gáz/fék funkciókat kiváltó billentyűk. A programban megtalálható jó néhány Forma-1 versenyekből ismert pálya, de tervezhetünk saját pályát is, amit az újrafelhasználás céljából kimenthetünk. A programban a játékosok egy kettéosztott képernyőn figyelhetik a saját tevékenységüket és az ellenfél mozdulatait.

 

 

 

PIYAMARAMA

 

 

 


 

A Mikro-Gen cég gally-játékai egyedülálló stílust képviselnek az arcade-típusú játékok között: az általuk forgalmazott programok nagy részén mintegy védjegyként vonul végig, hogy a játéktérben szétszórt tárgyakat egy bizonyos logika alapján a megfelelő helyre kell vinni, tehát a játékok sikeres megoldásához nem csak ügyes kezekre, hanem egy jó adag asszociációs készségre is szükség van. Az EV'RYONE'S A WALLY című játékával a Mikro-Gen olyan hatalmas sikert ér el, hogy újabb és újabb Wally kalandokat feldolgozó játékokat dobott piacra. Ezek közül az LSI Atsz. 1987-ben megjelent "Spectrum III." című könyvében már megismerkedhettünk a negyedikkel, a 3 WEEKS IN PARADISE-al. A sorozat második tagja a most ismertetésre kerülő PIYAMARAMA (második rész), talán a legnagyobb sikert elért Wally játék.

 

Betöltés után a program elmuzsikálja a "Popcorn" (Pattogatott kukorica) című világsláger néhány taktusát, majd egy gomb megnyomása után a főmenüben beállíthatjuk a játék irányítását (SINCLAIR/KEMPSTON-joystick vagy billentyűzet definiálva) és ENTER billentyűvel indíthatjuk a játékot. A játékot a BREAK megnyomásával bármikor megszakíthatjuk és visszatérhetünk a főmenübe. Mielőtt elindulnánk, tanulmányozzuk a térképet (a leírásban a szobák nevére fogunk hivatkozni). A térképen nyíllal jelöltük az egyirányú utcákat és áthúzással azokat-a helyeket, ahova csak egy bizonyos tárgy birtokában tudunk bejutni.

 

A játék egy házban játszódik, amelynek tulajdonosa, Wally édesded álomba merülve hortyog. Tudatalatti lénye azonban kilép testéből és elindul, hogy elhozza szendergő tulajdonosának az ébresztőóra kulcsát, miáltal reggel felébred és nem késik el a munkából (mint az jó szokása). Wally házában kiváló káosz uralkodik, ezért ez a feladat - a legenyhébb kifejezéssel élve - kissé körülményes mulatság. A házban a mászkáló grillcsirkéktől kezdve a repkedő indián csatabárdokig rengeteg ellenséggel találkozunk, amelyek érintésére a képernyő tetején, a pohárban lévő életerőnk (SNOOZE ENERGY) egy egységnyit fogy. Ha a pohár kiürült Wally - érdemei elismerése mellett - a mennybe megy és a bal felső sarokban látható életeink közül egy elvész. A házban egyébként hihetetlen történések adódnak: a padlóból hatalmas kezek nyúlkálnak, az ajtókon való átkelési kísérletekkor egy bokszkesztyű teljesen spontán módon orrba ver minket (sebaj, elmondhatjuk, hogy kesztyűs kézzel bánnak velünk).

 

Felhívjuk a figyelmet arra, hogy a leírásban minden tárgy felvételére - a lelőhellyel együtt - hivatkozni fogunk, ha útközben valamilyen más tárgy akad az utunkba azt át kell ugorni, nem szabad felvenni! Kezdődjék hát a játék...

 

A játék kezdetén a hallban vagyunk. Menjünk át az ebédlőbe és vegyük fel az egyfontos érmét (POUND COIN - ez egy fontos egyfontos), majd az első emeleti ücsörgőben a kölcsönző cédulát (LIBRARY TICKET). Ezután menjünk fel a második emeleten lévő bankba (a futószalagon egyenlőre csak előre ugrálva tudunk átjutni). A bankban - rövid lejáratra - elhelyezzük az egyfontosunkat és rögtön le is vesszük a kamatot egy 1 pennys képében (PENNY).

 

 

Menjünk vissza a szomszédos pihenőbe, és a - visszavinni elfelejtett - könyvtári könyvet (LIBRARY BOOK) cseréljük fel a kölcsönzőjegyre. Ennyi rohangálás után nem csoda, ha Wallynak sürgősen el kell intéznie néhány folyó ügyét. Ennek érdekében menjünk el a WC-be. A vécésnéni szemmel láthatólag nincs túl nagyra rangjával, ugyanis a csésze mélyébe rejtőzött és onnan nyújtogatja a kezét a használati díjért. Erre járó destruktív elemek egy kalapácsot (HAMMER) felejtettek itt, amit most felcserélünk az 1 penny-vel (most láthattuk hasznát az előbbi pénzügyi manővernek: nem 1 fontért végeztük dolgunkat).

 

A WC-ből menjünk ki a galériára, ahol a fásítási hónap keretében magunkhoz vesszük a virágcserepet (PLANT POT) és átbaktatunk a kamrába. A strandlabdát átugorva, üzembe helyezzük a teleportáló szerkezetet (LIFT ON, a nyíl lefelé mutat) és elmegyünk a teleportba. A szobába mindig csak akkor tudunk belépni ha a spájzban lévő LIFT ON kapcsoló nyila az ON jelre mutat. Ez a teleportba történő minden második belépésünk kor kikapcsolódik, ha újra teleportálnunk kell, el kell mennünk bekapcsolni (többet nem ismételjük!). A teleportban négy kapcsoló látható, amelyek a felettük lógó lámpákhoz tartoznak. Az 1. kapcsolóhoz felugorva állítsuk be az 1. számú teleport-helyszínt, majd távozzunk a szobából. Az 11 helyszín beállításával a padlásra tudunk ki jutni, ahol felcseréljük a virágcserepet a jogosítványra (DRIVING LICENCE). A padlásról menjünk át a teaszárítóba, ahonnan az ablakon át kijuthatunk a tetőre. A tetőn lerakjuk a jogosítványt, felcserélve a kulcscsomóra (IGNITION KEY). Holdkóros hajlamaink kiélése után (végigslattyogunk a tetőn) lepotyogunk a kazánházba, ahonnan elmegyünk a futószalaghoz. Itt kaotikus állapotok uralkodnak: a padló szalad. Csintalan ifjak módjára ugorjunk fel a lépcsőkorlátra: lecsúszva a lépcsőházba átcseréljük a kulcscsomót a bukósisakra (CRASH HELMET). Ezzel átmegyünk a könyvtárba és a bal oldali székről az asztalra felugorva a könyvet kicseréljük az ollóra (SHARP SCISSORS). A lefelé potyogó könyvektől a bukósisak meg véd, hiányában némi elhalálozásra számíthatunk. Ezek után ismét teleportálnunk kell, a 4. színhelyre. Mikor kimegyünk a teleportból, a futószalagra jutunk. Itt azonnal ugranunk kell. Fel kell jutnunk a teásládára, hogy a bukósisakot kicseréljük a futó szalag szabályzójára (CONVEYOR CONTROL). Amíg ez nálunk van a futószalag nem működik.

 

Most el kell jutnunk a kamrába, ahol a magasban egy kulcs található. Ezt ugrással nem tudjuk elérni. A bankban lévő HELP ON kapcsolót aktivizálva, a kulcs alatt egy teásláda jelenik meg, amiről a kulcs elérhető. A kapcsoló üzembe helyezése után, menjünk a kamrába, ahol a középen lévő hordót át kell ugranunk, hogy a szoba másik végében lévő léggömbhöz eljussunk. Ha ez sikerült (leeséskor újra HELP ON és csak azután vissza!), a lufit megérintve felrepülünk a felső részre. A lyukakat átugrálva eljutunk a teásládáig és kicseréljük az ollót a vasláda kulcsára (BOX KEY). Ezután potyogjunk vissza a földre és menjünk a konyhába.

 

Itt az asztal alatt található a vasláda, amiből az imént felvett kulccsal kivehetjük a patkómágnest (MAGNET), ami a katakombában guruló hatalmas vasgolyó távoltartására szolgál, később pedig a mágneses mezőben látjuk hasznát. Imígyen felszerelkezve sétáljunk át a hallba, ahol a futószalag szabályzóját felcseréljük a kopogtatóra (DOOR HANDLE). A kopogtatót kicseréljük a galérián hagyott kalapáccsal. Ezután teleportálnunk kell a 3. helyszínre (űrállomás), ahol a mágnest elcseréljük a háromszög-kulcsra (TRIANGLE KEY).

 

Visszatérve a teleportba a szoba végén lévő üvegszekrényt a kalapáccsal betörhetjük és kivehetjük a poroltót (FIRE EXTINGUISHER). A teleportból 2. helyszínen keresztül elmegyünk a kazánba ahol a szoba végén lobogó tüzet a poroltó hatástalanítja. Átmenve a tűzön, lepotyogunk a katakombába, ahol a poroltót lecseréljük a szögletes kulcsra (SQUARE KEY). A kulcs a fegyverszobát nyitja, amelyben a helyére felvehetjük a lézer-pisztolyt (LASER GUN EMPTY).

 

Ezután menjünk át a pottyantó II.-be (félreértések elkerülése végett: itt tonnás súlyok potyognak, egyéb pottyantásokat nem végezhetünk: folyó ügyeink elintézése után a WC-re kirakták a megtelt feliratot, nem tudunk bemenni). Ezt a szobát a háromszögkulcs nyitja. Itt gyorsan el kell jutnunk az asztalon lévő akkumulátorig (POWER PACK) mert az asztal fölött lévő súly lezuhan és nem tudunk átjutni. Az akkumulátor feltölti a lézerpisztolyt (LASER GUN FULL).

 

Az asztal alatt essünk le és a borospincében a kulcsot cseréljük ki a vizesvödörrel (WATER BUCKET EMPTY). A fürdőszobában a csapnál a vödör megtelik vízzel (WATER BUCKET FULL). A teli vizesvödörrel elmehetünk a zöldövezetbe, ahol az eddig szomjasan acsargó húsevő növények megnyugodnak, a lyuk felett átugorva a vödör helyére felvehetjük a kannát (FUEL CAN EMPTY). Ezután az 1. helyszínre teleportálva, a pottyantó I.-ben a FUEL feliratú szekrénynél feltölthetjük a kannát (FUEL CAN FULL).

 

Ezután teleportálunk a futószalagra, a bukósisakot kicseréljük a teli kannával, majd teleport az űrállomásra és csere a pisztoly és a mágnes között. Ezután visszatérünk a futószalagra (közben LIFT ON, mert nem tudunk visszamenni a teleportba!) és visszacseréljük a bukósisakot a kannára. Erre a manőverre azért volt szükség, mert ha nálunk van a teli kanna, nem tudunk átmenni az űrhajó másik oldalára, mert elrepül velünk a holdra. Ha elutazunk az űrhajóval, a kanna kiürül (el kell vinnünk újra megtölteni) és mivel-mind a két nálunk lévő tárgyra szükség van, nem tudjuk feljuttatni a Holdra a mágnest. Mivel az előbbi manőverrel átcsoportosítottuk a tárgyainkat, a kanna újabb felvétele után a teleportból átvehetünk az űrállomásra és elrepülhetünk a bolygóra, ahol kicseréljük a mágnest a Hold kristályra (MOON CRYSTAL). Szálljunk vissza a rakétába és leszállás után cseréljük ki a holdkristályt a pisztollyal és menjünk el újra feltölteni az utazás közben ki ürült kannát.

 

Ha megtöltöttük a kannát újabb űrutazásra indulunk (úgy repkedünk már a Föld és a Hold között, mint valami füstifecske). A Holdon kicseréljük a kannát a mágnesre. Mivel nálunk van a feltöltött lézerpisztoly, a holdlakók felmenekülnek a magasba, felhasználva a mágnest át tudunk menni a szomszéd szobában lévő mágneses mezőbe. Itt a gombot megnyomva megszűnik a mező és felugrálva felvehetjük az óra felhúzóját (CLOCK KEY). Ezután visszatérünk a rakétába, leszállás után pedig elmegyünk a hálószobába, ahol belerakjuk az órába a kulcsot. A bűnös szerkezet rút csörömpöléssel megszólal...

 

Némi tűzijáték következik, majd a gép közli kézmeleg gratulációját: WALLY FELÉBREDT ÉS LETÉBEN ELŐSZÖR PONTOSAN FOG A MUNKÁBA MEGÉRKEZNI. Egy billentyű megnyomása után megnézhetjük, hány lépéssel és hány százalékra tudtuk a játékot teljesíteni.

 

A PIYAMARAMA kicsit bonyolultabb logikával rendelkezik, mint a 3 WEEKS IN PARADISE, ahol egy lépésből logikusan következik az új lépés. A logika bonyolult volta miatt, nem kommentáltuk az olyan lépéseket, amelyek későbbi manővereket készítettek elő vagy könnyítettek meg. Ha valaki jobban elmélyed a játékban, úgyis magától rájön az összefüggésekre.

 

A játék többféleképpen is megoldható, de ezen a vonalon ajánljuk, hogy a lépések sorrendjét ne kavarják össze, főleg ne hagyjanak ki lépéseket. Játék közben észrevehetik, hogy van 6-7 olyan tárgy, amit semmire sem használtunk, fel sem vettünk. Hogyan kell ezeket a megfelelő helyen elhelyezni és ezzel száz százalékra teljesíteni a játékot? Ez már a Kedves Olvasó dolga.

 

A játékot kicsit nehézkes lenne 3 élettel teljesíteni, kézenfekvőbb örökélettel: a 43883. címre kell a kívánt életek számát (1-255) bepoke-olni. Illetéktelen (és tapasztalatlan) kezektől a program bizonyos fokig védett, tehát ismertetjük a POKE bevitelének a módját:

 

A BASIC-rész betöltése után BREAK-kel állítsuk meg a programot. LIST után a 0. sorban értelmetlen adatok tűnnek fel, amiből levonhatjuk a következtetést a fejléc nélküli file-ok gépi kódú betöltője BASIC területen van. Ezt némileg módosítjuk:

 

1000 FOR i=23386 TO 23893: READ a: POKE i,a: NEXT i

1010 DATA 62,255,50,107,171,195,156,252

 

RUN 1000, OK 1001:4 után pedig RANDOMIZE USR 23844

 

Kevesebb tapasztalattal rendelkezők számára közöljük a megvalósítás elméleti menetét, hogy hasonló esetekben ne okozzon gondot a POKE bevitele: a BASIC-terület kezdetétől PEEK-kel kilistázzuk és - ha megtaláltuk - megvizsgáljuk a töltő adatait: az utolsó három-byte hívja le a betöltött programot. A 195 (JUMP) után álló két szám (156,252) határozza meg, hogy honnan indul a program (156 1+252 256), tehát utolsó 3 byte-unk tulajdonképpen BASIC-ben RANDOMIZE USR 64668 utasításnak felelne meg. Ezen három byte elé fogjuk beszúrni 5 byte hosszúságú kiegészítésünket: a második szám (255) jelenti a bevinni kívánt adatot (jelen esetben az életek számát), a 4-5. szám (107,171) pedig azt határozza meg, hogy az adat melyik címen fog elhelyezkedni. Ezt a következőképpen számolhatjuk: a második byte értékét megszorozva 256-tal és az eredményhez hozzáadva az első byte értékét kapjuk meg a címet, esetünkben a 43883-at a 107 és a 171 határozza meg. Utolsó lépésben lehívjuk a betöltő rutint.

 

 

BAT MAN

 

 

 


 

A mikroszámítógépekre készült játékprogramok íróinak kimeríthetetlen-ötletforrásai a képregények, angol nevükön comics-újságok. A képregényeket eredetileg a csökkent képességű gyermekek oktatásához használták, de a közöttük aratott hatalmas siker indokolttá tette azt, hogy a nagy közönség előtt is kipróbálják. Az ötlet kiválóan bevált, a társadalom ifjabb és idősebb rétege is osztatlan lelkesedéssel fogadta az újítást. A képregények diadalmenete napjainkban is tart: a piacon soha nem látott tömegű comics kapható (pl. Bécsben egy külvárosi boltban több, mint 2000 /!/ folytatásos képregény különféle számaiból válogathat a vásárló). A képregények a történet szempontjából a lehető legszélesebb skálát ölelik fel: a gyermekmeséktől a krimikig és a szépirodalom remekeiig szinte minden megtalálható. Külön kategóriát képeznek a - leginkább - 6-14 éves korosztálynak készült, "szuperemberek"-ről szóló sorozatok. Ezek között a-legismertebb a SUPERMAN és a BATMAN.

 

Az OCEAN cég BATMAN című játéka is a népszerű sorozat egyik epizódját dolgozza fel. A játék megvalósítása - finoman szólva - "koppintás", az ULTIMATE cég által forgalmazott játékok (ALIEN 8, KNIGHT LORE, stb.) ötletén alapul, de még ezzel a kis szépséghibával is egyike a tavalyi év legjobb arcade-játékainak.

 

A játék során a BATMAN figurát irányítjuk, célunk az autó összerakása, amelynek segítségével elindulhatunk elrabolt barátunk, Robin kiszabadítására. Az autó darabjai egy több, mint 120 szobából álló labirintusban vannak elszórva. Apró műhiba folytán minden felszerelés nélkül indulunk el, tehát a labirintusban ezeket is össze kell gyűjtenünk. A játék főmenüjében beállíthatjuk a kívánt joystick-irányítást vagy definiálhatjuk a vezérlő-billentyűket. A főmenüben ezenkívül még található két érdekes opció: a CONTROL SENSITIVITY HIGH/LOW segítségével meghatározhatjuk az irányítás "érzékenységét", vagyis hogy mennyire van hatással a billentyűk megnyomása BATMAN mozgására, majd beállíthatjuk a játék hangját is (NASTY - minden hang; USEFUL - csak a lépések-zaja; LATE AT NIGHT - csend).

 

Az autó összerakásához végig kell járni a 8 szinten elhelyezett szobákat. A szobák csapdákkal és ellenségekkel vannak telezsúfolva, tehát a végcélig csak hosszú gyakorlás után szerzett tapasztalatokkal juthatunk el. A szobák berendezési tárgyait céljaink érdekében tetszés szerint átrendezhetjük, de ha a szobát elhagyjuk az eredeti állapot fog visszaállni. Ez a tulajdonság, az esetleges átrendezési hibák korrigálására is alkalmas.

 

A csapdákon és ellenfeleken kívül a szobákban jó néhány hasznos tárgyat is találhatunk, amelyek részben a felszerelésünket képezik; részben tulajdonságainkat javítják fel (a mellékelt térképen ezeket részletesen jelöljük):

 

 

- hátizsák: a tárgyak összegyűjtéséhez szükséges

- csizmák: csak felvételük után tudunk ugrálni

- "háti távolságleküzdő szerkezet": egy rakéta, amellyel ugrás közben repülhetünk illetve fordulhatunk

- öv: nagyobb lendületet tesz lehetővé, ezáltal fokozza az ugrás nagyságát

Tulajdonságainkat a kis BATMAN figurák megszerzésével javíthatjuk. Ez több dolgot eredményezhet: sebesség megnövelése, sérthetetlenség, dupla magasságú ugrás, extra élet. Természetesen ezek a tulajdonságok csak megszabott ideig érvényesek (az erő fogyását a bal alsó sarokban lévő számlálók mutatják). Vigyázat, van olyan BATMAN-figura is, amely elveszi az addig megszerzett erőnket!

 

Az akció a 0. szinten, a START feliratú pontról indul. A játékot mindig a hátizsák felvételével kezdjük, hogy a többi tárgyat legyen hol raktároznunk. Ezután a csizmákat kell megszereznünk. A szobába lépve egy futószalagra pottyanunk, vitessük el magunkat a szoba alsó sarkába, ahol egy ellenség kóricál. Ha elég közel megy el előttünk, a 'fel'-gombot folyamatosan nyomva menjünk el mögötte a 3. beugróig. Várjuk meg amíg az ellenség elmegy, engedjük el a gombot és szaladjunk el a csizmákért.

 

Ezután térjünk vissza előbbi helyünkre, várjuk meg, míg az ellenség elmegy és mielőtt megfordulna távozzunk a szobából arra, amerről jöttünk. A csizmákat megszereztük, most már tudunk ugrálni, felugorhatunk a futószalagra. Ezen is csak ugrálva juthatunk előre, lépegetve egy helyben maradunk.

 

A csizma megszerzése után induljunk el a rakétákat is begyűjteni. A szobában a buborékot a zsámoly, majd a rakéták felé kell lökni és azután a bal oldalon lévő sámlikon a buborékkal egy magasságba kell ugrálnunk. Mivel ugrásaink most még elég kicsik ezért teljesen ki kell menni a sámli szélére (helyzetünk megítélésében segít a köpenyünk: addig mehetünk lepottyanás nélkül, ameddig még érinti a padlót). Ugráljunk be a rakéták melletti téglarakásra, menjünk ki a széléig és nyomjuk meg a 'tárgy felvétele'-gombot kétszer. A kijutás hasonlóképpen történik a bejutáshoz.

 

Mielőtt befejeznénk ténykedésünket ezen a szinten, gyűjtsük be az extra erőket. A következő szintre a "B" betűvel jelzett szobából juthatunk át. A szobában két fazék és egy kancsó látható, amelyeket a 'tárgy felvétele'-gombbal és némi mozgolódással lépcsőzetesen összeépíthetünk. Remekünket toljuk be a jobb oldali sarokba úgy, hogy a futószalag mellett álljon. Ugorjunk fel az alsó fazékra, majd az 'ugrás' és a 'tárgy felvétele' gombok együttes használatával ugorjunk a következő fokra. Ezután tegyük le a fazekat, ugorjunk fel a futószalagra, majd a liftező kockára rápottyanva átmegyünk a következő szintre.

 

Az egyes szobák teljesítésének technikáját nem kívánjuk részletezni (ezt a játékosra bízzuk), mert a játék folyamán a felmerülő nehézségeket a 0. szint szobáinak imént ismertetett "logikája" alapján kell megoldani.

 

Ha a szobákban sikerül összegyűjtenünk az autó összes részét (7 db), a 4. szinten lévő, a térképen "X" betűvel jelölt szobába kell jutnunk, ahol BATMAN beszáll az autójába és elindul Robin megmentésére. Ennél a lehetőségnél valószínűbb, hogy idő előtt elhalálozik az összes emberkénk. Ha a gép jó hozzánk, még egy lehetőséget (DOGS LIFE) kapunk az akció teljesítésére.

 

A játékban találkozhatunk felvehető kristálygömbökkel. Ha egy ilyet felveszünk, a gép megjegyzi a szobát és a játék befejeződése után, a főmenü OLD GAME opciójának választásával az új játékot ebből a szobából kezdhetjük.

 

Örökélet: A 36800. címen zérust kell elhelyeznünk !

 

 

 

MÁSOLÓPROGRAMOK

 

 

 


                                 

 COPIER FM-3

                                 

 

Régi "harcos" már a szakmában, de máig is az egyik legjobb copy-programnak számít. Memóriakapacitása 41535 byte, a betöltött file-okat darabonként vagy auto-save módban is kimenthetjük. A kimentés elindításakor "csiripelő" hangjelzést tehetünk a file-ok elejére, ami gyorskeresővel rendelkező magnók esetében roppant praktikus dolog: a BASIC-betöltőt hangjelzéssel megjelölve nagyon könnyen megtalálható a program eleje.

Betöltés után azonnal LOAD üzemmódba áll. A képernyőn több feliratot láthatunk:

-a RADIX jelzi a betöltött byte-ok hosszának a kijelzési módját, ami hexadecimális vagy decimális formában történhet. A kijelzést a SYMBOL SHIFT és a 4 billentyűk megnyomásával kapcsolhatjuk át

-SOUND: ON állásban a hangjelzés be-, OFF esetén kikapcsolt állapotban van. Az átkapcsolás a CAPS SHIFT és az 1 billentyűk megnyomásával történik.

A következő sorban láthatjuk a betöltött file-okra vonatkozó adatokat:

 

-T: a file típusa ( P : BASIC ; C : gépi kód ; N : számtömb vagy adattömb)

-NAME : a file neve

-LENGTH: a file fejléc szerinti hossza

-ADDR.: töltési cím

-BYTES: a betöltött adatok száma

-E: hiba esetén az aktuális sorban egy csillagot láthatunk. Hibajelzést kapunk, ha:

1. olyan fejlécet olvasunk be, amelyben a LENGTH érték nagyobb, mint 41535

2. a program értelmezhetetlen fejlécet talál

3. a file betöltése után a LENGTH és a BYTES érték nem egyezik (ha a két érték egyezik és mégis csillagot látunk a sor után, a file hibás, visszatöltéskor Tape loading error hibaüzenetet vagy rendszerresetet eredményez. SCREENS esetén például összekeverednek az attribútumok)

4. olyan fejléc nélküli file-t töltöttünk be amely hosszabb 41535-nél

 

Néhány program fejlécében látszólag hibás értékek szerepelnek. Pl. a CAVELON játékprogram főkódjában a LENGTH érték 39000 a betöltött BYTES érték pedig csak 26000. Természetesen hibaüzenetet kapunk, de - mivel másolhatjuk a hibás file-okat is - a program kimentés után működik. Tehát ha ilyennel találkozunk és nem a szalagba töröltünk bele, gondoljunk az ilyen programozói turpisságokra is. Előfordulhat, hogy a fejléc nélküli file betöltése után "P .......... 0  0  0" jelzést látunk. Ez nem hiba, ha így kimentjük a file-t, hibátlanul működni fog.

 

A CAPS SHIFT és E billentyűk megnyomása után a másolót "kilőhetjük", de ez csak egy RET assembly-utasításnak felel meg, ezután még célszerű kiadni a következőt: RANDOMIZE USR 0 !

 

 

 

 

 

BEVEZETÉS

 

 

A ZX Spectrum számítógépekhez forgalmazott felhasználói software-ek jelentős részét a programozást elősegítő, úgynevezett toolkit-programok teszik ki. Ezek általában másolás útján, leírás nélkül kerülnek hazánk Spectrum-tulajdonosainak birtokába. Ez a körülmény célszerű felhasználásukat - enyhén szólva - nehézkessé (pontosabban: lehetetlenné) teszi, különösen akkor, ha például nem csak egy egyszerű rajzolóprogramról, hanem egy olyan bonyolult programozási rendszerről van szó, mint a WHITE LIGHTNING. Az LSI ATSz. Spectrum-programokkal foglalkozó kiadványaiban rendre találkozhattunk már toolkit-programok felhasználói leírásaival, de a WHITE LIGHTNING-ról még nem esett szó. Az alábbiakban egy olyan toolkit-programot mutatunk be részletesen, amely Magyarországon közkézen forog (minden Spectrum-klubban hozzáférhető), de a hozzátartozó leírás szinte sehol sem érhető el. A program ismertetését folytatásokban tervezzük, a későbbiekben megjelenő "SPECTRUM-világ" kiadványok középső négy oldalán. Az elhelyezés nem véletlen: a belső lapok kiszedhetőek és a sorozat befejezése után be lehet köttetni.

 

Mielőtt még részletesebben foglalkoznánk a WHITE LIGHTNING-gal meg szeretnénk említeni a LIGHTNING-programcsomag "testvéröccsét", a szintén az OASIS Software Inc. által, 1986-ban publikált LASER-családot. Ezen programrendszer LASER BASIC alprogramja rendkívül sok hasonlóságot mutat a WHITE LIGHTNING-gal, nem titkolt továbbfejlesztése. Ezzel a programcsaláddal (LASER BASIC, COMPILER, GENIUS) részletesebben megismerkedhettek a "Sinclair SPECTRUM játék és program III." című, az LSI ATSz. gondozásában 1987-ben megjelent kiadványban. A két programcsalád nyelvezete rendkívül hasonló, aki az egyiket ismeri, annak a másik megtanulása már nem okozhat problémát.

 

Hát akkor lássuk a medvét...

 

 

A WHITE LIGHTNING egy magas szintű programozási rendszer a 48 kbyte-os Spectrum számítógépen. Elsősorban azoknak íródott, akik kedvet éreznek a játékok írásához és ehhez van türelmük megtanulni egy új programozási nyelvet. A LIGHTNING nem egy játéktervező-program és nem olyan, amellyel egy nap leforgása alatt máris szédületes eredményt érhetnénk el, de lehetőséget nyújt arra, hogy jó programokat írhassunk. Külön előny az is, hogy a WHITE LIGHTNING által megírt programok minden szabadalmi megkötés nélkül értékesíthetőek.

 

Minden programozóban felvetődik a kérdés: melyik a jó programozási nyelv? Közelítsük meg ezt a kérdést most a játékok oldaláról: BASIC-en kívül Spectrum számítógépeken leggyakrabban használt magas szintű nyelvnek, az assembly-nek három előnye van a többivel szemben: a gyorsaság, a rugalmasság és a tömörség. Ez különösen az arcade-stílusú játékok futtatásakor jelentkezik: a processzor ideje nagy részét a képpont-adatok kezelésével tölti, mégis a játékok legnagyobb része gyors, jól animált, élvezetes. Ebből már adódik a következtetés: ha a programozási szükségletnek megfelelő toolkit-utasítások egy célszerű nyelvben össze vannak foglalva, a program megírási és végrehajtási ideje jelentősen megrövidül (megjegyzendő, hogy elég sok időbe kerül a végrehajtás sebességét optimalizálni).

 

Hasonlítsuk össze a WHITE LIGHTNING-ot az assemblyvel: ami a nyelv rugalmasságát illeti 300 (!) utasítással rendelkezik amellett, hogy szükség esetén - kombináltan - hozzáférhető a Spectrum-BASIC és a gépi kód is. Tömörségéről annyit, hogy az általa - többek között - kezelt FORTH nyelv legfőbb jellemzője a maximális tömörségre való törekvés. Az assembly nyelv a programozók egyik legkiválóbb eszköze, azonban van néhány hátránya is. Például meg kell tanulni, bár ez mondjuk a többi nyelvre is érvényes. Megtanulása után a programírás kissé körülményes (pl, más nyelvektől eltérően nincs közvetlen védelem a programok kiakadása-ellen). Hatásos eredmények eléréséhez igen jól kell ismerni a gépi kódú programozás szabályait. Ebből a szempontból a BASIC jóval előnyösebb: a hibaüzeneteket, generáló rutinok kitűnő védelmet nyújtanak a programunknak, az utasítások könnyen elérhetőek és - angolul tudók esetében - rövid idő alatt megtanulhatóak. Ezek a tulajdonságok a hobbiból programozok szemében kiváló nyelvvé emelik a BASIC-et, de a profi játékíróknak a nyelv nem megfelelő mind sebességet, mind rugalmasságot tekintve. Mivel a WHITE LIGTNING - részben - a FORTH nyelvre lett alapozva, gyorsasága a gépi kódéhoz hasonló, nem. szükséges a gép alapos ismerete és a programok elég jól védve vannak az "elszállás" ellen.

 

Mielőtt részletesen "elmélyülnénk" a programban nézzük át néhány szó erejéig a WHITE LIGHTNING által nyújtott lehetőségeket:

 

Sprite-tervezés és UDG-karakterek

 

A WHITE LIGHTNING tartalmaz egy sprite-generátort és egy 167 ábrából álló készletet, amely sok arcade játék figuráit tartalpazza (Asteroids, Pacman, Scranble, Defender, Space Invaders, City Bomber, Lunar Lander, Frogger, Centipede, Donkey Kong és még sokan mások). Ezenkívül 255 sprite-ot definiálhatunk saját használatunkra, amelyeket forgathatunk, tükrözhetünk, invertálhatunk és még sok más műveletet végezhetünk velük. A munka befejezése után a későbbi felhasználás céljából - az elkészült sprite-jainkat magnóra menthetjük.

 

Az IDEAL-nyelv

 

A LIGHTNING nyelve két részből áll: az egyik a szupergyors Integer-FORTH, amelyet a Fig-FORTH támogat; a másik egy megszakítás-vezérelt kiterjesztett animációs nyelv az IDEAL (Interrupt Driven Extended Animation Language). A játékíróknak ez a program legfontosabb része: több mint 100 utasítást tartalmaz, amelyeket szabadon keverhetünk mind a FORTH, mind a BASIC-utasításokkal.

 

Megszakításvezérlés

 

A FORTH/IDEAL parancsok végrehajthatóak interrupt módban is. Ez azt jelenti, hogy pl. egy játék háttere és előtere egyszerre vezérelhető. Tegyük fel, hogy a játékunk amit írunk, tartalmaz a háttérben egy scroll-t, az előtérben pedig egy sprite-mozgatást. A WHITE LIGHTNING ezeket párhuzamosan végzi el, megszabadítva a felhasználót a komplex időszámításoktól.

 

 

OASIS SOFTWARE

9.a Alexandra Parade

Weston Super-Mare

AVON BS23 IQT

ENGLAND

 

 

 

Animációs nyelv

 

A szerzők sok időt fordítottak arra, hogy lehetővé tegyék az egyik gépen LIGHTNING programmal megírt programok futtatását a másik gépen is. Az egyetlen nagyobb változtatás, amire szükség volt, adaptálni a különböző képernyőformátumokat, azaz az oszlopok és a sorok számát. Emiatt már nem kell aggódnunk, ezt elvégzi az IDEAL. Van azonban néhány tiltás, amely nem engedi meg az attribútumok mozgatását a pixelek nélkül.

 

BASIC-lehetőségek

 

Ha ez idáig még nem ismerkedtünk meg a FORTH nyelvvel, az IDEAL-hoz hozzáférhetünk BASIC-kel is. A megírt programok így veszítenek gyorsaságukból és csillogásukból, de azért még tökéletesek maradnak. A BASIC nagyobb memóriaterületet igényel, ezt jó ha figyelembe vesszük mielőtt még letennénk a FORTH elsajátításáról. A legtöbb hangot és grafikát kezelő utasítást (BEEP, DRAW stb.) belevették a SpectraForth nyelvbe, célszerűbb tehát ezeket nem BASIC-ből hívni, mivel FORTH-ban sokkal gyorsabbak.

 

Kiterjesztések

 

A FORTH egy kiterjeszthető nyelvjárás, ez volt az oka annak, hogy az IDEAL nyelv mellett bekerült a programba. Az általunk alkalmazni kívánt új szavakat a FORTH és IDEAL szavakkal, vagy a már előzőleg meghatározott szavaink kombinációjával definiálhatjuk.

 

I. rész : A SPRITE-GENERATOR

 

A program ezen része sprite-ok és képernyő-adatok kezelésére szolgáló utasításokat foglal magába, de közvetlenül nem alkalmas sprite-vezérlésre. Ez azt jelenti, hogy egy játékot két fázisban kell elkészítenünk: az egyik fázisban sprite-okat tervezünk és szerkesztünk, a másodikban pedig magát a játékot írjuk meg a LIGHTNING-gal. A gyakorlatban a két fázis tulajdonképpen egymás mellett valósul meg. A program SPT/GEN néven található meg a kazettán, hagyományos módon, LOAD "" paranccsal tölthető be. Önállóan is működőképes, tehát saját - nem a WHITE LIGHTNING-ban történő - felhasználásra is tervezhetünk vele sprite-okat.

 

Azoknak, akik nem kívánnak új szimbólumokat készíteni, hanem megelégszenek az ismert arcade játékok figuráival, rendelkezésükre áll az arcade-készlet. Ez összesen 167 szimbólumot tartalmaz, megtekintésük a DEMO behívásával lehetséges. Ebben a 'Z' billentyű megnyomásával szelektálhatunk. Az arcade készleten kívül rendelkezésre állnak a demo-sprite-ok is: a szalagon a WHITE LIGHTNING program után találhatjuk őket.

 

 

 

HARDWARE ÖTLETEK

 

 

 


 

VIDEO KIMENET A SPECTRUM 16/48K GÉPRE ÉS ZX-81-RE

 

Mint tudjuk a Spectrumban az ULA állítja elő a videó-jelet. Ez a hátsó élcsatlakozó egyik lábán is megjelenik, az UHF modulátor ebből állítja elő a 36. csatornának megfelelő antennajelet. A gépre mégsem került külön videocsatlakozó aljzat, pedig gyakran szükségünk lehet rá (pl. videomonitor felhasználásakor vagy a képminőség javításánál). Ha szétszereljük a Spectrumot, hamar beláthatjuk, hogy a videó-csatlakozót legcélszerűbb az UHF modulátornál az antennakimenet mellett elhelyezni. A legegyszerűbb az RCA típusú aljzat beépítése, hiszen videó-készülékekhez, monitorokhoz ez az egyik leggyakrabban használt típus és hazánkban probléma nélkül beszerezhető. RCA aljzatból is több típus is van, célszerűbb a beépíthető, szerelhető kivitelt megvenni, mert az átjátszó vezetékre szerelhető lengő RCA aljzat beszerelésekor gondokba ütközhetünk. Az ASTEC-típusú UHF modulátor bal oldalán egy műanyag tokot találunk, amelynek az antennakimenettől távolabb eső bemenetére csatlakozik egy vezeték. Itt kapja a modulátor a videó-jelet.

 

a/ Egyszerű megoldás, túlvezérelt jellel:

 

Az ábrán látható módon forrasszuk fel az RCA aljzatot az UHF modulátor oldalára, majd az RCA aljzat középső pólusát egy hajlékony vezetékszakasz segítségével kössük össze a videó-lábbal. A Spectrum műanyag dobozának felső részén az RCA aljzatnak megfelelő méretű kivágást kell eszközölnünk (nem árt, ha esztétikai szempontokat is figyelembe veszünk). A megoldás működőképes, de a szabvány 1 V/75 Ohm videó-jel helyett 3 V-os jelet ad le, tehát ha a vevőkészülék nem a Spectrumhoz lett beállítva, a túlvezérelt video jel torzítást okozhat.

 

b/ A túlvezérelt jel beszabályozása

 

E megoldás, hogy a videó-jelet egy egytranzisztoros emitterkövető kapcsoláson vezetjük át. Így megkapjuk az 1 V/75 Ohm értéket. Az alkatrészlista:

 

Tranzisztor

1 db. 2N 2219 TR1

Kondenzátor

1 db. 100pF 16V ELKO C1

Ellenállások

1 db. Trimer 100 Ohm RV1

1 db. 1 kOhm 1/4 W R1

2 db. 68 Ohm 1/4 W R2,R3

Kapcsoló

1 db. kétállású Kl

 

Az áramkör szíve a 2N 2219 típusú n-p-n szilícium tranzisztor. A szükséges 1 V értéket a trimmerellenálláson kell beszabályozni. Fontos, hogy a trimmerellenállás szénréteg ellenállás legyen, mert tekercselt huzal esetén a szórt induktivitás a magasfrekvencián elhangolódáshoz vezethet. Spectrum esetén a "K" kapcsolónak zárt állásban kell lennie. A kapcsolás a ZX-81-en is működik, de ez esetben a "K" kapcsolót nyitnunk kell.

 

 

 

PAINTBOX III/1.

 

 

 


 

 

PRINT 'N' PLOTTER

 

PAINTBOX

 

GRAPHICS TOOLKIT

 

 

 

A VEZÉRLŐBILLENTYŰK FUNKCIÓI

 

'5':     Kurzor balra         '6':     Kurzor fel

'7':     Kurzor le            '8':     Kurzor jobbra

'9':     GRAPHICS             '0':     Kiválasztás

'A':     ARC                  'BREAK': Kiszállás

'E':     ERASE                'F':     FILL

'H':     CIRCLE               'J':     LOAD

'K':     Kereszt alakú kurzor 'M':     Pixel-kurzor

'N':     OVER                 'P':     PERMANENT

'Q':     PLOT                 'R':     RADIAL MODE

'S':     SAVE                 'SHIFT': A kurzormozgás lassítása

 

Bevezetés

 

A PAINTBOX egy önálló grafikus programozási segédeszköz a ZX Spectrum felhasználóinak. A program írói egyetlen átfogó gépi kódú rutinba foglalták össze azokat az eszközöket, amelyek a számítógéppel való rajzoláshoz kiváló segítséget nyújtanak. A PAINTBOX-ot úgy írták meg, hogy teljesen kompatibilis legyen a JOTTER nevű grafikus tervező programmal, vagyis azzal együtt is lehessen használni. Ezzel a két programmal a Spectrum kiváló grafikai tervező számítógéppé válik. A program valamennyi felhasználási üzemmódja kimenthető a későbbi BASIC vagy gépi kódú programokban történő felhasználáshoz.

 

A PAINTBOX behívása

 

Az gyári kazettán az A-oldalon a PAINTBOX, a B-oldalon pedig a DEMO található, mindkettő hagyományos módon tölthető be. Betöltődés után a program automatikusan elindul és kiírja a segédeszközök listáját. A kívánt segédeszköz meghatározása után ki kell választanunk, hogy a kurzort milyen módon kívánjuk irányítani:

 

- billentyűzet (kurzor-billentyűk)

- Kempston joystick

 

Azoknál a joystick-oknál, amelyek a kurzor-billentyűkre adják a vezérlést (PROTEK, AGF, FULLER, CURSOR), a billentyűzet opciót kell választanunk.

 

Az UDG Editor

 

Mint ismeretes, a Spectrum egyszerre 21 db UDG karakter tervezésére ad lehetőséget, de nemritkán ennél többre is szükségünk lenne. A PAINTBOX-ban egyidőben összesen 84 UDG-karaktert használhatunk fel. Ez nem befolyásolja a normál karakterkészletet és a kibővített grafikus készletet beépíthetővé teszi bármilyen saját programba. Az UDG Editor választása után azonnal egy újabb menüt láthatunk, amelyben a következő opciók állnak rendelkezésünkre:

 

- VIEW UDG BANKS (az UDG készletek szemléje)

 

Az opció választásakor megjelenik a négy rendelkezésre álló UDG-készlet. Maga az UDG terület az A-U közötti betűket tartalmazza és legfelül helyezkedik el. Alapállapotban a készletek a program írói által gyártott karakterekkel vannak feltöltve de ezek természetesen tetszés szerint átdefiniálhatóak.

 

- RECALL n (UDG-készlet behívása)

 

Az opció választására kívánt készlet (n) betöltődik az UDG-területre.

 

- SAVE (a memóriában lévő készlet tárolása)

 

Az opció választásakor az UDG-területen lévő felhasználói karakterkészlet átmásolódik az egyik meglévő készletmemóriában fenntartott helyére. A szalagra történő kimentéshez a VIEW BANK-menü 5. opcióját kell választanunk.

 

SKETCH PAD / vázlatfüzet /

 

A VIEW BANKS-menüből a 4. opció (MAIN MENU) választásával térhetünk vissza a főmenübe. Itt a SKETCH PAD opciót választva előhívhatjuk a vázlatkészítő füzetet, amelyen ki lehet próbálni az egymás mellé szánt UDG-karaktereket. A képernyő tetején a pillanatnyilag aktuális karakterkészlet látható. A villogó kurzort bármelyik irányban végigvihetjük a készlet mentén. A kiírásra szánt karakterek kiválasztásához nyomjuk meg a hozzá tartozó betű-billentyűt. A kiíratni nem kívánt karaktereket felülírhatjuk SPACE billentyűvel (sem a CAPS SHIFT billentyű, sem pedig a GRAPHICS üzemmód használatára nincs szükség). A visszatérés a főmenühöz a '4' billentyű megnyomásával lehetséges.

 

DRAWING BOARD / rajztábla /

 

Bármilyen grafikus segédeszköz haszontalan lenne, ha csak néhány előre definiált karakterkészletet tartalmazna. A PAINTBOX programban azonban mind a 84 karaktert tetszés szerint módosíthatjuk illetve újratervezhetjük őket a 2. opció segítségével, ahol a következő opciókat tartalmazó listában válogathatunk.

 

-NORMAL CHARACTER

 

Az opció választásakor a gép megkérdezi, hogy melyik Spectrum-karaktert kívánjuk módosítani. Választásunkat a megfelelő billentyű (szükség esetén a CAPS SHIFT) megnyomásával jelezhetjük a gépnek.

 

-UDG CHARACTER

 

Az opció választásakor a gép megkérdezi, hogy melyik UDG-karaktert kívánjuk módosítani a képernyő tetején látható készletből. Választásunkat a karakterhez tartozó betű (A-U) megnyomásával közöljük a géppel.

 

-BLANK CHARACTER

 

Az opció választásakor egy üres karaktert láthatunk. Az elméletileg 8x8 pixel méretű karakter bal felső sarkában megjelenik egy vörös kurzor, amelyet a karakter szimbólumán belül az irányító billentyűkkel mozgathatunk. Ha valamelyik pixel-pozícióban megnyomjuk a '0' gombot, az a karakterben INK színű lesz. A rács mellett látható az adott pixelsort a memóriában definiáló decimális byte is. Ha a karakter definiálását befejeztük, nyomjuk meg az 'ENTER' billentyűt. Ekkor megjelenik egy menü, amelyben a következő opciók között válogathatunk:

 

-FILEWORK: elhelyezni a karaktert az általunk választott készletben

-INVERSE : invertálja a karaktert

-ROTATE : elforgatja a karaktert 90 fokkal

-MIRROR : a karakter tükörképét adja

 

Szalagműveletek

 

Az UDG-menü 5. (SAVE) opciója lehetővé teszi a memóriában lévő négy karakterkészlet egyidejű kimentését. Az opció választása után be kell gépelnünk a karakterkészlet max. 6 karakter hosszúságú nevét, majd a gép ezen a néven szalagra menti az UDG-ket a kezelésükhöz szükséges kódrutinnal együtt. Az UDG-menü 4. (LOAD) opciója az 5. opció szerint kimentett készleteket tölti be a magnóról.

 

UDG készletek

 

Ha az UDG-készleteket nem a PRECISION PLOTTER (ld. később) képernyőinél kívánjuk felhasználni, valamely UDG-karakterállományt tartalmazó BASIC-program betöltésekor - az UDG-ket megvédendő - a következő parancsot kell kiadnunk:

 

CLEAR 64567: LOAD "": LOAD "(az állomány neve)" CODE

 

Az UDG-készletekből négy darabot tudunk egyszerre tárolni, de ahhoz, hogy bármelyik aktuális készletté váljon, saját kódrutin szükséges. Ha - más programban történő felhasználás esetén - valamelyik karakterkészlet valamelyik karakterét a PRINT utasítás használatával ki kívánjuk a képernyőre íratni, a PRINT előtt lévő valamelyik sorban meg kell hívnunk a készlethez tartozó rutint. A különböző készletekhez tartozó rutinok indítása a következő módon történik:

 

1.készlet: RANDOMIZE USR 65153

2.készlet: RANDOMIZE USR 64958

3.készlet: RANDOMIZE USR 64763

4.készlet: RANDOMIZE USR 64568

 

Fontos megjegyzés: Ha a programunkban alkalmazni kívánunk RND függvény által előállított véletlenszerű szárukat, előfordulhat, hogy a gépi kódot hívó RANDOMIZE utasítás megváltoztatja a számainkat. Célszerű ilyenkor egy változót használni a karakterkészletek aktivizálására:

 

LET a= USR (a kívánt készlet címe): RANDOMIZE a

 

 

 

BASIC

 

 

 


 

Egyszerű BASIC tool-kit lehetőségek

 

a/ DELETE

 

Ha BASIC programunk egy hosszabb részétől akarunk megszabadulni, és nincs kéznél DELETE segédrutin, akkor segíthet ez az egyszerű POKE-PEEK trükk. Hátránya, hogy csak a program végén lévő blokkokat képes törölni. Törli a változókat is. A két POKE-nak és a CLEAR-nek egy sorban kell lennie és egyikük sem hagyható el. Minden esetben az ezen utasításokat követő sortól a program végéig törlődik a BASIC. A mintaprogram futtatása után a- 70-90. sorok eltűnnek.

 

   10 REM

   20 REM

   30 REM

   40 POKE 23627,PEEK 23637:POKE 23628,PEEK 23638:CLEAR

   70 REM

   80 REM

   90 REM

 

b/ RENUMBER

 

Gyakran szükségünk lehet BASIC programunk írása közben a programsorok átsorszámozására. Nem mindig van kéznél gépi kódú RENUMBER, nem beszélve arról, hogy többségük komplex program része, s lehet hogy a memóriatakarékosság miatt nincs lehetőség a TOOL-KIT-et betölteni, Az itt közölt program a RUN 9986 utasítással bekéri az átsorszámozni kívánt blokk-startsorának számát, majd az átsorszámozás lépésközét. Ezután a teljes BASIC programot átsorszámozza a 9985. sorig bezárólag.

 

   10 REM

   14 REM

   16 REM

  100 REM

  123 REM

 9986 DEF FN p()=PEEK 23635+256*PEEK 23636

 9987 DEF FN l(a)=256*PEEK a+PEEK (a+1)

 9988 LET p=FN p()

 9989 INPUT "start sorszam: ";so

 9990 INPUT "lepeskoz: ";io

 9991 PRINT "regi";TAB(10);"uj"

 9992 LET l=FN l(p)

 9993 IF l>9985 THEN STOP

 9994 PRINT l;TAB(10);so

 9995 POKE p,INT (so/256)

 9996 POKE p+1,so-INT(so/256)*256

 9997 LET so=so+io

 9998 LET p=p+4+PEEK (p+2)+256*PEEK (p+3)

 9999 GO TO 9992

 

 

 

Modern művészet BASIC-ben

 

Bizonyára kevesen mondanák meg erről a néhány soros BASIC programról, valójában mit is csinál. Igen látványos grafikai montázst jelenít meg a képernyőn, az elemek keveredésével két azonos kép megjelenésének valószínűsége igen csekély. Ha a 20. sor végén lévő számot megváltoztatjuk, pl. 1,2,3,4, stb. értékre, különböző hatásokat érhetünk el, az egyszerű vonalkomponensektől egészen Victor Vasarely művészi szintjét megközelítő grafikáig.

 

   10 BORDER 7: PAPER 7: INK 0: CLS

   20 LET a=INT (RND*70)+100

   30 LET b=INT (RND*60)

   40 LET c=INT (RND*3)-4

   50 FOR i=a TO b STEP c

   60 PLOT  i,i: DRAW 0,175-2*i

   70 DRAW 255-2*i,0

   80 DRAW 0,-175+2*i

   90 DRAW -255+2*i,0

  100 INK RND*6: BORDER RND*6

  110 OVER 1

  120 NEXT i

  130 GO TO 20

 

 

 

PROGRAMOZÁSTECHNIKA

 

 

 


 

A RAJZFILMKÉSZÍTÉS kezdeti lépései ZX Spectrumon

 

Az animáció a rajzfilmkészítéshez hasonlóan több kép egymást követő előhívásával oldható meg. Célszerű a képeket (fázisokat) előre elkészíteni, hiszen az animáció közben ezt nem tudjuk megfelelő gyorsasággal elvégezni. Az alábbiakban ismertetett gépi-kódú rutin két főbb részből áll. Az első rész (40000-40068) segítségével hívhatjuk elő az egyes fázisokat a képernyő előre meghatározott részére, míg a második rész (40069=40117) az általunk elkészített fázisokat helyezi el a memória hátsó területére. Egy képernyő-ablak (fázis) mérete nem kötött, bár az itt ismertetett rutin felhasználásával max. 32 karakter széles és 8 karakter magas ablakot használhatunk. Nem történik meg a képernyőharmadok közötti címvizsgálat sem (ez egyébként a box-scroll-oknál ismert módon módosítható), ezért vigyázzunk, hogy az ablakunk ne csússzon át a képernyőharmadokon!

Mintaprogramunkban 4 db 16 karakter széles és 8 karakter magas méretű animációs fázist készítünk (egyébként a fázisok száma tetszőleges, határt csak a rendelkezésre álló memória szab). Függetlenül a fázis megjelenítési pozíciójától, a fázisok elkészítését célszere egy bizonyos helyen elvégezni, legyen ez pl. a képernyő bal felső sarka. Ennek megfelelően a DE regiszterbe 16384-et állítunk be. A HL regiszterben megadott 40121. cím a memória azon címe, ahonnan a fázisok tárolása kezdődik. Az A regiszterben adjuk meg az aktuális animációs fázis számát (1,2,..), BC-ben pedig az animációs ablak adatainak végösszegét. Ez jelen esetben 16x8-as ablak révén 1152, vagyis a képpont adatok mellett az ATTR adatokat is tartalmazza. Ez az érték azért szükséges, mert fázisonként ennyivel léptetjük tovább a memóriamutatót. A rutin ezt követően elvégzi a képpont adatok, majd az attributumok átmásolását a megfelelő helyre. Az adatok visszahívása fordítottan történik, de itt előre beállíthatjuk, a megjelenítés pozícióját a 40118/40119 címeken. Mindkét mechanizmusban tetszés szerint módosítható az ablak mérete a meghatározott címeken.

A gépi kódú rutin vezérlése BASIC-ből történik. Görgessünk egy hordót a képernyő felső harmadában. 4 fázist készítünk. A BASIC program első részében a képernyő-fényképezés történik, vagyis egymás után felrajzoljuk a fázisokat, beállítjuk a fázis számát, majd elvégezzük a tárolást (a 9000. sorban elhelyezett szubrutin segítségével). A 4 fázis "fényképezése" után következik a vezérlő szakasz, melynek végrehajtója a 9100-as sorban elhelyezett szubrutin. Itt állítjuk be a fázis számát ill. a megjelenítési pozíció kezdőcímét. Fokozatosan csökkenő értékű időtagot beiktatva a hordó forgása egyre gyorsabbá válik. A soron következő fázis képe az előzőét törli, egy karakteroszlop kivételével, ezért hagyunk az ablak két szélén 1-1 üres karakteroszlopot. Ha a képeket már egyszer eltároltuk a memóriában, azt kód formájában kimenthetjük a rutinnal együtt, így legközelebb már nem kell a rajzolási műveletet végrehajtani. Jelen esetben az eltárolt négy fázis kód hossza 4x1152=4608 byte, a rutin és a hivatkozási címek együttes hossza pedig 121 byte, így a kimentés a SAVE "név" CODE 40000,4729 utasítással végezhető el. Természetesen ezután a BASIC részben már csak a 340. sortál lesz szükségünk a programra, de ezt is átírhatjuk gépi kódba.

A rutin nagyon sokrétű lehetőséget tál elénk, az oktatóprogramoktól a saját játékokig. A további kimunkáláshoz sok sikert!

 

 

 

   10 REM elso fazis

   20 GO SUB 600

   30 PLOT 10,144: DRAW 108,0

   40 PLOT.40,112: DRAW 0,61

   50 PLOT 19,165: DRAW 44,-44: DRAW 47,0

   60 PLOT 19,121: DRAW 44,44: DRAW 47,0

   70 LET a=i: GO SUB 9000

   80 PAUSE 100: CLS

   90 REM masodik fazis

  100 GO SUB 600

  110 PLOT 23,167: DRAW 35,-51: DRAW 47,0

  120 PLOT 34,113: DRAW 13,60: DRAW 47,0

  130 PLOT 15,126: DRAW 52,34: DRAW 47,0

  140 PLOT 11,149: DRAW 60,-12: DRAW 47,0

  150 LET a=2: GO SUB 9000

  160 PAUSE 100: CLS

  170 REM harmadik fazis

  180 GO SUB 600

  190 PLOT 28,171: DRAW 25,-56: DRAW 47,0

  200 PLOT 12,154: DRAW 57,-25: DRAW 47,0

  210 PLOT 12,132: DRAW 57,25: DRAW 47,0

  220 PLOT 27,115: DRAW 25,56: DRAW 47,0

  230 LET a=3: GO SUB 9000

  240 PAUSE 100: CLS

  250 REM negyedik fazis

  260 GO SUB 600

  270 PLOT 33,173:DRAW 13,-60:DRAW 47,0

  280 PLOT 15,159: DRAW 52,-34: DRAW 47,0

  290 PLOT 11,137: DRAW 60,12: DRAW 47,0

  300 PLOT 22,118: DRAW 36,52: DRAW 47,0

  310 LET a=4: GO SUB 9000

  320 PAUSE 100: CLS

  330 PLOT 0,111: DRAW 255,0: PLOT 0,110: DRAW 255,0: PLOT 0,109: DRAW 255,0

  340 REM vezerlo blokk

  350 LET a=1: LET b=0: LET c=0

  360 LET i=7

  370 GO SUB 9100

  380 LET a=a+1

  390 IF a>4 THEN LET a=1

  400 LET c=c+1

  410 PAUSE i

  420 IF c<16 THEN GO TO 360

  430 GO SUB 9100

  440 a=a-1

  450 IF a<1 THEN LET a=4

  460 LET c=c-1

  470 PAUSE i

  480 IF c>0 THEN GO TO 430

  490 LET i=i-1

  500 IF i<1 THEN STOP

  510 GO TO 370

  600 CIRCLE 41,143,31: PLOT 88,1 74: DRAW 0,-62,-PI: PLOT 40,174: DRAW 48,0: PLOT 40,112: DRAW 48, 0: RETURN

 9000 POKE 40120,a: RANDOMIZE USR 40069: RETURN

 9100 POKE 40120,a: POKE 40118,c: POKE 40119,64: RANDOMIZE USR 40000: RETURN

 

 

40000 237,91,182,156   LD DE,(40118)

40004 33,185,156       LD HL,40121

40007 58,184,156       LD A,(40120)

40010 1,128,4          LD BC,1152

40013 61               DEC A

40014 40,3             JR Z,40019

40016 9                ADD HL,BC

40017 24,250           JR 40013

40019 62,64            LD A,64

40021 1,16,0           LD BC,16

40024 197              PUSH BC

40025 237,176          LDIR

40027 193              POP BC

40028 235              EX DE,HL

40029 9                ADD HL,BC

40030 235              EX DE,HL

40031 61               DEC A

40032 32,246           JR NZ,40024

40034 22,88            LD D,88

40036 58,182,156       LD A,(40118)

40039 95               LD E,A

40040 58,183,156       LD A,(40119)

40043 214,64           SUB 64

40045 203,63           SRL A

40047 203,63           SRL A

40049 203,63           SRL A

40051 130              ADD A,D

40052 87               LD D,A

40053 62,8             LD A,8

40055 1,16,0           LD BC,16

40058 197              PUSH BC

40059 237,176          LDIR

40061 193              POP BC

40062 235              EX DE,HL

40063 9                ADD HL,BC

40064 235              EX DE,HL

40065 61               DEC A

40066 32,246           JR NZ,40058

40068 201              RET

40069 17,0,64          LD DE,16384

40072 33,185,156       LD HL,40121

40075 58,184,156       LD A,(40120)

40078 1,128,4          LD BC,1152

40081 61               DEC A

40082 40,3             JR Z,40087

40084 9                ADD HL,BC

40085 24,250           JR 40081

40087 235              EX DE,HL

40088 62,64            LD A,64

40090 1,16,0           LD BC,16

40093 197              PUSH BC

40094 237,176          LDIR

40096 193              POP BC

40097 9                ADD HL,BC

40098 61               DEC A

40099 32,248           JR NZ,40093

40101 33,0,88          LD HL,22528

40104 62,8             LD A,8

40106 1.16,0           LD BC,16

40109 197              PUSH BC

40110 237,176          LDIR

40112 193              POP BC

40113 9                ADD HL,BC

40114 61               DEC A

40115 32,248           JR NZ,40109

40117 201              RET

---------------------------------------

40118 0                DATAB 0

40119 64               DATAB 64

40120 2                DATAB 2

40121 ...              Kép adatok

                       startcíme

 



 

 

 

GÉPI KÓD TANFOLYAM I.

 

 

 


 

Az itt induló sorozatot elsősorban azoknak ajánljuk, akik a BASIC programozás korlátait szeretnék kikerülni, szeretnék meggyorsítani programjaik futását, egyszóval meg akarják tanulni ezt az első látásra "bevehetetlen erődöt", a gépi-kódot. Sajnos a magas szintű nyelvek (pl. BASIC v. PASCAL) használatában kezdőknek és haladóknak egyaránt az alapoktól kell elindulniuk ha először foglalkoznak ezzel a témával.

 

Mi is az a gépi kódú program?

 

A gépi kódú program számok meghatározott sorozata. Ezek a számok (a továbbiakban kódok) a számítógép memóriájában találhatók, innen olvassa ki ezeket a mikroprocesszor a gép központi egysége. A kódok egyben gépi kódú utasítások is. A processzor a memóriából beolvasott kódot azonosítja, és egy végrehajtási láncot párosít hozzá, ugyanis egy kis belső könyvtárral rendelkezik, és az ott található mikroprogramokat futtatja. Ha a memóriában pl. 201 lett elhelyezve, és ezt értelmezi a processzor, akkor neki erre egy visszatérést kell végrehajtania (részletesebben ld. később). Ez így mind szép, de gépi kódban programot írni csak a számokkal kicsit nehézkes lenne, még gyakorlottabbak sem biztos hogy kapásból választ tudnának adni arra, mit jelent a 197 vagy a 73. Ezért vezették be az assembly formátumot. Megoszlanak a vélemények afelől, hogy az assembly nyelv gépi kód-e, vagy valami más? Nos az assembly a gépi kód jelentéstartalmát tükröző, azt az ember számára érthetőbbé tévő nyelvezet. Az assembly nyelvben minden gépi kódhoz (számhoz) egy megfelelő utasítás (mnemonik) tartozik. Ez az angol kifejezések rövidítéseiből kialakult kódrendszer. A 201-nek pl. RET az assembly megfelelője, így már mindjárt emberközelibb (RET = RETURN vagyis visszatérés). Az assembly nyelvezet megkönnyíti a felhasználó számára a gépi kódú programok megírását. A gép viszont az assembly nyelvezetet közvetlenül nem érti meg, tehát azt egy megfelelő fordítóprogram segítségével gépi kóddá kell alakítanunk. Ezt a fordítóprogramot hívjuk assemblernek. A disassembler pedig ennek a fordítottja, vagyis a nehezebben értelmezhető gépi kódot fordítja át nekünk felhasználóknak assembly nyelvezetre.

 

Egységes assembly nyelv nem létezik, csakúgy mint egységes BASIC sem, bár itt az eltérések jóval nagyobbak. A gépi kódú programot minden számítógépben a processzor (CPU = Central Processing Unit = központi vezérlőegység) futtatja, így nem is csoda, hogy pl. a Commodore 64 assembly nyelvezete más, mint a ZX Spectrumé, hiszen a Commodore-ban a processzor típusa más, 6502-es és nem Z-80-as, mint a Spectrumban. Bár felvetődhet a kérdés, miért nem lehet lefuttatni a Spectrumon minden gond nélkül más - Z-80 processzorral működő - számítógép (pl. VIDEOTON TV Computer) gépi kódját. Egészen egyszerűen azért, mert a memória felosztása - beleértve a képernyő-memóriát is - teljesen más, nem beszélve a ROM program eltéréseiről.

 

Ha gépi kódban programozunk, feltétlenül ismernünk kell gépünk memóriatérképét, mert a gépi kódú programot nem mindenhol tudjuk a memóriában elhelyezni ill. lefuttatni. Minden gép memóriatérképe megtalálható a géphez mellékelt felhasználói kézikönyvben, így a Spectrumé is. Most itt csak az összefüggések értelmezéséhez szükséges információkat közöljük.

 

A gép ROM memóriája (Read Only Memory = csak olvasható memória) a memóriaterület elején található, a 00000-16383 (HEX 0000 - 3FFF) címek között. Ezt a területet nem tudjuk saját célra kihasználni, az itt elhelyezett értékeket nem tudjuk felülírni, az a bekapcsolás pillanatától ugyanaz marad. A további memóriahelyek már a RAM (Random Access Memory = tetszőlegesen elérhető memória) területéhez tartoznak, vagyis 48K-s gép esetén 16384-65535 (HEX 4000 - FFFF) között találjuk a RAM memóriát.

 

Feltehetjük a kérdést, mi az oka annak, hogy a memória éppen 65535-ig tart és nem más értékig pl. 75000-ig. A dolog végtelenül egyszerű: a processzor egy negyvenlábú IC, mely lábakból ha csak hármat (a tápfeszültséget, a földet és az órajelet) bekötünk, már működőképes, de értékes munkát még nem végez. A processzor csak akkor válik hasznos egységgé, ha a számára érthető gépi kódot futtatni is tudja. A gépi kódú program pedig nem a processzorban kerül eltárolásra, hanem a memóriában (memória IC-kben). Ebből azt a következtetést vonhatjuk le, hogy a processzornak a memória IC-khez valahogyan hozzá kell férnie.

 

A további magyarázathoz tekintsük meg az elvi működés blokkdiagramját:

 

 

Az adatáramlás folyamatos biztosításához két fő kommunikációs csatorna található a számítógépben. Az egyik a címsín, a másik pedig az adatsín. A címsín 16, míg az adatsín 8 vonalból áll. A címsín arra jó, hogy a processzor kiválaszthassa rajta keresztül azt a memóriacímet vagy perifériacímet, amellyel a továbbiakban kommunikálni akar (pl. adatot betölteni vagy kivinni). Az adatsínt használja fel a processzor az adat továbbítására. Az adatáramlás persze önmagától nem indul meg, ezt a processzor ún. vezérlő vonalakon, keresztül befolyásolja. 13 vezérlő vonalat használ (erre még kitérünk a későbbiekben).

 

Vizsgáljuk meg egy kicsit a bitek értelmezésélt. A számítógép kettes számrendszerben dolgozik, így memóriacelláiban csak egyes vagy zérus értékek lehetnek. Tévedés ne essen, a memóriacellát nem szabad összekeverni a memóriacímmel! Egy memóriacímen ugyanis 8 cella található, tehát 1 címen 8 bitet lehet tárolni, azaz 1. byte-ot (1 címet). El ne felejtsük, egy byte = nyolc bit.

 

Egy byte bit-térképe a decimális konverzió szerint a következő:

 

Bit-ek sorszáma

7

6

5

4

3

2

1

0

Értéke

128

64

32

16

8

4

2

1

 

Ez azt jelenti, hogy ha az adott byte-ban a 6. a 3. és az 1. bit-ek értéke egyes (01001010) akkor az adott bit-eknek megfelelő decimális értékeket összegezni kell (64+8+2) és így alakul ki az összérték (74). Ha minden értéket összegzünk, vagyis az összes bit tartalma egyes, akkor végeredménynek 255-öt kapunk. Ez az a maximális érték amit egy memóriacímen el tudunk helyezni.

 

A címsínen - mint említettük - 16 különböző címvonal van és ez, két 8 bites fővonalra osztható. Kezelhetőségük mint két különálló de egybetartozó byte. Az egyiket 'felső' a másikat 'alsó' byte-nak is szokták nevezni. Ha az alsó byte értéke meghaladja a 255-öt, pl. 256 akkor az alsó byte lenullázódik és a felső byte értéke eggyel nő. Így abban az esetben, ha mindkét byte összes bitje egyes akkor 255*255 lesz a végeredmény, ez pedig pontosan 65535. Nos, ezért tudunk összesen ennyi memóriahelyet megcímezni.

 

 

MINDEN MEMÓRIAHELYHEZ TARTOZIK EGY CÍM 00000 - 65535-IG.

MINDEN EGYES CÍM ÉRTÉKE (tartalma) 0 - 255-IG TERJEDHET.

 

Jogosan vetődhet fel a kérdés, vajon hogyan lehetséges az, hogy a 80 K-ra kibővített vagy a 128-K-s SPECTRUM - melyek szintén Z80 processzorral működnek - a kibővített memóriát is használni tudják?

 

Nos igaz, a Z80 egyidőben csak 65535 címet "lát", de mi egy adott címhez több memóriahelyet is hozzárendelhetünk, ezek pedig különböző ún. lapokon találhatók. A számítógép egy megfelelő lapozó mechanizmus segítségével a program futása közben át tud kapcsolni az egyes lapok között, így előfordulhat, hogy pl. az 50132-es cím tartalma az 1-es lapon zérus, de a 2-es lapon ettől eltérő érték. (A lapozásról később majd részletesebben lesz szó!)

 

Ahogy az előzőekben megismertük a gépi kód közvetlen bevitelére BASIC-ből a legkézenfekvőbb - de hosszabb programok esetén időigényes - megoldás a POKE utasítás használata. Próbáljuk most begépelni a következőt: POKE 1365,35

 

A POKE utasítással a RAM memória megfelelő helyét tölthetjük fel egy adott értékkel. Jelen esetben az 1365-ös ROM címre szeretnénk 35-öt beírni. Tudjuk, hogy a ROM terület nem írható felül, de erről szeretnénk is meggyőződni. A memória visszaolvasására BASIC-ből a PEEK függvény alkalmas, amelyet a PRINT utasítással együtt szoktunk felhasználni. Gépeljük tehát be: PRINT PEEK 1365

 

Ha megnyomjuk az ENTER-t, az eredmény nem marad el: nem a 35-öt kapjuk vissza, hanem a 201 jelenik meg a képernyőn.

 

A ROM terület írás-védelem alatt áll, vagyis ezen a területen olyan értékek lettek elhelyezve, amelyeket csak olvashat a mikroprocesszor, de ide írni nem tudunk. Ezeknek a memóriahelyeknek a tartalmát a számítógép még a kikapcsolás után sem felejti el. Fontos ez a terület, hiszen ez teszi lehetővé számunkra, hogy a gép megértse a BASIC nyelven begépelt programjainkat, még konkrétabban operációs rendszert biztosít amely lehetővé teszi, hogy egyáltalán tudjunk a géppel kommunikálni (kurzor, megfelelő szerkesztő stb.). A gép bekapcsoláskor az itt elhelyezett ROM programot automatikusan futtatni kezdi. Az operációs rendszer a BASIC nyelvet értelmező és gépi kóddá alakító fordítóprogramot, az interpreter-t egy szubrutinként kezeli, melyet ha szükséges aktivizál. Természetesen az interpreter ezen belül további szubrutinokat tartalmaz. Megállapíthatjuk, hogy a BASIC program futtatásakor (vagyis ha az operációs rendszer a RUN, GO TO vagy GO SUB utasítással találkozik) az interpreter sorról sorra lefordítja az adott BASIC sort gépi kódra, és a mikroprocesszor ezután futtatja. A BASIC ezért lassú, hiszen a fordítási idő sokat jelent.

 

Itt még tisztáznunk kell egy másik idegen fogalmat is, mi az a compiler?

 

Ez is egy fordítóprogram, de nem szabad összekeverni az interpreterrel. A compiler-t külön töltjük be a szabad RAM területre. A compiler segítségével a memóriában levő teljes BASIC program egyidőben átfordítható gépi kódú programmá, és a fordítás után a lefordított változatot külön futtathatjuk, mint egy gépi kódú programot. Ezzel igen nagy sebességgyorsítást érhetünk el, de még mindig nem érhetjük be a tisztán gépi kódú program sebességét. Mindezek tisztázása után próbáljuk meg mégis a gépi kódú programozás rejtelmeit megismerni.

 

Az előbb egy ROM címre próbáltunk értéket elhelyezni - ez nem sikerült -. Most próbálkozzunk meg egy RAM címmel:

POKE 50120,35

majd

PRINT PEEK 50120 és ENTER

után a 35 megjelenik a képernyőn.

 

Ezt a műveletet decimális számokkal hajtottuk végre. Tudjuk, hogy a számítógép csak bináris (kettes számrendszerbeli) számokat tud kezelni. Mégis a gépi kódú listák nagy részében találkozunk a hexadecimális (16-os számrendszerbeli) számokkal. Miért jó ez a szánrendszer?

 

Megoszlanak a vélemények a hexadecimális számok használatával kapcsolatban. A jól bevált decimális (10-es) számrendszer emberközelibb, értelmezése egyszerűbbnek tűnik de a gépi kódú programozástechnika hamar bebizonyította, hogy a hexadecimális számok bevezetése nem szükséges rossz, gyakran nagy idő és energia-megtakarítás. A hexadecimális számrendszer 16 számjegyet különböztet meg, a 9-es számjegy után az A, majd sorban az A, B, C betűi következnek, egészen F-ig, vagyis F megfelel a decimális 15-nek, FF pedig 255-nek.

 

Látható, hogy 1 byte esetén maximum két karakterrel fejezhetjük ki a számot, míg két byte esetén mindössze maximum néggyel (65535 = FFFF). Ez a memória közvetlen feltöltésekor nagy időmegtakarítást eredményezhet (a legtöbb MONITOR segédprogram lehetővé teszi a memória direkt feltöltését hexadecimális értékekkel). Könnyen beláthatjuk, hogy a 8 és 16 bites számok értelmezése is sokkal egyszerűbb. A hexadecimális számjegyeket 4 bitenként külön csoportba sorolhatjuk, vagyis egy byte alsó négy bitje akkor lesz 1111, ha a hexadecimális érték F. Természetesen a felső négy bittel ugyanez a helyzet, így akár egy 16 bites cím képzése sem jelent problémát, pl.

 

10101100 - 10000011

  A   C      8   3

 

vagyis hexadecimálisan: AC83.

 

Decimálisan tudjuk, hogy az alsó byte értéke 131, a felső byte-é pedig 172. A 16 bites cím értékét így decimálisan a következőképpen számíthatjuk:

 

(172 x 256) + 131 = 44163

 

Ha tisztán hexadecimálisan dolgozunk, akkor megspóroljuk az ilyen jellegű számítást, mert a cím közvetlenül megjelenik előttünk.

 

Hogy fejthetjük vissza a hexadecimális számainkat decimális formába? A decimális számok képzéséhez hasonlóan a számítás helyiértékenként történik, jobbról-balra értelmezve, vagyis az adott helyiértéken álló számjegyet meg kell szorozni a számrendszernek azon hatványával, ahányadik helyiértéken az adott szám áll. Nézzünk erre egy konkrét példát.

 

3210 decimálisan a következőképpen bontható le:

 

(3 * 10 * 10 * 10) + (2 * 10 * 10) + (1 * 10) + (0 * 1) = 3210

 

3210 hexadecimálisan a következőképpen bontható le:

 

(3 * 16 * 16 * 16) + (2 * 16 * 16) + (1 * 16) + (0 * 1) =

(3 * 4096) + (2 * 256) + (1 * 16) + ( 0 * 1 ) = 12816 (decimális)

 

 

 

 

 

 

 

 


 

Ez lesz itt az olvasó oldala

 

*** Amennyiben igénybe veszi ***

 

Itt szeretnénk közrebocsátani olvasói leveleket, észrevételeket, javaslatokat, itt hirdethet a kedves Olvasó, cserepartner kereshető stb. Várjuk klubok jelentkezését is, közölnénk címüket, a klubfoglalkozások rendjét, idejét, mert sokan nem ismerik az ilyen irányú lehetőségeket.

Egyenlőre - amíg nem kapunk visszajelzéseket - ismert angol software forgalmazók címeit közöljük. Tudomásunk szerint az illető software házak levél útján friss, naprakész információval tudnak szolgálni az általuk forgalmazott termékekről, ezen túlmenően színes reklámanyagokat és posztereket is küldenek az érdeklődőnek.

 

ACTIVISION

15 Harley House

Marylebone Road

London NW1

ENGLAND

DIGITAL INTEGRATION

Watchmoor Trade C.

Watchmoor Road

Camberley

Surrey GU15 3AJ

ENGLAND

OCEAN & IMAGINE

6 Central Street

Manchester

M2 5NS

ENGLAND

US GOLD

Unit 10

The parkway

Industrial Centre

Heneage Street

Birmingham B7 4LY

ENGLAND

THOR

Erskine Industrial

Estate

Liverpool L6 1AP

ENGLAND

THE EDGE

31 Maiden Lade

Covent Garden

London WC2E 8LH

ENGLAND

MASTERTRONIC

Park Lorne

111 Park Road

London NW8 7SL

ENGLAND

GREMLIN GRAPHICS

Alpha House

10 Conver Street

Sheffield S1 4FS

ENGLAND

FIREBIRD

Wellington House

St Martin's Lane

London WC2

ENGLAND

ELITE SYSTEMS

Anchor House

Anchor Road

Aldridge Walsall

West Midlands

WS9 8PW ENGLAND

MELBOURNE HOUSE

Castle Yard House

Castle Yard

Richmond TW10 6TF

ENGLAND

VORTEX SOFTWARE

280 Brooklands Road

Brooklands

Manchester M23 9HD

ENGLAND

 

 

 A "Spectrum-Világ" szerkesztősége szeretné messzemenően az igények szerint összeállítani a kiadvány következő számait, ezért várjuk az Olvasó hozzászólásait, észrevételeit.

A TOP 10 lista egyenlőre szubjektív (a mi véleményünket tükrözi) de szeretnénk, hogy ha ezután a levélben beérkezett javaslatok alapján állna össze a sikerlista.

 

 

 

Kéziratot nem őrzünk meg és nem küldünk vissza!

 

 

 

 

 

 

 

Pályázati rejtvény

 

 

Ha megfejti az itt látható keresztrejtvényt, azoknak a mezőknek a tartalmából, melyeknek jobb alsó sarkában egy kis szám lett elhelyezve, egy három szóból álló szöveg olvasható össze, egy ismert angol hardware cég neve. Kérjük, hogy a megfejtést az alul látható - kivágható - pályázati szelvénnyel együtt, agymegadott címre, zárt borítékban küldje el nekünk.

A beküldési határidő: 1987. október 10.

 

 

A helyes megfejtést beküldők között egy darab walkman-t sorsolunk ki (programjaink hallgatásához).

 

A nyereményt postázzuk.

 

 

1

2

3

4

5

6

7

8

9

10

 

 

11

12

13

14

 

 

 

 

 

 

 

 

 

 

15

 

 

 

 

16

 

 

 

17

 

 

 

 

 

18

 

 

 

 

 

19

 

 

20

 

21

 

 

 

22

 

 

 

 

 

 

 

23

 

24

 

 

 

25

 

 

 

 

 

 

26

27

 

 

 

 

 

28

 

 

 

29

 

 

 

 

30

 

 

 

 

 

31

 

32

 

33

 

 

 

34

 

35

 

 

 

 

36

 

37

 

38

 

 

39

 

 

40

 

 

41

 

42

 

43

 

 

 

44

 

 

 

45

 

 

46

 

47

 

 

 

 

 

48

 

 

 

 

 

 

49

 

 

 

 

 

 

 

50

 

51

 

 

 

 

52

 

 

 

 

 

 

 

53

 

54

 

55

 

 

56

 

 

 

 

 

 

 

57

 

 

 

58

 

59

 

60

 

 

 

61

 

62

 

 

 

63

 

64

 

65

 

 

66

 

 

67

 

 

 

68

 

 

 

69

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Vízszintes:

 

1. Az ANDROID TWO c. program szerzője

11. 1986. év egyik legsikeresebb software-háza

14. A termelés túlnyomórészt mezőgazdasági jellegű

15. Nagyon meleg

16. A 6502 processzor egyik utasítása

17. Betakarító

18. Júlia párján

19. Magyar autójavító cég betűi keverve

21. Szerszáma a toll

21. Német község, magyar kiejtéssel

23. Francia, román és luxemburgi autók jelzése

25. Irántad nemtetszését kifejező

26. Érzelem

28. A szarvasbika teszi

29. Kicsinyítő képző, névelővel

30. Viselkedésével társait is erőszakra hangolja

32. A Spectrum legsérülékenyebb része

34. Előd

35. Előidézőjét

36. Fordított Egyesült Arab Köztársaság

38. Itt állnak a legények

39. Francia és szovjet autók jelzése

40. Lemezkezelő operációs rendszer

42. Némán rémes!

44. Iszik

45. Gépkocsi

46. Vonzó

48. Életet megszüntet

49. Ijesztgető

51. Alumínium és tükörképe

52. Melegvízforrást!

53. Súlyáról meggyőződik

55. AAN

56. ...Bill (ismert Spectrum-játék)

57. Apró szemű anyagát

59. Játékvasút típusa

60. ...-poetica

61. Tetőanyag fele

62. Z-80 gépi kódú utasítás

63. Balta angolul

65. Ezt írja ki a kártya-program, ha emeljük a tétet

67. Holland kikötőváros

 

 

Függőleges:

 

1. Itt található Taunton angol városban a Durell software cég

2. Fejetlenül nem engedte el!

3. Bevonalkázás

4. Az egyik morze jel

5. Menyasszony

6. Piroska

7. Valamin kívül angolul

8. Észak Atlanti Szövetség

9. Román gépjármű-típus

10. York's Industry

11. Fejének része

12. A vér szállításához erre is szüksége van

13. Hibás angolul

15. Alakít

18. ... Fox (az ULTRAVOX énekese)

20. Irént

22. Liba teszi

24. 3/5 űrmérték

25. Régi hosszmérték

27. Fekete termést hozó, gubós növények

31. Női név

33. Elnyelheti az embert

34. Őslény

37. Nem amott

39. Kis üveg, elsősorban gyógyszer tárolására

41. Kazah színész (elöl vezetéknevével)

43. Mi? oroszul

44. Sör, bor, pálinka.

46. Becézett József betűi keverve

47. Becézett női név

49. Államrend

50. Az ember a boltban teszi

52. Ismert piac Budapesten

53. Magyarország és arcus tangens rövidítése

54. Időmérő eszköz ellenértéke fordítva

56. Ismert sport-játék szimuláció

57. Lóláb

58. Yamaha szintetizátor-típusok betűjelei

62. Kutya

64. Dilemma magánhangzói keverve

66. Sport Club

67. Sír

68. Európa Bajnokság

69. A mangán vegyjele

 

 

 

 

 

 

 

39,- Ft