1980-luvulla ja 1990-luvun alussa mikro tarkoitti useammin mikrotietokonetta kuin mikroaaltouunia. Se oli mikroilun ”kulta-aikaa”: silloin lapset ja nuoret ympäri maailmaa viihtyivät tietokoneen ääressä, vaikka chattailua ja nettisurffailua ei ollut keksittykään. Tietokoneharrastus vei paljon myös omaa aikaani. Jälkiviisaana voi ehkä pohtia, mihin pisteeseen saakka se oli järkevää. Lähes kaikki tekemäni tietokoneohjelmat vuodesta 1985 eteenpäin ovat minulla yhä tallessa, ja tällä sivulla esittelen niistä muutaman.
Amstrad CPC:lle tekemäni merkkieditori oli ehkä suurin projekti, minkä sain kyseisellä kotimikrolla aikaan. Ohjelma valmistui kesällä 1987, jolloin olin yhdeksänvuotias. Kun katselen ohjelmaa nyt, en tajua siitä enää juuri mitään, sillä se on kirjoitettu lähes kaikkien taiteen sääntöjen vastaisesti karmealla ”spagettityylillä”. Ohjelmoidessani minulla ei ollut mitään suurta kokonaissuunnitelmaa – kokonaisvisio lopputuloksesta kylläkin. Kuin ihmeen kaupalla sain ohjelmasta lopulta lähes täsmälleen sellaisen kuin halusin. Suureksi avuksi oli legendaarisen statuksen saavuttanut hakuteos CPC464/664/6128 Firmware (Soft 968), jonka ROM-konekielirutiinien käyttöohjeita luin päiväkausia sanakirjan avulla.
Amstradin erityisominaisuuksiin kuului laaja mahdollisuus luoda omia merkistöjä ja käyttää niitä ohjelmissa. Valitettavasti kunnon editoria ei ollut tarjolla, joten sellainen piti tehdä itse. Merkkieditorillani voi muokata koko Amstradin merkistöä, ja siinä on myös laaja valikoima muita hyödyllisiä toimintoja. Tavallisen pikselipohjaisen piirtämisen lisäksi merkkejä voi mm. peilata, kääntää ylösalaisin, kiertää 90 astetta ja vierittää editointiruudukossa eri suuntiin. Ohjelma muuntaa merkit haluttaessa valmiiksi ohjelmakoodiksi, jonka pystyy tallentamaan.
Erityisiä yksityiskohtia ovat viimeistelty käyttöliittymä (ks. oheinen kuva) ja ruudun oikeassa alakulmassa näkyvät reaaliaikaisesti päivittyvät esikatselukuvat, jotka näyttävät muokattavan merkin ulkoasun eri grafiikkatiloissa.
Tarkoitukseni oli lähettää merkkieditori julkaistavaksi MikroBITTIIN, mutta koska numerossa 1/1988 ehdittiin julkaista jonkun toisen tekemä Amstrad-merkkieditori, jätin ohjelmani lähettämättä. Ominaisuuksiltaan oma merkkieditorini oli monipuolisempi ja vastaavasti jonkin verran bugisempi. Amstrad-emulaattorin (esim. Arnold, WinAPE tai CaPriCe32) omistajat voivat tutustua alkuperäiseen merkkieditoriin omakohtaisesti seuraavien tiedostojen avulla:

