Z-80 kit
Olin tuolloin 1976 töissä Finnmetric -yhtiössä. Siellä oli oma osastonsa tietokonetoiminnoille — Data-osasto — mutta minä puuhailin sähköisen mittauksen ja säädön parissa. Kun kuulin, että tällainen mikroprosessorikitti oli tullut myyntiin, niin ostin sen oitis. Ja sainhan sen edulliseen henkilökuntahintaan. Tosin johtaja nuhteli minua siitä, että tietokonejutut eivät kuulu minulle vähimmässäkään määrin. Ei ollut silloin pomo kaukaa viisas, mutta kukapa olisi ollut. Harvalla oli käsitys lähimpien vuosikymmenien kehityksestä.
Ei tuo moite minuun vaikuttanut. Innokkaasti kolvi kuumenemaan, osat levylle, mekaniikka kuntoon, sähkön syöttö oikein päin ja kokeilemaan. Esimerkkeinä olleet ohjelman pätkät toimivat niin kuin niiden pitikin, mutta toimintaa en ymmärtänyt. Itse en osannut laatia mitään. Oli vähän typerä olo.
Sitten vain data-osastolle apua pyytämään ja Eskon pikakoulutukseen:
– … aha, … ai jaa? … sanos vielä uudestaan … juu? No, kiitos, mää yritän.
Varmaan Eskon opastus oli oikein ja ihan pätevä, mutta sitä minun on täysin mahdoton arvioida, sillä en ymmärtänyt siitä sanaakaan. Saati, että olisin päässyt tällä ”datatiellä” eteenpäin. Mutta tulipahan tyhmyyteni oikein todistettua!
Onneksi avasin suuni ja tuli juttua huollossa Markun kanssa. Hän osasi pilkkoa ongelmani tarpeeksi pieniin palasiin:
– Lataa akkuun jokin luku. Ihan sama mikä, kunhan siinä on sekä ykkösiä että nollia. Sitten kopioit sen osoitteeseen, missä sijaitsee näyttö. Osoitteet löytyy tietysti manuaalista. Sitten hyppäät takasin sille riville, missä latasit sen akun. Näytössä pitäisi palaa jonkin tai joidenkin sekmenttien.
– Ok. Toi tuntuu tarpeeksi yksinkertaiselta. Lähdenpä liikkeelle tuosta. Mites mää saan näyttöön jonkun numeron?
– Sun pitää ladata akkuun sellainen luku eli bittiyhdistelmä, että ne sekmentit palavat, minkä numeron haluat näyttää.
– Kiitos, tästä eteenpäin!
Ja eteenpäin pääsin. Näytössä oli sekmentti palamassa tai jopa numero. Nyt osasin vaihdella niitä haluni mukaan. Mutta eipä ollut paljoa, jos näytössä palaa numero, tai vaikkapa kaikissa yhteensä 9999 99 99! Toimintaa pitää saada! Siis lisää apua!
– Hei, mä yritin kasvattaa numeroita näyttöön nollasta yhdeksään lataamalla kaikki numerot peräkkäin, mutta siinä palaa vain kasi.
– Joo. Kyllä ne kaikki numerot siinä näytössä on, mutta ne juoksee liian nopeasti silmälle. Silmä näkee ne kaikki päällekkäin ”elävänä kuvana”.
– No, mitä mää voin tehdä?
– Sun täytyy kirjoittaa viive jokaisen syötön väliin, jotta näyttö muuttuu harvemmin. Periaate on, että lataan akkuun jonkun ison luvun, sitten vähennät sitä yhdellä — DEC on se käsky. Sitten katsot joko se luku on nolla, ja jos ei niin palaat taas tuohon vähennykseen. Sitten kun se on nolla, menet ohjelmassa eteenpäin. Sitä sanotaan luupiksi.
– Mutta nythän siellä akussa se luku muuttuu nollaksi eikä ole se luku, minkä mää halusin.
– Se sun lukus on jo siellä näytössä.
– Joo, niin tietysti.
– Mutta, jos sää teet tuon viiveen jokaisen latauksen väliin, niin koodia tulee paljon. Tee se viive aliohjelmaan ja varsinaiseen pääohjelmaan ainoastaan teet kutsun sinne viive-aliohjelmaan. Aliaohjelman alussa lataat akun — tai jonkin muistipaikan, vähennät sitä ja lopuksi hyppäät takaisin pääohjelmaan siihen kohtaan, mistä kutsuit tätä viivettä. Käskyt löydät manuaalista ja kun itse etsit, niin paremmin jää mieleenkin. Pidempiä viiveitä varten voit tehdä useamman luupin sisäkkäin. Kokeile, niin löydät idean ja opit.
– Kiitti kovasti. Illan ratto on taas taattu!
Ja niin olikin. Ruokahalu kasvoi syödessä. Mutta kaikkia numeroita en saanut vieriteltyä peräkkäin kaikissa näyttölohkoissa, sillä muisti loppui! RAM-muisti oli 128 bittiä, ja sillä ei pitkälle päässyt. Sitten taas opiskelemaan uutta ja kolvi käteen. Jostain onnistuin saamaan — varmaan ilmaiseksi tai ainakin hyvin halvalla — kahdeksan kappaletta 1×1000 bitin muistipiiriä ja sitten piirit kortille ja koneeseen. Sen jälkeen muistin riittämättömyys ei enää asettanut rajaa ohjelmoinnille.
Työlästä oli kuitenkin selata manuaalia ja sieltä vastaavaa konekoodia, kirjoittaa se paperille muistiin sekä syöttää koneeseen. Yleisemmät konekoodit jäivät mieleenkin, mutta puuha oli hidasta ja ohjelmat jäivät tietysti vaatimattomiksi.
Oleellinen muutos tapahtui sen jälkeen, kun olin hankkinut ja koonnut seuraavan koneen Nascomp-2:sen. Siinä oli Basic-tulkki valmiina ja myöhemmin hankin siihen Assembler-kääntäjän mikropiirit. Molemmissa koneissa oli sama prosessori: 8-bittinen Zilog Z-80. Tällä Nascomp-2-koneella sai tekeleensä talteen C-kasetille ja listaukset tulostettua matsiisikirjoittimelle. Ohjelmointi tehostui aivan oleellisesti. Assemler-kielen käskyt oli paljon helpompi muistaa kuin konekäskyt. Nascompilla saattoi kirjoittaa ohjelman, kääntää ja tulostaa, jolloin sen saattoi vain kopioida Z-80-kitille suoraan listauksesta.
Vanhempi poikani oli tuohon aikaan yläasteella ja otti kaverinsa kanssa osaa tekniikkakilpailuun. Tavoitteena oli siirtää annettu taakka (painoa en muista) tietty matka ilmassa mahdollisimman nopeasti käyttäen kahta litteää taskulampun paristoa sekä annettua sähkömoottoria. Poikani rakensi koulussa kaverinsa kanssa kääntyvän ”robotin”, minkä sähkömagneetti nosti taakan irti tasosta ja siirsi halutun matkan. Robotin toimintoja ja liikkeitä ohjattiin tuolla Z-80-kitillä. Minä kyllä ”auttelin” tuon sähkömagneetin ja ohjelman teossa. En kuitenkaan potenut huonoa omaatuntoa, sillä kisan voitti kaveri, jonka isä oli KONE Oy:llä töissä. Oli kuulemma upea luomus. Nämä meidän pojat saivat ainoastaan kunniamaininnan, sillä vaihteistona käytetty herätyskellon koneisto hajosi kesken kisan. Tämä ”robottiohjelmisto” jäi tämän mikrotietokoneen suurimmaksi ”sovellustuotteeksi”.
Antti Isännäinen