|
SAVE Gerjedésgátló és egy POKE Joystick vezérlés kiválasztása BASIC-ből |
dr. Úry László Commodore 64, C-128 64-es üzemmód BASIC és felhasználói kézikönyv
A nagysikerű C 64 I-II. BASIC és felhasználói kézikönyv újabb kiadása, már átdolgozott formában, mai igényeknek megfelelően kerül kiadásra. A jelenleg forgalomban lévő korszerűsített típus COMMODORE 64C alapgép és a hozzátartozó floppy 1541C jelzéssel került forgalomba, ezt a változatot is ismerteti a kiadvány. A kiadványt továbbiakban ajánljuk azoknak, akik a COMMODORE 128-as gépüket C 64-es üzemmódban használják.
Ára: I-II. kötet: 370,- Ft Megjelenik: 1987. december kb. 430 oldal
dr. Úry László COMMODORE 128 felhasználói programok II. kötet
A Commodore 128 I. kötet a számítógép működésének alapjait tartalmazta, s elsősorban a BASIC V7.0 programnyelvet ismertette. A II. kötet a gép programozásához szükséges további ismereteket nyújt, elsősorban a CP/M üzemmód működéséről. CP/M rendszer fejlesztése még jelenleg is tart. A könyv az 1987. évi állapotot ismerteti. A C-128-as üzemmódról szóló rész tartalmazza a 80 oszlopos video chip használatának részletes leírását, továbbá az új 1571/70-es lemezegységek használatát. A Commodore 128-cal adott CP/M rendszerlemez önmagában semmit sem ér, hiszen egyetlen program-fejlesztő eszközt sem tartalmaz. A szóbajöhető programnyelvek közül a szerző a Turbo Pascalt választottai elsősorban azért, mert használata egyszerű, s a programnyelv majdnem ugyanilyen formában működik a 16 bites-gépeken is. A szerző véleménye, hogy a Commodore 128-as gépet CP/M-ben Turbo Pascal-ban kell programozni. Ezért erről a programozási nyelvről, s főleg a C-128-as sajátosságairól részletesen szólunk a 14. és 15. fejezetekben.
Megjelenik: 1987. december 172 oldal A kiadvány irányára: 210,- Ft
Dr. Szilasi Anna: Mikroszámítógépes informatikai rendszerek és hálózatok az egészségügyben
Az egészségügyi informatika első eredményei még a fejlett országokban is csak egy évtizedes múlttal rendelkeznek annak ellenére, hogy a kísérletes orvostudomány területén a számítástechnikát közel három évtizede alkalmazzák hazánkban is. Az állampolgárok megfelelő egészségügyi ellátásának egyik alapvető feltétele, hogy az egészségügyi tevékenységet végző szervek, intézmények, az egyes orvosok korrekt, pontos és naprakész információkkal rendelkezzenek a hozzájuk forduló személy korábbi megbetegedéseiről, vizsgálati eredményeiről, orvosi kezeléseiről. A jelen kiadvány célja az egészségügyi informatika elterjedésének elősegítése: a kritikus pontok bemutatása, az egészségügyi mikrogépes központok megtervezésének, működésének elősegítése. Tartalmazza a jelenlegi helyzet felmérését, elemzését, a javasolt rendszer logikai modelljét, megvalósításának, bevezetésének és üzemeltetésének módját.
Megjelenik: 1987. december 380 oldal Ára: kb. 370,- Ft
|
PERIFÉRIATÖRTÉNELEM |
A Spectrum elsődleges perifériája minden időben a kazettás magnetofon volt és lesz is, köszönhetően elsősorban annak, hogy mint háttértároló olcsó, és mindenféle kazettás magnetofon (beleértve a WALKMAN-t is) kivétel nélkül felhasználható.
A ZX Spectrum megjelenése után 1983 közepén a Sinclair Research Ltd. forgalomba hozta az Interface I-II. készülékeket, a Microdrive háttértárolót, valamint a ZX Printert. A Microdrive csak az Interface I-gyel együtt használható. Egy cartridge (Microdrive-kazetta) kb. max. 80K információ tárolására alkalmas. Sajnos az ára még mindig igen borsos - Angliában is kb. 2 Font - a rajta tárolható információ mennyiségéhez képest. Használatánál gondot okozhat az is, hogy az Interface I. - amely saját ROM-ját átlapozza a gép belső ROM-jára - rendszerváltozói miatt a BASIC terület kezdőcíme feljebb tolódik, így nem minden játékprogram menthető ki Microdrive-ra, vagy ez a feladat csak bonyolultabb trükk segítségével oldható meg. Kárpótol viszont minket annak a lehetősége, hogy az Interface I-en keresztül 64 db. Spectrumot ill. gépenként további 8 db Microdrive-ot köthetünk össze hálózatba. Ilyen helyi hálózatot több angliai iskolában is kiépítettek, melyeket a mai napig sikerrel alkalmaznak az oktatásban. Az Interface I. rendelkezik RS 232-C kimenettel is, amely a nyomtatók illesztését könnyíti meg. Az INTERFACE I. és a MICRODRIVE ára jelenleg 30-40 Font körül mozog. Az Interface II. egy kombinált joystick illesztő. Lehetőséget biztosít 2 db. joystick csatlakoztatására (a botkormány funkciói az 1-5 és a 6-0 billentyűk megnyomásának megfelelőek), valamint egy max. 16K-s EPROM játék-cartridge felhasználására. A játékprogramokban a "SINCLAIR JOYSTICS" vagy az "INTERFACE II." opciót kell választanunk a menü-ből ha ilyen illesztővel rendelkezünk. A játék cartridge-ok nem terjedtek el, mivel max. 16K-s programot képesek tárolni, ez pedig meghatározza a játék színvonalát is. A ZX Printer fóliapapíros (az egyes pontok elektromos energia hatására alakulnak ki), soronként max. 32 karakter kinyomtatását oldja meg, kezelhető közvetlenül az LLIST, LPRINT és COPY parancsokkal. Hátránya, hogy csak 22 sort nyomtat ki, a két INPUT-sort nem. És bár gyorsasága még megfelelő, sajnos a nyomtatás minősége már színvonal alatti. Hozzátennénk, hogy a speciális papír beszerzése hazai viszonyok között bizony gondokat okozhat.
A kisgyermek is hamar kinövi a cipőt amit vásárolnak neki. Ezt érezték a felhasználók és a gyártók is. Mindenki belátta, hogy a gép kihasználási korlátai bővíthetők. Mielőtt Sinclair tovább léphetett volna, cégek tömkelege dobta be a piacra különböző perifériáit. Ez a tendencia a mai napig tart, így a Sinclair Research Ltd. nem látta értelmét a továbbiakban perifériák fejlesztésének.
Elsőként meg kell említenünk a joystickillesztők "háborúját". Bizonyára mindenki csodálkozik rajta, miért van az, hogy a Commodore 64-nél maximum azon bosszankodunk, hogy a joystick-et a másik port-ba dugjuk, míg a Spectrum esetében korántsem biztos, hogy az éppen rendelkezésre álló illesztőnk alkalmas az adott játék játszására. Az Interface II. mellett megjelentek a Kempston típusú illesztők (a KEMPSTON cég gyártotta először az ilyen elven működő - IN 31 port-ot használó - perifériát). A Kempstonnál az a gond, hogy nincs összefüggésben a billentyűzettel, s ha egy játékban a Kempston üzemmódot választjuk, miközben nincs ilyen perifériánk, ebből következően a játék az esetek nagy többségében "megkergül". Bár az INTERFACE II. a gép megjelenése után egy éven belül a piacon volt, a KEMPSTON illesztők mégis 'leverték' a konkurenciát, ugyanis a kezdetben megjelent játékprogramok 50 %-a a billentyűzet mellett - más Interface hiányában - csak a KEMPSTON joystick-illesztők használatát tették lehetővé. Elterjedtek még a kurzor típusú illesztők is (CURSOR, AGF, PROTEK, stb.), amelyek a kurzor billentyűk + 0 (tűz) funkcióit váltják ki. A joystick illesztők fejlődése szükségessé tette több probléma áthidalását. Pl. az olyan játék is menjen joystick-kel, amelyik ezidáig még nem ment. Ezért kifejlesztették a programozható joystick illesztőket, amelyek a botkormány 17 lehetséges variációjához 17 billentyűt képesek hozzárendelni. Ilyen illesztőt több magyar gyártó is készít. Folyamatosan elterjedtek a kombinált illesztők, vagyis amelyben együtt van a Kempston és az Interface II. lehetősége is. Ilyen illesztőt gyártott pl. a Dk'tronics cég is. A joystick illesztők "királyának" hirdették Angliában a Cheetah cég által kifejlesztett infra távvezérelt illesztőt. A joystick infrasugarakkal továbbítja a megfelelő funkciót, majd az az illesztőben elektromos jellé alakul. Választhatunk, hogy Interface II., Kenpston, vagy Cursor üzemmódban kívánjuk-e felhasználni a perifériát. A régebbi játékok (82/83) esetében gyakran csak 1-1 bizonyos illesztőt használhattunk. Ez annak volt köszönhető, hogy kezdetben a joystick illesztőt gyártó cégek anyagi érdekeltségi alapot alakítottak ki a software-t gyártókkal ill. forgalmazókkal. 1984-tol folyamatosan elterjedtek az olyan játékok, amelyek a legtöbb ismert illesztő felhasználását lehetővé tették, s ma már szinte csak ilyenekkel találkozunk.
A Spectrum billentyűzete nem a legszerencsésebb, egyrészt mert a fólia hamar felmondja a szolgálatot, másrészt mert több gyakran alkalmazott billentyű-funkcióhoz sokat kell SHIFT-elni. Ezért készítenek a Spectrumhoz külső billentyűzetet. Külső billentyűzet illeszthető külön Interface-en keresztül is a Spectrumhoz, de ez nem elegáns. Célszerűbb a panelt áthelyezni az új billentyűzet dobozába. Erre az első megoldást a Dk'tronics cég fejlesztette ki. A készülék 2 db. CAPS SHIFT-et, 1 hosszú SPACE-t, valamint egy "nemzetközi tízes" billentyűzetet is tartalmaz. Több cég is gyártott billentyűzetet, a Spectrumra, és a versenyből a Saga Electronics Ltd. került ki győztesen. Tetszetős fehér műanyagdobozba épített billentyűzetei mechanikailag kiválóak. A SAGA 1 EMPERROR és a SAGA 2 LO PROFILE után a mai napig a SAGA 3 ELITE a legsikeresebb. 87 billentyűt tartalmaz, ebből 27 Auto-Shift funkcióval ellátott, s természetesen a "nemzetközi tízes" itt sem maradt el. A billentyűzet feltűnően hasonlít az IBM gépekére, de itt az érintkezés mechanikus. Utódjának, a SAGA 2001-nek a billentyűzete már mágnesmetszéses elven működik, mint az IBM gépeké.
A Microdrive-ról már beszéltünk. A háttértárolás célszerűbb eszköze, mint a kazettás magnetofon, de jelentőségét főként adatbáziskezelés, gépi kódú programok írása, rendezése, stb. esetén tudjuk csak igazán kihasználni. A Microdrive cartridge-re kb. 80K információ menthető ki, s az elérési idő sem a legjobb. Több gyártó hajlékony mágneslemezegységek csatlakoztatását oldotta meg a Spectrumhoz. Sokáig a Beta Disc Drive/Interface volt a legismertebb, de hamarosan "lefőzte" az OPUS cég Discovery 1. típusú készüléke. 3 1/2"os lemezekkel használhatjuk, lemezenként 250K információ tárolható, s a 48K program töltési ideje csak mintegy 7-9 mp., a Microdrive 27 mp.-éhez képest. Az OPUS Discovery ezen túlmenően tartalmaz egy további - sajnos az NMI-t nem kezelő - "él-csatlakozót", egy párhuzamos Printer illesztő port-ot, egy Kempston kompatibilis joystick port-ot, valamint egy - nem standard (negatív polarizáltságú) - video kimenetet.
Az adatbáziskezelés, szövegszerkesztők felhasználása és egyéb alkalmazások szükségessé tették nagyobb nyomtatók illesztését a Spectrumhoz. Ma már igen sokféle nyomtató-illesztő van forgalomban a géphez. A legismertebbek a Centronics szabványú illesztők (ilyet pl. a Kenpston is gyárt, de ismert a TASMAN cég is ebben a kategóriában). Másrészt a nyomtató-gyártók is törekednek készülékeik Interface nélküli felhasználását is lehetővé tenni. Ilyen pl. a SEIKOSHA GP 50, vagy a BROTHER HR-5.
Időközben megjelent a Spectrum perifériák között az egér is. Ezt az Advanced Memory Systems fejlesztette ki és AMX-MOUSE néven forgalmazza. Saját rendszer-software-rel kerül forgalomba, és a Spectrummal együtt úgy helyezhető a Macintosh mellé, mint gyermek az anyja mellé.
Természetesen mindezen túlmenően megtalálhatók a forgalomban az egyéb perifériák is. Fényceruzát először a Dk'tronics cég forgalmazott. Ez sajnos nem váltotta be a hozzá fűzött reményeket. Jelenleg a TROJAN Ltd. forgalmaz kiváló fényceruzákat a Spectrumhoz (egyébként hazai gyártó is megjelent a piacon fényceruzával).
A ZX Spectrum hang-programozási lehetőségei - mint tudjuk - nem igazán korszerűek. A géphez először a Dk'tronics cég forgalmazott 1983-ban beszédszintetizátort és 3 csatornás hanggenerátort. Később jobb képességekkel rendelkező beszédszintetizátort jelentetett meg a CURRAH cég CURRAH MICRO SPEECH néven. Ma a zenei kiterjesztésben a CHEETAH cég vezeti a piacot. Teljes zenei kelléktárában megtalálható a 3 oktávos billentyűzet, a sequencer, a 8 bites D/A dobgép, a midi-Interface, s ezek természetesen mind illeszthetők egy rendszerben a Spectrummal.
Szándékosan hagytuk a végére az "ász"-t. A Romantic Robot cég igencsak kitett magáért, amikor megjelentette MULTIFACE ONE készülékét. Ezzel megoldódott mindenféle másolási probléma. Ugyanis a memóriába betöltött program futása egy gombnyomással megszakítható, és a bejelentkező menüből választhatunk: kimenthetjük a programot tetszőleges perifériára, meghívhatunk egy monitort, vagy nyomtatóra küldhetjük a megszakítás pillanatában éppen képernyőn levő memóriatartalmat.
Az eddig említett perifériák némelyike időnként megtalálható a bizományi boltok polcain. A hazai hardware fejlesztők más irányt tűztek ki maguk elé. Figyelembe kell venni azt, hogy itthon mintegy 100 ezer Commodore 64 számítógép van forgalomban és nagy többségükhöz hajlékony lemezegység ill. soros nyomtató is tartozik. A Spectrum tulajdonosok számára jobban elérhető egy Commodore floppy vagy printer, mint pl. egy Opus floppy, vagy egy Centronics nyomtató, ezért a fejlesztés a Commodore perifériák illeszthetőségét célzott megoldani. Jelenleg találhatunk a forgalomban soros printer illesztőt, floppy illesztőt vagy kombinált interface egységet is.
Játékok |
MILK RACE
Mastertronic (szimuláció)
Angliában minden májusban három városban (Lincoln, London, Peterborough) rendezik meg a nemzeti kerékpárversenyt, a MILK RACE-t. Ezen a rendezvényen vehetünk részt e játék során. A pálya jobbról balra görgetődik 13 színtéren keresztül. A képernyőn nyomon követhetjük sebességünket, energiánkat, és a sebességi fokozatot is. Az energiánk folyamatosan fogy, de pótolhatjuk az út szélén itt-ott elhelyezett tejárusoknál, természetesen állva isszuk a tejet, vagyis ezidő alatt nem haladunk. A grafika kiváló, sportszeretők bizonyára megkedvelik ezt a játékot.
GAME OVER
Imagine/Dinamic (akció)
A Robin of the Wood-hoz, Nonamed-hez, Feud-hoz hasonló kivitelezésű akciójáték, színvonalas programozói munka. Egy űrhajós személyében játsszuk végig a játékot. Hősünk bentrekedt egy ellenséges úrállomáson, és harcba keveredik az ellenséges erőkkel. Először is össze kell gyűjteni megfelelő számú fegyvert, ez alapfeltétel ahhoz, hogy továbbjussunk a játék második részébe. Itt egy bolygó felszínén folytatódik a történet, ahol le kell küzdenünk egy mágneses mezőt. Ekkor nyílik meg az út az ellenséges főhadiszállás felé, amit meg kell semmisíteni. Izgalmas történet, jó szórakozás.
BASKET MASTER
Imagine/Dinamic (szimuláció)
Ez a program igen nagy hasonlóságot mutat egynéhány C-64-re készült kosárlabda szimulációhoz. A program különleges része a 'replay', azaz, ha valamelyik játékos kosarat dob, a dobás előtti pillanattól néhány másodperces lassított ismétlést láthatunk az akcióról. A grafika kiváló, önmagáért beszél. A mérkőzést 'one on one' (egy-egy ellen), két játékos között, vagy a gép ellen is játszhatjuk.
EXOLON
Hewson (akció)
A Hewson cég a 'Zynaps' után igen hamar megjelent a piacon ezzel a játékkal. A történet ismerős, egy magányos űrhajóssal kell kilátástalan helyzetből kijutni egy ellenséges bázisról. A játék kivitelezése magas színvonalú, a háttér gondosan kidolgozott, a színek összeállítása egyszerűen csodálatos. 5 nehézségi fokozaton keresztül összesen 125 képernyőt kell bejárnunk, így az akció nem válik unalmassá. A pályákon váratlan akadályok jelennek meg, a lézersugártól az aknákon keresztül a rakétasilókig. Mindezek mellett az ellenség is jelentős létszámmal képviselteti magát, hogy utunkat még nehezebbé tegye. A játék elsőosztályú, az akciójátékok kedvelői újabb értékkel lehetnek gazdagabbak általa.
BATMAN ÖRÖKÉLET BEVITELE JANSOFT VERZIÓRA
10 FOR i=65000 TO 65038 20 READ a : POKE i, a : NEXT i 30 DATA 221, 33, 64, 156, 17, 17, 0, 62, 255, 55, 205, 86, 5, 221, 33, 0, 91, 17, 47, 159, 62, 255, 55, 205, 86, 5, 62, 0, 50, 192, 143, 33, 128, 101, 203, 191, 237, 79, 233 40 RANDOMIZE USR 65000
Töltsük be a betöltőt és a képernyőt, majd állítsuk le a magnetofont. Reset-eljük a gépet és bekapcsolás után írjuk be a fenti BASIC programot. Futtassuk (RUN+ENTER) és indítsuk tovább a magnót! (Életeink száma mindig nyolc marad.) |
ASTERIX |
A hatvanas évek elején két fiatal francia tanárnak, René Goscinny-nek és Francois Uderzo-nak az az ötlete támadt, hogy a francia történelem egy régebbi korszakát, a római-gall háborúk idejét némileg rendhagyó módon, képregényben elbeszélt mesében fogják bemutatni. A rajzműhelyüket egy használaton kívüli garázsban rendezték be, ahol két hónapi munka után megszületett az első Asterix-képregény: Asterix, a gall harcos. A történet a történelmi környezetbe helyezve, fanyar francia humorral átszőve mutatta be a nemzeti sajátosságokat, a XX. századi francia ember erényeit és megmosolyogtató emberi hibáit. Ebből következően a képregény sikere minden várakozást felülmúlt: a társadalom minden rétege a legfiatalabbaktól a legidősebbekig is szinte "habzsolta". Azóta már több, mint 300 Asterix-füzet jelent meg, a történetből először rajzfilmsorozat, majd több egész estét betöltő rajzfilm készült (hazánkban is bemutattak kettőt a mozik). A figura ma már a franciák nemzeti kabalájának számít, a kereskedők szinte már mindent reklámoznak vele az alsóneműktől a Renault-gyár termékeiig. A képregények 26 nyelven, 47 országban jelennek meg. Az Újvidéki Kiadó jóvoltából hazánkban is kapható (eléggé borsos, 60 Ft-os áron), de az Alfa-újság is sorozatban közli a történet egyes epizódjait.
E rövid kis bevezetőből kiderül, hogy az Asterix-képregények szereplői már hazánkban is elég ismertek lehetnek. Akikhez eddig még nem jutottak el, azoknak az alábbiakban röviden bemutatnánk az alaptörténet előzményeit és szereplőit:
Időszámításunk előtt 50-ben Julius Caesar a római légiók élén megtámadta Galliát. A szervezetlenül és elszigetelten védekező gall törzsek ellenállását a technikai fölény és a túlerő rövid időn belül felmorzsolta, az egyetlen nagyobb létszámú haderőt felvonultató Vercingetorix nevű vezér pedig Alesia-nál döntő vereséget szenvedett. Egész Gallia a rómaiak fennhatósága alá került. Illetve csak majdnem az egész: egy kis falu (Gallfalva) váltig ellenáll a hódítóknak. A falu főnökének, Hasarengazfixnek legvitézebb harcosa Asterix, az alacsony növésű, de annál furfangosabb észjárású harcos. Asterix a terveihez szükséges fizikai erőt egy különös létyóból, a Magicoturmix druida (varázsló) által kevert varázsitalból nyeri, ami sajnos nem állandó hatású. Asterix elválaszthatatlan barátja a darázsderekú Obelix, aki gyermekkorában beleesett a varázsitalos kondérba, nála az emberfeletti erő állandósult állapot (a játékban sajnos csak fiktív szereplő lesz).
A Melbourne House 1986 elején jelentkezett a játékpiacon az ASTERIX című játékprogramjával, először Commodore 64-en. E sorok írójának véletlenül volt "szerencséje" látni ezt a programot (utána kiment a pusztába, hosszú órákon át homokot pergetett a fejére és azt hajtogatta: "Miért tettétek?"), de nem igazán nyerte meg a tetszését. Annál inkább a lényegesen módosított Spectrum-változat! A program nagyon szép képernyőket tartalmaz, bár nem túl praktikus, hogy az egyes helyszínek képét a program képrészenként építi fel. Emiatt van az, hogy ha átmegyünk egy másik helyszínre, 2-3 másodpercet várakoznunk kell amíg a gép édesdeden rajzolgat. Mindazonáltal a látvány és a humoros grafikai megoldások mindenkit kárpótolhatnak a program ezen hibájáért.
Magicoturmix druida varázsital helyett pálinkát főzött, de úgy látszik, eme nemes nedű készítéséhez nem ért annyira, mert a kotyvaléktól a varázsüst szétrobbant és darabjai szanaszét repkedtek. Mivel "Vas- és Edény"-bolt nem található a közelben, Asterix indul el, hogy összeszedje a varázsüst darabjait. A program betöltődés után megkérdezi, hogy akarunk-e Kempston joystick-et használni. 'N' választása esetén Asterixet Interface II-vel vagy az alábbi billentyűkkel irányíthatjuk:
'Q' : fel
'Z' : le
'I' : balra
'P' : jobbra
'M' : tűz
Ha a játék közben megnyomjuk az 'R' billentyűt, a program kiírja "GAME OVER" és új játékot kezdhetünk.
A vezérlés meghatározása után feltűnik a demo-kép, amelyen megszemlélhetjük az összerakandó varázsüstöt és a játék szereplőit (Asterix, Obelix, római katona, vaddisznók). A játék bármely billentyű megnyomására elindul.
A képernyő bal felső részén látható élelmiszerkészletünk, sült vaddisznó képében. Kezdetben 5 darab áll rendelkezésünkre, de az idő múlásával darabonként fogynak. Ha minden vadmalacunk elfogy, - függetlenül az életek számától - a játék véget ér, mert spontán módon éhenhaltunk. Készletet az erdőben szaladgáló vaddisznók elejtésével szerezhetünk, a készlet maximum 9 db-ból állhat. A képernyő jobb felső részén, a pontszámtól balra lévő Asterix-fej mellett látható életeink száma (kezdetben 5 db). Életet akkor veszthetünk, ha a rómaiakkal vagy a vaddisznókkal való küzdelemben az energiánk elfogy. Ezt az energiát egyszer megnövelhetjük, ha az életektől balra látható varázsitalos butykost kiürítjük (hosszú tűzgombnyomás).
A játék a gall faluból (GAULISH VILLAGE) indul. A játék egyes helyszínein - pl. a falu főterén - találkozhatunk néhány csomaggal, amelyek némi elemózsiát illetve rozsét tartalmaznak. Ezek felvételéért 50 illetve 100 pontot szerezhetünk. Mikor abba a pozícióba érünk, amelyben a csomag van, a program a képernyő közepén egy ablakot nyit, amelyben felvehetjük a csomagot. Ez a későbbiekben is így fog történni: ha nemcsak vándorlás, hanem valamilyen cselekmény (harc, tárgy felvétele) zajlik, az a képernyő közepén egy ablakban látható.
Miután összeszedtük a faluban a csomagokat, induljunk el keleti irányba. Az erdőbe (FOREST) jutunk, ahol feltölthetjük élelmiszerkészleteinket, ugyanis néhány vadmalac kóricál erre. A röfik elejtéséhez meg kell küzdenünk velük, ami a következőképpen történik:
Ha az ablak oldalán megállunk, a malacka hamarosan felénk vágtázik. Vad rohamát egy tockossal fogjuk megtörni, mert ha elér bennünket, az ablak oldalán fehérrel jelzett energiánk csökken. Asterix háromféle támadási formát ismer:
'tűz+le' : hasbarúgás
'tűz+fel' : orrbaverés
'tűz+jobbra': leütés
A vadmalacok ellen legjobban a leütés használható. A támadó malacka minden tockos után visszaugrál egy keveset (elmereng az élet dolgain), de nem túl tanulékony állat, mert mindaddig újra támad, amíg véglegesen le nem csapjuk (elfogy az energiája). Ekkor azonban égnek vetett lábakkal elnyugszik, a készlet számlálója pedig villogva jelzi, hogy eggyel több malacunk van. Vigyázzunk, csak a négy lábon közlekedő malackák fogyaszthatóak, a kétlábúakkal felesleges harcba keverednünk, mert csak az energiánkat pocsékoljuk.
Miután feltöltöttük élelmiszerkészleteinket, haladjunk tovább kelet felé, egészen Totorum római táborig (CAMP TOTORUM). A kapuban egy római katona áll őrt, akit finoman arrébb kell hessegetnünk. A küzdelem hasonlóképpen zajlik a vadmalacoknál megismertekhez bár a rómaiak folyamatosan támadnak, könnyen elveszíthetjük életeinket. Ha a rómait sikerül levernünk, érdemei elismerése mellett eltávozik a mennyekbe, mi pedig folytathatjuk utunkat, továbbra is keleti irányba. Továbbra is Totorum tábor területén vagyunk. A sátor mellett forduljunk délre. A helyszínen találhatunk egy kulcsot, amit fel kell vennünk. Ezután menjünk vissza egészen az erdő azon részéig, ahol az első vadmalacokkal találkoztunk. Innen északi irányba fordulunk és elmegyünk Compendinum táborig. Miután - néhány római kivert fogaival övezve - bejutottunk a táborba, menjünk keletre, ahol megtaláljuk az üst első darabját.
Miután felvettük, fogassuk el magunkat az őrrel. Ez a következőképpen történik: ha találkoztunk vele és a program megnyitotta a képernyő-ablakot, ne csináljunk semmit. Az őr a közelünkbe jön, mutogat egy darabig, majd az ablak tetején megjelenik a "SURRENOER" (megadta magát) felirat.
Asterixet Rómába hurcolják és az éjszaka már egy cellában éri. A Totorum-ban felvett kulccsal kinyithatjuk a cella ajtaját, és kimehetünk a folyosóra. Miután agyoncsaptuk az őrt, menjünk be nyugati irányban lévő helyszín első cellájába. Itt megtalálhatjuk az üst második darabját. Ezután egy ideig nincs semmi teendőnk, meg kell várnunk a hajnalt. Amikor a nap első sugarai beszűrődnek a cella ablakán, kimehetünk az ajtón (ha a hajnal a másik cellában virrad ránk, nem tudjuk megszerezni az üst második -darabját, mert az arénából nem tudunk visszajönni a börtönbe). Mielőtt a cellaajtón át kijutunk az arénába, - ha még eddig nem fogyasztottuk el - érdemes meginni a varázsitalt. Az arénában ugyanis egy kisebb római légió akarja szerénységünkön bemutatni az élveboncolás nevű történést. Jobbról folyamatosan egy-egy római száguld be, akit célszerű egy ütéssel agyoncsapni, mert ő teszi ezt velünk. Külön kedvesség a programozótól, hogy mozogni sem tudunk, egy helyben kell várnunk a támadókat. van néhány kevésbé militarista beállítottságú római is, ezek a mellékajtón távoznak. A tortúra addig tart, míg 10 rómait a mennybe nem küldünk. Ezután "...az aréna csendes, újra csendes, elzúgtak római-i..." és mi felvehetjük a varázsüst harmadik darabját.
Távozzunk a küzdőtérről, a kapun keresztül kijuthatunk Róma főutcájára. Itt először déli, majd nyugati irányba kell mennünk. A két ház között levő fák között megtalálhatjuk az üst negyedik darabját.
A térkép alapján a Diadalíven keresztül menjünk ki Rómából - itt ismét találkozhatunk Obelix barátunkkal -, majd Aquarium táboron keresztül menjünk el az erdőbe, ahol a térképen jelzett helyen megtalálhatjuk az üst ötödik - egyben utolsó - darabját is. Útközben még el kell vezetnünk néhány római katonát az enyészet útjára, de ez már nem lesz olyan nehéz.
Miután felvettük az üst utolsó darabját, a gép kifejezi kézmeleg gratulációját ("CONGRATULATIONS"), kiírja az általunk elért pontszámot, majd visszaadja a demo-képet és lehet újra próbálkozni.
CAULDRON 2 - PALACE
A végtelen élethez az 52974. cím tartalmát kell zérusra módosítanunk. Ez számos módon lehetséges, mi egyféle verziót közlünk, de ez csak azoknak fog működni, akiknek a játék a kazettán a következo file-térkép szerint épül fel: 164/6912/20000/20536/6916/1707. MERGE"" segítségével töltsük be a BASIC betöltőt, majd magnó stop! Írjuk be: 20 REM, és nyomjunk ENTER-t. Ezután gépeljük be: POKE 23757,96 , majd ENTER után gépeljük be a következo BASIC sorokat: 20 RESTORE 30: FOR i=23841 TO 23853: READ a: POKE i,a: NEXT i illetve 30 DATA 62,0,50,238,206,62,255,55,229,195,86,5,0 Ha ez megtörtént, futtassuk: RUN 20, ezután pedig írjuk be: CLEAR 24899, és ezt követoen RANDOMIZE USR 23760 és indítsuk a magnót. Betöltés után végtelen életünk lesz. |
THE DAMBUSTERS |
A játékban az angol Royal Air Force (Királyi Légierő) elit bombázószázadának pilótájaként tevékenykedünk. A 617. Lancester-bombázóegység 1943. május 16-án éjszaka a háborús Németország ellen lezajlott támadását játszhatjuk végig. Az akcióban a bombázó 8 főnyi személyzetét egyszemélyben testesítjük meg, tehát a játék nagy figyelmet és gyors cselekvőképességet kíván.
A játék történelmi háttere: Az Angliát sújtó sorozatos bombatámadások 1943-ban arra késztették Winston Churchill-t, hogy meghirdesse a "megtorló bombázás" elnevezésű programját, amely a német hátország katonai és polgári célpontjai ellen irányult. A 617. bombázószázad is ennek alapján tevékenykedett: a Ruhr-vidék erőművei mellett fekvő gátakat támadták egy érdekes technikai újítás, a Barnes Wallis mérnök által tervezett "ugráló" bombák segítségével. A bombázók által elért sikerek eredményeképpen a sajtó és a közvélemény a század repülőgépeit "Dambusters" (gátrombolók) néven emlegette. A napi feladat célja három egymás mellett fekvő német gát: a Moehne, az Eder és a Sorpe. Az akciónk végén ezek közül kell az egyiket lerombolnunk. A játék U.S. GOLD copyright felirattal és egy angol indulóval jelentkezik be. Egy billentyű megnyomására megjelenik a cégre jellemző menütábla. Itt a következő funkciók között szelektálhatunk:
'S' : A támadás elindítása az 'M' gomb által beállított
helyről
'J' : Kempston, Sinclair illetve Protek joystick választása
'K' : Átkapcsolás joystick üzemmódból a billentyű-vezérlésre.
A beállított irányító billentyűk a következőek:
Fel: '1'
Le: 'A'
Balra: '8'
Jobbra: '0'
Tűz: - az alsó sor bármelyik billentyűje -
A különböző fülkék közötti átkapcsolás a Q,W...I
billentyűkkel történik, ezekről később még részletesen
szólunk.
'I' : Angol nyelvű instrukciók
'L' : A játék nehézségi fokozatának beállítása ( EASY: könnyű;
FAIR: reális; MARD: nehéz)
'M' : Itt állíthatjuk be, hogy-hol akarunk bekapcsolódni a
támadásba:
PRACTICE: Gyakorló üzemmód, a gát bombázását
gyakorolhatjuk
IN FLIGHT: Repülés közben, a La Manche csatorna felett
kapcsolódunk be
TAKE OFF: Az akciót a támaszpontról, a scampton-i
repülőtértől irányít hatjuk
'R' : A műszerek kijelzési módjának beállítása (célszerű a
digitálist választani, mert a kijelzés ekkor mindig
világosan, számokkal történik)
A program futását bármikor megállíthatjuk a 'H' gombbal ( a program bármely billentyű megnyomásával továbbfuttatható ), 'BREAK' billentyűvel pedig abortálhatunk.
Na a megfelelő paramétereket beállítottuk, indítsuk el a játékot az 'S' billentyűvel. A program bekéri a nevünket és attól függően, hogy a támadás kezdőpontját hová állítottuk be, elindul a támadás, a parancsnoki fülkében találjuk magunkat.
Mint már említettük, a 'Q'-tól az 'I'-ig terjedő billentyűkkel váltogathatunk a különböző kabinok között. Nézzük milyen teendőink vannak ezekben a támadás során! A műszerek leírását az analóg kijelzési módban ismertetjük, mivel a digitális teljesen értelemszerű, számokkal történik:
'Q' billentyű - parancsnoki fülke
Innen irányíthatjuk a bombázót. A fülkében négy műszer található, ezek a következőek (balról jobbra):
Magasságmérő: Az órának megfelelően mutatja a bombázó magasságát lábban értve, tehát ha például 1500 láb magasságban vagyunk az óra 1/2 2-t, ha 2750 láb magasságban 3/4 3-at mutat. Ha az óránk visszafelé haladva eléri a 0 órát, a játéknak vége, mivel ez 0 láb magasságot, vagyis a gép lezuhanását jelenti. Ez hibás navigációs manővereknél, vagy a motorok leállása esetén fordulhat elő.
Iránytű: Értelemszerűen működik. A jelzőskála közepén lévő két kis pont között látható az az irány, amerre a bombázónk halad. Az irányokat az angol égtájak rövidítése jelzi (S: dél; W: nyugat; N: észak és E: kelet). A jelzőskálán esetenként látható ' ' jel a navigációs kereszt irányát jelzi. Erről a navigátor-fülke leírásában be szélünk részletesebben.
Giroszkóp: A bombázó vízszinteshez viszonyított helyzetét jelzi értelemszerűen. A képernyőn látható pontsor is ezt mutatja. Terepakadályok (hegyek) a játékban nincsenek.
Sebességmérő: Szintén az órának megfelelően, csak a kismutatóval mutatja a bombázó sebességét, óránként 100 mérföld sebességre értelmezve. Tehát ha a mutató a kettesen áll, akkor 200 mérföld sebességgel haladunk.
Az irányító billentyűk a manőverezést szolgálják, a tűz-gombok nem funkcionálnak.
'W' billentyű - orrlövész fülke
Ha a parancsnoki fülkéből ellenséget pillantottunk meg kapcsoljunk át ide. A horizont vonalában látható a célkereszt, amelyet az irányító billentyűkkel mozgathatunk, a tűz gombokkal működtethetjük a gépágyút. A következő ellenségekkel találkozhatunk:
Reflektor: Egész Európában megtalálható. A reflektor mellett légvédelem működik (ezt a felette szétrobbanó lövedékek is jelzik), tehát ha nem semmisítjük meg idejében, ágyútalálatokra számíthatunk.
A célkeresztet a keresőfény aljára irányítva néhány sorozattal kilőhetjük és biztonságban repülhetünk tovább. Egy reflektor elpusztításáért 200 pontot kapunk.
Légvédelmi ballon: Hollandia területétől kezdve találkozhatunk vele. Oldalirányban vagy felette elrepülve kell kikerülni, illetve lelőni. Ha belemegyünk, vagy az alatta lévő rögzítőhuzalba (ez nem látható) ütközünk, a játék véget ér, mert a bombázó lezuhan. A ballon könnyen lelőhető, egy megsemmisítéséért 300 pont jár.
Elfogó vadászgép: Németország felett találkozhatunk vele. A játék és a sajtó is hibásan Bf-110 néven jelzi a gép típusát, pedig a programban szereplő vadászgép a híres Messerschmitt Bf-109-es. Nagyon gyorsan támad, azonnal le kell lőni, mert kilövi a motorjainkat és ez a gép kigyulladásához vezet. Ha ez megtörtént, az 1. számú műszaki fülkében még tehetünk valamit, de erről majd ott szólunk. Ha 10 támadó gépből egyet sem tudunk lelőni, az egyik lövészünk inaktívvá válik (természetesen csak akkor ha a támadók még nem semmisítették meg a bombázónkat). Egy Messerschmitt lelövéséért 500 pontot szerezhetünk.
Ugyanazok az instrukciók vonatkoznak erre a fülkére is, mint a farlövészre, de ott már csak a távolodó ellenséggel van dolgunk, tehát csak pontszerzési céllal érdemes onnan lőnünk. A két fülkében más gépágyú-merevítők láthatóak, ennek alapján könnyen megkülönböztethető egymástól az orr- illetve a faroklövész-fülke.
'R' billentyű - bombacélzó fülke
Ha a cél előtt beállítottuk az optimális magassági és sebességi paramétereket, ebben a fülkében kell a pontos bombavetési adatokat beállítanunk. Ha 100 láb alá ereszkedtünk, a bombacélzó automatikusan bekapcsolódik, megjelenik két fehér fénykör. A 'fel-le' billentyűkkel úgy kell a két kört irányítanunk, hogy teljesen fedjék egymást. Ha a bombázóval ezután valamilyen manővert végzünk, a két kör eltávolodik egymástól és a bombázás pontatlan lesz.
Ha a gát közelében járunk vagy az a támadás kezdőpontját gyakorlásra választottuk, az ábrán látható állapot áll fenn. A gépünk pillanatnyi helyzetét egy kis bombázósziluett jelképezi. A képernyő közepén látható a navigációs kereszt. Ez kitűnő navigálási támpontként szolgál, ugyanis a térkép felső részén látható iránytű a navigációs kereszt helyének a bombázónk pillanatnyi helyzetéhez viszonyított irányát jelöli. Tehát ha a parancsnoki fülkében lévő iránytűn is azt az irányt állítjuk be, amelyet a térképen lévő iránytű mutat, a gépünk a navigációs kereszt felé halad. Ezzel a módszerrel könnyen a célhoz vezérelhetjük a gépünket, a navigációs keresztet valamelyik gáthoz állítva. A kereszthez való pontos irányzást segíti a bombafülke iránytűjén lévő 'p ' jelzés is. Ha a navigációs kereszt és a bombázó nem ugyanabban a térképszektorban van a tűz billentyűkkel váltogathatjuk azt, hogy a kereszt, vagy pedig a bombázó pozícióját kívánjuk-e vizsgálni. A térképen a következő jelölésekkel találkozhatunk:
: Nagyobb városok a Ruhr-vidéken (léggömbzár, reflektorok)
: Katonai objektumok (reflektorok, vadászgépek)
: Gyárak (reflektorok)
: Repülőterek (vadászgépek)
: Gátak
'Y' billentyű - 1. műszaki fülke
A bombázó hajtóműveinek műszaki állapotát ellenőrizhetjük, illetve szabályoz hatjuk innen. A bal oldalon lévő tolókapcsolók a motorok teljesítményének beállítására szolgálnak. Ez külön-külön és egyszerre is lehetséges. Azt, hogy melyik motorra vonatkozik az utasítás a képernyő alsó részén lévő kis fekete pont jelzi: ha az összes motort egyszerre szabályozzuk a pont a két középső kapcsoló között, ha valamely motort csak egymagában, akkor az aktuális kapcsoló alatt áll. A pont mozgatása a jobbra-balra billentyűkkel történik. Ha kiválasztottuk, hogy melyik hajtóművet kívánjuk szabályozni, nyomjuk meg a tűz+fel illetve a tűz+le gombokat, attól függően, hogy növelni vagy csökkenteni kívánjuk-e a hajtómű teljesítményét. A szabályozás hatását a képernyő közepén lévő műszereken mérhetjük le. Ezek az árának megfelelően mutatják a motorok fordulatszámát, 7000/sec érték esetén 7 órát. Az ajánlott utazósebességhez szükséges fordulatszám 8000-9600/sec. A cél megközelítése közben ennél magasabbra ne menjünk, mert a motor túlterhelés miatt kigyulladhat és ha nem kapcsoljuk ki idejében, a tűz a bombázón elterjedve a játék végét okozza. A motorokat a képernyő jobb felső sarkában lévő négy kapcsolóval kapcsolhatjuk ki. Az égő motort a fordulatszámmérő villogása jelzi. Ekkor a fel gombbal vigyük a fekete pontot a kapcsolókhoz és a jobbra-balra gombokkal állítsuk az égő motor kapcsolójához, majd a tűz+fel gombok megnyomásával a motor kikapcsolható. Ezt a fordulatszámmérő lenullázódása is jelzi. Az egyszer már kikapcsolt motor többet már nem üzemeltethető. A gép két motorral is biztosan vezérelhető tehát bátran kapcsoljuk ki a motorokat ha a szükség úgy hozza. A képernyő jobb alsó részén elhelyezkedő kapcsolók a motor és a légcsavarok közötti áttételt szabályozzák. Ez párhuzamosan és külön-külön történhet, a motoroknál ismertetett módon. A felső részen lévő műszerek a kapcsolók hatását mutatják:
azt jelzik, hogy a légcsavarok 1 sec alatt mennyit fordulnak. A légcsavarok nagyobb áttétele (max. 6200) ugyanazon a fordulatszámon nagyobb sebességet jelent.
Ez a fülke megkülönböztetett figyelmet érdemel, ha tehetjük, minél gyakrabban nézzünk be ide, mert a motorok állapota elsődlegesen fontos az akció sikeres végrehajtásához.
'U' billentyű - 2. műszaki fülke
A képernyő felső részén lévő négy műszer a motorok még meglévő üzemanyagkészletét mutatja gallon egységben. A bal oldali tolókapcsolóval az üzemanyag-adagolást szabályozhatjuk az adott fordulatszámhoz szükséges minimális, illetve maximális határok között. A középső részen lévő kapcsoló és műszer a csűrőlapokat húzza ki-be: ha a műszer vízszintes állásban van, a csűrőlapok be vannak húzva, ha függőleges állásban, ki vannak engedve. A képernyő bal oldalán lévő kar a kerekek behúzását-kiengedését végzi: felső állásban behúzott, alsó állásban kiengedett állapotban vannak. Ebben a fülkében is a kis fekete ponttal szelektálhatjuk, hogy melyik műszerrel kívánunk dolgozni, és a tűz+fel, illetve a tűz+le gombokkal szabályozhatjuk a kívánt mértékig.
'I' billentyű - 2. parancsnoki fülke
Az idáig megtett utunkról kaphatunk elemzést, a következő szempontok szerint:
'FLAK HITS': Azt jelzi, hányszor talált el minket az
ellenséges légvédelem
'ME110 ATTACKS': Azt jelzi, hány vadászgép támadott
és ebből hányat lőttünk le
'SPOTLIGHTS FOUND': Azt jelzi, hány reflektorral találkoztunk
és ebből hányat semmisítettünk meg
'BALLOONS SIGHTED': Azt jelzi, hány légvédelmi ballonnal
találkoztunk és ebből hányat lőttünk le
'GENERAL CONDITION': Ha olyan hibát követtünk el, amely a
játék végét eredményezte, itt kaphatunk
felvilágosítást arról, hogy mi volt a
hiba. A következő hibákat követhetjük el:
ENGINE FIRES ... A túlterhelés vagy
találat miatt kigyulladt
motort nem kapcsoltuk ki
idejében és a tűz
elterjedt az egész
repülőgépen
LOW FLIGHT ... Túl alacsonyan repültünk
és a bombázó
beleütközött a földbe.
Hibás manőver vagy az
üzemanyag elfogyásakor
fordul élő
PLANE RIPPED ... Beleütköztünk egy
légvédelmi ballonba
YOU CAN'T FLY ... Navigációs manővert
próbáltunk végezni a
földön
WHEELS ARE ... Megpróbáltuk behúzni a
kerekeket a földön
RUN OUT ... Felszállás közben
túlhaladtunk a
kifutópálya végén
'CURRENT SCORE': Az ellenségék lelövése által szerzett
aktuális pontszámot jelzi
A fülkék tanulmányozása közben észrevehettük, hogy minden fülke alsó részén 8 karakternyi hely van, amelyben néha betűk tűnnek fel. Ez az információs ablak. A gép itt jelzi, ha valamelyik fülkében sürgős tennivalónk akad. A fülkékhez rendelt betűk kijelzése a következőket jelenti:
Q: A gép zuhan, tartósan 100 láb alatt tartózkodik vagy túl meredek ívben fordul
W: Ellenség lőtávolban az orrlövész fülkéből
E: Ellenség lőtávolban a faroklövész fülkéből
T: A bombázóval ki akartunk repülni a térkép által jelzett területről
Y: Valamelyik motor túlterhelt, vagy már ég is
Ha a bombázóval már a gátat támadjuk, ne zavarjon minket, hogy az információs ablak a 'Q' betűt jelzi, mert a gátat 60 láb magasságból kell bombáznunk és ezt a magasságot a gép már hibának veszi. Egyéb esetben ha az ablak valamit jelez, azonnal korrigáljunk a betűhöz rendelt fülkében, különös tekintettel az 'Y' (1. műszaki) fülkére.
Felszállás a repülőtérről:
Ha a startpozíciót a scamptoni repülőtérre állítottuk be (TAKE OFF), a felszállást a következőképpen hajtsuk végre:
1. Kapcsoljunk az 1. műszerész fülkébe ('Y); pörgessük fel a motorokat és állítsuk a légcsavarok áttételét a maximumra
2. Kapcsoljunk a parancsnoki fülkébe ('Q'); 70 mérföld/óra sebesség elérése után elkezdhetünk emelkedni; ezt folytassuk 200-300 láb magasságig, majd hozzuk vízszintes helyzetbe a gépet
3. Kapcsoljunk vissza az 1. műszerész fülkébe és vegyük vissza a motorteljesítményt utazósebességre (8400-9600), a légcsavarok fordulatszámát 4200-5000 közé
4. Kapcsoljunk a 2. műszaki fülkébe és húzzuk be a kerekeket
5. Kapcsoljunk a navigátor-fülkébe és kezdjük meg a navigálást a cél felé
Figyelem! Ne végezzünk a repülőtéren oldalirányú manővereket és ne húzzuk be a kerekeket a földön, mert ezeknek a hibáknak az elkövetése a játék végét jelenti.
Támadás a gát ellen:
Ha sikerült megközelítenünk a gátat vagy a kiindulási pozíció gyakorlásra (PRACTICE) van állítva, az alábbi manővereket kell elvégeznünk:
1. Kapcsoljunk a navigátor fülkébe és állítsuk a navigációs keresztet a gátra
2. Kapcsoljunk az 1. műszerész fülkébe, állítsuk maximumra először a csavarok fordulatszámát, majd pedig a motorteljesítményt. Ettől a gépünk felgyorsul 230 mérföld sebességre
3. Kapcsoljunk a parancsnoki fülkébe és ereszkedjünk le kb. 60 láb magasságba
4. Kapcsoljunk a bombacélzó fülkébe, ha nincs bekapcsolva, kapcsoljuk be a célzóberendezést és állítsuk be a fénypászmákat.
5. Kapcsoljunk a parancsnoki fülkébe és figyeljük az iránytűskálán a navigációs keresztet jelképező vonást (mindig a skála közepén levő két pont közt legyen). Vigyázat, az iránytű "csal"! Mindig csak azt a helyét mutatja a navigációs keresztnek ahol az akkor volt, amikor átkapcsoltunk a navigátor fülkéből. Így megtörténhet, hogy a parancsnoki fülke skáláján lévő vonás még mindig azt mutatja, hogy a kereszt keletre van tőlünk, holott már régen átrepültünk a cél felett ás nyugatra vagyunk tőle. Ez könnyen kiküszöbölhető ha 2-3 másodpercenként átkapcsolunk a navigátor fülkébe, majd vissza a parancsnokiba; így minden apró kis manővert idejében el tudunk végezni. Ha hajszálpontos volt a navigálás, a parancsnoki fülkéből megpillantjuk a közeledő gátat.
6. Kapcsoljunk az orrlövész fülkébe. A képernyő két szélén láthatóak a bombacélzást segítő sávok. Ha a közeledő gát két széle eléri a sávokat (ekkor vagyunk kb. 800 yard távolságra) oldjuk ki a bombát a tűz gombbal. Ha a tűz gomb megnyomására nem történik semmi, akkor nem volt bekapcsolva a bombacélzó műszer, vagy nem volt kinyitva a bombaszekrény. Korrigáljuk a hibát és próbálkozzunk újra.
Ha a bombát ledobtuk megjelenik a gát - nem túl szépen megrajzolt - képe és az, hogy - ha a bombázás nem volt pontos - a bomba kioldásakor milyen hibákat követtünk el:
'TOO SLOW': Túl lassan haladtunk
'TOO HIGH': Túl magasról dobtuk a bombát
'TOO LOW' : Túl kis magasságból dobtuk a bombát
'TOO FAR' : Túl messziről dobtuk a bombát
'TOO NEAR': Túl közelről dobtuk a bombát
A maximális BONUS (15000) eléréséhez a következőek szerint kell a bombát kioldani:
Magasság: 60 láb
Sebesség: 232 mérföld/h
Távolság: 800 yard
Attól függően, hogy hány pontot értünk el, bekerülhetünk a "DAMBUSTERS hallhatatlanok" csarnokába, amely a 'GAME OVER COMMANDER...' felirat után jelenik meg.
Spectra Forth 3. fejezet White Lightnig
A FORTH története a 70-es évek elejére nyúlik vissza. Az amerikai Charles Moore nevű programozó egy óriás csillagászati teleszkóp irányításához fejlesztette ki a nyelvet. Mivel a nyelv a negyedik generációs programozási nyelvek közé tartozik, az angol "fourth" (negyedik) szó torzításából nyerte a nevét.
A FORTH az egyik legkülönlegesebb programozási rendszer: se nem interpreter, se nem compiler, viszont egyesíti magában mindkettő előnyös tulajdonságait: relatíve kevés memóriát foglal el, gyors működésű (az azonos feladatot megoldó gépi kódú programhoz képest a végrehajtási idő növekedése mindössze 1-3-szoros) és a programfejlesztése rendkívül gyors. A FORTH-ot leginkább vezérlési, szöveg- és adatfeldolgozási célokra használják, de kiválóan megállja a helyét a számítógépes grafika területén is. Ez indokolja, hogy bekerült a WHITE LIGHTNING-ba.
A WHITE LIGHTNING-ban a standard FIGFORTH rendszer került alkalmazásra, de 100 szóval többet tud, mint az eredeti. Két fontos újítást is meg kell említeni: az alap BASIC-hez való visszatérési képesség és az IDEAL-alnyev.
A FORTH legérdekesebb tulajdonsága jelen esetben is érvényesül: a WHITE LIGHTNING parancsait a felhasználó tetszés szerint kiegészítheti a már meglévő szavak felhasználásával (ADD NEW WORDS).
SZINTAKTIKA ÉS HIBAÜZENETEK
A WHITE LIGHTNING szintaktikája parancsok és betűk illetve számok kombinációjából épül fel. Az egyes tagokat szünettel kell egymástól elválasztani, a kombinációt pedig 'ENTER'-rel kell lezárni.
A parancsok nem tartalmazhatnak space-t (szóközt), mert ezt a gép két parancsként próbálja értelmezni. Az újonnan definiált parancsok max. 30 karakter hosszúak lehetnek.
Ha nem definiált illetve rosszul beírt parancsot próbálunk végrehajtatni vagy egy szám (változó) nem értelmezhető az adott helyen, a program hibaüzenettel értesít minket a rossz szintaktikáról.
Pl. SCORE (+Enter) 0 hibaüzenetet eredményez, mivel a
szótárban nincsen ilyen szó definiálva
HEX 27CX 0 hibaüzenetet eredményez, mivel az 'X'
nem értelmezhető hexa szám
EGYÉB HIBAÜZENETEK
STACK EMPTY - a stack üres
STACK FULL - a stack betelt
DICTIONARY FULL - a szótár betelt
Mielőtt még részletesen áttekintenénk a parancsokat, megjegyezzük, hogy az - új parancsok definiálásakor a parancsokhoz tartozó - értékek a stack-ba kerülnek (később hívhatóak is). Jelen Forth-rendszer az ún. Reverse Polish Notation-t (fordított frissítési módszer) használja. Ez a műveleteket olyan sorrendben hajtja végre, amilyenben a stack-ben vannak (a régebbi típusú számológépek használták ezt a módszert). Tekintsük át ezt egy rövid példán keresztül:
Tegyük fel, hogy össze kívánjuk adni az 1 és 2 számot, majd az eredményt meg kívánjuk szorozni 3-mal.
Először feltöltjük a stack-et (vermet) a számokkal: 3 2 1, majd beadjuk a műveleti jeleket: + és *
A következő történik: az első művelet az utoljára beírt, vagyis a verem tetején, (Top Of Stack, a továbbiakban TOS) lévő két szám (1 és 2) között hajtódik végre, majd a művelet eredménye megszorzódik a verem harmadik tagjával (3).
Most nézzük át részletesen az alkalmazható parancsokat:
INPUT/OUTPUT MŰVELETEK
EMIT: A TOS-ban lévő karakter kiíratása a képernyőre. Pl. a
HEX 41 EMIT CR (+ENTER)
arra utasítja az interpretert, hogy hexadecimális
értelmezési módban (HEX) írjon a stack tetejére 41-et
(41), majd a stack tetején lévő számot jelezze ki a
képernyőre (EMIT) és állítsa a kurzort a következő
sor elejére (CR). A példaparancs kiadása az "A"
karaktert jeleníti meg a képernyőn (a kijelezni
kívánt karakternek értelmezhető ASCII karakternek,
grafikus karakternek vagy a TOS-on lévő számtól függő
vezérlő karakternek kell lennie)
EMITC: Ugyanaz a funkció, mint az EMIT, de a vezérlő
karaktereket is értelmezi.
KEY: Billentyűzetvizsgáló funkció. A megnyomott billentyű
ASCII-kódját a stack tetejére helyezi (pl. "A"
megnyomására a 41H kerül a TOS-ra). A következő példa
megjeleníti a képernyőn ahhoz a billentyűhöz tartozó
karaktert, amelyet megnyomtunk:
KEY EMIT (+ENTER)
Egy billentyű gyors megnyomása után a képernyőn
megjelenik az adott karakter és rögtön utána az "OK"
üzenet (az 'A' megnyomása esetén tehát "AOK" fog
megjelenni). Ha a billentyű megnyomása "lassan"
történt két kurzort kapunk eredményül, a felsőt nem
kell figyelembe venni.
CR : Sort emel és a kurzort a sor elejére állítja
. : Átalakítja a TOS-ban lévő számot az aktuális
kijelzési módba és megjeleníti a képernyőn. A
kijelzési mód (a továbbiakban alap) decimális
(DECIMAL) és hexadecimális (HEX) lehet. A "." kiadása
kiveszi a veremből a TOS-t. Nézzünk néhány példát a
funkció működéséré:
HEX 2B1D . (+ENTER) -----2B1D
DECIMAL 1134 . (+ENTER) ---1134
DECIMAL 2048 HEX . (+ENTER)--800
U : Kiírja a TOS tartalmát az alap figyelembe vétele
nélkül. Pl.
HEX DAAl DECIMAL U (+ENTER)
hatására a gép a DAA1 kódot írja ki a képernyőre.
? : Az aktuális alap figyelembe vételével megjeleníti azt
az értéket, amely abban a memóriarekeszben van,
amelyre a TOS mutat. Pl. tegyük fel, hogy a TOS
DO88-at tartalmaz, az alap DECIMAL és a DD88/89-ben
001C érték van. A ? hatására a gép a 29es értéket
jeleníti meg.
TYPE : A felső két TOS alapján megjelenít a képernyőn adott
számú karaktert. A TOS a kiírandó karakterek számát,
az alatta levő szám pedig a kezdőcímet tartalmazza,
pl.
HEX 92A1 11 TYPE (+ENTER)
a 92A1 címnek megfelelőn megjelenít 17 (HEX 11)
karaktert a képernyőn.
DUMP: a TOS alapján kiír x byte-ot az adott címtől
" : Kiírja az idézőjelbe tett stringet a képernyőre (az
idézőjelek mellett szüneteket kell hagyni).
Pl.: " STRING " (+ENTER)
után megjelenik: STRING
SPACE : Egy szóköz karaktert jelenít meg a képernyőn
SPACES : TOS számú szünetet ír a képernyőre
MATEMATIKAI MŰVELETEK
+ : Összeadja a két felső stack-számot és az eredményt a
TOS-ba teszi.
- : A TOS alatt lévő számból kivonja a TOS-t és az
eredményt a TOS-ba teszi.
* : Összeszorozza a TOS-t az alatta lévő számmal és az
eredményt a TOS-ba teszi.
/ : A TOS alatt lévő számot elosztja a TOS-szal és az
eredményt elhelyezi a TOS-ban.
MAX : A stack tetején lévő két szám közül törli a
kisebbiket. Pl.
596 441 MAX . (+ENTER)
hatására az 596 fog megjelenni a képernyőn.
MIN : A MAX-hoz hasonló módon törli a nagyobbik értéket.
ABS: A TOS abszolút értéke
MINUS: Negálja a TOS-t
n+ : n értékkel növeli a TOS értékét (n=1 ill.2)
n- : n értékkel csökkenti a TOS értékét (n=l ill.2)
MOD : A TOS alatt lévő szám (a továbbiakban TOS2)
előjelével a TOS-ba teszi a TOS2 TOS-szal történő
elosztásának maradékát. Pl.
19 -4 MOD . (+ENTER)
a -3-at fogja kiírni a képernyőre.
/MOD : A TOS2/TOS osztás hányadosát a TOS-ba, maradékát a
TOS2-be teszi.
STACK MŰVELETEK
DUP : A TOS-t duplázva írja ki. Pl.
507 DUP .. (+ENTER)
esetén 507 507 jelenik meg.
DROP : Törli a verem tetején a TOS-t
SWAP : Cserét hajt végre a TOS és a TOS2 között
OVER : TOS2-t a verem tetejére másolja, de a többi számot
sértetlenül hagyja, pl.
204 107 OVER . CR . CR .(+ENTER)
eredményeképpen megjelenik egymás alatt: 204, 107, 204
ROT : megforgatja a verem felső három elemét, pl.
5 7 9 ROT . CR . CR . (+ENTER)
eredményeképpen megjelenik egymás alatt: 9, 7, 5
EGYÉB MŰVELETEK
; : TOS2-t eltárolja a TOS által kijelölt címre, pl.
ha TOS=D0FC, TOS2=CB85 és megadjuk:
HEX CB85 D0FC ; (+ENTER)
úgy a CBB5 bekerül a D0FC/FD címekre.
@ : Amennyiben TOS tartalma egy memóriacím, úgy a parancs
a TOS helyére a cím tartalmát helyezi, pl. ha a DF00
cím tartalma 12, úgy
DF00 . (+ENTER)
hatására a képernyőre 12 íródik ki.
CI : Amennyiben TOS tartalma egy memóriacím, úgy a parancs
az adott címre helyezi a T0S2-ben tárolt értéket.
@C : Amennyiben TOS tartalma egy memóriacím, úgy a parancs
a TOS-ba helyezi a címen tárolt 2 byte-ot, de úgy,
hogy közben a nagyobb helyiértékű byte-ot lenullázza.
+2 : Amennyiben TOS tartalma egy memóriacím, úgy a T0S2-t
hozzáadja a TOS által kijelölt cím tartalmához, és az
eredményt a TOS-ban tárolja.
KETTŐSPONT DEFINÍCIÓK
A WL-ben a definíciókat ':'-tal kezdjük. Segítségével új szavakat alkothatunk, előzetesen definiált szavakból. Hosszuk tetszőleges, de minden 80. karakter után sort kell emelnünk.
Általános forma:
: új szó 1.szó 2.szó.....n.szó . ;
(A definíciót mindig pontosvesszővel kell lezárnunk.)
Próbáljunk egy négyzetreemelést végrehajtó definíciót írni:
: NEGYZET DECIMAL CR . " A NEGYZETE " DUP .. " -NEK "
DUP . ; (+ENTER)
A definíciót előhívhatjuk pl:
7 NEGYZET (+ENTER),
melynek eredménye: A NEGYZETE 7-nek 49.
VEZÉRLŐSZERKEZETEK (ciklusok)
A WL kétféle ciklusműveletet képes végrehajtani. Az egyik a DO...LOOP, a másik pedig a DO...+LOOP, ezeket kettőspont definícióban kell elhelyezni!
Az első verzió általános felépítése a következő:
: DEFINÍCIÓ határ start DO.....'FORTH szavak'
LOOP ; (+ENTER)
Ennek eredményeképpen a cikluson belüli FORTH utasítások végrehajtása egészen addig tart, amíg - az egyébként növekvő - start értéke el nem éri a határ értékét, pl.
: MINTA 6 0 D0 . " DEMO " CR LOOP ; (+ENTER),
majd MINTA (+ENTER) eredményeképpen a DEMO szöveg 6-szor egymás alá íródik.
MÁSOLÓPROGRAMOK |
LERM Tape Copier (TC-) 6
Első látásra talán "butának" tűnik ez a másoló, hiszen normál, trükkmentes programok másolásához ennél még a COPIER FM 3 is jobb, a SUPER 50K-ról nem is beszélve. Rendelkezik azonban ez a program néhány olyan - az említett másolók által nem ismert - tulajdonsággal, amelyeket előnyösen alkalmazhatunk néhány védett program másolásához.
A TC 6-tal megtörhető védelmek:
- hosszú TONE
- rövid TONE
- a blokk vége és a következő TONE között nincs szünet.
1. NORMÁL MÁSOLÁS
Betöltés után a TC-6 "HERE ARE YOUR INSTRUCTION" felirattal jelentkezik be, ekkor az L billentyű megnyomására várja a program betöltését. A magnetofon elindítása után megkezdődik a töltés, egyidőben mindig csak az aktuális blokk fejléc-adatait jelzi ki a program.
Összesen 41K tölthető be egyidőben a memóriába. Ha a blokkok töltése közben BREAK-et nyomunk, választhatunk, hogy töltünk tovább (Y), vagy kimentés következik (N). Normál másolathoz a 'C' billentyűt kell megnyomnunk. Ha hibás volt a betöltés, nem akarunk másolni, vagy befejeztük a másolást, akkor az 'A' billentyűvel térhetünk vissza ismét a betöltő parancsmódba. Ha kimentés után újabb másolatot akarunk készíteni, akkor előbb 'Y'-t kell nyomni, majd újra 'C'-t, és a folyamat megismétlődik. Betöltés alatt az 'N' bevitelével leállíthatjuk a TC-6-ot. BREAK megnyomása után (itt hívjuk fel a figyelhet, hogy a BREAK-et kis ideig nyomva kell tartani) elmentéskor a TC-6 mindent el fog menteni, ami a memóriában van. A képernyő bal oldalán középen egy szám jelzi a bent lévő blokkok számát. A 'D' billentyűvel a betöltés fordított sorrendjében egyenként kitörölhetünk blokkokat a memóriából, ezt a jelzőszám is visszaigazolja. A 'P' billentyűvel hosszabb szüneteket helyezhetünk el kimentéskor két blokk között. Ez úgy történik, hogy a szünet előtti blokk kimentése közben meg kell nyomni a 'P'-t, majd nyomva kell tartani a kimentés után a szünet idejére, és elengedés után folytatódik a következő blokk kimentése.
2. VÉDETT PROGRAMOK MÁSOLÁSA
Az 'L' billentyű a normál másolás mellett rövid TONE-nal rendelkező blokkok másolását is lehetővé teszi, azonban, mivel nem vizsgálja le a TONE-t, ezért olyan esetben (pl. TRANS EXPRESS), amikor a blokkok között nem hagyunk szünetet, a TC-6 a TONE-t is byte-onként olvassa be, és ez kimentéskor hibás adatállományt fog eredményezni. Ezt persze megakadályozhatjuk, ha abban a pillanatban megállítjuk és újraindítjuk a magnetofont, amikor észleljük a piros-kék csíkokat, de ez eléggé idegölő munka. Ennél kedvezőbb az 'L' billentyű helyett a 'T' használata, ez kikeresi a TONE-okat, s így "egy füst alatt" betölthetjük a programot. Rövid TONE előfordulása esetén használhatjuk még az 'S' billentyűt is, habár a TONE byte-onkénti beolvasása miatt gyakran rosszul olvashatja a programot. Hosszú TONE (pl. 2-3 mp.) esetén a betöltést a 'C' billentyűvel kell megnyitni, természetesen ez esetben a 'C' nem lehet a kimentés billentyűje, így hosszú TONE-nal rendelkező blokk betöltése után a kimentés a 'W' billentyűvel történik. Figyelem: A TC-6-tal a másolást érdemes két részletben megoldani, mivel a kódok együttes hossza nem haladhatja meg a 41K-t!
PAINTBOX |
SCREEN PLANNER
A főmenüből választható SCREEN PLANNER üzemmód a PAINTBOX egyik legjobb szolgáltatása. Ebben kombináltan használhatjuk a nagyfelbontású grafikai tervezőt és a 84 UDG-karaktert. Ha a PRECISION PLOTTER-ben már megrajzoltunk egy képet, akkor az megjelenik a SCREEN PLANNER rajztábláján, egyidőben az aktuális UDG-készlettel. Ha még nem rajzoltunk képet valamelyik random ábrát láthatjuk itt. Az UDG-karakterek között a kívánt karakterhez tartozó billentyű megnyomásával szelektálhatunk, a karakter megjelenik a kurzor pozíciójában. A képernyő jobb alsó sarkában látható a kurzor x és y pozíciója, amely egyúttal az INK és PAPER színek meghatározását is megkönnyíti. A SCREEN PLANNER hasonlóképpen használható, mint az UDG-Editor SKETCH PAD opciója, azzal a különbséggel, hogy ide bármelyik karakterkészlet behívható és lehetőségünk van az adott pozíciók PAPER és INK színeinek meghatározására is. Az 'X' billentyű hegnyomására a rendelkezésünkre áll a teljes INK színskála. A hibák javítását space ráírásával is végezhetjük.
A SCREEN PLANNER-ben kiváló lehetőség, hogy nemcsak a memóriában tárolt 4 UDG-készletet használhatjuk, hanem behívhatjuk korábban elkészített, szalagon tárolt készleteinket is. Ez rendkívüli előny pl. egy háttér felépítéséhez valamely játékban vagy egy precízen kidolgozni kívánt rajzos-szöveges képnél. A befejezett képeket ugyanúgy menthetjük kazettára, mint a PRECISION PLOTTER-ben.
A SCREEN PLANNER-ből a BREAK (CAPS SHIFT+SPACE) billentyűvel tudunk kiszállni. Ez a művelet automatikusan elraktározza a memóriába a rajztáblán lévő képet. Lehetőséget kapunk rá, hogy a befejezett képet szalagra mentsük vagy visszatérjünk a főmenübe. A vásik nagy szolgáltatás, hogy az ENTER billentyű segítségével lehetővé válik egy képernyő karakterizálása.
A KÉPERNYŐ-ÁLLOMÁNYOK KIMENTÉSE
A PAINTBOX minden fázisában lehetőség van arra, hogy az eddig elkészült dolgainkat szalagra kimenthessük. A képernyők esetében-két módszer áll rendelkezésünkre:
-SCREEN$: Ez a Spectrum hagyományos módszere a képernyőtartalom kezelésére.
-MEMORY FILE: Ez a módszer speciálisan arra törekszik, hogy a PAINTBOX által rajzolt képeinket könnyen alkalmazhassuk BASIC-programokból. Ez az eljárás a képünket áttölti a memóriába, majd kódként menti ki magnóra. Az így előállított kódokat egy egyszerű gépi kódú rutin segítségével betölthetjük a Display file-ba.
Mindkét eljárás esetén max. 6 karakter nevet adhatunk a kimentett állománynak. Ha a kimentés befejeződött a program automatikusan visszatér a főmenübe.
KÉPÁLLOMÁNYOK BEHÍVÁSA BASIC-PROGRAMOKBA
Ha SCREEN$ típusú állományt hívunk be, LOAD "(név)" SCREEN$ parancsot kell alkalmaznunk amire a program fokozatosan betöltődik és mindaddig a képernyőn marad, amíg valamilyen utasítással (elég egy GO TO vagy egy ENTER is) ki nem takarítjuk onnan.
Memória-állományként tárolt képek és a hozzájuk tartozó behívó rutinok 6940 byte-on helyezkednek el. LOAD "" CODE paranccsal hívhatóak be, de nem jelennek meg azonnal a képernyőn. Ahhoz, hogy az állomány a Display file-ba kerüljön a RANDOMIZE USR 59980 parancsot kell kiadnunk. Ilyen módon a kép akárhányszor behívható a programfutás során és tartalmától függetlenül rendkívül gyorsan töltődik a képernyőre. Természetesen ezeknek a képeknek a védelméről időben gondoskodni kell a RAMTOP áthelyezésével. A BASIC-program megírása előtt adjuk ki a CLEAR 53059 parancsot.
TÖBBSZÖRÖS KÉPERNYŐ-ÁLLOMÁNYOK
Előfordulhat, hogy programjainkhoz nem elég egyetlen képernyőnyi grafika. A 48 kbyte Spectrumban maximálisan 5 db teljes (6912 byte hosszú) képernyőt tárolhatunk, hogy még maradjon 6 kbyte-nyi hely a BASIC-program számára is. A PAINTBOX által kimentett képernyőtartalmak mögé mindig odakerül egy rövid gépi kódú rutin is, amely a memóriából a képernyőre másolja a képet. Több képállománnyal való manipuláció szükségessége előtt jobb ha megismerkedünk ennek módszerével:
1. Az első lépés mindig a RAMTOP beállítása a CLEAR segítségével. Minthogy bármelyik kimentett állomány a kimentési címtől különböző címre is betölthető, legyen az új RAMTOP az új képernyőállomány kezdőcíme alatt.
2. Az állományt LOAD "" CODE n(új cím) paranccsal behívhatjuk a RAMTOP fölé. Bármilyen új címre betöltött képállomány a RANDOMIZE USR n+6940 utasítással jeleníthető meg a képernyőn.
3. Mivel a kimentett állomány betöltőrutinja még mindig ugyanazt az állományt és címet tartalmazza, ami az eredeti helyére vonatkozik, a rutin ezen részét POKE utasításokkal módosítanunk kell. A két módosítandó byte-ot jelöljük mondjuk H és L betűkkel. Ez a két byte az aktuális állomány kezdőcíme fölötti 6921. és 6922. címen található. Értéküket nekünk kell kiszámolnunk:
H=INT(új cím/256) L=új cím-256*H
Segítségképpen megadunk egy táblázatot a kezdőcímek elhelyezkedéséről abban az esetben ha 64568 címen egy UDG karakterkészletünk leledzik:
Az állomány száma Kezdőcím L H
1. 57628 28 225
2. 50716 28 198
3. 43804 28 171
4. 36892 28 144
5. 29980 28 117
PLOT
Ha a PRECISION PLOTTER-ben dolgozunk és váltogatjuk a rajzolási üzemmódokat, az új üzemmódban mindig adjunk ki kezdésnek egy PLOT utasítást, hogy a későbbi DRAW, CIRCLE és ARC utasításoknak legyen kezdőértéke.
INK
Ha egy megkezdett rajzon módosítani kívánjuk az INK színét, először mindig adjunk ki egy PLOT utasítást.
LOAD
Amikor a PRECISION PLOTTER-rel dolgozunk ne kísérletezzünk azzal, hogy a memóriatípusú állományt betöltsük (bajt nem csinál, csak nem működik), ebben az állapotban csak SCREENS jellegű képeket használhatunk. A bosszúságok elkerülése végett célszerű az állományok nevének az utolsó karaktereként egy "M" illetve "S" betűt elhelyezni, az állomány típusának könnyű azonosításához. Minden olyan esetben, ha egy SCREEN$ típusú állományt szándékozunk betölteni, be kell állítanunk a kimentéskor érvényes színeket, mert a kurzor mozgatás után a beállított INK-színnel fog rajzolni és így elronthatja a képünket. 'W': DRAW 'X': INK
4. A képállomány hívása tehát a következő parancssorozattal történik:
POKE 64549,L: POKE 64550,H: RANDOMIZE USR 64548
Természetesen SCREENS állományú képek is behívhatóak más címre, de ekkor a hívásnak LOAD"" CODE (új cím) formában kell jelentkeznie.
Észrevehetjük, hogy az ilyen többszörös képernyőállománnyal történő manipulációknál csak a legmagasabb címen lévő, 1. számú képállomány hívókódját használtuk fel. Ennek az állománynak azonban feltétlenül MEMORY FILE típusúnak kell lennie, mert csak ezekkel mentődik ki a hívó kódrutin. Az összes többi bármilyen típusú állomány lehet. Ha ezzel a címkiosztással dolgozunk és az összes képernyő MEMORY FILE típusú, vigyázni kell mert ezekkel a saját hívórutinjaik is kimentődnek és ezek a rutinok felülírhatják a felettük lévő kép első 29 byte-ját. Ennek elkerülésére az állományokat fordított sorrendben hívjuk be: az ötödiket először, a negyediket másodszor és így tovább.
TÖBBSZÖRÖS KÉPÁLLOMÁNYOK KIMENTÉSE
A memóriában elhelyezett többszörös képállományt nemcsak külön-külön hanem együttesen is kimenthetjük a magnóra SAVE "(név)" CODE (legalsó cím), (65535 mínusz a legaIsó cím) paranccsal. Visszajátszáskor nem szabad a RAMTOP áthelyezéséről elfeledkezni.
FÜGGELÉK
Hibaüzenetek
Van néhány eljárás a programban, amelyet lehetetlen teljesen hibamentessé tenni. A hibaüzenetek leggyakrabban az ARC utasítás használatakor jelentkeznek, ezután RUN+ ENTER, majd a menük segítségével juthatunk vissza a hiba helyére. A hiba elkövetése előtti helyzetet az 'E' (ERASE) billentyűvel állíthatjuk vissza.
FILL
Ez csak zárt síkidomok kitöltésére alkalmas. Ha mégsem lenne a síkidom lezárva, a tinta kifolyik és az egész képernyő befestődik. Az ERASE eljárással visszaállítható a hiba előtti állapot. Bonyolultabb ábráknál szükség lehet több PLOT kezdőpont kijelölésére és a FILL újbóli kiadására.
COPY
Előfordulhat, hogy a PAINTBOX által rajzolt képünket nyomtatóra küldve, nem egészen elvárásainknak megfelelő nyomtatást kapunk. Ez attól függ, hogyan voltak az ábrák színezve (a legtöbb nyomtató csak két színt tud nyomtatni).
Képfejlesztés
Mind a PRECISION PLOTTER, mind a SCREEN PLANNER használatakor érdemes a rajzolandó képet elkészítési lépcsőkre bontani. Egy-egy lépcső befejezése után raktározzuk az eddig elkészült képet a memóriába.
OVER
A PRECISION PLOTTER-ben az OVER 1 menetközbeni alkalmazása után az újonnan húzott vonalak kitörölhetik az eddig megrajzolt vonalakat.
SAVE GERJEDÉSGÁTLÓ
Sokan ütköztünk már abba a problémába, hogy programunk kazettás magnetofonra történő kimentésénél a betöltési vonalat (vagyis, amelyik az EAR aljzatba csatlakozik) meg kell szakítanunk, mert gerjedés jött létre. Ezt megtehetjük úgy is, hogy a gépből húzzuk ki az említett dugót, vagy a magnetofonból. Bármely megoldást is feltételezve, az említett probléma sok bosszúságot okoz.
Nézzük meg az említett gerjedés technikai hátterét.
A kereskedelemben előforduló magnetofonok (hordozható magnók, deck-ek stb.) többsége felvételi üzemmódban visszakever egy bizonyos szintű jelet a kimeneti ágra is, ami így visszajut az EAR aljzaton keresztül a Spectrumba. A kimenő és visszakevert jel interferenciája öngerjedést idéz elő, ami folyamatosan növekvő szintű jeltorzulást eredményez, kellemetlen sípoló hang kíséretében. Laikus szel el azt mondhatnánk, építsünk be egy kapcsolót az EAR csatlakozó vezetékbe, és program kimentésekor kapcsoljuk azt át. Ez persze nem kényelmes, ehelyett akkor már inkább ki/be húzzuk a dugót és még a kapcsoló beépítés fáradtságát is megtakarítottuk. Olyan áramkör elkészítése célszerű, amely az EAR ágba bekötve minden időben lehetőséget biztosít a programtöltés és mentés folyamatos és zökkenőmentes lebonyolításához.
Az áramkört külső egységként is illeszthetjük, de célszerűbb a gépen belüli beültetés. A panel kis méreténél fogva az elhelyezés nem okozhat gondot, a +9 V tápforrás egyszerűen átadható a gép +9 V bemenetéről, az EAR csatlakozó továbbmenő ágát pedig egyszerűen átköthetjük a kiegészítő áramkörre.
ALKATRÉSZLISTA
Tranzisztor 1 db. BC 108 TR1
Kondenzátorok 1 db. l0 ľF 16V ELKO Cl
2 db. 100 ľF 16V ELKO C2,C3
Ellenállások 2 db. 18 kOhm 1/4 W Rl,R2
1 db. 470 Ohm 1/4 W R3
1 db. 100 Ohm 1/4 W R4
1 db. 680 Ohm 1/4 W R5
TARZAN - MARTECH
A végtelen élethez az 51002 és 51185 címek tartalmát kell zérusra változtatnunk. Az itt ismertetett módszer a bevitelre csak akkor hatásos, ha azzal a verzióval rendelkezünk, amelynek file-térképe a következő: 164/6913/20000/20536/6916/1704. MERGE és töltsük be a BASIC részt. Állítsuk meg a magnót, majd írjuk be 20 REM és tegyünk utána 4 db. SPACE-t. Írjuk be: POKE 23757,100, majd Írjuk be a következőket is: 20 RESTORE 30: FOR i=23841 TO 23857: READ a: POKE i, a: NEXT i és azután 30 DATA 62,0,50,58,194,62,0,50,241,199,62,255,55,229,195,86,5 Futtassuk: RUN 20, majd CLEAR 24899 és RANDOMIZE USR 23760, indítsuk el a magnetofont, és a játékban nem fogjuk elveszteni egy életünket sem. |
BASIC |
Joystick-vezérlés kiválasztása BASIC-ből (Etch a Sketch)
Azok számára lehet érdekes az itt közöl rövid rajzoló rutin, akik idegenkednek gépi kódtól. A BASIC program lehetővé teszi, hogy a játékprogramoknál megszokott háromféle Joystick Interface (Kempston Interface II, illetve Cursor) közül kiválasszuk a megfelelőt. A legérdekesebb talán a Kempston beolvasása az IN 31-e portról, (1010. sor), amely, mint látható, BASIC-MI is elérhető.
1 REM *** JOYSTICK VEZERLES BEALLITAS ***
10 BORDER 1: PAPER 1: INK 6: CLS
20 PRINT AT 4,6;"VEZERLEG BEALLITASA: "
30 PRINT AT 7,8;"K - KEMPSTON "
40 PRINT AT 9,8;"S - INTERFACE II"
50 PRINT AT 11,8;"C - CURSOR"
70 IF INKEY$<>"" THEN GO TO 70
80 LET i$=INKEY$: IF THEN GO TO 80
90 IF i$="k" OR i$="K" THEN LET vez=1000: GO TO 150
100 IF i$="s" OR i$="S" THEN LET vez=2000: GO TO 150
110 IF i$="c" OR i$="C" THEN LET vez=3000: GO TO 150
130 GO TO 70
150 LET x=127: LET y=87: CLS
160 PRINT #1>;AT 1,4;"Rajzolas: mozgatas + fire"
200 PLOT x,y: LET h=0: LET v=0: GO SUB vez
210 IF fire=1 THEN PLOT INVERSE 1;x,y
220 LET x=x+h: LET x=x+(x<0)-(x>255)
230 LET y=y+v: LET y=y+(y<0)-(y>255)
250 GO TO 200
1000 REM KEMPSTON
1010 LET i = IN 31
1020 GO SUB 5000
1030 LET h=bit0-bit1: LET v=bit3 -bit2: LET fire=1-bit4
1040 RETURN
2000 REM SINCLAIR INTERFACE II
2010 LET i=IN 61438
2020 GO SUB 5000
2030 LET v=bit2-bit1: LET h=bit4-bit3: LET fire=bit0
2040 RETURN
3000 REM CURSOR KEYS (PROTEK/AGF)
3010 LET i=IN 61438
3020 GO SUB 5000
3030 LET h=bit2: LET v=bit4-bit3: LET fire=bit0
3040 LET i=IN 63486
3050 GO SUB 5000
3060 LET h=bit4-h
3070 RETURN
5000 REM bitek tesztje
5010 LET bit0=0: LET bit1=0: LET bit2=0: LET bit3=0: LET bit4=0
5020 IF i>127 THEN LET i=i-128
5030 IF i>63 THEN LET i=i-64
5040 IF i>31 THEN LET i=i-32
5050 IF i>15 THEN LET i=i-16: LET bit4=1
5060 IF i>7 THEN LET LET bit3=1
5070 IF i>3 THEN LET i=i-4: LET bit2=1
5080 IF i>1 THEN LET i=i-2: LET bit 1=1
5090 LET bit0=i
5100 RETURN
PROGRAMOZÁSTECHNIKA |
49998 33 0 128 ld hl,32768
50001 17 0 64 ld de,16384
50004 1 0 24 ld bc,6144
50007 237 176 ldir
50009 62 247 ld a,247
50011 219 254 in a,(254)
50013 230 31 and 31
50015 254 15 cp 15
50017 204 122 195 call 2,50042
50020 62 239 ld a,239
50022 219 254 in a,(254)
50024 230 31 and 31
50026 254 27 cp 27
50028 204 176 195 call z,50096
50031 62 127 ld a,127
50033 219 254 in a,(254)
50035 230 31 and 31
50037 254 30 cp 30
50039 200 ret z
50040 24 223 jr 50009
50042 6 192 ld b,192
50044 17 0 64 ld de,16384
50047 213 push de
50048 225 pop hl
50049 35 inc hl
50050 197 push bc
50051 1 31 0 ld bc,31
50054 26 ld a,(de)
50055 50 0 91 ld (23296),a
50058 237 176 ldir
50060 43 dec hl
50061 229 push hl
50062 17 33 92 ld de,23585
50065 25 add hl,de
50066 126 ld a,(hl)
50067 225 pop hl
50068 119 ld (hl),a
50069 229 push hl
50070 17 33 92 ld de,23585
50073 25 add hl,de
50074 229 push hl
50075 209 pop de
50076 35 inc hl
50077 1 31 0 ld bc,31
50080 237 176 ldir
50082 43 dec hl
50083 58 0 91 ld a,(23296)
50086 119 ld (hl),a
50087 225 pop hl
50088 35 inc hl
50089 229 push hl
50090 209 pop de
50091 35 inc hl
50092 193 pop bc
50093 16 211 djnz 50050
50095 201 ret
50096 6 192 ld b,192
50098 17 255 87 ld de,22527
50101 213 push de
50102 225 pop hl
50503 43 dec hl
50104 197 push bc
50105 1 31 0 ld bc,31
50108 26 ld a,(de)
50109 50 0 91 ld (23296),a
50112 237 184 lddr
50114 35 inc hl
50115 229 push hl
50116 17 95 92 ld de,23647
50119 25 add hl,de
50120 126 ld a,(hl)
50121 225 pop hl
50122 119 ld (hl),a
50123 229 push hl
50124 17 95 92 ld de,23647
50127 25 add hl,de
50128 229 push hl
50129 209 pop de
50130 43 dec hl
50131 1 31 0 ld bc,31
50134 237 184 lddr
50136 35 inc hl
50137 58 0 9 ld a,(23296)
50140 119 ld (hl),a
50141 225 pop hl
50142 43 dec hl
50143 229 push hl
50144 209 pop de
50145 43 dec hl
50146 193 pop bc
50147 16 211 djnz 50104
50149 201 ret
A rutin több, egymáshoz fűzött képernyőt görget folyamatosan körbe. Játékprogramok háttereinek változatosabbá tételéhez használhatjuk, mert megfelelő grafikával olyan hatást kelt, mintha a monitorral, mint egy ablakkal végigpásztáznánk az előttünk elterülő tájat. Elindítani a RANDOMIZE USR 49998 utasítással tudjuk, előbb azonban be kell hívnunk két, előzetesen elkészített, vagy meglévő SCREEN állományú file-t a magnetofonról vagy a microdrive-ról:
LOAD "" CODE 32768 és
LOAD "" CODE 40000
A rutin az "5" billentyű megnyomására a két, betöltött képet összekapcsolva balra görgeti, a "8" billentyű megnyomására pedig jobbra.
A SPACE segítségével léphetünk ki a rutinból.
A görgetés elve: (balra)
Jobbra természetesen értelemszerűen fordítva. Több képet is összefűzhetünk, így pl. ha csak a felső képernyő-harmadot használjuk, megháromszorozhatjuk ezek számát. A mechanizmus 3 kép esetén:
Az itt bemutatott rutin csak a display file-t mozgatja, de könnyen átalakítható az Attributumok mozgatására is. A rutin felépítése a következő: A 49998-50040 terület a billentyűvizsgálat. Az 5004250095 terület végzi el a memóriaterületek balra-, míg az 50096-50149 terület pedig a jobbragörgetését.
FEUD
A játékban főszereplőnk 'LEARIC' feladata, hogy a varázsló 'LEANORIC' hatalmát megtörje különböző varázslatok segítségével. A képernyő alsó részén láthatjuk a varázskönyvet, ettől jobbra pedig hősünk és a varázsló energiáját (a sziluett magassága mutatja a fogyást ill. növekedést). A játék az üst mellől indul, a pályákon itt-ott villódzó virágokat találunk, ezeken át kell menni, mire a varázskönyv egy bizonyos helyen kinyílik, és az alul látható két fekete varázsszó egyike piros színű lesz. A könyvben - melynek lapjai a tűz+jobb/bal funkcióval lapozhatók -, felül látható a varázslat kulcsszava, alul pedig a két varázsszó. Egy varázslat csak akkor lesz aktív, ha a hozzá tartozó mindkét varázsszót begyűjtöttük a növények képében, és elvittük az üsthöz, hogy jóféle varázsitalt kutyuljunk belőle. Minden varázslat másképpen használható fel a gonosz figura ellen, de vigyázzunk, a legtöbb varázslat egyszeri használat után "kimerül", újabb bevetése csak ismételt begyűjtés után lehetséges.
A LIGHTNING hatására 12 villámot, a FIREBALL segítségével 12 tüzet lőhetünk. A HEAL begyógyítja sebeinket, mert energiáit ad. A REVERSE megijeszti az ellenséget, amire az elmenekül. Az INVISIBLE hatására egy ideig láthatatlanok leszünk. A DOPPLEGANDER hatására megkettőződünk, így az ellenséget egy ideig megtévesztjük. A FREEZE hatására LEANORIC egy időre megbénul, a SWIFT gyorsít minket. A ZOMBIE a házak melletti munkást holdkórossá változtatja, a SPRITES segítségével a pálya bal alsó sarkában lévé manót lőhetjük ki. A PROTECT véd a lövésektől, végül a TELEPORT visszatesz az üsthöz.
Sérthetetlenség: POKE 47190,201
A POKE bevitele az, előzőekhez hasonló, a szüks. file térkep: 164/6912/ 20000/20536/6916/1704. A zérus értékeket a köv. címeken kell elhelyeznunk: 36516/36517/36518/41365/41366/41367. MERGE "", majd A BASIC rész betöltése utan írjuk be: 20 REM és tegyünk utána 14 SPACE-t. Íárjuk be POKE 23757,110, majd gépeljük be: 20 RESTORE 30: FOR i=23841 TO 23867: READ a: POKE i,a: NEXT i és ezután: 30 DATA 62, 0, 50, 164, 142, 50 165, 142, 50, 166, 142, 50, 149, 161, 50, 150, 161, 50, 151, 161, 62, 255, 55, 229, 195, 86, 5 Futtassuk: RUN 20, majd CLEAR 24899 és RANDOMIZE USR 23760, indítsuk el a magnetofont, és a játék a betöltést követően végtelen élettel indul. |
9. fejezet
128 K |
Két számítógép egy dobozban?
Az új Spectrum 128K legjelentősebb szolgáltatása, hogy kompatibilis elődjével, a 48K-s géppel. A normál ZX-Spectrum 128K+ a 48K+ gép utódja, billentyűzetének kialakítása is annak megfelelő, bár a műanyag doboz hossza megnőtt, elsősorban a megváltozott belső felépítésnek köszönhetően. Jelentős technikai újítás a beépített TV-kép generátor, amely igazán éles, kontúros TV-kép előállításán túl a gép hangját is képes az antenna vonalon a TV hangszórójára küldeni. A gép RGB videokimenettel is rendelkezik, így probléma nélkül összekapcsolható pl. videó-monitorral.
Újítás a szalag-jel tesztelő is (TAPETESTER), amely a kazettáról érkező jelet vizsgálja le, és segítségével beállíthatjuk a számítógép számára legmegfelelőbb hangerő és hangszín értékét (bár ezt az AMSTRAD mérnökei a +2 ill. +3 típusoknál "kispórolták").
Az új 128K üzemmód új BASIC Interpretert tartalmaz, amely természetesen rendelkezik a hagyományos Spectrum BASIC összes lehetőségével. Megváltozott az utasítások bevitelének rendszere is, a 128K módban a parancsainkat nem egy billentyű megnyomásával visszük be, hanem karakterenként, hasonlóan a legtöbb számítógépes rendszerhez. Ez persze csak 128K üzemmódban érvényesül, ha a 48K üzemmódot választjuk, minden marad a megszokott módon. Az új BASIC is megtartotta azt a jó tulajdonságát, hogy szintaktikai ellenőrzést hajt végre: egy programsort csak akkor vihetünk be, ha szintaktikailag helyes. A 128K BASIC teljes képernyős szerkesztővel rendelkezik, ami megkönnyíti programjaink szerkesztését, javítását. A javítani kívánt sort nem keli EDIT-tel lehívni a képernyő alsó részébe.
A bővített memória ún. RAM-Disc módon használható ki, vagyis lehetőség van pl. arra, hogy egyidőben több BASIC program is a memóriában legyen, ezek közül bármelyik tetszés szerint áttölthető a BASIC területre.
A legjelentősebb újítás a hardware-ben történt: a 3 csatornás hanggenerátor beépítése, egy AY-3-0912 hanggenerátor IC segítségével. Ez a hanggenerátor BASIC-ből egyszerűen programozható a PLAY utasítás segítségével. Nem kívánjuk itt a PLAY utasítás lehetőségeit részletesen ismertetni, mivel a későbbiek során erre több energiát szeretnénk fordítani. Annyit azért mindenképpen érdeses megemlíteni, hogy a PLAY paranccsal egyúttal vezérelhető egy 16 csatornás MIDI-PORT (MIDI = Musical Instruments Digital Interface) is, amely a beépített RS-232 kimenettel egybeépítve foglal helyet a gépben (sajnos a MIDI nem teljes, mivel csak OUT-ra alkalmas, jel fogadására nem képes). Ez több számítógép új szolgáltatása, segítségével szintetizátorok, dobgépek, sequencerek összehangolására, vezérlésére nyelik lehetőség.
A 128K gép teljesen kompatibilis az ismert SINCLAIR termékekkel, így az Interface-I-gyel, II-vel, és a Microdrive-val is, de korántsem biztos, hogy az összes 48K-s géphez forgalomban lévő periféria működni fog vele. Itt elsősorban azok a készülékek jelenthetnek problémát, amelyek árnyék-ROM-okat is tartalmaznak, pl. a legtöbb Printer-Interface, vagy többek között a Multiface is. Ezért nem árt, ha használat előtt meggyőződünk a kompatibilitásról, és csak azután csatlakoztassuk a perifériát!
A normál 128K gép bekapcsoláskor egy menüt kínál, melyben választhatunk:
- automatikus töltés magnetofonról
- szalag-tesztelő
- egyszerű kalkulátor funkció
- 48K üzemmód, melyből RESET kivételével nem tudunk kilépni
- 128K BASIC
Ha a 128K BASIC-ben vagyunk, nincs szükségünk az EDIT funkcióra, így az egy újabb menüt kínál nekünk. A RENUMBER segítségével meglévő BASIC programunkat sorszánozhatjuk át. A PRINT segítségével kinyomtathatjuk az éppen a memóriában lévő BASIC programunkat az RS-232 porton keresztül, s végül találunk egy olyan funkciót is, amelynek segítségével megakadályozhatjuk, hogy a programszerkesztés az alsó két soron kívül is lehetséges legyen (pl. grafika megőrzése céljából). A gépbe egy továbbfejlesztett, 7K010 jelzésű ULA IC-t építettek; mint ahogy már említettük, helyet kapott egy RS-232 "C" port, és egy külső billentyűzet csatlakozó port is.
A 128K RAM memóriát 16 db egyenként 64 kbites (8 kbyte-os) memória IC-vel oldották meg. A vezérlő "agy" továbbra is a Z80 CPU, míg a ROM memóriát egy 32K-s EPROM testesíti meg. Elhelyeztek a gép elején egy 'KEYPAD' csatlakozó aljzatot is, helybe csatlakoztathatunk egy 'nemzetközi tízes' billentyűzetet. Ez megkönnyíti a dolgunkat, ha matematikai jellegű felhasználásra alkalmazzuk a gépet - pl. gépkönyvelésre -, főként, ha a felhasználó egyébként is ilyen billentyűzethez van hozzászokva. A 'KEYPAD' és 'MIDI' csatlakozó aljzat legfontosabb hibája, hogy az amerikai 'belső'-telefon szabvány szerint készült, ezzel helyzeti előnyt biztosítottak a géphez gyártott perifériáknak. Természetesen azonnal megindult a fordító kábelek gyártása is, de hazai viszonylatban a tény megkeseríti a felhasználó lehetőségeit, a legtöbb esetben a legcélszerűbb az eredeti csatlakozók kicserélése egy nemzetközi szabványnak megfelelőre.
SUPER 50K (COPY 86M)
- Ha a program nevében szereplő ASCII kód 32-nél kevesebb, vagy 127-nél nagyobb, úgy ezt a listában egy furcsa karakterrel jelöli, a zavaró hatás nem jelentkezik; - A kérdőjellel megjelölt "hibás" file kimenthető minden további nélkül (ez az előző leírásban hibásan szerepelt) - Fejléc nélküli program-ok tiltóadatai (kezdőcím, hossz) a fejléces programokhoz hasonlóan megjelennek, ha talál előtte a program CALL 1366 utasítást. - 'R' alkalmas az AUTOSTART megszüntetésére, ha a SKIP-pel egy BASIC file-ra állunk és abban autostart van; |
GÉPI KÓD TANFOLYAM |
Próbáljuk meg áttekinteni azt, amit már eddig hegismertünk. A gépi kód nem idegen fogalom szánunkra, tudjuk ni az a memória és a központi egység. Nem jelent problémát száremunkra a címek és a memóriatartalom összefüggéseinek értelmezése sem. Megismerkedtünk a byte-ok manipulációival és megtudtuk azt is, hogy hexadecimálisan egyszerűbb a programozás. Ismerjük a processzor regisztereit is, de azt még nem, hogy valójában hogyan értelmezi a Z80 a memóriában elhelyezett gépi kódú programot. Ebben a kiadványban erre kapunk választ.
A gépi kódú program futtatását a processzor utasításról-utasításra végzi el, vagyis egyszerre csak egy utasítással foglalkozik. Amikor a processzor az adatot a memóriából bekéri (ennek mechanizmusát is megismerjük a későbbiekben), azt megpróbálja azonosítani.
Ilyenkor a következő vizsgálatokat végzi el:
A működés a blokkséma szerint lényegében a következő: a processzorba érkező adat vizsgálatra kerül.
Tudjuk, hogy egy memóriahelyre (címre) összesen 256 féle adatot (0-255) írhatunk, viszont a Z80 ennél jóval több utasítást (709-et!) képes értelmezni és végrehajtani. Az adat - két kivételtől eltekintve - közvetlenül végrehajtható. E két kivétel teszi lehetővé, hogy további 453 utasítást használhassunk.
A két bűvös szám: 203 (hex. CB) és 237 (hex. ED). Amennyiben ezekkel a számokkal (táblázati eltolási konstansokkal) találkozik a processzor, akkor az utasítástáblázatát átlapozza és az utasítást a beérkező (második) kód alapján már nem a fő utasítástáblázatból, hanem a megfelelő altáblázatból fogja azonosítani.
Amikor az utasítást azonosította, el kell döntenie azt is, hogy az adott utasításszerkezet hány byte-ot foglal el (egymás után) a memóriában, mert ilyenkor ezeket az összetartozó kódokat is be kell olvasnia és csak ezután hajtja végre az utasítást. A továbbiakra nézve először is tisztázni kell, mit értünk az alatt, hogy az adott gépi kódú utasítás hány byte-os.
Az ugyanis nem lehetséges, hogy minden utasítás csak egy byte-ból álljon, hiszen ha konkrét adatot kezelünk, vagy pl. egy címre hivatkozunk, akkor az adott adatot vagy címértéket is el kell helyezni a gépi kódú utasításban (szerkezet), ez pedig befolyásolja az utasítás (byte-okban mért) hosszát. Mindezek figyelembe vételével megkülönböztetünk:
- 1 byte-os utasításokat
ilyen pl. a 0 (zérus) jelentése NOP utasítás
vagy pl. a 201 jelentése RET utasítás
- 2 byte-os utasításokat
pl. 6,23 jelentése LD B,23
- 3 byte-os utasításokat
pl. 1,64,156 jelentése LD BC,40000
- hosszabb utasításokat
pl. 237,75,10,64 jelentése LD BC,(16384)
Az utasítások értelmezésére majd a későbbiek során térünk ki, így azokkal külön most nem foglalkozunk.
Felvetődik viszont a kérdés, vajon hogyan jut be az adat a Z80-ba ?
Beszéltünk már a címsínről és az adatsínről is, de ezek mellett meg kell említenünk a vezérlővonalakat is. Egy gépi kódú program futtatásakor a rendszer teljes összhangban dolgozik.
Vegyünk mintapéldának egy egyszerű utasítást a 201-et (RET). Ez a gépi kódú RETURN, gépi kódú programjaink végén - néhány kivételtől eltekintve - mindig ezt kell elhelyezni. Ugyanis ezáltal tud visszatérni a program a BASIC interpreterbe.
Nézzük meg, hogyan történik az utasítás ("gépi kódú program") végrehajtása.
Helyezzük el tetszőleges RAM helyen a 201-et, pl. a 35000-es memóriacímen:
POKE 35000,201 (ENTER)
majd adjuk ki:
RANDOMIZE USR 35000 (ENTER)
és mit látunk? Semmit!
Pedig nagy dolog történt: lefuttattuk első "igen bonyolult" gépi kódú programunkat!
A processzor megvizsgálta a 201-et, RET-nek azonosította, amire is neki egy visszatérést kellett végrehajtania esetünkben a BASIC interpreterhez - és ezért kaptuk vissza az OK üzenetet, mindenféle extra dolog nélkül. Ám nem árt ha megismerjük a végrehajtás mechanizmusát:
Amikor kiadjuk a RANDOMIZE USR 35000 (BASIC) utasítást, az interpreter ezt úgy értelmezi, hogy egy gépi kódú program futtatása következik a 35000-es címtől. Ilyenkor a PC (programszámláló) regiszterbe automatikusan beíródik a hivatkozási cím (35000), valamint az SP (veremmutató) által mutatott címre (alaphelyzetben 65344), azaz a verembe (STACK) beíródik a BASIC interpreter belépési címe.
A processzornak adatra van szüksége, ez viszont a memóriából nem jut egyszerűen oda. Először is a címvonalon megcímződik a kijelölt rekesz, ami jelenleg PC tartalma (35000), majd az adott cím tartalmának (201) meg kell jelennie az adatsínen. Itt tölti be interface szerepét az ULA, ugyanis adatáramlás csak rajta keresztül történhet, ahol is a processzor vezérlővonalakkal határozza meg az adatáramlás helyét és irányát.
A processzor vezérlővonalai a következők:
RFSH* - memóriafrissítés
MI* - utasításlehívás a memóriából
HALT* - a gépi kódú HALT utasítás végrehajtásakor aktív
BUSRQ* - sínkérés (adat v. címsín) külső eszközről
BUSAK* - sínkérés nyugtázása
RESET* - A Z80A alaphelyzetbe állítása
WAIT* - memória időeltérésének kompenzálása
NMI* - nem maszkolható megszakításkérés
INT* - maszkolható megszakításkérés
RD* + MREQ* memória olvasás
WR* + MREQ* memória írás
RD* + IORQ* I/O olvasás
WR* + IORQ* I/O írás
A vezérlővonalak száma - mint láthatjuk - 13, ezek közül az utolsó négyet nem a processzor vezérli hanem a felhasználó.
Felvetődik a kérdés, vajon mely vezérlővonalak aktív állapota szükséges ahhoz, hogy adatbyte-unk megjelenjen a processzor utasításregiszterében?
Itt egy rövid kitérőt kell tennünk!
Az utasításregiszter a processzornak az a regisztere ahová a memóriából érkező utasításbyte közvetlenül beíródik. Amennyiben több-byte-os utasításról van szó, úgy az utasítás byte-jai az el nem érhető regiszterekben állnak össze.
Nos mindenekelőtt aktív állapotban kell lennie az MREQ vezérlővonalnak, hiszen hozzá szeretnénk férni a memóriához. Azután, hogy az adatbyte az adatvonalra kerüljön aktív állapotban kell lennie az RD vonalnak is. Ezen túlmenően - és ez nagyon fontos - az adat csak akkor lesz beolvasva az utasításregiszterbe, ha aktív állapotba kerül az MI vonal is. Az MI-nek nem minden esetben kell aktívnak lennie ha adatot töltünk a processzorba, csak akkor ha ez az adat utasítás! Ha utasításon belül történik pl. adatbekérés egy regiszterbe, akkor az MI-nek nem kell aktívnak lennie.
Amikor az adatunk (201) végre az utasításregiszterbe kerül, a processzor azonosítja azt és a főtáblázatból a RET funkciót párosítja hozzá. A végrehajtó egység ezt követően az utasítást végrehajtja, vagyis kikeresi az SP regiszter mutató állása szerint (65344) a veremből (STACK) azt a címet ahová vissza kell térnie és ez jelen esetben a BASIC interpreter.
TARTALOMJEGYZÉK:
1. Perifériatörténelem 3.oldal
2. Játékok 6.oldal
2.1 ASTERIX és egy POKE 7.oldal
2.2 The DAMBUSTERS 11.oldal
3. A SPECTRAFORTH RENDSZER 17.oldal
4. A LERM TC 6 másoló 22.oldal
5. PAINTBOX 23.oldal
6. SAVE Gerjedésgátló és egy POKE 26.oldal
7. Joystick vezérlés kiválasztása BASIC-ből 27.vldal
8. Programozástechnika 28.oldal
8.1 Többképernyős görgetés 28.oldal
8.2 FEUD 29.oldal
8.3 STALLONE COBRA POKE 29.oldal
9. Két számítógép egy dobozban (128 K) 30.o1da1
10. Gépi kód tanfolyam 31.oldal
TISZTELT OLVASÓ!
Nagyon sok levelet kaptunk, amelyben kiadványunkat újságnak, folyóiratnak tekintik. Talán meglepő a tartalmi változás, de kérjük tekintsék füzetünket annak ami. Tehát KÖNYV-nek! Nem tudunk és nem is akarunk megfelelni azoknak a követelményeknek, amit önök tőlünk - mint folyóirat kiadótól - elvárnának (ehhez sem a személyi, sem a tárgyi feltételek nem adottak). Mivel kiadványunk alkalmilag jelenik meg, ezért a továbbiakban nem tudunk ígérni olyan szolgáltatásokat, melyek egy rendszeresen, azaz periodikusan megjelenő magazin esetében természetesek és elvárhatóak (mint pl. TOP LISTA vagy rejtvények). Leszögezhetjük tehát, hogy a SPECTRUM-osoknak - ha lapjuk nincs is - szakirodalmuk viszont annál inkább és könyvecskéink csak hézagpótló szerepet kívánnak betölteni.
Eddigi pályázatainkat természetesen kiértékeltük és itt ragadjuk meg az alkalmat, hogy közöljük a megfejtéseket és nyerteseink nevét.
I. megfejtés: SAGA SYSTEMS LTD nyertes: Szántó Tamás Nyháza.
II . megfejtések: ULTIMATE, HEATHROW, BOMB JACK nyertes: Gréczi László Bpest.
Felelős kiadó: Rucz Lajos, Székely László K. F. eng. sz. 59406
10 000 - 708055 Pátria Nyomda
Felelős vezető: Vass Sándor vezérigazgató
Scan&OCR: gafz, 2006
ROBOTTECHNIKA sorozat
Sorozatszerkesztő: dr. Hajnal Miklós és Kardos Zsuzsa
A sorozat egyetemi vagy főiskolai végzettségű szakemberek számára nyújt átfogó és részletes ismereteket a robotok felépítéséről, működéséről, alkalmazásáról. A sorozathoz Vámos Tibor akadémikus írt előszót. Ebből néhány részlet: "Kell-e magyar nyelvű robotkönyv, és ha kell is, magyar szerzőktől származzék-e? ... A válasz igenlő mind a két kérdésre... Ez a vállalkozás, arra, hogy a magyar olvasót eligazítsa, dicséretre méltó és fontos. A sorozat végigmegy mindazokon a kérdéseken, amelyek a hazai várományos gyártót vagy felhasználót tájékoztatják, mintegy döntési segédletet ad azok számára, akik a robottechnika magyarországi feladataival találkoznak..."
dr. Siegler András ROBOTIRÁNYÍTÁSI MODELLEK
A kötet a robotmanipulátorok számítógépes irányítási algoritmusainak megalkotásához szükséges ismereteket foglalja össze. Bevezetőben a mozgástervezés információ forrásaival foglalkozik, majd áttekinti a robotosított rendszerek elemeit. Elemzi a különféle tipikus robot alkalmazásoknak a robot irányítórendszerével szemben támasztott követelményeit. A könyv az irányított jellemzők szerint haladva tekinti át a robotirányítás geometriai, kinematikai és dinamikai modelljeit-. Mindezek előkészítéséül összefoglalja a robotirányításhoz szükséges matematikai ismereteket. Hangsúlyosan foglalkozik a homogén koordináták és transzformációk használatával különös tekintettel a munkadarabok, munkadarabmozgások és a robotizületek matematikai leírására. Részletesen elemzi a robotkar-elemek (tagok, izületek) különböző típusainak matematikai modelljeit. Tárgyalja a robotkar orientációjának Euler szögekkel történő jellemzését és a megfogó mozgásának leírását nem-derékszögű koordinátarendszerekben. Esettanulmányokon keresztül mutatja be a munkatérben mozgó tárgyak geometriai leírását és az ezen alapuló robotprogramozást. Ezt követően példákat hoz a robotmanipulátorok geometriájának relatív homogén transzformációkkal történő jellemzésre és ugyancsak példákon át ismerteti az inverz feladat megoldását, vagyis az izületi változók meghatározását. A könyv következő része a sarokpontjaival megadott robot-mozgáspálya bejárásának irányításával foglalkozik, ezen belül elemzi a derékszögű- és az ízületi koordinátákban történő pályainterpolációt. A robotalkalmazások szempontjából igen fontos a pontossági követelmények és a pályabejárás hibáinak összefüggésével foglalkozó rész. A robotmanipulátorok újabb generációira gondolva tekinti át a könyv a robotkarok kinematikai és dinamikai modelljeit, a pályasebesség vezérlésének lehetőségeit. Törekszik a számítási szempontból optimális algoritmusok kiválasztására és az ismertetett modellekkel segíteni az olvasót a robotok hajtóegységeinek helyes megválasztásában.
Ára : 350, - Ft
Ráth György: Programvédelmi rendszerek IBM PC-re
A munka nagyon összeszedett, az IBM PC belső felépítésének és működésének mély ismeretéről tanúskodik. A szerző jó érzékkel választotta meg a témát. (Ismert a magyarországi szoftver-terjedés leginkább elterjedt módja.) A fejezetek színvonalasak, ugyanakkor olvasmányosak is. A könyv hasznos azoknak, akik a programvédelmek készítésével foglalkoznak, mivel nemcsak hasznos ötleteket kaphatnak munkájukhoz, de a könyv elolvasása igen sok buktatótól is megkímélheti őket. Márpedig programvédelemre nagy szükség van, hiszen a jó szoftver fejlesztőinek munkája nem térül meg, ha eladások helyett lopás útján terjednek a programok.
Megjelenik: 1987. november Ára: 65,- Ft
|
SINCLAIR SPECTRUM JÁTÉK ÉS PROGRAM IV.
A sorozat IV. kötetét már nagyon várják a felhasználók. A könyv felépítése az első három kötethez hasonló, a jól bevált POKE-ok és a tájékoztató jellegű minilexikon mellett most is játékleírások és felhasználói programok módszertani útmutatója alkotja a könyv törzsét. A könyv több érdekes, hosszabb-rövidebb játékidőt igénylő és szórakoztató játék
pl. ELITE, SCEPTRE OF BAGDAD, DAN DARE, HERBERT'S DUMMY RUN, NONAMED...
útmutatóját tartalmazza. A felhasználói programokról szóló rész két nagyobb fejezetre bontható. Az 'electronic spreedsheet'-ek fogalma-sokunk számára ismeretlen, pedig nem is sejtjük milyen hasznos szolgáltatásokat képes nyújtani.
A felhasználói programok másik nagy csoportja a szövegszerkesztők amelyek közül számos program látott már napvilágot a ZX Spectrum számítógépre is. Bár a témakör speciális jellegű, mégis a nagy érdeklődésre való tekintettel a kidolgozását szükségszerűnek láttuk, így a szövegszerkesztők általános felépítésén túlmenően megismerhetjük a TASWORD család verzióit, a WRITER, valamint. LAST WORD - újabb keletű - szövegszerkesztő programokat. A könyv ismét szerteágazó ismeretanyaggal támogatja a ZX Spectrum számítógép-tulajdonosok nagy táborát.
Irányár: 150,- Ft Megjelenik: 1987. december kb. 190 oldal.
Dr. Szabó Szilárd és Tóthné Mariássy Éva
100+4 játék és felhasználói programok a PLUS4- és C 16 gépekhez
A Kiadó nagysikerű "játékos" könyv sorozatának egyik tagja a fenti kiadvány. Eddig a Spectrum és a Commodore 64 tulajdonosoknak kedveztünk, de a tanulóifjúság körében nagyszámban elterjedt PLUS4, C 16, C 116 gépek, és a felhasználók igényei indokolták e kiadvány megjelentetését. A könyvben 100 játék leírás (Örökélet titka, trükkök) és 4 felhasználó program leírás van, hűen az eddig megjelent "játékos" könyveinkhez.
Ára: 161,- Ft, 194 oldal
|