Ala-asteen päättymisen jälkeisenä kesänä tein PC-koneeni mukana tulleella GWBasicilla ns. tekstiseikkailupelin, jonka tapahtumat sijoittuivat silloiseen kotiini ja naapurustoni kavereiden koteihin. Nykyään tekstipohjaisia seikkailupelejä ei enää tehdä, mutta 1980-luvulla ne olivat suurta huutoa, ja hienointa oli se, että niitä saattoi tehdä itse suhteellisen helposti. Omassa seikkailupelissäni pelaajan tehtävänä oli löytää ilotulite, jolla piti sitten räjäyttää naapurin talo.
Pyrin tekemään pelistä mahdollisimman syvällisen ja realistisen. Pelissä on 44 huonetta ja 17 mukana kuljetettavaa esinettä, joille kaikille on määritelty tietty joukko ominaisuuksia sanallisesta kuvauksesta alkaen. Lisäksi pelissä on useita henkilöitä, joiden kanssa voi käydä kohtalaisen pitkiä keskusteluja. Pelin laajuuden vuoksi Basic-ohjelmasta tuli yli 50 kilotavun mittainen, ja valmis versio hipookin GWBasicin sisäisiä muistirajoituksia – varsinkin siksi, että merkkijonojen pyörittely vie paljon muistitilaa.
Inspiraationa pelilleni toimivat Jan-Eric Nyströmin opas tekstiseikkailupelin ohjelmointiin (MikroBITTI 5/1985), Risto Siilasmaan artikkeli ”Seuraavan sukupolven seikkailupelit” (MikroBITTI 2/1986) ja 1980-luvun puoligraafiset seikkailupelit. Pelin alkuun olin ohjelmoinut Leisure Suit Larry -henkisen triviakyselyn, jolla varmistettiin, että pelaaja kuului oikeaan kaveriporukkaan. (Larryn vastaavassa kyselyssähän pyrittiin todentamaan pelaajan täysi-ikäisyys.) Pelin sisältämän sisäpiirihuumorin ja nolohkon lapsellisuuden vuoksi en kehtaa laittaa peliä julkisesti saataville.
Olin kehittänyt pelaajan antamia komentoja tulkitsevaan jäsenninrutiiniin (1980-luvun tietokoneslangilla ”parseriin”) useita hienouksia, joista mainittakoon seuraavat. Peli ymmärsi substantiiveista useita eri sijamuotoja, jotta peliä olisi voinut ohjata mahdollisimman luontevin komennoin. Ohjelmalle saattoi antaa moniosaisia virkkeitä, joiden osat saattoi erottaa joko pilkuilla tai ja-sanoilla. Pelin aikana kerättäviä esineitä pystyi asettamaan sisäkkäin esineille määritellyn tilavuuden rajoissa. Aikaisemmassa käskyssä mainittuun substantiiviin saattoi viitata pronominilla se. Kaikkia näitä ominaisuuksia esittelee alla oleva esimerkkikuva. Huomaa erityisesti, kuinka ohjelma ymmärtää, että se-sana viittaa paperilappuun eikä vaatemyttyyn. Rehellisyyden nimissä on kuitenkin tunnustettava, että kyseessä on todennäköisesti bugisin ohjelma, minkä koskaan sain aikaiseksi.

Tekstipätkä ”Kätesi tarttuvat vaatemyttyrään ja vilautat sen kätevästi paitasi alle” on hämärän muistikuvani mukaan viittaus Space Quest III:n huoneeseen 92, joka sisältää tekstin ”Surreptitiously, you snatch the picture of Elmo.”

Alla on kartta seikkailupelini tapahtumapaikoista. Tämä versio on tarkoituksella sen verran pieni, että tekstiä ei pysty kunnolla lukemaan. Halukkaat voivat tutustua vastaavanlaiseen versioon pelin täydellisestä lähdekoodista.

