A VIC–20 és a ZX–81

Ha előbb nem, 1981-ben végleg megdőlt a hiedelem, hogy csak a güzük vesznek számítógépet az otthonukba. A Commodore létrehozta az első színes képernyőjű számítógépet háromszáz dollár alatt. Ez a gép, a VIC–20-as volt az első számítógép a történelemben, amiből egymillió darabot adtak el; ezt a rekordot 1983 januárjában érte el. 1985-ig gyártották, és végül két és fél millió példány talált gazdára. A ZX–81-ből csak másfél millió kelt el (darabonként ötven angol fontért), mert már a következő évben beszüntették a gyártását. (Volt egy elődje, a ZX–80, ami szintén szépen fogyott, de népszerűségét össze se lehet hasonlítani kistestvéréével.)
  

2310-2.jpg2310-4.jpg

  Mindkét gépnek nagyon érdekes billentyűzete van, rengeteg felirattal. Ez közös vonásuk, de semmi más.

Clive Sinclair brit feltaláló ekkoriban már némi hírnévnek örvendett hazájában. Cége gyártott órát, számológépeket, miniatűr tévéket, csupa különleges dolgot. A világhírt a ZX–81 hozta meg neki, a történelem legolcsóbb olyan számítógépe, aminek volt rendes programnyelve, billentyűzete, háza. Sinclair különc volt (sőt ma is az), s a számítógépei is különböztek minden más géptől. Sinclairnek az volt az alapelve, hogy a BASIC nyelv összes szavát ráteszi a billentyűzetre, így mindegyik „egy gombnyomással” leírható. Ez persze nem mindig jelent egyetlen gombnyomást, a Shiftre is szükség lehet, és előtte esetleg másik üzemmódba kell kapcsolni. Az üzemmódokat a kurzor mutatja, amiből négyféle lehet: K mint Keyword (ezzel jönnek a billentyűk fölötti szavak), L mint Letter (ezzel jönnek a rendes betűk), G mint Graphics (ezzel jönnek a grafikus jelek és a betűk inverz képei) vagy F mint Function (ezzel jönnek a billentyűk alatti szavak). A piros jelek pedig Shifttel. (Erről részletesebben is lehet olvasni itt, az eredeti gépkönyv online változatában, a 2. és 5. fejezetben.) Kisbetűket a gép nem tudott, sőt a felkiáltójelet sem ismerte.
  Billentyűket mondtam, de csak megszokásból, mert a ZX–81 billentyűi egyáltalán nem voltak billentyűk, és nem is billentek. Egy sík lap volt a gép teteje, a gomboknál alig érzékelhető bemélyedésekkel, amiket meg lehetett nyomni, és ezt a gép észlelte. De gyors gépelésre persze nem volt alkalmas.

A VIC–20-as billentyűzete annál inkább. Igazi profi billentyűzet, mint az elektromos írógépeké. Abban hasonlít vetélytársáéra, hogy itt is a gép által ismert összes jel ott van a billentyűkön, de azok nem szavak, hanem grafikus jelek. A gombok elején levő két jel közül a bal oldalit a sarokban levő (Commodore) billentyűvel lehet előhozni, a jobb oldalit a Shifttel. Ha a Commodore és a Shift gombot együtt nyomjuk meg, akkor a képernyő átvált kisbetűs üzemmódra: a nagybetűkből kisbetű lesz, a shiftelt grafikus jelekből pedig nagybetű. A Commodore gombos grafikus jelek nem változnak. A módszer innentől általános volt az összes Commodore-gépen.
  Az is általános volt, hogy az idézőjel (Shift–2) átkapcsolt egy speciális üzemmódba, amiben a vezérlőgombok (kurzornyilak, képernyőtörlés és Home, színváltó gombok stb.) nem a megfelelő funkciót hajtották végre, hanem egy speciális jelet írtak le – valamelyik grafikus jel inverz képét. Így szöveg részeként is szerepelhetett a kurzormozgatás és egyéb képernyővezérlés, és a szöveg kiíratásakor szépen végrehajtódott.
  


  A képen több ilyen vezérlőjel látható, a 20. sor végén például a képernyőtörlést jelentő inverz szív. A Commodore BASIC-ből hiányzott minden olyan utasítás, amivel a képernyőt lehetett volna törölni, a kurzort mozgatni, a színeket megváltoztatni, ezek helyett voltak a vezérlőjelek. (A mintaprogram valójában Commodore 64-esre íródott. Hibátlanul működne VIC–20-ason is, csak az általa készített kép lenne csúnya, mert a VIC–20-ason 22 karakter fér el egy sorban, a 64-esen pedig 40.)

