Shop menü

ELINDULT A BASIC10LINER IDEI BAJNOKSÁGA

Tizenkettedszer rendezik meg e versenyt 4+1 kategóriában, a hatvanas években készített BASIC nyelven íródott programok számára. Lényeges korlát, hogy mindössze 10 sorból tudunk gazdálkodni.
HaverLaci
HaverLaci
Elindult a BASIC10Liner idei bajnoksága

Lassú, béna, nehézkes, a programozási gondolkodásmódot rossz irányba viszi, nem használja ki a gépet - leginkább ezeket lehet hallani a BASIC nyelvvel kapcsolatban. Azonban ez egy általános célú nyelv, mely elég sokáig tartotta magát, szemben más, reményteljesebb programozási nyelvekkel, melyek lényegében eltűntek. E nyelvet a programozás megkönnyítésére hozták létre - mivel utasításai és "gondolkodásmódja" közelebb állt az emberéhez - oktatási célokkal, akárcsak a ma népszerű Python-t. Egyik előnye volt, hogy a háziszámítógépek nagy többsége e nyelv valamelyik változatát alapból tartalmazta, így akinek a '70-es évek második felétől a kilencvenes évek elejéig háziszámítógépekkel volt dolga, nagy valószínűséggel a BASIC nyelvvel is találkozott.

Talán már kevesen tudják, hogy még az IBM PC-ben is beépített BASIC volt - az alaplapon a BIOS mellett négy darab 8k-s ROM tartalmazta - mely egyéb operációs rendszer híján azonnal rendelkezésre állt. Azt meg talán még kevesebben, hogy ez az alaplap a mindössze 16K alapmemória mellett adatmagnó csatlakozót is tartalmazott az eredeti konfigurációban, mely a mai SSD-USB-PCIeX gépek őse, de erről majd később.

Első cikkem az iPon Magazinban épp e versennyel volt kapcsolatos. A kategóriák nem változtak a 2022-es versenyhez képest:

  • PUR-80: ez a program sorszámával együtt értve 80 karakter/sor limitet enged, mely a sor beírásának hossza (listázáskor a rövidített utasítások teljes hosszukban íródnak) Ebben a kategóriában csak a gyári beépített BASIC változatok megengedettek.
  • PUR-120: 120 karakter/programsor a limit, és itt már nem csak a gyári BASIC használható
  • EXTREM-256: 256 karakter limittel ez a legtágabb lehetőségeket megengedő kategória.
  • SCHAU: itt inkább a látvány áll a középpontban, ez a demonstrációs programok kategóriája. Leginkább képek vagy animációk szerepelnek itt. A sorhossz 256 karakter lehet.
  • WILD: a kategóriákba nem illő nevezések ide kerülnek.

A 10 programsoron felül adatok betöltése háttértárról, önmódosítás, rejtett inicializálás tilos, gépi kód használata sem megengedett, de POKE utasítások igen. A nevezéseket a 2023. március 25 esti (CET 18:00) beadási határidőt követően zsűri bírálja el, de a közönségnek is van lehetősége véleményt nyilvánítani: a bunsen.itch.io oldalon mi is szavazhatunk kedvencünkre, mely alapján a Public's Choice különdíj kerül kiosztásra. A díjátadó ünnepség napja 2023. április 1 lesz. További információk: basic10liner.com

Téved, aki úgy gondolja, hogy tíz sorban nem lehet "nagyot" alkotni.

Nosza, gondoltam, akkor nevezek is egy programmal. Már egy ideje motoszkált a fejemben, hogy Enterprise 128-cal tudnék-e alkotni valami használhatót tíz sorban. Aki nem ismeri: az ELAN Enterprise 128 gépe egy viszonylag kései, nagyon jó képességű 8 bites gép. Késésének egyik oka, hogy nem akarták összecsapni, de végül a cég rá is ment erre a projektre.  Megemlítendő, hogy az első gépek Enterprise 64 néven és 64K memóriával kerültek forgalomba, és nem teljesen kompatibilisek a 128-as változattal.

A gép két egyedi chipet kapott, mind a hang, mind a grafika kiemelkedő volt a korában - ráadásul mindez BASICból is nagyban programozható volt, akár kevert grafikus módot is lehetett használni.

Azonban az olyan korlátokat támasztó bajnokság, mint a BASIC10Liner, nem igazán kedvez e gépnek: az egy sorba írható utasítások száma limitált, ellentétben pl. a Commodore-ral, de akár a kvázi testvér Videoton TVC-vel is. Előbbi esetén ráadásul lehetőség van az utasítások rövidítésére is, de még az utóbbi is elviseli, ha szóköz nélkül adok ki utasítást, nem úgy az Enterprise. Emellett erre készült program nem indulhat a PUR80 kategóriában, mivel az Enterprise BASIC ROM-ja cartridge-be van építve, amely így hiába gyári, az alkotás csak nagyobb kategóriára lesz jó.