Tein tämän liikennesimulaatio-ohjelman Turbo Basicilla yläasteiden valtakunnalliseen tietokonekilpailuun. Ohjelma valmistui muutaman illan työn tuloksena tammi–helmikuun vaihteessa 1991. Oman koulun sisällä järjestetty alkusarjan kilpailu oli helppo voittaa, koska varteenotettavia kilpailijoita ei juuri ollut, mutta jatkoon en kilpailussa päässyt. Tähän oli ilmeisesti kaksi syytä – ensinnäkin ohjelmani oli ”hengeltään” vääräntyyppinen ja toisekseen kilpailun esseekysymyksiin jättämäni vastaukset olivat näin jälkikäteen tarkasteltuna harvinaisen lapsekkaita.
Tehtävänä oli tehdä ohjelma, jolla voisi tarkkailla autojonojen kehittymistä simuloidussa liikenneympäristössä. Kirjoittamani ohjelma oli lähinnä graafinen simulaatio, joten siitä ei olisi ollut juurikaan konkreettista hyötyä esimerkiksi liikenneinsinöörille, joka haluaa optimoida liikenteen järjestelyjä (minkä nykyään oletan olleen tehtävän tausta-ajatuksena). Visuaalisena esityksenä ohjelma sen sijaan on mielestäni edelleen varsin hauska.
Liikennesimulaatio olikin sitten viimeisiä suurempia ohjelmointiprojektejani. Ikää oli kertynyt jo 13 vuotta, ja siinä vaiheessa olisi viimeistään ollut aika vaihtaa ohjelmointikieltä esimerkiksi C:hen. Niihin aikoihin tietokoneet alkoivat jo kuitenkin tulla korvista ulos, ja C:n opettelu olisi vaatinut suurempaa panostusta. Tarpeeksi käytännönläheistä opiskelumateriaaliakaan ei ollut helposti saatavilla. Suurempia projekteja en olisi enää voinut tehdä vanhaan tyyliin ”fiilispohjalta” kovinkaan menestyksekkäästi, sillä sellaiseen touhuun vaaditaan jo jonkinasteista tietojenkäsittelytieteen teorian hallintaa ja laajempaa näkemystä, varsinkin jos käytössä on C tai vastaava kieli. Sellaiseen minulla ei lopahtaneen kiinnostuksen ja orastaneen teini-iän vuoksi riittänyt enää energiaa. Jos olisin jatkanut tietokoneharrastustani, olisin todennäköisesti päätynyt vääntämään assemblerilla ja C:llä pelejä enemmän tai vähemmän täysipäiväisesti. Nyt voin todeta, että onneksi näin ei käynyt.
Ohjelma on saatavilla sekä alkuperäisessä lähdekoodimuodossa että DOS-ohjelmaksi käännettynä EXE-tiedostona, joka tosin toimii aivan liian nopeasti nykyisillä tietokoneilla. Ohjelmaa voi kokeilujeni perusteella käyttää sellaisenaan esimerkiksi Windowsin DOS-ikkunassa; täydellisen yhteensopivuuden voi halutessaan varmistaa käyttämällä esimerkiksi DOSBoxin kaltaisia DOS-emulaattoreita. Takaan tiedoston viruksettomuuden, mutta en ota mitään vastuuta sen toiminnasta tai sen aiheuttamista vahingoista. Vainoharhaiset henkilöt voivat toki kääntää ohjelman ensin itse EXE-muotoon ja kokeilla sitä sitten muusta maailmasta eristetyssä ympäristössä, kuten sopivassa emulaattorissa. Tällaiseen ei pitäisi kyllä olla mitään syytä.
Huom. Ohjelma varaa muistiin tilaa tuhannen auton tiedoille. Kun tämä määrä ylittyy, mikä vie nykyaikaisella parintuhannen megahertsin PC:llä kymmenisen sekuntia, niin ohjelma rupeaa käyttäytymään oudosti ja sekoaa parissa sekunnissa täysin. Ilmeisestikin jokin tietorakenne vuotaa yli ja niinsanotusti hajoaa käsiin, mutta 1990-luvun alussa tietokoneet olivat siksi hitaita, että tuhannen auton ilmestyminen ruudulle vei pienen ikuisuuden, enkä vaivautunut ottamaan ylitystä huomioon. (Teoriassa moinen ylivuoto voi toki aiheuttaa tietokoneelle ties mitä kauheuksia, mutta käytännössä se aiheuttanee vain kaatumisen.)
Simulaatio kestää pidempään ja sitä on helpompi seurata, jos päävalikosta leventää katuja esimerkiksi 7 auton levyisiksi ja lyhentää liikennevalojen vaihtumisväliä 5–10 sekuntiin. Mitä suurempia korttelit ovat, sitä vähemmän simulaatiossa syntyy ruuhkaa ja sitä kauemmin ohjelma toimii sekoamatta. Ongelmia syntyy silloin, kun ruuhka tukkii kadut niin, että autot eivät pääse poistumaan ruudulta.
Käynnissä olevan simulaation voi keskeyttää painamalla Q-näppäintä.

1990-luvun alun jälkeen tein vain kaksi ohjelmointiprojektia.