Őszinte megkönnyebbülésünkre, nem kell kijelentkezéssel kezdenünk ezt a számot. Köszönjük leveleiket, véleményeiket, megfejtéseiket. Nagy örömünkre szolgál, hogy olyan lényegi kifogást nem emeltek, aminek olvasása során szégyenkeznünk kellett volna. Sőt! Úgy látszik, Olvasóink érdeklődését sikerült felkelteni, reméljük, táboruk hamarosan megsokszorozódik. Annyit már most is tapasztaltunk, hogy nem könnyebb a dolgunk, mint a TV műsorszerkesztőinek, hiszen olyan sokrétű tartalmi igény érkezett már eddig is, hogy úgy gondoljuk egyelőre nem változtatunk az eddigi szerkezeten. Sokan kérdezték, hogy hogyan lehet előfizetni 'magazinunkat'. Erre sajnos nincs lehetőség, kb. a hónapváltásoknál figyelni kell az újságárusok kirakatait és "lecsapni" a zsákmányra. Továbbra is várjuk leveleiket, ötleteiket, véleményeiket, és természetesen megfejtéseik özönét!
a kiadó
Felelős kiadó: Rucz Lajos Címünk: "Spectrum Világ" Budapest 3 Postán maradó 1300 Eng. szám: KF. 56890 ISBN ÖK: 963 500 667 5 ISBN: 963 500 669 1 Készült: EGRESSY GÁBOR MŰV. HÁZ, ÓCSA
SCAN&OCR: gafz, 2006 |
A Sinclair Research Ltd. a 70-es évek elején alakult meg Cambridge-ben. A cég "kísérleti intézet"-ként indult, és tevékenységi köre egyenlőre csak matematikai alapműveleteket végző számológépek kifejlesztésére terjedt ki. Az első típusok - a SINCLAIR C-... sorozatok - az alapműveleteken kívül mást nem tudtak, s még kijelzőjük is LED dióda elven alapult. Rövidesen pénztárgépek kifejlesztését is elkezdték, az első széria SINCLAIR CASH MB-... sorozatjelzéssel lett ellátva. Ahogy teltek az évek, úgy fejlődött az elektrotechnika is, maga után vonva a Sinclair termékek tökéletesedését. A zsebszámológépek egyre többet tudtak, megjelent a folyadékkristályos kijelző, s a pénztárgépek is memóriával lettek ellátva. A 70-es évek közepén már programozható Sinclair zsebszámológépek jelentek meg. Először csak 10-20, később 50-100 programlépés végrehajtására alkalmas gépekkel is találkozhattunk. A Sinclair gépek igazán nagy "robbantást" nem tudtak végezni a piacon, hiszen számos nagy amerikai cég (pl. TEXAS INSTRUMENTS, HEWLETT PACKARD, stb.) hasonló konstrukciók tömeggyártásával terítette be a piacot és elnyomta a "kicsiket".
A számítástechnika szelei Sinclair-t is elérték, és hosszas kísérletezés után az évtized végén megjelent a "nagy csoda". A ZX-80, Sinclair első (egy-kártyás!) mikroszámítógépe, melynek központi egysége egy ZILOG Z-80 mikroprocesszor volt. Ez a "gép-matuzsálem" utódjától a ZX-81-tol elsősorban elektrotechnikai felépítésében ill. memóriaszervezésében különbözött. Nem volt benne ULA sem, amely a Sinclair gépek perifériakezelő interface-e. Ezt itt helyettesítő áramkörökkel oldották meg. Sinclair úgy gondolta, a szélesebb tömegeknek elektrotechnikailag modernebb, programozható és sokoldalúan felhasználható zsebszámítógépekre van szükségük: így született meg 1979 végén a ZX-81, ami már igazi hírnevet szerzett magának és alkotójának. A szintén Z-80 mikroprocesszorral ellátott gép billentyűzete "érintős", ez persze ma már nem előny, de újkorában szenzációnak számított. Az 1K szabad RAM memória sem számottevő , ha a mai viszonyokat tekintjük, de 64K-ig bővíthető volt. Ez a gép csak karakter-grafikával rendelkezett (24x32), ezen túlmenően nem volt színes modulációja és elmaradt a hanggenerátor is. Mindettől eltekintve a gép fogadtatása elsőrangú volt (persze ezt mindenekelőtt alacsonyárának köszönhette). Közben a gép 2K-s módosított memóriaszervezésű változata is elkészült amerikai megrendelésre, ezt TIMEX SINCLAIR 1000 néven forgalmazták, néhány mintapéldány ebből is eljutott hazánkba.
Folyamatos fejlesztés, kutatómunka eredményeképpen 1982-ben készült el az első Spectrum, amely alapkiépítésben 16K ROM és 16K RAM memóriát tartalmazott (16K-s gép). Megoldották a nagyfelbontású képernyő manipuláció problémáját is (256x192 pont), amelyen 8 színnel jeleníthetünk meg információt, és a beépített hanggenerátor - amely csak 1 csatornás - kiválóan alkalmas játékprogramok hangulati aláfestéséhez. Egy huszárvágással megoldották a ZX-81 legnagyobb hibáját is, a fóliabillentyűzetre gumitasztatúrát helyeztek. A gép 48K RAM-mal rendelkező változata is hamarosan forgalomba került, bár a 16K tulajdonosoknak is csak a hiányzó IC-ket kellett a megfelelő tokokba behelyezniük. Említésre méltó, hogy 1982-ben a gép integráltsági foka még nem érte el a maiakét (ISSUE 1), de a technikai korrigációk folyamatosan lehetővé tették a változtatást a gyártó-szalagon is, így jelentek meg sorban az ISSUE 2,3,4,stb szériák is. Időközben továbbfejlesztették az ULA IC-t is. Ez azért jelentős, mert szervizeléskor nem mindegy, hogy melyik kiadásbeli géppel van dolgunk, pl. nem lehetséges az ISSUE 3, vagy annál magasabb szériákba való 60001 típusú ULA IC-t az ISSUE 1 szériába beültetni, mert hibás működést eredményez. Természetesen nem alapvető, hogy vásárláskor a minél magasabb számú sorozatot vegyük meg, az alacsonyabb számú verzió is ugyanazt tudja, elektronikailag kissé eltérő módon.
... A Z-88-IG
A Spectrum fejlődésének fontos állomása volt 1984-ben a PLUS (+) megjelenése, amely a tasztatúra módosításában tért el elsődlegesen az alapváltozattól. Természetesen a hagyományos Spectrum panel a PLUS dobozba áthelyezhető. Időközben megjelent a QL is, amelynek ROM-ja 32K, RAM-ja pedig 128K memóriával rendelkezik (fejlettebb operációs rendszer), processzora MOTOROLA gyártmányú, és 2 db beépített microdrive kazetta maghajtót is tartalmaz. Sajnos a kompatibilitás teljes hiánya miatt a gép nem ért el jelentősebb sikereket. Emiatt tervbe vették egy - a Spectrum képességeinél többet tudó - az alapgéppel felülről kompatibilis számítógép kifejlesztését. 1985 végén megszületett a Spectrum + 128K. Közben - mint ahogy azt az előző számban olvashattuk - Sir Clive "befürdött" a C5 elektromos autóval, s az AMSTRAD felvásárolta a céget. Ettől kezdve a Sinclair gépek története kettéválik. Az AMSTRAD cég továbbfejlesztette a 128K Spectrumot. A Spectrum 128K +2 beépített adatmagnetofont, míg a Spectrum 128K- +3 egy (!) 3"-os hajlékony mágneslemezegységet tartalmaz. (Itt jegyezzük meg , hogy-a 128K-s géppel a későbbiekben meg részletesebben szeretnénk foglalkozni!)
A bukás után két évvel, 1987 áprilisában Sir Clive Sinclair a Cambridge Electronics Ltd.-n keresztül piacra dobta új találmányát, a Z-88-at. Ez a típus sajnos nem viselheti a Sinclair nevet, mivel azt az AMSTRAD jogilag megvette. A Z-88 szintén kis méretű, alapkiépítésben 128K ROM-mal és 32K RAM-mal (nem tévedés!) rendelkezik. Ikerprocesszoros, de Z-80 alapú gép. A memória bővítéséhez 3 kártya csatlakoztatási helyet alakítottak ki, 32K, 128K és 1M kártyákkal összesen 3Mbyte-ra bővíthető. IBM gépekre írt programok futtatására is alkalmas. Saját SUPERTWIST LCD kijelzővel, RS-232 kimenettel (pl. MODEM csatlakoztatásához), Z-80 csatlakozó sínnel, fő adapter csatlakozó aljzattal és képernyő kontraszt szabályzó potméterrel is rendelkezik. Billentyűzete szilikongumis, kopogásmentes. A gép 4 ceruzaelemmel 24 órán át üzemeltethető, kikapcsolt állapotban pedig kb. 1 évig megőrzi a RAM tartalmat. Nem tudni, hogy az új Sinclair gép menynyire hódítja meg a piacot, de az biztos hogy széleskörű felhasználási lehetősége és olcsó ára (1987. június: 235 Font) hamar magára irányítja a figyelmet!
TOP 10
1987
szeptember
|
K Ö Z Ö N S É G S Z A V A Z A T O K
A L A P J Á N
1. ENDURO RACER - Activision |
2. ARMY MOVES - Imagine |
3. SCOOBY DOO - Elite |
4. HEAD OVER HEELS - Ocean |
5. WORLD GAMES - Epyx |
6. ROBIN OF THE WOOD - Odin |
7. BOMB JACK II. - Elite |
8. ASTERIX - Melbourne House |
9. ACE OF ACES - US Gold |
10.SHORT CIRCUIT - Ocean |
BUTCH HARDGUY
ADVANCE
A Rambo-film alapján készült program sikere ösztönözhette a BUTCH HARDGUY íróit is, hogy a hasoncímű filmből számítógépes játékot alkossanak. A játék egy szigeten játszódik, a játékosnak 20, ketrecben fogva tartott katonát kell kiszabadítani. A foglyokat robotok őrzik, amelyekkel - a karate szabályai szerint - kell megküzdenünk (kézzel - lábbal). Nem mindegy, hogy a robotokat hol találjuk el: ha középen, akkor csak bizonyos időre pottyannak a földre, ha fejen, akkor viszont távozni kell a közelükből, mert felrobbannak. A rabokat úgy tudjuk kiszabadítani, hogy össze-vissza püföljük a ketrecüket. A kiszabadított rabokkal a helikopterig kell eljutnunk, de ha a rab egy robottal találkozik, visszakerül a ketrecébe. Szórakoztató és izgalmas akciójáték, méltó utódja a RAMBO-nak és a GREEN BERET-nek.
THE SYDNEY AFFAIR
Infogrames
Az Infogrames előző játékának, a VERA CRUZ AFFAIR-nak a mintájára íródott ez a program, de ez valamivel jobban sikerült. Gyilkosság történik St. Etienne városában és Sergeant felügyelőt (minket) bíznak meg az ügy felderítésével. A játék két helyszínen játszódik: a halott (Mr. Sydney) környékén és abban a szobában, ahonnan a halálos lövést leadták. Kézi nagyítónkkal aprólékosan végigvizsgálhatjuk a két helyszínt, kikérdezhetünk tanúkat. A megszerzett adatokat számítógéppel feldolgozhatjuk, amelyen keresztül kommunikálni tudunk más igazságügyi szervekkel is. Végső célunk a gyilkos kilétének feltárása. Nagyon izgalmas játék, a logikai játékok kedvelői bizonyára nagyon megszeretik.
AUF WIEDERSEHEN MONTY
Gremlin Graphics
A Gremlin Graphics nagysikerű MONTY-sorozatának legújabb tagja. Az új történet előzménye: MONTY vakond szenet lopott, mert fázott. Ezért a hatóságok - eléggé elítélendő módon - lecsukták. Monty megszökik és elindul Európába, pénzt gyűjteni. Célja, hogy az összegyűjtött pénzen megvegye a görögországi Montos szigetét, ahol nem adják ki a hatóságok, másrészt meleg van (nem kell szenet lopni). A játék Európa országaiban játszódik, az egyes országokat a különböző képernyők "testesítik" meg. Monacóban pl. MONTY részt vesz a Forma-1-es autóversenyen és ha megnyeri, lesz elég pénze. A pályákon szétszórva megtalálhatóak egy repülőgépre szóló jegy darabjai, amit összegyűjtve továbbrepülhetünk a következő országba. Mint az eddigi Monty-játékok, ez a program is jó grafikával készült, érdekes és szórakoztató. Elsősorban valószínűleg a fiatalok fogják megkedvelni.
AMAUROTE
Masteronic
Újabb ULTIMATE-jellegű háromdimenziós akció-játék. A játék során tankunkkal a rovarok 25 országát kell elpusztítanunk. Egy-egy ország több, mint 100 db különböző helyszínből álló labirintusból áll. Ez a rengeteg variáció az azonos képrészek különböző kombinációiból épül fel. Ahhoz, hogy egy gyarmatot legyőzzünk, a rovaroknak legalább 60 százalékát kell megsemmisítenünk. Négyféle rovartípussal találkozhatunk: királynő, here, támadók és felderítők. A legfontosabb célpont a királynő, ha sikerül elpusztítanunk, az országban káosz uralkodik. A felderítők nem veszélyesek, csak repkednek, a támadók védik az országot, a here pedig csak akkor támad, ha beszorítjuk. Az "ULTIMATE-klónokhoz" hasonló jó grafika, nagyon hosszú játékidő.
A program 1986 derekán jelent meg Angliában és azonnal osztatlan sikert aratott: hosszú hetekig el sem lehetett képzelni olyan Spectrum, Commodore-64 vagy Amstrad top-listát, amelyen ne lehetett volna találkozni a játékkal (ezek a listák általában így kezdődtek: 1. JACK THE NIPPER...). Az ifjúság körében valóságos Jack-mánia indult meg: a játékversenyeken Jack-et ábrázoló ingeket sorsoltak ki a győztesek között, a játékboltokban Jack-figurákat árultak, sőt, a programból rajzfilmet készítenek. A hatalmas siker titka nagyon egyszerű: a program írói olyan kedves kis figurát alkottak meg, mint pl. Donald kacsa, és ezzel a figurával olyan dolgokat tehetünk, ami minden fiatal szívéhez nagyon közel áll: rengeteg ''csintalanságot" (ez - mint a későbbiekből is kiderül - roppant finom meghatározása a dolgoknak).
A program - betöltése után - némi zene-bonával jelentkezik be és a főmenüben beállíthatjuk a joystick- vagy a billentyűvezérlést. Az aktuális irányítási mód "ugrál", az 1. (KEYBOARD) esetén a következő billentyűkkel irányíthatjuk a játékot:
Z: balra; X: jobbra; 0: fel; K: le; 0: tűz (ugrás)
A bezárt ajtókon az ENTER megnyomásával juthatunk ki. A tárgyak felvétele illetve eldobása a két zsebünkhöz tartozó gombok (1,2) megnyomásával történik.
Egy szép napon Jack-et egyedül hagyja a mamája a gyermekszobában. Jack elindul, hogy felfedezze a várost és különféle csínyeket kövessen el...
A játék célja a képernyő alsó -részén látható rosszaságmérő műszer (NAUGHTYOMETER) 100 százalékra állítása. Ez a városban található különféle tárgyak megfelelő helyre juttatásával, illetve összetörésével lehetséges. A tárgyakat csak akkor tudjuk mozgatni (nagy csíny) vagy eltörni (kis csíny), ha felvettük őket valamelyik zsebünkbe. Eltörni csak akkor tudjuk, ha valamilyen magasabb ponton állunk (pl. a polcon) és megnyomjuk annak a zsebnek a számát, amelyben a tárgy található. A nálunk lévő dolgok képe a rosszaságmérő mellett látható.
A csínyek elkövetésében több dolog is gátol bennünket: az utcákon és a szobákban sétáló emberek és tárgyak, tiltott dolgok, amelyekhez nem szabad hozzáérnünk (pl. virágok). Az ezekkel való érintkezés csökkenti az energiánkat, növekszik a RASH-műszer jelzője (ezt hangjelzés is kíséri). Ha ez eléri a maximumot, a bal alsó sarokban látható életeink (5 db ugráló Jack-figura) közül az egyik figura a kiporolt fenekét fogja fájlalni.
Ha valamelyik szobában csínyt követünk el, egy felnőtt azonnal hozzánk rohan és követ akárhova megyünk. Ez sok ütközést jelent, amitől az energiánk rohamosan fogy. Ilyenkor minél előbb távoznunk kell a szobából. A következő módon elkerülhetjük a nagyobb energiaveszteséget: ha a szoba kijárata - mondjuk - bal oldalon van és az ellenség felülről "ragadt ránk", haladjunk egy darabig balra, felfelé átlós irányban majd hirtelen irányváltoztatással lefelé átlós irányban. Ettől a manővertől az ellenség leszakad tőlünk (az energiánk nem fogy tovább) és elegendő időnk van ahhoz, hogy kijussunk a szobából. Egyes helyszíneken (pl. a temetőben) kísértetek tanyáznak, ezek közül az egyikmindig azonnal megtámad minket, mihelyt belépünk. Öt is a fent ismertetett módszerrel lehet félrevezetni.
Egyes tárgyakhoz csak úgy tudunk eljutni, ha a bútorokon körbeugrálunk. A szobák az iránypont perspektíva elvei alapján lettek megalkotva, tehát a szoba - relatíve - távolabbnak látszó részein a bútorok "alacsonyabbak", itt felugorhatunk rájuk.
A későbbiekben a mellékelt térképen látható helyszínek nevére hivatkozunk. A helyszínre történő eljutást nem részletezzük, ez a térkép alapján nyilvánvaló.
A kaland a gyermekszobából indul, ahol a játékpolcról el kell vennünk a köpőcsövet. A játékpolcra a könyvespolc tartóoszlopairól juthatunk át. A köpőcső közelébe állva tegyük be az egyes zsebünkbe ('1' billentyű), majd potyogjunk le a polcról. Amíg a köpőcső nálunk van, a tűzgomb minden megnyomásakor Jack előrántja és lő egyet vele. Ha a töltény eltalálja valamelyik ellenséget, a rosszaságmérő növekszik és az ellenség megtámad bennünket (ez addig tart míg ki nem lépünk a szobából, ha újra bejövünk a sértett nem ismer meg minket, újabb csínyig nem támad). A járókelőket folyamatosan lövöldözve menjünk el a rendőrségre (POLICE). A találatok addig növelik a rosszaságmérőt, amíg az el nem éri a felső sor harmadik beosztását (15%). Ezután már felesleges lövöldöznünk, csak a felnőttek haragját vonjuk magunkra.
A rendőrségen vegyük fel a hatalmas elemet, majd menjünk át a szomszédos börtönbe és ugorjunk fel a szekrényre. Innen pottyantsuk le a köpőcsövet (a rosszaságmérő növekszik, a rendőr odaáll a szekrény elé és ha leugrunk támad) és vegyük fel a helyére a 8 tonnás súlyt.
Menjünk át a mikrogépek boltjába (JUST MICRO), ahol a nála lévő elem segítségével Jack bevezeti az áramot a pult bal alsó részén található kapcsolótáblába. Apró muhiba folytán összekeveri a pólusokat, minekfolytán a hálózatba bekapcsolt számítógépek visszaadják lelküket alkotójuknak.
Menjünk el a Zocney & Co. Ltd. helyi kirendeltségére (HUMMO SOCKS), ahol a futószalagra felugorva Jack elejti a 8 tonnás súlyt. Ebből kifolyólag a futószalag meghibásodik és leáll. A város hónapokig friss zokni nélkül marad, ami - figyelembe véve, hogy itt se nagyon szeretik mosni a használt zoknikat - környezetvédelmi szempontból (a város levegőjének védelme) elég súlyos dolog. Törjük össze a súlyt.
A következő teendőnk a mosodában (LAUNDERETTE) felvenni a ragasztós fiolát, ami a mosógépek tetején található. Ide csak a bal oldalon lévő polcról tudunk átugrani. A ragasztós tubussal - szódabikarbóna híján - a fogorvosnál (GUMMO'S CHOMPING MOLARS) a futószalagon gyártott protéziseket fogjuk kezelni. A ragasztótól a protézisek összeragadnak és a város foghiánnyal küzdő polgárai a következő hetekben nem tudják kimondani azt a szót, hogy "kartonvarrónő". Törjük össze a ragasztót.
Induljunk el a bank felé. A bank előtti pályán (a zöldövezet határán) a fal tövében találunk egy kulcsot, amit magunkhoz veszünk. Ha ezzel megyünk be a bankba, láthatóvá válik a radiátor mögötti titkos páncélterem bejárata. Tegyük le a bankban a kulcsot és vegyük fel az ajtóban álló floppy-lemezt. Ezt szemből nagyon nehéz megcsinálni, mert könnyen - idő előtt - átkerülhetünk a páncélterembe és innen nincs visszaút a bankba, megint körbe kell járnunk a fél világot, hogy visszajussunk. Ezért álljunk Jack-kel a bejárat melletti sarokba és onnan jöjjünk be a floppy-lemez elé. Így már felvehetjük és bemehetünk a páncélterembe. Itt teljesen sajátos módon egy mosóporos dobozban sósavat tárolnak, amit szintén fel kell vennünk.
A kijáraton kilépve a hálószoba egyik szekrényének tetején találjuk magunkat. Menjünk ki az utcára és sétáljunk el ismét a mosodába. Itt nagyüzemben folyik a márkás ruhák tisztítása, amiből természetesen Jack is ki akarja venni a részét. Ha odaállunk az első mosógép ablakához, Jack beleönti a "mosóport" a gépbe. A mosott ruhák talajait heveny gutaütés éri, mert a gépből később kiszedett ruhákra már csak a "toprongy" kifejezés használható. Törjük össze a mosóporos dobozt.
Következő utunk a számítógépgyárba (TECHNOLOGICAL RESEARCH) vezet: a jobb alsó sarokban lévő terminálhoz felugorva Jack a nála lévő lemezről betölti a "RESET SYSTEM V0.0"• operációs rendszert. Ennek funkciója abban merül ki, hogy tönkreteszi a számítógépgyárat vezérlő számítógépet és a város polgárai soha többé nem tudnak játszani a "JACK THE NIPPER" című, mély gondolati lírát kifejező játékprogramjukkal. Összetörhetjük a lemezt is.
Menjünk vissza a bankban hagyott kulcsért, ami a maga nemében univerzális szerkezet: nemcsak a bank; hanem a múzeum (MUSEUM) páncéltermét is kinyitja. A múzeumot nem tatarozzák, tehát nemcsak az állványzaton hanem a fokapun is bejuthatunk. A múzeum I-ben nem Esterházy-madonnák és Raffaello-képek láthatóak - mint egy sajnálatos eset is bizonyítja ezek fogyó áruk -, hanem egy nagy darab cumi. Döntsünk úgy, hogy nem szeretjük az avantgarde-művészetet, dobjuk le a cumit a talapzatról, majd menjünk át a múzeum II-be. Jack nem szereti a hagyományos szobrokat sem, le kell dobnunk a bal alsó sarokban levő mellszobrot is. Tegyük le a kulcsot és menjünk be a páncélterembe. A másik ajtón keresztül egy képből a kísértetek nappalijában kornyadozó húsevő növény karjaiba pottyanunk, ami azonnal megkezdi energiánk elfogyasztását. Sürgősen távozzunk a szomszéd szobába, ahol felvesszük a polcon lévő dudát, a következő szobában pedig a bombát. Az ajtón át kijutunk a temetőbe.
A dudával felszerelkezett Jack most a város állatvédő egyesületének fog a kedvébe járni: átballagunk az óvoda II.-be (PLAYSKOOL második szobája), ahol az édesdeden szendergő macska előtt megnyomjuk a tűzgombot. Jack előrántja a dudát és rátülköl a macskára, ami a szó szoros értelmében a falra mászik idegességében és a játék további részein is csak onnan hajlandó figyelni a történéseket. Jack megelégedve konstatálja hogy ért az állatokhoz, újabb célpontjának a rendőrségen alvó macskát szemeli ki. A hatás ugyanaz. Ha már itt vagyunk, menjünk át a börtönbe is és az első cellaajtónál vegyük elő a bombát. A bekövetkező robbanás bedönti a cellák ajtaját és kiszabadulnak a rabok.
Menjünk el a vegyiáru-kereskedésbe (I. BLOOM) és vegyük fel a jobb oldali polc legvégén található tápsókat tartalmazó két üvegecskét. Az üvegeket a kertben használjuk fel, elővétel után a tápsók kifejtik - némiképpen rendhagyó - hatásukat: kipusztítják az összes virágot. Vegyük vissza az üvegeket és távozzunk.
Jack-ék házában, a szobában újabb macska szunyókál, ő is megér egy dudaszót. Miután ő is elfoglalta az őt megillető helyet a plafonon, menjünk át a konyhába. A tányérok polcára felugorva dobáljuk le a földre a dudát és az üvegeket majd - hogy ne végezzünk félmunkát - a polcon lévő tányérokat is. Miután kimentünk az utcára, menjünk be a szemben lévő játékboltba (TOY SHOP) és dobáljuk le azokat a macikat is, amelyeket fel tudunk venni (a teljes maci látszik). Következő utunk a temetőbe vezet. A hátul álló kísértet mögött egy zsák van, ezt vegyük fel és menjünk át a szomszédos kertbe. A zsák elvileg veteménymagot tartalmaz, de ha elővesszük a kertben, nem igazán csodaszép tubarózsákat, sokkal inkább ronda húsevő növényeket növeszthetünk. A finomabb növényekhez szokott kertész ezt láthatólag rossz néven veszi, haragja elől - a zsák újbóli felvétele után - távozzunk a helyszínről. Alkalomadtán törjük össze a zsákot.
Az óvodában vegyük fel a jobbra lévő bilit és menjünk el a kínai boltba (CHINA SHOPPE). Itt dobáljuk le a pult feletti polcon látható tányérokat, majd. a magasból lepotyogva menjünk a radiátor elé és vegyük elő a bilit. Ennek úgy látszik, már volt "lakója", mert a szobát azonnal átható illat (szag...) tölti be. A tulaj rendkívüli módon nehezményezi, hogy a radiátor alá öntöttük kisebb-nagyobb "dolgainkat", tehát minél előbb távozzunk.
Menjünk el a múzeumba a kulcsért és törjük össze, majd irány az óvoda. Az óvoda II.-ben a pult bal szélén egy kis halom áll, egy zsebbéli kaptár. Vegyük fel, kerüljük meg a fél világot, térjünk vissza az óvoda I.-be és helyezzük el a kályha előtt. Kerregő hangot hallunk, ami azt jelzi, hogy a kaptár megtelt méhekkel. Vegyük fel, siessünk vissza a parkba, ahol a kaptár elővétele után szabadonengedjük a méheket. A zümmögő finomságokat a húsevő növények jó étvággyal elfogyasztják. A kertész már azt is neheztelte, hogy ilyen növényzettel ültettük be a parkot, de az már valószínűleg a gutaütés nevű jelenséget idézi elő nála, hogy méhekkel etetjük őket...
Miután összetörtük a zsákot a Rosszaságmérő 99 százalékot mutat. Hogy mit kell tenni ezután és mi a játék vége? Ennek kiderítését már a kedves Olvasóra bízzuk...
Örökélet POKE:
A BASIC rész betöltése után 'BREAK', majd PAPER 7, 2x ENTER, és előtűnik a betöltő listája. Most adjuk meg a következőt : POKE 23834, 201, és adjuk ki: RUN. Indítsuk el a magnetofont, és töltsük be a képernyőt, majd az azt követő nagy kódot. Ha megjelenik az 'OK' üzenet, állítsuk le a magnetofont (a program még nem töltődött be), és írjuk be a következőket : POKE 43516,62: POKE 43517,4: POKE 43518,183: POKE 43519,0: POKE 23834,33: RANDOMIZE USR 23834. ENTER megnyomása után a program várja az utolsó blokk betöltését, indítsuk el a magnetofont, és betöltés után végtelen életünk lesz.
Az OCEAN Software Inc. egyik legérdekesebben kivitelezett sportszimulációja, jó minőségű animációval színesítve. A játékhoz két játékos szükséges, akik egy amerikai futballmeccset, rugby-t játszanak egymás ellen. Mindkét csapat 11-11 játékossal rendelkezik. A játék célja a játékidőben minél több pontot elérni.
Ahhoz, hogy megértsük a játék lényegét, nem árt, ha rendelkezünk némi információval a rugby szabályait illetően. A pálya hossza 100 yard. A játék négy negyedből áll, negyedenként 1500 időegységből.
Az óra csak a "tiszta" játékidőt méri, tehát csak azt, amikor a labda játékban van. Ha a negyed valamely csapat akciója közben érne véget, hosszabbítás következik az akció befejezéséig, illetve a labda elvesztéséig. A negyedek között nincs térfélcsere, a csapatok az egész mérkőzés folyamán ugyanabba az irányba támadnak. Egy csapat játékosai két kategóriát képviselnek: az 5 "futóember" célja a labda gólba juttatása, amit a 6 "ék" - finoman szólva - fizikailag támogat. A labdát rúgni és dobni is lehet.
A játék elején bejelentkező menüben a kívánt formulához tartozó szám megnyomásával kiválaszthatjuk a két játékos irányítási opcióit. Egyenlő képességű játékosoknál célszerű az 1. opciót választani, mivel a joystick/billentyűzet leosztás egyenlőtlenné teszi a küzdelmet. Az irányító billentyűk ebben az esetben a következők:
Fel: 'A' illetve '0'
Le: 'CAPS SHIFT' illetve 'P'
Jobbra: 'Q' illetve 'ENTER'
Balra: '1' illetve 'SPACE'
Tűz: 'S' illetve '0'
A játékot a '0' billentyű megnyomásával indíthatjuk. A játék képernyőjén a következő információkat láthatjuk:
SCORE: A mérkőzés állása (ez nem a gólokat, hanem az azokért
szerzett pontokat jelzi)
PWR: A negyedből hátralévő idő
QTR: Az aktuális negyed
PWR: Itt két funkció is lát ható: pontrúgás(dobás)nál
a rúgás erőssége, illetve akció közben az indulás
száma
A PWR jelző alatt lévő két kis képernyőn az akció közben történt események szimulációját láthatjuk. A képernyő jobb oldali része maga a pálya.
A képernyő bal felén (a szaggatott vonallal bekeretezett részben) az új indulások előtt az előző indulás eseményeit figyelhetjük meg, nagyban.
Az 1. játékos a fekete sisakos ("PATRIOTS") csapatot felülről lefelé, a 2. játékos a fehér sisakos csapatot ("BEARS") alulról felfelé irányítja. Az 1. játékos csapatát a pályán fekete, a 2. játékos csapatát fehér négyszögek jelzik. Minden csapatban az egyik négyszög be van keretezve, ez a csapatnak azt a játékosát jelzi, amelyet a labda játékba kerülése után irányítunk (ez változtatható). A többi játékos a stratégia alapján a gép által megszabott feladata szerint mozog.
A játék középkezdéssel kezdődik. A labdát az PATRIOTS csapat kapitánya indítja útjára. Az 1. játékosnak a jobbra-balra gombokkal be kell állítani a kezdőrúgás erősségét. Ez a 4. ablakban lévő, "POWER" feliratú skálán mérhető le. Ha beállítottuk, nyomjuk meg az 'ENTER' billentyűt. A pályán látható, hogy a labda játékba került és - látszólag - teljes kavalkád uralkodik. Igyekezzünk az általunk irányított játékossal a labda irányába. Közben az 5 - 6. ablakokban kövessük nyomon a játék mozgalmasságát, ahol 16 éven felüli filmekbe kívánkozó események zajlanak: a két csapat tagjainak találkozásakor érdekes történésekre kerül sor. Ez leginkább a "heveny verekedés" nevű jelenségre hasonlít. Ha valamelyik csapat megszerezte a labdát, a képernyő bal oldalán megjelenik a "NEW 1ST DOWN ... HAVE THE BALL" felirat, amely azt jelzi, hogy újakció kezdődik (a pontozott részen látható a labdát birtokló csapat neve). Az idő megáll és a játékosok kiválaszthatják az általuk alkalmazni kívánt stratégiát.
Támadónak minősül az a csapat, amelyik a labdát birtokolja. Feladatuk, hogy maximum 5 indulással az ellenfél kapujáig jussanak vagy gólt érjenek el. A támadó stratégia a pillanatnyi pozíció, illetve a játékos szeszélye alapján alakulhat ki. Minden induláskor a támadó áll fel először, ehhez alkalmazkodhat a védő. A támadó stratégiát egy menürendszerben állíthatjuk össze. A főmenüben eldönthetjük, hogy az indulás milyen formában zajlik. A következőkben nem ismertetjük az almenükben választható támadási stratégiák jelentőségét, ez próbálkozással tapasztalható ki.
LONG PASS (hosszú passz) játékrendszer: a labdát a dobó ember magasan, hosszan és erősen passzolja, így csak a kijelölt játékoshoz - vagy annak időközben történt elmozdulása esetén - a helyére érkezik.
- SHOT GUN (sörétes puska) forma:
A futóemberek az ékek mögött aszimmetrikusan helyezkednek el. Az indulás súlypontja látszólag a bal szélre tolódik, de a hosszúpasszos játékrendszerből következik, hogy a jobbszél is futtatható, viszont az ellenfél ezt egy jó védelem felállításával könnyen ellensúlyozhatja. A SHOT GUN-forma előnye, hogy a futóemberek az ékhez közel helyezkednek el, könnyen tért nyerhetnek.
- SPLIT RED (rajvonal) forma:
Csak a két szélső futóember használható a térnyerésre, de azok a labdát azonnal megkapják ( biztosan nem szerezheti meg az ellenfél ). Célszerű az irányított embernek valamelyik szélsőt választanunk, a hátsókkal és az ékekkel nemigen tudunk mit kezdeni. A szélsőkkel a pálya szélén végigtörhetünk, az ékek és a hátsó futók fedeznek bennünket.
- OPPOSITE BROWN (megosztott) forma:
Nem eredményez túl gyors támadást, de néhány esetben (pl. gólvonal előtt) szerencsés megoldás a jobbszélsőre alapozni, ugyanis jól irányítva, az ékek védelmében betörhet a gólterületre extra ponthoz juttatva ezzel csapatunkat. Célszerű irányított embernek is a jobbszélsőt választanunk.
SHORT PASS (rövid passz) játékrendszer: a labdát a dobóember alacsonyan és közepes erővel dobja. Így a labda átvételére kijelölt játékos és a dobóember közötti játékosok is elkaphatják a labdát. A játékrendszer nagyobb kombinációk kidolgozására is alkalmas, de hátránya, hogy az ellenfél labdára illetve emberre menő játékosai könnyen megállíthatják a futóembert, vagy - ne adj isten! - megszerezhetik a labdát.
- SPLIT (RED) forma:
Ugyanaz mint a LONG PASS játékrendszerben, de nem csak a kijelölt futó kaphatja meg a labdát, hanem más játékosok is.
- DOUBLE WING (dupla szárny) forma:
Széthúzott alakzat, a szélsők távol helyezkednek el az ékektől. A bal szélsőt megjátszva megtörténhet, hogy a közte és a dobóember között elhelyezkedő játékos veszi át a labdát. Ekkor az ellenfél emberfogó játékosai a jobb szélsőnkre támadnak, miközben az irányított emberünkkel a labda átvétele után a másik oldal felé vágtázva tért nyerhetünk.
- TRIPLE WING (három szárny) forma:
Az egyik léghatékonyabb támadási forma ebben a játékrendben. A két szélső a majdnem teljesen a szélre húzódva, az ékekkel egy vonalban várja a labdát. Ha a passz sikeres volt, majdnem biztos, hogy a gólterületig tudunk előretörni. A hátránya is az előnyében rejlik: az ékek túl távol állnak a futóktól, hogy fedezhessék őket, tehát egy jól felállított védelem könnyen keresztülhúzhatja számításainkat.
RUSH PLAY (rohamjáték) játékrendszer: a nevéből is kiderül, hogy a gólterület megrohamozása a játékrend célja. Az ellenfél kapujának közelében célszerű alkalmazni. Ebből általában igen tumultuózus, szívmelengető jelenetek kerekednek ki: az élőerőben jelentős kár keletkezik.
- I FORMATION (I-felállás) forma:
Az ékek csak közvetetten támogathatják a labdával megjátszott szélsőket, mivel túl messze vannak tőlük. A szélsők közül - pozíciójukból adódóan - egyenlő eséllyel indíthatjuk bármelyiket: a balszélső az ékek vonalában, de az ellenfél védőihez túl közel, a jobbszélső az ellenféltől távolabb, de 2 yarddal hátrább helyezkedik el.
- NEAR BLUE forma:
Hasonló az I-felálláshoz, csak a hátul elhelyezkedő futóemberek pozíciója változott. A szélsőkre is ugyanazok az instrukciók vonatkoznak. A két felállás különbsége csak ott jelentkezik, ha irányított embernek a hátsók közül választunk.
- NEAR BLUE SLOT forma:
A legjobb támadási forma ebben a játékrendben. Egyetlen szélső van csak, teljesen a jobb szélre húzódva, amelyre a védelembál legalább 2 embert kell állítani, hogy megakadályozzák az előretörésben. Irányított és megjátszott embernek is célszerű a szélsőt választani.
SPECIAL PLAY (speciális) játékrendszer: speciális esetekben illetve jobb ötlet híján alkalmazható formulák tartoznak ide.
- FIELO GOAL (kapuradobás) forma:
Ha a kapuhoz elég közel és szemben állunk, választhatjuk ezt a formát. A védők beállítása után a 4. ablakban egy középkezdéshez hasonló skála jelenik meg, amelyen a rádobás erősségét határozhatjuk meg. Itt célszerű a maximális értéket beállítani, mert ha gyengén dobunk a labda esetleg nem megy el a kapuig, vagy a betömörülő védők megszerzik.
PUNT (pontrúgás) forma:
Hasonló a FIELD GOAL formulához, de itt a labdát nem rádobjuk, hanem rárúgjuk a kapura. A többi instrukció megegyezik az előbbi formáéval.
- GOAL LINE RUSH (gólvonal megrohamozása) forma:
Elég suta egy támadási forma, csak akkor érdemes használni ha már semmi jobb nem jut eszünkbe. A futók és az ékek is egy kupacban helyezkednek el, a labda játékba hozásakor toronyiránt rohamoznak a gólterület felé. Ez általában semmit sem eredményez, rosszabb esetben a labda elvesztését.
Ha a labdát valamely játékossal a gólterületre sikerült juttatnunk, a kis ablakban láthatjuk, hogy a játékosunk előrevetődve feldobja a labdát. Az akció befejeződött, 6 pontot és egy extra lövést kapunk. Az extra lövés megegyezik a PUNT és FIELO GOAL formákkal, de - míg azoknál 3 - itt 1 pontot érhetünk el.
Ha a labda valamilyen módon (pontrúgásnál, rövid passznál stb.) "holt" játéktérbe jut, vagyis az egyik csapat sem tudja megszerezni, "SAFETY" állásba állnak fel a csapatik. Ez a kezdéshez hasonlóan zajlik, nem szükségszerűen a pálya középrészén.
A menük opciói között a fel-le billentyűkkel váltogathatunk és a tűz gombbal szelektálhatunk. Ha kiválasztottuk a kívánt támadási stratégiát, egy újabb menüt kapunk eredményül, amely a következő opciókat tartalmazza:
MAIN MENU - visszatérés a főmenühöz
PREVIOUS MENU - a támadási stratégia újraválasztása
NEXT FRAME - választásával azt szemlélhetjük, hogy a beállított stratégiából adódóan a játékosoknak elméletileg milyen lépéseket kellene tenniük
SETUP RECEIVER - a labdával megjátszani kívánt játékos kiválasztása. A jobbra-balra billentyűkkel váltogathatunk a játékosok között. Ha a keret az általunk kívánt játékoson van, nyomjuk meg a tűz billentyűt, amíg BEEP-zajt nem hallunk.
A menü alsó sorában látható a kiválasztott stratégia megnevezése.
Ha beállítottuk az összes általunk kívánt paramétert, térjünk vissza a főmenübe (MAIN MENU) és válasszuk a PLAY GAME opciót. A vezérlés ekkor átkerül a védőcsapat játékosának kezébe, aki kiválaszthatja a támadási stratégia ellen alkalmazni kívánt védelmi rendszert.
A játékban négyféle védelem között válogathatunk, alapértelmezésben a 3-4-4 védelem van beállítva. A védők főmenüjében valamely opciót választva, azonnal megjelenik a felállt védelem.
A védelmi rendszereknél nem nyújtunk bővebb instrukciókat a felállások előnyeinek és hátrányainak elemzésével, mert a támadó alakzatok ismertetéséből logikusan következik, hogy milyen védelem alkalmazandó ellene. Általános szabály, hogy az ellenfél futóembereit, megjátszott embereit és szélsőit emberfogásos rendszerrel kell fedezni. Ezt a védelem kiválasztása után megjelenő védelem-táblában állíthatjuk be. Itt a két csapat játékosainak számai láthatóak, a jobb oldali a támadókat, a bal oldali a védőket jelképezi. A védők között a le-fel billentyűkkel mozoghatunk. Az éppen aktuális védőnél az általa fogott ellenséges játékos, illetve a "BALL" felirat vált inverzre, ami azt jelenti, hogy a játékosunk nem embert fog, hanem a labdára megy. Ha nem vagyunk megelégedve az eredetileg beprogramozott védelmi rendszerrel, tetszés szerint megváltoztathatjuk. A változtatni kívánt játékos számánál megállva nyomjuk meg a tűz gombot a BEEP-zajig, majd a jobbra-balra és a tűz billentyűkkel válasszuk ki, hogy a védőnk melyik embert fogja. Ezt a pályán a bekeretezett ellenfél, a menüben a fogott játékos számának invertálódása jelzi. Egy ellenfélre (pl. a megjátszott szélsőre) akár több embert is ráállíthatunk. Ha azt akarjuk, hogy játékosunk ne embert fogjon, hanem a labda megszerzésére törekedjen, állítsuk a BALL rovatra az inverz fényt. A FREE rovatot választva a pályán bekeretezve láthatjuk az ellenfél általunk szabadon hagyott játékosait.
Ha beállítottuk a védelmet és az azon belül alkalmazni kívánt rendszert, térjünk vissza a menübe, ahol kiválaszthatjuk az általunk irányítani kívánt játékost (a támadókhoz hasonlóan történik). Ezután a RETURN TO PLAY opciót választva - az ellenfél által megnyomott tűz gomb hatására - a támadók dobóembere megjátssza a labdát, megkezdődik az akció.
Ha a támadás elakad, a gép "... YARD GAIN" illetve " YARD LOSS" felirattal jelzi, hogy a támadók hány yardot haladtak előre illetve szorultak vissza. A "...DOWN" felirat azt mutatja, hogy a támadó hányadszor indul. Ha az ötödik indulás sem jár sikerrel, a labdát a másik csapatnak kell átadni. A védő- és támadóstratégiák beállítása minden indulás után újra következik. Természetesen ezeket nem kötelező mindig újraállítani, csak akkor, ha új stratégiát kívánunk alkalmazni.
A menürendszer használata eleinte kissé bonyolultnak tűnik, de miután belejöttünk, a játék kitűnő szórakozást nyújt. Egy teljes mérkőzés lebonyolítása akár több órát is igénybe vehet, tehát a két játékost hosszú ideig tartósan a géphez köti. A sportszimulációk kedvelői - az első próbálkozások után - bizonyára nagyon megkedvelik ezt a játékot.
SPRITE-GENERÁTOR WHITE LIGHTNING
A SPRITE-SZERKESZTŐ BETÖLTÉSE ÉS INDÍTÁSA
A WHITE LIGHTNING program sprite-generátora SPT/GEN néven található meg a gyári kazettán, betöltése hagyományos módon (LOAD "" vagy LOAD "SPT/GEN") történik. A program egy kérdéssel jelentkezik be: el kell döntenünk, hogy hideg- (COLD) vagy melegindítással (WARM START) kívánjuk-e a szerkesztőt elindítani. A választás a kívánt eljáráshoz tartozó inverz betű ('C' vagy 'W') megnyomásával történik az alábbi következményekkel:
COLD START: a memóriában található összes sprite törlődik, a rendszerváltozók inicializálódnak, tehát a program alapállapotba áll be. Az eddigi munkánk teljes törlésére és a demo-sprite-ok betöltése előtt használatos. A rendszert - betöltés után - mindig COLD START-tal kell elindítanunk.
WARM START: a memóriában tárolt sprite-ok és rendszerváltozók nem törlődnek. Véletlen 'BREAK'-használat vagy - esetleges - hibaüzenetet eredményező hiba esetén újraindítás (GO TO 3) után melegindítást használva a program leállásáig meglévő adatokkal tovább folytathatjuk a munkát. WARM START csak egy - a program indításakor - előzőleg használt hidegindítás után használható.
Az indítási paraméter beállítása után egy újabb kérdést kapunk, amelyben a program érdeklődik, hogy meg kívánjuk-e változtatni a puffer méretét. Amikor a WHITE LIGHTNING ún. background (háttér) üzemmódban van (ld. a későbbiekben), a memória felső része egy törölhető blokk, a puffer. Ennek a mérete a program működésétől és a kiszámított adatoktól függ. A SPRITE-GENERATOR működésekor alapállapotban ez a méret 256 byte. A puffer a későbbiekben lesz hasznos, most egyenlőre ne változtassuk meg a méretét.
A SZERKESZTŐ KÉPERNYŐI
Az előbbi két paraméter beállítása után rövid időn belül feltűnik a szerkesztő-munkaasztal.
A képernyő bal felső részén (a továbbiakban munkatábla) látható egy karakter kinagyított képe, amelyben a jobb oldali sprite-szerkesztő képernyőre (a továbbiakban munkaterület) kerülő karaktereket szerkeszthetjük meg illetve finomításokat végezhetünk.
A munkatábla bal felső sorában látható a karakterkurzor, amit a kurzor-vezérlő billentyűkkel (5-8) mozgathatunk. A kurzor mozgatása "virtuális", vagyis ha pl. jobb oldalon kimegyünk vele, a bal oldalon fog megjelenni. Ha a kurzor pozíciójában megnyomjuk a '9' billentyűt, az adott pozíció sötét színűre vált (ezt természetesen csak akkor mérhetjük le, ha a kurzort tovább léptetjük). Ez azt jelenti, hogy a szerkesztett karakter adott pozíciója a munkaterületre kerüléskor INK színű lesz. Ha a pixel pozíciója nem felel meg elképzeléseinknek, a - kurzort a pozíciójába állítva - '0' billentyű megnyomásával újra PAPER színűvé változtathatjuk a pixelpozíciót. A munkatábla teljes törlése a 'Q' billentyűvel lehetséges.
A munkatábla bal oldalán láthatjuk a szerkesztett karakterre vonatkozó attribútum-információk kapcsolóit. Ezeket nem szükséges külön magyarázni, a kapcsolók tulajdonképpen a normál Spectrum-BASIC funkciójukat látják el. A funkciók után áll a kapcsolóra vonatkozó számkód, ami meghatározza a színeket (INK, PAPER) illetve a funkciót kapcsolja ki/be. A számkódok állítása következőképpen történik: a funkcióhoz tartozó billentyű megnyomása után (a funkció villog) begépeljük a kívánt számkódot. A funkciókhoz tartozó billentyűk:
'X': INK (0-7)
'C': PAPER (0-7)
'B': BRIGHT (0-1)
'V': FLASH (0-1)
'A': ATTR (0-1)
A kapcsolók átállítása után a munkatáblán látszólag semmi sem történik, de a szerkesztett karakter a munkaterületre történő átmásoláskor már az új attribútum-adatokkal fog átkerülni.
A képernyő jobb felső részén található a sprite-ok tulajdonképpeni szerkesztője, a munkaterület. Ide másolhatjuk át a munkatáblán megszerkesztett karaktereket. A karakterek a munkaterület két kurzora (X és Y-kurzor) által meghatározott pozícióba (a két kurzor metszéspontjába) kerülnek. A kurzorok mindenkori pozíciójának kijelzése a képernyő alatt, az XPOS és YPOS mezők után történik, a sorokhoz/oszlopokhoz rendelt hexadecimális számok alapján. A kurzorok mozgatása hasonló a karakterkurzoréhoz, a 'SYMBOL SHIFT 5-8' (X-kurzor) és a 'SYMBOL SHIFT 6-7'. (Y-kurzor) billentyűkkel történik. A munkaterület teljes törlése a 'SYMBOL SHIFT Q' billentyűk megnyomásával történik.
AZ INFORMÁCIÓS ABLAK
A képernyő alsó részén látható a program kommunikációs ablaka, amely a munkaterületen szerkesztett sprite-ra vonatkozó adatokat tartalmazza:
MEMORY LEFT: a sprite-ok szerkesztésére felhasználható memóriaterületet jelzi, alapállapotban 12549 byte. Vigyázat, ez az adat csak a memóriába a GET használatával már bekerült sprite-okra vonatkozik!
XPOS, YPOS: erről már beszéltünk, a munkaterület kurzorainak pozícióját tartalmazza, hexadecimálisan.
SPRITE: a szerkesztőről memóriába eltárolt sprite kezdőcíme.
SPST: a sprite-terület kezdőcíme a memóriában, alapállapotban 65279.
SPND: a sprite-terület végcíme a memóriában, alapállapotban - nincs egy sprite sem a memóriában - 65279.
SPRITE HEIGHT: a szerkesztett sprite magasságát jelöli karakterekben. A jelölés maximum 15 karakter mértékig terjedhet (a munkaterület mérete) bár a LIGHTNING egyik funkciójával ennél nagyobb sprite-okat is definiálhatunk.
SPRITE LENGTH: a szerkesztett sprite szélességét jelöli karakterekben (max. 15).
SPRITE NUMBER: az aktuális sprite száma.
Az információs ablak alatt található az input-sor, amelyben a szerkesztő funkció billentyűihez tartozó adatokat vihetjük be illetve a funkciók végrehajtását hagyhatjuk jóvá.
A következő fejezetben megismerkedhetünk a sprite-generátor további funkciókat ellátó billentyűinek használatával.
A SPRITE-GENERÁTOR EGYÉB FUNKCIÓBILLENTYŰI
A sprite-generátor alábbiakban ismertetett funkcióbillentyűi a megszerkesztett sprite-okkal történő manipulációkra alkalmazhatóak, az általuk kiváltott funkciókat - a hibák elkerülése végett - a megjelenő kérdésre történő 'Y' (YES) válasszal kell jóváhagynunk:
'Z': karakter hívása az arcade-készletből. Az input-sorban be kell gépelnünk a kívánt karakter számát, majd RETURN. A kiválasztott sprite megjelenik a munkaterület aktuális pozíciójában.
'K': az aktuális karakter átmásolása a munkatáblára.
'G' (GET): sprite elhelyezése a memóriában, az aktuális paraméterek szerint (a sprite villog).
'P' (PUT): a SPRITE változó által meghatározott sprite előhívása a memóriából. Ha SPRITE számú sprite nem létezik a memóriában (nem lett GET-tel elhelyezve) "Error: SPRITES NOT DEFINED" hibaüzenetet kapunk.
'J': karakter átmásolása a munkatábláról a munkaterület aktuális pozíciójába.
'S' (SPRITE): a sprite sorszámának megadása.
'L' (LENGTH): a sprite szélességének a beállítása (1-15).
'H' (HEIGHT): a sprite magasságának a beállítása (1-15).
'W' (WIPE SPRITE): a SPRITE változó által meghatározott sprite törlése a memóriából.
'E': a billentyű megnyomása egy sprite megjelenésével történő manipulációkat szolgálja egy újabb menü segítségével:
1. invertálja a sprite-ot (a PAPER és INK színek felcserélődnek)
2. a függőleges tengelyre tükrözi a sprite képpont-adatait
3. a függőleges tengelyre tükrözi a sprite ATTR-adatait
'R' (ROTATION): új sprite definiálásával (a számot nekünk kell megadnunk az 1-255 intervallumban) 90 fokkal elforgatja a memóriában az aktuális karaktert és a SPRITE változót automatikusan átváltja az új karakter számára amelyet PUT-tal ('P') az aktuális munkaterület-pozícióba helyezhetünk.
'I': a munkaterületen - az 'L' (LENGTH) és 'H' (HEIGHT) billentyűkkel - beállított területet az aktuális attributun értékekkel (INK, PAPER stb.) tölti fel.
'U': a munkaterület beállított részének attributumait átírja az attribútum-kapcsolókba.
'M': a billentyű megnyomása után kiválaszthatjuk, hogy milyen manipuláció történjen (invertálás, tükrözés, FLASH), de a kiválasztott funkció a memóriában fog végrehajtódni.
'N': a billentyű megnyomása után nem kell mindig YES válasszal megerősítenünk a művelet végrehajtását.
'Y': a megerősítési kérdések visszakapcsolása.
'0': két sprite logikai összevonása, a megjelenő menüből kiválaszthatjuk, hogy milyen formában történjen az összegzés (GETOR, GETXOR, GETAND).
'F': a munkaterület adott területének villogtatása.
A munkaterület beállított területén az ott elhelyezkedő sprite-ot pixel-scrollal (képpontonként léptetve) görgethetjük. A görgetés a következő billentyűkkel történik:
'SYMBOL SHIFT T': balra
'SYMBOL SHIFT I': jobbra
'SYMBOL SHIFT Y': le
'SYMBOL SHIFT U': fel
A 'D' billentyű megnyomása után a DIRECT DATA INPUT üzemmódba léphetünk. Ezzel az eljárással a billentyűzetről vihetjük be egy karakter adatait, nem kell a munkatáblán dolgoznunk. A program 8 byte begépelését várja (ennyi adat határoz meg egy karaktert, egy pixelsor 1 byte). Az egyes byte-ok begépelése után meg kell nyomnunk az 'ENTER' billentyűt.
A SPRITE-GENERATOR INPUT/OUTPUT FUNKCIÓI
A szerkesztőben megalkotott sprite-okat - természetesen - felhasználhatjuk a WHITE LIGHTNING-ban írt programjainkban, de ezeket előbb adathordozóra kell mentenünk. A sprite-generátor memóriájában levő sprite-okat egy önálló sprite-készletként menthetjük ki.
A kimentés a 'SYMBOL SHIFT S' billentyűk megnyomásával történik. Ezután meghatározhatjuk, hogy a készletet még tovább kívánjuk-e módosítani a sprite-generátorral (1.opció) vagy már készem van, a WHITE LIGHTNING által kezelhető formában kérjük a kimentést (2. opció, a kimentés előtt a program kiírja a sprite-terület (SPST) kezdőcímét is). Bármelyik opció választása újabb kérdést eredményez: magnóra vagy microdrive-ra kívánjuk-e a kimentést? A kívánt adathordozó kiválasztása után meg kell adnunk a sprite-file nevét és elindítani a kimentést.
A sprite-file-ok betöltése a 'SYMBOL SHIFT J' billentyűkkel történik. Ezután meg kell határoznunk, hogy milyen adathordozóról történik a töltés és be kell gépelnünk a betölteni kívánt file nevét.
A program futása közben a 'SYMBOL SHIFT F' billentyűk megnyomásával lehetőség van a microdrive-kazetta formattálására.
BEEP ERŐSÍTŐ
Ez egy kis eszköz a Spectrumhoz, amely lehetővé teszi a BEEP hang kierősítését. Hogyan működik? Nos mindenekelőtt a legfontosabb, nem kell hozzá elem, a Spectrum +9 V-os hálózati tápforrását "csapoljuk meg". A hangerő szabályozásához potenciométert használhatunk, míg a hang egyszerű hangszórón megszólaltatható. A csatolást célszerű két lépcsőben megoldani, vagyis a Spectrum hálózati (2,1 mm-es) tápforrás dugóját az erősítőbe épített aljzatba, míg az erősítőből kilépő vezeték végére szerelt 2,1 mm hálózati tápforrás dugót a Spectrum aljzatába dugjuk. A 3,5 mm JACK dugót a Spectrumnak a MIC vagy EAR aljzatába is helyezhetjük, innen vesszük le az erősíteni kívánt jelet. Az áramkör kapcsolási vázlata a következő:
Alkatrészlista
Potenciométer 1 db. 22K LOG RV1 IC 1 db. LM 380 IC1 Kondenzátorok 1 db. 0.l µF keramikus Cl 1 db. 470 µF 16V ELKO C2 Hangszóró 1 db. 8R 2" H1 Hl JACK dugó 1 db. 3.5 mm Hálózati tápforrás dugó/aljzat 1 db. 2.l mm |
Javasolt bekapcsolási sorrend
- Potenciométer min. állásba állítása - Hangszóró vezeték csatlakoztatása - Erősítő áram alá helyezése - Spectrum áram alá helyezése - 3.5 mm JACK dugó csatlakoztatása - program betöltése - megfelelő hangerő beállítása
|
A PRECISION PLOTTER
A programnak ez a része egy nagyteljesítményű felbontással rendelkező rajztáblát kínál, képernyők készítéséhez. Eszközei messzemenően követik a Sinclair BASIC lehetőségeit, de a grafikus utasítások (PLOT, DRAW, CIRCLE) alkalmazása helyett mindössze csak egy kurzort kell mozgatnunk és a parancsok előidézése csak egy billentyű megnyomását igényli. További segítségképpen alkalmazhatjuk az ARC (ívelt vonal rajzolása) és a FILL (zárt síkidomok befestése) lehetőségeket is. A főmenü 2. opcióját választva juthatunk ebbe az üzemmódba. Először is egy kérdésre kell válaszolnunk: üres képernyőt (BLANK SCREEN) kívánunk vagy szalagról akarjuk-e betölteni egy már megkezdett képernyőnket (LOAD FROM TAPE). Válasszuk most az üres képernyőt és ismerkedjünk meg a PAINTBOX rajzolási lehetőségeivel.
Az első feladatunk kiválasztani, hogy milyen színeket kívánunk használni (INK, PAPER és BRIGHT). Állítsuk be a kívánt kombinációt. Törlődik a rajztáblánk, megjelenik a kurzor, alul pedig a kurzor koordinátái és az üzemmódot jelző felirat (LINE MODE). A kurzort könnyedén és gyorsan pozícionálhatjuk a képernyő különböző pontjaiba, de ha túl gyorsnak tűnik a mozgása, a CAPS SHIFT billentyű nyomásával lelassíthatjuk. Rajzolás közben a következő eljárások állnak a rendelkezésünkre:
-PLOT: A 'Q' billentyű megnyomására a kurzor pillanatnyi pozíciójában megjelenik egy pixelpont.
-DRAW: Ha egy PLOT-pont megadása után a kurzort a képernyő egy más pontjára visszük és megnyomjuk a 'W' billentyűt, az előbbi PLOT-pont és az új kurzorpozíció között egy DRAW-vonal fog húzódni. Ha a kurzort továbbmozgatjuk és a billentyűt újból megnyomjuk, egy újabb vonal jelentkezik az előbbi vége és az új pozíció között. Szabályos geometriai ábrák (négyzet, téglalap stb.) rajzolását a kurzor pozícióját jelző számok segítik.
-FILL: Ha a kurzort egy zárt síkidom belsejébe állítjuk és megnyomjuk az 'F' billentyűt, a síkidom befestődik INK színnel.
-ERASE: Ha a FILL-eljárással kiszínezett síkidom nem nyerte meg tetszésünket vagy a síkidom nem volt lezárva és a tinta "kifolyt", az 'E' billentyűvel törölhető a kifestés. Megjegyzés: az ERASE csak az előző FILL hatását szünteti meg, a többit figyelmen kívül hagyja.
-CIRCLE: A 'H' billentyű megnyomásával lehetőségünk van kör rajzolására. A középpont a kurzor pillanatnyi pozíciójában lesz, mindössze a kör sugarát kell megadnunk. Túl nagy sugár megadása esetén a gép új érték megadását kéri.
Az idáig ismertetett opciók mind a LINE MODE-üzemmódban funkcionáltak. Az 'R' billentyű megnyomásával átállhatunk egy másik üzemmódba; a RADIAL MODE eljárásba. Ha ebben a 'Q' billentyűvel kijelölünk egy PLOT-pontot, akkor a később húzott vonalak mindegyike ebből a pozícióból fog kiindulni illetve ide fog visszatérni a 'W' billentyű minden megnyomása után. A visszatérés a '3' billentyű megnyomásával történik. A LINE MODE-ba való visszatérés után próbálkozzunk meg a következő lehetőségek használatával:
-ARC: Egy PLOT-pont meghatározása után pozícionáljuk a kurzort arra a helyre, ahol az általunk rajzolni kívánt ívnek be kellene fejeződnie. Ha ezután megnyomjuk az 'A' billentyűt, a gép egy kérdést tesz fel (CURVE OF ARC), amelyre az ív görbületét meghatározó számmal kell felelnünk (bármilyen szám a 0 kivételével). A szám egyaránt lehet pozitív és negatív, egész és tizedes, hatása a következő: minél kisebb a szám, annál nagyobb lesz az ív görbülete. Az 1 megadása félkör rajzolását eredményezi. Sajátos módon az ívek domború illetve homorú állagát az fogja meghatározni, hogy a PLOT-pont kijelölése után, milyen irányban mozgattuk a kurzort (pl. jobbra vitt kurzor esetén a negatív szám felfelé domború ívet eredményez). Megjegyzés: Az ívrajzolás még elvben sem lehet teljesen hibamentes. Ha hibaüzenetet kapnánk (NUMBER TOO LARGE: túl nagy az ívszám; OUT OF SCREEN: az ív kiment a képernyőről), RUN parancsot kell kiadnunk, visszatérni a PRECISION PLOTTER-hez és az 'E' billentyű (ERASE) megnyomásával törölhetjük a hibás vonalat.
-INK: Az 'X' billentyű megnyomásával hívhatjuk meg. Bemutatja az összes INK lehetőséget, beleértve a BRIGHT-árnyalatokat is. Az árnyalatok hívásánál a CAPS SHIFT billentyűt is használnunk kell.
-OVER: Az 'N' billentyű megnyomásával hívhatjuk meg. Alkalmazható a PLOT, DRAW, CIRCLE és ARC mellett, de a FILL esetén nem üzemel. Apróbb hibák is eltüntethetőek vele.
-CURSOR: Lehetőség van a kurzor alakjának megváltoztatására: a 'K' billentyű kereszt, az 'M' billentyű pont alakú kurzort ad.
-PERMANENT: Lehetőség van a készülő képek munkafázisait a memóriába raktározni, hogy valamilyen javíthatatlan hiba esetén ne kelljen a kép megrajzolását újrakezdeni. A 'P' billentyű megnyomására a rajztábIán pillanatnyilag fennálló állapot a memóriába kerül.
-GRAPHICS: A PERMANENT eljárással a memóriába kimentett kép a '9' gomb megnyomására visszakerül a rajztáblára.
-COPY: A 'COPY' billentyű megnyomására a kép kinyomtatódik a printeren.
-SAVE: Az 'S' billentyű megnyomásával képernyőként vagy memóriállományként szalagra menthetjük a képünket. A kimentett állomány neve max. 6 karakterből állhat.
-LOAD: A 'J' billentyű megnyomásával behívhatunk a magnóról egy SCREEN fokmában tárolt képernyő-állományt. Az eddig érvényben lévő PAPER és INK színek is tovább élnek.
Ha a főmenü LOAD-opcióját választjuk a SCREEN típusú állomány a Display file-ba töltődik, beolvasása után azonnal és automatikusan PERMANENT-állományként átíródik a memóriába. A későbbiekben BLANK SCREEN és GRAPHICS ('9') kell ahhoz, hogy a képernyőre hívjuk módosítás céljából.
A PAPER változtatása
Mivel a Spectrum felbontóképessége a színekre nézve korlátozott, a program tervezői szántszándékkal elhagyták a PAPER változtatásának lehetőségét. Ezenfelül azonban mégis van rá mód, hogy a korlátokat kikerüljük:
- a PRECISION PLOTTER-ben lévő, e szempontból érdekes terület koordinátáit feljegyezzük, majd visszatérünk a főmenübe. Itt újraválaszthatjuk a PAPER-színt, majd lépjünk be ismét a PRECISION PLOTTER-be. A pixel-kurzort állítsuk ugyanarra a koordinátára és hívjuk be a memóriából a képünket. Ezután a kurzor új színű rajzot ad anélkül, hogy az eredeti színek megváltoznának. Ha mégis valami hiba történne és a PERMANENT-memóriában tárolt képünk is elromlana, nem kell elkeserednünk, mert az ERASE-memóriában még van egy kópia az utolsó művelet előtti állapotról. Ha a főmenübe való visszatérés után megnyomjuk az 'E' billentyűt, a képünkön ismét dolgozhatunk.
- a másik módszer a főmenübe visszatérve a SCREEN PLANNER-t választani. Ezzel bármely karakterpozíció PAPER vagy INK hibája korrigálható.
Zotyócopy
Hazai eredetű másolóprogram, ami indokolja azt is, hogy Magyarországon az egyik legelterjedtebb. Lehetőségei a COPIER FM-3-nál sokrétűbbek, viszont kezelése több figyelmet igényel. Talán ennek tudható be, hogy sokan maradtunk meg a jól bevált FM-3 mellett, persze ezzel gyakran "befürdünk".
A betöltött file-ra vonatkozó adatok megegyeznek a COPIER FM3 által használt jelölésekkel (a fejléc nélküli file-t a T rovatban H-val jelöli).
A képernyő jobb felső sarkában látható a még rendelkezésre álló memóriakapacitás (alapállapotban 41780 byte). Alatta láthatóak a program utasításai. Az utasítások közül fehérrel látszódnak azok, amelyek az adott helyzetben alkalmazhatóak. Választásuk a kezdőbetű megnyomásával történik.
A file-ok betöltése BREAK-kel szakítható meg. Ekkor az első utasításcsoportot használhatjuk:
-forget: kitörli a betöltött file-okat, alapállapotba hozza a programot
-load: a töltés indítása
-verify: a BASIC-parancsnak megfelelően ellenőrzi, hogy a kimentett file megegyezik a memóriában lévővel
-End (CAPS SHIFT+E): kilépés a programból
A save választásakor bekapcsolódik a második utasításcsoport, amelyben
-auto választásával folyamatosan kimenthetünk minden file-t, ami a memóriában van;
-hand választásával "kézi vezérlést" kérhetünk, bekapcsolódik a harmadik utasításcsoport:
-up: a file-ok között haladhatunk felfelé, a kurzor jelzi az aktuális file-t
-down: a file-ok között haladhatunk lefelé, a kurzor jelzi az aktuális file-t
-ENTER: a kiválasztott file kimentésének elindítása
Ha a memóriakapacitás nem elegendő, a CAPS SHIFT és az M billentyűk megnyomása után "max. byte" üzemmódba térhetünk át, amelyben 49076 byte-ot másolhatunk egyszerre. Ezzel az üzemmóddal azonban csak egyszer menthető ki a betöltött file (ENTER), ezután a program leáll, BREAK billentyűre rendszer-reset történik.
Hibás file betöltése esetén a töltés megáll és a jobb felső sarokban (a memóriakapacitás helyén) "TAPE ERROR" üzenetet láthatunk.
Közkézen forog a program ZOTYOCOPY változata is, amely-annyiban új az előzőhöz képest, hogy a max. byte-os file-okat többször is ki lehet menteni egymás után (ismételt ENTER megnyomása esetén).
MÁSOLÓPROGRAMOK
Super 50K (Copy 86M)
Egy újabb keletű másolóprogram, hatalmas sikerrel, mert a program olyan dolgot tud, mint amire elődei nem voltak képesek. A SUPER 50K ugyanis "tömörít": ha a betöltés alatt álló file-ban több egymás után következő byte értéke megegyezik, egy táblázatban elraktározza magának hogy melyik címtől kezdődően hány byte értéke azonos és ezt kimentéskor a táblázatból kiolvassa. Ez azt jelenti, hogy - kedvező esetben - a programmal akár több, mint 50 Kbyte hosszúságú file is másolható. A tömörítést betöltés közben a képernyő alsó felén láthatjuk.
A betöltött file-ra vonatkozó adatok megegyeznek a hagyományos másolóprogramok által használt jelölésekkel. A file-ok nevei egy négy sor magasságú ablakban láthatóak, amelyet - négynél több file betöltése esetén - felülről lefelé görgethetünk. A file-okat egyenként vagy auto-save üzemmódban menthetjük ki.
A betöltés L billentyű megnyomására indul, BREAK-kel szakítható meg. A betöltött file-ok között az S (SKIP) billentyűvel mozoghatunk, az aktuális file inverzben látszik.
C (COPY) billentyűvel kimenthetjük az aktuális file-t, D-vel (DELETE) törölhetjük. Az A (ALL) billentyűt alkalmazva az előbbi két művelet előtt, az összes file-ra (mindegyik invertálódik) vonatkoztathatjuk a műveletet. A törlő és kimentő funkciókat ENTER-rel kell jóváhagyni. Az összes file kimentése tehát a következő billentyűkkel lehetséges: A; C; ENTER. Ezután a bal felső sarokban megjelenik a "Start tape..." felirat, újabb ENTER megnyomásra a kimentés megkezdődik.
V (VERIFY) billentyű megnyomása után a program VERIFY BASIC-utasítást hajt végre. Auto-save esetén a C billentyűvel beállított file-ok között egy másodperc, M (CP; COPY PAUSE) billentyűvel beállított file-ok között 3 másodperc szünet lesz. A betöltött file-ok kimentési ideje a jobb felső sarokban látszik.
Hibás utasítás kiadása után az X billentyűvel törölhetünk. H billentyűvel a kijelzést módját határozhatjuk meg (decimális/hexadecimális).
A program rendelkezik még egy érdekes funkcióval: a memóriába betöltött BASIC-programot a B billentyűvel kilistáztathatjuk és scrollozhatjuk, P betűvel kinyomtathatjuk printerre.
Hibás file betöltése esetén a töltés leáll és a file után egy kérdőjelet rajzol. A hibás file nem menthető ki, de törölhető és újabb L megnyomása után a töltés újra megkísérelhető. Néha előfordul, hogy a hibás file előtt - egyszer már hibátlanul betöltött - file-t is kérdőjellel jelöl, ilyenkor ezt is törölnünk kell.
OLVASÓINK KÉRDEZTÉK
Az előző részben megjelent PYJAMARAMA örökélet POKE több felhasználónál nem működött, így most közlünk egy másik verziót. Töltsük be a BASIC betöltőt, majd BREAK és magnó állj. Írjuk be: POKE 23828, 201, majd RANDOMIZE USR 23786 és indítsuk újra a magnót. Amikor a betöltés 'OK' üzenettel megáll, gépeljük be: POKE 43883, 255:POKE 23828,195: RANDOMIZE USR 23828. A játékot 255 élettel játszhatjuk végig (ha tudjuk). |
VEZÉRLÉS FORDÍTOTTAN ÁGYAZOTT CIKLUSOKKAL
A legtöbb BASIC kézikönyv tiltja a fordítottan ágyazott ciklusok használatát, vagyis a "FOR I=...: FOR J=...:...: NEXT I: NEXT J" jellegű ciklus-szerkezetek alkalmazását. Valóban, ezek helytelenül strukturáltak, sőt, a legtöbb gép hibaüzenettel leáll, ha ilyennel találkozik, - de például a Spectrumon érdemes megnézni, hogy mire lehet használni őket.
Ha több ciklust fordítottan ágyazunk egymásba, annak az lesz az eredménye, hogy az első ciklus lefutása után beindul a második - de eközben az első sem áll le. Így pl. ha az első ciklus változójának végértéke 10, akkor ezt elérve elindul a második ciklus, de az első változó is tovább nő 11-re, 12-re, stb. Ez viszont sokban hasonlít egy félautomata vezérlőlánc működésére, amire a legszemléletesebb példa a szállítószalag. Amikor egy három részből álló szalagon kell valamit szállítani, akkor a kettes, illetve a hármas szalag bekapcsolására nincs szükség addig, amíg megfelelő idő el nem telik -,vagyis amíg az anyag el nem éri a kellő szalagot.
Ezt a vezérlést illusztrálja a mintaprogram;; a ciklusok ágyazása jól megfigyelhető a 100., 110., 120., illetve a 160., 170. és a 180. sorokban. A vezérlés félautomata, hiszen a szalagok kikapcsolása már nem ebben a gazdaságos sorrendben, hanem egyszerre történik.
Az ilyen szerkezeteket azonban csak indokolt esetben célszerű használni, hiszen hanem kellően gondoljuk át, olyan programhibákhoz vezethet, amelyeket kideríteni és megszüntetni ingen nehéz.
1 REM *** FORDITOTTAN AGYAZOT T CIKLUSOK ***
10 PLOT 10,85: DRAW 60,20: DRAW 8,-16,-PI: DRAW -60,-20: DRAW -8,16,-PI
20 PLOT 80,85: DRAW 60,20: DRAW B,-16,-PI: DRAW -60,-20: DRAW -8,16,-PI
30 PLOT 150,85: DRAW 60,20; DRAW B,-16,-FI: DRAW -60,-20: DRAW -8,16,-PI
40 PRINT AT 16,5;"I=";AT 16,14 "J=";AT 16,2 ;"K="
100 FOR i=1 TO 10
110 FOR j=1 TO 10
120 FOR k=1 TO 10
130 PRINT AT 16,7;i: GO SUB 1000
140 PRINT AT 16,16;y: IF j>1 THEN GO SUB 1030
150 PRINT AT 16,25;k: IF k>1 THEN GO SUB 1060
160 NEXT i
170 NEXT j
180 NEXT k
190 STOP
1000 OVER 1: PRINT AT 10,2;" ";AT 11,9;" ": PAUSE 20: PRINT AT 10,2;" ";AT 11,9;" ";AT 9,5;" ";AT 12,6;" "
1010 PAUSE 20: PRINT AT 9,5;" "; AT 12,6;" ";AT 8,8;" ";AT 13,3;" ": PAUSE 20: PRINT AT 8,8;" ";AT 13,3; " "
1020 OVER 0: RETURN
1030 OVER 1: PRINT AT 10,11;" ";AT 11,18: PAUSE 20 : PRINT AT 10,11;" ";AT 11,18;" ";AT 9,14; " ";AT 12,15;" "
1040 PAUSE 20: PRINT AT 9,14;" " ;AT 12,15;" ";AT 8,17;" ";AT 13,12;" ": PAUSE 20: PRINT AT 8,17;" ";AT 13,12;" "
1050 OVER 0: RETURN
1060 OVER 1: PRINT AT 10,20;" "; AT 11,27;" ": PAUSE 20: PRINT AT 10,20;" ";AT 11,27;" ";AT 9,23;" ";AT 12,2.4;" "
1070 PAUSE 20: PRINT AT 9,23;" " ;AT 12,24;" ";AT 8,26;" ";AT 13,21;" ": PAUSE 20: PRINT AT 8,26;" ",;AT 13,21;" "
1080 OVER 0: RETURN
KÉPERNYŐ ABLAK FORGATÁSA
A program látványos forgatási eljárást hajt végre a négy alap BOX-scroll rutin felhasználásával. Ezek közül a rutinok közül kettő megtalálható a "Rutinról - Rutinra" c. könyvben (LSI ATSz. 1986), a másik kettő ott nem szerepel.
A vezérlő rész a program elején található (40000-40160), és a BOX-nyitócímek valamint a méretek beállítását végzi el, illetve megfelelő sorrendben meghívja a scroll rutinokat. A scroll rutinok következnek ezután, az alábbi sorrendben:
felfelé - 40161-40251
lefelé - 40252-40344
balra - 40345-40443
jobbra - 40444-40542
|
Ezek természetesen külön-külön, önállóan is használhatók.
ADDR-rel jelöljük valamelyik scroll rutin kezdőcímét és az ADDR+01 és az ADDR+02 címeken kell beállítani:
- a box jobb alsó sarkának képernyőcímét (lefelé történő scroll esetén)
- a box bal felső sarkának képernyőcímét (lefelé és jobbra történő scroll esetén) - a box jobb felső sarkának képernyőcímét (balra történő scroll esetén)
Az ADDR+04 címen kell beállítani:
- a box szélességét karakterekben (felfelé és lefelé történő scroll esetén)
- a box magasságát képpontokban (balra és jobbra történő scroll esetén)
Az ADDR+05 címen pedig be kell állítani:
- a box szélességét karakterekben (balta és jobbra történő scroll esetén)
- a box magasságánál eggyel kevesebb képpontnyi értéket (felfelé és lefelé történő scroll esetén)
Először is helyezzük el a memóriában a rutint (kezdők a kódok alapján DATA sorban, képzettebbek assembler segítségével).
Ezután gépeljük be és futtassuk a következő BASIC programot, amely jól szemlélteti a rutin felhasználási lehetőségét:
1 BORDER 1: PAPER 1: INK 6: CLS
10 FOR I=1 TO 10: FOR J=11 TO 20: PRINT AT I,J: CHR$ (40+I+J): NEXT J: NEXT I
20 RANDOMIZE USR 40000
40000 33 148 87 ld hl,22420
40003 34 61 157 ld (40253),hl
40006 62 10 ld a,10
40008 50 64 157 ld (40256),a
40011 62 159 ld a,159
4Q013 50 65 157 ld (40257),a
40Q16 33 116 72 ld hl,18548
40019 34 154 157 ld (4hd346),hl
40022 62 80 ld a,80
40024 50 157 157 ld (40349),a
40027 62 10 ld a,10
40029 50 158 157 ld (40350),a
40032 6 80 ld b,80
40034 197 push bc
40035 205 60 157 call 40252
40038 2Q5 153 157 call 40345
40041 193 pop bc
40042 16 246 djnz 40034
40044 33 107 72 ld hl,18539
40047 34 253 157 ld (40445),h1
40050 62 80 ld a,80
40052 50 0 158 ld (40448),a
40055 62 20 ld a,20
40057 50 1 158 ld (40449),a
40060 33 158 87 ld hl,22430
40063 34 61 157 ld (40253),hl
40066 62 10 ld a,10
40068 50 64 157 ld (40256),a
40071 62 79 ld a,79
40073 50 65 157 ld (40257),a
40076 6 80 ld b,80
40078 197 push bc
40079 205 252 157 call 40444
40082 205 60 157 call 40252
40085 193 pop bc
40086 16 246 djnz 40078
40088 33 53 64 ld hl,16437
40091 34 226 155 ld (49162),hl
40094 62 10 ld a,10
40096 50 229 156 ld (40165),a
40099 62 159 ld a,159
40101 50 230 156 ld (40166),a
40104 33 53 64 ld hl,15437
40107 34 253 157 ld (49445),hl
40110 62 80 ld a,80
40112 50 0 158 ld (40448),a
40115 62 10 ld a,10
40117 50 1 158 ld (40449),a
40120 6 80 ld b,80
40122 197 push bc
40123 205 225 156 call 40161
40126 205 252 157 call 40444
40129 193 pop bc
40130 16 246 djnz 40122
40132 33 62 64 ld hl 16446
40135 34 154 157 ld (46346),hl
40138 62 80 ld a,80
40140 50 157 157 ld (40349),a
40143 62 20 ld a,20
40145 50 158 157 ld (40350),a
40148 6 80 ld b,80
40150 197 push bc
40151 205 153 157 call 40345
49154 193 pop bc
40155 16 249 djnz 40150
40157 201 ret
40158 0 nop
40159 0 nop
40160 0 nop
40161 33 53 64 ld hl,16437
40164 1 10 160 ld bc,40970
40167 197 push bc
40168 229 push hl
40169 221 33 4 91 ld ix,23300
40173 126 ld a,(hl)
40174 221 119 0 ld (ix+0),a
40177 35 inc hl
40178 221 35 inc ix
40180 13 dec c
40181 32 246 jr nz,40173
40183 225 pop hl
40184 193 pop bc
40185 197 push bc
40186 229 push hl
40187 124 ld a,h
40188 230 7 and 7
40190 254 7 cp 7
40192 40 6 jr z,40200
40194 17 0 1 ld de,256
40197 25 add hl,de
40198 24 19 jr 40219
40200 125 ld a,l
40201 230 224 and 224
40203 254 224 cp 224
40205 32 6 jr nz,40213
40207 17 32 0 ld de,32
40210 25 add hl,de
40211 24 6 jr 40219
40213 17 224 6 ld de,1760
40216 167 and a
40217 237 82 sbc hl,de
40219 209 pop de
40220 229 push hl
40221 125 ld a,(h1)
40222 18 ld (de),a
40223 35 inc hl
40224 19 inc de
40225 13 dec c
40226 32 249 jr nz,40221
40228 225 pop hl
40229 193 pop bc
40230 5 dec b
40231 19 push bc
40232 229 push hl
40233 32 208 jr nz,40187
40235 225 pop hl
40236 193 pop bc
40237 221 33 4 91 ld ix,23300
40241 221 126 0 ld a,(ix+0)
40244 119 ld (hl),a
40245 35 inc hl
40246 221 35 inc ix
40248 13 dec c
40249 32 246 jr nz,40241
40251 201 ret
40252 33 158 87 ld hl,22430
40255 1 10 80 ld bc,20490
40258 197 push bc
40259 229 push hl
40260 221 33 4 91 ld iX,23300
40264 126 ld a,(hl)
40265 221 119 0 ld (ix+0),a
40258 43 dec hl
40269 221 35 inc ix
40271 13 dec c
40272 32 246 jr nz,40264
40274 225 pop hl
40275 193 pop bc
40276 197 push bc
40277 229 push hl
40278 124 ld a,h
40279 230 7 and 7
40281 246 0 or 0
40283 40 8 jr z,40293
40285 17 0 1 ld de,256
40288 167 and a
40289 237 82 sbc hl,de
40291 24 19 jr 40312
40293 125 ld a,l
40294 230 224 and 224
40296 246 0 or 0
40298 32 8 jr nz,40308
40300 17 32 0 ld de,32
40303 167 and a
40304 237 82 sbc hl,de
40306 24 4 jr 40312
40308 17 224 6 ld de,1760
40311 25 add hl,de
40312 209 pop de
40313 229 push hl
40314 126 ld a,(hl)
40315 18 ld (de),a
40316 43 dec hl
40317 27 dec de
40318 13 dec c
40319 32 249 jr nz,40314
40321 225 pop hl
40322 193 pop bc
40323 5 dec b
40324 197 push bc
40325 229 push hl
40326 32 206 jr nz,40278
40328 225 pop hl
40329 193 pop bc
40330 221 33 4 91 ld ix,23300
40334 221 126 0 ld a,(ix+0)
40337 119 ld (hl),a
40338 43 dec hl
40339 221 35 int ix
40341 13 dec c
40342 32 246 jr nz,40334
40344 201 ret
40345 33 62 64 ld hl,16446
40348 1 80 20 ld bc,5200
40351 34 0 91 ld (23296),hl
40354 237 67 2 91 ld (23298),bc
40358 229 push hl
40359 33 1 1 ld hl,257
40362 88 ld e,b
40363 22 0 ld d,0
40365 157 and a
40366 237 82 sbc hl,de
40368 125 ld a,l
40369 50 186 157 ld (40378),a
40372 225 pop hl
40373 229 push hl
40374 221 225 pop ix
40376 221 126 237 ld a,(ix+237)
40379 7 rlca
40380 0 nop
40381 0 nop
40382 203 22 rl (hl)
40384 43 dec hl
40385 5 dec b
40386 32 250 jr nz,40382
40388 42 0 91 ld hl,(23296)
40391 24 15 jr 40408
40393 34 0 91 ld (23296),hl
40396 237 75 2 91 ld bc,(23298)
40400 13 dec c
40401 200 ret z
40402 237 67291 ld (23298),bc
40406 24 221 jr 40373
40408 124 ld a,h
40409 230 7 and 7
40411 254 7 cp 7
40413 40 3 jr z,40418
40415 36 inc h
40416 24 231 jr 40393
40418 125 ld a,l
40419 230 224 and 224
40421 254 224 cp 224
40423 40 8 jr z,40433
40425 17 224 6 ld de,1760
40428 367 and a
40429 237 82 sbc hl,de
40431 24 216 jr 40353
40433 124 ld a,h
40434 254 87 cp 87
40435 40 211 jr z,40393
40438 17 32 0 ld de,32
40441 25 add hl,de
40442 24 205 jr 40393
40444 33 53 64 ld hl,16437
40447 1 80 10 ld bc,2640
40450 34 0 91 ld (23296),hl
40453 237 67 2 91 ld (23298),bc
40457 0 nop
40458 0 nop
40459 0 nop
40460 0 nop
40461 88 ld e,b
40462 0 nop
40463 0 nop
40464 0 nop
40465 0 nop
40466 29 dec e
40467 123 ld a,e
40468 50 29 158 ld (40477),a
40471 0 nop
40472 229 push hl
40473 221 225 pop ix
40475 221 126 9 ld a,(ix+9)
40478 15 rrca
40479 0 nop
40480 0 nop
40481 203 30 rr (hl)
40483 35 inc hl
40484 5 dec b
40485 32 250 jr nz,40481
40487 42 0 91 ld hl,(23296)
40490 24 15 jr 40507
40492 34 0 91 ld (23296),hl
40495 237 75 2 91 ld bc,(23298)
40499 13 dec c
40500 200 ret z
40501 237 67 2 91 ld (23298),bc
40505 24 221 jr 40472
40507 124 ld a,h
40508 230 7 and 7
40510 254 7 cp 7
40512 40 3 jr z,40517
40514 36 inc h
40515 24 231 jr 40492
40517 125 ld a,l
40518 230 224 and 224
40520 254 224 cp 224
40522 40 8 jr z,40532
40524 17 224 6 ld de,1760
40527 167 and a
40528 237 82 sbc hl,de
48530 24 216 jr 40492
40532 124 ld a,h
40533 254 87 cp 87
40535 40 211 jr z,40492
40537 17 32 0 ld de,32
40540 25 add hl,de
40541 24 205 jr 40492
A hónap -ja
SABOTEUR II (AVENGING ANGEL)
A BASIC rész betöltése után BREAK, majd állítsuk meg a magnetofont, és töröljük a bent lévő BASIC-et: NEW (ENTER). Most írjuk be a következő BASIC utasítássort: 10 CLEAR 25099: LOAD "" CODE 16384: LOAD "" CODE: POKE 61340,201: POKE.37122,0: RANDOMIZE USR 25100 RUN, és indítsuk a magnót. Betöltés után végtelen energiánk és időnk lesz! |
Ebben a kiadványunkban további ismereteket szerzünk a Z80 mikroprocesszor működéséről és regisztereiről, hiszen minderre szükségünk lesz a későbbiek során.
A Z80 mikroprocesszor egy bonyolult "agy", melynek részletes belső elektronikai felépítésére nem szeretnénk kitérni (ebben a témában számos mélyreható szakirodalom megjelent már). A gépi kódú programozás elsajátításához elsődlegesen a Z80 regisztereinek megismerésére van szükség.
A regiszterek tárgyalása előtt célszerű azok csoportjait megtekintenünk, ehhez egy kis szemléltető ábrát készítettünk:
A processzor saját műveleteihez is használ regisztereket (a processzor saját munkaterülete), de számunkra ezek a regiszterek elérhetetlenek. Itt hajtódnak végre különböző saját memóriamanipulációk, így az aritmetikai és logikai egység kisegítése, vagy tartalék tárolás (ld. később).
Szintén fontos regisztere a processzornak az ún. utasításregiszter, ez fontos állomása a gépi kódú program végrehajtásának is. A memória megfelelő terültéről az értelmezendő adat (feldolgozandó utasítás) legelőször mindig az utasításregiszterbe kerül.
Természetesen ezek a regiszterek minket "hidegen hagynak", hiszen ha nem tudunk kommunikálni velük, többet mélységében nem is érdemes róluk szólni.
Az. általános célú regiszterekkel fogunk találkozni a legtöbbet programjaink írása közben. Megkülönböztetünk aktív és vesszős (átmeneti) - általános célú - regisztereket. Az aktív és vesszős regiszterek tartalma megfelelő gépi kódú utasítás hatására felcserélhető, ez gyakran szükséges lehet pl. átmeneti tárolásra. Természetesen az adott gépi kódú utasításra ez a csere ismét elvégezhető.
Ha jól megnézzük a sematikus vázlatot, láthatjuk hogy a Z80 regiszterei is alapvetően 8 bites tárolókból épülnek fel, úgy mint a memóriacellák. Nos az általános célú regiszterek között a B-C, H-L és D-E regiszterek külön-külön (8 bitesként) vagy együtt mint regiszterpárok (16 bitesként) is kezelhetők. Az A és F regisztert együtt kezelhetjük (pl. veremműveletek - ld. később), de együtt sohasem értelmezzük őket 16 bites címként. Az A regiszter a Z80 egyik legfontosabb regisztere. Gyakran akkumulátornak is szokták nevezni, ez viszont a Z80 esetében tévedés. A régebbi típusú mikroprocesszorokban mindössze egy regiszter szolgált az eredmény összegyűjtésére (akkumulátor), innen a hasonlat. Az A regiszterben jelenik meg szinte az összes aritmetikai és logikai művelet eredménye és igen sok művelet van, amely csak az A regiszter felhasználásával hajtható végre.
Az F regiszter a FLAGS (jelzőbitek) szó rövidítéséből ered. Ennek a regiszternek mindegyik bitjét külön-külön kezeljük, így az F regiszter tartalma byte-ként nem értelmezhető lenne.
Az F regiszter felépítése a következő:
0. bit - átviteli jelzőbit (C)
1. bit - kivonás jelzőbit (N)
2. bit - paritás/túlcsordulás jelzőbit (P/V)
3. bit - üres - szabadon felhasználható
4. bit - félszó-átviteli bit (H)
5. bit - üres - szabadon felhasználható
6. bit - zérus jelzőbit (Z)
7. bit - előjelbit (S)
Ezek közül a 0. és a 6. bit a legfontosabb és a gépi kódú programokban is ezekkel találkozhatunk a leggyakrabban.
A speciális célú regiszterek már közvetlenül nem fordulnak elő olyan gyakran a gépi kódú programok szerkesztésekor, többségük magának a gépi kódú programnak a lefuttatásához nyújt segítséget.
Az I regiszter. a megszakítási-vektor regiszter, elsősorban a TV-képjelek előállításában vesz részt, de a színvonalasabb rutinok futtatásához is elengedhetetlen a használata (erről is lesz még a későbbiekben szó).
Az R regiszter a memóriafrissítő regiszter. Tartalma 0 és 255 között ciklikusan változik, értéke minden utasításlehívó ciklus alatt nő eggyel. Legfőbb jelentősége a dinamikus memóriák címgenerálásában való részvétel, a memóriák szükséges felfrissítése (de nem megvetendő a Fairlight c. játék betöltőjében való kavarása sem).
Az IX és IY regiszterek (nem regiszterpárok hanem 16 bites regiszterek) a memória közvetett címzését teszik lehetővé (ezt hívjuk indexelt címzésnek). Az IX-ben vagy IY-ban megadott báziscímhez képest, attól lejjebb vagy feljebb is történhet hivatkozás. A Spectrum bekapcsolásakor IY általában 23610 (HEX 5C3A) értéket vesz fel, ez jelzi a rendszerváltozók táblázatának báziscímét. Az IX regiszter főként a LOAD/SAVE műveletekben használatos, címmutatóként.
Az SP (Stack Pointer = verem-mutató) egy báziscím, amely a processzor verem területének tetejére mutat. A Z80 a "lefelé bővülő" verem-rendszer szerint működik, vagyis kiolvasásnál mindig az utoljára bevitt adat lesz a verem tetején (ld. az ábra mechanizmusát) és erre mutat az SP regiszter is:
A PC (Program Counter = Program-számláló) a gépi kódú program vezérlésében játszik nagy szerepet. A gépi kódú program futtatásakor értéke mindig a végrehajtás alatt álló utasítás memóriabeli címe. Az utasítások végrehajtása közben a PC mindig automatikusan továbblép.
Mi is lépjünk tovább...
Ahogy azt az előzőekben megismertük, egy memóriacímre egyidőben 0-255 közötti decimális (00-FF közötti hexadecimális) érték írható be.
A processzor ilyen, - a memóriában elhelyezett - számok megfelelő sorozatát képes csak értelmezni, így ha a memória tetszőleges területén több számot találunk egymás után, ez még koránt sem biztos, hogy értelmes gépi kód.
A memóriában található számok sorozata a gépi kód mellett sokféle lehet, ilyen pl. a BASIC program eltárolt kódja, változóterülete, egy tetszőleges képernyő-memória, vagy tetszőleges adattömb. Ezeket hiába futtatnánk gépi kódként, nem sok sikerrel járnánk, elénekelhetnénk az "Elszállt a hajó a szélben..." c. egykori KEX slágert.
Eltűnődhetünk rajta, mennyiben más a számítógép memóriájában a BASIC program tárolt kódja, mint a gépi kódé. Határozottan kijelenthetjük, teljesen más!
Mint már említettük, az operációs rendszer ill. az interpreter a BASIC utasítások, parancsok végrehajtásához szubrutinokat hív meg. Ezt akkor teszi meg amikor BASIC program futtatásához parancsot kap (RUN, GO TO vagy GO SUB). A begépelt BASIC program a PROG rendszerváltozó által meghatározott címtől (ez 23755, amennyiben nincs csatlakoztatva az Interface 1) folyamatosan eltárolódik a memóriában, de nem gépi kódként, hanem speciális szerkezettel. RUN után az operációs rendszer a BASIC interpreter mutatóját a 23755. címtől folyamatosan növeli, eközben a BASIC programot sorról-sorra, utasításról-utasításra végrehajtja, pontosabban az adott BASIC utasításnak a mindenkori gépi kódú megfelelőjét állítja elő. Ezt a munkaterületre teszi, ahonnan a Z80 processzor már "megérti".
A gépi kódú programok futtatását nem a RUN utasítással oldjuk meg, hanem a USR függvény alkalmazásával. A USR XXXX szerkezetben XXXX a futtatni kívánt gépi kódú program kezdőcímét jelöli.
A USR függvény csak ún. "előtaggal" együtt érvényesül, úgy mint más függvény. A három legismertebb forma:
RANDOMIZE USR XXXX
PRINT USR XXXX
LET Z = USR XXXX, ahol Z tetszőleges változó
Ez a három hivatkozás abban tér el egymástól, hogy a gépi kódú programból való visszatérés esetén a BC regiszterpár tartalmával más történik. Az első esetben a BC tartalma beíródik a SEED rendszerváltozóba, a második esetben kiíródik a képernyőre, míg a harmadik esetben értékét a Z változó veszi fel.
(folytatjuk)
Jelen kiadványunk nyomdába kerüléséig még nem kaptunk olyan - közérdekű információkat tartalmazó - Olvasói leveleket, melyek közlését fontosnak tartanánk.
Továbbra is várjuk klubok jelentkezését, hogy közölni tudjuk címüket, a klubtagság feltételeit, a klubfoglalkozások rendjét, idejét, mert ez a lehetőség országszerte jobban "összerázná" a Spectrumosokat.
Sok levelet kaptunk, amelyekben arra kérnek választ, hogy van-e lehetőség a "Spectrum-Világ"-nál programok felvételére (amennyiben kazettát küldenek). A "Spectrum-Világ" nem foglalkozik kazetták másolásával, de magán- és klub-címek közlésével elő tudja segíteni azt, hogy a cserepartnerek megtalálják egymást.
Most a továbbiakban ismét néhány angol software forgalmazó címét közöljük, több levélíró kívánságára.
Kéziratot nem őrzünk meg és nem küldünk vissza!
(Legfeljebb közöljük...)
|
Ha megfejti az itt látható két rejtvényt, a bekarikázott mezőkben kiadódó betűket helyesen összerakva két ismert Spectrum játék és egy software ház neve rakható ki. Kérjük, hogy a megfejtést az alul látható - kivágható - pályázati szelvénnyel együtt küldje el nekünk.
A beküldési határidő: 1987. október 27.
A helyes megfejtést. beküldők között egy darab walkman-t sorsolunk ki (még mindig programjaink hallgatásához).
A nyereményt postán küldjük el.
A. rejtvény
1 |
|
|
|
|
|
|
|
|
T |
2 |
|
|
|
|
|
|
|
|
I |
3 |
|
|
|
|
|
|
|
|
R |
4 |
|
|
|
|
|
|
|
|
N |
5 |
|
|
|
|
|
|
|
|
A |
6 |
|
|
|
|
|
|
|
|
N |
7 |
|
|
|
|
|
|
|
|
O |
8 |
|
|
|
|
|
|
|
|
G |
1. Printel
2. Lelkesedni
3. Margó-állító
4. Neveletlen
5. Modern korunk fenyegetése
6. Égitesteken
7. Ibrik
8. Csendes
B. rejtvény
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. Ázsiai luxushely
2. Légijármű típusa
3. Amerikai város lakója
4. Periféria csatlakozási hely
5. Nem Commodore
6. Szignálhat
7. Floppylemez márkanév
8. Felrobbant tűzhányó
Az előző kiadványunkban megjelent keresztrejtvény helyes megfejtését, valamint a nyertes nevét a következő részben közöljük.
39,-Ft