Valójában nem tudom, hogy az Enterprise IS-BASIC limitációja pontosan miket enged és miket nem - praktikusan egy sor/utasítást láttam, amikor erre kerestem, de ez biztos nincs így minden esetben - bár az világos, hogy a FOR-NEXT ciklus ilyen, de az IF-THEN-ELSE is jelentősen korlátozott, a végét jelző ENDIF pedig szintén csak önmagában szerepelhet. Volt olyan utasítás is, melyet használhattam mással egy sorban, de csak a programsor végén. Az ilyen szabályokra kísérletezéssel próbáltam rájönni, mivel a gépet csak felszínesen ismerem és ez az első programom erre a platformra.

Az alkotás egy egyszerű Floodit játék lett, melynek lényege, hogy a számbillentyűk színekhez rendeltek, ezek nyomkodásával kell a véletlenszerű színekkel kirakott mozaikból egy színre festeni, minél kevesebb lépésben. Még alig csinál valamit - kirajzolja a képernyőt, számolja a leütött billentyűket, és fest, de máris túl vagyunk a 10 soros limiten.

Itt bizony szükség lesz trükközésre, mert még nincs vizsgálat, sem értékelés, még csak a használható billentyűk sem jelennek meg. A csempék kirajzolását "optimalizáltam" ,egy hosszú sorként rakja ki, így spóroltam két programsort.

A programban végül egy FOR-NEXT és egy IF-THEN-ELSE-(ENDIF) használatának volt elég hely, így a színes csempék megjelenítése és a színek vizsgálata ugyanazon ciklusban történik, a pontszám kiírása ( a játék végéig fekete színnel) és a "gombok", azaz a színekhez rendelt számok megjelenítése pedig nem túl elegánsan folyamatosan újra-és-újra megtörténik, bár ez szerencsé nem látszik.

Az F billentyű lenyomása jelzi a finish-et, ekkor fekete színnel átfesti az egyszínű részt a program visszatér a FOR ciklusba és összeszámolja a képernyőn maradt "csempéket", miközben azok, ha vannak törli is.

Valójában minden játék "nyer" - hacsak nem nyomjuk meg idő előtt az "F" billentyűt - mindössze a pontszámokban lehet eltérés, ez a 10 sorból fakadó limit miatt van, ahogy az is, hogy új játékot RESET után a RUN paranccsal indíthatunk (Az ENTERPRISE ellentétben pl. a Commodore gépekkel, vagy akár az IBM PC-vel, egy sima RESET után úgy indul újra, hogy a program a memóriában marad). A használható gombokat, azaz számbillentyűk megjelenítését csak favágó módon, ciklus nélkül tudtam megoldani, hogy benne maradjak a 10 soros limitben. A gép nem fogad el 3 sornál több PRINT parancsot, úgy tűnik ez lehet a limit.

Miután a Facebook-os Enterprise csoport egy kedves tagja felhívta figyelmem az ENDIF utasítás szükségtelen voltára a programban, új lehetőségek nyíltak további fejlesztésre, mivel az a 9-es sorban, egyedül állt. Immár nem véletlenszerűen kapjuk a "szinteket", hanem egymás után 8 szinten, azaz mindig eggyel több színnel játszhatunk, ráadásul meg tudtam adni maximum hány lépésből kell a szintet megcsinálni - melyet a bal alsó részben jelenít meg, a fel nem használt lépésekért pontokat kapunk.

Ez lett hát a végső változat, a neve Flooderből Floodit lett, és az EXTREME-256 kategóriában indul.

A programot nem a valódi "vason", hanem Varga István EP128Emu emulátorával készítettem. A verseny fejleményeiről beszámolunk, és tervben van további pályamű indítása is.

Hogy mire jó ez bárkinek? Jó kérdés, de a korlátok tornáztatják az agyat, fejlesztik a kreativitást, és valamiért ez a verseny több kontinens lakóit is érdekli... A szervező pedig úgy néz ki, könyvet ad ki a "tízsorosokból".

Ahogy a korábbi cikkemben is írtam: amennyiben felkeltette érdeklődésed, bányászd elő és porold le rég elrakott ósdi számítógéped, esetleg keresd meg annak emulátorát, és indulj a megmérettetésen!

Neked ajánljuk

    Tesztek

      Kapcsolódó cikkek

      Vissza az oldal tetejére