BB AA SS I CC B B A A S I C BB AAAA S I C B B A A S I C BB A A SS I CC + +++ + K Ä Ä N T Ä J Ä === === CC I SS A A BB C I S A A B B C I S AAAA BB C I S A A B B CC I SS AA BB vai onko sittenkään? Juttua Amerin basic kääntäjästä Markkinoilla on muutamia basic kääntäjiä kuusnelosta varten. Yksi niistä on peräti täysin suomalainen, nimittäin Amersoftin basickääntäjä. Jos joku ei satu tietämään mitä kääntäjä tekee, kerottakoon se tässä. Kääntäjä kääntää basic ohjelman (jos se on basickääntäjä) konekielelle tai jollekin sekakoodille. Amerin kääntäjän on siinä hyvä, että se kääntää täydelliselle konekielella, kun esim. Petspeed tekee basukin ja konekielen sekasotkua. Kuten jo mainitsen tekee Amer täydellistä konekieltä, mikä onkin hyvä asia. Tämän tekee mahdolliseksi se, että Amer ei käsittele kuin muutamia käskyjä, joka onkin sitten huono juttu. Ohjelman pitää koostua näistä muutamasta käskystäja ne pitää olla tarkasti oikeissa muodoissa (esim. muoto "if a=b then 10" ei käy, vaan pitää kirjoittaa "if a=b then goto 10"). Amerin ymmärtämät käskyst ovat: end,goto, gosub, return, ifthen, sys, print, input, let, rem, poke ja joukko funktioita (esim. chr$, peek, rnd (ei kuitenkaan tab tai spc). Huomasit varmaan, että valikoima varsin pieni, mutta kyllä niillä pärjää. Ohjelman vääntämin Amerilla käännettäväksi on alussa varsin tuskallista puuhaa, sillä ohjekirjassa ei kovin selvästi esitellä kaikkia kiellettyjä rakenteita (esim. eri suuri kuin (<>) -rakennetta ei voi if-lauseissa käyttää). Lisäksi ohjelmaan tuppaa aivan vaistomaisesti lätkimään kiellettyjä käskyjä, etenkin for next -rakennetta. Amer ilmoittaa ystävällisesti näistä virheistä, käännöstä tehdessä. Silloin ei auta muu, kuin heittää virrat poikki, ladata ohjelma, tehdä korjaus, ladata kääntäjä, yrittää uudelleen kääntämistä ja toivoa ettei ohjelmassa ole enempää kiellettyjä juttuja. Kun on kymmenkunta kertaa yrittänyt kääntää ohjelmaa, eikä vieläkään onnistu, rupeaa hermot menemään. Kun ohjelman viimein saa konekieliseen muotoon unohtaa helposti vaikeudet, sillä on se sentään paljon parempi kuin basic ohjelma. Kunhan on muutaman ohjelman Amerilla kääntänyt ei vaikeuksia enää esiiny niin paljon. Kohtalaisen nopeasti oppii Amerin vaatiman ohjelmointityylin, vaikka se tapahtuukin "kantapään kautta". Käskyt, joita Amer ei ymmärrä on korvattavissa joko hieman sekavammilla ohjelmarakenteilla tai konekielisten rutiinien käytöllä. Ruutiineja voi tehdä itse, jos osaa, tai voi käyttää koneessa valmiiksi olevia, mutta tällöin on syytä muistaa seuraavaa: poket akkuun, x- ja y-rekisteriin ei yleensä toimi käännöksen jälkeen, koska Amer kääntää poket niin, että ne muuttavat kyseisten rekisterien arvoja. Pomppu Tässä Flopyssa on Amerilla käännetty peli, Pomppu, ja sen alkuperäinen basic versio. Ensimmäisenä huomio kiinnittyy ohjelmien pituuteen, käänetty versio on muutama blockin pidempi. Pituuden lisäys ei ole mikään vakava juttu (esim. Petspeed saattaa lisätä pituutta usealla kymmenellä blockilla). Jos kokeilet pelata molempia huomaat hyvin tärkeän seikan: käänetty on huomattavasti nopeampi, kuin basic. Nopeusero on valtava! Käänettyä versiota on hieman editoitu konekielimonitorilla. Aiemmin esitetystä syystä on ohjelman lopussa olevat poket x- ja y-rekistereihin jouduttu muuttamaan käännöksen jälkeen. Tästä editoinnista johtuvat ne muutamat "nopit" ohjelmassa (siis konekieli versiossa). Normaalisti ei Amer niitä viljele. Loppukomentti Amer on varsin mukava, nopeaa koodia tekevä, konekielikääntäjä. Sen asettamat ehdot basic ohjelman suhteen eivät ole ylivoimaisia, vaan niihin tottuu melko pian. Kannattaa käyttää. - Marko Jerrman -