5. Kullervo Rainio 10.4.2001

Kullervo Rainio 10.4.2001 Luonnonfilosofian seura

Hyvät Luonnonfilosofit, erityisesti Heikki Mäntylä!

Heikki kirjoitti taas erittäin pätevää tekstiä, mutta tässä vastaan vain hänen "hätähuutoonsa": "Millaisella muunnoskoodilla Rainion ykkösistä ja nollista tuli kirjaimet P, a, u, l ?"

"Ykköset ja nollat" esiintyivät 8-numeroisissa sarjoissa. Kukin niistä oli siis 8-numeroinen binääriluku. Muutettuna 10-järjestelmän luvuksi esim. binääriluku 01010000 on 80. (Kun muistetaan, että jokainen numero luvussa ilmaisee kantaluvun - binääriluvuissa 2 - peräkkäisiä potensseja, laskutoimitus edellä siis on 0x128 + 1x64 + 0x32 + 1x16 + 0x8 + 0x4 + 0x2 + 0x1 = 64+16=80.)

Esitin asian binäärilukuina, koska informaatio tietokoneessa esiintyy fyysisesti kytkentöinä "relee 128 off", "relee 64 on" jne. (Silloin, kun minä ohjelmoin ensi kerran tietokoneille, nuo kytkennät olivat ferriittirenkaitten tiloja: "rengas 128 magnetoimaton", "rengas 64 magnetoitu", jne. Taisi olla 53 vuotta sitten! Ja jokainen ohjelman käsky oli rei’itettävä paperinauhalle 5-numeroisena binäärilukuna eli viitenä bittinä, myöhemmin 8-numeroisena. Sitä sanottiin "konekoodiksi". Sitä eivät enää kirjoita muut kuin kaikkein perimmäisen tason ohjelmoijat. Luulenpa, että ne kuolevat nuorena.)

Eksyin hiukan asiasta muisteluksiin.

Siis jatkoa: Jokaisella tietokoneessa käytetyllä merkillä on numeroarvonsa, ns. ASCII-koodi (American Standard Code for Information Exchange). Luvut 65 90 on varattu isoille aakkoskirjaimille, luvut 97 - 122 pienille aakkosille, luvut 48 - 57 numeroille jne.

Yllä mainittu koodi 80 on ison P-kirjaimen ASCII-koodi.

Variaabelin r arvon antaminen ja sitten koodimuunnos on Basic-ohjelmana seuraava:

r=80

print CHR§(r)

end

Käsky print CHR§(r) näyttää kuvaruudussa sen merkin, jonka ASCII-koodi on 80 eli ison P-kirjaimen. Ei se sen kummempi "muunnos" ole. Mutta voiko insinööri olla tähän tyytyväinen! Ei kai. Selitys on "väännettävä rautalangasta". En kuitenkaan ryhdy esittämään asiaa konekoodilla. En antaudu 53 vuotta sitten kestämääni piinaan. (Sitäpaitsi en muistaisikaan paljoa.)

Hiukan selitystä voi vielä lähestyä. Käskyn r=80 takana oleva ohjelma on vielä helppo ymmärtää: "Jotenkin" koneessa asettuvat "jotkin" 8 peräkkäistä relettä asentoon 01010000 muistipaikassa, johon r "viittaa".

Mutta sitten: print CHR§(r). Sen taakse kätkeytyy oma laaja ohjelmansa. Siitä sain käsityksen, kun aikoinaan (n.v.1980) kirjoitin oman tekstinkäsittelyohjelman, koska silloin ei tavallisissa ohjelmissa ollut kreikkalaisia kirjaimia. - Miten siis ohjelmoidaan kirjaimen piirtäminen näytölle?

Sanon vain lyhyesti: LOCATE(x,y)-käskyllä annetaan piirtämisen lähtökohtakoordinaatit ja PSET(x,y)-käskyllä sitten pienellä alueella "mustataan" määrättyjä x ja y koordinaattien kohtia, pikseleitä, niin että muodostuu kirjaimen (tässä tapauksessa ison P:n) muotoinen musta kuvio. (Vaikka tehtäisiin hyvin karkea kirjainmuoto esim. vain 8x12 suuruista ruutua käyttäen, tarvittaisiin 96 PSET-käskyä! Toki on keinoja lyhentää ohjelmakirjoitusta.)

Olisi vielä tarkasteltava sitä tekniikkaa, jolla ohjelmassa määrätyt pikselikohdat saadaan näyttöruudulla loistamaan tai olemaan loistamatta, mutta se ei ole varsinaista informaationkäsittelytekniikkaa.

Nykyään kaikki nämä rutiinit ovat valmiiksi pakattuja ohjelmamoduuleja, piirejä, eikä kukaan kohta muistakaan, mikä logiikka niissä alunperin oli. (Siinä on muuten oma vaaransa.)

Näin on taas kerran humanisti joutunut hyllyvälle suolle. Kun näitä muistelen, sanon suoraan, että otanpa hatun pois ja heilautan sitä hyvin laajassa ja hyvin kunnioittavassa kaaressa niille miljoonille tekniikan uurastajille, jotka ovat puolessa vuosisadassa tämän yksityiskohdissaan pyörryttävän laajan tekniikan tuottaneet. Mutta samalla pidän tiukasti kuin iiliäinen kiinni siitä, että kaikki se on vain koodinmuunnosta eikä pirukaan pysty siitä tekemään pilkun vertaa tietoisuutta!!!

Terv. 10.4.2001 Kullervo Rainio