A teljes képernyős szerkesztő és egy kis BASIC

Nem akarok túlzottan belemenni ebbe a részbe, de mégis hasznos lehet azoknak, akik még sosem láttak 64-est.

Bekapcsolás után a következő menüt látjuk, amennyiben a VICE megjegyezte a cartridge fileunkat:

004-boot.jpg

Itt F3-at nyomva a normál mezei C64 módba kerülünk, amit nem szeretnénk, mert nem véletlenül szenvedtük bele azt a fránya Action Replayt. Aki rátapad az F7-re, az eljuthat a felpimpelt C64 mennyországba. Én most F3-mal haladok tovább, csak az egyszerűség kedvéért. Mindenki válasszon kedvére, a lényegen ez most nem változtat.

005-boot.jpg

Van egy nagyon hasznos tulajdonsága a képernyőnek, és a parancsértelmezőnek. A kurzorral tudunk mászkálni bárhová a képernyőn. De nem csak mászkálni tudunk, hanem parancsokat kiadni is. Ejha, minő izgalom, próbáljuk is ki!

Mindenki válasszon egy tetszőleges (lehetőleg üres) helyet a képernyőn, és írja be: PRINT "HELLO VILAG!", majd enter.

005-hellovilag.jpg

Szépen látszik, hogy az értelmező (interpreter) sikeresen végrehajtotta a PRINT parancsot, vagyis kiírta a következő sorba, hogy "HELLO VILAG!"

Amit érdemes tudni, az az, hogy az interpreter mindig egész sorokat próbál meg értelmezni, vagyis amikor entert nyomunk, elkezdi az adott sor elején, és megy megy végig, amíg nem talál egy parancsot. Jelen esetben a PRINT előtt rengeteg üres rész van, amit simán átugrik.

Próbáljunk most valami mást, írjuk be a READY sorába ugyanezt, és lássuk mi történik!

005-hellovilag-error.jpg

Hoppá, valami félrement, jött egy error. A rafináltabbak arra gondolhattak, hogy majd kapunk egy "SYNTAX ERROR"-t, amit az értelmezhetetlen parancsokra dobál (pl "HULYE GEP"), de mégsem ez történik. Ebben az esetben az értelmező elkezdte olvasni a sort, és talált is egy  egyezést, szerinte ez a READ parancs lenne, de ez ebben a formában értelmezhetetlen, szóval egyből el is dob mindent, kicsapja a hibát, és a READ után következő " .... PRINT "HELLO VILAG!" "-ot már nem is értelmezi.

Láttuk hát, hogy adhatunk közvetlen utasításokat, de mi van akkor ha mi programot akarunk írni?

Pötyögjük is be az alábbi kis programot. Minden sor után nyomjunk entert, ez fontos. Csak akkor kerül tárolásra a programsor, ha ráenterezünk.

005-hulyegep.jpg

Jól látható, hogy ezeket a parancsokat nem hajtotta végre a masina egyből. Az oka ennek az, hogy számmal kezdtük a sort, ezzel jelezve, hogy mi most egy programsort szeretnént tárolni a memóriában. A programsorok számozását mi választhatjuk meg tetszőlegesen, a gép mindig 0-tól felfelé növekvő sorrendben fogja végrehajtani a parancsokat.

A memóriában lévő programunkat bármikor kilistáztathatjuk a LIST paranccsal:

005-list.jpg

Mi történik ha elindítjuk a mi kis programunkat? 

A 10-es sort végrehajtja a gép, vagyis kiírja a megadott szöveget. A pontosvessző a sor végén azt jelzi, hogy a PRINT után ne rakjon soremelést, vagyis a következő kiírásaink egymás mögé kerülnek majd, és nem külön-külön sorokba. 

A 20-as sorban lévő GOTO megmondja, hogy mi bizony a program futását a 10-es sorral szeretnénk folytatni, vagyis ugorjon vissza oda az értelmező, és futtassa azt le. (Aki tanult strukturált programozást, és felhördült most a GOTO-n, annak igaza van, de kérem ez itt még bizony a 80-as évek 😁)

Jól láthatóan a programunk körbe-körbe jár, kiírja a szöveget, majd visszaugrik ugyanarra a kiírásra.

Oké, ez mind szuper, de fog elindulni el ez a program? Futtatnunk kell, a RUN paranccsal:

(Jaja, beírod, hogy RUN, majd enter)

005-run.jpg

Kapunk is egy csomó "HULYE GEP!" feliratot, ami a következő áramszünetig fut, vagy megállítjuk az ESC billentyűvel, ami az eredeti C64 RUN-STOP billentyűjének felel meg.

Programunkat bármikor "könnyedén" módosíthatjuk, ha a LIST-el kilistázzuk, majd a kurzorral ráállunk a módosítani kívánt részre, átírjuk azt, és nyomunk rá egy kövért entert. Lássuk hát.

A képernyőt törölni a SHIFT+HOME billentyűkombinációval tudjuk.

Nyomjunk hát egy LIST-et, módosítsuk a PRINT szövegét, vegyük ki a pontosvesszőt a sor végéről, és jöhet egy enter. Látszólag semmi sem fog történni.

005-okosgep.jpg

Valójában viszont a programunk megváltozott, immáron a módosított 10-es sor van tárolva a memóriában. RUN-nal lefuttatva ez egyből ki is derül. (A kételkedők megnézhetik a módosított programot újra egy LIST-tel, bizony az új szöveget kell ott látniuk)

005-okosgep-run.jpg

A BASIC-el a továbbiakban nem foglalkozunk, de aki akar, az nyugodtan elszüttyöghet vele, a kevéske utasítás (71 db) ellenére még így is meglepően sok mindent meg lehet vele csinálni. A BASIC parancsok listájta itt található.

A kíváncsiak és eminensek pedig szétnézhetnek a Commodore Újság régi számaiban, ahol rengeteg (értsd: naggyon sok) BASIC program listája található meg. Link itt. Igen. Régen ezeket újságból beírkáltuk, aztán örültünk a fejünknek. Nem volt internetünk 😅

A nosztalgiázni vágyók ugyanezen az oldalon rengeteg más egyéb könyv/újság bescannelt változatát is megtalálhatják, valamint jó szívvel ajánlom nekik a 80-as évekbeli TV Basic tévésorozatot, ami a képernyőn keresztül próbálja megtanítani a nagyérdeműnek a BASIC alapjait. 

Immár, hogy tudunk parancsokat kiadni, meg egyszerű basic programokat írni, bele is vághatunk abba, ami miatt alapvetően itt vagyunk. Jöjjön egy kis assembly! ;)

A bejegyzés trackback címe:

https://c64assembly.blog.hu/api/trackback/id/tr3716182046

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.

C64 assembly alapok

Friss topikok

  • Heretic83: Sziasztok! Tudnátok ajánlani olyan tudástárt, ahonnan lehet tanulni bővebben az assembly programoz... (2023.07.13. 19:15) Mi az az assembly
  • tájbor1001110: Válaszolva a saját kérdésemre: Az End+o -val lehet 5 szín séma között váltogatni. (2022.09.20. 21:14) Turbo Assembler
  • tájbor1001110: Ne haragudj, aludtam rá egyet és észrevettem hogy a "*=$1000" direktívából hiányzik a '$'. (((: Bo... (2022.09.16. 08:56) Képernyőtörlés

Címkék

süti beállítások módosítása