ZX Spectrum
Bevezetés
Tartalom
1. A számítógép összeállítása
2. A billentyűzet
3. Számok, betűk; a számítógép mint kalkulátor
4. Néhány egyszerű parancs
5. Egyszerű programozás
6. A kazettás magnetofon használata
7. Színek
8. Hangok
9. Mi van belül?
1. A számítógép összeállítása
Ez a rövid ismertető füzet egyrészt azoknak készült, akik semmit vagy alig valamit tudnak a számítógépekről; másrészt viszont szoknak, akik találkoztak már számítógépekkel, de mielőtt egy készüléket bekapcsolnak, szeretnék elolvasni a róla készült ismertetőt. Ezen az ismertetőn kívül egy vastagabb, részletesebb könyv a BASIC programozást ismerteti. A kezdőknek azt ajánljuk, hogy előbb ezt a rövid ismertetőt olvassák el, értsék meg, és csak ezután térjenek át a BASIC programozási kézikönyvre.
A ZX Spectrum csomag a következőket tartalmazza:
Egy televízióra is szükség van - bár a ZX Spectrum enélkül is működik, de nyilván látni szeretnénk, hogy mit csinál. A televízióra nézve az UHF-sáv vétele a követelmény. A ZX Spectrum neve is jelzi, hogy színes jeleket ad ki, így ha színes televíziónk van, azon színes képet fogunk látni. Fekete-fehér televízió esetében a színek fekete, fehér és további hat különböző szürke árnyalat formájában jelennek meg; ettől eltekintve a fekete-fehér TV éppen úgy működik, mint egy színes.
A rendszer egyes elemeit az 1. ábra szerint kell csatlakoztatni.
1. ábra
Ha a televízión két, UHF és VHF feliratú antenna-bemenet van, az UHF-et kell használnunk.
Csatlakoztassuk a hálózatra, és kapcsoljuk be a televíziót! Mivel a ZX Spectrum a 36-os UHF csatornán működik, a TV-t erre a csatornára kell hangolni. Helyes hangolásnál a bekapcsolás után a televízió ernyőjén a 2. ábrán látható kép fog megjelenni.
A számítógép használatánál célszerű a televízió hangerejét teljesen visszavenni.
Ha a televízió folyamatos hangolású, akkor a beállítást addig kell végezni, míg a 2. ábrán látható kép meg nem jelenik. A legtöbb televízión programozható állomásváltó található, így egy egyébként nem használt programcsatornát állandóan a számítógépes használatra állíthatunk.
Olyan országokban, ahol a televíziós rendszer az angliai tól eltérő, külön erre a célra tervezett ZX Spectrum számítógép szükséges. Az angol UHF-sávban a 625 sorból és másodpercen ként 50 képből álló rendszert használják, míg a színes kódolásban a PAL rendszert alkalmazzák. A legtöbb nyugat-európai országban is (kivéve Franciaországot) ezt a rendszert használják, így ezekben az országokban a számítógép minden átalakítás nélkül működni fog. Az USA, Kanada és Japán TV-rendszere például a fentiektől eltérő, így itt a számítógép más változata szükséges. Magyarországon a színes kódolásban a a SECAM rendszert alkalmazzák, tehát csak az ún. kétnormás (PAL és SECAM) televíziókészülékeken kapunk színes képet.
A ZX Spectrum kikapcsolásakor a benne tárolt valamennyi információnk elvész. Programjaink és adataink későbbi használatra történő megőrzésének egyik módja felvételük egy kazettás magnetofonra. Kidolgozott programszalagok is vásárolhatók, amelyekről a programok a számítógépbe töltés után futtathatók. A két jack-dugóval ellátott vezetékkel egy szokásos kazettás magnetofon és a ZX Spectrum összekapcsolható. A 8. fejezetben erről bővebben lesz szó.
A számítógépet összeállítása után nyilván használni szeretnénk. A Bevezetés hátralévő fejezetei erre adnak útmutatást. Ha türelmetlenek voltunk, és lenyomtunk néhány billentyűt, a copyright felirat eltűnik a képernyőről. Ez is a helyes működés jele: ily módon a számítógépben nem tehetünk kárt. Bátran próbálgassuk a számítógépet! Ha megakadunk, ne feledjük, hogy mindig a kezdeti állapotot, a copyright feliratot állíthatjuk vissza, ha a "9V DC IN csatlakozót kihúzzuk, majd egy-két másodperc múlva visszadugjuk. De ez csak az utolsó megoldás legyen, hiszen így a számítógépben tárolt összes információnkat elveszítjük.
Figyelmeztetés. A ZX Spectrumot ne próbáljuk a ZX 16K RAM egységgel üzemeltetni, nem fog működni!
2. A billentyűzet
A Spectrum billentyűzete nagyon hasonlít a szokásos írógépekéhez. A betűk és a számok billentyűi ugyanazon a helyen találhatók, de a számítógépnél az egyes gombok több funkciójúak. Az írógépnél normális esetben kisbetűket kapunk, de ha egyidejűleg a váltó (shift) billentyűt is lenyomjuk, nagybetűket kapunk. Ugyanez a helyzet a Spectrumnál is.
A billentyűzet üzemmódjának azonosítására a képernyőn egy ellentétes színű (fekete háttérben fehér) betű jelenik meg, amely egy gomb megnyomására a képernyőn megjelenő következő karakter helyét jelöli. A képernyőn már látható karakterektől való megkülönböztetés érdekében ez a kurzornak nevezett betű villog.
A Spectrum bekapcsolása után a képernyőn először mindig a copyright üzenet jelenik meg. Ha ezután bármelyik gombot megnyomjuk, a gombra írt betű alatti szó (az úgynevezett kulcsszó) fog megjelenni. A számítógép ekkor ugyanis olyan parancsot vár, amely közli vele, hogy mit tegyen, és minden parancsnak egy kulcsszóval kell kezdődnie. Más számítógépekkel szemben a Spectrum lehetővé teszi, hogy ezeket a kulcsszókat egyetlen gomb lenyomásával bevigyük. Például ha a bekapcsolás után először a P gombot nyomjuk le, a PRINT kulcsszó jelenik meg a képernyőn. A P gombon található még a " szimbólum is. Ennek megjelenítéséhez egyszerre két gombot kell lenyomni: a SYMBOL SHIFT gombot a jobb alsó sarokban, és ezzel egyidejűleg a P gombot.
A kurzor L-re vált, mivel a számítógép most egy betűt vár. Írjuk be a "Hello" betűsort. Ha a képernyőn már van valamilyen szöveg, kapcsoljuk ki a számítógépet (a 9 V-os csatlakozó ki húzásával), majd indítsuk újra. A nagy H betű beírásánál használjuk a CAPS SHIFT gombot is! Általános szabály, hogy a gombok feletti fehér színű feliratok használatához a CAPS SHIFT, a gombokon lévő piros színű jelekhez a SYMBOL SHIFT gomb is szükséges.
A PRINT kulcsszóval kezdődő parancs azt közli a számító géppel, hogy az idézőjelek közé írt szöveget jelenítse meg a képernyőn. A parancs végrehajtásához az ENTER gombot kell megnyomni. ha ez megtörtént, a képernyőn a
Hello
szó fog megjelenni és még néhány karakter. (A villogó kérdőjel hibát jelez. Ekkor indítsuk újra a gépet, és próbálkozzunk újra!) Az alul megjelenő üzenet a számítógép visszajelzése, hogy minden rendben történt. Ez az üzenet a programok futásánál fontos, most nem foglalkozunk vele.
Jegyezzük meg jól a következőket is: az O betűt és a 0 számjegyet különböző karakterekkel jelöljük, ezt sohase felejtsük el. A 0 számjegy mindig áthúzott. A számítógép az O-t mindig betűként értelmezi, tehát figyeljünk e két gomb lenyomásánál. Ehhez hasonlóan (eltérően a legtöbb írógéptől) az 1-es szám és a kis l betű is különbözik egymástól, ezeket nem, szabad fölcserélni.
Mivel a billentyűzet üzemmódjait lényeges jól megértenünk, még egyszer foglaljuk össze, hogy mi is történt.
A villogó L betűt kurzornak nevezzük. Ha a képernyőn bárhol megjelenik, azt jelzi, hogy a számítógép azt fogja kiírni, amit ezután beírunk. A kurzor nem mindig L; ha kikapcsoljuk, majd újra bekapcsoljuk a számítógépet és az ENTER gombot megnyomjuk, a copyright üzenetet a K kurzor fogja fölváltani. A kurzor betűje azt jelzi, hogyan fogja értelmezni a számítógép a következő billentyű megnyomását. Egy sor elején a villogó K a kulcsszót (Keyword) jelenti. (A copyright felirat és a számítógép üzenetei szintén villogó K-nak számítanak.)
A kulcsszó a gép speciális szavainak egyike, az utasítássorok elején jelenik meg, és azt közli a számítógéppel, hogy a parancs mire fogja majd használni. Mivel a számítógép a sor elején kulcsszót vár, ha mondjuk a P gombot nyomjuk le, a számítógép ezt nem P betűként, hanem PRINT kulcsszóként értelmezi; erre a számítógép a kurzor K-ra állításával figyelmeztet bennünket. Ha az első kulcsszó már megvan, továbbira már nincs szükség, így amit ezután beírunk, már betűként értelmezi a számítógép. Ennek jelzésére a számítógép a kurzort L-re változtatja, ami a betű (Letter) megfelelője.
Ezeket a különböző állapotokat üzemmódnak is nevezik, így beszélhetünk kulcsszó (vagy K), és betű (vagy L) üzemmódról.
Ha folyamatosan több nagybetűt akarunk beírni, és a CAPS SHIFT gombot nem akarjuk állandóan lenyomva tartani, elsőként a CAPS LOCK funkciót kell aktivizálni (a CAPS SHIFT és a 2-es gomb egyidejű megnyomása). Ekkor az L kurzor helyett a villogó C (Capitals - nagybetű) fog megjelenni. A visszatérést a kisbetűkre (ismét L kurzor) a CAPS LOCK újbóli megnyomásával érhetjük el. (Ha a CAPS LOCK gombot kulcsszó üzemmódban nyomjuk meg, hatása nem azonnal jelentkezik, hanem csak egy kulcsszó bevitele után.)
A billentyűzet a kulcsszavak, a betűk, a számok és a különböző programozási és tudományos kifejezések mellett nyolc grafikus karaktert is tartalmaz. Ezek az 1...8 számokhoz tartozó gombokon helyezkednek el, és a képernyőn való megjelenítésük hasonló módon történik, mint a betűké és a számoké. Ehhez azonban először át kell térni a grafikus üzemmódra. Ezt a CAPS SHIFT, és a 9-es gomb egyidejű megnyomásával érjük el, és ekkor a kurzor G lesz. L üzemmódba a 9-es gomb megnyomásával térhetünk vissza.
Még egy üzemmód létezik, amelyre a CAPS SHIFT, és a SYMBOL SHIFT egyidejű megnyomásával térhetünk át. Neve kiterjesztett üzemmód, a kurzor E (Extended). Ez a tudományos és a programozási funkciók használatát teszi lehetővé. A két SHIFT gomb újbóli megnyomásával L üzemmódba térhetünk vissza.
Hibás gomb megnyomása még a gyakorlott programozóknál is előfordulhat. A javításra eddig megismert egyetlen módszer a gép újraindítása volt. Ha csak egyetlen parancsot adtunk a számítógépnek, ez megfelelő eljárás, de sok információ bevitele után már nagyon kényelmetlen. Szerencsére a hibák kijavítására a DELETE (törlés) gombot is használhatjuk. Például a
PRINT "Hello"
egyszerű parancsban nem sok hibázási lehetőség van, de azért beírása eltéveszthető. Tegyük fel, hogy a nyitó idézőjel beírásánál elfeledkeztünk a SYMBOL SHIFT gombról. A képernyőn ekkor ez áll:
PRINT PHello"
A számítógép nem ismerheti fel a PRINT utáni szöveget: az idézőjel hiánya azt jelzi a gépnek, hogy egy számot várjon, de ehelyett egy betűt talál. Az ellentmondást a sor végén egy villogó ? jelzi.
Szerencsére nem kell az egészet újra beírni. A billentyűzet legfelső sorában négy, különböző irányba mutató nyilat és a DELETE feliratot találjuk. E gombok használatához egyidejűleg a CAPS SHIFT gombot is meg kell nyomni. Az oldalra mutató nyilak a kurzort jobbra vagy balra mozgatják, míg a DELETE, gomb a kurzor előtti karaktert vagy kulcsszót törli.
A fenti hibás sor javítására addig használjuk a jelet (CAPS SHIFT, és 5 egyidejűleg), míg a kurzor a hibásan beirt P betű utáni helyre nem kerül. (Ha a gombokat néhány másodpercig lenyomva tartjuk, a működés folyamatos lesz, és halk kopogó hangot is hallani fogunk. Általában igaz, hogy ha egy gombot kb. 1 másodpercnél tovább lenyomva tartunk, funkciója automatikusan ismétlődik.) Ezután a DELETE megnyomása (CAPS SHIFT és 0) kitörli a hibás P betűt, és az idézőjel beírásával (SYMBOL SHIFT és P) létrehozható a helyes parancs; a javítás a szöveg többi részét nem írja át. Gyakorlásképp próbáljuk ki a kurzort jobbra mozgató gombot is! Bármely beírási hiba a fenti módon javítható; azonban ne feledkezzünk meg arról, hogy a hibás részek nem írhatók felül, hanem előbb törölni kell.
Ezek után az ENTER gomb megnyomására a számítógép a kép ernyő tetejére írja üzenetünket (ill. ha ott már van valami, akkor az alá.)
A billentyűzet részletes leírása a BASIC programozási kézikönyv 1. fejezetében található.
3. Számok, betűk; a számítógép mint kalkulátor
Az előzőekben megismertük, hogyan lehet a PRINT segítségével betűket és grafikus karaktereket kiíratni a képernyőre. Láttuk azt is, hogy az ENTER gomb megnyomásával lehet a beírt parancsokat végrehajtatni. A következőkben a parancsok használatánál nem hivatkozunk mindig az ENTER használatára, hanem magától értetődőnek vesszük, hogy ezt a gombot az utasítássor végén automatikusan meg kell nyomni.
A számítógép a számokat a betűknél egyszerűbben kezeli. Az előző részben már érintettük ezt a kérdést, amikor arról volt szó, hogy a számítógép a PRINT után (ha idézőjelet nem teszünk) számot vár.
Így a
PRINT 2
hatására a 2-es szám fog jelenni a képernyőn. Betűket és számokat egyszerre is kiírathatunk:
PRINT 2,"ABC"
Figyeljük meg, hogy a képernyőn a 2 és az ABC között bizonyos távolság van. Írjuk be:
PRINT 2 "ABC"
Ha a PRINT utáni ún. listaelemek (vagy kiíratási tételek) között vesszőt használunk, a kijelzésnél a vessző utáni listaelem a képernyőn a 16. betűpozíción fog kezdődni; a pontosvessző esetén a listaelemek között nem marad üres hely; míg ha semmit sem teszünk a tagok közé, az hibás.
A PRINT utasítás a matematikai műveletek elvégzését is lehetővé teszi, azaz a ZX Spectrum kalkulátorként is használható. Például:
PRINT 2+2
Az eredmény a képernyő tetején jelenik meg. Az előbbit vessük össze ezzel:
PRINT "2+2"
Ezeket hasznosan kombinálhatjuk:
PRINT "2+2=";2+2
Más típusú műveleteket is elvégezhetünk:
PRINT 3-2
PRINT 4/5
PRINT 12*2
A * (csillag karakter) a szorzás jele (az X helyett, mert ez az x betűvel összecserélhető lenne); a / pedig az osztás jele.
Próbáljunk ki különböző műveleteket: használjunk negatív ill. nem egész számokat is (tizedespont).
Ha az egymás utáni műveletek során a képernyő felső 22 sorát betöltöttük, érdekes dolog fog történni: a következő kiírási műveletnél minden egy sorral följebb kerül, és a legfelső sor eltűnik. Ezt scrolling-nak (felfelé léptetés) ne vezzük.
A számítások végrehajtása nem mindig a várt sorrendben fog történni. Például írjuk be:
PRINT 2+3*5
Azt várnánk, hogy a számítógép 2-höz hozzáad 3-at, majd e részeredményt szorozza 5-tel, ami végül 25-öt adna eredményül. Ám a szorzási - és ugyanígy az osztási - műveleteket az összeadások és a kivonások előtt végzi el a gép, így a 2+3*5 műveletsor jelentése: 3-at szorozd 5-tel, az eredményhez (15) adj 2-öt, így a végeredmény 17 lesz, ami a képernyőn meg is fog jelenni.
Mivel a szorzásokat és az osztásokat az összeadások és a kivonások előtt hajtja végre a számítógép, azt mondhatjuk, hogy az előbbi két művelet nagyobb prioritású. A szorzás és az osztás egymáshoz viszonyítva azonos prioritású, így ezeket a műveleteket a gép sorban, balról jobbra haladva hajtja végre. Ha ez kész, maradnak az összeadások és kivonások, amelyek újra azonos prioritásúak, így ugyancsak balról jobbra haladva kerülnek sorra.
Nézzük meg, hogy a következő műveletsort hogyan értelmezi a számítógép:
PRINT 20-2*9+4/2*3
20-2*9+4/2*3
20-18+4/2*3
20-18+2*3
20-18+6
2+6
8
(Először a szorzások és osztások balról jobbra haladva ezután az összeadások és kivonások)
Most már csak azt kell tudni, hogy két művelet közül me lyik a nagyobb prioritású. A számítógép ezt a műveletekhez rendelt, a prioritást jelző 1 és 16 közé eső szám alapján dönti el. A szorzás és az osztás prioritása 8, az összeadás és a kivonás prioritása 6. Ezt a kötött számítási rendet csak zárójelek használatával változtathatjuk meg: először mindig a zárójelbe tett műveletet hajtja végre a gép, majd ennek eredményét számként kezeli. Például:
PRINT 3*2+2
az eredmény 6+2=8 lesz, de
PRINT 3*(2+2)
az eredmény 3*4=12 lesz.
Időnként hasznos ily módon kifejezéseket megadni a számítógépnek, ugyanis valahányszor számot vár, helyette ez is megadható, a gép majd elvégzi a műveleteket. E szabály alól csak nagyon kevés kivétel van, ezeket majd meg fogjuk említeni.
A számokat megadhatjuk tizedes törtként (a tizedespontot a pont képviseli), vagy a zsebkalkulátoroknál szokásos normál alakkal. Utóbbinál egy szám után az exponenciális rész következik, amely az e betűből, esetleg a mínusz jelből és egy számból áll. Az exponenciális rész száma azt adja meg, hogy valójában hány hellyel van jobbra (vagy negatív számnál balra) a tizedespont. Például:
2.34e0 = 2.34
2.34e3 = 2340
2.34e-2 = 0.0234
(Ezeket is próbáljuk ki a számítógépen!) Ez az egyik olyan eset, amikor egy szám nem helyettesíthető kifejezéssel, így a következő nem írható:
(1.34+1)e(6/2)
Olyan kifejezéseket is használhatunk, amelyekben az értékek nem számok, hanem betűsorok. Ezek legegyszerűbb formáját már láttuk, a betűsorokat idézőjelek közé kellett tenni. Ez hasonló az aritmetikai kifejezések legegyszerűbb alakjához, amelyben mindössze egy szám szerepel. Nem láttuk még a + jel használatát betűsoroknál (a -, a * vagy a / jel itt nem szerepelhet, így prioritási probléma nincs). Betűsorok összeadásánál csak egymás után kell írni ezeket, például:
PRINT "Spectrum com"+"puter"
Egyetlen kifejezésben tetszőleges számú karaktersorozatot összeadhatunk, és zárójeleket is használhatunk.
4. Néhány egyszerű parancs
A számítógép memóriájában többféle dolog tárolható. Láttuk, hogy a PRINT parancs betűk, számok ill. műveletek végeredményének képernyőn való megjelenítésére szolgál.
Ha azt akarjuk, hogy a számítógép számot vagy egy betűsort megjegyezzen, az erre a célra szolgáló memóriában egy részt ki kell jelölni. A legtöbb zsebszámológépen a számok tarolására a "memory" nevű gomb szolgál. Ennél a számítógépnél sokkal több rekesz áll rendelkezésre, és ezek mindegyikének nevet is adhatunk. Példaképpen tegyük fel, hogy életkorunkat akarjuk tárolni. A LET parancsot kell használnunk (a LET az L betű gombján lévő kulcsszó). Legyen az életkor (age) 34 év:
LET age=34
A LET parancs hatására a számítógép a memória egy bizonyos részét "age" névvel jelöli, és ebben a 34-es számot tárolja. A tárolt információ visszanyerésére írjuk be:
PRINT age
és a 34 újra megjelenik. Az "age" nevű rekesz tartalmának megváltoztatása nagyon egyszerű. Írjuk be a következőt:
LET age=56
majd
PRINT age
és az 56 fog megjelenni a képernyőn. Az "age" a változóra példa, az elnevezés azért indokolt, mert ezek értékei változhatnak. Kombináltan üzeneteket és a változók értékeit is kiírathatjuk a képernyőre. Például:
PRINT "Eletkorod ";age
A számítógép a nevekkel ellátott számok tárolásán túl sokkal hasznosabb dolgokra is használható, így például betűsorozatokat (általános néven string vagy karaktersorozat) is tárolhat. A numerikus és a stringváltozók megkülönböztetésére a dollár jelet használjuk a változónév végén. Például az
"Eletkorod "
karaktersorozat tárolásánál ezt elnevezhetjük a$-nak (a stringváltozók nevei a $ előtt csak egy betűből állhatnak). Tehát írjuk be:
LET a$="Eletkorod "
majd ezt
PRINT a$
és az előbbi betűsort kapjuk vissza a képernyőn.
Ha a számítógépet a fejezet eleje óta még nem kapcsoltuk ki, nézzük meg a következő parancs hatását a képernyőn
PRINT a$;age
A számítógép memóriájában a LET parancson kívül más módon is elhelyezhetünk információt. Ilyen például az INPUT utasítás legegyszerűbb alakja, amely a számítógéppel azt közli, hogy a billentyűzetről bizonyos információt várjon. Például ha az
INPUT eletkor
után megnyomjuk az ENTER gombot, a villogó L kurzor jelenik meg a képernyőn, ami azt jelzi, hogy a számítógép információt vár tőlünk. Írjuk be az életkorunkat, és nyomjuk meg az ENTER gombot. Bár látszólag semmi sem történt, de a változó megkapta az általunk beírt értékét. Megbizonyosodhatunk erről, ha a következőt írjuk be:
PRINT eletkor
A fentieket használjuk kombináltan egy parancssorozatban:
LET b$="Hany eves vagy?"
LET a$="Eletkorod "
INPUT (b$);eletkor: PRINT a$;eletkor
Figyeljük meg, hogy az utolsó sor két parancsból áll, amelyeket kettőspont választ el. Az
INPUT (b$);eletkor
az alábbi megadás egy másik alakja
INPUT "Hany eves vagy? ";eletkor
5. Egyszerű programozás
Az előzőekben a számítógépnek közvetlenül a billentyűzetről mondtuk meg, hogy mit hajtson végre. Bár a parancsok kombinált alkalmazására is lehetőségtank volt, mégis csak kevés feladatra megfelelő ez a módszer. A számítógépek egyik legfontosabb tulajdonsága, hogy programozhatóak. Ez azt jelenti, hogy utasítássorozatokat adhatunk be, amelyek hatására egymás után megfelelő műveleteket hajt végre.
Minden számítógép rendelkezik egy olyan nyelvvel, amellyel kommunikálni lehet vele. Néhány nyelv nagyon egyszerű - ezeket a számítógép könnyen megérti. Sajnos a számítógép számára egyszerű nyelvek a felhasználók számára bonyolultak. Bizonyos mértékig ennek fordítottja is igaz: a számunkra, programozók számára elegendően egyszerű nyelvek viszont a számítógép számára bonyolultak, és fordításukra, értelmezésükre is szükség lehet.
A ZX Spectrum a BASIC magasszintű programozási nyelvet használja. A BASIC (Beginners All-purpose Symbolic Instruction Code - kezdők általános célú szimbolikus utasításkódja) nyelvet a Dartmouth College-ben (New Hampshire, USA) 1964-ben fejlesztették ki. Kiterjedten használják a személyi számítógépeknél, az egyes változatai nagyon hasonlítanak egymásra, de kisebb eltérések is vannak közöttük. Ezért van az, hogy ebben a füzetben és a ZX Spectrum BASIC programozási kézikönyvben leírtak kifejezetten csak erre a gépre érvényesek. A ZX Spectrum BASIC azonban nem nagyon tér el a megegyezés szerinti BASIC-től, így általában bármely BASIC nyelven írt program nem túl nagy munkával adaptálható a ZX Spectrumra. Eltérően egyéb BASIC változatoktól, a ZX Spectrum BASIC a változók értékadásánál nem engedi meg a LET utasítás elhagyását.
A számítógépben tárolható utasítások száma korlátozott. A ZX Spectrum a határ elérését búgó hanggal jelzi.
A BASIC nyelvű programozásnál a számítógéppel tudatni kell az utasítások végrehajtási sorrendjét, ezért minden egyes programsor egy sorszámmal kezdődik. A számozást érdemes 10-zel kezdeni, és minden új sornál 10-zel növelni. Ez a módszer lehetővé teszi kifelejtett sorok beillesztését ill. a program egyszerű módosítását.
Nézzünk egy egyszerű programot: az utasítássorozat legyen az előző fejezet végén megadott. Ha azt ott ismételten végre akartuk hajtani, mindig újra be kellett írni. A program éppen ezen a nehézségen segít.
Írjuk be a következő programot, a sorok végén mindig szerepeljen az ENTER:
10 LET b$="Hany eves vagy?"
20 LET a$="Eletkorod "
30 INPUT (b$);eletkor
40 PRINT a$;eletkor
Betűközt (SPACE) nem kell beírnunk, ez alól csak az idézőjelek közé tett szöveg a kivétel.
Amíg a számítógépnek nem adunk indítóparancsot, semmi sem fog történni. A program végrehajtása (futtatása) a RUN (az R gombon lévő kulcsszó) hatására történik. Adjuk be ezt a parancsot, és nézzük meg mi történik.
Az egyes sorok bevitelénél egy jobbra mutató nyilat is megfigyelhetünk. Ez mindig az utolsóként bevitt sort jelöli. Ha a programot újra végig szeretnénk nézni, nyomjuk meg az ENTER (vagy a LIST) gombot. A RUN parancs ismételt alkalma zásával a program tetszőlegesen sokszor újra futtatható.
Ha a programra már nincs szükség, a NEW paranccsal törölhető a memóriából, helyet adva egy új program számára.
Nyomjuk meg a NEW majd a LIST gombot, és nézzük meg mi történik!
Összefoglalva:
Ha egy utasítás előtt szám is áll, ez azt jelzi a számítógépnek, hogy nem egy parancsról, hanem egy programsorról van szó. A számítógép ezt nem hajtja azonnal végre, hanem tárolja.
A ZX Spectrum a bevitt programsorokat a képernyőre írja (listázza); az utolsóként bevitt sort a > jellel jelöli.
A programsorok végrehajtásához a RUN parancsot kell használnunk.
Ha csak az ENTER gombot nyomjuk meg, újra a programlistát kapjuk vissza.
Képzeljünk most el egy másik egyszerű programot. Ebben egy kis matematika is lesz: az 1-től 10-ig terjedő számok négyzetét (önmagukkal vett szorzatát) fogja kijelezni. Az 1-től 10 -ig terjedő számok előállításához a BASIC nyelvű programozás egy újabb fogását ismerhetjük meg. Ennek a módszernek a segítségével a számítógép számlálni fog. Korábban már láttuk, hogy számok úgy tárolhatók a számítógép memóriájában, hogy egy "nevet" adunk nekik, azaz egy változónak értéket adunk. Az x változó induljon az 1 -es értékről, majd egyesével növelje ezt 10-ig. Ezt a FOR...TO...STEP utasítással hajthatjuk végre.
E program beviteléhez nyomjuk meg a NEW gombot (ez az előző programot törli), majd írjuk be a következőket:
10 FOR x=1 TO 10 STEP 1
(A STEP 1 az egyesével való lépésnél akár el is hagyható.)
A következő sor azt közli a számítógéppel, hogy az x változóval mit kell tenni:
20 PRINT x,x*x
Végül egy olyan sor kell, amely az x követkelő értékét veszi:
30 NEXT x
Ha a számítógép eléri ezt az utasítást, visszaugrik a 10-es sorra, és megismétli a műveleteket. Ha az x 10-nél nagyobb, lesz, a számítógép a program következő sorára (azaz a 40-es sorra) lép.
A program a képernyőn most a következőképpen néz ki:
A program teljessé tételéhez tehát még egy sort írhatunk, amely azt közli a számítógéppel, hogy a program az X =10 esetben befejeződik:
40 STOP
Ha a programot most a RUN paranccsal elindítjuk, két oszlop fog megjelenni a képernyőn: az elsőben az x értékei szerepelnek, a másodikban az x*x, azaz az x négyzete.
Ezeknek az oszlopoknak címet is adhatunk, ha a program elejére illesztjük a következő sort:
5 PRINT "x","x*x"
Figyeljük meg, hogy bár ezt a sort a többi programsor után írtuk be, mivel sorszáma kisebb a többinél, a számítógép automatikusan a megfelelő helyre fogja tenni.
Próbáljunk meg más matematikai függvényeket használó programokat írni! Ha használatukkal bármi problémánk van, a BASIC programozási kézikönyv megfelelő helyén eligazítást találunk.
6. A kazettás magnetofon használata
Nagyon fárasztó lenne, ha minden egyes alkalommal, amikor egy programra szükségünk van, azt mindig be kellene írnunk. A ZX Spectrumnál lehetőség van arra, hogy a programokat szokásos otthoni kazettás magnetofonnal kazettán rögzítsük. Ha a számítógép memóriájában van egy program, azt az alábbiakban leírt eljárással vihetjük át a kazettára. (A kazettán tárolt program bármikor visszatölthető a számítógép memóriájába.)
Szinte bármilyen kazettás magnetofon megfelelő: a számítógép szempontjából az olcsó, hordozható mono kazettás magnetofon éppen olyan jó, mint a drága sztereo készülék, sőt használata talán még egyszerűbb is. Nagyon hasznos, ha a megnetofonon van szalagszámláló.
A kazettás magnetofon mikrofon bemenetét ill. fülhallgató kimenetét fogjuk felhasználni (ha ilyen nincs, próbálkozzunk a külső hangszóró kimenettel). Ezeknél 3,5 mm-es jack-aljzatnak kell lenni, hogy illeszkedjenek a számítógéphez mellékelt vezetékhez.
Bármilyen kazettát használtatunk, de legelőnyösebb a kiszajú. Ha megvan a megnetofon, a mellékelt vezetékpárral kössük össze a ZX Spectrummal: a vezeték egyik ága a magnetofon mikrofon bemeneti csatlakozóját köti össze a számítógép hátoldalán lévő "MIC" feliratú csatlakozóval, míg a másik a magnetofon fülhallgató kimeneti csatlakozóját a számítógép "EAR" feliratú csatlakozójával. (Helytelen csatlakoztatással a számítógépben nem okozhatunk kárt.)
Ha a SAVE paranccsal programot viszünk kazettára, az "EAR" vezeték egyik csatlakozóját húzzuk ki; ellenkező esetben a kazettán csak egy állandó erősségű hang rögződik, ami számunkra értéktelen. Ennek oka az, hogy a "MIC" csatlakozón érkező jelet a kazettás magnetofon felerősíti, és az "EAR" csatlakozóra is kijuttatja. Ha ez visszajut a számítógépbe, az így záródó hurokban oszcilláció indul meg, ami a felvenni kívánt jelet elnyomja.
Írjunk a számítógépbe egy programot, például az előző fejezetben leírt négyzetre emelő (squares) programot, majd írjuk be:
SAVE "Squares"
A Squares egy név, amelyet a program címkéjeként használunk a kazettán történő tárolásnál. A név maximálisan tíz karakterből állhat, benne betűk és számok szerepelhetnek.
A számítógép ekkor egy üzenetet ír ki:
Start tape then press any key (Indítsd a magnetofont, majd nyomd meg bármelyik gombot!)
Először csak nézzük meg, hogy a képernyőn mi történik: ne indítsuk el a magnetofont, csak nyomjuk meg a ZX Spectrum bármelyik gombját. A képernyő szegélyén víz szintes csíkokat fogunk látni:
A fentiek megfigyelésére indítsuk újra a számítógépet!
Az információ elmentése blokkokban történik, mindkét blokk bevezető szakasszal kezdődik (piros és világoskék csíkok), míg a tényleges információ a kék és sárga csíkoknak felel meg. Az első blokk a program bevezető része, amely a program nevét és néhány egyéb információt tartalmaz, míg a második rész magát a programot és a változókat foglalja magába. A két blokk közötti rész szünet.
Ezek után valóban vegyük fel a jeleket a kazettára!
A helyes működés úgy ellenőrizhető, hogy a szalagra felvett jeleket összehasonlítjuk a számítógépben lévő programmal a VERIFY parancs felhasználásával:
A képernyő szegélyén piros és világoskék színek váltakoznak mindaddig, míg a felvett részhez nem érünk. Ekkor ugyanazokat a mintákat látjuk, mint a felvételnél. A középen lévő egy másodperces üres résznél a képernyőn a Program Squares, felirat jelenik meg - ha a számítógép a szalagon keresi az általunk megadott nevű blokkot, a közben talált részek neveit kiírja. Ha a színes minták a korábban leírtak szerint tűnnek fel, és a számítógép "0 OK" üzenettel áll le, a program biztonságosan megvan a szalagon, így a következő, a program felvételének ellenőrzése c. részt kihagyhatjuk. Ha nem így van, valami hiba történt, nézzük meg, hogy hol.
A program felvételének ellenőrzése
Megjelent-e a név?
Ha nem, akkor vagy a felvétel nem volt jó, vagy a visszaolvasás: meg kell állapítani, hogy melyik. A felvétel ellenőrzésére tekercseljük vissza a szalagot a felvétel elejére, és játsszuk le a magnetofon saját hangszóróján (ehhez esetleg ki kell húzni a fülhallgatóba menő vezetéket). A piros és a világoskék bevezető szakaszok tiszta, állandó magas hangot adnak; a kék és a sárga információrész már kellemetlenebb, morze-jelekhez hasonlót. Mindkét rész elég hangos - teljes hangerőnél a beszélgetést zavarhatják.
Ha ezeket a zajokat nem halljuk, a program valószínűleg rosszul lett fölvéve. Ellenőrizzük a vezetékek helyes csatlakoztatását! Győződjünk meg a "MIC" vezeték helyes érintkezéséről, és nézzük meg, hogy az "EAR" vezeték ki van-e húzva! Előfordulhat néhány magnetofonnál, hogy a jack-dugó teljes bedugásnál nem ad érintkezést. Próbáljuk meg egy kicsit kijjebb húzni, esetleg érezni fogjuk, hogy így természetesebb pozícióba kerül. Azt is ellenőrizzük, hogy nem a szalag bevezető műanyag részére próbáltunk-e felvenni. Mindezek után kíséreljük meg a felvételt újra!
Ha a fent leírt hangokat hallottuk, a felvétel rendben megtörtént, és a visszajátszással volt a probléma. Ellenőrizzük a csatlakozást valamint a hangerőt! Ha ezt túl alacsony szintre állítottuk, a számítógép nem fogja "hallani" a jeleket, és a képernyőn a megfelelő mintákat sem láthatjuk; ha túl hangosra állítottuk, a jelek torzulhatnak. Az elfogadható hangerő tartománya elég nagy, néhány kísérlettel beállítható.
A következő eset az, amikor a számítógép megtalálta a programot, és kiírta a nevét, de mégis hiba van. Ekkor a következő lehetőségek vannak:
Tegyük fel, hogy a programot sikeresen felvettük, és az ellenőrzés is helyes eredményt adott. A visszatöltés hasonlóan történik, mint az ellenőrzés, csak a
VERIFY "Squares"
helyett a következőt kell beírni
LOAD "Squares"
A LOAD parancs a J gombon található. Mivel az ellenőrzés helyes volt, a betöltéssel semmi probléma sem lehet. A LOAD, mielőtt a szalagról betöltené az új programot, a régi programot (és a változókat) törli.
A betöltés után a program a RUN paranccsal futtatható.
Előzetesen kazettára vett programokat is vásárolhatunk. Csak olyan programok használhatók, amelyeket kifejezetten a ZX Spectrum számára dolgoztak ki: más típusú számítógépek eltérő programfelvételi módszereket használnak, tehát a szalagok nem csereszabatosak.
Ha a szalag azonos oldalára egynél több program van fölvéve, mindegyiknek külön neve van. A LOAD parancs kiadásánál megválaszthatjuk, hogy melyik programot akarjuk betölteni: például ha a "helikopter" nevűt, írjuk be a következőt:
LOAD "helikopter"
A LOAD "" jelentése: töltsd be az első sorrakerülő programot. Ez akkor hasznos, ha a program nevét nem ismerjük vagy elfelejtettük.
7. Színek
A ZX Spectrum egyik előnyös tulajdonsága, hogy a TV képernyőjén színes képeket is megjeleníthet. A látható kép két részből áll. A külső terület neve BORDER, míg a központi területé PAPER. E részek színeit tetszés szerint megválaszthatjuk, akár közvetlenül a billentyűzetről, akár a programban.
A ZX Spectrum nyolc színt kezel, ezekhez a 0 és a 7 közötti számok vannak hozzárendelve. A színek sorrendje véletlenszerűnek tűnhet, valójában azonban a szürke csökkenő árnyalatai szerint vannak rendezve (fekete-fehér TV). A színek számozása a következő (ezek a megfelelő számú billentyű fölött is fel vannak tüntetve):
0 - BALCK | fekete |
1 - BLUE | kék |
2 - RED | piros |
3 - MAGENTA | bíbor |
4 - GREEN | zöld |
5 - CYAN | világoskék |
6 - YELLOW | sárga |
7 - WHITE | fehér |
A számítógép bekapcsolásakor a rendszer fekete-fehérben működik, vagyis a BORDER és a PAPER alapértéke 7, azaz fehér. A képernyőn megjelenő karakterek színét az INK utasítás határozza meg. Ez alaphelyzetben fekete (azaz értéke 0) . Kezdetben a képernyő színeit a számítógép állítja be, ezek azonban megváltoztathatók, például:
BORDER 2
Ha az ENTER gombot is megnyomjuk, a szegély fehérről pirosra változik. Ez a terület magába foglalja a parancsok és programsorok beírására szolgáló alsó részt is. Adjuk meg a többi értéket is, és nézzük meg a színek változását!
Ezután változtassuk meg a képernyő központi területének színét, például:
PAPER 5
A PAPER utasítás a kiterjesztett üzemmódba tartozik, amelybe a CAPS SHIFT és a SYMBOL SHIFT gombok egyidejű lenyomásával juthatunk. Ebben az üzemmódban a PAPER: SHIFT és C. Ha az ENTER gombot kétszer megnyomjuk, a képernyő középső területe világoskékre változik: Az első ENTER törli a számítógépben előzőleg tárolt PAPER utasítást, de csak az ENTER második megnyomására érvényesül az új PAPER szín (a második ENTER a számítógépet egy program listázására utasítja, és így újraírja a képet). Ha színes televíziót használunk, de az színeit nem változtatja, próbáljunk állítani a televízió színszabályozóján ill. a finomhangolón.
Az INK utasítás hasonló a PAPEH utasításhoz, és az ernyő PAPER tartományában megjelenő karakterek színét vezérli. Nyilvánvaló, hogy az INK és a PAPER azonos színbeállítása esetén a képernyőn semmi sem jelenik meg.
A BORDER, a PAPER és az INK utasítások a programban is használhatók. A következő egyszerű program a színek lehetséges értékeit veszi sorra:
10 FOR x=0 TO 7
20 BORDER x
30 PAPER 7-x: CLS
40 PAUSE 50
50 NEXT x
A RUN parancs után a képernyőn a PAPER és a BORDER rész mindig ellentétes színű lesz. A PAPER utáni CLS utasítás a számítógépet az ernyő képének újraírására és az új PAPER szín megjelenítésére utasítja. A 40-es sor a program futását egy másodpercre leállítja, így a változások megfigyelhetők. (Próbáljuk ki a programot a PAUSE utasítás kihagyásával is!) Az INK utasítás működését a NEW parancs kiadása után beírt következő programban láthatjuk:
10 BORDER 7
20 PAPER 1
30 INK 4
40 PRINT "Zold karakterek kek hatterben"
A színekkel még további utasítások is kapcsolatban vannak, ezeket a BASIC programozási kézikönyv részletesen tárgyalja.
8. Hangok
A ZX Spectrumon hangok is megszólaltathatók. A hang frekvenciáját és tartamát a felhasználó szabályozhatja. A hangképzés utasítása a BEEP, amely a kiterjesztett üzemmódban á Z gombbal írható be.
A BEEP "közepes" frekvenciája a közép C hang. A BEEP utasítással tetszőleges hang előállítható, ha azt a közepes frekvencia fölötti vagy alatti félhangokkal vagy félhang-részekkel fejezzük ki. Például a
BEEP 2,0
hatására a számítógép két másodpercig a közép C-t fogja kiadni.
A két szám közül az első a hang tartamát adja meg másodpercben, míg a második a közép C feletti hangmagasságot félhangokban. A közép C-nél mélyebb hangok magadása negatív számmal történik. Így a közép C hangmagasság kódja 0, a C# hangé 1, a D hangé 2, és így tovább a következő C hangig, amellyé 12, mivel 12 félhang alkot egy oktávot. A számokat folytathatjuk 13-mal és e fölött is: minél nagyobb a szám, annál magasabb a hang.
Próbáljuk ki a következőt:
BEEP 1,4: BEEP 1,2: BEEP 2,0
Ez nem más, mint a Three Blind Mice első taktusa. Mivel a fenti módon kettőspontokkal több BEEP utasítást összeilleszthetünk, ha elég türelmünk van, akár egy teljes dallamot is lejátszhatunk. (A kettőspontokkal nem csak a BEEP utasítások kapcsolhatók össze, hanem bármelyik elemi utasítás fölhasználásával összetett parancsok vagy programsorok állíthatók össze).
A következő, már bonyolultabb példában a BEEP és a BORDER utasítást kombináltuk:
BORDER 1: BEEP 1,14: BORDER 3: BEEP 1,16: BORDER 4: BEEP 1,12: BORDER 6: BEEP 1,0: BORDER 5: BEEP 4,7: BORDER 1
(A számítógépnek semmi problémát sem okoz, hogy a fenti rész átnyúlik a következő sorba.)
Az alábbi rövid program hatására a számítógép egy teljes hangsort játszik végig:
10 FOR x= 0 TO 24
20 BEEP 2,x
30 NEXT x
Még számos további lehetőség van a BEEP utasítás alkal mazására - ezekről a BASIC programozási kézikönyvben lesz szó.
9. Mi van belül?
A 3. ábra egy ISSUE l-es sorozatú ZX Spectrum belsejét mutatja.
3. ábra
Amint látható, a rendszer elemeit hárombetűs rövidítéssel jelöltük. A fekete téglalap alakú műanyag tokok a fém kivezetésekkel az integrált áramkörök. Belsejükben kb. 6*6 mm-es szilícium lapkák (chip) találhatók, amelyek vékony huzallal csatlakoznak a külső kivezetésekhez. A szilícium chipeken több ezer tranzisztort alakítottak ki, és az így létrejövő elektronikus áramkörök alkotják a számítógépet.
A rendszer "agya" a processzor chip, gyakori elnevezéssel CPU (Central Processor Unit - központi feldolgozó egység ) . Az itteni típusjele Z80A , amely az igen elterjedt Z80 típus gyorsabb változata. A processzor vezérli a számítógépet, elvégzi az aritmetikai műveleteket, figyeli, hogy melyik gombot nyomtuk meg, eldönti az erre adandó választ, és általában meghatározza a számítógép tevékenységét. Azonban bármilyen "okos" is, mindent egyedül nem tudna elvégezni. Semmit sem tud pl. a BASIC-ről vagy a decimális aritmetikáról, és valamennyi utasítását egy másik chiptől, a ROM (Read Only Memory - csak olvasható memória) áramkörtől kapja. A ROM egy hosszú utasításlistát tartalmaz, amely egy számítógép programot alkot, és az összes előforduló helyzetben közli a processzorral, hogy mit kell tennie. Ez a program nem BASIC nyelvű, hanem a Z80 gépi kódnak nevezett nyelven megírt, és formáját tekintve egy számokból álló hosszú sorozat. Összesen 16384 (=16 *1024) szám fordulhat elő, éppen ezért a ZX Spectrum BASIC-et gyakran 16 K-s BASIC-nek is nevezik (1 K = 1024). Bár más számítógépekben is vannak hasonló chipek, ez a speciális utasítássorozat egyedi, kifejezetten a ZX Spectrum számára készült.
A következő nyolc chip a memóriát alkotja. Ezek RAM áramkörök (Random Acceas Memory - írható olvasható memória), és még további két chip ezek működését segíti. A RAM-ban a processzor információt tárol: BASIC programokat, a változókat, a televíziós képernyő képét és még nagyon sok mást, ami a számítógép állapotát meghatározza.
A nagy ULA chip (Uncommitted Logic Array - feladatra orientált logikai hálózat) "kommunikációs központként" működik; gondoskodik arról, hogy a processzor számára szükséges adatok időben rendelkezésre álljanak, ez olvassa ki a memóriát, és így vizsgálja a TV-kép tartalmát, majd ez küldi a megfelelő jeleket a TV illesztőegységbe.
A PAL kódoló egység egész sor alkatrészt tartalmaz. Ez a logikai chipek televíziós kép vezérlő jeleit alakítja át a színes televíziók számára megfelelő jellé.
A feszültségszabályozó a tápegység szabályozatlan jelét alakítja állandó 5 V-os értékké.
Ezzel a Bevezető füzet végére értünk. Ha úgy érzi, hogy eddig mindent megértett, áttérhet a BASIC programozási kézikönyv tanulmányozására.