Szinkronban az idővel - Az Enterprise 128
A gép szülőhazája Nagy-Britannia. Ennek ismeretében egy kicsit meglepett, hogy a Centrum Áruházak által forgalmazott Enterprise-oknak német billentyűzetük van. Ez azt jelenti, hogy a számítógépeknél megszokott billentyűzethez képest a Z és az Y helyet cserélt, és néhány jel (például a :, ;, < , > , _ ) is máshova került.
Az Enterprise 128-nak egyébként kiváló tulajdonságai vannak, hiszen mint a neve is mutatja, 128 kbájt RAM-ot tartalmaz, s ez akár 4 Mbájtig is bővíthető. A központi egysége egy Z80A mikroprocesszor, amelynek órajele 4 MHz. A képernyőfelbontás sem csekély: 672 x 512 képpont: Mindehhez 256-féle színárnyalat használata lehetséges, és ha úgy tetszik, a színeket magunk is kikeverhetjük a három alapszínből. Beépítettek egy négycsatornás sztereó hanggenerátort is, csatornánként nyolc oktávval. Továbbá: első ránézésre láthatjuk, hogy mint a Videoton TV-Computernél, e gépnél is beépített nyolcirányú botkormány szolgálja a kényelmes kezelést.
Ez a hasonlóság egyébként nem véletlen, hiszen a TV-Computert is az Enterprise 128 alkotója tervezte, igaz; egy kicsit korábban. A perifériákat igen rugalmasan kezeli, nemzetközi karakterkészlet is van benne, amelyben számos magyar ékezetes betű is fellelhető. A BASIC utasításokat átnézve, a BASIC fordítója is kitűnőnek látszik, hiszen kb. 300 utasítást, illetve függvényt ismer. Beépített szövegszerkesztőt is tartalmaz, és akárcsak a Spectrumok, hálózatba is köthetők a gépek (összesen 32 darab).
Az utasítások számának megfelelően sokféle hibaüzenetet kaphatunk. Alapállapotban ezeket németül írja ki a gép, de ha kiadjuk az :UK parancsot, akkor angolul kapunk visszajelzést, sőt ekkor a billentyűzet is normál angol formátumot vesz fel.
Különleges érték, hogy a nagyobb gépekhez hasonlóan egyszerre több (maximálisan 128) BASIC programot tárolhatunk a memóriában. Természetesen csak akkor lehet egyszerre ennyi program a gépben, ha elegendő a memória, mert amikor egy program szerkesztését megkezdjük, a rendszer lefoglal kb. 10 kbájtot. És bár az első program mindössze 42 kbájt, a többi pedig csupán 32 kbájt lehet, de a programok hívhatják egymást, és paraméterek átadására is van mód.
Első benyomásra tehát ez a gép az eddigi legjobb a házi számítógépek kategóriájában, és ehhez képest az ára sem túl magas magnóval együtt 16 900 forint.
A gép kívülről...
Bevallom őszintén első pillantásra kicsit megijedtem, de már megbarátkoztam az alakjával. Nem úgy a billentyűzettel. A már említett helyváltozásokon kívül kényelmetlennek tartom a billentyű megnyomását is. A billentyűzet tartósságának kipróbálására még nem volt lehetőségem, de úgy érzem, nem való tartós igénybevételre (játék). Felül 8 darab funkciógomb kapott helyet, amelyeknek a C 16-hoz hasonlóan alapállapotban is szerepük van; azaz bizonyos utasításokat nem kell begépelnünk, hanem ehelyett elég a megfelelő funkciógomb kezelése.
A funkcióbillentyűk mellett található a PAUSE gomb, amivel megállítható, majd újraindítható a rendszer (listázás, programfutás stb.) A jobb felső sarokban van a STOP gomb; amely a programmegszakításra szolgál. Jobb oldalon helyezkednek el továbbá a program szerkesztésére szolgáló ERASE, DEL, INS és ENTER billentyűk is; ezekről később még szó lesz. Ugyancsak itt látható az ALT gomb. Ha ezt egy másik billentyűvel egyszerre nyomjuk le, megjeleníthetjük a nemzetközi karaktereket. A SHIFT gombból szokás szerint kettő van. Bal oldalon kapott helyett a CTRL, a TAB és az ESC gombon kívül a LOCK billentyű, amely nagymértékben megkönnyíti a munkát, ugyanis a SHIFT-tel vagy az ALT-tal együtt lenyomva egy olyan módba léphetünk, ahol csak egy billentyűt kell lenyomnunk, és mégis úgy funkcionál, mintha egyidejűleg nyomnánk a SHIFT-et vagy az ALT-ot.
Ha a CTRL-t és a LOCK-ot nyomjuk meg egyidejűleg, akkor az ún. CAPS módba térünk át, ami azt jelenti, hogy mindent nagybetűkkel írhatunk, míg az egyéb billentyűk (például a számok) lenyomásakor a normál kép (a szám) jelenik meg.
A billentyűzet hátrányát kompenzálja bizonyos mértékig az, hogy a különböző funkciókat ellátó gombok különböző színűek; valamint az is, hogy a kurzor a beépítet botkormánnyal irányítható.
A csatlakozók a gép két oldalán és a hátsó részen helyezkednek el, és jó részük igei nyitott; hiszen maga a panel szolgál erre a célra. Bal oldalon van a BASIC modul helye. A BASIC fordító ugyanis -hazánkban elterjedt házi számítógépektől eltérően - nincs beépítve a gépbe. Jobb oldalon kivezették a rendszer minden vezetékét. Ide csatlakozik a lemezmeghajtó vezérlőkártyája, a memóriabővítő és az egyéb programnyelveket (Pascal, LISP FORTH stb.) tartalmazó modulok. Hátul található a két külső botkormány; a nyomtotó, a monitor és a tévécsatlakozó, és itt van lehetőség a hálózatba kötésre is. Ugyancsak a hátsó részen van a magnócsatlakozó, amin keresztül a gép képes megállítani és elindítani az erre alkalma magnók motorját. A magnókimenetről erősíthetjük fel a gép által keltett hangot, ami egyébként csak a beépített hangszórón hallhatunk. Ugyancsak hátul van a RESET gomb, amelyről még lesz szó a későbbiekben.
Már csak egyetlen csatlakozó maradt hátra, a tápegységé, amely szintén a gép hátulján van, és egyben a bekapcsolásra is szolgál, hiszen nincs külön ki/be kapcsoló. Megvallom, nem tudom, milyen megfontolásból hagyták ezt el. Ilyen megoldást még csak a Spectrum-nál alkalmaztak.
... és belülről
A Z80-as mikroprocesszoron kívül két fontos, speciális integrált áramkört építettek be. Az egyik a NICK chip, ami egy grafikus processzor, órajele 14 MHz, és feladata a képernyőszerkesztés. A másik a DAVE, amely több funkciót lát el. Van benne egy hanggenerátor, frissíti a memóriát, kezeli a billentyűzetet. Az utóbbi kettő nem túlzottan érdekes, de a hanggenerátor igen. Négy csatornát használhatunk, és sztereó hangkeltésre is képes, olyan módon, hogy külön megadhatjuk a jobb, illetve a bal csatorna hangerejét. A beépített hangszóró persze csak mono hangok kibocsátására képes, de a magnókimeneten is megjelenik a hanggenerátor jele, így ide fejhallgatót vagy erősítőt csatlakoztatva már élvezhetővé válik a sztereó hang.
Bár először egy kicsit bonyolultnak tűnik a hangkeltés, de ha valaki megszokja, akkor úgy gondolom - jól tud vele dolgozni. Részletesebben a BASIC leírásánál írok erről, hiszen először mindenképpen valamilyen magas szintű programnyelvből érdemes kipróbálni, és talán a megértése is könnyebb.
A videoprocesszor néhány tulajdonságát érdemes közelebbről megismerni. Hasonló dolgokra képes, mint az Atari 800XL ANTIC chipje, de talán annál is sokrétűbb, és sokkal nagyobb felbontást tesz lehetővé.
Ötféle grafikus üzemmód van : normál karakteres, 80 karakteres, melyet szoftver segítségével állít elő a NICK, nagy felbontású (HIRES), alacsony felbontású (LORES) és attributum (ATTRIBUTE) grafikai módok. A karakteres módokban kevés szín közül lehet választani, de a grafikus módokban döntés kérdése, hogy 2, 4, 16 vagy 256 színű üzemmódot akarunk-e. Természetesen a színek számának növekedésével csökken a felbontás. A LORES és a HIRES grafika között is csak a felbontásban van különbség. Az attributum üzemmód azt jelenti, hogy külön színmemória van, és így minden bájtra külön háttér- és rajzolás-szín választható.
Hasznos tudni, hogy a keretet csak az operációs rendszer teszi a képernyőre, és ennek kikerülésével olyan képet szerkeszthetünk, amelyen a keretre is lehet írni.
A videoprocesszor utasításai egy ún. Line Parameter Table-ben (LPT) vannak. Itt minden sorra kiválasztható a grafikus üzemmód, a színek száma, a paletta és az információ memóriabeli helye.
A gép felépítésében azonban nem tetszik, hogy néhány helyen átkötést alkalmaztak két kivezetés között.
A BASIC
Az Enterprise 128 BASIC fordítója több mint 300 utasítást ismer. Már ebből is látszik, hogy az eddig elterjedt gépek fordítóihoz képest nagyobb teret biztosít fantáziánk kibontakoztatására.
Kezdjük talán azzal, hogy programunk írása közben egy szövegszerkesztőben dolgozunk, amit az operációs rendszer tesz lehetővé számunkra. Ez többek között azért kényelmes, mert például amikor egy programot listázunk és az nem fér ki a képernyőre, nyugodtan hagyhatjuk kifutni a listát: később a kurzor felfelé való mozgatásával bármikor visszamehetünk a program első sorára is - persze csak meghatározott hosszúságú program esetében. Még nagyon sok-más előnye is van ennek a szövegszerkesztő rendszernek: például a tetszés szerint beállítható tabulátor, a margók változtatása, vagy a teljes sorok képernyőn való mozgatása.
Ide tartozik még az is, hogy egy betűt kétféleképpen is törölhetünk. Az egyik módszer az ERASE billentyűvel - úgy, mint a C64-en: a betű mögé állítva a kurzort -, a másik pedig a DEL billentyűvel, ahogy a Spectrumon: a betű elé állva a kurzorral. Természetesen ugyanilyen törlést alkalmazhatunk egy teljes szóra (a legközelebbi üres karakterig töröl) az ALT vagy a CTRL gomb és a törlőbillentyű egyidejű lenyomásával. Sorokat is törölhetünk, ha a törlőbillentyűt a SHIFT-tel együtt nyomjuk le.
A szerkesztőnek egyébként még számos jó tulajdonsága van, de ezekre itt nem térek ki, hiszen a felhasználói kézikönyvben megtalálhatók.
Mivel ez a gép összességében lényegesen több lehetőséget nyújt, mint az eddigiek, ezért nem írok az általános utasításokról, csupán az újdonságokat emelem ki, illetve rámutatok a gyengékre is.
A BASIC maximum 31 karakteres változóneveket képes azonosítani. A változóknak azonban nincs kezdeti értékük, tehát ezt egy értékadással vagy egy definiálással be kell állítanunk: A változók definiálása a NUMERIC és a STRING utasításokkal történik, és ekkor 0 a kezdeti érték. Az értékadásnál nem kell beírnunk a LET utasítást, a gép azonban automatikusan beírja ezt a programba.
A szöveges változók maximális hossza 127 karakter (megjegyzés: ez az érték hibás, valójában 254 karakter hosszú lehet). Ez nagyon kevés, mert például a Commodore gépeken 255 karakter, a Spectrumon és az Atari 800XL-en pedig bármilyen hosszú karakteres változókat használhatunk. Arra azonban ügyelni kell, hogy a változók hosszúsága egy karakteres tömb dimenzionálásakor a maximális értéket veszi fel, ezért ajánlatos például a DIM A$(40) utasítás helyett a STRING a$(40)*8 utasítás kiadása, ahol a * utáni szám a változó maximális hosszúságát jelenti.
Ciklusok szervezésére rendelkezésre áll a DO-LOOP és a FOR - NEXT típus egyaránt.
Feltételszabásra a már megszokott IF THEN - ELSE-en kívül az IF - END IF szerkezet is megfelel, ahol nem kényszerülünk arra, hogy az utasításokat egyetlen sorba írjuk. Segítségünkre van még a SELECT CASE - END SELECT szerkezet is, amivel egy szám változó értéke alapján tudunk elágaztatni.
A DEF név utasítás szintén újdonságnak számít BASIC-ben. Ezzel egy utasítássornak nevet adhatunk, majd a CALL névvel bármikor végrehajtathatjuk azt. Természetesen a szokásos függvénydefiníciót is ismeri a gép. Mindkét esetben lehetőség van paraméterátadásra. Arra azonban vigyázni kell, hogy ha egy változót csak egy ilyen függvényben definiáltunk, akkor azt a főprogram nem tudja használni.
Ritka a hasonló kategóriájú gépek körében, hogy a BASIC megszakításkezelésre alkalmas. Az Enterprise 128-on ez lehetséges. Először is írnunk kell egy hibakezelő rutint, majd meg kell adnunk a főprogramban, hogy melyik rutint használja a gép hiba esetén. Ezután be kell állítani egy adott változót, így megadhatjuk, hogy hány másodperc múlva kérjük a megszakítást. A számláló lejártával egy bizonyos kódú hibát kapunk, és a vezérlést a hibakezelő rutin kapja meg. Ily módon persze lehetőség van egyéb hibák kezelésére is. Ha például a program egy hibánál hibaüzenettel leállna, ez nem következik be, hanem mi dönthetjük el, hogy mi történjék. Segítségünkre van ebben az, hogy speciális változókban megkapjuk a hiba sorát és típusát.
A grafikát teljes mértékben támogatja a BASIC. Pontok, vonalak és ellipszisek rajzolhatók, de nem akárhogyan. Kiválasztható ugyanis a vonalhúzás módja (normál, AND, OR, XOR) és stílusa, ami szaggatott vonalakkal való rajzolásra ad lehetőséget. Módunkban áll zárt alakzatok kifestése, és használhatjuk a LOGO nyelvből ismerős teknősbéka-grafikát is, ahol az elfordulás szöge fokokban és radiánban egyaránt megadható.
Szintén a grafikát támogatja az ablak-technika is. Tetszőleges méretű és grafikus üzemmódú ablakokat definiálhatunk, s miután egy video-ablaknak egy számmal ellátott csatornát kell nyitnunk, az ablakra úgy rajzolhatunk, hogy a csatornaszámot beírjuk a rajzolóutasításba. Egy ablakot bárhol elhelyezhetünk a képernyőn, de mivel erre külön utasítás szolgál; ezért megtehetjük, hogy úgy rajzolunk egy ablakra, hogy az nem látható, majd amikor kész a rajz, láthatóvá tesszük. Ezáltal gyors mozgások és változások jeleníthetők meg, igen látványosan.
Nemcsak a video-ablakokat, de szinte minden eszközt csatornákon keresztül érhetünk el. A csatornák így igen fontos szerepet töltenek be ezen a gépen; s úgyszólván el sem hagyhatók egy-egy programból.
A hanggenerátor programozására csupán két utasítás szolgál, de ezek annyira rugalmasak és változatosak, hogy elegendők a hangkeltéshez. Az egyik, az ENVELOPE a hullámformát választja ki, a másik, a SOUND pedig a hangkeltésre szolgál. A gép arra is képes, hogy zenélés közben az rajzoljon. Ha többszólamú zenét írunk; egyszerre is indíthatjuk őket. A hang stílusának kiválasztásával különböző torzításokat érhetünk el. Így állítható elő például a szintetizátor hangja.
A beépített függvények mennyiségétől elámultam. Olyanokat találtam köztük, amilyeneket még sehol sem láttam. Most csak néhányat sorolok fel.
Itt van mindjárt az ANGLE, amely egy egyenes iránytangensét számítja ki. Beépítették a trigonometrikus függvények ellentettjét és hiperbolikus függvényeit. A fokokat átszámolja a gép radiánba és vissza. Számok felfelé és lefelé kerekítésére egyaránt lehetőség van. A természetes alapú logaritmuson kívül a tízes és a kettes alapú is rendelkezésre áll. A maradékos osztást kétféleképpen kérhetjük: az egyik egész, a másik tört maradékot számol. Sokféle új függvény szolgál karakteres változók és tömbök kezelésére is. Egy "új" függvényt is találtam: aki ismeri a BASIC nyelvet, biztosan találkozott már az ASC függvénnyel; ennek itt csak a neve más (ORD), egyébként mindenben megegyezik a megszokottal.
A gépi kódú rutinok használata is kényelmes. A rutinoknak nevet adhatunk, s utána ezzel a névvel hivatkozhatunk rájuk. A HEX$ függvény segítségével a hexadecimális bájtsorozatban adhatjuk meg a gépi kódú programot.
Az EXOS
Az EXOS az Enterprise 128 ki/bemeneti rendszere. Rutinjainak hívása az RST 30h gépi utasítással történik, ami után egy adatnak kell állnia. Ez az adat határozza meg a funkciót. Az EXOS változóinak írása egyébként BASIC-ből is lehetséges a SET utasítással.
A perifériák
Perifériák tekintetében is rugalmas a gép. Bármilyen magnetofon csatlakoztatható hozzá, s amelyik távvezérelhető; azt irányítja is.
A lemezmeghajtó vezérlőkártyájához mindenféle párhuzamos lemezmeghajtót minden beavatkozás nélkül tudunk csatlakoztatni. Ha soros lemezmeghajtót (például VC-1541-et) akarunk csatlakoztatni a géphez, akkor egy programra van szükség, amely kezeli azt. A DOS egyébként nagyon intelligens, hiszen többféle lemezformátumot képes olvasni, többekközött az IBM-ét is.
A printer feliratú csatlakozón keresztül szinte mindenféle nyomtató hozzáköthető az Enterprise-hoz: például az EPSON nyomtatókat is képes kezelni.
Végezetül
Mindent összevetve a gép kiemelkedik a házi számítógépek kategóriájából, s valahol a C64 és az Amiga között helyezkedik el. Az egyetlen nagyobb probléma az, hogy a kiegészítő egységek és perifériák drágák és nehezen szerezhetők be. Igaz, hogy bármilyen tévére ráköthető, de az ilyen nagy felbontás megjelenítésére alkalmas monitor ára hazánkban több mint 100 ezer forint. A nyomtató és a lemezmeghajtó sem olcsó. Valószínűnek tartom azonban, hogy ha nagyobb mennyiségű, tízezernél több Enterprise-t sikerül eladni, akkor valamelyik cég importál hozzá lemezmeghajtót is, hiszen abból is elég sokat tudnának eladni ahhoz, hogy viszonylag olcsón lehessen forgalomba hozni. Nyomtatónak megfelel a Seikosha SP180 is. Ezt a kis nyomtatót, amely tudásban megközelíti az EPSON 80-ast és 100-ast, már nálunk is lehetett kapni 24 300 forintért. Persze ki tudja, lesz-e még belőle ezután is.
Ami a dokumentációt illeti: az a felhasználói kézikönyv, amelyet a géphez adnak, messze felülmúlja a megszokott szintet, bár egy-két hiba ebben is felfedezhető. Ha azonban valaki nem akar BASIC-ben programozni, vagy esetleg szeretné belülről megismerni a gépet és gépi kódban programozni, akkor nehéz dolga van. Az Enterprise-ról ugyanis külföldön is kevés dokumentáció jelent meg.
A géphez egyelőre 49 program kapható. Ezek között található felhasználói és játékprogram egyaránt. Tulajdonképpen kezdetnek ez jó, hiszen a Commodore is így kezdte. A további szoftverek megírása a magyar programozókra vár.
Az Entetprise 128 nagyobb gépek termináljaként is működtethető, az összekötés nem túl bonyolult. A gép kiváló programozás tanulására, többféle magas szintű programnyelven. No és természetesen tökéletesen megfelel otthoni szórakozásra, játékra.
(1987 szeptember) Romvári Gábor
Még egyszer az Enterprise-ról
Kopácsy Vilmos számítástechnikus olvasónk számos észrevételt küldött a Szinkronban az idővel című, az Enterprise gépet ismertető cikkünk tartalmával kapcsolatban. Kopácsy Vilmos az 'A' Stúdió Szakcsoportnál dolgozik. Ők kapták a megbízást a Novotrade-tól és a Centrum Áruházak Vállalattól az Enterprise géphez való szoftverek és perifériák fejlesztésére. Következzenek az észrevételek:
Az angol és német gép közötti különbség
Kétfajta gépet hoztak forgalomba: egy részük német, a többi angol klaviatúrás. Ennek oka, hogy a gépeket más-más forrásból szerezték be. (A gépek beszerzésének részletkérdéseiről nincs információnk, és nem kutatjuk az üzleti hátteret.) A felhasználói kézikönyv 12-13. oldalán tájékoztatást kap a különféle gépekről is (igaz, röviden - a szerk.). A billentyűzetet tekintve a két géptípus között lényeges különbség nincs, viszont a gépekhez mellékelt (tartozó) BASIC interpreterek közötti igen jelentős. Erről a :HELP parancs begépelésével győződhetünk meg.
Angol BASIC:
- WP
- BASIC
Német BASIC:
- VSAVE
- VLOAD
- VDUMP
- BRD
- UK
- WP
- BASIC
Az angol cartridge esetén a rendszer csak a BASIC interpreterrel bővül, a német cartridge esetén öt többletparancs áll rendelkezésünkre. A VSAVE, VLOAD, VDUMP a videocsatornák kimentését, betöltését, illetve ezek kinyomtatását teszik lehetővé. A BRD és UK parancsok a klaviatúra és a hibaüzenetek nyelvének (angol, német) kiválasztására szolgálnak. A fejlesztés során észleltünk néhány paraméterezési különbséget a két BASIC egyes utasításai között. A két interpreter méretkülönbsége is jelentős: a német BASIC 32K, amíg az angol 16K.
A hanggenerátorral kapcsolatban
A hanggenerátor (csak) 3 hang + 1 zajcsatornával rendelkezik. A hullámformát nem a felhasználó választja meg (ez mindig négyszögjel). A burkológörbét (ADSR) lehet programozni.
A PAUSE (HOLD) billentyű használata
A PAUSE (HOLD) billentyűvel a rendszer alatt futó programok végrehajtását függeszthetjük fel tetszőleges ideig - a gomb ismétel leütéséig.
A programmodulok
A programnyelvet tartalmazó (LISP, FORTH, ASMON) modulokat a gép bal oldalán lévő CARTRIDGE PORT-ba kell csatlakoztatni. A PASCAL CARTRIDGE a levélíró szerint nem létezik és az eredeti szoftverajánlatban sem szerepel.
A RESET gomb és a ki-be kapcsoló
A gépen azért nem kapott helyet egy külön ki-be kapcsoló, mert az Enterprise "intelligens" RESET gombbal van ellátva. Ha egyszer nyomjuk meg, akkor egy melegindítás következik be, amely a memóriában tárolt adatokat, valamint a rendszerváltozókat nem változtatja meg. Kétszeri lenyomás hidegindításnak felel meg, ami a gép ki-be kapcsolásával egyenértékű.
Mit csinál a DAVE chip
A DAVE chip a következő funkciókat látja el:
- hang generálása (3 hang + 1 zajcsatorna)
- memórialapozások vezérlése
- megszakítások vezérlése
- RESET vezérlése
- 1 MHz-s órajel generálása
- Wait ciklusok generálása
Ezeken kívül a DAVE chip generálja a 4 MBájt kezeléséhez szükséges A0-A15-ön felüli címvezetékeket (A16-A21, CART1, CART2), valamint a három I/O strobe jelet a B5, B6, B7-es portok számára.
A Line parameter table kezelése
Az LPT-vel definiálhat a felhasználó egy tetszőleges formátumú képernyőt. Az LPT ún. LINE PARAMETER BLOKK-okból áll, és a fizikai képernyő egy sorára vonatkozó adatokat tartalmazza. Így csinálhatjuk meg, hogy látszólag a keretre írunk, valójában pedig az LPT-t egészítettük ki 9 darab LTB-vel, amelyeket karakteres üzemmódba állítottunk. Az operációs rendszer az LPT-ben meghatározott képernyőt kezeli, a keret méretét pedig a LPB-ben definiáljuk. A képernyő megjelenítését a NICK chio vezérli.
A BASIC rövid ismertetése
Az Enterprise gépben BASIC interpreter van. A videocsatornák megjelenítésénél a felhasználó csak az Y irányú paramétereket adhat meg, az X irányú elhelyezést a rendszer kezeli, illetve a videocsatorna méretétől függetlenül mindig középre helyezi. Az Enterprise minden eszközt csatornákon keresztül ér el.
A BASIC nyelvben ismert az ORD függvény, amelyet az Enterprise is használ. Az Enterprise BASIC interpretere a MICROSOFT 5.0 BASIC-jének változata. (Az MS-BASIC nem ismeri az ORD függvényt - a szerk.)
Az Enterprise BASIC interpretere felhasználja az EXOS nyújtotta lehetőségeket. Az EXOS - Expandable Operating System - bővíthető operációs rendszert jelent. A rendszert a gépi kódú programok az alábbiak szerint hívhatják:
RST 030H
DEFB xxh
ahol xx a meghívott funkció kódja.
A rendszerfunkciók kódjai megtalálhatók a Felhasználói Kézikönyvben. A paraméterátadások az A, BC, DE regiszterekben történnek.
(1987 november) Kopácsy Vilmos
"Kis karácsony, nagy karácsony..." - Mikrogépek, makroárak
Kinek milyen. Van akinek gazdag ajándékokat hoz, utána kellemes emlékek maradnak, míg másoknak szegényesebb, szolidabb. Vannak karácsonykor boldogok, és vannak szorongók, magányosak. Ahány család, annyiféle karácsonyi program. Ami közös az a faállítás és az ajándékozás. Addig azonban végig kell járni a vásárlás stációit, elviselni a nyűgét, eldönteni, hogy pénztárcától függően ki milyen meglepetést szerezzen hozzátartozóinak. És akkor még egyáltalán nem biztos, hogy az elhatározás nyomán megtalálja az elképzelt ajándékot az üzletben, vagy hogy tudja az ajándékozó, mire hol lel.
Itt most azoknak kívánunk segíteni, akik ifjabb vagy idősebb szeretteiknek számítástechnikai berendezést, ahhoz kiegészítőt, illetve programokat akarnak ajándékozni. Szeptemberi körsétánkon felkerestünk néhány üzletet, ahol ugyan pontos adatokkal nem szolgálhattak e termékek áráról, sem mennyiségéről, de körülbelüli összegeket azért mondtak. Természetesen ajánlásunkban nem törekedhetünk a teljességre. Arra viszont igen, hogy megkíséreljünk metszetet adni arról, hogy mi és milyen áron kapható a boltokban.
Az V. kerület Múzeum körút 19-ben található Foto Elektronik reprezentatív üzlete. Hrabovszky Tibor boltvezető készségesen adta a következő felvilágosítást.
- A Commodore számítógépcsaládból Plus/4-et, C16-ot és C64-et megfelelő mennyiségben kínálunk, és van választékunk ezekhez lapcsolható perifériákból is. A Plus/4 magnóval együtt 18 ezer, a C16 magnóval együtt 10-11 ezer, a C64 ugyancsak magnóval 24-26 forint lesz. Ajánlunk ezekhez a berendezésekhet lemezmeghajtót (az 1541-es típus ára 25-28 ezer forint), továbbá nyomtatókat. Ezek közül az MPS-803-ast 25 ezer forintért, a Citizen 120D típusút pedig minőségtől függően 38-42 ezer forintért. Monitorokat is árusítunk a karácsonyi nagy vásárkor: a színesek ára 40 ezer forint lesz, a Philips márkájú monokrom 16-18 ezerbe kerül.
A vastagabb pénztárcájúaknak szól a következő ajánlat. Eredeti IBM PC XT és AT - kiépítéstől függően - 500 ezer, illetve 850 ezer forinttól kapható. A kompatibilis XT ára 150 ezer forintnál, az AT-é 300 ezernél kezdődik. Mind a két típushoz ugyanazok a perifériák használhatók. Ennek megfelelően kínáljuk az EPSON FX-1000-es nyomtatót 115-130 ezer forint körüli áron, a PLOTTER HP7475A-t 400 ezer forintért. Ez utóbbi A/3-as formátumban hat színben rajzol.
Üzletünkben felkészültünk a különböző winchesterek és streamerek (például 10-től 80 Mbájtosig) és különféle számítógép-tartozékok, többek között nyomtatókhoz szükséges festékszalagok (800-1500 forint), floppyk (10 darabos, dobozonként 1000-4000 forint), kazetták árusítására. Forgalomba hoztunk számítógépes részegységeket is: például az IBM PC XT-hez kártyákat, vázat, tápegységet.
A Centrum-hálózat karácsonyra kínált termékeiről Pásztor Tamás rendszerszervező számolt be részletesen.
- Változatlanul árusítjuk - és remélhetőleg lesz belőle elegendő - az Enterprise mikroszámítógépet, 16 900 forintért, és ismét forgalomba hozzuk hozzá a korábban nagy sikert aratott és gyorsan szétkapkodott 15 legkeresettebb játékprogramot. Slágerlista alapján állítottuk össze a leginkább hiányolt játékok listáját, és ezeket igyekszünk pótolni. Újra kaphatók lesznek például a Sorcery , az Autóverseny, az Orient Express, a Beach Head és a sakk (Cyrius II) kazetták. Újdonságként 10 további játékprogrammal jelentkezünk a piacon, amelyeket reméljük tetszéssel fogadnak majd az Enterprise-tulajdonosok. Ezek közül csak példaként sorolom fel a Digitális pókot, a Newton almáját és a Hungaroring Forma-1 autóversenyt.
A fordítóprogramok árusításával bővíteni kívánjuk az Enterprise-hoz kapható programok körét. Így vásárolható majd assembler, LISP, Pascal illetve FORTH program. És ami bizonyára tetszést arat: üzletünkbe kerül az a speciális program, amellyel a Commodore perifériákat csatlakoztatni lehet az Enterprise-hoz. Ilyen lesz a VC-1541-es floppyhoz és a MPS-801-es mátrixnyomtatóhoz alkalmazható program. E termékünk árát még nem tudjuk. Azt viszont igen, hogy háromkötetes könyvsorozattal jelentkezünk. A Hetedhét Enterprise, az EXOS 2.1, EXDOS 1.3 és ISDOS című könyvek 150 illetve 300 forintért kaphatóak majd. Katalógust, programozási segédlet, ötleteket, a géphez trükköket és forráslistát tartalmaznak.
Végül különböző kiegészítőket és tartozékokat ajánlok az Enterprise számítógéphez: monitor csatlakozókábeleket 648 forintért, RS232C interfészkábelt 648 forintért, s ugyanennyiért Centronics interfészkábelt nyomtatóhoz. Az Enterprise, Sinclair hálózati mikrokapcoló ára 618 forint. Segítségével ki- és bekapcsolhatóvá tehető a számítógép. A hobbi kategóriájú DATACOOP PRT-42 BABY típusú mátrixnyomtató kábellel együtt 22 950 forintba, a professzionális EPSON-RX 80-as mátrixnyomtató 49 950 forintba kerül. Mindkettő a szabványos magyar ábécé betűit is nyomtatja.
A VII. kerület, Tanács körút 3/A-ban a nagy műszaki áruházban Martinov László üzletvezető és helyettese, Erki Imre adott tájékoztatást. Mindketten elmondták, hogy a szeptemberi adatok nem véglegesek, csupán informatív jellegűek.
A Sinclair ZX 128K-s berendezés a cég legújabb terméke. Mi 33 ezer forintért árusítjuk. A C64 régebbi típus, így ára várhatóan csökken, 25-30 ezer forintért kapható majd. A Commodore 128 ma még drágább, de karácsonykor valószínűleg 55 ezer forint lesz az ára. A perifériákból a következőket ajánlhatjuk. DATASETTE magnó - a C64-hez - eredeti és hazai gyártmány 4 ezer forint körüli áron kapható. A Sinclair ZX 128K géphez kínálunk kis lemezmeghajtót 10 ezer forintért, és ugyanennyiért árusítjuk az Interface I-et. Új típus a 128K-s Plus 2-es Sinclair gyártmányú, beépített magnóval rendelkező számítógép 35 ezer forintért.
Commodore gépekhez 1541-es lemezmeghajtó 30 ezerért, illetve az 1541C típus 35 ezerért vásárolható nálunk. Ugyanehhez a számítógéptípushoz nyomtatóink is vannak: az MPS-803-as 33 ezer forint, a Citizen 120D 38 ezer, a Seikosha SP 180 szintén 38 ezer forintba kerül. A Panasonic KXP 1090i típusú nyomtató 45 ezerért, az MPS-802-es típus 49 ezerért kapható. Természetesen valamennyi nyomtatónkhoz festékkazettákat is forgalmazunk, 1-2 ezer forint közötti áron.
A floppyválaszték bőséges. Általában 10 darabos csomagolásban kerülnek forgalomba, de darabonként is megvásárolhatók. Egy-, illetve kétoldalas dupla sűrűségű floppyk 700-1500 forinttól kaphatók. Az ugyanilyen tulajdonságú márkásak viszont 2-4 ezer forintba kerülnek. A márkás 3M típusú 3,5", egyoldalas, dupla sűrűségű, darabja 800 forint. Széles skáláját kínáljuk a különböző kazettáknak, játékprogramoknak 300-1000 forint közötti áron. A Quick Shot I., II., IX. és X. botkormánytípusok ára 1000-3000 forint.
Az IBM PC XT és AT gépek eredeti kiépítéstől függően 500 ezer forinttól kaphatók. Az IBM PS/2-es modell 30 (a legújabb berendezés) 900 ezer forint. Az IBM PC XT/AT kompatibilis gép - 640k, multiprogramozhatóság, monokrom monitorral, flopyymeghajtóval (360k) - 105 ezer forint, s ugyanehhez a 20 Mbájtos winchester 60 ezer forint. Az IBM PC-hez kapható kompatibilis Philips monitorok ára 50 ezer forint.
A nyomtatók közül a Manesmann-Tally MT80 PC-t ajánljuk 49 ezerért és az EPSON FX-1000-et 114 ezer forintért. A Canon PC5 típusú fénymásoló ára 150 ezer forint.
A Skála Metró Kereskedelmi Leányvállalat Metro-Comp boltjában a VI. kerület, Jókai utca 40-ben Hatlaczki Tibor osztályigazgató a következőket mondta karácsonyi kínálatukról.
- Számítástechnikai termékeink közül az IBM PC XT/AT kompatibilis gépek, kiegészítőktől függően 140 ezer forinttól kaphatóak. Az ezekhez való nyomtatók választékából ajánlom az EPSON FX-1000-et (130 karakteres) 125-130 ezer forintért, illetve a Citizen 120D-t (kisebb írásszélességű, vagyis 80 karakteres) 40 ezerért.
A C64-et várhatóan 15 ezer (!) forintért hozunk forgalomba a karácsonyi vásár idejére. Ehhez a perifériák sem lesznek drágák, hiszen a floppymeghajtó 16-20 ezerbe, a Philips színes monitor 35 ezerbe, a Commodoere nyomtató pedig - a MPS-803-as típus - 28 ezerbe kerül majd. A Commodore 128 ára 49 ezer, a hozzá tartozó 1571-es floppymeghajtó szintén 49 ezer, a Citizen 120D (80 karakteres) nyomtató 40 ezer forint lesz. A termékekre általában fél-, illetve egy év garanciát vállalunk.
Alkatrészeket is árusítunk. Kaphatók majd az IBM PC XT-hez és az IBM PC AT-hez gépépítéshez alkalmas alkatrészek, melyek ára mindegy 10-15 százalékkal olcsóbb, mint a kész terméké.
Testvérboltunkban, a hozzánk közel eső Metro-Printben (V. kerület, Bajcsy-Zsilinszky út 78.) hasonló termékeket hasonló árakon hoznak forgalomba.
A Novotrade Octa Soft és a Novotrade Delta Soft új játék- és oktatóprogramokkal kedveskednek a számítógép tulajdonosoknak. Ezekről elöljáróban annyit, hogy áruk a cikk írásakor még nem volt végleges.
A Newton almája rejtvény-játékprogrammal (360 forint) valamennyi Commodore-on, Spectrumon, Videoton TV Computer-en és Enterprise-on szórakozhatnak tulajdonosaik. Külön érdekessége ennek az újdonságnak, hogy a programmal nyerni is lehet!
A Viktor Piktor (250 forint) játékkal 101 labirintus útvesztő járható be, s ezek falát festegetni, színezni is kell. Szegény Viktort kóborlása során szellemek üldözik. A program Plus 4-es és C16-os mikroszámítógépen futtatható. Az Elvarázsolt kastély (350 forint) Plus 4-re íródott, s azoknak ajánljuk, akik szeretik az izgalmas, kalandos játékokat. A Water Polo (450 forint) C64-es géphez használható. A vízilabda kedvelőinek nyújt elsősorban élvezetes szórakozást. A Kocka póker (340 forint) Plus 4-re íródott, s a hagyományos számítógépes változataként játszható.
Néhány oktatóprogramot is ajánlunk. Így például a Nyuszi olvasni tanít (950 forint) programot, melyet Plus 4-re és C64-re készítettek. A 6 kazettából álló csomaggal az alsó tagozatosokhoz kívánják közelebb vinni az olvasást. Szintén Plus 4-es illetve TVC számítógép tulajdonosok vehetik hasznát az Optika (290 forint) oktatóprogramnak. Ez a szoftver a felső tagozatos fizikaórák szemléltető eszköze lehet. A 3 kazettából álló Gyorsolvasó programot Plus 4-re (a programcsomag 500 forint) és C16-ra (420 forint a 3 kazetta) írták. Ígérik kiötlői, hogy 3 hét alatt a programmal az olvasás sebessége és megértési szintje javítható.
A Videoton TV Computer tulajdonosoknak készült a következő 2 program. Az Öt labdajáték (350 forint) a sport rajongóinak lesz üdítő szórakozás. A Bűvös négyzetek (280 forint) oktatóprogram az általános iskola 3. osztályától segít a matematika útvesztőiben eligazodni.
És végül egy különleges csemegét ajánlunk. Az irodai munka könnyítésére készítették a Deltex Plus-t (2500 forint), mely a Robotron írógépekhez illeszthető szövegszerkesztő cartridge.
Reméljük, mindenki megtalálja az ízlésének és pénztárcájának legmegfelelőbbet.
(1987 december) Krasznai Éva
Szerviz a város peremén...
Ellátogattunk a Professional Országos Számítógépszervizbe, ahol Gottfried Tibor, a lakossági szolgáltatásokat végző részleg vezetője az Enterprise-tulajdonosok egyre népesedő táborának szóló hasznos tanácsokat adott. Ezeket mi is olvasóink figyelmébe ajánljuk, mielőtt hibás(nak vélt) gépükkel a szervizbe rohannának.
Billentyűzet és botkormány
Talán sokan nem is tudják, hogy ha óvatosabban bánnak a kényesebb mechanikai részekkel, és az elektronikára vonatkozó néhány szabályt betartanak, rengeteg bosszúságtól kímélhetik meg magukat.
A gép használata során a billentyűzet és a botkormány van a legnagyobb igénybevételnek kitéve. Az Enterprise 128 billentyűzetének, az ún. fóliabillentyűzetnek egyik nagy előnye, hogy kis helyen elfér; ennek köszönhető a gép lapos kivitele. Hátrányai közül kiemelendő, hogy óvatos kezelést igényel. Ez persze nem azt jelenti, hogy úgy kell vigyázni rá, mint a hímes tojásra, és minden billentyű lenyomása előtt meg kell gondolni, nem fölöslegesen ütjük-e le. Csupán arról van szó. hogy ha kíméletesen bánunk a billentyűkkel, nem nyomjuk őket túl erősen, sokkal kisebb a valószínűsége annak, hogy tönkremennek. A gép egyébként minden billentyű leütését hangjelzéssel nyugtázza; így tájékoztatja a felhasználót arról, hogy nem kell erősebben nyomnia a billentyűt, mert már érzékelte azt.
A botkormánynak még nagyobb igénybevételt kell elviselnie, hiszen nemcsak a kurzor, hanem a legtöbb játék is azzal irányítható. Gyakori eset, hogy az ember a játék hevében a kelleténél erősebben tolja a botkormányt; ez szinte természetes is. Az is érthető, hogy sokan szeretnék a gépet játékra is használni. Aki teheti, külső botkormányt használjon a játékhoz, mert azt kifejezetten erre a célra készítették, és sokkal jobban bírja a strapát.
Amit a magnóról tudni kell
A géphez tartozó magnó sem a legmasszívabbak közül való. Már a kazettacserét is jó, ha óvatosan végezzük, de a magnó legérzékenyebb pontja a számláló, ezen belül is ennek nullázógombja; elég könnyen törik.
Finoman kell bánni a magnó és a gép csatlakozóival is. Volt már rá példa, hogy valaki olyan erősen nyomta a gépbe a magnó csatlakozóját, hogy az letört a panelről. Ezeknek a csatlakozóknak nincs más felfüggesztésük, csak az a három forrasztás, amivel a panelhoz kapcsolódnak. Ezért ha mód van rá, ne bolygassuk a már összeállított konfigurációt, és lehetőleg minél ritkábban nyúljunk a csatlakozókhoz.
Hogyan csatlakozzunk?
A csatlakozókkal kapcsolatban rá is térhetünk a legfontosabb elektronikai szabályokra. Nagyon fontos tudnivaló, hogy a csatlakozókat csak akkor szabad kihúzni vagy bedugni, ha a gép ki van kapcsolva. A vezetékekben ugyan normál állapotban nincs túl nagy feszültség, de előfordulhat, hogy az ember elektromosan feltöltődik, és ez a töltés a gépbe jut. Ilyenkor ott a megengedettnél nagyobb feszültség keletkezik, amely könnyen eljuthat a bonyolult integrált áramkörökig, és tönkreteheti azokat.
A tápegységről
Ügyelni kell arra, hogy a tápegység szabadon legyen. Ne rakjunk rá semmit (például könyvet), ami gátolná a hűtését! A tápegységet úgy tervezték, hogy a lehető legkevésbé melegedjen, de a hőfejlődés így is elkerülhetetlen.
Ahhoz, hogy jó minőségű és zavarmentes képet kapjunk, a gépet a tévétől legalább másfél méterre kell elhelyezni. Ez egyébként egészségügyi szempontból is kívánatos, hiszen aki túl közelről nézi a tévét, rontja a szemét.
Vigyem, ne vigyem?
Persze előfordul, hogy a leggondosabb bánásmód ellenére is meghibásodik a gép. Ha viszont elromlik, nem kell feltétlenül az egész berendezést elcipelni a szervizbe; sokszor elég, ha csak a hibás egységet visszük el. A hiba helyét úgy a legkönnyebb megtalálni, ha egy másik konfiguráció is rendelkezésünkre áll, és egyenként cserélgetjük a különböző egységeket és kábeleket. Ha erre nincs módunk, akkor a hiba jellegéből indulhatunk ki. Például ha bekapcsolás után a képernyő nem változik meg. és a gép LED-je sem jelzi a bekapcsolt állapotot, akkor minden valószínűség szerint a tápegység hibás. Ha bekapcsolás után megjelenik a megszokott kép, és a tesztelés után a villogó ENTERPRISE feliratot is látjuk, de egy billentyűt lenyomva nem jelentkezik be a BASIC, akkor biztosan a cartridge rossz. A hibás csatlakozót vagy vezetéket is megtalálhatjuk, ha ezeket óvatosan megmozgatva, változást észlelünk.
Aranyszabály, hogy ha valamilyen funkció nem működik, akkor a gép használója először magában keresse a hibát.
Legtöbbször a magnóról való betöltéssel van probléma. Ha a gép nem tölti be a programot a kazettáról, a hibának többféle forrása lehet. Gyakran csak a magnó feje piszkos, ezért tisztítsuk meg alkoholos ruhával. De más bajok is lehetnek a magnetofon fejével, mert nem mindegy, hogy hogyan áll; helyzetét a magnó előlapján található fejbeállító csavarral változtathatjuk. A módszer a következő. Betesszük a beolvasandó kazettát a magnóba és elkezdjük lejátszani. Közben kis csavarhúzóval csavargatjuk a fejbeállító csavart. Akkor jó a fejállás, amikor a legélesebb, legmagasabb hangot halljuk. Aki még soha nem csinált ilyet, csak hozzáértő személy jelenlétében nyúljon a csavarhoz!
Előfordulhat, hogy a tévé okozza a töltési hibát; vannak ugyanis olyan típusok, amelyekkel a gép nem hajlandó tölteni. Ezt egyszerű tévécserével megállapíthatjuk, vagy ha nincs még egy tévénk, akkor meg kell próbálni a betöltést a tévé kiiktatásával. Ha így sikerül, akkor biztosan azzal van a gond. Ilyenkor csak a gépet kell bevinni a szervizbe, ahol egy kis átalakítással megszüntetik a hibát.
A szervizben az átlagos javítási idő három-négy munkanap. A javítást végző szakemberek készséggel válaszolnak mind a hardverrel, mind a szoftverrel kapcsolatos kérdésekre.
(1988 január) Romvári Gábor
Az ENTERPRISE-al
hosszú távon számolhatunk A kezdet... Ígéret és valóság Az ígéretek megvalósulnak? Valóság és távlatok Az évforduló margójára |
|||||||||||||||||||||||||||||||||||||||||
(1988 Július) Pinke György |
|||||||||||||||||||||||||||||||||||||||||
Csatlakozzunk,
de mivel? A koncepció áldozatai Tv és számítógép kapcsolata
Zárójelben az EP-tulajdonosok alkalmazási mutatóit tüntettük
fel.
Az újabb típusú Orion és Videoton tv-k DIN, a nyugati tv-k Siemens, ITT EUROSCART bemenettel rendelkeznek. RGBY összeköttetésnél legrövidebb a jel útja: RGBY - kábel - RGBY. Az előzőekhez képest a javulás még szembetűnőbb: a kép tisztább, a színek kontrasztosak, a változás azonban már nem olyan mértékű, mint az RF és a CVS közötti volt. A normál tv-k nagy többsége nem rendelkezik ilyen csatlakozási lehetőségekkel. Sajnos a személyi számítógépeknél sincs meg mindenhol ez a kimeneti lehetőség. Az EP-nél, az Amstrad és a Scheider számítógépeknél azonban megtalálható. Az Enterprise által biztosítható Interlace technika már csak ilyen nagy felbontású monitorral érhető el. Ilyen esetben a pixelek száma a képernyőn eléri az 1280*720-as képfelbontást. Hasznos tarácsok Monitorkábelek Enterprise gépekhez
Minősítés Kérdések (1989 november) P. T Válaszoltak a tulajdonosok Várakozáson felüli érdeklődés Le kell vonni a tanulságokat! Továbbra is másolás
A hardver sikeresebb
Tervek és tanulságok (1989 december) Pinke György |
Enterprise -
vállalkozás, avagy miért plusz a PLUS?
A CentrumNagyker - amely sokáig kizárólagos hazai forgalmazója volt az Enterprise
számítógépeknek és tartozékoknak - a több mint kétéves szakmai ismeretanyag
és információs tömeg birtokában saját fejlesztésbe kezdett. A kifejlesztett
termékeket maga menedzseli, forgalmazza, terjeszti - stílszerűen az Enterprise
nevéhez: vállalkozik is! Nemrégen az EP márkaboltokban megjelent az Enterprise
PLUS SOFTCART fantázianevű firmware-termék (IC-be égetett program. Alapját az
a felismerés adta, hogy az eltelt két év alatt kifejlődött egy magasabb szintű
igény, amely most már nem elégszik meg a felhasználói programok és utilityk
kazettás változatainak szűkös lehetőségeivel.
Egyes fejlesztési munkák során a program betöltése kazettáról nehézséget okozhat
a felhasználónak. A körülményes állománykezelés és a sok vesződséggel járó fordítás
még a legtürelmesebb. fejlesztő kedvét is hamar elveszi. Az Enterprise bal oldali
csatlakozási felülete, a ROM BAY így szinte kínálta a megoldást a SOFTCART elnevezésű
újdonság bevezetéséhez. Ugyanakkor az is tény, hogy jelenleg csak egy szűk réteg
engedheti meg magának az EX-DOS lemezvezérlő kártya és vele együtt egy mono
vagy dual floppy használatát. Nem beszélve arról, hogy a Centrum Áruházak számítástechnikai
választékából még mindig hiányzik a fordítók és utilityk lemezes verziója.
ROM BAY
Mindenki előtt ismert, hogy az Enterprise egyelőre 4 x 16 kbájtos ROM-ot képes
kezelni a bal oldali cartridge csatlakozója felől. Ennek a ténynek az ismeretében
- és annak az információnak tudatában, hogy a felhasználók kezdettől fogva kedvezően
fogadták a BASIC interpreter modulban történő elhelyezését - született a SOFTCART.
A forgalmazó információja szerint 2000 darab PLUS cartridge kerül folyamatosan
a boltokba. A 2950 forintos irányár meglepően olcsó a korábbi drága kiegészítők
és tartozékok áraihoz képest. Az ár alapján úgy tűnik, sikerült a termék gyártása
során igen kedvező arányt kialakítani az import és a hazai alkatrészek között.
Enterprise PLUS cartridge
Az esztétikus, vákuumfóliás kiszerelésben forgalomba kerülő termék az alábbiakat
tartalmazza. Egy műanyag cartridge-dobozt, egy háromfoglalatos NYÁK-lapot, egy
27128 jelű, japán EPROM-ot, egy használatba vételi engedélyt és végül egy öntapadós
színes cartridge-címkét - ez utóbbi kettő a használati utasításban van benne.
Az EP PLUS jelölésű gyári EPROM a középső foglalatban van elhelyezve. A bevezető
NYÁK-sínhez közelebb eső másik szabad foglalatba is csak 16 kbájtos EPROM helyezhető
el, a harmadik foglalat 1 db 32 kbájtos EPROM fogadására alkalmas.
Üzembe helyezés
Az EP PLUS cartridge üzembe helyezésére három lehetőség kínálkozik. A vevőnek
azonban minden esetben célszerű magával vinnie az eredeti BASIC cartridge-et
az áruházba, így mindjárt a helyszínen kipróbálhatja a terméket. A legkevesebb
probléma azokkal az angol cartridge-ekkel van, amelyekhez csak egy foglalat
tartozik: Ilyen a forgalomba hozott gépek 86 százaléka. A gépek 3 százaléka
olyan speciális, kétfoglalatos NYÁK-kal került az üzletekbe, amely. tartalmazza
az angol BASIC interpreter PROM-ot és egy 128 kbájtos EPROM-ot, a német BASIC
interpretert. A fennmaradó 11 százalék esetén azonban a 27256-os EPROM szolgál
arra, hogy annak alsó részében a német, a felső részében az angol BASIC interpreter
helyezkedjen el.
Az Enterprise PLUS-nak csak az angol BASIC interpreterre van szüksége. Az EPROM
ki- és beszerelését végezheti az eladó (ki vannak képezve) vagy a vevő, amennyiben
szakember. De ha sem az eladó, serre a vevő nem meri behelyezni az EPROM-ot
a foglalatba, akkor az EP márkaszerviz, illetve az IC-k cseréjét a gyártó Titán
Kisszövetkezet (Bp. XIV., Nagy Lajos király útja 110-112.) percek alatt elvégezheti.
Azok, akiknek beégetett EPROM-juk van, vagy leadják az EPROM-ot és kapnak egy
angol BASIC PROM-ot, vagy a CA. FLÓRIÁN Alkatrész Shopban vásárolhatnak külön
egy angol BASIC PROM-ot, és akkor megmarad a 27256-os EPROM-juk is. Újszerű
a firmware-termékben, hogy valamennyi EPROM-nak önálló gyári sorszáma van, amelyet
a forgalmazó a vevő nevével együtt számítógépes, nyilvántartásba vesz. Így kívánja
biztosítani, hogy a folyamatos fejlesztések eredményei eljussanak a régi vevőkhöz.
Ez utóbbi tényt a két fél közötti használatba vételi engedély szabályozza.
Mitől plusz a PLUS!
A fejlesztési sorozat első gyümölcse
Már gőzerővel fejlesztik az EP PLUS filozófiáját alapul vevő, GAMECART elnevezésű
termékcsalád tagjait. Egy a közeljövőben megalakuló kft. segítségéven közel
20 játékprogram jelenik meg cartridge-ban, s így megoldhatónak látszik a játékprogramok
bérleti rendszerének kialakítása. Hiszen az egyre növekvő kazettaárak miatt
jelentősen visszaesett a forgalom a Centrum Áruházak hálózatán belül. Az. említett
játékok bérlési lehetőségével minden bizonnyal nemcsak a ma már közel 200 program
választéka fog növekedni, hanem az árbevétel is. Az elképzelések szerint egy
bizonyos bérleti idő elteltével - illetve az EURSOFT Club tagjainak kedvezményes
áron - felkínálják megvételre a GAMECART -márkájú játékmodulokat.
A fejlesztések másik területe a felhasználó-orientált témakörök megvalósítása
egy cartridge-ban. Bizonyára örömmel szereznek tudomást á zenerajongók a MIDI
intérfész fejlesztéséről. Az aktív memóriakártya elvén működő MEDICART, JUSTISCART,
PETROLCART, XCART elnevezéses célorientált alkalmazási módok a pacientúrával
is rendelkező orvosoknak; ügyvédeknek, szállodáknak nyújthatnak speciális szolgáltatásokat.
Ezek azonban igen drága berendezéseikkel és egyéb járulékos eszközeikkel belátható
időn belül aligha kerülnének nálunk alkalmazásra.
Minősítés
Kedvezőnek mondható az ár / teljesítmény / használhatóság összefüggések vonatkozásában
az EP PLUS cartridge. Emeli a szolgáltatások értékét a használatba vételi. engedélyben
vállalt kötelezettségek újszerűsége. Hiányoljuk azonban, hogy különféle billentyűzetek
generálásakor az eltérő betűtípusokat nem, lehet öntapadós matricával felülragasztani.
Kissé szokatlannak tűik az eredeti EP BASIC cartridge-ből a BASIC interpreter
PROM kivétele, illetve az a tény, hogy a cartridge nélkül kockázatos elindulni
vásárolni: Jelentős hibaforrás lehet az egy vonalról 8 vonalra dekódoló demultiplexor,
a szovjet gyártmányú K555ID7. Úgy véljük, jobb lett volna például a Texas SN74LS138N
vagy az SN74ALS138N. Szintén zavaró a góliát méretű magyar gyártmányú 100nF-os
szűrőkondenzátor. A NYÁK-lap felületi kiképzése és az eredetivel szinte azonos
megjelenésű műanyag doboz minőségi munka.
Mindent egybevetve, ha a forgalmazó és a fejlesztő betartja ígéretét, hogy még
az ősszel és a jövő év tavaszán a VSZM Enterprise Klubban egy, a felhasználókkal
megtartandó szakmai bemutató alkalmával felvetett problémákat, programlistákat
és a hiányok pótlását egy újabb verzióban. az eredeti EPROM-ba beégetve kiadja,
minden bizonnyal kárpótolhatja az EP-felhasználók kissé megcsappant, reményét
vesztett és hitehagyott táborát.
A forgalmazótól kapott legfrissebb információ Szerint az eddig eladott PLUS
cartridge-ek száma már a 300-at is meghaladja.
P.T
Rendszerfejlesztési eszközök - Az Assembler
Az ASSEMBLER-ekről általánosságban
Az ASSEMBLER név magyarul összeállítót jelent, de a magyar számítástechnikai szaknyelvben az eredeti angol elnevezés honosodott meg. Az ASSEMBLER feladata, hogy a felhasználó által megírt assembly szintű forrásprogramot gépi kódokat tartalmazó tárgyprogrammá alakítsa át. Ezt az átalakítást (fordítást) igen gyakran alkalmazott szakkifejezéssel assemblálásnak is hívják.
Az assembly szintet az ún. gépi szinttől az különbözteti meg, hogy a gépi szintű programozás során az utasításokat és operandusaikat hexadecimális (bináris) formában kell megadni, az assembly szinten írott forrásprogramban pedig az utasításkódok és operandusok helyén szimbólumokat - mnemonikokat - alkalmazhatunk, amelyek hexadecimális (bináris) megfelelőit az ASSEMBLER belső táblázatai tartalmazzák.
Az ASSEMBLER tehát az assembly szintű forrásprogram fordítását hajtja végre, melynek eredményeként létrejön a tárgyprogram. Mint említettük, az assembly szintű forrásprogram szimbólumokat is tartalmazhat. Az ASSEMBLER-ek ezenkívül általában megengedik, hogy az operandusok megadásakor különböző számrendszerekben (bináris, oktális, decimális, hexadecimális) megadott numerikus konstansokat, karakteres konstansokat (sztring = karakterfüzér), egyszerű aritmetikai operátorokat (+, - , *, /), illetve az előbbi elemekből képzett kifejezéseket adhassuk meg.
Az ASSEMBLER működése ún. menetekre tagolódik. Az ASSEMBLER minden egyes menet végrehajtása során végigolvassa a forrásprogramot. Aszerint, hogy a fordítást hány menetben hajtja végre, egy menetben fordító (egymenetes) és két menetben fordító (kétmenetes) ASSEMBLER-ről beszélhetünk.
Itt nem részletezett, számos ok miatt általában kétmenetes ASSEMBLER-eket alkalmazunk. Az alábbiakban vázlatosan ismertetjük az egyes menetek feladatait.
1. menet
A menet végrehajtása során az ASSEMBLER - miközben végigolvassa a forrásprogramot - felépíti az ún. felhasználói szimbólumtáblázatot. E táblázatba kerülnek mindazok a szimbólumok, amelyek nem szerepelnek az ASSEMBLER ún. állandó szimbólumtáblázatában.
Az ASSEMBLER két táblázattal dolgozik: az állandó szimbólumok és a felhasználói szimbólumok táblázatával. Az állandó szimbólumok táblázata egy - az ASSEMBLER indításának pillanatától meglévő - a működés során változatlan táblázat. A gépi utasítások, direktívák (lásd később), regiszterek nevének mnemonikjait (szimbólumait) és a hozzájuk rendelt értéket (gépi kódot) tartalmazza.
A felhasználói szimbólumok táblázata a forrásprogram végigolvasásakor az ASSEMBLER által felismert mindazon szimbólumokat tartalmazza, amelyek nem találhatók meg az állandó szimbólumok táblázatában. A felhasználói szimbólumtáblázat kezdetben üres, de miközben az ASSEMBLER a forrásprogramot olvassa, egymás után felismeri azokat a szimbólumokat, amelyeket a programozó valamely cím vagy adat szimbolikus azonosítására választott - ezek a felhasználói szimbólumok -, és ezeket felveszi a felhasználói szimbólumok táblázatába. Ha ezzel egy időben az ASSEMBLER az adott szimbólum értékét is meg tudja állapítani - és a táblázatban rögzíti is azt -, a kérdéses szimbólumot pre-definitnek (előre definiáltnak) nevezzük. Ha a táblázatba rögzítés során a szimbólum értéke az ASSEMBLER előtt még ismeretlen - és majd csak később fogja tudni megállapítani és rögzíteni -, akkor post-definit (utódefiniált) szimbólumról van szó.
A felhasználói szimbólumok értékeinek megállapítására az ASSEMBLER ún. helyszámlálója (location counter) szolgál. A helyszámláló a fordítás megkezdésekor kezdőértéket kap, majd a forrásprogram fordítása során értéke az éppen fordított utasítás hosszával megnő. Így például ha a helyszámláló pillanatnyi értéke 1564 és az éppen fordított utasítás 3 bájt hosszú, a helyszámláló értéke 1567 lesz.
A forrásprogramban gyakran alkalmazunk ún. címkéket. A címke a forrásprogram valamely pontjának (címének) szimbolikus neve. A fentiek szerint a címkékhez rendelt érték tehát nem más, mint a helyszámláló aktuális értéke a kérdéses szimbólum definiálásának pillanatában.
Miután az ASSEMBLER a forrásprogramot végigolvasta és felépítette a felhasználói szimbólumok táblázatát, befejeződik az 1. menet. Ennek során tehát lényegében csak a szimbólumtáblázat épül föl, kódgenerálás nincs.
A felhasználói szimbólumtáblázat létrehozására azért van szükség, hogy az ASSEMBLER a gépi kód összeállításakor a szimbolikus operandus helyére - a táblázatból kiolvasott - megfelelő értéket helyettesíthesse. Ha azonban ez a szimbólum post-definit, akkor a szükséges szimbólumérték hiányában a kódgenerálás nem hajtható végre. Ezért biztosítani kell, hogy minden szimbólum pre-definit legyen addigra, amikor a kódgenerálás megkezdődik. Ezt azáltal lehet megvalósítani, hogy az 1. menet során az ASSEMBLER létrehozza a felhasználói szimbólumtáblázatot.
Azokat a szimbólumokat, amelyek az 1. menet végére sem válnak pre-definitté (értsd ezen, hogy nem kapnak értéket), nem definiált szimbólumnak (undefined symbol) nevezzük.
2. menet
A 2. menetben készül el a tárgyprogram. Ennek során az ASSEMBLER ismét végigolvassa a forrásprogramot, és azt sorról sorra átalakítja a kérdéses sorban álló assembly szintű utasításnak megfelelő gépi kódra.
Az adott sor értelmezésekor az ASSEMBLER képes különféle szintaktikai (formai), illetve szemantikai (értelembeli, logikai) hibák felismerésére. A hiba észlelésének tényét az ASSEMBLER hibajelzés formájában közli a felhasználóval, majd megkísérli a forrásprogram további fordítását annak érdekében, hogy a program esetleges további hibáit is feltárja. Ezt abban az esetben képes megtenni, ha az előfordult hiba nem ún. fatális hiba. Fatális hiba fellépésével ugyanis a további fordítás már nem lehetséges. (Ilyen fatális hiba például az, hogy a program olyan sok felhasználói szimbólumot tartalmaz, amelyet az ASSEMBLER táblázat korlátozott mérete - vagyis a RAM korlátozott mérete - miatt már nem képes tárolni.)
Az a tárgyprogram, amely egy hibás forrásprogramból keletkezik, értelemszerűen nem tekinthető hibátlannak, és ezért általában nem használható.
Az ASSEMBLER-ek kapcsán gyakran beszélnek az ún. 3. menetről. Ez a menet lényegében nem más, mint a 2. menet, de célja nem a tárgyprogram, hanem az ún. fordítási lista létrehozása. Ez tulajdonképpen a forrásprogram másolata, amely azonban sorról sorra tartalmazza a helyszámláló aktuális értékét és az adott sorból nyert gépi kódot, valamint hibás sor esetén a hibára jellemző hibajelzést. A fordítási lista tehát lényegében az elvégzett átalakítás dokumentuma. A fordítási listák mindezek mellett általában tartalmazzák a felhasználói szimbólumtáblázat tartalmát névsorba rendező, az egyes szimbólumokhoz rendelt értékekkel kiegészített listát.
Ha a keletkező tárgyprogram és a fordítási lista tárolására két különböző perifériát alkalmazunk - például lyukszalaglyukasztót és sornyomtatót -, a 2. és 3. menet feladatait az ASSEMBLER egyszerre, egy menetben képes végrehajtani.
Az ASSEMBLER-ek a gépi utasítások mnemonikjainak értelmezésén túl még néhány, az ASSEMBLER működését közvetlenül vezérlő ún. direktíva (más néven pszeudo-utasítás) felismerésére és végrehajtására is képesek. Ezek a direktívák általában olyan feladatok elvégzésére utasítják az ASSEMBLER-t, amelyeknek hatása a tárgyprogramba már nem kerül át, tehát csak az ASSEMBLER működését befolyásolja. Van azonban néhány direktíva, amely a tárgyprogramra is hatást gyakorol. A direktívákat funkciójuk szerint általában a következő csoportokba sorolhatjuk:
Az ASSEMBLER-ek általában képesek ún. relokálható (áthelyezhető) tárgyprogramok létrehozására is. Ha a tárgyprogram olyan kiegészítő információkat tartalmaz, amelyek felhasználásával a tárgy program egy, a fordítás során feltételezett betöltési címtől különböző tárcímen is a tárba tölthető és futtatható, vagyis áthelyezhető, akkor mondjuk, hogy relokálható.
Az ASSEMBLER-ek alkalmazásának további nagyarányú javulását eredményezi, ha az ASSEMBLER képes ún. makrók feldolgozására is. A relokálással és a makrók felhasználásával kapcsolatos részletes ismeretek tárgyalása nem célja ennek az írásnak. A téma alapos elemzése megtalálható például J. Donovan Rendszerprogramozás (Budapest, 1977. Műszaki Könyvkiadó) című könyvében.
(1987 december) Dr. Kónya László
Rendszerfejlesztési eszközök - A monitor
A MONITOR-okról általában
A MONITOR egy gépi kódban megirt, általában 1-4 kbájt nagyságú "kisegítőprogram". Segítségével tudja a felhasználó a saját gépi szintű programjának működését ellenőrizni és az előforduló hibákat javítani. Ezt a folyamatot a program "belövésének" nevezzük. A számítástechnikai zsargonban a debug (ejtsd: dibag - poloskairtás) kifejezés is eléggé elterjedt. A program belövése során általában a következő funkciókra van szükség:
Tartalom megjelenítése és esetleges módosítása
A felhasználó programjának tesztelése, belövése során gyakran van szükség a tár egyes rekeszeinek vagy egy egész tártartománynak kilistázására a képernyőre. Ezzel egyrészt a program egyes utasításai, másrészt a program által használt változók ellenőrizhetők és a kívánt értékre módosíthatók. Az erre szolgáló parancs segítségével tudunk például kisebb rutinokat beírni a tárba, vagy a már meglévő program hibás utasításait átírni. A kilistázott és beírt adatok mind hexadecimális értékek. Ebben a számrendszerben tizenhat különböző számjegy van: 0 1 2 3 4 5 6 7 8 9 A B C D E F. Következésképpen 0AH (H a hexadecimális számrendszert jelzi) értéke a tízes számrendszerben 10, 0BH = 11 ,... 0FH = 15, ezután következik 10H, ami a decimális számrendszerben 16.
A "belőves" alatt álló programban lévő hibák gyors felderítését hatékonyan segítheti, ha a program egyes jellemző pontjain a processzor regisztereinek - amelyeknek tartalmán az utasítások különböző műveleteket végeznek - aktuális értékét ki tudjuk íratni a képernyőre. Ezzel gyorsan megtalálható az a pont (utasítás, programlépés), ameddig a program jól működik és amely után a hibát keresnünk kell. Szintén alapvető elvárás egy MONlTOR-tól e regiszterek tartalmának módosíthatósága. Erre például akkor lehet szükség, ha csak egy programrészt akarunk vizsgálni, és ennek tesztelése előtt a regisztereket egy meghatározott tartalommal fel kell tölteni.
Program indítása
A MONITOR-nak ez a funkciója teszi lehetővé, hogy a felhasználó egyrészt a rendszerben levő többi programot (EDITOR, ASSEMBLER), másrészt a saját maga által írt és futtatni kívánt programokat megindíthassa. Az indítási (futtatási) parancs mögött mindig szerepel egy hexadecimális szám, amely a program kezdőcíme.
A programnak a futás végén mindig vissza kell térnie a MONlTOR-ba.
Töréspont elhelyezése a programban
A program belövése során igen nagy segítséget nyújt, ha a programot egy, még az indítás előtt kijelölt címen is meg lehet állítani. Ekkor ugyanis - mint már említettük - a regiszterek és a programban használt változók tartalmainak vizsgálatával könnyen eldönthető, hogy a program eddig a pontig helyesen vagy hibásan működött. A teljes programot több, logikailag jól elhatárolt részre bontva a hibásan működő programrész rendkívül gyorsan meghatározható.
A program leállítása úgy történhet, hogy a kérdéses címen levő utasítást egy ugró-utasításra cseréljük, mely a vezérlést - ha a program futása során az adott címet elérte - a MONITOR-nak adja át.
Természetesen ilyen leállítási feltételt - azaz töréspontot, angolul breakpoint - csak RAM-ban (Random Access Memory = véletlen elérésű tár, azaz írható és olvasható is) elhelyezett programba lehet beiktatni. ROM-ban (Read Only Memory - csak olvasható tár) vagy EPROM-ban (Electrically Programable Read Only Memory - elektronikusan programozható, csak olvasható tár) lévő programoknál a töréspont így természetesen nem alkalmazható. A RAM-beli program továbbindítása előtt a MONITOR a töréspont címén lévő eredeti utasítást visszaírja a helyére, és erről a címről folytatódik a program futása.
Lépésenkénti programvégrehajtás
Ha a töréspontok elhelyezésével sikerült meghatározni azt a programrészt, amelyben a program hibásan működik, akkor e részen belül a hibás utasítás vagy utasítássorozat megtalálásának módja a lépésenkénti programvégrehajtás. Ebben az üzemmódban ugyanis a felhasználói programnak (a belövés alatt álló programnak) mindig csak egy utasítása hajtódik végre, s így lehetőség van a regiszterek vagy a tár vizsgálatára, vagyis a végrehajtott utasítás helyes működésének ellenőrzésére.
Program rögzítése háttértárolón és visszatöltése
A programok fejlesztése mindig a tár RAM részében történik. A RAM-ok a tápfeszültség kikapcsolása után elveszítik a bennük lévő információt. Mivel egy program alapos belövése hosszabb időt is igénybe vehet, ezért szükség van a program tárolására valamilyen módon. Erre szolgálnak az ún. háttértárak, amelyek aránylag nagy tömegű adat befogadására képesek. Ezek általában mágneses tárolók, például magnókazetta vagy lemez. Régebben a lyukszalagot is kiterjedten alkalmazták.
(1988 január) Tick József - Dr. Kónya László
Fordítás vagy értelmezés?
Programok írásához - egyéb kellékek mellett - nem nélkülözhető valamilyen programozási nyelv használata. A nyelvek bábeli zűrzavaráról már könyvtárnyi irodalom szól. Most nem nyelvekről, hanem azok számítógépes "megvalósításáról" (implementációjáról) lesz szó. A téma a számítástudomány területéhez tartozik. Van azonban néhány olyan vonatkozása is, amely minden számítástechnikus és érdeklődő számára érdekes lehet.
Az alapprobléma onnan ered, hogy az emberek nem szívesen tanulják meg a gépek bináris "nyelvét", a gépek pedig - érzelemnyilvánítás nélkül ugyan, de - maguktól nem értik az emberek nyelvét. Ezért az élő nyelvek helyett egyszerűsített, pontos és betartandó szabályokkal definiált nyelvek jöttek (és jönnek) létre a gépekkel való érintkezés (programozás) megvalósítására. Sajnos, a gépek egyedül még ezeket a nyelveket sem értették, a programozók pedig már nem akartak a nyelv emberi vonásaiból tovább engedni.
A konfliktus kétféle módon oldható fel:
Az első megoldás nagyon munka- és költségigényes, és csak akkor jöhetne szóba, ha sikerülne egy - vagy néhány - általánosan elfogadott programozási nyelvet és számítógépes rendszert bevezetni, amely hosszabb ideig uralná a szakmát. Mivel ennek az elmúlt 40 év tapasztalatai és a műszaki fejlődési üteme határozottan ellentmondanak, maradt a második, a "szoftver" út. Ha egy gépet megtanítunk egy programozási nyelv megértésére, azt mondjuk, hogy a kérdéses nyelvet az adott gépen "megvalósítottuk". A nyelvek gépi megvalósítása általában bonyolult programok segítségével történik, és a számítástechnikán belül egy külön területet alkot. E terület részletei nem tartanak közérdeklődésre számot, de a programozási nyelvek feldolgozásának két alapvető módszerével célszerű megismerkedni.
Bevezetésül - a közös szóhasználat érdekében - néhány alapvető fogalmat összefoglaltunk:
Annyit sokan tudnak, hogy egy nem gépi kódban írt programot a gépen vagy fordítás vagy értelmezés segítségével lehet csak futtatni. Mivel a két technika előnyök és hátrányok szempontjából sok tekintetben kiegészíti egymást, érdemes megvizsgálni, hogy a programfejlesztés során mikor melyiket jó preferálni.
A fordítás folyamán először a fordítóprogram létrehozza a tárgyprogramot, melyet a gépbe betöltve végrehajthatunk. Előfordul, hogy a kapott tárgyprogram még nem gépi kódú, ezért a "futtatásra" csak újabb fordítás után kerülhet sor. (A C nyelv fordítói például első lépésben általában assembly nyelvre fordítanak.) A logikai teljesség kedvéért el kell mondanunk azt is, hogy a programvégrehajtás tulajdonképpen egy értelmezési folyamat, amely abban különbözik a futás idejű értelmezéstől, hogy az értelmező "programot" a gép áramkörei testesítik meg.
Maga az értelmezés úgy zajlik le, hogy az értelmező program - melyet különösen BASIC esetén gyakran a gép ROM memóriájában tárolnak - utasításonként végighalad a forrásprogramon, közben elemzi annak utasításait, és behívja a rendszer azon alprogramjait, amelyek a gépből a kérdéses utasításnak megfelelő tevékenységet váltják ki.
Ha mindkét technika előnyös és hátrányos vonásait át akarjuk tekinteni, négy alcímre van szükség.
Az értelmezés előnyei
Mivel a forrásprogram - az értelmező automatikus működését nem tekintve - "közvetlenül" hajtódik végre, a programozó egyszerűen és hamar lát eredményt vagy hibát, hiszen a géppel, úgy tűnik, egy nyelvet beszél (nem véletlenül a BASIC a tanuláshoz általánosan használt nyelv). Ennek megfelelően igen barátságos kapcsolat alakítható ki a rendszer és a programozó között. A programot egy célszerűen a nyelvre orientált szerkesztőprogram segítségével "inkrementálisan" írhatjuk, ami azt jelenti, hogy akár az egyes utasítások vagy próbarészek után sem igényel különösebb erőfeszítést egy próbafutás. A szerkesztő utasításonként ellenőrizheti programunk formai helyességét (az IS-BASIC ezt megteszi), és ezzel sok utólagos fáradságot takaríthat meg.
Az értelmezés technikai megvalósításából következik a dinamikus tárkezelés (a változó számára lefoglalt tárterület mérete csak a program futásakor válik ismertté) viszonylag egyszerű megoldása. A tárkezelő rutinokat nem kell a tárgyprogramba beépíteni, azok az értelmező részei lehetnek.
A program hibáinak felderítésekor nem közömbös, hogy az értelmező rendszerek jó nyomkövetést tesznek lehetővé, hiszen a forrásprogram futás közben folyamatosan rendelkezésre áll.
Az értelmezés hátrányai
Mivel az értelmező program minden utasítást minden végrehajtáskor kénytelen újra és újra "megérteni", a programunk futása számottevően lassul. Az értelmező nemcsak időben, de tárban is csökkenti a hasznos kapacitást. Az utasítások végrehajtási sorrendje előre nem jósolható meg, ezért az értelmező rendszereknél az operatív tárban kell tartani az értelmező program mellett a teljes forrásprogramot is. Az előző pontban említett előnyökért tehát komoly árat kell fizetni.
A fordítás előnyei
Itt a tárgyprogram létrehozása és végrehajtása szétválasztható, ezért a tárigény eleve kisebb lehet. Mivel a fordítóprogram csak egyszer (vagy néhányszor) olvassa végig a forrásprogramot, az háttértárban is tárolható, ahova a generált tárgyprogram akár részletekben is kivihető. A fordítást két futtatás között csak akkor kell ismételni, ha a forráson változtattunk, ezért a fordítás időigénye - különösen a fejlesztés vége felé, az alapvető hibák kiszűrése után - nem kritikus. így lehetőség van arra, hogy a fordító tömörség vagy futási idő szempontjából optimális tárgyprogramot hozzon létre. Ez a program későbbi gyakori használata során halmozott időmegtakarítást eredményez.
Az értelmezésnél említett inkrementális fejlesztés itt ún. moduláris programozással pótolható, amelyben ugyan előre meghatározott szerkezettel, de kisebb egységekből lehet a végső programot összeállítani.
A fordítás hátrányai
A fejlesztői ciklus - amíg egy programból eredményt látunk óhatatlanul meghosszabbodik. Különösen igaz ez akkor, ha a szövegszerkesztő, a fordító és a kapcsolatszerkesztő (linkage) programok nem egyetlen integrált rendszerben dolgoznak, hanem csak az operációs rendszeren keresztül (jellemzően parancssori utasításokkal) aktivizálhatók. A forrásprogram hibáinak jelzése a fordítás közben azért nehézkes, mert minden hibához igen sok "következmény" hiba is csatlakozhat, ami áttekinthetetlenné teszi a hibajelzéseket.
A dinamikus tárkezelés csak úgy oldható meg, hogy a fordító a tárgyprogramba beépíti a tárkezelő rutinokat. Ezért sok fordítással megvalósított nyelvben a dinamikus tárkezelést nem engedik meg, vagy csupán mutatók (indirekt címzés) segítségével realizálják.
A tárgyprogram futása során fellépő hibák jelzése is bonyolultabb, hiszen ilyenkor a forrásprogram már nem áll rendelkezésre, a programozó pedig a forrásprogram környezetében várná a hibajelzést.
Látjuk, hogy mindkét technika mellett és ellen nyomós érvek szólnak. Ilyen esetben a választás előtt további feltételeket kell elemezni, és akkor kiderül, hogy a programok fejlesztési szakaszában, amikor sokat módosítunk, csak tesztadatokkal, egy-egy ágat próbálunk futtatni, az értelmezés a hatékonyabb. Üzemszerű, ismétlődő futtatás esetén viszont, amikor a program már többé-kevésbé változatlan, a fordítás kétségtelenül célszerűbb.
Az ily módon való fejlesztés egyetlen akadálya jelenleg, hogy a nyelvekhez általában vagy csak értelmező (BASIC, PROLOG, LISP, LOGO stb.) vagy csak fordító- program (Pascal, C, COBOL, FORTRAN, PL/I stb.) tartozik. A fejlődés azonban kétségtelenül az ún. negyedik generációs nyelvek irányába mutat, ahol egy integrált fejlesztői rendszerben mind az értelmezés, mind a fordítás megoldható (dBASE, BASIC), illetve a fordítás és értelmezés egy speciális keveréke használható (FORTH), vagy egy fordító rendszeren belül az értelmezéshez közel álló üzemmód is megengedett (Turbo Pascal).
(Megjegyzés: az értelmező és a fordítós nyelven való fejlesztés előnyeit ötvözhetjük, ha a programunkat először IS-BASIC-ben írjuk meg (mely sokkal jobban hasonlít a Pascal-ra, mint a BASIC-re, sőt a Pascal-nál rugalmasabb). A már belőtt programot "tükörfordításban" átírhatjuk Turbo Pascal-ba. Csak arra kell figyelnünk, hogy az IS-BASIC-ben való fejlesztés során tekintettel legyünk a Pascal korlátaira: pl. a Pascal csak egyféle elől- és hátul tesztelő ciklust ismer, a FOR ciklusban a lépésköz kötött, szögfüggvényeket csak radiánban számolhatunk stb.)
(1988 július) Bakos Tamás
Mit tud a Forth?
Habent sua fata libelli - állítja a latin mondás. Úgy tűnik azonban, hogy manapság már nemcsak a könyveknek, hanem a programozási nyelveknek is megvan a maguk sorsa. Vajon sejthette-e Charles H. Moore, a FORTH nyelv, illetve programozási rendszer megalkotója, hogy saját céljaira kidolgozott rendszere éppen napjainkban, azaz 15 év múltán válik majd igazán népszerűvé?
Honnan indult, merre tart?
Ma már nem kétséges ugyanis, hogy a FORTH, ez a rendkívül szellemes és egyszerű programozástechnikai megoldás megcsinálta a maga karrierjét.
A '60-as évek végén még csak egy-két amerikai csillagászati obszervatóriumban, néhány lelkes, alkotó szellemű programozó ismerte fel a FORTH-ban rejlő lehetőségeket. Itt rádió teleszkópok és optikai távcsövek automatikus pozicionálását, valamint a vett jelek, illetve asztronómiai felvételek számítógépes feldolgozását programozták a rendszer segítségével.
A nyelv mai alkalmazási területe a játékautomatáktól és az egyszerű lift-vezérlőktől kezdve az űrtávközlésen át egészen a legmodernebb ipari robotokig terjed, sőt olyan tendencia is megfigyelhető, hogy a mikroprocesszoros automaták, de főként a robotok programozásában a FORTH nyelv fokozatosan kiszorítja a többi programozási nyelvet.
A FORTH programozási rendszer körül nemzetközi szervezetek, szabványosítási bizottságok, tőkés vállalatok és felhasználói klubok sora alakult ki. Évente több tíz könyv és sok száz folyóiratcikk jelenik meg a FORTH-ról és alkalmazásairól az egész világon. Több tekintélyes szakmai folyóirat speciális célszámot is szentelt a FORTH rendszer sokoldalú ismertetésének, míg más folyóiratok állandó FORTH rovatot tartanak fenn. (Egy magyar nyelvű FORTH könyv kiadása is folyamatban van a Műszaki Könyvkiadónál. e cikk szerzőjének tollából. A szerk.)
A FORTH iránti érdeklődés "lázgörbéje" tehát egyre meredekebben emelkedik, és ma még semmi jelét sem látni annak, hogy elérte volna a csúcspontját.
Vajon mi a FORTH titka? Melyek azok a tulajdonságok, illetve körülmények, amelyek "felhozták" a FORTH-ot? Mi is a FORTH tulajdonképpen? Mire és hogyan alkalmazható a mi viszonyaink között?
Ilyen és ezekhez hasonló kérdésekre keressük a választ ebben a bevezető jellegű cikkben, amelynek egyetlen célja, hogy a FORTH lényegével ismertesse meg az érdeklődő olvasót.
A FORTH operációs rendszer
Mindenekelőtt le kell szögeznünk, hogy a FORTH nem egyszerűen programnyelv, hanem sajátos programozási módszer is, amely egy FORTH operációs rendszer keretében alkalmazható tetszőleges számítástechnikai feladatok megoldására.
A FORTH operációs rendszerek minimális kiépítésben egy exekutívot (azaz parancs interpretert), egy FORTH interpretert, egy párbeszédes assemblert, egy text-editort, valamint virtuális tárkezelést tartalmaznak.
Mindez így együtt kb. 5-8 kbájt tárat igényel. Ez a tömörség annak köszönhető, hogy ezek a rendszerek nagyrészt saját nyelvükön, azaz FORTH-ban vannak megírva, amelyről tudni kell, hogy tömörebb kódot állít elő, mint ha a rendszert assemblerben írták volna. (Hogy miért, arra később még visszatérünk.)
A FORTH operációs rendszerek többnyire "önhordó" (ún. stand-alone) kivitelűek, de más operációs rendszer vezérlete alatt is működhetnek, mint szub- operációs rendszerek.
A FORTH-ban irt programok tömörségére jellemző, hogy például egy Intel 8085-ön futó FORTH rendszer saját párbeszédes assembleré alig több, mint 800 bájt területen elfér. Ugyanennek az assemblernek a forrásprogramja pedig 36 forrássort tesz ki. (Nem tévedés, 36 forrássorból áll az egész program, ahol a sorok hossza 64 karakter vagy annál rövidebb!)
Már ezekből az adatokból is látható, hogy a FORTH különösen alkalmas a kevés tárolóval rendelkező mikro-, sőt piko-számítógépek programozására. illetve az ilyen gépek operációs rendszerének megvalósítására. A FORTH rendszerek növekvő népszerűségének egyik oka tehát a mikroszámítógépek elterjedésében kereshető.
Hordozhatóság
A FORTH terjedésének másik lényeges oka az, hogy a rendszer bármely gépen viszonylag egyszerűen megvalósítható. 150 200 sornyi gépi kódú program kidolgozása után a rendszer már saját nyelvén épül tovább, méghozzá úgy, hogy a FORTH kódot egyszerűen lemásoljuk egy másik FORTH implementációról.
Ma már nincs is olyan számítógép vagy mikroprocesszor, amelyre a FORTH rendszert ne implementálták volna.
A virtuális tárkezelés a FORTH-ban 1 kbájtos "screen"-ekben történik. A screenek FORTH forrásprogramokat vagy adatokat tartalmazhatnak. A FORTH exekutív az aktuálisan használt 1 kbájtos blokkokat az operatív tárban tartja, és csak akkor írja vissza őket a mágneslemezre, ha a tárterületre még aktuálisabb screenek beolvasása miatt szüksége van, illetve ha a lecserélendő blokkon előzőleg valamilyen változtatást hajtott végre valamely program vagy az operációs rendszer.
A legtipikusabb FORTH implementáció 6-8 kbájt terjedelmű, emellett 8-10 kbájt szabad RAM tároló marad a programok és adatok tárolására. A FORTH programok tömörségéi tekintve ez igen nagy tárnak számít.
FORTH vagy BASIC?
A FORTH mint önálló operációs és programozási rendszer, némileg hasonlít a BASIC rendszerekre. A lényeges különbségek a következők.
A FORTH részben strukturált és rendkívül moduláris programozást tesz lehetővé. A FORTH programok jóval tömörebbek, és 10-20-szor gyorsabban hajtódnak végre, mint a hasonló feladatokat ellátó BASIC programok. A BASIC nyelv elsősorban számolási feladatokra orientált, míg a FORTH főként vezérlési, automatikai, grafikai, méréstechnikai és szövegfeldolgozási feladatok megoldásában mulatja erényeit.
Bátran állíthatjuk, hogy a FORTH ideális nyelv az automatikával foglalkozó mérnökök számára. Használatához számítástechnikai ismeretekre nincs szükség. A FORTH-ban történő programozás nem "programírás", hanem olyan konstrukciós munka, amelynek során az eleve adott építőelemekből a konstruktőr összetettebb modulokat, majd ilyen modulokból funkcionális részegységeket, ezekből pedig komplex vezérlőrendszereket épít fel.
Minden építőelem, modul, részegység és rendszer, amelyet egyszer kidolgozott a konstruktőr, bármikor rendelkezésre áll más, hasonló feladatok megoldásához.
FORTH szavak
A FORTH programok elemi építőkövei a mnemotechnikus FORTH szavak. Minden "szó" önálló szemantikai egység, azaz egy-egy elemi funkciót (egy primitív bemeneti/kimeneti műveletet, aritmetikai, logikai vagy adatmozgató műveletet) végez.
Ha egy FORTH szót begépelünk a rendszer klaviatúráján, azt a FORTH interpreter megkeresi a szótárában, és a szóhoz tartozó rutinra adja a vezérlési, amely azonnal lefut, és a benne meghatározott műveletet végrehajtja.
Egy-egy ilyen művelet lehet közvetlenül gépi kódban vagy szekundér kódban kódolva (azaz olyan címlista formájában, amelynek elemei primér (gépi) kódú rutinokra mulatnak).
Amikor a FORTH külső interpretere a szótárban egy szekundér kódú FORTH szót talál, akkor átadja a vezérlést a belső interpreternek, amely gondoskodik a címlistában szereplő címeken található gépi kódú rutinok egymás utáni lefuttatásáról.
Egy tipikus FORTH implementáció kb. 50 primér és 100-200 szekundér FORTH szót tartalmaz.
Eddig szóltunk a FORTH rendszer öt fő összetevőjéről: a szótárról, a külső és belső interpreterről, a primér és szekundér műveleti rutinokról. A műveletekhez azonban általában paraméterek (ki- és bemenő adatok) is szükségesek. Ezeket a FORTH-ban egy közös veremtárolón lehet csak elhelyezni. Más paraméterátadási mód a FORTH-ban nincs, és nem is szükséges, hogy legyen.
A FORTH verem-gép
Mielőtt egy FORTH szót továbbítunk a külső interpreter bemenetére, az adott művelethez szükséges adatokat a verem tetejére kell helyezni. Ezeken az adatokon a hívott szó elvégzi a műveletet, miközben a bemeneti paramétereket "elfogyasztja" (azaz törli a veremből). Ha a műveletnek adat jellegű kimeneti eredménye is van, akkor ezt az eredményadatot a verem tetején hagyja kiíratás vagy esetleg további felhasználás céljából. Közbenső eredmények változókban történő tárolására a FORTH-ban tehát nincs szükség. Ez is jelentős tár- és futásidő megtakarítást eredményez.
Egy tipikus FORTH utasítás például a következőképpen állítható össze FORTH szavakból:
4 5 + .
A külső FORTH interpreter felismeri, hogy a 4 és az nem szó, hanem szám, ezért ezeket ebben a sorrendben elhelyezi a paraméterverem tetejére. A + jelet megtalálja a szótárban, és a neki megfelelő összeadás műveletei végrehajtja. Ennek eredményeként a bemeneti adatok eltűnnek, és a verem tetején megjelenik az összeadás eredménye. Ezután a "pont" szó hajtódik végre, amely kiírja a konzolon a verem tetején levő számot - esetünkben a 9-est -, a verem pedig kiürül.
A példából látható, hogy a FORTH, ha aritmetikai műveleteket végez, úgy működik, mint egy régebbi Hewlett-Packard kalkulátor, először az operandusokat adjuk meg, majd a rajtuk elvégezni kívánt műveletet. Ez nem más, mint a matematikából ismert posztfix, vagy más néven fordított lengyel írásmódja az operandusoknak, illetve operátoroknak.
A fordított lengyel írásmód kezdetben szokatlan lehet, de az összetettebb feladatoknál olyan sok előnnyel jár, hogy nem leheteti lemondani róla; sőt éppen ez a veremkezdési koncepció (stack machine) lett a FORTH rendszer egyik alapelve és előnyös tulajdonságainak egyik hordozója.
A FORTH másik nagy jelentőségű koncepciója a párbeszédes, moduláris, alulról felfelé történő programépítés.
Interaktivitás és modularitás
A FORTH programozó néhány perc alatt bővítheti a FORTH rendszert egy új utasítással (FORTH szóval) olyan módon, hogy legépel egy kettőspontot (ebből az interpreter megtudja, hogy utasítás definíció következik, és compiler módba kapcsol), majd megadja az új utasítás nevét, és emögött felsorolja azokat a már ismert FORTH szavakat, amelyeket majd sorban végre kell hajtani, ha ezt a nevet az interpreter működése során később, mint végrehajtandó szót felismeri.
A FORTH szavak sorát pontosvesszővel zárjuk le. A kompiláció abból áll, hogy az új név mögött felsorolt ismert szavakat a rendszer megkeresi a szótárban, de most nem hajtja végre azokat, hanem csak egy listába helyezi sorban a címüket. A compiler az új névről szótári bejegyzést készít, amelynek jobb oldala tartalmazza az így elkészült címlista címét. A pontosvessző (mint FORTH szó) végrehajtása után a rendszer ismét interpreter módba kapcsol.
Az újonnan készült FORTH utasítást azonnal ki is próbálhatja a programozó. Ehhez megadja a szükséges bemeneti adatokat a veremben, majd legépeli az utasítás nevét, végül pedig kiíratja a művelet végeredményét a veremből. Az így letesztelt utasítás ezután már kockázat nélkül használható újabb, még magasabb szintű utasítások megvalósításához. A műveletek ilyen egymásba építésének végső eredménye a legmagasabb szintű FORTH szó, azaz a felhasználói program.
Mivel a közbenső szintek szavainak definiálása után is mindig elvégeztük azok tesztelését, ezért a legfelső szintű szó elkészültekor az egész program letesztelve, készen áll a futtatásra.
A programozásnak ez a módja hihetetlenül termelékeny, amellett, hogy az elkészült program - szinte különösebb odafigyelés nélkül - egyben optimalizált kivitelben jelenik meg.
Látható, hogy a FORTH ösztönzi a programozót a moduláris programozásra, illetve a kis lépésekben történő tesztelésre. Ez a két kényszerítőerő rendkívül megbízható, sokszorosan felhasználható programrészeket eredményez, és legalább ötszörösére emeli a programozás teljesítményét (Moore a FORTH-ot "programmer amplifier"-nek, azaz programozó-erősítőnek nevezte).
Élvezet a programozás
Mindemellett a FORTH-ban való párbeszédes programozás élvezetes is, mert a programozó úgy "játszik" az építőelemekkel, mint a gyerek a LEGO építőjátékkal, és eközben folyamatosan figyelemmel követheti programja "intelligenciájának" fokozatos fejlődését.
A FORTH-ban való programozás teljesítményére jellemző, hogy a FORTH Inc. vállalat tizedannyi időre vállalja egy-egy feladat programozását, mint amennyire a FORTRAN-ban vagy Pascalban programozó szoftverházak adnak ajánlatot.
Ez a teljesítmény persze nemcsak annak köszönhető, amit már az eddigiekben is megállapíthattunk a FORTH programozásról, hanem annak is, hogy a már elkészült FORTH programokon kívül az azok fejlesztésében közbülső lépésként keletkező definíciók is, le egészen a legelemibb szintig, újra felhasználhatók. Egy-egy új program megírása hasonló feladatkörben pusztán abból áll. hogy a programozó átnézi az általa, illetve a kollégái által korábban definiált FORTH-szavak jegyzékét, es ezekből válogatva és kombinálva szinte órák alatt új programot készít. FORTH-ban ez a fajta programozás százszor egyszerűbb és gyorsabb, mint bármely más programozási rendszerben.
Tömörség kontra futásidő
Most már láthatjuk, hogy a FORTH-ban irt programok nagyfokú tömörségéi az adja, hogy például egy 16 bites bináris gépi szó kezdetben csak egy egyszerű elemi műveletet ábrázol, de a későbbi sokszintű egymásba skatulyázási lánc végén ugyanaz a 16 bites szó már egy óriási funkciócsoportnak felel meg. A tömörségért azonban némi időveszteséggel kell fizetnünk, hiszen az egymásba skatulyázott FORTH szavaknak megfelelő címláncok futás közbeni felgöngyölítése annál több meddő időt használ fel, minél több szintű (azaz minél tömörebb) a kód.
E két ellentmondó igény között azonban a programozó határozhatja mega kompromisszumot. Például futásidőre orientált programokban a programozó a FORTH szerves részét képező párbeszédes assembler segítségével gépi kódú FORTH szavakat definiálhat, melyek természetes gépi sebességgel hajlódnak végre.
Megbízhatóság
A FORTH-ban írt programok megbízhatósága sokkal nagyobb, mint a többi nyelven irt programoké, pedig a FORTH-ban csak egyetlen szintaktikai és szemantikai ellenőrzés valósul meg a kompiláció során. Ez pedig abból a vizsgálatból áll, hogy a begépelt szó megtalálható-e a szótárban, és ha nem, akkor szám- vagy szövegadatként értelmezhető-e. A nagy megbízhatóság abból ered, hogy mindig csak egy néhány szavas műveletsort kell tesztelni, nem pedig egy előre megírt nagy programban a rejtett hibákat kiböngészni. (Ez utóbbi módszer gyakorlatilag nem is teszi lehetővé hibátlan programok írását.)
A FORTH programozó azonban mindjárt elakad, amint az általa definiált szó tesztelése során hibát észlel, és addig nem folytatja a munkát, amíg a hibát ebben a kis programrészletben meg nem találta. A kész programban így hiba már alig fordulhat elő.
A szintaktikai és szemantikai ellenőrzés hiánya tehát nem okoz zavart a FORTH programozásnál. Ugyanakkor azzal az előnnyel jár, hogy nem köti meg a programozót a lehetséges utasítás- és adattípusok használatában. Ez nagymértékben megnöveli a FORTH rugalmasságát.
Nyitottság
A FORTH harmadik és egyben legnagyszerűbb vívmánya a nyelv teljes nyitottsága. Ezen azt értjük, hogy a FORTH nyelv nemcsak új FORTH szavakkal bővíthető, hanem új direktívákkal is. Az új direktívákkal új compilerek alakíthatók ki a FORTH rendszeren belül, más programnyelvek (például célnyelvek) fordítására.
A FORTH rendelkezik ilyen direktívákkal, mint például: IF - THEN - ELSE, DO - UNTIL stb. Nem rendelkezik azonban mondjuk CASE direktívával. Ha szükségünk volna ilyen direktívára, azt FORTH-ban percek alatt FORTH nyelven megírhatnánk, és ettől kezdve úgy használhatnánk, mintha mindig is része lett volna a nyelvnek.
A FORTH tehát semmit sem tilt meg, hagyja magát továbbfejleszteni, vagy akár teljesen átalakítani is.
A FORTH-nak ez a "liberális" szemlélete az egész világon megragadta a legkreatívabb programozókat. Bizonyára ezért írhatta az egyik külföldi folyóirat recenzense, hogy "talán az a FORTH legnagyobb vívmánya és egyben erőssége, hogy bűvkörébe tudta vonni a legragyogóbb számítástechnikai elméket".
A FORTH alkalmazásai
A FORTH-ot teljesítménye, szellemes egyszerűsége, kényelmessége és nyitottsága alkalmassá teszi sok olyan területen való felhasználásra, ahol az eddig használt programozási nyelvek és rendszerek nehézkesnek bizonyultak.
FORTH-ban írták például az IBM személyi számítógépének első "word processor" programját, az OSCAR-7 mesterséges hold fedélzeti irányító és kommunikációs programjait, a legtöbb dugaszolható kazettás videojátékot, több tároltprogram-vezérlésű ipari gép kezelő és fejlesztő rendszerét, a rádióamatőrök automatikus rádió-géptávíró üzenetközvetítő rendszerét, sok CAMAC (mérési adatgyűjtő) programot, fejlesztő rendszereket, operációs és programozási rendszereket. Már ez a rövid felsorolás is mutatja, hogy a FORTH meglehetősen sokoldalú nyelv. Ez nem is meglepő, hiszen olyan rugalmas, hogy könnyűszerrel átalakítható akár célnyelvvé is, bármilyen sajátos alkalmazásra.
Az ipari robotika azért részesíti előnyben a FORTH-ot, mert lehetővé teszi a robotkarok működtetésének párbeszédes programozását, az egymásba épített részmozdulatok lépésenként ellenőrzését. Itt elengedhetetlen, hogy a programozó azonnal kipróbálhassa a célgépen az általa definiált művelet valósidejű végrehajtását. Az ilyen természetű feladatokra ma sem egyszerűbb, sem alkalmasabb programozási módszer nincs, mint a FORTH.
Természetesen a hétköznapi számítástechnikában is sok helyen használható a FORTH. Tételezzük fel például, hogy egy pjt. Z80 alapú mikrogéppel rendelkezik, de Motorola alapú gépre kémek tőle programfejlesztést. Ha van a Z80 gépen FORTH, akkor egy Motorola 6800 assembler és emulátor könnyűszerrel kifejleszthető, és nem kell gépidőért fizetni, illetve más gépterembe elmenni.
Vagy legyen adva egy kisebb üzem, vagy egy gmk, amely mikroprocesszoros vezérlő elektronikai eszközöket gyárt kissorozatban, többcélú felhasználásra. Ha egy ilyen eszközön egyszer megvalósítják a FORTH-ot, akkor a vezérlő programozása, későbbi kezelése és a hibakeresés párbeszédes formában elvégezhető. Az egyszer már kidolgozott rutinok többszörösen felhasználhatók és gazdaságosan értékesíthetők.
Nem kell azonban egy komplett FORTH rendszert betelepíteni a célelektronikába, ha azzal később nem akarunk magas szintű ember gép kapcsolatot kialakítani. Ilyenkor csak egy FORTH alatt futó fejlesztő rendszerre van szükség, amelynek kimenetén ROM/EPROM égető van. Ekkor a célrendszerbe a FORTH szótár nem kerül át, hanem csak egy 5-600 bájtnyi gépi kód (FORTH mag), valamint a célprogram láncolt kódja, amelyet ROM-ba égetve visznek át a célrendszerbe.
A FORTH fejlesztő rendszerek várhatólag rövidesen megjelennek a magyar gyártmányú mikroszámítógépeken is. Az SZKI-ban az MO8X, PROPER 16 és MO6X típusú professzionális személyi számítógépekre már folynak az erre irányuló fejlesztések.
(1983) Pataki Ernő
Mit tud a C nyelv?
A C programozási nyelv megszületése óta páratlan karriert futott be. Ezt részben sajátos erényeinek köszönheti, részben pedig annak, hogy voltak, akik ezekkel az erényekkel maximálisan éltek is.
A C nyelv általános célú, magas szintű programozási nyelv. Ezeknek sorából leginkább azzal válik ki, hogy annyira gépközeli, amennyire ez egyáltalán lehetséges. Azt mondhatnánk,, hogy ő a "legalacsonyabb" magas szintű nyelv. Ráillik a "magas szintű assembler" megnevezés is. Utasításkészlete rendkívül szűk, mindössze a változódeklarációkra, az értékadásra, a vezérlési szerkezetek jó megvalósítására és a függvényhívásra szorítkozik. Tehát minden megvan benne, ami az assemblerekben gépfüggetlen, "gépfeletti" lehet, és mindent kiküszöböltek belőle, ami a nyelvet egy adott géphez vagy egy bizonyos géptípushoz kötné.
Legfontosabb erénye talán az, hogy ismeri a pointerek, a mutatók fogalmát, és a mutatókat a lehető legnagyobb szabadsággal kezeli. Ily módon megvalósíthatjuk a legravaszabb adatszerkezeteket is, és igen szabadon kezelhetjük a rendelkezésre álló memóriát. Ez teszi a C nyelvet rendkívül hatékonnyá.
Ezt használta ki 1972-ben Dennis M. Ritchie, a Bell Laboratórium munkatársa, aki nagy szerepet játszott a C nyelv létrehozásában is. Számos kiváló kollégájával együtt egy merész húzással C-ben írták meg a már 1969 óta létező Unix operációs rendszert. Ezzel minőségileg új szakasz kezdődött a számítástechnikában: jól vizsgázott egy olyan magas szintű programozási nyelv, amely megfelelő kényelmet biztosít ugyan a felhasználónak, de annyira hatékony és "assemblerszerű", hogy lehetővé teszi operációs rendszer megvalósítását. Ugyanakkor elindult a karrierje egy olyan operációs rendszernek, amely nem assemblyben, hanem egy gépfüggetlennek mondható magas szintű programozási nyelven íródott.
Változók, adatszerkezetek
A C nyelv megengedi egyszerű változók, tömbök, valamint adatstruktúrák definícióját. Rendelkezik egy sajátos (persze korántsem ismeretlen) adatszerkezettel is, amelyet "union"-nak nevezünk.
Egyszerű változók
Az egyszerű változók egy-egy adat befogadására képesek. Nevük és típusuk meg-adásával definiálhatók:
int i;
Ez egy integer (egész) típusú változót definiál, melynek neve i. Az általánosan elfogadott típusok:
char karakter int egész szám long hosszú (kétszeres pontosságú) egész float lebegőpontos szám (a Hisoft-C-ben nem implementált) double kétszeres pontosságú lebegőpontos szám (a Hisoft-C-ben nem implementált) short u.a., mint az int (nem szabványos, de a Hisoft-C-ben implementált)
Tömbök
Az egyes változókból egyszerűen képezhetünk tömböt:
int arr[20];
ahol a tömb neve arr, elemeinek száma 20 (az indexek 0-tól 19-ig futnak, tehát valóban húsz elemük van), és minden egyes tömbelem típusa egész.
A tömbök használata során az indexek helyén szabadon választhatunk tetszőleges kifejezéseket. De a mi dolgunk arról gondoskodni, hogy az így kapott index ne haladja meg a tömb elmeinek számát. Például:
int arr[20];
int i;
int a,b;(* tömb definíciója *)
(* indexváltozó *)
(* két munkaváltozó *)
esetén hibás lesz a következő két utasítás:
a=arr[-2];
a=arr[21];
mivel a fordító itt ellenőrzi (képes ellenőrizni) az indexhatárokat. Minden további nélkül leírható és végrehajtható azonban az alábbi utasítássorozat:
i=10;
a=arr[i-16]
b=arr[i+10]
mivel a fordító, nem ismervén i futás közben kapott értékéi, nem is képes semmilyen határellenőrzésre.
A C nyelvben talán a leggyakrabban használt tömbtipus a karakteres tömb, hiszen ez az egyetlen ésszerű lehetőség arra, hogy sztringeket, szövegeket helyezzünk el a programban:
char mess[]="Ez egy uzenet\n";
Ebből a sorból több érdekes tanulságot is levonhatunk. Először is: egy változót vagy tömböt szintaktikailag elég egyszerűen tudunk inicializálni, azaz kezdeti értékkel ellátni. Másodszor: idézőjelek között adhatunk meg szövegeket. Harmadszor: a tömb előkészítésekor nem kötelező megadni, hány eleme van a tömbnek - a fordító meghatározza helyettünk. Például ennek a tömbnek 16 eleme van. És itt következik a negyedik és ötödik fontos dolog. A tömbnek nem azért van 16 eleme, amiért első pillantásra gondolnánk. A \n karaktersorozat az üzenet végén a valóságban nem két, hanem csak egy karaktert ér: ez a karakter a newline. az újsor, amelynek hatására az üzenet kinyomtatása után a terminálon egy kocsivissza-soremelés következik be. (A \ karakter egy ún. ESCAPE (váltó), melynek hatására a fordító elvonatkoztat az utána következő karakter konkrét értékétől, és különleges értelemben használja fel - például az n karakter helyett kocsivissza-soremelés).
Mi akkor hát a 16. karakter, hiszen így csak 15-öt adtunk meg!? Nos, az utolsó megadott karakter, az újsor után a fordító még odatesz egy 0 kódú karaktert is: ez jelzi majd a memóriában a szövegfüzér végét. Az ötödik fontos apróság tehát: a stringek utolsó karaktere mindig a 0 kódú karakter. Programunk innen ismerheti fel a string kezelése közben, hogy vége a szövegnek.
Struktúrák
A C nyelv tetszőleges szerkezetű adatstruktúrák definiálását teszi lehetővé. Ezek segítségével nagyon pontosan és tömören lehet programozni. Lássunk egy példát, utalva a struktúrák egy felhasználási lehetőségére is! Tegyük fel, hogy olyan játékprogramot akarunk írni, amely több tárgyat mozgat egymástól függetlenül a képernyőn. Az egyszerűség kedvéért a tárgyak mindegyike egy-egy karakter, amelyek egyenes vonalú egyenletes mozgást végeznek a képernyőn. Az ilyen tárgyak leírására kiválóan alkalmas a következő struktúra:
struct
};flyobj {
char code;
int xpos;
int ypos;
int xstep;
int ystep;
(* a karakter kódja *)
(* pillanatnyi pozíció *)
(* koordinátái *)
(* lépésvektor *)
(* koordinátái *)
Mint látható, ez a struktúra mindent összefoglal a tárgy mozgatásához szükséges adatokból: a karakter kódját, a tárgy pillanatnyi pozíciójának koordinátáit, valamint a lépésvektort. Magában véve a fenti néhány sor nem hoz létre a memóriában egy ilyen szerkezetű struktúrát. Ezzel pusztán a flyobj nevű struktúra belső felépítését adtuk meg. Egy ilyen struktúra számára a következő utasítással foglalhatunk helyet:
struct flyobj fly1;
ahol az első két szó tulajdonképpen a típus ("legyen egy flyobj típusú struktúra"), fly 1 pedig a memóriaterület neve. Hogyan lehet ezt a struktúrát használni? Sajnos a C nyelv nem teszi lehetővé a struktúrák globális használatát. Nincs tehát mód arra, hogy egy struktúrát egy utasítással átmásoljuk egy azonos szerkezetű másik struktúra területére, nem írhatunk csupa 0-t minden egyes struktúratag helyére stb. A struktúra tagjait külön-külön kell kezelnünk:
fly1.code='*'; (* csillag repül *)
A struktúra tagjai külön-külön változók:
fly.xpos=fly.xpos+fly+xstep;
fly.ypos=fly.ypos+fly.ystep;
Ez az utasítássorozat kiszámítja a repülő tárgy következő pozícióját. Látható, hogy a struktúra tagjaival ugyanúgy bánhatunk, mint az egyes változókkal.
Programunkban természetesen tetszőleges számban definiálhatunk flyobj típusú struktúrákat. Ilyenkor az egyes változókat a kívánt struktúra és a kívánt tag neve azonosítja:
struct flyobj fly1,fly2,fly3;
fly1.code='*';
fly2.code='O';
fly3.xpos=12;
A struktúrák tagjai nemcsak egyszerű változók, de tömbök, sőt újabb struktúrák is lehetnek:
struct
};
struct
};coord {
int xcoord;
int ycoord;
flyobj {
char code;
sturct coord pos;
struct coord step;
Foglaljunk területet egy ilyen struktúra számára:
struct flyobj fly;
Ekkor persze bonyolultabb lesz a hivatkozás:
fly.pos.xcoord=fly.pos.xcoord+fly.pos.xstep;
hiszen egymásba ágyazott struktúrák tagjaira kell hivatkoznunk.
Unionok
A unión a C nyelv egyik érdekes újdonsága. Definiálása és felhasználása is nagyon hasonlít a struktúráéhoz:
union
};union
alltyp {
char ch;
int in;
long lg;
float fl;
double db;
alltyp all;
A union egy tagját a következőképpen használhatjuk fel:
all.ch='a'; (* egy karakter beírása *)
A union és a struktúra között az a különbség, hogy a struktúra egyes tagjai egymás után helyezkednek el a tárban, a union tagjai pedig mind egyazon címen kezdődnek. Ha tehát a fenti utasítással felülírom a karakteres uniontagot, akkor egyúttal "belepiszkáltam" a union összes többi tagjába. Felülírtuk az egész típusú "in" alsó felét, a long típusú "lg" negyedéi és így tovább. Az egyes elemek tehát nem egymás mögé, hanem egymásra íródnak - tréfás meglepetéseket tarto-gatva a tájékozatlan programozónak, és kiváló lehetőséget nyújtva különböző típusok fizikai konverziójára:
union
};dbtost {
double db;
char st[8];
Használjuk most fel ezt a union-deklarációt:
union
dbtost dbst;
dbst.db=3.14159
putchar(dbst.st[3]);(* double -> string *)
(* be mint double *)
(* 3. byte nyomtatása *)
Egy kétszeres pontosságú lebegőpontos változót tudunk elhelyezni, és ugyanezt az értéket bájtokra bontva kaphatjuk meg, mert a union másik oldala egy nyolc karakteres tömb ennek elemei pedig az egyes bájtok. Ugyanez a konverzió persze visszafelé is elvégezhető.
Természetes, hogy a union is tartalmazhat tömböt és struktúrát is.
Eljárások
A C nyelv eljárásait függvényeknek nevezzük, melyeknek tetszőlegesen sok bemenő paraméterük lehet, viszont csak egy értéket adhatnak vissza a hívójuknak.
A C program függvényekből áll. Minden függvény egyenrangú, azaz nem definiálhatók egymás belsejében, mint például a PL/I nyelvben. Egyenrangúságuk azt is jelenti, hogy bármelyik függvény meghívhatja bármelyiket, beleértve saját magát is - a nyelv lehetővé teszi a rekurzív függvények használatát.
Egyetlen kitüntetett függvény mégis akad, a "main", azaz a "fő" függvény. A program indulásakor a végrehajtás a main első utasításával kezdődik és annak utolsó utasításával ér véget. A main belsejéből hívhatjuk az összes többit - saját függvényeinket éppúgy, mint az ún. könyvtári függvényeket. Lássunk most egy igazi C programot:
main()
{
printf("Szervusz, kedves olvasom\n");
}
A program meghívja a printf nevű könyvtári függvényt, és ennek segítségével kinyomtatja az idézőjelek közé zárt szöveget beleértve az újsor karaktert is. A \n vezérlőkódon kívül a legtöbb implementációban az alábbi kódokat használhatjuk:
Láthatjuk, hogy egy C függvényt egyszerűen nevének leírásával hívhatunk, a függvény neve után zárójelben megadva a kívánt paramétereket. A paraméterek pedig akár konstansok, akár változók, akár ezekből képzett kifejezések lehetnek. Sőt megengedett az is, hogy egy függvény értéke szolgáljon paraméterként egy másik függvény számára.
Hogyan kell definiálni egy függvényt? Lássunk erre is egy példát:
add(a,b)
int a,b;
{
int sum;
sum=a+b;
return(sum);
}
Ez a függvény két paramétert vesz át, melyek, mint deklarációjuk mutatja, egész típusúak. Az összeadás után a return() utasítás hatására adja vissza paramétereinek összegét.
Mutatók (pointerek)
Nem újdonság, hogy a magas szintű nyelvekben megengedik olyan változók definiálását és használatát, amelyek más változók címét tartalmazzák. A C nyelvben is igen alaposan és precízen átgondolták a mutatók hatékony, logikus szerepét. Ez kényelmessé és biztonságossá teszi az indirekt címzést.
Lássunk akkor egy mutatót! Tegyük fel először, hogy egy stringet akarunk megcí-mezni. Definiáljunk tehát egy karakter típusú stringet és egy mutatót!
char mess[]="Ez egy uzenet!\n";
char *cpnt;
Egy mutatót ugyanúgy kell deklarálni, mint egy közönséges változót, de neve előtt csillaggal jelezzük, hogy ez a változó egy mutató. Hogyan adhatunk értéket a mutatónak és hogy használhatjuk fel azt?
cpnt=&mess[0];
Az "&" ("és") operátor segítségével képezhetjük bármelyik objektumunk címét.
Érdekességként megemlítjük, hogy egy tömb neve az első tömbelem címével egyenértékű, tehát a fenti értékadást így is el lehetne végezni:
cpnt=mess;
Most a cpnt mutató a mess nevű üzenet első karakterére (E) mutat. Ha most indirekt címzéssel kiolvassuk ezt a karaktert, akkor könnyen ki is nyomtathatjuk a putchar() könyvtári függvény segítségével:
putchar(*cpnt);
Itt a cpnt elé írt csillag jelzi az indirekciót - vagyis, hogy nem a cpnt tartalmát, hanem az általa címzett karakteres változó tartalmát kívánjuk felhasználni. Hogyan férhetünk most hozzá a következő karakterhez? Nos, ennek címe éppen eggyel nagyobb, mint az előző karakteré - adjunk tehát egyet a mutatóhoz:
cpnt=cpnt+1;
Ezután az újabb putchar() hívás már a második karaktert fogja kiírni és így tovább.
Mivel egy változó értékének megnövelése vagy csökkentése igen gyakori művelet, erre külön operátort vezetlek be a C megalkotói, a ++ és -- operátorokat. A nyelv egyik erénye, hogy e két operátort ún. prefix (tehát változó előtti) és postfix (változó utáni) helyzetben is használhatjuk. Legyen "a" és "b" két egész típusú változó. Ekkor:
int a,b;
a=5;
b=a++; (* "b" 5,"a" 6 lesz *)
b=++a; (* "b" 7, "a" is 7 lesz *)
Tehát a különbség az, hogy a postfix pozícióban felhasználás után, prefix pozícióban felhasználás előtt növekszik meg a változó értéke. Ezek az operátorok minden változó esetében használhatók, tehát mutatókra is alkalmazhatjuk őket:
cpnt++;
illetve
++cpnt;
Az előbbi első lépésben felhasználja a mutató értékét, majd megnöveli, az utóbbi pedig először növeli, utána használja fel. Ennek számos esetben vehetjük hasznát. Tegyük fel például, hogy egy stringet át akarunk másolni egy másik stringre. A pnt1 mutató címezi a kiindulási stringet, a pnt2 pedig a cél-stringet. Ekkor a
*pnt2++=*pnt1++;
utasítás átmásolja a soron következő karaktert, egyúttal megnöveli a mutatókat - készen állunk tehát a következő karakter másolására, csak valahogy meg kell ismételtetnünk az utasítás végrehajtását.
A mutatók használatában a C nyelv éppen itt, a címaritmetika területén hozott újat. Mi történik, ha nem karakterek, hanem például lebegőpontos változók tömbjét címezzük meg egy mutatóval? Ekkor a ++ operátor természetesen nem eggyel, hanem néggyel, azaz egy lebegőpontos változó hosszával növeli meg a mutatót - így az a tömb soron következő elemére fog mutatni.
Megengedett az, hogy mutatókhoz egész kifejezéseket adjunk, sőt, két azonos típusú mutatót ki is vonhatunk egymásból. Az eredmény az indexek különbsége lesz:
float farr[20];
float *pnt1,*pnt2;
int a;
pnt1=&farr[8];
pnt2=&farr[17];
a=pnt2-pnt1;
Ekkor "a" értéke nem 36 lesz, amennyi a címek közötti fizikai különbség, hanem 9 - a megcímzett elemek indexeinek különbsége.
Egy mutató típusa, mint láttuk, a címaritmetikai műveletek elvégzésében játszik sze-repet. Ha viszont a mutató struktúrára címez, akkor a fordító azt is ellenőrzi, hogy helyesen hivatkoztunk-e a struktúra tagjaira. Tehát igen precízen kell hivatkoznunk a struktúra tagjaira, és nem fenyeget az a veszély, hogy a mutatók segítségével egészen más struktúrák elemeit fogjuk megcímezni.
A struktúramutatók használatának két tény ad különleges fontosságot. Az egyik az a természetes dolog, hogy struktúrákból tömböt is szervezhetünk:
struct flyobj flyarr[10];
Ekkor a tömb elemeit igen kényelmesen címezhetjük meg egy azonos típusú mutató segítségével.
A másik, ennél fontosabb tény, hogy struktúrát "egészben" nem tudunk függvénynek paraméterként átadni, bár ez igen sokszor kívánatos lenne. Ilyen esetben segítenek a mutatók: ha struktúrát nem is adhatunk meg paraméterként, a struktúra címét egyszerűen átpasszolhatjuk a tömbök címéhez hasonlóan.
Ciklusszervező utasítások
A C nyelv háromféle, igen egyszerű és kényelmes ciklusszervező utasításokkal rendelkezik:
A while utasítás a while kulcsszóból, egy kifejezésből és egy utasításból áll. A kifejezés tetszőleges C kifejezés lehet. A program először kiértékeli ezt a kifejezést, majd ha igaz, azaz értéke különbözik a 0-tól, végrehajtja az utasitás(oka)t, és visszatér a ciklus elejére; újra kiértékeli a kifejezést, és ha igaz... Amennyiben a kifejezés értéke hamis (azaz 0), akkor a program végrehajtása a blokk után folytatódik. Lássunk egy nagyon egyszerű példát:
a=20;
while(a)
{
a--; (* a csökkentése *)
}
Ez a kis ciklus éppen húsz alkalommal fut le. Sok értelme azonban nincs. A következő legyen egy értelmesebb példa. Tegyük fel, hogy a pnt1 mutató egy 0 karakterrel lezárt karakteres tömb kezdetére mutat, a pnt2 mutató pedig egy olyan memóriaterületre, amelyre az előbbi karaktertömböt át akarjuk másolni. Lássuk a ciklust először "gyalogosan", majd pedig egy elegánsabb, C-szerűbb változatban:
while ( *pnt1 !=0)
{
*pnt2++ = *pnt1++;
}
A while alatti kifejezés most már egy igazi logikai kifejezés - a program összehasonlítja a != (nem egyenlő) operátor két oldalán szereplő kifejezéseket, az egész kifejezésnek pedig igaz az értéke, ha a közéjük irt feltétel teljesül. Tehát a fenti ciklus pontosan addig ismétlődik, amíg a kiindulási tömböt címző pnt1 nem a tömböt lezáró 0 kódú karakterre mutat. A ciklusmag pedig egy fentebb már ismertetett szerkezet: először használja, majd módosítja (növeli) a mutatók értékét - tehát először átmásolja a pnt1 által címzett karaktert a pnt2 által címzett memóriapozícióra, majd megnöveli pnt1 és pnt2 értékét.
Ennek a programrészletnek van egy roppant súlyos hibája: a tömböt lezáró 0 kódú karaktert nem másolja át, így a céltömb "végtelen" hosszú lesz, hacsak külön utasítással a végére nem másoljuk a záró zérót.
Lássuk most az igazi, a valóban C-szerű megoldást! Azt használjuk ki, hogy egy egyszerű értékadás is egy kifejezés, melynek van saját értéke:
int a,b,c,d;
a=b=c=d=0;
Először d kap egy 0 értéket, de a d=0 értékadás is egy kifejezés, melynek értéke az, amit d kapott - most a 0. Tehát ez a 0 öröklődik" előbb a c, majd a b, végül pedig az a változóba. Ha pedig ez így van, akkor egy értékadást nyugodtan beleírhatunk a ciklusvezérlő részébe is:
while ((*pnt2++ = *pnt1++) != 0)
{
}
Mit csinál ez a (C nyelvben teljesen szokványos) utasítássorozat? Először kiértékeli a while alatti kifejezést, amely egy logikai kifejezés. Jobb oldala 0, bal oldala egy értékadás, amelyet egy külön zárójel emel ki. A program tehát az értékadást végzi el először. Ez a szokásos módon megy végbe, megnöveli a mutatókat, de kimenő értéke az, ami a pnt2 által címzett memóriapozícióba íródott - tehát az átmásolt karakter. A program tehát az átmásolt értéket veti össze a nullával így a ciklus addig ismétlődik, míg csak át nem másolja a kiindulási tömböt lezáró 0 karaktert is, hiszen addig egyetlen karakterkódja sem lehet 0! A ciklus magja ez esetben üres, hiszen minden szükséges tevékenységet elvégzett már a ciklus vezérlő része.
A for ciklust a leggyakrabban akkor használjuk, ha előre tudjuk, hogy egy utasítást hányszor akarunk végrehajtani. A kifejezés1-ben állítjuk be a ciklusváltozó kezdő értékét, a kifejezés kettőben a ciklusba való lépés feltételét, ez a leggyakrabban egy logikai kifejezés, a kifejezés3-ban pedig léptetjük a ciklusváltozót.
A do-while ciklus hasonlít a while ciklushoz. A ciklusba itt is addig lépünk, amíg a kifejezés értéke nem 0, logikai kifejezés esetén amíg a kefejezés igaz. Alapvetően abban különbözik az előző két ciklustól, hogy itt a ciklusmag utasítása legalább egyszer végrehajtódik.
Többszintű mutatók
A mutatók egyik legrokonszenvesebb sajátossága az, hogy nemcsak alaptípusokra vagy struktúrákra tudnak mutatni, hanem mutatókra is. Egy mutatót címző mutató tehát egy változó címének címét tartalmazza. Lássunk erre is példát. Tegyük fel, hogy valamilyen célból ki akarjuk nyomtatni a hónapok nevét. Ekkor persze a neveket előre elhelyezzük egy-egy karakteres tömbben:
char jan[]="Januar"
char feb[]="Februar"
char mar[]="Marcius"
...
char dec[]="December"
Definiáljunk most egy újabb tömböt, amely karaktereket címző mutatókból áll:
char *month={jan,feb,mar,...,dec};
Ez utóbbi definíció egy olyan mutatókból álló, tizenkét elemű tömböt definiál, amelynek elemei rendre megegyezik a jan[], feb[], mar[], ... dec[] karaktertömböket, így tehát például month[5] a hatodik mutató, amely - minthogy 0-tól kezdődik az elemek számozása - a jun[] nevű tömb kezdőcímét tartalmazza. Próbáljunk most meg egy olyan mutatót definiálni, amely a month[] tömb tagjainak megcímzésére képes:
char **monthpnt;
azaz mutató egy karakter(tömb) címét tartalmazó mutatóra. Lássuk most az értékadást:
monthpnt=month;
mivel month egy tömb, amelynek neve egyenértékű a kezdőcímével. Ekkor:
*monthpnt
a month tömb első eleme, vagyis egy olyan mutató, amely a jan[ ] tömbre mutat:
**monthpnt
pedig egyenértékű a jan[] tömb első elemével, azaz a J karakterrel! Ha pedig rendelkezésünkre áll a kívánt hónap sorszáma (például 6. hónap), akkor e hónap nevét megcímzi egyfelől a
month[5]
másfelől pedig a
*(monthpnt+5)
hivatkozás is.
A fenti kis példák és a hozzájuk tartozó eszmefuttatások talán jól körvonalazzák azokat a szokatlan lehetőségeket, amelyek oly használhatóvá teszik a C nyelvet rendszer- vagy rendszerközeli programok írására. Hiszen az előbbihez hasonló indirekt hivatkozás még egy "mindenre elszánt" assembler programozót is arra késztetne, hogy alapos megfontolás után lásson csak neki a program megvalósításának. Egy percig sem állíthatjuk azt, hogy ilyen szerkezetek megvalósítása a C nyelvben nagyon egyszerű lenne: a mutaŹtók kezelésének jól átgondolt filozófiája azonban lényegesen egyszerűbbé teszi ilyen és ehhez hasonló rémtettek elkövetését.
(1988 május-június) Pethő Ádám
Nagyon izgalmas feladat és jó szórakozás egy "fekete doboz", az ismeretlen működését megismerni, leírni. Számítógépünket, az Enterprise-t is felfoghatjuk ilyennek, amiről azt tudhatjuk meg a Felhasználói kézikönyvből, hogy milyen BASIC nyelvű parancsokat, utasításokat fogad el és hatásukra mit csinál a számítógép. Akik a könyv segítségével már megismerték az Enterprise-t, azoknak csupán csak más utat ajánlunk, ami persze sok meglepetéssel szolgálhat.
Felfedező utunkra tehát minden Enterprise-tulajdonost meghívunk, figyelembe véve, hogy kezdők is vannak - és remélhetőleg egyre többen lesznek - közöttünk.
Cikksorozatunkkal csak a felfedezés irányítására vállalkozunk. Azt szeretnénk, ha a felfedezés örömét az olvasó élné át, akkor, amikor kis programjainkat futtatja, módosítja, kiegészíti és önállóan is készít programokat. Az utat olyan programok segítségével járjuk be, amelyek bemutatják a "fekete doboz" működését, alkalmazását, ugyanakkor igénylik az olvasó aktív közreműködését.
A Felhasználói kézikönyvre egyébként többször fogunk hivatkozni, mert abban megtalálható az egyes témakörök részletesebb leírása. A hivatkozás jelölése például: F/7, ami azt jelenti, hogy ezen az oldalon kezdődik a számítógép összeállítását leíró fejezet. Amennyiben mást írnánk a cikkben, mint ami a könyvben olvasható, úgy hívjuk segítségül a számítógépet a vita eldöntéséhez.
Segítségünkre lehet a tanulásban az alábbi algoritmus, amivel a javasolt tanulási módszert mutatjuk be:
Az ellipszis és a többiek
No, de vágjunk neki az utunknak! Első lépésként gépeljük be az 1. programot. Rögtön egy kis segítség: rossz billentyű lenyomásakor a felesleges karakter(eke)t az ERASE vagy a DEL billentyű lenyomásával törölhetjük. Ha kihagytunk karakter(eke)t, akkor az INS billentyűvel csinálhatunk helyet. A kis botkormánnyal vihetjük a kurzort a javítás helyére. Az utasítássorok végén, illetve a javítás után ne feledkezzünk meg az ENTER billentyű lenyomásáról, mivel az utasítássorok beírása vagy a javítás csak ekkor válik véglegessé. Erről meggyőződhetünk, ha begépeljük a LIST parancsot. A parancsokat is az ENTER billentyű lenyomásával zárjuk le. Akkor is láthatjuk a program listáját, ha a 2-es funkcióbillentyűt nyomjuk le.
1 PROGRAM "Pelda-01.bas"
10 GRAPHICS HIRES 2
20 PLOT 600,360,
30 PLOT ELLIPSE 200,100,
40 PLOT PAINT
A programot a RUN paranccsal, vagy az F1 START lenyomásával indíthatjuk el. Miután megnéztük a képernyőn megjelenő ellipszist, értelmezzük a programban szereplő utasításokat!
Egy grafikus pont több képernyőpontból áll. Változtassuk meg a 40-es sorban a koordinátákat és állapítsuk meg, hogy hány képernyőpontból áll egy pont a kétszínű grafikus képernyőn! Ezután a 10-es sor átírásával nézzük meg a többi grafikus képernyőt is. Ellenőrizzük az alábbi táblázatot, ahol:
A | B | C | D | E |
GRAPHICS HIRES 2 | 2 | 4 | 640 | 180 |
GRAPHICS LORES 2 | 4 | 4 | 320 | 180 |
GRAPHICS HIRES 4 | 4 | 4 | 320 | 180 |
GRAPHICS LORES 4 | 8 | 4 | 160 | 180 |
GRAPHICS HIRES 16 | 8 | 4 | 160 | 180 |
GRAPHICS LORES 16 | 16 | 4 | 80 | 180 |
GRAPHICS HIRES 256 | 16 | 4 | 80 | 180 |
GRAPHICS LORES 256 | 32 | 4 | 40 | 180 |
Gyorsabban megkereshetjük az értékeket a 2. példaprogrammal.
1 PROGRAM "Pelda-02.bas"
10 GRAPHICS HIRES 256
20 PLOT 600,360,
30 PLOT ELLIPSE 200,100,
35 INPUT X
40 PLOT X,360
50 GOTO 35
A 35-ös sorban az X változó értékét kérjük, azaz a festés kiindulópontjának vízszintes koordinátáját. Indítsuk el a programot, és a kérdőjel megjelenése után írjuk be a koordináta értékét, és nyomjuk le az ENTER billentyűt. Az 50-es sorról mindig a 35-ös sorra ugrunk vissza a GOTO utasítással, ennélfogva folyamatosan kéri a program a koordinátákat. Ebből a "végtelen ciklus"-ból a STOP billentyű lenyomásával léphetünk ki. Figyeljük meg, hogy csak a négy alsó sorban látszik a kiírás. Ennyi a szöveges képernyő, a képernyő többi része grafikus. Ide rajzolhatunk.
A 3. listának a programjával szakaszokból ábrát rajzolhatunk a képernyőre. A szakaszok végpontjainak koordinátáit úgy kell megadnunk, hogy a két adat közé vesszőt teszünk és a második adat után lenyomjuk az ENTER billentyűt. A program begépelése előtt adjuk ki a NEW parancsot, amivel töröljük az előző programot.
1 PROGRAM "Pelda-03.bas"
10 GRAPHICS HIRES 2
20 INPUT X,Y
30 PLOT X,Y;
40 GOTO 20
A 30-as sorban az PLOT utasításban a koordináták után a pontosvesszővel azt jelezzük, hogy letesszük a "ceruzát" a "papírra". Ez azt jelenti, hogy amikor a következő pontba mozgatjuk a "ceruzát", akkor rajzolni fog egy szakaszt. Keretezzük be a képernyőt, azaz keressük meg a legkisebb és legnagyobb koordinátájú pontjait a képernyőnek!
Most a számítógép adja meg véletlenszerűen a szakaszok végpontjait (4. példa). A begépeléshez segítség: az egyenlőségjel és a zárójelek begépelésekor a SHIFT billentyűt lenyomva kell tartani. A LET kulcsszót nem kell beírni, de listázáskor a gép már kiírja nekünk.
1 PROGRAM "Pelda-04.bas"
10 GRAPHICS HIRES 256
20 FOR I=1 TO 100
30 LET X=RND(1280):LET Y=RND(720)
40 SET INK RND(256)
50 PLOT X,Y;
60 NEXT
A képernyőpontok vízszintes koordinátáit 1280-nál kisebb, függőleges koordinátáit 720-nál kisebb nem negatív egész számmal adjuk meg. Az RND-függvények ilyen számokat állítanak elő a programban (0 <= X < 720; 0 <= Y < 1280). A 256 szín közül az RND-függvénnyel választjuk ki a "ceruza" színét (30-as sor).
A FOR és a NEXT utasítás együtt hoz létre egy ciklust, azaz ismétlődést. I értéke 1-től kezdődően egyesével növekszik 100-ig, tehát százszor ismétlődnek a FOR és NEXT utasítások között megadott utasítások, vagyis száz képernyőpont kerül a képernyőre. (lásd a F. Kézikönyv ciklusokra vonatkozó fejezetét.) Megfigyelhetjük azt is,hogy a program minden lefuttatásakor ugyanaz a "véletlenszerű" ábra jelenik meg.
Most törölni fogjuk a megrajzolt szakaszt, csak egy szakaszt látunk majd a képernyőn (5. példa).
100 PROGRAM "Pelda-05.bas"
110 GRAPHICS HIRES 256
120 SET PAPER 96
130 CLEAR GRAPHICS
140 LET X1=100:LET Y1=200
150 RANDOMIZE
160 FOR I=1 TO 200
170 LET X=RND(1280):LET Y=RND(720)
180 SET INK RND(256)
190 PLOT X1,Y1;X,Y
200 SET INK 96
210 PLOT X1,Y1;X,Y
220 LET X1=X:LET Y1=Y
230 NEXT
A kirajzolt szakasz végpontja lesz a következő szakasz kezdőpontja, ezért az X és Y változók értékeit áttesszük, és így megőrizzük az X1 és Y1 változókban. A SET PAPER utasítással a papír színét állítjuk be, és szükség van a CLEAR GRAPHICS utasításra is, hogy a képernyő beszíneződjön. A vonalat úgy töröljük, hogy a "ceruza" színét a "papír" színére állítjuk (180-as sor).
Gyönyörű színkavalkád
Az előző részben az ismerkedés módszerével és a különböző rajzok elkészítésével foglalkoztunk. Most próbáljuk ki a gép színezési lehetőségeit.
A 6. listán lévő programmal az Enterprise 256 színében gyönyörködhetünk, és megtudhatjuk a színek kódszámait. A kódszámok kiírásához a karakterláncokkal végezhető műveleteket és függvényeket kell felismernünk (ld. F. kézikönyv karakterláncokról szóló fejezetét).
100 PROGRAM "Pelda-06.bas"
110 GRAPHICS LORES 256
120 LET K=220
130 FOR I=0 TO 18
140 SET INK K+I
150 PLOT 64*I,0;64*I,719
160 LET K$=STR$(K+I)
170 LET N=LEN(K$)
180 LET L=2*I+1
190 PRINT TAB(L) K$(N-2)
200 PRINT TAB(L) K$(N-1)
210 PRINT TAB(L) K$(N)
220 FOR J=1 TO 5
230 PRINT CHR$(176);
240 NEXT
250 NEXT
260 GET Q$
270 IF Q$="" THEN 260
A program sorainak magyarázata:
Egyszerre 18 vonalat tudunk kirajzolni a programmal, ezért a K értékét kell beállítani a 120-as sorban a program futtatása előtt, ha a többi színt is látni akarjuk.
Ismerős kép jelenik meg a képernyőn, ha a 7. példaprogramot begépeljük és elindítjuk.
100 PROGRAM "Pelda-07.bas"
110 REM --- enterprise ---
120 GRAPHICS HIRES 256
130 RANDOMIZE
140 LET X$="ENTERPRISE"
150 FOR I=1 TO 10
160 SET INK RND(256)
170 PLOT I*128-128,360,
180 PRINT £101:X$(I)
190 NEXT
200 PRINT TAB(5) "C 1985 Intelligent Software Ltd"
210 SET INK RND(256)
220 LET I=RND(10)
230 PLOT I*128,360,
250 PRINT £101:X$(I+1)
260 GET Q$
270 IF Q$="" THEN 210
A 2, 4 és a 16 színű grafikus képernyő színezésének vizsgálatát segíti a 8. példaprogram beírása.
100 PROGRAM "Pelda-08.bas"
110 ! - szinek 2, 4, 16 -
120 GRAPHICS LORES 16
130 SET PALETTE 0,2,3,4,5,6,7
140 SET BIAS 8
150 FOR I=0 TO 15
160 SET INK I
170 PLOT I*64,0;I*64,600
180 PLOT 0,719,:PRINT £101:I
190 GET Q$
200 IF Q$="" THEN 190
210 PLOT 0,719,:PRINT £101:CHR$(159) CHR$(159) CHR$(159)
220 NEXT
A SET PALETTE utasításban nyolc szín kódszámát kell megadnunk. A programban az első nyolc színkódot soroltuk fel. A SET BIAS a következő nyolc színt jelöli ki. A SET INK utasítással - a 2, 4 és 16 színű képernyőnél - a PALETTE és a BIAS utasításokkal kijelölt színek sorszámait kell megadnunk. Ezt változtatjuk a FOR ciklussal.
A kétszínű és négyszínű képernyőkön csak az első kettő, illetve az első négy színt használhatjuk: a 0, 1, illetve a 0, 1, 2, 3 sorszámúakat. Nagyobb sorszám megadásakor a számítógép néggyel osztja a sorszámot, és a maradék jelöli ki a színt. Adjuk ki a SET PALETTE BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE parancsot! A színeket megadhatjuk az RGB függvénnyel is. A grafikus képernyőre írunk a 170-es és a 200-as sorokban. A számítógép alapesetben a 101-es csatornán tárolja a grafikus képernyő tartalmát. Ezt a csatornát kell kijelölnünk, ha írni akarunk a grafikus képernyőre.
Futtassuk le a 7. programot, és nyomjuk le a DISPLAY TEXT funkcióbillentyűt (SHIFT + F5), majd a DISPLAY GRAPHICS funkcióbillentyűt (SHIFT + F6). Így hívhatjuk elő a grafikus, illetve a szöveges képernyőt.
Nyomjuk le a DISPLAY TEXT funkcióbillentyűt, és adjuk ki a
DISPLAY £101:AT 6 FROM 1 TO 5
parancsot! A grafikus képernyő első öt sorát előhívtuk a 101-es lapról, és megjelenítettük a 6. sortól kezdődően.
Nyomjuk le a TEXT billentyűt és adjuk ki a
DISPLAY £102:AT 12 FROM 1 TO 4
parancsot! A 12. sortól kezdődően ugyanaz, mint az első négy sorban. A 101-es csatorna tehát a grafikus, a 102-es a szöveges képernyőt tárolja. A többi csatornáról később lesz szó. Látható, hogy bármelyik nyitott képernyő tartalmát - vagy egy részletét - megjeleníthetjük, tetszőleges pozícióban, akár többször is.
A grafikus képernyőkön a PLOT utasítással is kijelölhetjük a kiírás helyét.
GRAPHICS ATTRIBUTE utasítással olyan grafikus lapon dolgozhatunk, amelyen minden színcellának (8 pont széles és 1 pont magas) egy-egy tinta-, ill. papírszín felel meg. Ez az üzemmód 16 színű palettával még ugyanazt a felbontást adja, mint a négyszínes HIRES grafika. Ennek használatát a 9. példában tanulmányozhatjuk.
100 PROGRAM "Pelda-09.bas"
110 ! - attributum kepernyo -
120 GRAPHICS ATTRIBUTE
130 SET BORDER 42
140 SET PALETTE 0,25,125,12,2,13,38,255
150 SET BIAS 60
160 LET X$="MISKOLC":LET J=15
170 FOR K=0 TO 7
180 SET ATTRIBUTES 2^K
190 LET L=LEN(X$)*32+32:LET I=2*K+2
200 LET X=J*32-48:LET Y=720-I*36-18
210 SET INK 8+K
220 PRINT £101,AT I,J:X$ " " 2^K
230 SET INK K
240 PLOT X,Y;X+L,Y;X+L,Y+72;X,Y+72;X,Y
250 NEXT
A 10. listán látható program talán ötletet ad egy játékprogram megírásához.
100 PROGRAM "Pelda-10.bas"
110 GRAPHICS ATTRIBUTE
120 LET J=0:X$=" "&CHR$(154)
130 PRINT £101,AT 10,J:X$
140 LET J=J+1
150 IF J<40 THEN 130
Felfedező utunk során arra mindig kell időt szakítanunk, hogy ismereteinket, tapasztalatainkat rendszerezzük és kiegészítsük újabb, talán kevésbé fontos, nélkülözhető, ugyanakkor munkánkat megkönnyítő vagy újabb lehetőségeket nyújtó ismeretekkel.
Nézzük a programok begépelését, javítását, módosítását. A betűk, számok, írás- és műveleti jelek begépelésére szolgáló billentyűkön kívül az ENTER, SHIFT, valamint az ERASE, DEL és az INS billentyűket használtuk eddig. Gyorsabban mozgatharjuk a kurzort és gyorsabban végezhetjük a javítást, ha tudjuk, mi történik akkor, amikor a botkormányt mozgatjuk, vagy az ERASE, az INS, a DEL billentyűk valamelyikét lenyomjuk, miközben lenyomva tartjuk a SHIFT vagy a CTRL billentyűt (lásd a felhasználói kézikönyv 39-40. oldalán). Írassuk ki többször valamelyik programot a képernyőre (LIST), és próbáljuk ki, mi történik a billentyűk használatakor.
A programkezelő parancsok közül a legfontosabb a NEW, a RUN és a LIST parancs. Az AUTO parancs megkímél a sorszámok begépelésétől, a DELETE paranccsal programsorokat törölhetünk, a RENUMBER átsorszámozza a programot. A parancsok közül néhányat a funkcióbillentyűkkel is megadhatunk (Felhasználói kézikönyv, 46. oldal).
Tegyünk különbséget a HOLD és a STOP billentyűk hatása között. Az első csak leállítja (szünetelteti), a második megszakítja a program futását. Megszakításkor a program futása a STOP billentyű lenyomása után, a CONTINUE parancs hatására folytatódik. A programok mentése a SAVE, ellenőrzése a VERIFY, beolvasása a LOAD paranccsal lehetséges. A magnetofon távvezérlésének ki- és bekapcsolására a REM1, illetve a REM2 parancsok szolgálnak. Ez attól függ, hogy a távvezérlőt melyik bemenettel kötöttük össze.
A parancsok részletes leírását a Referencia Kézikönyvben kell keresnünk.
Dőlnek a dominók
Az előző két részben elsősorban az Enterprise színeivel foglalkoztunk. A színek számát a GRAPHICS utasítással adtuk meg, a színeket a SET PALETTE utasítással jelöltük ki, akkor, ha kettő, négy és 16 színnel dolgoztunk. A keret színét a SET BORDER, a "papír" színét a SET PAPER, a "ceruza" színét a SET INK utasítással állíthatjuk be. A SET PALETTE utasítással megadott színek közül egy a SET COLOUR utasítással változtatható.
A színezést ezek után az olvasóra bízzuk. Most a grafikával foglalkozunk egy kicsit bővebben, miközben megismerkedhetünk a legalapvetőbb BASIC utasításokkal és programozási alapfogalmakkal, valamint a videolapokkal.
Rajzoljunk egy téglalapot! Először numerikus konstansokkal - számokkal - adjuk meg a csúcspontok koordinátáit (11. példa).
100 PROGRAM "Pelda-11.bas"
110 GRAPHICS HIRES 2
120 PLOT 200,200;500,200;500,400;200,400;200,200
130 PLOT 340,300,PAINT
Jelöljük a téglalap bal felső pontjának koordinátáit X,Y-nal , és az oldalak hossza legyen A és B (12. példa).
100 PROGRAM "Pelda-12.bas"
110 GRAPHICS HIRES 2
120 INPUT PROMPT "csucspont (x,y)=":X,Y
130 INPUT PROMPT "Oldalak (A,B)=":A,B
140 IF X+A>1279 OR Y+B>719 THEN 120
150 PLOT X,Y;X+A,Y;X+A,Y+B;X,Y+B;X,Y
160 PLOT X+A/2,Y+B/2,PAINT
Az X,Y,A és B változók értékeit az INPUT PROMPT utasítással kérjük, amivel szöveg is kiíratható. A 140-es sorban az IF utasítással leellenőrizzük, hogy a megadott értékekkel nem lógunk-e ki a képernyőről. Ha igen, újra bekérjük az adatokat.
Akkor, ha a téglalapot ferdén szeretnénk a képernyőre rajzolni, egyszerűbb a teknőcutasításokat használni.
100 PROGRAM "Pelda-13.bas"
110 OPTION ANGLE DEGREES
120 GRAPHICS HIRES 2
130 LET X=400:LET Y=300:LET A=300:LET B=100
140 INPUT PROMPT "Elforgatas szoge=":FI
150 PLOT X,Y;ANGLE FI;FORWARD A;ANGLE 90+FI;FORWARD B;ANGLE 180+FI;FORWARD A;ANGLE 270+FI;FORWARD B
160 LET X=X+400:PLOT ANGLE 0
170 PLOT X,Y;LEFT FI;FORWARD A;LEFT 90;FORWARD B;LEFT 90;FORWARD A;LEFT 90;FORWARD B
180 PLOT X,Y,ANGLE FI+ATN(B/A)/2,FORWARD SQR(A*A+B*B)/2,PAINT
A 13. példában az OPTION ANGLE DEGREES utasítás hatására az ANGLE, LEFT, illetve a RIGHT utasításokban szögekben adhatjuk meg az elfordulás mértékét. Az ANGLE utasítással a képernyő jobb oldala felé mutató irányhoz képest forgathatjuk a téglalapot, a LEFT és RIGHT utasításokkal pedig a "ceruza" pillanatnyi irányához adódik a szög. A 150-es sorban alaphelyzetbe állítottuk a "ceruzát". Egy kis matematikai ismerettel most is megoldható, hogy a "ceruza" a kifestés előtt a téglalap középpontjába kerüljön (180-es sor).
Szimuláljuk most egy dominó eldőlését. A téglalapot, azaz a "dominót" többször - csökkenő dőlési szögekkel - kirajzoljuk, majd "eltüntetjük". Az eltüntetés úgy történik, hogy a téglalapot a "papír" színével rajzoljuk meg (14. példa).
100 PROGRAM "Pelda-14.bas"
110 OPTION ANGLE DEGREES
120 GRAPHICS HIRES 2
130 LET X=600:LET Y=100:LET A=40:LET B=300
140 FOR FI=90 TO 0 STEP-15
150 SET INK 1
160 PLOT X,Y;ANGLE FI;FORWARD B;ANGLE 90+FI;FORWARD A;ANGLE 180+FI;FORWARD B;ANGLE 270+FI;FORWARD A
170 IF FI=0 THEN EXIT FOR
180 SET INK 0
190 PLOT X,Y;ANGLE FI;FORWARD B;ANGLE 90+FI;FORWARD A;ANGLE 180+FI;FORWARD B;ANGLE 270+FI;FORWARD A
200 NEXT
Láthatóan a szimuláció nem a legtökéletesebb.
Nézzünk egy másik megoldást (15. példa).
100 PROGRAM "Pelda-15.bas"
110 OPTION ANGLE DEGREES
120 GRAPHICS HIRES 16
130 SET PALETTE 0,0,0,0,0,0,0,0
140 LET X=600:LET Y=100:LET A=40:LET B=300:LET T=1
150 PRINT "Varj egy kicsit!"
160 FOR FI=90 TO 0 STEP-15
170 SET INK T:LET T=T+1
180 PLOT X,Y;ANGLE FI;FORWARD B;ANGLE 90+FI;FORWARD A;ANGLE 180+FI;FORWARD B;ANGLE 270+FI;FORWARD A
190 NEXT
200 CLEAR TEXT
210 FOR T=1 TO 6
220 SET COLOUR T,2
230 FOR J=1 TO 20
240 NEXT
250 SET COLOUR T,0
260 NEXT
270 GOTO 210
A 16 színű képernyő nyolc színét a SET PALETTE utasítással a "papír" színére, azaz feketére állítjuk. A dőlés fázisait ezekkel a színekkel megrajzoljuk (160-190-es sorok), majd a SET COLOUR utasítással egy kis időre láthatóvá tesszük az eddig nem látott fázisokat (210-260-as sorok). A 230-240-es sorokban üres, várakozó ciklust írtunk, amivel lassítjuk a "dominó" dőlését.
Ez sem az igazi! A láthatatlanul megrajzolt téglalapok törlik egymás téglalap vonalait. Tovább javítjuk a programot. Ezúttal minden fázist más-más lapra rajzolunk (16. példa).
100 PROGRAM "Pelda-16.bas"
110 OPTION ANGLE DEGREES
120 SET VIDEO MODE 1
130 SET VIDEO COLOUR 2
140 SET VIDEO X 24
150 SET VIDEO Y 12
160 LET X=300:LET Y=50:LET A=40:LET B=300:LET T=1
170 PRINT "Varj egy kicsit!"
180 FOR FI=90 TO 0 STEP-15
190 OPEN £T:"video:"
200 PLOT £T:X,Y;ANGLE FI;FORWARD B;ANGLE 90+FI;FORWARD A;ANGLE 180+FI;FORWARD B;ANGLE 270+FI;FORWARD A
210 LET T=T+1
220 NEXT
230 CLEAR TEXT
240 FOR T=1 TO 7
250 DISPLAY £T:AT 5 FROM 1 TO 12
260 FOR J=1 TO 40
270 NEXT
280 NEXT
290 GOTO 240
Hét lapra van szükségünk, ezért már takarékoskodnunk kell a memóriával. A 120-130-as sorokban a megnyitandó videólapok típusát állítjuk be. A lapok méretét kisebbre vesszük, magasságuk legyen 12 sor, szélességük 24 karakter (140-150-as sorok). Miután megnyitjuk a T. lapot (190-es sor), megrajzoljuk a "dominót" (200-As sor). A lapokat egymás után megjelenítjük a képernyő 5. sorától kezdve (250-es sor). Jól látszik a lapméret, ha kiadjuk a SET BORDER 2 parancsot.
Tanítványom, Nagy Ákos, a miskolci Földes Ferenc Gimnázium II. E osztályos tanulója készítette az alábbi két programot, amelyek ugyancsak a videolapokat használják. Mindenki ismeri azt a játékot, hogy ha egy füzetnek jobb oldali lapjaira egy mozgássorozat egyes elemeit laponként lerajzoljuk, és a lapokat gyorsan lepergetjük, mozgó képet kapunk. Ezzel a módszerrel készíthetünk az Enterprise-on gyorsan mozgó grafikus ábrákat. Az előbb leírt játékot úgy valósíthatjuk meg a számítógéppel, hogy a papírlapok helyett videolapokat használunk, és arra rajzoljuk a mozgás fázisait. A legegyszerűbben például integető emberkét készíthetünk.
1 PROGRAM "Pelda-18.bas"
2 ! Inteegto emberke
3 ! Nagy Akos - Miskolc
100 SET VIDEO MODE 1
110 SET VIDEO COLOUR 1
120 SET VIDEO X 19
130 SET VIDEO Y 11
140 FOR G=1 TO 2
150 OPEN £G:"video:"
160 SET £G:INK YELLOW
170 PLOT £G:300,320,ELLIPSE 30,30,PAINT
180 PLOT £G:300,290;300,140
190 PLOT £G:300,140;380,40
200 PLOT £G:300,140;220,40
210 NEXT
220 PLOT £1:200,300;300,240;400,300
230 PLOT £2:400,180;300,240;200,180
240 TEXT
250 FOR T=1 TO 2
260 DISPLAY £T:AT 6 FROM 1 TO 11
270 WAIT 1
280 NEXT
290 GET G$
300 IF G$="" THEN 250
Mielőtt valaki hamar "hibázna"
A strukturális vagy moduláris programozás olyan programozási technika, amely részfeladatok megoldására szolgáló, Logikailag jól elkülöníthető programrészek - struktúrák (szerkezetek), eljárások, modulok, szubrutinok, függvények - használatán alapul.
A BASIC nyelv hibájaként legtöbbször azt róják fel, hogy nem támogatja ezt a programozási módszert, és emiatt rossz programozási gyakorlat alakul ki azokban, akik ezen a nyelven nevelkednek. Mielőtt bárki elhamarkodottan véleményt alkotna erről, ajánlom, induljon ki abból, hogy a hiba nem a BASIC nyelvben keresendő. Meggyőződésem ugyanis:
Az Enterprise BASIC nyelvében a szubrutinok és a függvények lesznek azok a modulok, amelyekből felépíthetjük programjainkat.
A szubrutinok
Két összetettebb, rokon feladat megoldásával mutatjuk be a szubrutinok, illetve a függvényblokkok - eljárásfüggvények - alkalmazását, működését. Tesszük ezt annak ellenére, hogy ezek alkalmazása az IS-BASIC-ban felesleges; hisz eljárásokat, függvényeket is használhatunk. Előbb a szubrutinokkal foglalkozhatunk, mert más BASIC nyelvekben csak ez a lehetőség adott
Milyen részekből áll össze a program?
Most kell eldöntenünk, hogy mit tudjon egy szubrutin, mi legyen a kezdő sorszáma és milyen változókat használunk:
A program megírása
Először megírjuk a szubrutinokat. A szubrutinok elé rövid kis főprogramot írunk, hogy kipróbálhassuk.
Nem biztos, hogy a program tervezésekor mindent figyelembe tudunk venni és mindenre, gondolunk. A szubrutinok megírásakor is merülnek fel újabb szempontok, amik módosíthatják eredeti elképzelésünket. Több feltételt legtöbbször csak a szubrutin kipróbálása után adhatunk meg. Például a TORTKI és a TORTBE szubrutinokban 1 <= MS <= 18; 1 <= MO <= 38 lehet. A feltételeket a szubrutinban is megadhatjuk. Ez azzal az előnnyel jár, hogy a szubrutin alkalmazásakor nem kell a dokumentációk között keresgélni. Miután összeállítottuk a programot és az működik, ezeket a megjegyzéseket törölhetjük, hogy a program rövidebb legyen és gyorsabban fusson.
A bemenő paramétereket a szubrutinban is megvizsgálhatjuk. Ez azzal az előnnyel jár, hogy a hibakeresés egyszerűbb lesz. Amennyiben nincs ellenőrzés, jobban kell támaszkodnunk a szubrutinok leírására. A szubrutinokat külön-külön is elkészíthetjük, azokat kimentés után MERGE paranccsal egymás után beolvashatjuk, és az így összeállt program elé beírjuk a főprogramot (20. példaprogram). A főprogram megírásakor arra ügyeljünk, hogy a szubrutinok hívása előtt a bemenő paramétereknek értéket kell adni. A szubrutin változóit a főprogramban nem tanácsos másra használni. Ezért választunk szokatlanabb neveket a szubrutin változóinak.
A függvények
Amint azt korábban már említettük, most csak a függvényblokkokról lesz szó. A függvényblokk olyan programrészlet, amelyik a DEF név (paraméterek) utasítással kezdődik és az END DEF utasítással végződik. Hívása a CALL név paraméterek utasítással lehetséges.
A 21. példaprogram függvényeit az előző program szubrutinjaiból készttettük. A név helyett, azaz a REM sorokba beírtuk a DEF, a RETURN helyére az END DEF utasításokat. A függvényeknél a sorszámoknak már nincs szerepük, azokat bárhol elhelyezhetjük a programban, a függvényeket nevükkel azonosítjuk. A DEF szó után adjuk meg a függvény nevét, amelyre a CALL utasítással hivatkozhatunk. A függvények kimenő paraméterei elé a REF szót kell írni.
A paraméterek elnevezését több helyen megváltoztattuk, hogy bemutassuk a globális, azaz a programba bárhol, és a lokális, csak a függvényben használt változók közötti különbséget.
A globális változókat a főprogramban definiáljuk a LET, INPUT, READ, GET vagy a NUMERIC és a STRING utasításokkal. A lokális változókat a DEF utasításban kell megadni, és azokat csak a függvényen belül használhatjuk. A lokális változók a programban: MS, MO, KP, KQ, BP, BQ, A9, B9, D9.
A CALL utasításban fel kell sorolni a be- és kimenő paramétereit abban a sorrendben, ahogyan azok a DEF utasításban szerepelnek. Itt természetesen csak globális változókat használhatunk, hiszen a főprogramban adunk értékeket ezeknek a változóknak, és ott használjuk fel a függvények kimenő paramétereit is.
Lokális változót nem használhatunk ugyanabban a függvényben be- és kimenő paraméterként. Ezért kellett az LNKO függvényben a D9 változót beírni. A TORTBE függvény is eltér a szubrutinoktól. A program futtatásakor a kiegészítés miértjére is választ kapunk.
Függvények függvényében
A beépített függvények számát tekintve nem lehet okunk panaszra. Az ábécé szerinti felsorolásuk a Felhasználói kézikönyv mellékletét képező Referencia kézikönyvben található. Mi most más rendezőelvet követünk. A függvényekből csoportokat alakítunk ki az egyszerűbb eligazodás kedvéért. A csoportosításunkon kívül természetesen más szempontok alapján is lehet osztályozni a függvényeket: ismerem - nem ismerem, már alkalmaztam - még nem alkalmaztam stb. Ezek a megkülönböztetések is segítségünkre lehetnek a tanulásban.
Az Enterprise belső függvényeit a következőképpen csoportosíthatjuk:
Függvények szubrutin. Ezzel az ON GOSUB utasítást is bemutatjuk. Újabb függvény beírásakor az utasítássor sorszámát ide is be kell írni. A függvények közül az INT, IP, CEIL és az FP függvényekre szeretném felhívni a figyelmet. Alkalmazásukra bemutatunk néhány példát a 26. lista programjával. Van ugyan néhány kétparaméteres függvény, amelyekkel ezek az átalakítások, számítások egyszerűbben megoldhatók, de úgy gondolom, érdemes összehasonlítani a megoldásokat.
Eddig még az RND függvénnyel nem foglalkoztunk. Nem is soroltuk be egyik csoportba sem. A két alak miatt nem döntöttem: RND(6) a hatnál kisebb nem negatív egész számok közül választ véletlenszerűen (270-es sor). A "hagyományos Az RND 0 és 1 közé eső véletlenszámot állít elő. Így az N=RND(6) egyenértékű az N=INT(6*RND) utasítással.
Hármat azért vonunk ki, hogy negatív számokat is kapjunk.
Karakterek, karakterláncok
Kis helyen hosszabb szöveg megjelenítésére szolgál az úgynevezett ablak, ami ugyanúgy működik, mint a fényújság (28. példaprogram).
100 PROGRAM "Pelda-28.bas"
110 ! ---fenyujsag---
120 TEXT
140 INPUT AT 1,2,PROMPT "Szoveg: ":X$
145 LET X$=X$&" *** "
150 INPUT AT 6,2,PROMPT "Ablak hossza (max.38): ":N
155 IF N>38 THEN 150
160 IF LEN(X$)<N THEN
180 LET X$=X$(:N-LEN(X$))
190 END IF
200 PRINT AT 12,20-INT(N/2):X$(:N)
210 LET X$=X$(2:LEN(X$))&X$(1)
220 GET Q$
230 FOR T=1 TO 100
240 NEXT
250 IF Q$="" THEN 200
260 CLEAR SCREEN
Ennek alapötlete az, hogy a karakterlánc első n karakterét kiírjuk, ezután az első karaktert a karakterlánc végére tesszük. A szöveg vége és eleje közé elválasztónak berakunk három csillagot (145. sor).
A 29. programmal az ORD függvényt mutatjuk be, amivel a billentyűzettel és a botkormánnyal megadható karakterek kódját határozhatjuk meg. Gondoljunk azokra a karakterekre is, amelyeket két billentyű lenyomásával adhatunk meg (SHIFT, CTRL, ALT)!
100 PROGRAM "Pelda-29.bas"
110 TEXT :PRINT AT 2,8:"Nyomj le egy billentyut!"
130 LET Q$=INKEY$
140 IF Q$="" THEN 130
150 PRINT AT 10,16:"Karakter: ";CHR$(161);Q$
160 PRINT AT 12,16:"Kod: ";CHR$(161);ORD(Q$)
170 IF ORD(Q$)<>13 THEN 130
A kódokhoz tartozó karaktereket a 30. programmal írathatjuk ki, a CHR$ függvény alkalmazásával. A 150-es és a 170-es sorokkal IF utasításokat váltottunk ki. Ha a kifejezésben szereplő logikai kifejezés igaz, akkor annak értéke -1, egyébként 0.
100 PROGRAM "Pelda-30.bas"
110 TEXT :LET I=32
120 PRINT AT 22,6:"A botkormanyt le-fel mozgasd!"
130 GET Q$
140 IF Q$="" THEN 130
150 LET I=I-(ORD(Q$)=180 AND I<160)
160 LET I=I+(ORD(Q$)=176 AND I>32)
170 PRINT AT 12,8:CHR$(161);"Kod: ";I;TAB(20);"Karakter: ";CHR$(I)
180 GOTO 130
Dusza Árpád
SPOKE-SPEEK
Aki olyan programot szeretne írni, amely szöveges adatokat tárol (szótár, lexikon,
adatnyilvántartás stb.), előbb-utóbb szűknek érzi az IS BASIC STRING utasításával
lefoglalható tömbméretet. Mindent megpróbál, hogy minél több helyet biztosítson
egyre szaporodó adatainak. A kézikönyv tanulmányozásakor felfigyel arra, hogy
a gép alapkiépítésben 128 k-s, és kissé értetlenül rázza a fejét. Az ugye tény,
hogy az IS BASIC is lefoglal egy kis helyet, s ha floppyt is csatlakoztatunk,
ez a lefoglalt terület csak nő, noha nem végzetesen. Helyet foglal továbbá az
interpreter, adminisztrációs célokra is. Ezt az INFO billentyű megnyomásakor
tapasztalja. Nem érti azonban, hogy az IS BASIC miért csak 64 k-t kezel. Az
IS BASIC végül is gondol ránk, s két kulcsszóval segít gondjainkon, hogy a még
szabad 64 k-t is hasznosíthassuk. Ez a két kulcsszó a jól ismert POKE-PEEK testvére,
egy S betűvel megtoldva. Mi a különbség a két POKE, illetve PEEK között?
A POKE-PEEK utasítás, az első (nevezzük elsőnek) 64k memóriába történő (0-255
nagyságú) számok beírására és kiolvasására ad lehetőséget, ami annyit jelent,
hogy a 0. memóriacímtől a 65536. memóriacímig írhatunk, illetve olvashatunk.
Ez formailag így néz ki:
POKE a,b illetve PEEK (a)
a = 0-65536
b = 0-255
A SPOKE-SPEEK utasítás a teljes 128k memória kezelését teszi lehetővé, azzal
az apró nehezítéssel, hogy a szegmenskiosztást figyelembe kell venni. Az Enterprise
128 memóriája 8 db, egyenként 16 k-s (16384 bájtos) szegmensre van felosztva.
A szegmensekre 0-255 értékű számmal hivatkozhatunk. A SPOKE formailag így használható:
SPOKE a,b,c illetve SPEEK (a,b)
A = a szegmens címe (0-255)
B = a szegmensen belüli memóriarekesz címe (0-16383)
C = a memóriában elhelyezendő szám (0-255)
Az első 8 szegmenst végignézhetjük az alábbi módon:
10 FOR I=0 TO 7
20 FOR II=0 TO 16383
30 PRINT SPEEK (I,II)
40 NEXT
50 NEXT
Elárulom, hogy nincs sok értelme, ugyanis azt láthatjuk csak, hogy telis-tele van írva mind a 8 szegmens, tehát végig kell nézni mind a 255 szegmenscímet. Erre azonban az alábbi kis program talán célszerűbb:
10 FOR I=0 TO 255
20 PRINT I, SPEEK (I,X)
30 NEXT
Ha az x értékét megváltoztatva többször futtatjuk a programot, akkor a következő
megállapításra juthatunk. Az Enterprise nyolc használatos szegmense a 248, 249,
250, 251, 252, 253, 254, 255. Ezek szerint a szegmensek címei memóriabővítés
esetén lefelé bővülnek Az IS BASIC a 248-251 szegmenstartományt használja. A
számunkra lényeges plusz 64 k a 252-255-ös szegmenseken helyezkedik el. A lényeg,
hogy rendelkezésre áll a szabad, "szűz" 64 k, valamint a kezeléséhez
két utasítás. Hogyan használjuk? Segítségül még álljon itt egy mintaprobléma:
A 252-es szegmens 0. rekeszében szeretnénk tárolni például egy "A" betűt. Ez nem okozhat nagyobb fejtörést, mert tudjuk, hogy mindegyik karakterünk
megfeleltethető egy, a 32-159 értékű számtartományba tartozó számmal. Ennek
ismeretében pedig a megoldás:
SPOKE 252,0,ORD ("A")
Még egy megjegyzés. Ekkora tárterület kezelése már felveti egy fordító (compiler)
szükségességét is. Hiszen aki megszerette a BASIC-programozást, az már csak
a szerelem miatt sem mond le róla, noha tudja, hogy vannak sokkal hatékonyabb
célnyelvek is.
Papp Miklós
Érdekes görbék Enterprise gépre
Az Enterprise személyi számítógép megjelenésével igen olcsó és az árához képest jó képességű gép került forgalomba. A gép BASIC-interpretere igen sokat tud, de lassú. Ennek ellenére szerintem elterjedése csak a forgalmazókon múlik. Különösen kiemelendőnek tartom a gép grafikai képességeit. BASIC-ből is 640x720 felbontású grafikus lapot tud kezelni. A Nick chip ki tudja használni a felhasználói kézikönyvben írt 1280x720-as felbontást is. A közölt programok grafikus képernyője nem egészen ilyen felbontású. Az INIT alprogram megnyit egy grafikus csatornát a két színű, nagy felbontású grafikának, amit a 101-es csatornához rendel (lásd az 1. listát):
330 DEF INIT
340 OPTION ANGLE RADIANS
350 SET VIDEO COLOR 0:SET VIDEO MODE 1
360 SET VIDEO X 38:SET VIDEO Y 24
370 OPEN £101:"video:"
380 SET PALETTE BLACK,YELLOW
390 DISPLAY £101:AT 1 FROM 1 TO 24
400 END DEF
A sorszámok a programoknál nem fedik egymást, tehát külön-külön beírhatok, majd MERGE utasítással fűzhetők össze. Ha nem mindegyik programot próbáljuk ki, akkor az INIT alaprogramot mindig hozzá kell írni a programhoz, de megpróbálhatjuk saját grafikus képernyő készítését is.
A programok mind paraméteres görbéket ábrázolnak. Természetesen néhol lenne egyszerűbb megoldás is, például a teknőcparancsok alkalmazása. Én azért nem használtam ezeket, hogy szemléltessem két szögfüggvény összetételével, milyen bonyolultnak tűnő görbéket lehet kapni.
Sinus- és cosinus-görbék
E két függvény csak annyiban különbözik, hogy egymáshoz képest 90 fokkal el vannak tolva, pontosabban:
SIN(X+90)=COS(X)
Ennek alapján elég, ha csak az egyik függvény ábrázolására írunk programot. Mert ha például a SIN(x) görbét ábrázoljuk, akkor a COS(x) görbét úgy kaphatjuk meg, hogy az x ciklusváltozóhoz hozzáadunk 90 foknak megfelelő értéket.
Ezek után már csak az van hátra, hogy a görbéket jól helyezzük el a képernyőn. A PLOT utasításban szereplő konstans szorzók szerepe az, hogy a SIN függvényt megfelelően nagyra nyújtsák meg a képernyőn. A 193 éppen a MAX-X-nek a 2*PI-ed része, a 270 pedig a MAX-Y-nak a negyede.
Bemenő paraméterek:
A lépésközt azért tettem az ómegától függővé, hogy a rajzolás viszonylag gyors legyen, de a kép még ne legyen túlságosan szögletes (2. lista):
410 DEF SIN_COS
420 LET AMP=2:LET OM=2:LET FAZ=.1
430 LET FAZ=FAZ*PI/180
440 LET LEP=.2/OM
450 FOR X=0 TO 2*PI STEP LEP
460 PLOT 193*X,207*AMP*SIN(OM*X+FAZ)+414;
470 NEXT
480 END DEF
Lissajous-görbék
Az előbbi sinus-, illetve cosinus-görbéket felfoghatjuk harmonikus rezgőmozgás grafikonjaiként is. Két, egymásra merőleges rezgés eredőjének általában bonyolultabb görbék felelnek meg. Ennek a demonstrálására is lehetne alkalmazni a következő programot.
A program paraméterei az első rezgés amplitúdója (A1), körfrekvenciája (O1), fázisa (F1), és a második rezgés paraméterei(A2, O2, F2). Ezzel a programmal előállítható kör és ellipszis egyaránt. Az omegák arányának változtatásával hasonló jellegű görbéket kapunk (3. lista):
490 DEF LISS8370
500 LET A1=3:LET O1=.6:LET F1=1.6
510 LET A2=2:LET O2=.8:LET F2=1.2
520 LET F1=F1*PI/180:LET F2=F2*PI/180
530 LET LEP=.3/((O1+O2)+ABS(O1-O2))/2
540 FOR X=0 TO 10*PI+LEP STEP LEP
550 PLOT A1*193*SIN(O1*X+F1)+607,207*A2*SIN(O2*X+F2)+414;
560 NEXT
570 END DEF
Egyéb paraméteres görbék
A paraméterrel megadható görbék három alapesete - a körön kívül - a ciklois, a szívgörbe és a csillaggörbe. A három görbét a következőképpen származtathatjuk:
Ciklois: egy egyenesen csúszás nélkül gördülő körnek egy kerületi pontja cikloist ír le (4. lista):
580 DEF CIKLOISZ
590 LET RX=1:LET RY=1
600 IF RX<=.5 THEN LET ST=8
610 IF RX=1 AND RX>.5 THEN LET ST=4
620 IF RX>1 THEN LET ST=2
630 FOR X=0 TO ST*PI STEP .1
640 PLOT 85*RX*(X-SIN(X)),103*RY*(1-COS(X))+414;
650 NEXT
660 END DEF
Szívgörbe: egy r sugarú kör külső oldalán csúszás nélkül gördülő másik r sugarú kör egy kerületi pontja szívgörbét ír le (5. lista):
670 DEF SZIVGORBE
680 LET RX=2.2:LET RY=2
690 FOR X=0 TO 2*PI STEP .1
700 PLOT 80*RX*(2*COS(X)-COS(2*X))+607,75*RY*(2*SIN(X)-SIN(2*X))+414;
710 NEXT
720 END DEF
Csillaggörbe: egy r sugarú kör belső oldalán csúszás nélkül gördülő r/4 sugarú kör egy kerületi pontja csillaggörbét ír le (6. lista):
730 DEF CSILLAG
740 LET RX,RY=2
750 FOR X=0 TO 2*PI STEP .1
760 PLOT 193*RX*COS(X)^3+607,207*RY*SIN(X)^3+414;
770 NEXT
780 END DEF
Valamivel bonyolultabbak a következő görbék. Nemcsak a képzési szabályuk miatt, hanem azért is, mert igen nehéz eltalálni helyüket a képernyőn.
Az első három egy téma három változata. Igen nehéz a második kettőnél megtalálni azt a konstanst, amelyiket hatványozunk. Ha túl nagyra választjuk, akkor a koordináták túlságosan gyorsan nőnek, és így még körbe sem ért, már kimegy a képernyőről a következő pont. Érdekes, hogy milyen szemléletesen látszik a két görbéből az exponenciális és a logaritmus-függvény közötti lényeges különbség.
A 7. lista egy euklideszi spirált ábrázol:
790 DEF SPIRAL
800 FOR X=0 TO 16*PI STEP .1
810 PLOT 7*X*SIN(X)+607,7*X*COS(X)+414;
820 NEXT
830 END DEF
a 8. lista logaritmikus spirált,
840 DEF LG_SPIRAL
850 FOR X=0 TO 16*PI STEP .1
860 PLOT 75*LOG(X+.9)*SIN(X)+607,75*LOG(X+.9)*COS(X)+414;
870 NEXT
880 END DEF
a 9. lista exponenciális spirált ábrázol.
890 DEF EXP_SPIRAL
900 FOR X=0 TO 9.6*PI STEP .1
910 PLOT 2*1.2^X*SIN(X)+607,2*1.2^X*COS(X)+414;
920 NEXT
930 END DEF
A 10. lista programja által létrehozott görbét a következőképpen lehet megkonstruálni. Vegyük kiindulásnak azt a Lissajous-görbét, amelynek paraméterei a következők:
Így a kapott görbe paraméteres egyenlete: x=a*cos(t) y=a*sin(2*t). Hogy nyolcas legyen belőle, cseréljük fel a két koordinátafüggvényt. Így az x=a*sin(2*t) és y=a*cos(t) lesz a két egyenlet.
Ahhoz, hogy a görbe periódusonként csak egyszer metssze önmagát, először tükrözzük a nyolcast az y tengelyre:
(x=-a*sin(2*t) y=a*cos(t)).
Hogy a görbét x irányban széthúzzuk, a következő módosítást hajtjuk végre az egyenleteken:
x=-a*sin(4*pi*t)+a*3*t
y=a*cos(2*pi*t).
940 DEF SUJTAS
950 FOR X=0 TO PI/2+.04 STEP .02
960 PLOT -100*SIN(10*PI*X)+600*X+100,100*COS(5*PI*X)+414;
970 NEXT
980 END DEF
Ha a görbénél a sinus- és a cosinus- függvények argumentumában szereplő konstans szorzótényezőt megváltoztatjuk, érdekes aszimmetrikus görbéket kaphatunk:
990 DEF CSAVAR
1000 FOR X=-1 TO 13*PI+1 STEP .2
1010 PLOT 50*COS(X)+25*X+100,80*SIN(-X)+414;
1020 NEXT
1030 END DEF
GORBEK.BAS | Koller Pál |
Animációs boszorkánykodás
A személyi számítógépek egyik legvonzóbb "képessége" a nagyfelbontású grafikának az alkalmazási lehetősége. Egy szemléltető program, egy jelenség stimulációja a legegyszerűbb grafikával is többet mond, mint egy táblázat, számsor vagy szöveges információ. A játékprogramok többsége pedig el sem képzelhető grafika nélkül. A legnagyobb hatást természetesen a rajzok, ábrarészletek animációjával, rajzfilmszerű mozgatásával érhetjük el. Ha a megjelenítendő ábra egy periodikusan változó objektum (például egy lüktető szív a vérkörökkel vagy egy forgó kommutátoros motor), a képernyőn megelevenedő látvány magyarázó ereje igen nagy. Így nem csupán a felépítés, hanem a működés is szemléltethető. Ily módon a személyi számítógépek például az oktatástechnikában elérhetik az oktatófilmek, modellek hatékonyságát, sőt az egyéni hozzáférés és - interaktív kivitelnél - a beavatkozás (lassítás, leállítás, megfordítás, szöveges információ kérése az egyes fázisokban stb.) lehetősége révén minőségileg új szintet is jelenthetnek. Az elérhető látványosság révén természetesen bármilyen más programtípusnál is "megtérül" a befektetett többletenergia, ami géptípusonként igencsak eltérő lehet.
Az Enterprise 128 a hazánkban elterjedt személyi számítógépek között egyedülálló mértékben segíti az animációt. Sőt a hardver által lehetővé tett szolgáltatások nagy része BASIC-ből is elérhető. Ezen a géptípuson tisztán BASIC nyelven, viszonylag kis munkával írható olyan (vagy jobb) program, mint amilyen más típuson csak speciális alkalmazói szoftver (például C64, Giga Movie) vagy gépi kódú rutinok felhasználásával készíthető.
A folyamatos, vibrálásmentes mozgásérzet elérésének kulcsa:
100 PROGRAM "anim.bas" 110 ! 120 ! Elokeszites 130 SET VIDEO MODE 1 140 SET VIDEO COLOR 1 150 SET VIDEO X 10 160 SET VIDEO Y 10 170 ! 180 ! Lapok nyitasa 190 ! 200 FOR N=1 TO 20 210 OPEN £N:"video:" 220 CALL RAJZOK(N) 230 NEXT 240 ! 250 LET A$=INKEY$ 260 IF A$="" THEN 250 270 ! 280 ! Megjelenites 290 ! 300 FOR N=1 TO 20 310 DISPLAY £N:AT 1 FROM 1 TO 10 320 GOSUB 430 330 NEXT 340 ! 350 FOR N=20 TO 1 STEP-1 360 DISPLAY £N:AT 1 FROM 1 TO 10 370 GOSUB 430 380 NEXT 390 GOTO 300 400 ! 410 ! Kesleltetes 420 ! 430 FOR T=1 TO 10 440 NEXT 450 RETURN 460 ! 470 ! Fazisrajzok 480 ! 490 DEF RAJZOK(N) 500 DISPLAY £N:AT 1 FROM 1 TO 10 510 SET £N:PALETTE 0,GREEN,YELLOW,RED 520 PLOT £N:0,0;319,0;319,359;0,359;0,0, 530 SET £N:INK 1 540 PLOT £N:-10+16*N,160, 550 PLOT £N:ELLIPSE 70,70, 560 SET £N:INK 2 570 PLOT £N:PAINT 580 SET £N:INK 3 590 PLOT £N:328-16*N,200, 600 PLOT £N:ELLIPSE 70,70, 610 PLOT £N:328-16*N,245, 620 PLOT £N:PAINT 630 SET £N:INK 1 640 PLOT £N:-10+16*N,130, 650 PLOT £N:PAINT 660 END DEF |
Az Enterprise IS-BASIC-ben mindkét feltétel teljesíthető. A munka során igen sok grafikus csatorna (egy-egy rajzlap) nyitható. Ezek bármelyikére rajzolhatunk akár láthatóan, akár "vakon" a háttérben, és bármikor megjeleníthetők a képernyőn. Ezzel teljesül az első feltétel: egy-egy elkészített fázisrajz készen áll a memóriában a megjelenítésre várva.
Lényegesen egyszerűbb a helyzet, ha egy ciklikusan ismétlődő rajzsorozatot szeretnénk megjeleníteni, vagy ha tetszőleges sorrendben, de adott rajzkészletből dolgozunk. Ekkor ugyanis a fázisrajzok (bemutatás előtt) tetszőleges idő alatt készíthetők el az egyes videolapokon. A megjelenítéskor ismét élvezhetjük az Enterprise előnyeit. A többi géptípuson általában egy - vagy igen kevés - memóriaterület jeleníthető meg. A kijelzésre szánt képet ideiglenes helyéről egy blokkmozgató rutinnal kell erre a területre vinni, aminek végrehajtási ideje általában nem elhanyagolható. Az Enterprise-on a felső négy szegmensben bármilyen memóriaterület megjeleníthető. Ezért ezen a gépen nem kell adatokat mozgatni. Elég a NICK-chippel "közölni", hogy honnan vegye a képinformációt, ami - még a BASIC interpreter közvetítésével is - elég gyors az animációhoz.
|
Más rajzsorozatnál a 170-310-es sorok helyett építhető be a saját rutin vagy az azt hívó utasítás. Természetesen az előre-hátra pörgetés is fölösleges lehet. A DISPLAY utasítások AT utáni paraméterével adhatjuk meg, hogy a 10 sornyi grafikus ablak a képernyő hányadik sorától jelenjen meg. Ha az animált ablakot egy előre megrajzolt grafikus képernyő közepére "vetítjük", ügyes rajztechnikával elérhető, hogy a mozgó képrészletet alul-felül egy olyan álló háttér egészíti ki, mint amilyen például egy motor forgó- és állórésze.
ANIM.BAS, még egy példaprogram: POFA.BAS | Felföld József |
Hívja önmagát!
A rekurzív programozásról, feladatmegoldásról sokszor és sokan beszélnek számítógépes
berkekben. A szokványos BASIC nyelvjárósok alkalmatlanok vagy csak igen nagy
megkötöttségekkel tesznek lehetővé olyan programozási fogásokat, amelyek legalábbis
bemutatnák, illetve felhasználnák ezt a lehetőséget. Az Enterprise IS BASIC-je
- talán már nem is BASIC - támogatja ezt a programozási technikát.
Mit is jelent az eljárás? A számítás, illetve az algoritmus során a program
a legegyszerűbb esetig - az eredetig - visszalép, egyszerűsíti a feladatot,
és onnan kezdi a megoldást. A kiindulási állapotig való visszalépéskor a részeredményeket
vagy a feltételeket a számítógép tárolja. Minthogy esetenként a kiindulási feltételhez
való visszalépéskor mindig ugyanannak a változónak adunk újabb és újabb értéket,
és ezt az értéket csak egy bizonyos feltétel, meghívási mélységnél használja
a program, ezért lokális változóként tároljuk. Az Enterprise képes erre (is)!
100
PROGRAM "Rekurzio.bas"
110 INPUT PROMPT "Hany futas?":N 120 CALL DEMO(N) 130 END 140 DEF DEMO(N) 150 IF N=0 THEN EXIT DEF 160 PRINT N;256*PEEK(522)+PEEK(553) 170 CALL DEMO(N-1) 180 PRINT "Dolgozz tovabb!" 190 PRINT N;256*PEEK(552)+PEEK(553) 200 END DEF |
Nézzük meg közelebbről, hogyan? Az első programban a rekurzió
működésének feltételeit, hatását próbáljuk vizsgálni (Rekurzio.bas). Bemenetként
közöljük a programmal, hogy hányszor kívánjuk ugyanazt a blokkot, eljárást
önmaga által alkalmazni, meghívni.
A program DEMO(N) eljárása a 170-es sor tanúsága szerint mindig eggyel kisebb N érték felhasználásával hívja meg önmagát. A képernyőn leolvashatjuk az éppen aktuális N értékét. Folyamatosan követhető a veremmutató értéke is. Látható, hogy egy DEF blokk önmagára való hivatkozása mintegy 1500 bájt hosszú területet foglal le a veremben. Ebből következik, hogy egy eljárás a program hosszúságától függően maximum 38 alkalommal hívhatja meg önmagát. Ha ennél is többször hívná meg magát az eljárás, akkor "összeakadna" a memória. A verembejegyzések felülírják a programot és az "elszáll". A 150-es sor kilépési - visszatérési - feltétele mindig csak az adott mélységből az eggyel korábbi szintre való visszatéréssel jár. Addig viszont az abban a mélységben érvényes - és csak ott érvényes - lokális értéket használja. |
A rekurzív hívások alkalmazásának iskolapéldája a faktoriális
kiszámítása. Ez definíció szerint:
n!=n*(n-1)! Ha ezt az algoritmust követjük a faktoriális kiszámításához, akkor n! számításához előbb ismerni kell (n-1)! értékét, ahhoz viszont az (n-2)! értékét. Ne bonyolódjunk bele, bízzuk az egészet az Enterprise számítógépre. Mint Faktror.bas program futási eredményéből láthatjuk, a számoláshoz nem is kezd addig, amíg vissza nem vezeti a feladatmegoldást a legegyszerűbb, az 1! kiszámításához. Majd innen indulva sorba az adott meghívási mélység lokális változójával szoroz. |
100
PROGRAM "Faktor.bas" 110 INPUT PROMPT "N= ":N 120 IF N<1 OR N>35 OR N<>(N) THEN 110 130 LET S=1 140 CALL F(N) 150 END 160 DEF F(N) 170 IF N=0 THEN EXIT DEF 180 CALL F(N-1) 190 LET S=S*N 200 PRINT "(";N;"!)=";S 210 END DEF |
100
PROGRAM "Koch.bas"
110 GRAPHICS 120 OPTION ANGLE DEGREES 130 SET INK WHITE 140 PLOT 1000,20;:PLOT ANGLE 180; 150 FOR I=1 TO 3 160 LET S=810:LET N=3 170 CALL KOCH(S,N) 180 PLOT RIGHT 120; 190 NEXT 200 END 210 DEF KOCH(S,N) 220 IF N=0 THEN PLOT FORWARD S;:EXIT DEF 230 CALL KOCH(S/3,N-1) 240 PLOT RIGHT 60;:CALL KOCH(S/3,N-1) 250 PLOT LEFT 120;:CALL KOCH(S/3,N-1) 260 PLOT RIGHT 60;:CALL KOCH(S/3,N-1) 270 END DEF |
A rekurzióval megoldható feladatok másik iskolapéldája
a bináris fa rajzolása. Erre programokat - Enterprise-ra is - közölt már
a Magazin. Most nézzünk ismét egy példát. Rajzoljuk meg az ábra szerinti
Koch-görbét. Igaz, ez a forma eltér a szokásos hópehely alaktól, noha
megrajzolási algoritmusa attól alig különbözik. (Tudjuk jól, mit jelent
a számítástechnikában az alig vagy a majdnem olyan hatása!)
Most már a Koch-görbe rendjétől függően csak (csak?) ismételni kell. A feladat rekurzióval történő megoldását a Koch.bas mutatja. |
Ennek a családnak a tagja a Hilbert-göbe is. Felfedezője azt bizonyította
be, hogy a véges négyzet alakú síkdarab végtelen törtvonallal kitölthető
úgy; hogy ez a vonal sehol sem metszi önmagát és nem is záródik. Sz. Lukács János |
100
PROGRAM "Hilbert.bas" 110 GRAPHICS 120 OPTION ANGLE DEGREES 130 SET INK WHITE:LET P=1 140 PLOT 940,700,ANGLE 180; 150 INPUT PROMPT "A gorbe rendje? 1<n<6 ":N 160 LET S=10*2^(6-N) 170 CALL HILBERT(S,N,P) 180 END 190 DEF HILBERT(S,N,P) 200 IF N=0 THEN EXIT DEF 210 PLOT LEFT 90*P; 220 CALL HILBERT(S,N-1,-P) 230 PLOT FORWARD S;RIGHT 90*P; 240 CALL HILBERT(S,N-1,P) 250 PLOT FORWARD S; 260 CALL HILBERT(S,N-1,P) 270 PLOT RIGHT 90*P;FORWARD S; 280 CALL HILBERT(S,N-1,-P) 290 PLOT LEFT 90*P; 300 END DEF |
A rutin, melynek listáját közöljük, a képernyő általunk meghatározott részén kérdez meg a használótól adott hosszúságú szöveget. Ezzel nemcsak látványossá tehetjük programunkat, hanem, a begépelés hibalehetőségeit is csökkenthetjük. A rutint
utasítással hívhatjuk meg. Nem működik a DEL, az INS billentyű és a kurzormozgatás. Kilépni az ENTER-rel lehet, ekkor a hívó programban térünk vissza a beolvasott B$ sztringgel. Törlésre az ERASE billentyű használható. A 9920 és 9921 számú sorokban az ASCII kódhatárok beállításával változtathatjuk, hogy mely karaktereket fogadja el. Jelenleg a kis- és nagybetűket, a számokat, a vesszőt, a kötőjelet, a pontot, azaz a 44-126 közé eső kódú karaktereket. A beolvasható string maximális hosszúságát a képernyő mérete (sorhosszúság) korlátozza. Ha hosszabb stringet akarunk beolvasni, mint a sorhosszúság, hibaüzenetet kapunk (invalid cursor coordinates).
Piros András |
1 PROGRAM "INPUT.bas" 2 ! Pelda 3 CLEAR SCREEN 4 LET NEV$="" 5 PRINT AT 2,2:"Neved:" 6 CALL INPUT(5,2,30,NEV$) 7 PRINT "hello ";NEV$ 9900 DEF INPUT(X,Y,HOSSZ,REF B$) 9901 ! INPUT rutin 9902 ! Keszitette: Piros Ansras 9903 ! Debrecen 9905 LET G$="" 9906 FOR I=0 TO HOSSZ-1 9907 PRINT AT X,Y+I:"." 9908 NEXT 9909 LET DB=-1:LET B$="" 9910 LET DB=DB+1 9911 PRINT AT X,Y+DB:CHR$(159) 9912 DO 9913 LET D$=INKEY$ 9914 LOOP WHILE D$="" 9915 IF DB<0 THEN 9905 9916 IF DB=HOSSZ THEN 9917 IF D$<>CHR$(13) THEN 9906 9918 END IF 9919 IF D$=CHR$(13) THEN 9931 9920 IF D$=CHR$(44) OR D$>CHR$(164) THEN 9912 9921 IF D$>CHR$(126) AND D$<CHR$(164) THEN 9912 9922 IF D$=CHR$(164) THEN 9923 PRINT AT X,Y+DB:" " 9924 LET DB=DB-1:LET G$=B$(1:DB) 9925 LET B$=G$ 9926 GOTO 9911 9927 END IF 9928 PRINT AT X,Y+DB:D$; 9929 LET B$=B$&D$ 9930 GOTO 9910 9931 FOR I=DB TO HOSSZ 9932 PRINT AT X,Y+I:" " 9933 NEXT 9934 END DEF |
Egy kis
botkormányosdi
Bár az EXOS hatékonyan támogatja mindhárom botkormány kezelését a §§JOY nevű
speciális funkcióval (alfunkciókód: 9), alkalmanként jó lehet, ha a körülményes
csatornakezelést megkerülve, közvetlenül a portokat írva-olvasva férhetünk hozzájuk.
Mivel a belső botkormány szerves része a billentyűzetnek, úgy olvashatjuk le,
mint bármelyik billentyűt. Más azonban a helyzet a külső botkormányokkal. Közvetlen
elérésükről, ha jól tudom, nem jelent meg eddig semmi, még az EXOS leírásban
sincs megemlítve. A CONTROL aljzatokba csatlakoztatott botkormányok leolvasásának
előkészítése ugyanolyan, mint a billentyűzetleolvasásé: a 0B5H (181) port 0-3.
bitjeibe kell írni OUT utasítással egy 0 és 9 közé eső értéket. Ha ez 0 és 4
között van, a CONTROL1 botkormányt, ha 5 és 9 között, akkor a CONTROL2-t fogjuk
olvasni. A 0, illetve 5 esetében a tűzgomb felöl "érdeklődünk", 1
és 6 esetén a fel-, 2 és 7 esetén a le-helyzetről. 3 és 8 adja meg, hogy a botkormány
balra van-e húzva és 4, illetve 9 azt, hogy jobbra-e. Ezt foglalja össze az
alábbi kis táblázat:
tűz |
fel |
le |
bal |
jobb |
|
CONTROL 1 |
0 |
1 |
2 |
3 |
4 |
CONTROL 2 |
5 |
6 |
7 |
8 |
9 |
Ilyen előkészítés után a 0B6H (182) port olvasása IN utasítással
adja meg a kívánt információt. Ha a beolvasott port 0. bitje alacsony (0 értékű),
akkor az azt jelenti, hogy a botkormány 0B5H porton beállított funkciója él.
Vagyis, ha a 0B5H (181) portra előzőleg 2-t írtunk, a 0B6H (182) port 0. bitjének
0 értéke azt jelenti, hogy a CONTROL1-be csatlakoztatott botkormány lefelé van
húzva. Ha a bit 1-es értékű, akkor a botkormány ebben az irányban nyugalomban
van.
Ha a botkormány összes jellemzőjére rá akarunk kérdezni, a 0B5H portra sorban
ki kell írni a 0-4, illetve az 5-9 értékeket például egy ciklussal, vagy minden
kiírás után le kell olvasni a 0B6H port 0. bitjét. a gépi kódú lista az elmondottakat
szemlélteti. Egyébként a program nem más, mint a §§JOY speciális funkciót megvalósító
rutin részlete a ROM-ban.
A rutin kezdete (RD JOY címke értéke) az angol gépeken a 00:EFD7H címen van
(0. szegmens, 61399); kétnyelvű gépeken két példányban található meg: először
az előbbi címen, másodszor a bővítő szegmens 0E3DEH címén (58334). Az, hogy
a bővítő szegmens hányas számot visel, az eltérő hardvermegoldások miatt gépenként
különböző. Eddigi tapasztalataim szerint vagy 4 vagy 5. Hogy a kettő közül melyik,
azt úgy lehet eldönteni, hogy kiolvassuk, mondjuk PEEK utasítással a 00C5H (179)
abszolút című bájt tartalmát. Ha ennek értéke 4, akkor a bővítő szegmens száma
a gépünkön 5, illetve fordítva.
Most pedig a listáról. A rutinba belépéskor a C regiszter
határozza meg, hogy melyik botkormányt fogja leolvasni a funkció. Ha C=0,
akkor a belsőt, ha C=1, akkor a CONTROL1-be csatlakoztatottat (EXT1),
ha C-nek bármi más értéke van, akkor a CONTROL2 (EXT2) csatlakozóról kapunk
tájékoztatót. |
RD_JOY RD_EXT2 RD_EXT1 |
DEC
C JP M,RD_INT LD B,05 JR Z,RD_EXT1 LD C,B LD A,C INC C OUT (0B5H),A IN A,(0B6H) RRA CCF RL D DJNZ RD_EXT1 LD C,D XOR A RET |
; C regiszter csökkentése eggyel ; ha C-ben mínusz érték lett, ; akkor a belső botkormányt kell ; leolvasni ; a ciklust ötször kell lefuttatni ; ha C-ben 00 van ; EXT2 esetén 5-től kezdi a ciklust ; a portra kiírandó érték beállítása ; a ciklus következő futásakor ; szükséges érték ; botkormányállapot beolvasása ; a portról ; a 0 bit a carry flag-be kerül ; a carry 1 lesz, ha eddig ; 0 volt ill. viszont ; a bitek összegyűjtése D ; regiszterbe ; ciklusvég ; C-ben a botkormány 5 ; állapotbitje ; A=0, azaz nem volt hiba |
A dumpban minden érték hexadecimális számként értendő:
0D FA NL NH 06 05 28 01 48
79 0C D3 B5 DB B6 1F 3F CB 12 10 F4 4A AF C9.
Racskó Tamás
Memóriaböngésző
Az Enterprise-ban Z80 típusú processzor van, amely 64 kbájtnyi memóriát címezhet. Hogy ennél nagyobb memória legyen kezelhető, a gép készítői ezt a tartományt négy darab 16 kbájtos lapra osztották fel. Minden laphoz tartozik egy regiszter a DAVE chip-ben, ahol be lehet állítani, hogy a teljes 4 Mbájt melyik 16 kbájtos részét "lássa" a Z80 processzor az adott lapon. A 4 Mbájt 256 ilyen 16 kbájtos szegmensre van felosztva.
A gép bekapcsoláskor ellenőrzi a rendelkezésre álló memóriát: a RAM-ok tesztelődnek, amikor a "TESTING FE" stb. feliratokat látjuk a státuszsorban Az Enterprise a RAM-okat FFh-től lefelé, a ROM-okat 00h-tól felfelé számozza meg.
Két RAM-szegmensnek a továbbiakban speciális funkciója van: a legnagyobb sorszámú (működőképes) RAM, az FFh szegmens lesz a rendszerszegmens (itt találhatók a rendszerváltozók, a képernyőtár stb.), a legalacsonyabb sorszámú (128 k-s gépnél az F8h) pedig belapozódik a 0. lapra, és végleg itt marad. Ezen található az IT és az EXOS belépési pontja. A négy lap tehát:
A négy laphoz rendre a B0h - B3h pontokon írható/olvasható DAVE chip regiszterek tartoznak.
10 REM aktuális szegmensek lekérdezése
20 FOR P=0 TO 3
30 PRINT P; . lap=";IN(176+P);"szegmens"
40 NEXT
Az OUT utasítással lapozhatunk be új szegmenseket, ezzel azonban óvatosan kell bánni. A 0. lap ellapozásával például elszáll a rendszer. Nézzük meg, miért?
A 0. lapon 128 kbájtos gépnél az F8 szegmens látható. Ennek első 256 bájtja a következőképpen néz ki:
Végül egy program, amely bemutatja, hogyan lehet egy BASIC programban gépi kódú rutinokat használni. Ha a program lefutott a CALL USR (DUMP,****) utasítással, a decimális *** címtől kezdve 64 bájt tartalmát írhatjuk ki hexadecimálisan és karakteresen.
10 PROGRAM "Dump.bas"
15 ! DUMP64 (c) 1988 C.C.Guys
20 ALLOCATE 88
100 CODE DUMP=HEX$("7D")
110 FOR R=1 TO 11
120 READ H$
130 CODE D=HEX$(H$)
140 NEXT
150 FOR R=1 TO 7
160 READ ADDR
170 CALL WPOKE(DUMP+ADDR,DUMP+WPEEK(DUMP+ADDR))
180 NEXT
490 ! Demo
500 TEXT
510 INPUT PROMPT "Kezdocim (decimalis):":ADDR
520 CALL USR(DUMP,ADDR)
530 END
1000 DATA "E6,F8,6F,0E,08,06,08"
1005 DATA "E5,CD,30,00,7E,CD,35,00"
1010 DATA "23,10,F9,E1,06,08,7E,FE"
1015 DATA "7F,30,04,FE,20,30,02,3E"
1020 DATA "2E,CD,4D,00,23,10,EF,3E"
1025 DATA "0D,CD,4D,00,0D,20,D7,C9"
1030 DATA "7C,CD,3C,00,7D,CD,3C,00"
1035 DATA "3E,20,18,11,F5,0F,0F,0F"
1040 DATA "0F,CD,45,00,F1,E6,0F,C6"
1045 DATA "90,27,CE,40,27,C5,47,3E"
1050 DATA "00,F7,07,C1,C9"
2000 DATA 10,14,34,42,50,54,66
5000 DEF WPEEK(A)
5005 ! Szavas PEEK fuggveny
5010 LET WPEEK=PEEK(A)+256*PEEK(A+1)
5020 END DEF
5050 DEF WPOKE(A,D)
5055 ! Szavas POKE eljaras
5060 POKE A+1,INT(D/256):POKE A,D-256*PEEK(A+1)
5070 END DEF
Erdei András
BASIC programok tárolása a memóriában
Az Enterprise is, mint más számítógépek, a BASIC programokat az értelmezés meggyorsítása érdekében átalakítva, kódolva tárolja a memóriájában.
Az Enterprise BASIC memóriája a nullás lap szegmensen a 4827 (=12DBh) címen kezdődik. Mivel ez a szegmens (248 = 0F8h) normális esetben mindig a nullás lapon van, ezért a BASIC programok ezen a címen mindig elérhetők. Az ennél nagyobb címek ezen a szegmensen csak a BASIC editornak vannak fenntartva, de természetesen kellő óvatossággal itt is elhelyezhetünk gépi kódú programokat. A programok a memóriában tárolva is megtartják soros felépítésüket, és a sorok sorszám szerinti sorrendben állnak. Egy memóriában tárolt BASIC-sor felépítése a következő:
Ezután közvetlenül a következő sor adatai jönnek, ugyanilyen struktúrában. Hogyha a soron következő BASIC-sor első bájtjának, azaz a hosszúságbájtnak az értéke nulla, ez a program végét jelzi. Egyébként a NEW utasítás sem csinál mást, mint az első programsor hosszúságbájtját törli. Az BASIC-értelmező tehát azt hiszi, hogy nincs a tárban érvényes program. Ennek ismeretében a NEW utasítással meggondolatlanul kitörölt programunkat "restaurálni" tudjuk.
Ezek után talán érthető a kézikönyvnek az a kitétele, hogy egy BASIC programsor maximálisan 250 karakterből állhat: ugyanis a sor térbeli képéhez hozzájön még plusz öt bájt. Így kaphatjuk meg az egy bájton maximálisan ábrázolható 255-ös értéket. A kézikönyv szintén írja, hogy a programsorszámok 1 és 9999 között lehetnek. Ez így is van, ha a BASIC-szerkesztővel dolgozunk. Ám utólag például POKE utasítással felülírhatjuk a sorszámokat 0 és 9999-nél nagyobb értékre. Ekkor is értelmes, futtatható programot kapunk, csak a sorszámok helyett értelmetlen karakterek íródnak ki, és a programsort nem lehet editálni, módosítani. Ezzel elérhetjük azt, hogy avatatlan kezek ne tudjanak belekontárkodni programjainkba, vagy mi ne tudjuk véletlenül kitörölni a sort.
A sor érdemi része nem ASCII kódok formájában tárolódik, hanem ún. BASIC kódokkal. Ezek kódolhatnak egyrészt karaktereket - például kettőspontot -, utalhatnak arra, hogy utánuk milyen típusú adat következik - történetesen sztring -, illetve lehetnek tokenek. A tokenek BASIC kulcsszavak helyett álló kódokat jelentenek. A mellékelt táblázatban megtalálhatók a BASIC kódok és a tokenek.
A különleges kódok rövidítéseinek magyarázata:
35428 = 3.5428 * 10^4
dec: 0, 0, 8, 66, 53, 68
hex: 00, 00, 08, 42, 35, 44
A programlistában lévő szóközök nem tárolódnak, azokat az értelmező listázóprogramja szúrja be értelem szerint. Egyébként a fent említett változásokat leszámítva a BASIC program térbeli szintaxisa megegyezik az editorba való begépeléskor előírtakkal.
A BASIC program után közvetlenül a változók területe kezdődik, vagyis ha a szerkesztőt megkerülve bővítjük programunkat, megtörténhet, hogy az értelmező nem ismervén a BASIC programterületnek új végcímét, a változókkal felülírja azt. Ezért ilyenkor célszerű néhány felesleges REM sorral helyet biztosítani az illegális programbővítésnek.
A BASIC kódok és tokenek táblázata:
dec | hex | kód | token | dec | hex | kód | token | |
0 | 00 | <ERV> | ALLOCATE | 53 | 35 | <NUV> | PLOT | |
1 | 01 | ASK | 54 | 36 | <NUV> | POKE | ||
2 | 02 | <ERV> | AUTO | 55 | 37 | <NUV> | SPOKE | |
3 | 03 | £ | CALL | 56 | 38 | <NUV> | ||
4 | 04 | $ | CAPTURE | 57 | 39 | <NUV> | PROGRAM | |
5 | 05 | % | CASE | 58 | 3A | <NUV> | RANDOMIZE | |
6 | 06 | & | CAUSE | 59 | 3B | <NUV> | READ | |
7 | 07 | ' | CLEAR | 60 | 3C | <NUV> | REDIRECT | |
8 | 08 | ( | CLOSE | 61 | 3D | <NUV> | REM | |
9 | 09 | ) | CODE | 62 | 3E | <NUV> | RENUMBER | |
10 | 0A | * | CONTINUE | 63 | 3F | <NUV> | RESTORE | |
11 | 0B | + | COPY | 64 | 40 | <STV> | RETRY | |
12 | 0C | , | DATA | 65 | 41 | <STV> | RETURN | |
13 | 0D | - | DEF | 66 | 42 | <STV> | REN | |
14 | 0E | . | DEF | 67 | 43 | <STV> | SAVE | |
15 | 0F | / | DELETE | 68 | 44 | <STV> | SELECT | |
16 | 10 | : | DIM | 69 | 45 | <STV> | SET | |
17 | 11 | ; | DISPLAY | 70 | 46 | <STV> | SOUND | |
18 | 12 | < | DO | 71 | 47 | <STV> | START | |
19 | 13 | = | CHAIN | 72 | 48 | <STV> | STOP | |
20 | 14 | > | EDIT | 73 | 49 | <STV> | INFO | |
21 | 15 | <> | ELSE | 74 | 4A | <STV> | STRING | |
22 | 16 | <= | ELSE IF | 75 | 4B | <STV> | TEXT | |
23 | 17 | >= | END | 76 | 4C | <STV> | TOGGLE | |
24 | 18 | Ä | END DEF | 77 | 4D | <STV> | TRACE | |
25 | 19 | Ö | END HANDLER | 78 | 4E | <STV> | TYPE | |
26 | 1A | Ü | END IF | 79 | 4F | <STV> | VERIFY | |
27 | 1B | END SELECT | 80 | 50 | <STV> | WHEN | ||
28 | 1C | END WHEN | 81 | 51 | <STV> | ! | ||
29 | 1D | ENVELOPE | 82 | 52 | <STV> | LLIST | ||
30 | 1E | EXIT | 83 | 53 | <STV> | LPRINT | ||
31 | 1F | FOR | 84 | 54 | <STV> | EXT | ||
32 | 20 | <NUV> | GOSUB | 85 | 55 | <STV> | GET | |
33 | 21 | <NUV> | GOTO | 86 | 56 | <STV> | FLUSH | |
34 | 22 | <NUV> | GRAPHICS | 87 | 57 | <STV> | LOOK | |
35 | 23 | <NUV> | HANDLER | 88 | 58 | <STV> | PING | |
36 | 24 | <NUV> | IMAGE | 89 | 59 | <STV> | DATE | |
37 |
25 | <NUV> | IF | 90 | 5A | <STV> | TIME | |
38 | 26 | <NUV> | IF | 91 | 5B | <STV> | WAIT | |
39 | 27 | <NUV> | INPUT | 92 | 5C | <STV> | ON | |
40 | 28 | <NUV> | LET | 93 | 5D | <STV> | ||
41 | 29 | <NUV> | LINE | 94 | 5E | <STV> | ||
42 | 2A | <NUV> | LIST | 95 | 5F | <STV> | ||
43 | 2B | <NUV> | LOAD | 96 | 60 | <TKN> | ||
44 | 2C | <NUV> | LOOP | ... | ||||
45 | 2D | <NUV> | MERGE | 128 | 80 | <STR> | ||
46 | 2E | <NUV> | NEW | ... | ||||
47 | 2F | <NUV> | TEXT | 162 | A2 | <RWN> | ||
48 | 30 | <NUV> | NUMERIC | ... | ||||
49 | 31 | <NUV> | OPEN | 194 | C2 | <INT> | ||
50 | 32 | <NUV> | OPTION | ... | ||||
51 | 33 | <NUV> | OK | 198 | C6 | <FP> | ||
52 | 34 | <NUV> | OUT |
Megjegyzés a táblázathoz:
Mint látható, a táblázatban két DEF, illetve IF token szerepel. Az első tokenek egyetlen BASIC sorban elhelyezkedő utasításra, míg a második tokenek utasításblokkot kezdő parancsra vonatkoznak.
Az ON szimbólum az ON .. GOTO utasítástokenje, sohasem az opciókapcsoló ON szócskáé.
A LINE INPUT utasításban csak a LINE tokenizálódik, az INPUT nem, ha azonban az INPUT önmagában alkot utasítást, akkor átíródik tokenné.
Racskó Tamás
Escape szekvenciák mentése file-ba
Akinek kétnyelvű Enterprise-a van, beépítve használhatja a VSAVE és VLOAD programokat. Az angol cartridge-ben viszont ezek nincsenek benne, külön kell megvásárolni, ami persze költséges móka. Egy trükkel azonban nincs szükségünk ezekre a programokra, ha a saját rajzainkat akarjuk BASIC programból elmenteni.
Ez a trükk azon alapul, hogy az Enterprise videókezelője escape szekvenciákkal vezérelhető. Ha tehát kazettára / lemezre akarjuk küldeni grafikáinkat, nem kell mást tennünk, csak azt a csatornát, amit grafikára nyitnánk meg, TAPE, DISK vagy alapértelmezett egységként nyitunk meg írásra. A kész, belőtt programban a GRAPHICS utasítás helyére az alábbi parancsot:
OPEN £101:"filenév" ACCESS OUTPUT
Csatornaszámnak azt adjuk meg, amire a rajzoló utasításokban hivatkozunk. Ha a rajzoló utasításban nincs csatornaszám, az alapértelmezés szerinti 101-es csatornát használja a BASIC. Ezután jöhetnek a rajzoló utasítások, melyek hatása most nem a képernyőn jelennek meg, hanem a megnyitott file-ba íródnak bele a megfelelő escape szekvenciák. Végül pedig le kell zárni a megnyitott csatornát:
CLOSE £101
A rajz visszatöltése:
OPEN £106:"filenév"
COPY FROM £106 TO £101
CLOSE £106
Természetesen először meg kell nyitni a megadott csatornára a megfelelő méretű videolapot.
A módszer előnye a VSAVE-hez képest, hogy a létrejövő file még bonyolultabb rajzoknál is valószínűleg kisebb lesz, és minden gépen használható akkor is, ha nincs a rendszerben VSAVE / VLOAD bővítés. További előny, hogy a rajzoló utasítások nem a BASIC programban foglalják a helyet, és ha a rajz bonyolult számítás eredménye lenne, a megjelenítés is gyorsabb.
Ezzel a módszerrel nem csak grafikát tudunk kimenteni, hanem hangkezelőre irányuló escape szekvenciákat is. Ilyenkor a SOUND egység helyett nyitjuk meg a file-t. Az eljárás ugyanaz, mint a grafikánál. Ekképpen kiszedhetjük egy program zenéjét, annak minimális módosításával.
Göbölös László
EXOS gyakorlatok
Az első feladat: grafikus lapok görgetése jobbra. Ha az Enterprise-on általunk definiált videolap kezdőcímére vagyunk kíváncsiak, az első pillanatban nehéznek tűnő feladat előtt állunk. Az EP ugyanis minden csatornapuffer létrehozásával, illetve megszüntetésével járó utasítás után mozgatja a RAM megfelelő területeit. Rendelkezésünkre áll egy gépi kódban alkalmazható ún. EXOS-funkcióhívás (1. lista), de ezt csak gyakorlott programozóknak ajánlatos alkalmazniuk. Én a kezdők számára is könnyen érthető BASIC programot mutatok be (2. lista).
A program megértését néhány mondatos magyarázattal szeretném elősegíteni. Az EP 255. lapján helyezkedik el a rendszerszegmens. Itt található az LP_POINTER nevű változó a 49140-49141-es címen. Az itt kiolvasható érték a Video Sorparaméter Tábla Z80-as kezdőcíme. Mi az a sorparamétertábla? A képernyő minden egyes sorához tartozik egy-egy 16 bájt hosszú adattábla, amely az adott sor videojellemzőire vonatkozóan tartalmaz adatokat (például videomód, video színmód, a margók értékei, palettaszínek stb.). Közöttük szerepel az adott sor bal felső bájtjának kezdőcíme is. Ezt az értéket a 16-os egységen belül az 5-6. bájt adja meg. Figyelem! A 16-os egységek közül az első a STATUS sor paramétereit tartalmazza. Tehát az LP-POINTER által megadott értékhez 20-at hozzáadva találjuk meg a legelső sor kezdő bájtjának alsó, és 21-et hozzáadva a felső helyiértékű cím értékét (lásd az ábrát).
Külön magyarázatra szorul a program 250-es sora. Az EP FC-től FF-ig terjedő RAM-szegmensét VIDEORAM-nak nevezzük. Ezt a Nick chip közvetlenül címezi, függetlenül attól, hogy be vannak-e lapozva a Z80-as lapszegmensek valamelyikére. Mivel az előző sorban kapott "CÍM" nevű változó a 255. RAM-szegmensre mutat, de ez a második Z80 lapszegmensre van belapozva, értékéből egy szegmensnyit, azaz 16384-et le kell vonnunk. Ekkor kapjuk a tényleges Z80-as címet.
Futtassuk le a begépelt programot! Ha figyelmesen szemléljük, észrevehetjük, hogy nem pixel-scrollt látunk, hanem bájtonkénti léptetéssel van dolgunk. Ennek magyarázatát az adja, hogy az egy bájttal megjeleníthető négy képernyőpixel színe a bájton belül kevert sorrendben van kódolva, így bitenkénti léptetésnél gördülő színkavalkádban lenne részünk.
Most javítsuk át a 110-es sorban található 36h értéket 77h-ra. Futtatáskor azt tapasztaljuk, hogy az ablak jobb oldalán kilépő karakterek a bal oldalon újra megjelennek.
Az EP ATTRIBUTUM-videolapja hasonlít leginkább a Spectrum képernyőkezelésének elvéhez. Itt is külön tárolódik az ún. bittérkép és külön az egyes bájtokhoz tartozó PAPER és INK színérték. A 3. lista tartalmazza az ATTR-videolap görgetését. Itt már lehetőség nyílt a bitenkénti léptetésre. Figyelem! ATTR-videolapok esetén a sorparaméter-tábla 16-os egységeiben a bittérkép kezdőcíme a 7-8. bájt. Ezért a megváltozott érték a program 220-as sorában. Az eltolási érték 22, illetve 23 lett. Ennél a video-módnál is lehetőségünk van egy pici változtatással más eredmény elérésére.
Írjuk át ennek a programnak is a 110-es sorában két bájt értékét. Legyen F0h helyett 08h, CB,1Eh helyett CB,3Eh. Ezzel elértük, hogy futtatáskor karakterhelyen belül gördül ki a képernyőtartalom.
A két gépi kódú rutint bármilyen méretű videolapra alkalmazhatjuk a listákon jelzett változók átírása után.
EXOS példák
Néhány tanács azoknak, akik most ismerkednek Enterprise-zal és van EXOS 2.1 műszaki leírásuk.
AZ ESCAPE SZEKVENCIÁKRÓL
A szekvenciák rendkívüli módon egyszerűsítik a gép programozását. Az EXOS ellipszist rajzol, egyenest húz, ADSR-görbét definiál stb. Az escape szekvenciák használatakor lényegében egy sztringet készítünk, amelynek első karaktere minden esetben az ESC (értéke 27 dec = 01B hex). A második karakter határozza meg, hogy melyik szekvenciát indítjuk. Az esetleges további karakterek a paraméterek. - Ezután a kész sztringet a kívánt csatornára - hang esetén például a 067 hex csatornára - írjuk. Az első példaprogram (ESC_DEMO.BAS) IS-BASIC-ben demonstrálja a szekvenciák használatát: definiál egy karaktert, állítja a palettaszíneket, ADSR-görbét, majd hangot generál.
EGY HASZNOS RUTIN
A kép valamennyi jellemzője egy sorparaméter-táblában (LPT), a táblán belül sorparaméter blokkokban (LPB) tárolódik. A tábla kezdetére az LP-POINTER (0BFF4H-0BFF5H) mutat. (Erről az EXOS könyvben a 284. oldaltól olvashatunk.) Hardver szövegmódban (TEXT 40) a képernyősorok összekeveredhetnek, így ha valaki direkt POKE-kal ír a memóriába, meglepetések érhetik. A PYX.BAS kis rutint olyan nagyobb programokba érdemes beépíteni, ahol BASIC-ből a gyorsaság kedvéért POKE-ot használnánk. Paramétereit tekintve hasonlít a PRINT AT utasításhoz, csak gyorsabb annál. Hívása:
CALL POS (y koordináta, x koordináta, ASCII kód)
EXOS BEMUTATÓ
Az utolsó program (EXOS_DEM.BAS) azoknak szól, akik most kezdenek EXOS-t gépi kódban programozni. Egy grafikus ablakot definiál és excape szekvenciákkal egy grafikát rajzol a program. Működésére könnyen rájöhetnek az EXOS-leirás és egy disassembler (MON) segítségével.
Hajnal Csaba |
A mellékelt program segítséget nyújt azoknak az Enterprise tulajdonosoknak, akik most kezdenek a BASIC nyelv után a gépi kódú programozással foglalkozni. A programmal különböző (bináris, decimális, hexadecimális) számrendszerek közötti átváltást lehet elvégezni táblázatos formában és kinyomtatni. Ez kezdőknek komoly segítséget jelenthet.
Boros József
Fej vagy
írás
A közismert éremmel játszott szerencsejátékot szimulálja Vicsotka Gyula olvasónk
programja. A játék lényege, hogy előre meghatározott téttel játszva az a játékos
nyer, aki eltalálja, hogy a feldobott érme melyik oldalára esik. A programmal
kitűnően érvényesülnek a gép animációs lehetőségei. Jó szerencsét!
Az alábbi kis program az RND (végtelenszám-generáló függvény) segítségével "csipkét" rajzol a képernyőre. A program a szinusz, koszinusz és a PI (3,14...) segítségével felrajzol egy vonalakból álló, kör alakú mintázatot. A FOR-NEXT cikluson belül definiált x és y értékek csak abban térnek el az xx és yy értékektől, hogy az e értékkel, azaz e*PI / lépésközzel előbbre halad a "körpályán". A PLOT x,y;xx,yy egy egyenest rajzol, és a csipke így alakul ki, a vonal elfordulásával. Papp Miklós |
1 PROGRAM "Csipke.bas" 5 RANDOMIZE 10 GRAPHICS HIRES 4 15 SET INK 3 16 FOR C=1 TO 2 20 LET SZ=INT(10+RND*40) 30 LET E=INT(20+RND*35) 70 FOR I=0 TO PI*2 STEP PI/SZ 80 LET X=600+350*COS(I) 85 LET XX=600+350*COS(I+E*PI/SZ) 90 LET Y=350+350*SIN(I) 95 LET YY=350+350*SIN(I+E*PI/SZ) 110 PLOT X,Y;XX,YY 120 NEXT 130 NEXT |
"Önindítós" BASIC programok
Az Enterprise IS-BASIC kevéssé ismert lehetősége, hogy módunkban áll programjaink automatikus indítását kérni. A módszer lényege, hogy az EXOS modulfejrész 5-ös (azaz a 6.) bájtját megváltoztatjuk 0-tól különböző értékre (ez eredetileg 00h). A megoldást az ASMON alkalmazásával egy példaprogramon keresztül ismertetjük:
10 TEXT 40
20 PRINT "Magatol undul"
Mentsük ki a programunkat (SAVE "PELDA.BAS") és indítsuk el az ASMON-t! Először be kell töltenünk a BASIC programunkat: Nyomjuk le az R billentyűt (Read BIN file), írjuk be a betöltési kezdőcímet (javasolt cím: 1000), majd a legmagasabb végcímet (BFFF), végül a program nevét (PELDA.BAS); minden esetben ENTER-t is kell ütnünk!
A program betöltése után az ASMON kiírja, meddig a címig töltött (LAST ADRESS), a példánkban ez 1040h. Ezt gondosan jegyezzük fel magunknak! Nyomjuk le az M billentyűt (Modify memory), majd írjuk be a kezdőcímnél öttel nagyobb értéket: 1005. A kurzor megjelenik a kívánt helyen (a fejléc 5. bájtján), ide írjunk be 0-tól különböző tetszőleges értéket (például FF). Az ESC megnyomásával kiszállhatunk ebből a módból, a program módosítása ezzel kész.
Már csak ki kell mentenünk a programot. Üssük le az S billentyűt (Save BIN file)! itt megint meg kell adni a kezdőcímet (1000), a végcímet - amit feljegyeztünk (a példában: 1040) - és a módosított program nevét. (Nem javasolt felülírni az eredeti programot!) A kimentés után lépjünk ki az ASMON-nól (:BASIC)és próbáljuk betölteni az átalakított programunkat! Amint látjuk, a LOAD utasításra tényleg magától indul a program, mintha RUN-nal indítottuk volna.
KO-GA
1988 Augusztus
A Centrum Áruházakban Enterprise lemezmeghajtó csatlakozó / kontroller kapható. Az eredeti angol csatlakozóból ötszáz darab érkezett, de ha igény lesz rá, importálnak még többet is, illetve megindítják a magyarországi gyártását.
A gépkönyv nem tartalmazza a SET utasítás három opcióját. Ezekkel a lehetőségekkel alkalmazhatjuk mint az ASK, mind a TOGGLE utasítást:
A TAPE PROTECT a 34. EXOS változót (PROTECT) állítja be, amely a kazetta másolásvédelmét állítja be (0-nál nagyobb érték esetén van védelem). A PRIORITY a 38. EXOS rendszerváltozót (SPRITE-ot), míg a SOUND STOP a 13. EXOS rendszerváltozót (WAIT_SND) állítja.
A gépkönyvből még két bináris függvény - a BAND és a BOR - is kimaradt, pedig ezek igen hasznosak lehetnek. Amíg például az AND logikai ÉS műveletet végez, vagyis igazán csak az IF utasításban hasznos, addig a BAND - amint a neve is mutatja - bitenkénti ÉS-nek felel meg, Így
5 AND 6=6
5 BAND 6 = 4
Szintén hiányzik a gépkönyvből a VERNUM és a VER$ függvény, amely a BASIC-ünk verziószámát, - szövegét tartalmazza.
Elterjed a nézet, hogy egy sorba nem lehet több BASIC utasítást írni. Ez így nem igaz. Próbáljuk ki:
10 LET a=0:PRINT A:LET A=1:PRINT A
Az ún. blokkszervező utasításokat (FOR - NEXT, IF - END IF, DO - LOOP, stb.) azonban valóban külön sorba kell írni. A programunk áttekinthetősége érdekében érdemes a többi utasítást is külön sorba írnunk.
A tanácsokat Racskó Tamás és Erdei András olvasóink írták.
1988 Szeptember
Enterprise tervek. Pásztor Tamás, a Centrum Áruházak Vállalat márkamenedzsere nyilatkozott az Enterprise gépekkel kapcsolatos tervekről. Pontos időpontokat nem tudunk közölni, de nagy valószínűséggel az év végéig kapható lesz a turbo Enterprise, ami Z80/B processzort tartalmaz. Ennek órajele 6.0 MHz. A gép ezzel jelentős mértékben felgyorsul. Akinek régebbi típusa van, annak sincs oka elkeseredésre, mert gépét a Professional szerviz megrendelésre átalakítja.
Szintén Pásztor Tamás mondta el, hogy tervezik az Enterprise Plus változatot is, amely hatvan új BASIC utasítással bővül. A tervek szerint ebbe a gépbe beépítik a magyar ékezetes szövegszerkesztőt is.
1988 Október
Lemezmeghajtó. A Videoton által a TVC-hez gyártott meghajtók kitűnően használhatók az Enterprise-hoz is, csak egy kis átalakítás szükségeltetik. Az interfész bemenete pontosan fordítva van az Enterprise kontrolleréhez képest. Nem tehetünk mást, mint, hogy a csatlakozást gátló illesztőt lereszeljük. Ezt egyébként nem tanácsos megtenni, de ezúttal ez az egyetlen és biztos megoldás.
Fölös kontroller. A Videoton által gyártott lemezmeghajtókhoz a vásárlóknak meg kell vennie a TVC-kontrollert is, akár akarja, akár nem. Ez az Enterprise tulajdonosoknak felesleges kiadás, a TVC tulajdonosoknál pedig előfordulhat, hogy csak kontrollerre lenne szükségük. A Centrum megígérte, hogy tárgyal a szállítóval a kontroller és a lemezmeghajtó szétválasztásáról.
1988 November
Fölös kontroller továbbra is. A Centrum és a Videoton nem tudott megegyezni abban, hogyan bontsák meg a lemezmeghajtó egységcsomagját. Jelenleg az az Enterprise-tulajdonos, aki Videoton lemezmeghajtót vásárol, kénytelen gazdagodni egy TVC kontrollerrel és szegényedni pár ezer forinttal. A Centrum a sikertelen tárgyalás ellenére is három budapesti márkaboltjában szétválasztja a kényszerű árukapcsolást.
Számítógép OTP-hitelre. Magyarországon először kapható számítógép OTP-hitelre a Centrum új akciója révén. Így 3900 forint előleg befizetésével azok a gépkedvelők is hozzájuthatnak az Enterprisehoz, akiknek az amúgy nem magas gépár is megterhelő lenne.
Enterprise közületnek. A profi felhasználók is jól alkalmazhatják az Enterprise-t kisegítő gépként. Emellett szólnak az alábbi lehetőségek:
A közületi alkalmazás nem megy a lakossági ellátás rovására, mert gép van elég. A programfejlesztés azonban valószínűleg fellendül.
Hardverfilozófia. Az Enterprise gépekhez árusított hardverkiegészítők ára a Centrumnál eleve tartalmazza a géphez illesztés költségét. A vásárlási blokk bemutatása után a szerviz díjtalanul elvégzi az átalakítást.
Programkazetta-kölcsönzés. Hasonlóan a videokazettához, várhatóan programkazetták is kölcsönözhetők lesznek. A Centrum és az "A" Stúdió karácsonyra tervezi az új szolgáltatás megkezdését. Akinek a kazettán lévő szoftver megtetszik, kedvezményes áron meg is vásárolhatja.
1988 December
Fórum az Enterprise-ról. A Centrum Áruházak Vállalat és a Mikroszámítógép Magazin szervezésében fórum lesz az Enterprise géppel kapcsolatban. A feltett kérdésekre a Centrum, az "A" Stúdió, a Novotrade, a Professional Szerviz és az Enterprise cég NSZK-beli képviselői válaszolnak. A kérdéseket írásban a szerkesztőségünkbe várjuk, de a helyszínen is feltehetik. A fórum helyéről és időpontjáról a napilapokban jelenik meg tájékoztatás.
Enterprise összeszerelés Magyarországon? H. M. Windisch, az Enterprise Computer GmbH igazgatója elmondta, hogy magyarországi panelgyártást illetve összeszerelést terveznek. Jelenleg tárgyalásokat folytatnak, de igen pozitívan ítélik meg a lehetőséget. Típusváltozást is terveznek az új Enterprise-gépet standard DIN-szabvány csatlakozókkal szerelnék. A konstrukciót is modernizálnák, a gép gyorsabb lesz, tárkapacitását bővítik és önálló külső tasztatúra is csatlakoztatható hozzá. Így például az IBM PC-billentyűzet is. A jelenlegi elképzelések szerint az új gép olcsóbb lesz.
Enterprise a Szovjetunióban. Az Enterprise GmbH tárgyalásokat folytatott a Szovjetunióval. A várható igény 100 000 db / év. A Szovjetunióba szánt gépek nyomtatott áramkörű kártyáit egyelőre Magyarországon kívánják gyártani. Ebben az ügyben is bíztató tárgyalásokat folytatnak.
Enterprise PC. Az Enterprise cég PC-ket fog gyártani, ezek kompatibilisek lesznek a jelenleg kapható gépekkel. Az új Enterprise PC a jövő év első negyedében jelenik meg az NSZK piacon. Az Enterprise céggel megállapodtunk abban, hogy magazinunk részére folyamatosan kis híreket és anyagokat küld. Az általuk kiadott Enternews című kiadványból bármelyik cikket átvehetjük. A hozzánk érkezett olvasói leveleket is szívesen megválaszolják. Lapunk olvasói várhatóan kedvezményt is kapnak az Enterprise cég müncheni irodájában.
Német nyelvű gép átépítése. Az ENTERPRISE Computers GmbH München cég közölte szerkesztőségünkkel azt, hogyan lehet a német nyelvű gépet angol nyelvűvé átépíteni. Ehhez egy darab UM RIN típusú miniatűr kapcsoló kell, aminek rendelési száma MS 24 L 244. Az átalakítást a következőképpen csináljuk:
Ezzel átkapcsolhatóvá tettük a gépet. Ha a kapcsoló zárt állásban van, akkor a gép német nyelven üzemel. Nyitott állapotban angol nyelvű BASIC-kel dolgozik. A gép üzem közben is átkapcsolható, de ez hideg indítást eredményez. |
A német nyelvű gépen lehetőség van a grafika tárolására a :VSAVE és a :VLOAD utasítás illetve parancs segítségével. A :VSAVE paranccsal kazettára vagy lemezre kimenthetjük az általunk megnyitott grafikus csatorna tartalmát. Parancsmódban ez a következőképpen történik:
:VSAVE#[csat.sz.]:"[eszköz]:[adatnév]"
A csatornaszámhoz az általunk megnyitott videocsatorna számát kell beírni. Az eszköz helyére az adatrögzítő típusát, amelyen tárolni akarunk (TAPE: vagy A:). Az adatnév megengedett hosszúságú karakterlánc lehet.
Ha BASIC programból utasításként adjuk ki, akkor a szintaktikája a következőképpen alakul:
EXT "VSAVE#[csat.sz.]:""[eszköz]:[adatnév]"""
Figyelembe kell venni, hogy a VSAVE paranccsal csak a grafikát tárolhatjuk, a kiválasztott színeket nem. A tárolt grafikát a VLOAD paranccsal tölthetjük be a tetszőlegesen megnyitott videolapra. Természetesen csak a kép tartalmát kapjuk vissza, a színeket újra be kell állítani a BASIC programból. A szintaktikája megegyezik a VSAVE paranccsal illetve utasítással.
1989 Február
Enterprise panaszok. Wágner Miklós budapesti olvasónk többek között a következőket panaszolja. A Spectrum-emulátort és a lemezmeghajtót nem lehet egyszerre használni, így választás elé kerül, hogy melyiket csatlakoztassa. Hasonló válaszút elé állították szerinte a felhasználót a kapható programokkal is. Ugyanis, ha a géphez csatlakozókártyát illesztünk, akkor a kazettán levő programokat nem lehet használni. Az első fájl betöltése után a gép lemezről akar tovább tölteni, és mivel ez nem sikerül neki, leáll. Ha a programot átmásolja lemezre, a betöltésnél az első fájl után szintén leáll a gép, mivel a periféria más-más hosszúságú fájlnevet fogad el, és így a rövidebb néven a gép megint csak nem találja a folytatást. Ezek után szerinte a következő lehetőségek közül választhat:
- Szükség szerint fel-le szereli a csatlakozókártyát, várva, hogy a csatlakozó meddig bírja.
- Addig megy, amíg a lemezre átírt programokat nem tudja lemásolni.
- Megfogadja a Novotrade Rt. eddig ki nem mondott tanácsát: aki annyira nem ért a számítógéphez, hogy egy nyavalyás játékprogramot sem tud átírni, az maradjon meg a Commodore-jánál.
Olvasónk panaszait azért tesszük közzé, hogy hátha valaki praktikus, könnyen megvalósítható tanáccsal segíteni tud neki.
1989 Március
Újabb Enterprise-titok. A gép forgalmazása körüli rejtélyek újabb adalékkal gyarapodtak. A Novotrade 2C számítástechnikai áruházában az Enterprise 128 tizenegyezer-kilencszáz forintért kapható. OTP-hitelre ugyan nem vásárolható, de a hétezer forinttal alacsonyabb ár felbolygatta a piacot. Hogyan lehetséges ez az alacsony ár és hogyan adhatnak rá jótállást, amikor a Professional szervizzel a Centrum kötött szerződést? - Ez titok. Igaz, Rényi Gábor vezérigazgató a vele korábban készített interjúban kijelentette: egy cég üzletpolitikája nem tartozik a nyilvánosságra.
Zzzzip competition. Az Enterprise BASIC Compiler minden rég elfeledett, a fiókok mélyén porosodó, lassúságuk miatt mellőzött programot újjávarázsol.
Szerkesztőségünk az "a" STUDIO-val karöltve felajánl száz darab mintapéldányt ebből a szinte nélkülözhetetlen programcsomagból, azoknak a lelkes programalkotóknak, akik részt vesznek játékos pályázatunkon. Eszerint: készítsen BASIC nyelvű játék- vagy demo-programot és ne zavarja, hogy lassú. Ahhoz, hogy minél előbb Zzzzip-tulajdonos lehessen, programját kazettán rövid leírással, valamint neve és pontos lakcíme feltüntetésével küldje el a szerkesztőségünk címére: Mikroszámítógép Magazin 1371 Budapest Pf. 433. A programokat a Magazin szakmai zsűrije értékeli és a legsikeresebb pályaművek felkerülnek a Zzzip toplistájára, amit az Enterprise rovat rendszeresen közöl majd.
Racskó Tamás lelkes olvasónk küldött néhány tanácsot az Enterprise-tulajdonosoknak. A kétnyelvű gépeken van egy nem ismertetett EXOS-változó, a kódja 90h (144). Értéke 0, ha német, 255, ha angol módban van a gép.
Az EXOS-leírás nem ismerteti, hogyan kell saját editorcsatornát definiálni. Csatornamegnyitásként a VID EDIT (1Dh = 29) EXOS-változóba egy létező videocsatorna kódját kell írni. Ennek természetesen szöveges lapnak kell lennie. Az X irányú méret legalább 4, az Y méret legalább 3 karakternyi legyen. A KEY EDIT? (1Eh=30) változónak a billentyűzetcsatorna kódját kell tartalmaznia. A BUF EDIT (1Fh=31) változót szükség szerint be kell állítani, aminek maximális értéke 63 lehet. Ha ennél nagyobb értéket írunk bele, nem lesz hibajelzés, a rendszer csak az alsó 7 bitet veszi figyelembe (modulo 64). Ezután megnyithatjuk az editorcsatornát. Ha a csatornakód nem 0, akkor nem íródik ki promt a bemenetnél, de helyettesíthetjük az editorcsatornára író PRINT vagy PRINT AT utasítással, majd közvetlenül utána egy INPUT-tal. A hatás ugyanaz.
1989 Április
Magyarország = Budapest. Sok panaszos levelet kapunk vidéki Enterprise-tulajdonosoktól, hogy nem jutnak hozzá helybéli áruházakban programokhoz, szakirodalomhoz és kiegészítőkhöz. Sajnos saját országjáró körutainkon ugyanezt tapasztaltuk. Nincs jó hírünk sem, mivel részben a vidéki áruházak felkészületlensége (a szakértelem hiánya), részben az elmúlt évben kialakult Centrum-Novotrade viszály miatt sem, illetve csak nagyon mérsékelten rendelnek számítástechnikai eszközöket. A kialakult helyzettel ugyan egyáltalán nem értünk egyet, azonban csak azt tanácsolhatjuk az Enterprise-osoknak, hogyha biztosra akarnak menni, a kijelölt márkaáruházakat keressék fel. Ezek Budapesten vannak! Emiatt a vidékieknek sajnos utazniuk kell. A szakosodott üzletek a következők: az úttörő, az Otthon, a Kispesti és a Novotrade 2C Áruház. Nagyon nem örülünk annak, hogy e remek és olcsó gép körül újabb vihar dúl.
Monogram. Írjunk az ST FLAG rendszerváltozóba (1Ah = 26) 42-t. Érdekes dolog történik. Az állapotsorban a ROM programok íróinak monogramjai jelennek meg.
1989 Május
Kövér Gábor, a miskolci Enterprise klub tagja a következőkre hívja fel a géptulajdonosok figyelmét: A SIMON vagy ASMON használatakor a RESET gomb megnyomása esetén az editorban lévő forrásszöveg elveszni látszik ugyan, de nem törlődik ki. Igaz, az assembler változói átíródnak. A 0271h-72h címeken tárolódik az editor-puffer kezdőcíme, ami általában 0801h. Innen D paranccsal kilistázva a memória tartalmát, megállapíthatjuk az elveszettnek vélt szöveg végcímét. Ezután az utolsó bájt tartalmát be kell írni a 0273h, illetve a 0289h-8Ah címekre, ezenkívül egy ennél eggyel nagyobb értéket a 0279h-7Ah címre. Mivel az assembler a szövegünk első bájtját kinullázta, ennek eredeti értékét is vissza kell állítani. Így visszakapjuk kényszerűségből elveszett assembly progamunkat.
Nyomtatás. Racskó Tamás, aki a szegedi Enterprise klub tagja, az RPR 210-01 típusú nyomtatóval szerzett tapasztalatát osztja meg olvasóinkkal: bár az EXOS-leírás szerint a gép a nyomtató betöltésénél a printer aljzaton '/ready' jelölést alkalmaz, azaz egy negatív szintű jelet, a nyomtató nem működik. A ROM listát tanulmányozva láthatjuk, hogy ezt a jelet az Enterprise az adat kiküldése után vizsgálja. Ezek szerint a '/ack' (acknowledge) jelet vár a nyomtatótól, de az én gépemen csak a 'busy' jel betöltése után működött helyesen.
1989 Július
Olvasóink leveleiből megtudtuk, hogy a szegedi Centrum Áruházban több Enterprise gépet is eladtak 2.0 verziószámú BASIC cartridge-dzsel. Elképzelhető, hogy ez más áruházban is így volt, vagyis hogy erre nem hívták fel a vásárlók figyelmét. A gépkönyv, amit a géphez mellékeltek, a 2.1 verziót tartalmazza. Ezért az újdonsült géptulajdonosok meglepődtek, amikor a "BASIC nyomozás" során a következőkre derült fény. A 2.0 verzió ismeri ugyan a CALL-függvényhívást, de nem tudja értelmezni, ha gépi kódú program részére helyet foglalunk az ALLOCATE paranccsal. Együtt a kettő nem alkalmazható. Így - többek között - nem működik a fejbeállító program sem. Ilyenkor "A változónak nincs értéke" hibaüzenetet kapjuk azokra a sorokra, amelyekben a CALL hívás szerepel.
A sztringeket is kényesebben kezeli ez a változat. Például a 2.0 verzió csak az alábbiak szerint megírt sorokat fogadja el:
100 LET AS$= "PRINTER"
110 PRINT A$(3:7)
A 2.1 verzió ezzel szemben a következőket is elfogadja:
100 LET A$="PRINTER"
110 PRINT A$(3:)
Szegedi olvasóinknak ez sajnos csak három hónap után tűnt fel, de akkor már a gépeket nem cserélték ki. Elkeseredésükben a szegedi Professional Szervizhez fordultak. Ott nagy segítőkészséggel találkoztak: kaptak új, 2.1 verziójú BASIC kártyákat. Bár a szerviz dolgozói hasonló esettel eddig nem találkoztak, azért elképzelhetőnek tartják, hogy nemcsak ezeket a gépeket adták el 2.0 verziószámú BASIC-kel. Ezért javasoljuk, hogy akik még nem próbálták ki, most gépeljék be a HELP parancsot, és így győződjenek meg a BASIC kártyájuk verziószámáról. Sok rejtélyes gondnak elejét vehetik ezzel. Egyúttal tolmácsoljuk a szegedi Professional Szerviz dolgozóinak olvasóink köszönetét.
1989 Szeptember
A Centrum Áruházakban 498 forintos áron megjelent a Quelle katalógusban is fellelhető TV-Computer átkapcsoló szerkezet. Ez az eszköz lehetőséget nyújt a hazai számítógépet használók népes táborának arra, hogy a tévékészüléket, illetve számítógépet úgy használhassa, hogy a csatlakozókábeleket ne kelljen minduntalan ki-be húzogatni a tévékészülékből. A 75 ohmos antennakábelt kell bedugni a TV feliratú csatlakozórészbe, a szabadon maradó, Computer feliratú aljzatba pedig számítógépünk RF antennacsatlakozóját kell bedugni. A kis doboz saját antennacsatlakozóját ezután biztonságosan dughatjuk be a tévékészülékünk antennabemenetébe. Hasznos dolog, hogy a négy színben forgalomba hozott átkapcsoló felragasztható a bútor oldalfalára.
Kedvező fogadtatásra talált az úttörő Áruházban a Public Domain kazetták másolása (az ott megvásárolt kazetták B oldalára ingyen másolják a programot). Az eddig így eladott kazetták száma megközelíti az ezret. A sikeren felbuzdulva rövidesen Miskolcon, Szegeden és Győrött is megteremtik a lehetőséget a Public Domain kazetták másolására.
A Kerminél, a MEEI-nél és a Postánál már vizsgálják a 180 kbájt kapacitású hajlékonylemez-meghajtót, amelyet a Novotrade szándékozik forgalmazni.
A Novotrade Rt. és a Centrum Áruházak különválása óta a Novotrade két új programmal, a Centrum pedig tíz újabb játékkal jelentkezett a hazai Enterprise-piacon.
Meg nem erősített hírek szerint újabb 2000 darab Enterprise 128K jelű számítógép érkezik az országba, de az importőr nem a Novotrade Rt. Ugyanakkor 4000 darab EP-64K jelű gép hamarosan behajózik Egyiptomba.
1989 Október
Egyre több a panasz, hogy a tápegység csatlakozó végének ki-be húzogatása miatt (néhány program RESET gombbal nem törölhető ki, például a Heathrow ATC.) a tartólamella meglágyul, és ilyenkor már gyakorivá válik az érintkezési hiba. A. csere, illetve javítás is csak egy ideig oldja meg a problémát. Javasoljuk, használják a tápegység feszültségének ki/be kapcsolóját, egy japán alkatrészekből összeállított, piros. LED kijelzővel ellátott olyan mikrokapcsolót, amely nemcsak az Enterprise gépekhez, hanem. a Sirnclair gépek számos típusához is jó. Ára 768 forint.
Hamarosan befejeződnék a tárgyalások az EP Márkaszerviz és a Centrum Nagyker között, aminek eredményeképpen várhatóan a Centrum Flórián Áruházban (csak itt!) számítógépalkatrész-részleg nyílik a műszaki osztály keretén belül. Eldöntésre vár, hogy az EP-alkatrészek, közül melyeket forgalmazzák, és még azt sem tisztázták, hogy az EP-n kívül lesz-e alkatrész más - például TVC - számítógépekhez is.
Az egyre erősödő dollárárfolyam miatt egyre kevesebb az esély arra, hogy a már katalógusunkban is meghirdetett DYRAS Boostert, az "aktív mini hangdobozt" és a CUMANA mono, illetve dual shasse-t tápegységgel importálhassuk - hangzott az egyik legfrissebb információ a Centrum Nagykerből.
Elfogyott és -már csak az áruházakban kapható az eredeti Enterprise eredeti gyártmányú EX-DOS lemezvezérlő kártyája.
A forgalmazótól kapott információ szerint az RF hangmodulátorból a készletnek több mint a felét eladták már. Ez a kis berendezés, amelyet a márkaszervizek szerelnek bele a számítógépbe, arra szolgál, hogy a tévékészüléken hallgathassuk az Enterprise számítógép hangját. A berendezés ára szereléssel együtt 998 forint.
1989 November
Az "a" Stúdióval közösen meghirdetett ZZZIP pályázatunk továbbra is érvényben van. Számos érdekes játékprogramot kaptunk, tulajdonosaikat ZZZIP BASIC fordítóval jutalmaztuk. Azonban egyiket sem tudtuk átalakítás nélkül lefordítani. Ezért felhívjuk a pályázók figyelmét, hogy a ZZZIP egy egész értékű fordító. Így a BASIC programban lévő konstansok és változók csak egész értékűek lehetnek. Továbbá nem minden utasítást fogad el. Ezek a CHAIN, IMAGE, PRINT USING, TRACE, TYPE. A beépített függvényeket egész értékűnek tekinti. Amennyiben használni akarják, akkor kezdő értéküket arányosítani kell, azaz egész értékűvé kell transzformálni. Továbbra is várjuk pályázataikat, cikkeiket és észrevételeiket.
1990 Január
Kivételesen nem információkat és tanácsokat közlünk eben a rovatocskában, hanem apró, trükkös programokat. A listákat begépelve érdekes dolgokat tapasztalhatnak a kezdő Enterprise-osok, a profik pedig összehasonlíthatják a közölt programokat saját megoldásaikkal. Kérjük olvasóinkat, hogy fejtsék meg e programokat, és küldjenek hasonlókat szerkesztőségünkbe.
1 PROGRAM "Flines.bas"
2 ! Villogo sorok megszakitasban
3 FOR I=48897 TO 48905
4 READ A
5 POKE I,A
6 NEXT
7 SPOKE 255,49134,191:SPOKE 255,49133,0
8 DATA 237,95,50,24,185,50,136,186,2011 PROGRAM "FStatus.bas"
2 ! Villogo status-sor megszakitasban
3 FOR I=48897 TO 48905
4 READ A
5 POKE I,A
6 NEXT
7 SPOKE 255,49134,191:SPOKE 255,49133,0
8 DATA 237,95,50,9,185,50,11,185,2011 PROGRAM "Statuscl.bas"
2 TEXT
3 INPUT AT 11,7,PROMPT "STATUS sor szine (0-255)?":A
4 SPOKE 255,14601,A:SPOKE 255,14603,A
5 LET A$="Nyomd le a SPACE billentyut!"
6 FOR I=1 TO LEN(A$)
7 SPOKE 255,16061+I,ORD(A$(I:I)):SPOKE 255,16062+I,142
8 SOUND PITCH 56,DURATION 1
9 NEXT
10 SPOKE 255,16062+LEN(A$),32
11 DO
12 GET A$
13 LOOP UNTIL A$=" "
1990 Február
A kecskeméti Szalvay Mihály Úttörő- és Ifjúsági Otthonban működő Enterprise Klub (Kecskemét, Széchenyi u. 7.) jelentkezett szerkesztőségünknél. Jelenlegi taglétszámuk 30 fő. Várják a további jelentkezőket - mi pedig híreket további EP kluboktól.
Katona László olvasónk küldött a "Mi a manó?" részére Enterprise gépre vonatkozó érdekességeket. Ezek egyike: ha a szövegszerkesztő üzemmódban megtelik a memória, akkoragép figyelmeztetés nélkül törli a szöveg elejét vagy a végét, attól függően, melyik van éppen távolabb a kurzortól.
Megkérdeztük az ENTERPRISE-ról
A Centrum Áruházak Vállalat az elmúlt évben kőzet tízezer
darab Enterprise 128 számítógépet adott el. Ezt s típust kizárólag ez a vállalat
forgalmazta. Az eddigi tapasztalatokról kérdeztük Kaszás Kálmán vezérigazgatót.
M. M. Noha a Centrum Áruházak Vállalatnál már hagyománya van a számítógépek
értékesítésének, nem kifejezettei erre a területre szakosodtak. Miért döntöttek
úgy, hogy nagy mennyiségben, nálunk ismeretlen számítógép forgalmazását kezdik
el?
K. K. Az ilyen tevékenység nálunk nem új keletű. A Commodore 610 típusú
géppel kezdtük, ebből hatszázat adtunk el. Amíg a gép ára a hazai piacon hatszázezer
forint körül volt, mi jóval kétszázezer alatt kínáltuk. Tehát már akkor is törekedtünk
arra, hogy kedvező árat alakítsunk ki. Valós piaci viszonyok között egy kereskedelmi
vállalat azt szerzi be, amit forgalmazni kíván. A mi körülményeink között csak
abban dönthettünk, hogy a hazai kínálatban megjelent Enterprise számítógépet
bevezetjük-e vagy sem. Mi vezérelt minket? Ilyen kategóriájú gépet Magyarországon
csak a Videoton gyárt. Ezért vállalnunk kellett a nehézségeket, az ismeretlen
márkát, a szervizhálózat kialakítását, a használati utasítással való ellátást,
a szoftverek beszerzését. A perifériák lehetőség szerinti jó ellátására is sok
energiát fordítottunk. Végül is az üzleti szempont vezérelt minket. Ilyetén
a hazai keresletet akartuk megfelelő árú géppel kielégíteni, megteremtve egyúttal
a gondos értékesítés körülményeit is. Tízezer Enterprise értékesítésére szerződtünk
a Novotrade Rt.-vet, de további háromezret is átvettünk.
M. M. Ezenkívül nem vesznek át értékesítésre gépeket?
K. K. Nem. Ennek több oka is van. Az eredetileg szerződött tízezer gép
nem a megállapodás szerinti ütemben érkezett. Az engedélyezési eljárás elhúzódása
miatt azonban csak 3500-at kaptunk. Futottunk a gép után, hiszen már mindent
előkészítettünk. Az ütemtelen szállítás ellenére is átvettünk összesen tizenháromezer
Enterprise-t. Úgy véljük, hogy ez a mennyiség a keresletet kielégíti. Importlehetőségünket
inkább a kiegészítők és a tartozékok beszerzésére kell fordítanunk. Másik gondunk
az, hogy a megváltozott gazdasági szabályozók miatt az új beszerzés nem fér
bele a kialakított árba, ami már az átvett utolsó tételre is igaz. Ennek ellenére
mi továbbra is tartottuk a számunkra már kedvezőtlen árat, de további tételeket
nem veszünk át. A még meglévő mennyiséget a nagykereskedelmi részlegünkön keresztül
más kereskedelmi vállalatok számára is értékesíteni kívánjuk. Ebbeli döntésünkben
az is közrejátszott, hogy nagyon magnövekedett a számítógépek magánimportja.
Bizonyára ez az új útlevélrendeletnek, a többszöri kiutazásnak a következménye.
M. M. Nem titok, hogy az Enterprise 128 a nyugati piacon megbukott.
Igaz, nem a konstrukciója, hanem a rossz marketingtevékenység miatt. Az viszont
nyilvánvaló, hogy a vásárlók nem mentesek az előítélettől. Nem vállaltak-e túlzott
kockázatot, amikor mindezek ellenére az értékesítés mellett döntöttek?
K. K. Ismereteink szerint a gép nem szakmailag bukott meg. Ezenkívül
azért döntöttünk mellette, mert egy hasonló típus licencét az egyik magyar vállalat
megvásárolta. Vállalkozásunkkor számoltunk azzal, hogy egy nálunk ismeretlen
márkát kell a vásárlókkal elfogadtatni. A gépet bevizsgáltattuk, és a szakértők
nagyon jó véleményt adtak róla. Mivel a tudása és az ára jó volt, ezért szántuk
rá magunkat, hogy forgalmazzuk. Így aztán a bevezető reklámmal egyidőben Budapesten
kívül még tizenhét helyen kezdtük a gépet eladni. Az eddigi, több mint tízezer
értékesítés minket igazol.
M. M. Megítélés kérdése, hogy az Enterprise 128 szoftverrel, szakkönyvvel
és kiegészítőkkel való ellátása jó-e vagy rossz. Az azonban saját tapasztalatunk,
hogy nem egyenletes. Miért?
K. K. Annak az árunak, aminek import tartalma van, annak beszerzése függ
a engedélyezési eljárástól. Ez az egész magyar kínálatra jellemző: valamit mindig
lehet kapni, de nem folyamatosan. Az áruházak megrendeléseikben önállóak, így
készleteikkel is maguk gazdálkodnak. Úgy érzem, mégsincs sehol sem hiány, mert
nagykereskedelmi raktárunkból folyamatosan ellátjuk az üzleteket. Megemlítem
1987-ben az eladott tízezer géphez 39500 játék- és oktatókazetta fogyott el.
M. M. Hogyan ítéli meg az Enterprise jövőjét? Jogosnak tartja-e azoknak
a véleményét, akik a lassú elsorvadását jósolják illetve mivel akadályozható
ez meg?
K. K. Amint említettem, vállalatunk már átvett tizenháromezer gépen kívül
nem kíván többet beszerezni. Importlehetőségeinket a meglévő gépeknek kiegészítőkkel
és tartozékokkal való folyamatos ellátására fordítjuk. Ezt hosszú távon kívánjuk
fenntartani, mert a vásárlóinkkal szemben felelősséget érzünk.
M. M. Tehát az Enterprise-tulajdonosok megnyugodhatnak?
K. K. Igen. Kérem, ez nálunk nemcsak jogi, hanem erkölcsi kötelezettség
is, vállalatunk jó híre függ ettől.
M. M. Néhány olvasónk azzal vádolja Centrumot, hogy az Enterprise-t
túlzottan preferálja más gépek hátrányára.
K. K. Először is nagyon meglep ez "vád". A Videotonnal szerződésünk
van és mi annak továbbra is eleget teszünk. A kínálat bővítésére is változatlanul
erőfeszítéseket teszünk. Ezért semmilyen érdekünk nem fűződik a kivételezéshez.
Talán az Enterprise reklámozására nagyobb gondot fordítunk - amit az új típus
bevezetése indokol -, de még gondolatba sem fordul elő, hogy más gépeket emiatt
háttérbe szorítsunk.
(Remélem senki nem fordult le a székről, miközben ezeket a sorokat olvasta, sajnos az idő mást igazolt...)
(1988 Augusztus)
A Novotrade Rt. az Enterprise 128-as rendszertelelőse, ami
annyit jelent, hogy a cég vállalta e gépek folyamatos szervizelését és programjaik
fejlesztését. Erről az elkötelezettségről és a kissé talányos előzményekről
interjúvoltuk meg Rényi Gábort, a Novotrade Rt. vezérigazgatóját.
M. M. Önök ez ideig nagyon szűkszavúan nyilatkoztak az Enterprise
gépek eredetéről. Ez sok találgatásra, pletykálkodásra adott okot. Most, miután
több mint egy éve kapható a gép, lehullhat-e a lepel: tulajdonképpen miért és
milyen szempontok alapján választották éppen ezt a típust?
R. G. Többször hangoztattam már és most is az a véleményem, hogy egy
cég üzleti információi nem tartoznak a nyilvánosságra, csak az üzletpolitikája.
Lényeg, hogy az Enterprise 128 rendkívül jó műszaki megoldás. Ennek a készüléknek
a legjobb szerintem az ár / teljesítmény viszonya ebben a kategóriában. Igaz,
Nyugaton "meghalt", megszüntették a gyártását, de csak az Enterprise
cég marketingtevékenységének köszönhetően. Megcsinálták a legjobb kisszámítógépet,
de egyszerűen szegények voltak a piaci bevezetéséhez. így a többi ismert és
jól reklámozott géppel szemben nem volt képes a piacon lábra kapni. Végső soron
olcsón jutottunk hozzá, mert más gyártók, például a Commodore is nemhogy csökkentették,
hanem emelték az áraikat. Az sem utolsó szempont, hogy a beszerzésre fordítható
keretünkből kétszer annyi Enterprise-t vásárolhattunk, mint más típusból. Meggyőződésem,
hogy az ára és a tudása összhangban van, így az ország és a vevő is jól jár.
M. M. Elmondaná a gép útját a beszerzéstől az értékesítésig?
R. G. A gépet először átalakítjuk a magyar szabványoknak megfelelően.
Az eredeti angol csatlakozót magyarra cseréljük, majd a gépeket bevizsgáljuk
és magyar nyelvű gépkönyvvel látjuk el.
M. M. Hogyan fordulhat elő, hogy sokszor az eredeti csomagolású dobozban
fel van cserélve a német és az angol nyelvű géphez tartozó kártya vagy a demo-kazetta?
R. G. Ilyen panaszról még nem hallottam! Ha ilyesmi elő is fordult a
csomagolásnál, biztos, hogy csak nagyon ritkán.
M. M. Ha már a felcserélésről esett szó: jónak tartja, hogy két típusú
Enterprise-t értékesítenek?
R. G. Nem tartom jónak, de ahogy mondani szokták: ez van! Nem lehet a
gazdasági realitásoktól és kényszertől elszakadni. Egyébként forgalomba hoztunk
1500 példányban az angol gépekhez egy EnterVideo című kazettát, amellyel a német
gépekkel kompatibilissé tehetők. Ez tulajdonképpen egy BASIC bővítés.
M. M. Miként fordulhat elő, hogy a Novotrade Rt. bevizsgálása ellenére
a bontatlan dobozokban hibás a gép?
R. G. Ez nemcsak az Enterprise-ra jellemző. Minden számítógéppel, még
a professzionálissal is ez a problémánk. Ezek érzékeny készülékek! Meg kell
nézni, hogyan szállítják őket. Dobálják, leejtik, és nem ritka, hogy berakják
a raktárba a forró fűtőtest mellé. Nem csoda, hogy ilyen körülmények között
egy-egy gyengébb forrasztás elenged. S mint minden számítógépnél, vannak gyári
hibák is, amelyek az első bekapcsoláskor még nem jönnek elő. Kétségtelen tény,
hogy az első részszállításban előfordultak hibás készülékek, de a folyamatos
utánszállításoknál már ezek a hibák elmaradtak, és a szerviz szakemberei is
"beletanultak" az Enterprise gépek javításába.
M. M. Hogyan látja az Enterprise jövőjét? Megalapozott-e azoknak a
félelme, akik a további alkatrész- és szoftverellátást illetően tamáskodnak?
R. G. A Novotrade Rt. az Enterprise teljes supportját vállalta. Féljenek
a Spectrum-tulajdonosok, mert azzal valóban senki nem foglalkozik hivatalból,
szakszerűen! Az Enterprise-ban két speciális alkatrész van, a DAVE és a NICK
chip. Ezekből van elegendő raktárkészlet a szállító vállalatnál. A többi mind
helyettesíthető. A kiegészítőket is folyamatosan fejlesztjük. Már gyártják a
Spectrum-emulátort. Állítom, hogy a Novotrade Rt. igenis eleget fog tenni az
Enterprise supportjának. A szoftvereket is folyamatosan gyártjuk, de ha továbbra
is lopják, akkor a fejlesztést abbahagyjuk. A gengszterizmus alapján létező
klubokban" szervezett másolás folyik. Azok fosztják meg a többieket a programoktól,
akik lopják. Tudomásul kell venni, hogy a szoftvereknél is van gazdaságos darabszám.
Ha az eladott mennyiség ez alá csökken, senki sem fog szoftvert fejleszteni.
M. M. Az Enterprise-hoz elég sokféle program és kiegészítő kapható,
de nem folyamatosan. Például a szakkönyvek miért fogytak el?
R. G. Nehéz a könyvek terjesztése, mert területenként más-másra van igény.
Ez attól is függ, hogy milyen az adott területen a számítógép alkalmazása. A
könyveknél a forgalmazóval valóban nem minden esetben mértük fel helyesen a
piaci igényeket. Ezért például az EXOS könyvből az eredeti példányszám közel
háromszorosát nyomtuk újra. Az újabb könyveknél azonban tanultunk ezekből a
tapasztalatokból, és már nagyobb példányszámot nyomtatunk.
M. M. Az Enterprise-al kapcsolatban igen nagy az érdeklődés, sőt a
vita is. Úgy látom, egy kicsit felbolydult a szakma. Ezt az új iránti érdeklődésnek
tudhatjuk be, vagy lát valamilyen más okot is?
R. G. Amikor először behoztuk a Commodore 64-et, a szakma gyilkosainak
tartottak minket. A számítástechnikai szakemberek fel voltak háborodva, és ezt
a tettet a számítástechnika halálának nevezték. Pedig mi soha nem állítottuk,
hogy a Commodore 64 megoldja a vállalati igényeket. Szerintem Magyarországon
még nem szokták meg a piac szabályozó szerepét, és ennek megfelelően a piaci
döntéseket sem. Egyeseket ez bőszít, másokat örömmel tölt el. Természetesen
az érdeklődés az újdonságnak is tulajdonítható.
(1988 Szeptember)
Romvári Gábor a HCC Enterprise Klub
vezetője. A klub 1987 szeptembere óta működik a VSZM Közösségi Házban, Nagy
István létesítményvezető támogatásával. 1988 májusában már háromszázötven tagja
volt.
M. M. Miért éppen az Enterprise Klub létrehozásának gondolata fogant
meg a VSZM Közösségi Ház vezetőiben?
R. G. Mert az Enterprise új géptípus. Abban az időben egyetlen ilyen
klubról sem volt tudomásunk. Már akkor elkezdtük a szervezését, amikor a gépek
értékesítése megindult. Alapvetően új igényt akartunk kielégíteni.
M. M. A VSZM Közösségi Ház régebben szervezett más géppel klubot?
R. G. Igen, C64-re. Ez igen népszerű volt, de a gépeket az LSI-ATSZ elvitte,
amikor az ott tartott tanfolyamot befejezte. Ezután a tagok szétszéledtek.
M. M. A Centrum segítette a klub megalakulását?
R. G. Nem. Kértünk támogatást, amit meg is ígértek. Végül is nem adtak
semmit, mert érdektelennek tartották a másolások miatt a klub működését. Mi
a segítség fejében megígértük, hogy megszüntetjük a programok másolását, és
javaslatot is tettünk, aminek a lényege az volt, hogy kapjuk meg a forgalomba
kerülő programokat, és azokat egymás között cseréljük. A szellemi termékért
járó díjat megfizettük volna.
M. M. Ez számomra egy kicsit bizarr ötletnek tűnik, de mit szólt az
érdekelt?
R. G. Úgy érzem, ők úgy gondolták, hogy azonnal tiltsuk be a másolást.
Ezt én egy szóbeli ígéretre nem tettem meg. Ezután megszakadt velük a kapcsolat.
M. M. Bizonyára tudja, hogy a programok másolását hazárakban is törvény
tiltja. Hogyan egyeztetik ezt össze a klub tevékenységével?
R. G. Természetesen tudom. De kérdem én, a Bitlet rendezhetett hivatalos
másolást a Csokonai Művelődési Házban?
M. M. Ezen a példán felbuzdulva ön bocsánatos bűnnek érzi a -másolást?
R. G. Nem teljesen, de ha egy hivatalos rendezvényen megengedhetik maguknak,
akkor miért nem csinálhatja egy kisebb klub? A világon minden klub elsősorban
a másolások alapján jön létre.
M. M. Ez valószínűleg igaz, de a tagok által készített programok cseréjére!
R. G. Szerintem ez mindenütt csak álca! Minden klubban gyári programokat
is cserélnek. Ezenkívül vannak olyan programok, amelyek másképpen be sem jutnának
az országba.
M. M. Az Enterprise Klub milyen céllal alakult meg? Feltételezem,
hogy nem a programok másolására.
R. G. Természetesen nem. A klubot azért hoztuk létre, mert szerettünk
volna otthont adni egy új géptípusnak, ahol alkalom nyílik az információcserére
és a tanulásra. Tisztában voltunk azzal, hogy a másolás nem kerülhető el! Úgy
érzem, ezért nem a klubokat kell megszűntetni, hanem az emberek szemléletét
kell megváltoztatni.
M. M. Hogyan?
R. G. Erre nem tudok pontosan válaszolni, de ezt a kérdést nemcsak számítástechnikai
oldalról kell közelíteni. Az ilyen magatartás általános.
M. M. Ön mint klubvezető meg tudná-e tiltani a másolást?
R. G. A klubban igen, ha mindig figyelnénk a másikat és beavatkoznánk.
De ha az illetőt ki is tiltanánk a klubból, ezzel sem vennénk elejét a másolásoknak,
mert új helyet keresnének. Nem látom értelmét ilyen jellegű beavatkozásnak.
M. M. Tehát kénytelen elfogadni, annak ellenére, hogy tudja: törvénytelen.
R. G. Így van. A másolások számát csökkenteni a hatékony programvédelemmel
lehetne, és olyan áron kellene a programokat forgalomba hozni, hogy senkinek
se legyen érdeke a feltörés.
M. M. Mi a véleménye arról, hogy a fejlesztők olyan védelmet terveznek,
amely feltörési kísérletnél tönkreteszi a számítógépet?
R. G. Amennyiben ez a programhoz mellékelt tájékoztatón szerepel, semmi
kivetnivalót nem találok benne. Ezt a tulajdonságot azonban nagyon figyelemfelhívóan
kell közölni.
M. M. A kereskedők és a fejlesztők azon a véleményen vannak, hogy
a kalózok miatt senki sem fog programot készíteni. Így a másolók lesznek a felelősök
a gyenge ellátásért.
R. G. Tizennyolcezer gép van forgalomban, feltehetően ennyi tulajdonossal.
A klubnak háromszázötven tagja van: Ha csak a nem klubtagok vásárolnak, akkor
sem fognak a fejlesztők és a kereskedők éhenhalni. Nem lehet ezt a problémát
egy klubra ráfogni! Az Enterprise egyébként is speciális helyzetben van, mert
ez az első olyan nagy számban elterjedt gép, amelynek esetében a fejlesztők
nem számíthatnak tág külföldi piacra és a felhasználók külföldi programokra.
(1988 Október)
Ezúttal Kopácsy Vilmostól kértünk
interjút, aki az "A" Stúdióban a nyolcbites számítógépek rendszerfelelőse.
Az "A" Stúdió magja 1984-ben jött létre, majd szakcsoportként működtek,
míg végül kisszövetkezetté nőtték ki magukat. Szakmai körök általános véleménye
szerint amit az Enterprise-ról tudni lehet, azt ők tudják. A Centrummal való
együttműködés alapján szoftvereket fejlesztenek és könyveket írnak az Enterprise-hoz.
M. M. Mikor és hogyan kerültek először kapcsolatba az Enterprise-al?
K. V. Amikor az Enterprise 1985-ben megjelent, a cégnek - hasonlóan a
későbbi magyar helyzethez - a gép bevezetéséhez programokra volt szüksége. Ezért
megkeresett szakmailag párhuzamos vállalatokat, olyanokat, mint az Entersoft
szoftverkiadót és más cégeket. Így teremtettek kapcsolatot a Novotrade-del is.
A Novotrade az "A" Stúdióval kötött programfejlesztésre szerződést.
Nehéz körülmények között, hiányos dokumentációkra támaszkodva, két játék- és
egy sprite-tervező programot készítettünk. Ez jó alkalom volt a Magyarországon
még ismeretlen Enterprise tanulmányozására.
M. M. Mi volt a vélemény a munkájukról?
K. V. Szakmailag elégedettek voltak, igaz, közben az Enterprise cég pénzügyi
helyzete megingott.
M. M. Hogyan jutott eszükbe a Spectrum-emulátor fejlesztése?
K. V. Az angolok arra törekedtek, hogy minél több szoftver legyen a géphez.
Mi felismertük a két gép közötti hasonlóságot, és egyre kézenfekvőbb lett a
megoldás. Az Enterprise cég bizonytalan anyagi helyzete miatt a tervek fiókba
kerültek. Nem a teljes cég ment tönkre, a német része fennmaradt, de ez nem
sokat lendített az ügyeken.
M. M. A szerződésük lejárta után miként elevenítették fel ismét a
kapcsolatot az Enterprise-zal?
K. V. Mi egy pillanatra sem felejtettük el ezt a gépet. Igaz, hogy a
dokumentumok a fiókban pihentek, de az Enterprise fejlesztőgéppé nőtte ki magát
az "A" Stúdióban.
M. M. Milyen fejlesztéseik voltak?
K. V. Mindenekelőtt megrendelésre meglévő szoftvereket átírtunk másik
gépre. Többek között a C64-es programokat Spectrumra. Ebben az esetben azon
a gépen fejleszteni, amelyiken a program fut, nagyon körülményes és lassú. Ezért
a teljes programrendszert a fordítással együtt az Enterprise-ra vittük, ami
összeköttetésben volt a célgéppel. A fejlesztési műveleteket az Enterprise-on
végeztük el, és az eredményt átadtuk annak a gépnek, amelyen futnia kell. Így
nemcsak időt lehet nyerni, hanem felesleges munka is megtakarítható, mert ha
a program "elszáll", még mindig rajta marad a főgépen. Az Enterprise-t
ideálisan lehet használni cross-fejlesztésre.
M. M. Mit szóltak hozzá, amikor megkezdődött az Enterprise gépek importja?
K. V. Nagyon jó ötletnek tartottuk, különösen a gép tudását és minőségét figyelembe
véve. Messzemenően jobb, mint az akkori köztudatban domináló C64. Az a véleményem,
kinőttünk már abból, hogy csak játszani akarunk. Az emberek lassacskán otthon
is komolyabb feladatokat akarnak megoldani.
M. M. Az importot követően megújult az üzleti kapcsolatuk az Enterprise
céggel?
K. V. Velük nem. Tény azonban, hogy Dániában, Hollandiában és Angliában
képviselve vagyunk. Ezekben az országokban is forgalmazták az Enterprise-t,
és ennek a szupportjához járulunk hozzá. Nyugaton is jó pár ezer ilyen gép kelt
el, és kellenek a programok. Az ottani forgalmazókkal is nagyon jó a kapcsolatunk,
programokat fejlesztünk számukra, és adott esetben értékesítési jogokat cserélünk.
M. M. Önök voltak egy ideig a legilletékesebbek a Spectrum-emulátor
gyártásában. Mi az igazság a nagy port kavart ügyben?
K. V. Ahogy közhelyként mondani szokták: Magyarországon élünk, és ez
a körülmény behatárolja a munkánkat is. Az emulátort megpróbáltuk gyártani,
és ezzel betonfalnak rohantunk! Többek között a tervezés előtt megkérdeztünk
minden erre hivatott vállalatot, hogy milyen alkatrészek kaphatók. Mire a gyártás
megkezdődött volna, a tervezett alkatrész eltűnt a piacról. Ezután jött a doboz!
Amelyik dobozt elfogadható áron gyártották volna, az minőségileg és esztétikailag
is alkalmatlan volt. Ezután merült fel az a gondolat, hogy az emulátort a Videoton
Automatika Leányvállalat gyártsa. Ez mindenkinek jobb volt, de úgy tudom, ők
is nehézségekkel küzdenek.
M. M. Nem látja sötétnek az Enterprise jelenlegi helyzetét, illetve
a jövőjét?
K. V. Ha ilyennek látnám, akkor nem lenne egy Enterprise az asztalomon
egy PC/AT és Atari ST társaságában.
M. M. Melyek az "A" Stúdió ígéretes újdonságai a hazai Enterprise-tulajdonosok
számára?
K. V. Jelenleg hat szoftveren dolgozunk. Munkánkat alapvetően két részre
bontom: egyrészről a szórakoztatásra, másrészről a komolyabb programozást célzó
fejlesztésekre. Ilyen a BASIC-fordító és a BASIC-bővítés, amely a gépi kód és
a BASIC-utasítás optimális arányát teremti meg, ráadásul még hatvan függvényt
is tartalmaz. Szándékunk hosszú távon foglalkozni az Enterprise-al, természetesen
ameddig üzletileg is megéri.
M. M. A programlopásokra gondol?
K. V. Nemcsak arra, habár igaz, hogy ez is rontja üzleti érdekeinket.
A szoftverfejlesztés az egyik legrizikósabb vállalkozás. Egy középszintű játékprogram
kifejlesztése négy ember hat hónapig tartó munkájának eredménye. Az értékesített
programok után darabonként tizenöt forint szerzői rész jut átlagosan. Ebből
könnyen ki lehet számítani a programozó félévi jövedelmét. Ugyanakkor a fejlesztés
nagyon eszközigényes, nagy a rezsije és drága számítógépek kellenek hozzá.
M. M. Azt hallottam, hogy már a fejlesztéskor is kijutnak kalózpéldányok.
Ez hogyan történhet meg?
K. V. Tőlünk biztosan nem. A teszteléskor és a gyártás során kerülhetnek
ki, ami megmagyarázhatatlan magatartás a tesztelők és a gyártók részéről.
(1988 November)
A Professional Szerviz 1985-ben alakult meg az Agroindustria
Innovációs Vállalaton belül. Tizenkét vidéki városban az egész országot behálózó,
egymással szoros kapcsolatban álló egységekből szervizhálózatot alakított ki.
Az Enterprise gépek garanciális javítását kezdettől fogva ellátják. Az eközben
gyűjtött tapasztalataikról kérdeztük meg Gottfried Tibor
szervizvezetőt.
M. M. Miért a Professional Szervizre esett a választás, amikor szerződést
kötött a forgalmazó az Enterprise gépek garanciális javítására?
G. T. A Professional a Novotrade márkaszervize, és ezért minket ajánlott
a Centrumnak. Különben hagyománya van már nálunk a kisgépek javításának, mert
a C Plus/4-et és egyéb iskola-számítógépeket is mi szervizeljük.
M. M. Nem vállaltak-e túlzottan nagy kockázatot azzal, hogy egy nálunk
teljesen ismeretlen, új géptípussal kezdtek el foglalkozni?
G. T. Számunkra nem volt ismeretlen, ugyanis előzőleg kaptunk három gépet.
Ezeket szétszedtük és megvizsgáltuk a szervizelés szempontjából. Azért sem volt
annyira új, mert az Enterprise nagyon hasonlít a ZX-Spectrumra. Tulajdonképpen
egy általános Z80 alapú gép, amelyet két koprocesszorral "okosabbá"
tettek. Az üzlet anyagi kockázatát egy általunk felállított menedzsercsoport
gazdaságossági mutatók alapján is jónak ítélte.
M. M. Elterjedt az a hír, hogy ezek a cég nyakán maradt, félig összeszerelt
gépek voltak, és a megrendeléskor úgy "hányták össze" azokat.
G. T. Nagyon sok hír terjedt el, jó és rossz egyaránt. Ennek az lehet
az oka, hogy soha nem látott mennyiségű gép jött be a magyar piacra, viszonylag
alacsony áron. A számítógép olyan, mint a gépkocsi: mindenkinek a sajátja a
legjobb. Én attól féltem, hogy az Enterprise-al is elkövetik azt a hibát, amit
a C64-gyel: nem lesz hozzá hardver- és szoftver-kiegészítés. Végül azonban gyorsan
reagált a Novotrade, az "A" Stúdió és a Centrum is. Itt jegyzem meg,
hogy minden hardver-kiegészítőt is mi szervizelünk.
M. M. Van-e az Enterprise-nak típushibája?
G. T. Ami van, az a fizikai kialakításából adódik, ugyanis a gép nagyon
lapos. Az ebből eredő hátrányok persze "kivédhetők". Leggyakoribb
a fóliatasztatúra törése, főleg a botkormány alatt. Nagyon sokszor elmondtuk,
hogy a beépített botkormány nem játékra való. Előfordul, hogy a gép hátulján
levő kis magnetofoncsatlakozó kitörik. A csatlakozókra vigyázni kell, mert elég
gyengék. Nem tanácsos más magnetofont csatlakoztatni, mint amelyiket a géphez
árulnak. Már csak azért sem, mert a magasabb remotáram elrontja a gépet. Igaz,
tönkre nem teszi, de javítást igényel.
M. M. Nem hátrányos-e szervizelés szempontjából, hogy két típus érkezett
be?
G. T. Nem! A két típus szervizelése megegyezik.
M. M. Egyik olvasónk megkérdezte, az Enterprise gépre is igaz-e, hogy
a színes televízió színeit kiégeti?
G. T. Igaz, mert tévéműsor vételére is alkalmas! A számítógép a képcső
azonos pontjait intenzíven használja, és ezek a területek idővel bemattulnak.
Ezt azonban több száz üzemóra idézi elő. Vigyázni is lehet a képcsőre. A színtelítettséget
és a fényerőt le kell venni, és ha nem programozunk, akkor kapcsoljunk át másik
csatornára.
M. M. A programok kazettáról általában jól tölthetők. Néhány olvasónk
mégis panaszkodott, hogy bizonyos típusú tévék visszahatnak betöltéskor.
G. T. A Beijing-nél és a legtöbb Videoton-tévénél mi is észleltük ezt
a visszahatást.
M. M. Nekem ez elég elképzelhetetlennek tűnik. Hogyan fordulhat elő?
G. T. Valószínűleg egy földhurok alakul ki, de ennek megállapításához
olyan műszerek kellenek, amelyek nekünk nincsenek a birtokunkban. Azt javaslom,
hogy a két televíziót gyártó cég és a szerviz együtt vizsgálja meg ezt a dolgot.
A Beijing akkor is lehetetlenné teszi a betöltést, ha a gép nincs rákötve, de
a közelében működik. Sajnos a műszerek hiánya miatt nem tudok pontosabb választ
adni. A Videotonnal a kapcsolatot már felvettük.
M. M. Hány Enterprise-t hoztak be javítani az elmúlt időben?
G. T. Az ügyfeleink száma szeptember elsejéig körülbelül 2400 volt. Többségük
valamilyen tanácsot kért. A legtöbb kérdés a magnetofon beállításával volt kapcsolatban.
Legtöbbször a fejen kellett állítani. A programbetöltés visszatérő gond, igaz,
sokszor a hozzá nem értésből adódik.
M. M. Találtak-e konstrukciós hibát?
G. T. Tervezésit nem. Egyéb beállítási hibák előfordulnak, mint a szín-,
illetve szinkroneltérés.
M. M. Hogyan viseli az Enterprise a melegedést? Téved-e a gép hosszú
üzem alatt?
G. T. Ilyen hibát nem tapasztaltunk. Ha a gép három órát hibamentesen
üzemel, akkor nem téved. Ha rossz a gép, ez elég korán kiderül. Néhány jellemző
hibalehetőség: a "tünet" attól függ, hogy melyik alkatrész melegszik.
Ha a Z80 mikroprocesszor, akkor alapvető funkciókat sem kezel. Amennyiben a
RAM-ban vaj hiba, kisimul a kép és nem kezdi el a tesztet. A Nick chip hibája
nem megengedett vízszintes csíkokat okoz, a Dave pedig eltorzuló kattogó hangokat
eredményez, ha nem működik rendesen. Ha a kép "összetörik", az hangolással
helyrehozható.
M. M. Ezek a gépek egyre idősebbek lesznek. Gyarapodnak-e ezáltal
a meghibásodások?
G. T. Nem! Legalábbis egyelőre egyre kevesebb a meghibásodás.
M. M. Adna végezetül néhány tanácsot az Enterprise-tulajdonosoknak?
G. T. A meglévő programokat érdemes egy igen jó minőségű magnetofonnal
rögzíteni. A gépet nem szabad zárt helyen, például íróasztalba beépítve üzemeltetni.
Sok mérgelődéstől és költségtől megkímélhetjük magunkat, ha a tasztatúrát és
a beépített botkormányt finoman kezeljük. Érdemes külön botkormányt vásárolni.
Ez azért is fontos, mert a fóliatasztatúra-csere körülbelül 1500 forintba kerül,
ha gép már nem garanciális. A gépen lévő nem használt csatlakozók nyílt sebek.
Ha ezek statikus elektromossággal feltöltött tárgyhoz érnek, az katasztrofális
hibát okozhat. Ha nem használjuk a csatlakozót, ne vegyük le a jobb oldali takarólemezt.
Végül egy kis kuriózum, amivel újjávarázsolható a Remot Reed relé. Az alábbi
két programot futtassuk le:
10 TOGGLE REM1 20 GOTO 10 |
10 TOGGLE REM2 20 GOTO 10 |
A program ellenkező állapotba váltja a Reed relé állapotát, majd a 20-as sorban ciklusszerűen újra utasítást kap erre. A stop billentyű megnyomásáig egy halk, percegő hangot halhatunk. A programot tíz-húsz másodpercig futtatva elvégezzük a relé mágnesezését.
(1988 December)
Néhány napos magyarországi látogatásakor, megragadva az
alkalmat, H. M. Windisch úrral, az NSZK-beli ENTERPRISE
Computere GmbH igazgatójával sikerült interjút készítenünk aki szívesen válaszolt
az ENTERPRISE cég eddigi tevékenységére és terveire vonatkozó kérdéseinkre.
M. M. Az Enterprise általános megítélés szerint teljesen újszerű és
remek konstrukció. Összefoglalná-e a gép fejlesztésének "filozófiáját"?
H. M. W. Az Enterprise számítógépeket nagyon kedvezőtlen körülmények
között bocsátottuk útjukra. Bár az előzetes elképzelések közül nagyon sok helyénvalónak
bizonyult, mégis súlyos hibákat követtünk el, amelyeket nem lehetett korrigálni.
A műszaki koncepciónk kiindulópontja és feltétele az volt, hogy egy átlagos
teljesítményű, piacképes, a termék és annak tudása szerint úgymond "ármegfelelő"
gépet állítsunk elő. Az Enterprise ismerőinek nem újdonság, hogy az operációs
rendszer és ennek bővítései, az IS-DOS, az EXDOS és az EXOS ma még egyetlen
más hasonló gépnél sem érik el ezt a szintet a teljesítmény szempontjából.
M. M. Az Enterprise a rossz marketingtevékenység miatt bukott meg
a nyugat-európai országokban. Miben nyilvánult ez meg?
H. M. W. A piaci bevezetés első szakaszában többször módosítottuk a termék
nevét. A bejelentett szállítási időpontokat nem tartottuk be a két speciális
chippel, a Dave-vel és a Nick-kel kapcsolatos műszaki nehézségek miatt. Ezenkívül
téves marketing döntések születtek, érthetetlenül rossz árpolitikát folytattunk.
Mindezek a tervezett termelési költségek tekintélyes túllépéséhez és a várt,
illetve kalkulált eladások kieséséhez vezettek. Mivel az Enterprise-t a Mahtani
család finanszírozta, ez azt eredményezte, hogy az 1985/86. években az NSZK-ba
irányuló és a döntő piaci fázisban meghatározott eladási célokhoz nem állt rendelkezésre
elegendő pénz. A fejlesztésre húszmillió USA-dollárt költöttek, és így az értékesítésre
nem maradt semmi. Ehhez járult még, hogy a müncheni ENTERPRISE üzletvezetése
olyan üzleti stratégiát követett, amely egyszerűen nem vált be. Így bár 1985-ben
Münchenben még további ötmillió dollárt költöttek a fejlesztésre, a célokat
mégsem érték el. 1986 elején az ENTERPRISE úgy döntött, hogy konszolidálja tevékenységét.
Ezzel oda jutottak, hogy 1986-ban a müncheni cég kivételével az összes külföldi
vállalatukat bezárták, a londoni központ pedig önálló elszámolású lett.
M. M. Milyen tevékenységet folytat a müncheni cég?
H. M. W. Az ENTERPRISE Computers GmbH München a hardver és a szoftver
területén minden jogot elnyert, és a fejlesztésekben is központként illetékes.
Az utóbbi két évben az ENTERPRISE folyamatosan javított a működési módszerén
és számos szoftvert fejlesztett. A hardvert aktualizálták, teljesítményét javították
és továbbfejlesztették. Ma az eredeti Enterprise mellett olyan, már ismert perifériák
vannak - EXDOS controller, nyomtatók, monitorok, tárbővítők egészen 576 kbájtig,
valamint egy sor komplett lemezmeghajtó -, amelyek kapacitása 180-tól 720 kbájtig
terjed. Sőt lehetőségünk van már arra, hogy 60 Mbájtos összkapacitású, két merevlemezegységet
az Enterprise-hoz csatlakoztassunk. A fenti fejlesztéseken kívül éppen most
dolgoznak két univerzális hardverbővítő rendszeren, melyeknek segítségével az
Enterprise a tetszőleges szintre bővíthető. Így többek között mérési adatok
regisztrálására (áram, feszültség, ellenállás, hőmérséklet stb.). Többféle kártya
is az előkészítésnél tart. Az Enterprise mérőhely-számlálókén való alkalmazásának
semmi sem ál útjában.
M. M. Elterjedt a hír, hogy új modelleken is dolgoznak. Mondana erről
néhány szót?
H. M. W. A már ismert 64 és 128 k-hoz tartozó kiegészítőkön kívül természetesen
egy következő modellen is dolgozunk, amely a professzionális igényeket is kielégíti
majd. A magyarországi Enterprise-sikerek arra késztették a céget, hogy vizsgáljuk
meg, vajon az alapgép és tartozékai gyártására Magyarországon adottak-e a megbízható
műszaki feltételek, és versenyképes áron tudnák-e gyártani, Már feladtunk rendelést
hat mintapanel elkészítésére. A későbbiekben az ENTERPRISE érdekelt lenne egy,
a magyar vállalatokkal folytatandó kooperációban, amely az Enterprise gépet
használók részére a kellő mennyiséget és természetesen a sokoldalú hardver-
és szoftverkínálatot elérhetővé tenné. A gyártás Magyarországon kívüli igényeket
is kielégíthetne. Amit még hiányolunk Magyarországon, az egy Enterprise újság.
Olyan, mint például Münchenben az úgynevezett "Enterprise-t használók csoportja"
nevű, az "ENTERPRISE USER GROUPS", amelyet klubújságként adunk ki.
Ez egy hotline (forródrót), amelyhez általában minden Enterprise-rajongó, a
programok előállításához indíttatást érző szabadon hozzájuthat. Az olvasók többek
között pályázatokat és versenyeket nyerhetnek. A müncheni ENTERPRISE szívesen
támogatna egy hasonló lapot Magyarországon is.
(1989 Január)
Az Úttörő Áruháznak kiemelkedő szerepe van az Enterprise
gépek értékesítésében. Ez az egyik a három budapesti márkabolt közül. A gépek
kiskereskedelmi forgalmazása során összegyűjtött tapasztalatokról kérdeztük Herbert Ferencet, a műszaki osztály dolgozóját.
M. M. Az önök áruháza nagy lendülettel és hozzáértéssel kezdte el hazánkban
egy teljesen új és ismeretlen típusú számítógép- értékesítését. Kezdetben milyen
nehézségei támadtak a műszaki osztálynak?
H. F. Azokban az áruházakban volt gond, ahol nem is akartak az új számítógéppel
foglalkozni. Mi nagyon örültünk ennek az új, nagy tudású és olcsó gépnek. Az
áruház rögtön az elején ötszázat rendelt belőle. Ez mutatja, hogy nagyon bíztunk
benne.
M. M. Ennek köszönhető, hogy később az áruházat márkabolttá jelölték
ki?
H. F. Azt hiszem, részben igen. Bár ez szerintem visszalépés az eredeti
célokhoz képest. Az ország minden részéből jönnek hozzánk Enterprise-t vásárolni,
miközben majd szétdurrannak a méregtől, hogy miért nem kapnak gépet a lakhelyükhöz
közelebb.
M. M. Hány gépet értékesítettek 1988 októberéig?
H. F. Körülbelül kétezer darabot. Ez elég nagy munkát igényelt tőlünk.
Néha szédelegve megyek haza. Most is eladunk naponta három-négy darabot, de
nehezebb feltételek között.
M. M. A megnövekedett turistaimportra gondol?
H. F. Nemcsak arra. Az embereknek kevesebb pénzük van szórakoztató elektronika
vásárlására. Az OTPhitelakció észrevehetően fellendítette a forgalmat. Sok vásárló
kéri, hogy hasonlítsuk össze az Enterprise-t a Commodore gépekkel. Én nem vagyok
a Commodore-ok ellensége, de ezt egyszerűen nem lehet megtenni. Az Enterprise
teljesen más gép, és összehasonlíthatatlanul többet tud.
M. M. Nézzük meg az árakat. Egy Commodore-konfiguráció, hazai árakon
számolva, monitor nélkül körülbelül nyolcvanezer forintért megvásárolható. Ugyanez
az Enterprise-nál mennyibe kerül?
H. F. Nézzük! Az alapgép 15 800 forint, a DOS controller 10 550 forint,
egy jól használható nyomtató 24 400 forint és a VT meghajtó 29 300 forint. Ez
is kijön körülbelül nyolcvanezer forintból. A vásárló azonban minőségileg sokkal
többet kap. A lemez 720 kbájtra formázható; nem beszélve a gépbe beépített RAM
diszkről, ami további 4 x 16 kbájt virtuális tárat jelent. Ha valaki komolyan
fejleszteni akar, annak ez kitűnő lehetőség. A tárolt adatok IBM formátumúak.
Ez sem lebecsülendő, mert több vevő azért vett Enterprise-t, hogy a munkahelyére
lemezen vigye be az otthon összeállított adatokat.
M. M. Sokat hallottunk a Spectrum-emulátor körüli bonyodalmakról.
Hogyan élték át önök ezt az időszakot?
H. F. Nagyon sokan keresték. Ezek között volt, aki ennek reményében vette
meg az alapgépet. Aztán emulátor helyett jöttek a kifogások. Egyéves késésre
nincs mentség!
M. M. Milyen a jelenlegi helyzet?
H. F. Nemigen fogy. Nekünk az igazságnak megfelelően el kell mondanunk
a vásárlónak az előnyeit, de a korlátait is. Ez nemcsak az emulátorra, hanem
minden kiegészítőre is igaz. Sokan az árát is mérlegelve arra az álláspontra
jutnak, hogy inkább vesznek egy Spectrumot.
M. M. A különböző "nyelvű" Enterprise gépek okoztak-e gondot?
H. F: Számottevő gondunk nem volt vele. Kétnyelvű és angol nyelvű gépeket
kaptunk.
M. M. Milyen gyakori a három napon belüli reklamáció?
H. F. Nekünk ez olyan, mintha nem is lenne, gyakorlatilag nem fordul
elő, mert alaposan kipróbált, "meleg" gépeket adunk el.
M. M. És milyen gyakran találnak hibás gépet?
H. F. A gépek minősége elég rapszodikus. Nem tudom pontosan, hogy hol
és kik gyártották, de vannak öt és hat számjegyből álló gyártási számú gépek.
Az öt számjegyűek között gyakori hiba, hogy nem érzékelik a DOS-t és valami
rendellenesség van a felső 64 kbájton. Szerintem az Enterprise gyenge pontja
az RF modulátor. Lehet, hogy erre nem fordítottak a tervezésnél kellő figyelmet.
Minden típusú, gyártási hibás televíziónál előfordulhat a sokat reklamált "visszahatás".
Ennek az az oka, hogy ha az RF-jel valamiért visszaáramlik, azt a gép zavarként
értékeli és megszakítja a betöltést. Ez kiküszöbölhető az általunk forgalmazott
szűrőtaggal, de ennek az 599 forintos árát soknak találom. Szerintem a programok
is drágák, és egyre többe kerülnek. A másolásoknak is szerintem az az oka, hogy
drága és kevés szoftver van.
M. M. Sok panasz érkezett hozzánk, hogy a programkazettákhoz gyenge
és rossz leírások vannak.
H. F. Erre nem mondok semmit, inkább megmutatom azokat.
M. M. Amint látom, egyértelmű, hogy játékprogramokat ismertető füzetekben
a leírások meglehetősen kurták és egyes esetekben érthetetlenek, illetve elnagyoltak.
A vásárlók szoktak erre panaszkodni?
H. F. Elég gyakran. Itt jegyzem meg, hogy kérdéseire mindig a vásárlók
észrevételei alapján válaszoltam, szinte az ő véleményüket mondtam el. Engem
nem elsősorban mint kereskedőt, hanem mint embert bánt, hogy a vásárlók többsége
nem számítógépet akar vásárolni, hanem "játékautomatát". Nem is tudják,
mennyi lehetőség, és szépség rejlik egy ilyen gépben. Ók valószínűleg a szakmai
folyóiratokat sem olvassák, ezért jó lenne különböző fórumokon erre a figyelmüket
felhívni. Mert különben hatalmas lehetőségek maradnak kihasználatlanul.
(1989 Február)
Nyirő Árpád, a Fehérhajó utcai Gelka
művezetője elsők között vásárolt Enterprise-t. Két gyerek apja, érthető hát,
hogy eredetileg a gépet "családi gépnek" szánta. Ebből az elképzelésből
annyi mindenesetre valóra vált, hogy tizenegy éves fiával szinte egymás kezéből
kapkodják ki a számítógépet. A szándék és a való később kikerekedett.
M. M. Munkaköréből adódóan is jól ismeri az elterjedt kisgépeket,
mint a Spectrumot, a Commodore családot, a, Primo-t. Sőt IBM klónokon is dolgozott.
Miért éppen az Enterprise mellett döntött?
Ny. Á. Elhatároztam, hogy veszek egy kisgépet a fiamnak, amit én is tudok
használni a munkámhoz, amikor meghallottam a Centrum hirdetését. Úgy gondoltam,
ha annak, ami éthangzott, csak a fele is igaz, akkor nekem egy ilyen gépre van
szükségem. Nem tagadom, igen kellemesen csalódtam, mert az Enterprise még annál
is sokkal többet tud, mint amit híreszteltek róla. C64-et azért nem vettem,
mert olyan gépet akartam, amelyik játékra is alkalmas, de - mint említettem
- a munkámban is hasznosíthatom. Ennek következtében tehát feltétel volt, hogy
a gép olyan legyen, amely más típusú gépekkel is bizonyos szinten hardver- és
szoftverkompatibilis. Igaz, az operációs rendszere nehézkesebb, de igen fejlett.
Főleg a CP/M alatt futtatható programok igen jók.
M. M. Én sok helyen kerestem üzletekben CP/M alatt futó programokat,
de sajnos eredménytelenül.
Ny. Á. Még az első időszakban felkértek, hogy tervezzek kontrollert.
Amikor elkészültem, elkezdtem keresni a kollégáimnál olyan programokat, amelyek
CP/M alatt futnak. Tény és való, hogy ilyen programok a kereskedelemben vagy
már nincsenek, vagy még nincsenek. Az NSZK-ban például az Amstrad cégnél kaphatók
Enterprise-ra adaptálható programok.
M. M. Ön elsősorban a CP/M alatt futtatható programok használatát
szorgalmazná?
Ny. Á. Feltétlenül! Szerintem a Centrum elsősorban a játékprogramokat
erőlteti. Ha más igényt is, mint például az iskolákét is figyelembe vettek volna,
akkor ezek a programok létfontosságúak lennének.
M. M. Ön nagyon régóta használja az Enterprise-t. Véleménye szerint
ennek a gépnek el kellene terjednie az iskolákban?
Ny. Á. Igen, nagyon sok szempont miatt. A hardverrésze sokkal inkább
megfelel a nemzetközi irányzatnak, mint a jelenleg elterjedt gépeké. A gépen
futtatható szoftverek kiválóan hasznosíthatók a számítástechnika oktatásában,
de egyéb területeken is. Ne feledjük, a gép ára is kedvezőbb a többiénél.
M. M. Megkérdeztük a TII-t az Enterprise iskolai alkalmazásáról. Véleményük
szerint bevezetése megbontaná az iskolai gépek homogenitását; a másik kifogás,
hogy nem magyar ábécével készült.
Ny. Á. Miért, most homogén géppark van? Igaz, hogy a TVC-vel ellentétben
a billentyűzete nem magyar ékezetes, de kis átalakítással a képernyőn megjelenik
a teljes magyar ábécé. Ezt nem a géptől kell megkövetelni, hanem a felhasználótól.
M. M. Mint gyakorló apa, észrevette-e, hogy a fia helyesírása romlott,
amióta ezen a gépen programozik?
Ny. A Egyáltalán nem. Szerintem nem ezen múlik, hanem hogy mennyit olvas
és ír. A gyerek nagyon jól megkülönbözteti, mikor dolgozik géppel és mikor kell
magyarul írnia. Automatikusan átáll egyikről a másikra. A programnyelv magyarosítása
pedig kifejezetten ártalmas.
M. M. Ha már így elkalandoztunk a pedagógiában, arra kérem, mondjon
néhány szót a fia fejlődéséről.
Ny. Á. Fiamnak ez az első gépe. Eleinte nehezen ment neki a gép kezelése,
programozása. Sokat kellett segíteni neki. Azután elkezdte magától kikínlódni
a feladat megoldását, nekem már csak az eredményt mutatja meg. Ami a játékprogramokat
illeti, egyre kevesebbet foglalkozik velük.
M. M. Kellett-e különösebben ösztönözni a számítógép megszeretésére,
illetve hozzájárultak-e ehhez a játékok?
Ny. Á. Igen, a játék elősegítette a gép megkedvelését, de nem kellett
őt különösen ösztönözni. Van azonban ellenpélda is! A lányom játszani szeret,
de különösebben nem érdekli a számítógép. Az Enterprise-zal sikerült a fiamnál
célt érnem, vagyis hogy megismerje a számítástechnika alapjait és a programozás
logikáját. Ezt olyan gépen tanulta meg, amelynek ismerete alapján könnyebben
elmélyedhet a profi szintű számítástechnikában is.
M. M. A gyerek fejlődése szempontjából lényeges volt, hogy milyen
gépen tanult?
Ny. Á. Tulajdonképpen az alapok szempontjából ez érdektelen. Ha úgy dönt,
hogy tovább akar számítástechnikával foglalkozni, akkor már egyáltalán nem mindegy.
Ugyanis amint már mondtam, az Enterprise hardverkialakítása és operációs rendszere
nagyon hasonlít az IBM-kompatibilis gépekéhez.
M. M. Az ön munkáját mennyire segítette az Enterprise?
Ny. Á. Nagyon sok kellemes meglepetésben volt részem vele kapcsolatban.
Hamar rájöttem, hogy ez a gép több célra is alkalmas. A Gelkánál már nyolc-tíz
helyen alkalmazzák munkalapok feldolgozására.
M. M. Ezt a rendszert ön vezette be?
Ny. Á. Igen. A Gelkának volt egy nagyszámítógépe, amit idővel kivontak
a munkából. Jelenleg a munkalapok adatait, amelyektől az emberek fizetése is
függ, az egységek Enterprise gépeken viszik fel lemezekre. A lemezeket a közfontban
dolgozzák fel IBM-kompatibilis gépen. Az ilyen munkához azonban kiegészítő numerikus
billentyűzet kell, amit 1989 első negyedévében már kapni lehet.
M. M. Az Enterprise teljes konfigurációval már drága, megközelíti
az IBM klónok árait!
Ny. Á. Ezzel egyetértek, de az IBM-kompatibilis gépek árai nagyon ingadoznak.
Enterprise telepítése a vállalatokhoz nemcsak ár kérdése, hanem az adottságoktól
is függ. Ahol nincs még IBM-kompatibilis gép, ott érdemes Enterprise-t venni.
M. M. Milyen hiányosságokat tud mondani az Enterprise-zal kapcsolatban?
NY. Á. Még mindig kevés a szakirodalom, és ami van, az hibás, mint például
az EXOS 2.1. Furcsállom, hogy nem jelenik meg a kiegészítés. A legkomolyabb
probléma azonban a kontroller illesztéssel van. Nagyon gyakori eset ugyanis,
hogy nem, illetve hibásan illeszkedik.
(1989 Március)
Pinke György
Házi- és Iskolaszámítógép-mérleg
(1987. június)
Háziszámítógépek
Tavaly a hazai háziszámítógép-állomány mintegy 20 ezerrel bővült. Ez abszolút értékét tekintve magasabb ugyan, mint az 1985. évi növekmény, százalékban azonban "csak" 40%-os növekedést figyelhetünk meg. Ez érezhető mérséklődést jelent az 1982-85 között megszokott 2-3-szoros növekedési ütemhez képest.
A típusválasztéka ennek a kategóriának 1986-ban már csak egyetlen új, általános célú géppel, a HT 3080C-vel bővült. Ez önmagában is mutatja, hogy ennek a teljesítménykategóriának az életciklusa már a lefelé menő ágában van.
A hazai gyártású gépeknek az 1985-ben már ismert típusválasztéka szerepelt a hazai kínálati palettán, szinte változatlan összetételben. Az elmúlt év legfontosabb eseménye a háziszámítógép-piacon a Videoton TV Computerének a boltokban való megjelenése. Bár a gépet magát már 1984-ben bemutatták, végül 2 esztendőre rá jelent csak meg a forgalomban. Az időpont nem éppen szerencsés, hisz ez a teljesítménykategória már kifutóban van. A mikroszámítógép-divat is kezd lecsengetni s így a piacon kialakultak a stabil típusok. Mindezt nyilvánvalóan érzi a Videoton is, ezért is igyekszik gazdag perifériaválasztékot (nyomtató mellett hajlékonylemezes tárolót is) biztosítani a gépének, ad hozzá továbbá CP/M operációs rendszeropcióit (UPM-nek nevezte), s már az induláskor terminálfunkciókkal is felruházta. Mindez bővíti az alkalmazási kört s így a felvevőpiacot. A megjelenés előtti árcsökkentés is ennek jegyében történt: az 1985-ben még 19 900 forintért beharangozott gépet végül a boltok 12 800 forintért kezdték árusítani.
1986 szeptemberének szomorú szenzációja a Primo halála. 1984 tavaszán jelentették be az elkészültét, s az akkori tavaszi BNV-n próbálhattuk ki az első gépeket. A csak fekete-fehér lehetőségeket biztosító Primónál a célzott terület a lakosság mellett az általános iskolák voltak, hisz ott általában még csak fekete-fehér televízió van. 1985 novemberében bemutatták a színkezelési lehetőségeket is tartalmazó, mozgó billentyűzetű Pro/Primo-t. Még a Software '86 kiállításon 28 ezer forintos várható árat emlegettek, tavasszal a boltokban ez az ár már csak 21 ezer forint lett. 1986 tavaszán az iskolaszámítógép-pályázaton a Pro/Primónak sem sikerült kizárólagos iskolaszámítógéppé válnia, ami továbbra is bizonytalanná tette a piacát (az iskolaszámítógép-pályázat értékelését lásd később). 1986. július 1-jétől még a forgalom növelése érdekében utolsó próbálkozásként kb. 30%-kal mérsékelték az árát. Mivel ez sem eredményezte az értékesítés számottevő növekedését, augusztusban döntés született a gyártás leállításáról és szeptember 1-jétől elkezdődött a készletek végkiárusítása.
A Primo 30 hónapos életét értékelve elismeréssel kell szólni a kezdeményezés úttörő jellegéről (a szocialista országok első nagyobb sorozatban gyártott háziszámítógépe volt), a kitűnő piaci munkáról (a szocialista országok első, boltban árusított gépe címet is elnyerte). Az élete rövidségéért okolható az elterjedt nyugati típusokkal való inkompatibilitása, az elég megbízhatatlan program ki- és bemenete, a mindezek következtében gyenge programellátottsága. Ez utóbbi a programok ezreivel kényeztetett Commodore 64 és Spectrum gépekkel szemben óriási hátrányt jelentett. Magyarul: nem lehet ma már csupasz vasat értékesíteni.
A biztonsági szelepet a szocialista piac jelenthette volna a gép számára. Azonban ez a gépkategória csak a lakossági fogyasztási cikkek bővülését eredményezné, s a termelőeszköz-orientált országokban ez nem elég vonzó. Így a Primo, körbejárva a környező országok vásárait, egyetlen külpiacra sem tudott betömi.
További 1986. évi újdonság, hogy a Homelab-gépek is megjelentek januártól a kiskereskedelmi forgalomban.
Ebbe a kategóriába tartozó új hazai gép a vakok számára a Brailab. Ez a legépelt betűket rögtön számítógépes úton szintetizálva hangosan ki is mondja. A Tudományszervezési és Informatikai Intézet 1986-ban 23 darabol vásárolt belőle s kiosztotta a Vakok Általános Iskolájának, a Vakok Állami Intézetének, s kapott egy-egyet az ELTE (szoftverfejlesztésre) s a Gyógypedagógiai Főiskola (tanárképzésre). A gépet, mint a neve is mutatja, a Lukács-testvérek a Homelab nevű gépükből alakították ki, a hangszintetizáló részt pedig az MTA KFKI-ban fejlesztették (Arató András és Vaspöri Teréz).
Az utasforgalomban behozott típusok között továbbra is a Commodore 64 vezet. Nem sokkal marad el tőle a Sinclair gépek száma. Ezek összetétele viszont jelentősen megváltozott. Szinte már senki sem hozott be ZX81-et. Csökkent a vásárolt ZX Spectrumok száma, viszont jelentősen nőtt a ZX Spectrum Plus népszerűsége.
A Commodore 16-ok behozatala leapadt, hisz leállították a gyártását. Helyette a vele kompatibilis, hasonló árfekvésű Commodore Plus 4 száma növekedett jelentősen.
Nem érzékelhető a Commodore 116, 128, a ZX Spectrum 128 hazai számának számottevő növekedése, ezek felfutása már nem is várható.
A típusválaszték tekintetében megállapíthatjuk, hogy 1986-ra már egészen polarizálódott a háziszámítógép-piac. A hazai vásárlók túlnyomó többsége a Commodore 64 és a ZX-Spectrum, valamint az azzal kompatibilis ZX-Spectrum Plus típust választotta. E döntést alapvetően az e két típushoz rendelkezésre álló gazdag, ezres nagyságrendű szoftverkészlet motiválja. A háziszámítógépek nyugati típusválasztéka is kialakult, újabb jelentős típusok megjelenése már nem várható. Ugyanez elmondható a szoftverkínálatra is: a választék jelentős bővülésére már nem lehet számítani.
Az 1986-os év fordulópontot jelentett a Commodore 64 hazai megítélésében: csak elvétve vásároltak belőle professzionális célokra. Ez elsősorban a 16 bites gépek hazai árának a csökkenésével magyarázható.
A mikroszámítógépeket forgalmazók köre 1986-ban jelentősen bővült. A hagyományos bizományosi hálózaton túlmenően az esztendő a hazai gyártású gépek kínálatának bővülésével indult. Mint ismeretes, a Primo gépet már 1985 tavaszától elkezdték a Keravillban árusítani. 1986 januárjától felzárkózott mellé a Homelab 4, majd tavasztól a Videoton TV Computere.
Az utóbbit a Centrum Áruházak vették át országos forgalmazásra, ezáltal a TV Computer volt sok vidéki városban az első boltban kapható számítógép. Ennek a számítástechnikai kultúra terjesztése szempontjából nem elhanyagolható a hatása.
A háziszámítógépeket forgalmazók köre 1987-ben várhatóan tovább bővül, hiszen messze van még a fejlett országokban ismert mennyezettől: ott már évek óta a trafikokban is kaphatók háziszámítógépek.
Az árak csökkenése 1986-ban folytatódott. A nyugati gépek hazai árai az év során mintegy 20-30%-kal mérséklődtek, azaz lényegében követték a kinti árcsökkenést. Ez a követés, azonban abszolút összegét tekintve elég távoli. Egy Commodore 64 az év végén az NSZK-ban 400 márka (kb. 10 ezer forint) körüli áron szerezhető be, a hazai bizományi ára pedig ugyanakkor éppen csak 30 ezer forint alatt van. Ebben a magas árban feltétlen szerepet játszik a gép 18 ezer forinton "felejtett" vámértéke, mely így a kinti árnak csaknem kétszerese, s a 30% vámmal a vásárlók lényegében a kinti vételár felének megfelelő vámot fizetnek.
A hazai gyártású gépek ára is 30-70 százalékkal mérséklődött. A legjelentősebb ezek közül a Primo 1986. évi kétszeri árcsökkentése, melynek eredményeképpen az év végére a gép ára a harmadára csökkent.
Az elmondottakból világosan következik, hogy háziszámítógépekből 1986-ra a hazai piacon a túlkínálat jelei mutatkoztak, a vevők válogathattak a különféle típusok között.
Iskolaszámítógépek
Ez a kategória erősen összefügg a háziszámítógépekkel, ezért csak az azoktól eltérő dolgokra térünk ki.
A tavalyi évnek e kategória tekintetében a legnagyobb eseménye a második hazai iskolaszámítógép-pályázat tavasszal tartott eredményhirdetése volt. Az egyetlen külföldi típust, a Commodore 16-ot melyet a Novotrade importált - csak 1986-ban árusították, mivel már megszűnt a gyártása. A magyar típusok vonatkozásában a pályázat eredményhirdetése alapvetően különbözött az 1982. évitől. Akkor egyetlen típust választottak ki, a HT 1080Z-t, s abból nagybani vásárlást garantáltak. Ez monopolhelyzethez juttatta a gyártót, ami bizonyára érződött mind a minőségben, mind pedig a rendkívül - és sokáig - magas árban. Ez utóbbi még talán a lenti táblázatban is kísért, hisz a ZX-Spectrum kompatibilis HT 3080C gépet nagybani szállításra a nyugati kiskereskedelmi ár csaknem ötszöröséért, a hazai bizományosi árnál 50%-kal magasabban, s hasonló paraméterű konkurens ajánlatoknál 50-100%-kal magasabb árért ajánlották meg.
A helyezett típusok közül az iskolák szabadon választhatnak, s ebben fontos szerephez jut az ár. A táblázatbeli árak már nem aktuálisak, s az iskolák kedvezményt is kapnak. Bővebb és pontos információt a Tudomány-szervezési és Informatikai Intézet ad.
Az 1986. évi iskolaszámítógép-pályázat eredményhirdetése által kitermelt konkurencia első áldozata a Primo lett: 1986 augusztusától megszüntették a gyártását. A gyorsan változó világot jól jellemzi, hogy alig 6 hónappal az eredményhirdetés után a 6 tételes eredménytáblázat már megváltozott: a Pro/Primo kiesett, a Commodore 16 pedig átalakult Commodore Plus/4-gyé.
Kategória | Helyezés |
Típus | Tár (kbájt) |
Gyártó / forgalmazó | Nagyker. ár (Ft) |
Általános iskola |
1-2 |
Commodore 16 | 64 |
Novotrade / Piért | 8 775 |
1-2 |
TV Computer | 32 |
Videoton | 11 000 |
|
3 |
Pro/Primo | 32 |
MTA SZAKI - Microkey | 13 500 |
|
Középiskola |
1 |
Pro/Primo | 64 |
MTA SZAKI - Microkey | 17 000 |
2 |
TV Computer | 64 |
Videoton | 13 000 |
|
3 |
HT 3080C | HTSZ | 28 000 |
Az iskolai gépbeszerzések volumene komoly. Az iskolaszámítógép-programnak az 1986 tavaszán indult második lépcsője 1990-ig 50 ezer iskolaszámítógép beszerzését irányozza elő, ezen fele-fele arányban osztozik a két iskolatípus.
Az új iskolaszámítógép-program igen lendületesen indult: 1986-ban megnégyszereződött az iskolaszámítógépek száma. 1985 végén az általános és a középiskolákban még csak háromezer-hatszázhatvan-nyolc számítógép szolgálta a tanuló ifjúságot. 1986 végére pedig már 15 ezer. Ez egyben azt is jelenti, hogy míg 1985-ben több mint négyszáz diákra jutott egy számítógép, tavaly viszont már alig több, mint kilencvenre. A rendkívüli ütemű növekedésben jelentős szerepet játszott a ráckevei Aranykalász Mezőgazdasági Termelőszövetkezet által kezdeményezett "Számítógépet az iskoláknak!" mozgalom: 1986 elején az ország valamennyi gazdálkodó szervezetéhez elküldte felhívását. Ez szeles körű visszhangra talált. Több száz intézmény, vállalat és termelőszövetkezet, budapesti kerületi és megyei tanács vásárolt a vonzáskörzetükben működő iskolák számára számítógépet. Például a XIII. kerület iskoláinak az úttörőszövetség megalakulásának 40. évfordulójára 204 mikroszámítógépet ajándékoztak. Az állam a "Számítógépet az iskoláknak!" mozgalmat 33%-os dotációval támogatja.
Az ilyen arányú gépbeszerzési igénynövekedés kielégítésének a megszervezése szintén nem mindennapi feladat volt. A Tudományszervezési és informatikai Intézet ebben hatékony partnerre talált a Novotrade cégben. Ez a nyáron 6500 db Commodore Plus/4 típusú gépet hozott be, melyek a tanév elején iskolákba kerültek 4990 forintos áron. Ezen kívül 2600 forintért minden iskola kapott egy egységcsomagot, amely magyar nyelvű szakirodalmat és két programkazettát is tartalmazott. A gépek eleve magyar karakterkészlettel kerültek forgalomba. A gyerekek számára segítségképpen elkészült egy sokszínű, műanyag lapokból álló oktatótábla-sorozat is. A Plus/ 4-hez már szeptemberben is kapható volt hatféle magyar nyelvű szakkönyv. Köztük megjelent a sikeres Hetedhét sorozat legújabb tagja, a Hetedhét Plus/4, valamint a Bevezetés a Basic-be c. könyv oktatókazettával együtt. A Plus/4-et oktató pedagógusok felkészítését is gondosan szervezték meg. A Novotrade e téren szövetkezett a számítástechnika-oktatás terén nagy hagyományokkal rendelkező Számaikkal, s közösen szervezték meg a tanárok számára tartott továbbképző tanfolyamokat.
Összefoglalva megállapíthatjuk, hogy
Jellemző házi- és iskolaszámítógép árak (ezer Forint)
Számítógép típusa |
Gyártó, forgalmazó |
1983 december |
1984 december |
1985 június |
1985 december |
1986 március |
1986 június |
1986 december |
Commodore 64 | BÁV | 100 |
90 |
49 |
49 |
35 |
35 |
30 |
Fotoelektronik | 91 |
31 |
25 |
|||||
Ofotért | 66 |
30 |
24 |
|||||
Ramovill | 88 |
33 |
33 |
30 |
||||
Commodore 128 | BÁV | - |
- |
68 |
65 |
65 |
||
Fotoelektronik | - |
- |
68 |
49 |
||||
Használtcikk Szöv. | - |
- |
68 |
49 |
||||
Ofotért | - |
- |
68 |
66 |
49 |
|||
Commodore VIC20 | Ramovill | 45 |
30 |
25 |
||||
HT 1080Z | HTSZ | 58 |
- |
35 |
35 |
35 |
35 |
17 |
Homelab 4 | Color Ipari Szöv. | - |
- |
15 |
15 |
|||
Primo 32k | EMO | - |
15 |
15 |
15 |
9 |
9 |
5 |
Primo 48k | EMO | - |
20 |
12 |
12 |
7 |
||
Primo 64k | EMO | - |
24 |
14 |
14 |
8 |
||
Pro/Primo | EMO | - |
28 |
21 |
21 |
12 |
||
PTA 4000 | HTSZ | - |
16 |
13 |
12 |
12 |
12 |
12 |
TV Computer | Videoton | - |
- |
- | 20 |
12 |
12 |
12 |
ZX Spectrum 16k | BÁV | 50 |
25 |
15 |
||||
ZX Spectrum 48k | BÁV | 70 |
40 |
30 |
25 |
20 |
20 |
20 |
Fotoelektronik | 52 |
20 |
17 |
|||||
Ofotért | 49 |
17 |
||||||
ZX81 (1k) | BÁV | 16 |
16 |
6 |
6 |
|||
Havi átlagkereset | 4 862 Ft |
5 452 Ft |
5 961 Ft |
6 435 Ft |
Dr. Broczkó Péter
(1987 június)
Egy gép száz bajt csinál? A hiány hiányt szül |
1988. június. Az ország különböző pontjain 12 ezer TVC van, ennek nagy része iskolákban. A gép olcsó és közkedvelt, a programok száma viszont kevés, és akad más kisebb-nagyobb hiba, kifogásolnivaló is. Mi hát mindezek oka, mi a valóság, s mi igaz a szóbeszédből? Elsősorban a tulajdonosok levelei nyomán indultunk útnak az illetékes cégekhez. Aztán az eredetileg egyszerűnek tűnő "nyomozás" érdekes fordulatokat vett.
Először Budapesten, a Videoton Számítástechnikai Kereskedelmi és Szolgáltató Leányvállalatánál jártunk, ahol Gergely János és Kiss Pál fogadott minket szívélyesen.
- Elterjedtek olyan pletykák, melyek szerint a TVC egy régebbi Enterprise gép licence. Tényleg így van?
- Ebben csupán annyi az igazság, hogy mindkettőt ugyanaz az angol cég tervezte.
- Pontosan mióta gyártják a TVC-t, s milyen a kereslet iránta?
- A sorozatgyártást 1985-ben kezdtük el, azóta majdnem 3000 darab 32 k és 9000 darab 64 k gép talált gazdára, illetve van kereskedelmi forgalomban. A vásárlók elsősorban az iskolák, hiszen iskolaszámítógépnek is szántuk, de bőven akadnak magánszemélyek is, akik főként a gép tudásához viszonyított olcsó ára miatt vesznek ilyen típusú számítógépet.
- Hogyan lehetett azt elérni, hogy a gép ára ne emelkedjen túlzottan?
- Igaz, hogy az árra rá kellett tenni az általános forgalmi adót, viszont máshol a gyártás folyamán csökkenteni tudtuk a kiadásokat, s ez eredményezte a csekély mértékű áremelést.
- Ez mindenesetre örvendetes, ám a géppel szemben problémák is felmerültek. A beépített botkormány labilis, hamar tönkremegy, ezenkívül a reset gomb sem tökéletes.
- Ezekről mi is tudunk, de sajnos, megváltoztatásukkal kapcsolatban még nem született döntés. Erről talán a székesfehérvári fejlesztők többet tudnak mondani.
- Ugyanez a helyzet a kitámasztó lábakkal is?
- Nem, az újabb gépek már stabil lábakkal készülnek.
- És az a billyentyű, amelyik backlash helyett aposztrófot ír?
(Erre mindketten nyomogatni kezdik az előttük levő gép billentyűit, próbálják kinyomtatni újra és újra, de a backlash csak nem akar a helyére kerülni.)
- Erre azt hiszem, nem tudok válaszolni, ez még számomra is újdonság.
- Hallottunk panaszokat a lemezegységgel kapcsolatban is. Várható-e új lemezegység megjelenése?
- Igen, már el is készült néhány egy- és kétmeghajtós egység. A régi UPM kompatibilis volt. Az új VT-DOS kompatibilis, de képes lesz elolvasni az elődje által készített lemezeket is. Ennek nagy előnye, hogy egy cartridge segítségével használhatóvá válik a CP/M operációs rendszer a 64K+ és a 32 k-s gép kibővített változatán.
- És mit tudnak tenni azok a felhasználók, akiknek 64 k-s régi gépük van?
- Természetesen át lehet majd alakítani ezeket a gépeket is. Valószínűleg a szervizek is elfogadják a javaslatunkat, s vállalják majd az átalakítást, hiszen csupán egy IC beültetéséről van szó.
- Mely szervizek foglalkoznak a javítással?
- A TVC-vel több szervizlánc is foglalkozik. Az iskolai gépeket a Professional Országos Számítógép Szerviz, a magántulajdonúakat az Agroindustria Innovációs Vállalat javítja.
(Kaptunk egy listát, amelyen további nyolc cég neve és címe olvasható. Ezzel, úgy érezzük, a szervizelés gondja tényleg megoldottnak tekinthető. Minket azonban nemcsak ez érdekelt.)
- Egy gép megítélésében egyik legfontosabb szempont a szoftver. Milyen a programellátottság?
- Ez igen összetett kérdés. A tulajdonosok mindig több és több programot szeretnének, ami miatt a kínálat lemaradozik. Meg kell azonban mondani, hogy sajnos ennek más oka is van. Természetesen a Videoton is készített jó néhány programot, de született egy szerződés a Novotrade-dal, amely szerint ők a 2,6 millió forint értékű gépek, valamint a 400 ezer forint reklámköltség fejében vállalják hardverkiegészítők, évi száz program és négy könyv elkészítését. Most 1988 júniusa van, harminc programmal és két könyvvel.
- Mi volt erre az önök reakciója?
- Sajnos, nem tehettünk semmit, mivel a szerződés szankciókat nem tartalmaz.
- És ez miért van így?
- A Novotrade a magyar piacon monopolhelyzetben van. De találtak ürügyet is. Azzal védekeznek, hogy a gépeket és dokumentációkat két hónapos késéssel, 1987 februárjában szállítottuk le részükre. Azóta eltelt másfél év, s programokat, könyveket még ma is alig lehet látni. Hivatkozásuk alapja most a kazettahiány.
- De hát sorra látni a Novotrade-os kazettákat és a hozzájuk kapcsolódó hirdetéseket, úgyhogy kazettahiányról ilyen értelemben aligha beszélhetünk.
- Sajnos, nemcsak a kazetták számával, hanem a minőségükkel is baj van. A szalagok könnyen nyúlnak, hamar használhatatlanná válnak.
- Hol lehet ezeket egyáltalán beszerezni?
- Elvileg a Centrum áruházak foglalkoznak árusításukkal, ám ők előtérbe helyezik az Enterprise gépek és programok forgalmazását. A TVC csak ezután jön. Ez mindenképpen késlelteti a TVC 64 K+ megjelenését is, ami üzletpolitikai okok miatt majd csak akkor kerülhet a pultokra, ha az elődje elfogyott.
Haszontalan reklám
Utunk ezek után Székesfehérvárra vezetett, ahol kissé körülményesen, a bürokrácia által kiszabott utakat megjárva ugyan, de bejutottunk a gyárba. Itt Cseh Tibornak, aki a Számítástechnikai Gyár fejlesztési osztályán dolgozik, az előbbiekhez hasonló kérdéseket tettünk fel. Ő ugyan bizonyos dolgokról csak magánemberként mondott véleményt, de volt némi tanulság a válaszaiban.
- Olvasóink panaszolták a reset gomb és a beépített botkormány gyenge minőségét, s a billentyűzet egy apró hibáját. Lehetne ezeken valamit javítani?
- Természetesen ezeket házilag bárki kicserélheti, de mi a gyártáskor arra törekszünk, hogy a gép minél olcsóbb legyen, hiszen magasabb áron valószínűleg kisebb lenne a kereslet. A botkormány nyomókeresztje egyébként most már erősebb anyagból készül, de ha mégis eltörne, a garancia erre is vonatkozik. A reset gomb kicserélése többek között azért sincs betervezve, mert a gép dobozát előállító szerszámot kellene módosítani, ami pedig ugyancsak drága. A billentyűzet szépséghibája a festéshez szükséges maszk pontatlanságából ered, de a gépkönyv végén található egy helyesen kinyomtatott kiosztás, ami garantáltan pontos.
- Szerintünk a gépnek nagyobb reklámra volna szüksége. Mi erről a véleménye?
- A Videotonnak nem érdeke a gép reklámozása, ezen nekünk semmi hasznunk nincs; a TVC-t ugyanis körülbelül ugyanolyan áron állítjuk elő, mint amennyiért adjuk. Mi állami nagyvállalat vagyunk, fentről kapjuk az utasítást és néha a támogatást. Ezek után nem hinném, hogy a vállalat érdekei nagyobb propagandát kívánnának meg.
- És mi a helyzet a TVC klubokkal?
-
A Videoton a klubjainak csak gépeket ad. Én személy szerint csupán két TVC-s klubról tudok, az egyik itt Székesfehérváron, a Videoton Oktatási Központban, a másik Budapesten, a Marcibányi téri művelődési házban található. (A budapesti klubot időközben kitették innen, jelenleg a Bem rakparton találtak otthont. - A szerzők.)
Az ördög sohasem alszik?!
Természetesen kíváncsiak voltunk a Novotrade hozzáállására is. Csak kisebb kutatással tudtuk meg a TVC-ügyben jártas emberek nevét, de sajnos, a szerződés ügyében illetékes nem került elő. Szerencsére azonban más jellegű információkat bőven kaptunk az Octasoft-ban. Első kérdésünk a kazettahiánnyal volt kapcsolatos.
- Sajnos, az utóbbi időben tényleg nagyon nagy kazettagondokkal küzdöttünk, de remélem, hogy ez már a múlté. A szocialista importban semmiféle szankcióra nincs lehetőségünk, aminek következménye, hogy a megrendelt kazetták csak néha-néha érkeznek meg. Ráadásul egy másik Enterprise-os megrendelésnél már kötbért is fizettünk, így annak a sorozatnak az előállítása fontosabb volt, ennélfogva az élvezett előnyt. Az áruházakban pedig azért szembetűnőbb az Enterprise programok magasabb száma, mert azokat a Centrum már korábban felvásárolta. A TVC programokra viszont jóval kisebb a kereslet.
- De a minőséggel is vannak problémák.
- A kazetta ma már nem a legmodernebb adathordozó, ennek ellenére még szükség van rá, s ha használjuk, legalább a magnetofon lejátszófejének pontos beállítására ügyeljünk. Ugyanazt a programot az egyik magnón be lehet tölteni, a másikon nem. Egyébként már mi is szerettünk volna venni egy modernebb másológépet, de ez a lehetőség anyagi okok miatt kútba esett, mert az oktatóprogram nem a legkifizetődőbb.
- Egyáltalán hány program kapható a Novotrade forgalmazásában?
- Jelenleg körülbelül negyven. De mutatok egy megrendelőt, ez ha jól tudom, teljes.
- Ez elképesztő, ebből a 39 féle programból összesen csak 77 darabra van megrendelés?
- Ettől a cégtől igen, de a többi sem különb. Szeretnénk nagyobb tételben is eladni iskoláknak, hogy az árakat lejjebb szoríthassuk. Állami támogatás inkább csak a gépekre van, s a programok vásárlására kevés pénz jut.
- Pedig ha nincs program, a gépet sem veszik annyian.
- Ez már csak egy ilyen ördögi kör. Mi olcsón behoztuk volna továbbra is a C Plus/4-et, saját valutakeretből, de a belföldi ipar tért hódított. Mire kezdtünk belejönni a Plus/4-be, stílust kellett váltanunk. De ha csak ezen múlott volna! Jártam én már olyan számítástechnika-oktatási tanácskozásokon is, ahol ... De ezt hagyjuk.
Gép - kazetta - könyv. Három egység, amely nélkülözhetetlen. Vajon mi lehet a legsanyarúbb sorsúval, a harmadikkal, a könyvvel? Erről a Novotrade-nél telefonon érdeklődtünk. Kérdéseinkre Szemeke Gabriella adott választ.
- Szeretnénk tudni, hogy az eddig megjelent kiadványokon kívül (TVC BASIC, Operációs rendszer) számíthatunk-e újabbakra?
- Igen, most jelenik meg egy hardverről szóló kiadvány, és további két könyv is szerepel terveinkben, a gépi kódú programozásról és a TVC ROM-ról szólóak, melyeket az év végéig szeretnénk megjelentetni.
Mindenkinek kára ...
Az eddigiek mindenképpen azt sugallják, hogy a Novotrade és a Videoton kapcsolatai nem nevezhetők rózsásnak. Erre konkrét példa, hogy a gépre eddig a hivatalosan forgalomba került programokról sehol sem tudtak összefoglaló kiadványt adni. A két cég szerződésében szó van egyébként hardver-kiegészítőkről is, holott a Novotrade-esek szerint cégük nem is foglalkozik ilyesmivel, továbbá a szerződés nem köti ki ezek számát sem, tehát akár semmibe is vehető.
Szomorú, de végül a boltokban tapasztaltak szerint sem a legjobb a programkínálat. Sehol sem haladta meg a hat-nyolc darabot.
Ez hát a keserű igazság, s mindennek kárát a felhasználó vagy az a diák látja, akinek az iskolában ilyen gépparkon kell tanulnia. De mi van akkor, ha nem csak kell, hanem meg is szeretné tanulni szegény diák a számítástechnika fortélyait, vagy a számítógép segítségével szeretné elsajátítani más tantárgyak ismeretanyagait? Hiszen azért van a gép, hogy vele tanuljunk, vagy legalábbis azért lenne. Vagy netán valami porszem került az iskolaszámítógép-program gondosan megolajozott fogaskerekei közé?
Bártfai Barnabás, Vámos Sándor