A ZX–81-en a képernyőt a CLS utasítással lehetett törölni, ami nagyon fontos volt, mert a gépnek mindössze egy kilobyte memóriája volt – igaz, 64-ig lehetett bővíteni. A képernyő törlése jótékonyan hatott a memóriára, mert a gép ravasz módszerrel tárolta a képernyő tartalmát, hogy minél több memóriát megtakarítson: a sorok szövege nem volt végig a memóriában, csak az utolsó olyan karakterig, ami nem volt szóköz, aztán egy Newline (az Enter ZX–81-es megfelelője) következett. Így minél kevesebbet írtak a képernyőre és minél tömörebben, annál kevesebb memória fogyott. A bővítetlen gépnek arra se volt elég memóriája, hogy teleírja a képernyőt.
  A picike memória okozta a ZX–81-es programok legérdekesebb vonását. A programozók mindent elkövettek, hogy a lehető legjobban kihasználják a memóriát, és ezért bármilyen furcsaságra hajlandóak voltak. Például ha csak egy mód volt rá, nem írtak le számokat. A számokat ugyanis nagyon helypazarló módon tárolta a gép: először számjegyenként leírva, aztán belső számábrázolással. Ez utóbbi öt byte-ot emésztett fel, egy négyjegyű szám tehát kilenc byte-ot foglalt, négyet a számjegyeinek, ötöt a belső ábrázolásnak. Ugyanakkor viszont minden BASIC kulcsszó csak egy byte volt, a hatbetűs RETURN éppúgy, mint a kétbetűs PI. Ezért 1 (hat byte) helyett azt írták: SGN PI (két byte). Nulla helyett INT RND. [Ezek minden más BASIC-ben úgy íródnának, hogy SGN(PI) és INT(RND), de a Sinclair-gépek sajátos nyelvezete megengedte a zárójelek elhagyását. Újabb két byte megtakarítás.] A ZX–81-es programozók találékonysága nem ismert határokat, amikor a memóriával kellett takarékoskodni.

A VIC–20-ason nem volt ennyire létfontosságú a takarékosság, mert rengeteg hely állt rendelkezésre: három kilobyte. 32-ig vagy 40-ig lehetett bővíteni (a különböző források szerint). Volt hely teleírni a képernyőt, mert a képernyőmemória nem számít bele a háromba. A háttér tizenhat, a betűk nyolc színt vehettek föl. Nagyfelbontású grafikát nem tudott, illetve ravasz trükkökkel mégis.
  A neve érdekes dolog. A VIC a grafikai chip neve, Video Interface Chip, de gépnévnek ez úgy hangzott, mint egy kamionsofőr, ezért Michael Tomczyk projektigazgató hozzátett egy számot. Semmilyen műszaki paraméterrel nem egyezik, az évszámmal sem, mint a ZX–81 esetén, egyszerűen csak jól hangzott. Német nyelvterületen a gép VC–20 néven volt ismeretes, mert németül vic kiejtve obszcén jelentésű, és a VC-t a VolksComputer rövidítésévé tették, a Volkswagenhez hasonlóan. Magyarországon mindkettő jelen volt, de inkább a VC.
  Azt viszont mindmáig nem találtam meg az annálesekben, hogy a Sinclair-gépek miért használták a ZX betűkombinációt.

Az olvasó figyelmébe ajánlom az EightyOne programot, amivel saját kis beépített ZX–81-ese lehet a Windowsában, valamint a VICE-ot, ami élethű VIC–20-ast csinál. Mindkettő egész csomó rokon gépet tud, amiket szintén érdemes kipróbálni.

»»»»»»