Tässä pyritään korjaamaan hiukan syrjään jäänyt aihepiiri: ohjelmointi.
                     
Ensimmäiseksi kieleksi on valittu GFA-Basic. Hiljattain GFA:n 2 versio
                     
siirtyi public domain -ohjelmaksi. GFA ei ole ollenkaan sellainen paha 
                     
ohjelmointikieli millaiseksi Basicit on ehditty haukkua. 
                     
                     
                     
Niinkuin usein tietokoneitten kohdalla on: se mikä pitää paikkansa 
                     
jossakin tietyssä ympäristössä, pätee myös muuallakin. Voi sanoa, että 
                     
ohjelmointiin pääsee käsiksi opettelemalla jonkun ohjelmointikielen. 
                     
ST:n kohdalla paras valinta on varmasti GFA.
                     
                     
                     
                     Suomenkielisten Tieto-Sanomien toimitus
                     
                           Jan Alanco,  Jaakko Laurila
                     
                     
                     
 
                     
Suorittimen ymmärtämät konekäskyt ovat hyvin yksinkertaisia ja yksi 
                     
toteuttaa vain erittäin alkeellisen toimenpiteen. Konekielisten 
                     
ohjelmien kirjoittaminen on siksi runsastöistä ja hankalaa. Tilannetta 
                     
helpottamaan on kehitetty korkeamman tason ohjelmointikieliä, joista 
                     
nykyisin on enimmäkseen käytössä niin kutsutut lausekielet. 
                     
Lausekielessä tietokoneen tehtäväksi aiotut toimenpiteet ilmaistaan 
                     
lauseina, jotka ovat monipuolisempia kuin yksittäiset konekäskyt ja 
                     
jotka ovat lähempänä ihmisen ajattelutapaa. 
                     
Koska suoritin ei pysty toteuttamaan muita kuin konekielisiä käskyjä on 
                     
käytettävä jotain apuohjelmaa jotta lausekielellä kirjoitettu ohjelma 
                     
voidaan suorittaa. Tällaisia apuohjelmia on periaatteessa kahdenlaisia: 
                     
kääntäjiä ja tulkkeja.
                     
                     
                     
Kääntäjä muuttaa lausekielisen ohjelman vastaavaksi konekieliseksi 
                     
ohjelmaksi. Lausekielinen ohjelma on ensin käännettävä konekieliseksi 
                     
ennenkuin sen voi ajaa. 
                     
                     
                     
Tulkkia käytettäessä ei lausekielistä ohjelmaa varsinaisesti käännetä. Se 
                     
muutetaan johonkin helposti käsitettävään sisäiseen esitykseen. Tulkki 
                     
tutkii lause lauseelta ohjelmaa ja tekee tarvittavat toimenpiteet. 
                     
Tulkin käyttäminen kääntäjään verrattuna on hitaampaa. Virhetilanteissa 
                     
tulkki pystyy antamaan parempia selityksiä virheen tapahtumakohdasta.
                     
                     
                     
GFA Basic:iä kutsutaan tulkiksi (interpreter). Ohjelmointi tällä 
                     
kielellä tarkoittaa, että GFA Basic:in pitää kääntää tai tulkita ohjelmasi 
                     
rivit konekielelle - ainoalle kielelle jota tietokone voi ymmärtää. 
                     
Kirjoitat Basic ohjelmasi käyttäen GFA käskyjä, ja kun päätät ajaa sen 
                     
GFA tutkii rivin kerrallaan ja kääntää ne konekielelle. 
                     
                     
                     
Kun käynnistät GFA:n esiin ilmestyvä kuvaruutua kutsutaan "editoriksi".
                     
- täällä suunnittelet ja korjailet ohjelmasi. GFA:n yksi hyödyllinen 
                     
ominaisuus on se, että se tutkii jokaisen lauseen heti Returnin 
                     
painalluksen jälkeen. Jos kirjoittamasi on jotenkin virheellinen ST 
                     
hälyttää  ja näkyviin ilmestyy teksti "Syntax Error" (=lauseopillinen 
                     
virhe). Toinen GFA hyvä puoli on tapa jolla se sisentää koodirivit 
                     
paremman luettavuuden aikaansaamiseksi.
                     
                     
                     
Ohjelmasi rivit suoritetaan siinä järjestyksessä missä ne ovat 
                     
kuvaruudulla. 
                     
                     
                     
                    GFA   BASIC 
                     
                     
                     
                  OHJELMOINTIKIELI
                     
                     
                     
                     
                     
 
                     
* EROT PERINTEISIIN BASIC_MURTEISIIN
                     
                     
                     
-Rivinumerointia ei tarvita
                     
-Vain yksi käsky riville
                     
-strukturoidun eli rakenteisen ohjelman käskyt
                     
                     
                     
Kun GFA ladataan tietokoneeseen,käynnistyy editori. Käytettävissä on 
                     
kaksi  ruutua: editoriruutu, jossa ohjelman työstäminen  tapahtuu  ja 
                     
ohjelmaruutu, joka on käytössä ohjelmaa ajettaessa.
                     
                     
                     
                     
                     
EDITORIRUUTU
                     
                     
                     
Tässä kuvattu komentopalkki on tulkissa mustapohjainen ja teksti 
                     
valkoista.
                     
                     
                     
      Save|Save,A|Quit |New  |Blk Sta|Replace|Pg Up  |      |Direct|Run
                     
      Load|Merge |Llist|Block|Blk End|Find   |Pg down|Insert|Flip  |Test
                     
                     
                     
Shift  F1   F2     F3    F4    F5      F6       F7     F8     F9     F10
                     
ilman  F1   F2     F3    F4    F5      F6       F7     F8     F9     F10
                     
                     
                     
Komennot voidaan käynnistää hiirinuolen näpäytyksellä tai ylläesitetyn 
                     
mukaisesti funktionäppäimistä. Yläriviin päästään painamalla Shift alas
                     
ja samanaikaisesti haluttu funtionäppäin. Alarivi vastaavasti ilman 
                     
Shiftin alaspainamista. 
                     
                     
                     
Save   = tallenna .BAS-loppuiseksi tiedostoksi, GFA 3 versiossa .GFA-
                     
         loppuisiksi
                     
Load   = lataa editoriin .BAS-loppuinen tiedosto (.GFA), GFA:n 
                     
         muistissa oleva ohjelma häviää
                     
Save,A = tallenna .LST-loppuiseksi ASCII-tiedostoksi
                     
Merge  = yhdistä .LST-loppuinen tiedosto editorissa jo olevaan koodiin
                     
         kohdistimesta lähtien
                     
Quit   = poistu GFA-ohjelmasta
                     
Llist  = tulostaa ohjelman kirjoittimella, voidaan keskeyttää 
                     
         katkaisemalla kirjoittimesta virta ja odottamalla noin 30 sek
                     
New    = tyhjennä editori, poistaa ohjelman GFA:n muistista
                     
                     
                     
Block  = lohkolle tehdään jokin seuraavista, ylemmälle komentoriville 
                     
ilmestyy:
                     
                     
                     
"C"opy "M"ove "W"rite "L"ist "S"tart "E"nd "^D"el "H"ide
                     
                     
                     
Komento käynnistyy hiirinuolen näpäytyksellä tai lainausmerkkien välissä 
                     
olevalla kirjaimella, ^D = Control alas plus D-kirjain
                     
                     
                     
     C  = kopioi lohko siihen kohtaa ohjelmma jossa kohdistin on
                     
     M  = siirrä lohko kohdistimen osoittamaan paikkaa
                     
     W  = tallenna lohko .LST-loppuiseksi tiedostoksi
                     
     L  = tulosta lohko kirjoittimella
                     
     S  = vie kohdistin lohkon alkuun
                     
     E  = vie kohdistin lohkon loppuun
                     
     ^D = tuhoa lohko
                     
     H  = poista lohkon tummennus
                     
                     
                     
Blk Sta = aloitetaan lohko kohdistimesta
                     
Blk End = lohko päättyy kohdistinta edeltävään merkkiin, valittu alue 
                     
          tummentuu
                     
                     
                     
Replace = Find:     (etsi) - Replace:       (korvaa)
                     
Ylemmälle   komentoriville  ilmestyy  FIND-rivi ja  sille kirjoitetaan 
                     
korvattava  merkkijono. Tämän  jälkeen alemmalle  komentoriville  
                     
ilmestyy  REPLACE-rivi, jolle  kirjoitetaan korvaava merkkijono ja 
                     
etsintä aloitetaan Return:lla. Kun  etsitty  merkkijono  löytyy niin 
                     
se  voidaan  korvata  komennolla Control ja R.
                     
                     
                     
Find    = etsi
                     
Komentoriville  vaihtuu  FIND-rivi,jolle  kirjoitetaan  enintään   60 
                     
merkkiä pitkä merkkijono,joka halutaan etsiä ohjelmasta.
                     
Kun merkkijono on kirjoitettu ja etsintä käynnistetty Return:lla  niin 
                     
kohdistin  siirtyy sen rivin alkuun,jolta kyseinen  merkkijono  löytyy 
                     
tai   ohjelman   loppuun  jos  merkkijonoa  ei   löydy.Merkkijono   on 
                     
kirjoitettava  täsmälleen  samassa muodossa isot ja  pienet  kirjaimet 
                     
huomioiden.
                     
Etsintä  alkaa aina kohdistimesta alaspäin,joten on hyvä tapa  siirtää 
                     
kohdistin  ohjelman  alkuun ennen  etsinnän  aloittamista.Kun  etsitty 
                     
merkkijono löytyy niin etsintää voi jatkaa Control ja F-komennolla.
                     
Etsintä voidaan keskeyttää ESC tai Return:lla.
                     
                     
                     
Pg up   = kohdistin siirtyy edellisen sivun	alkuun
                     
Pg down = kohdistin siirtyy seuraavan sivun	alkuun
                     
                     
                     
Seuraava vaihtaa kahden välillä:
                     
Insert  = väliin lisäämistila Overwrite = kirjoitetaan päälle
                     
Älä sotke tätä Insertiä näppäimistön Insert-näppäimeen
                     
                     
                     
Direct  = komkentoruutu, jossa esim. komentoja voi ajaa ilman ohjelmaa, 
                     
tunnuksena on D>(kohdistin), pois pääsee painamalla Esc ja Return
                     
Flip    = ohjelmaruutu, paluu jotain näppäintä painamalla tai hiiren 
                     
          vasemmalla näppäimellä
                     
                     
                     
Run     = aja ohjelma
                     
Test    = testaa ohjelma
                     
                     
                     
Editorilla työstetään ohjelmaa. Editori on tyypillinen ns. ruutueditori 
                     
eli  kohdistinta  voi siirrellä ruudun  alueella  näkyvässä  tekstissä 
                     
vapaasti.
                     
                     
                     
                     
                     
Kohdistimen ohjaus
                     
                     
                     
Kohdistinta  on  mahdollista siirrellä aina hiirellä ja sen lisäksi 
                     
näppäimillä.
                     
                     
                     
Nuoli vasemalla = siirtää kohdistinta merkin verran vasemmalle.
                     
Nuoli oikealle = siirtää kohdistinta merkin verran oikealle.
                     
Control ja nuoli oikealle = siirtää kohdistimen rivin loppuun.
                     
Control ja nuoli vasemalle = siirtää kohdistimen rivin alkuun.
                     
                     
                     
Tab = siirtää kohdistinta yhden tabulaattorin välin oikealle.
                     
Control ja Tab = siirtää kohdistinta yhden tabulaattorin välin vasemmalle.
                     
                     
                     
Nuoli alas tai Return = siirtää kohdistimen seuraavan rivin alkuun.
                     
Nuoli ylös = siirtää kohdistimen edellisen rivin alkuun.
                     
                     
                     
Control ja nuoli ylös tai F7 = vierittää seuraavan sivun näyttöön ja 
                     
asettaa kohdistimen tämän  sivun alkuun (valittavissa hiirellä).
                     
Control ja nuoli alas tai Shift ja F7 = vierittää edellisen sivun 
                     
näyttöön ja asettaa kohdistimen tämän  sivun alkuun (valittavissa 
                     
hiirellä).
                     
                     
                     
Clr/Home = siirtää kohdistimen sivun alkuun.
                     
Control ja Clr/Home = siirtää kohdistimen ohjelman alkuun.
                     
Control ja Z = siirtää kohdistimen ohjelman loppuun.
                     
                     
                     
Backpace = poistaa merkin kohdistimen vasemmalta puolelta.
                     
Delete = poistaa merkin kohdistimen alta.
                     
                     
                     
Insert = siirtää  kaikkia  rivejä  kohdistimen  osoittamasta  rivistä   
                     
         alkaen alaspäin ja tekee tilan uudelle riville.
                     
                     
                     
Undo = peruuttaa  riville  tehdyt muutokset mikäli  Return-näppäintä  
                     
       ei  ole vielä painettu.
                     
                     
                     
Control ja Delete = poistaa rivin, jolla kohdistin on (ei voi peruuttaa 
                     
Undo-näppäimellä).
                     
 
                     
                     
                     
Yhdelle  riville  voi kirjoittaa vain yhden basic-käskyn ja  rivi  voi 
                     
olla  enintään  255  merkkiä pitkä.Vastaavasti  yksi  rivi  voi  viedä 
                     
enintään 255 tavua muistia.
                     
                     
                     
Näyttöön  mahtuu kerralla vain 80 merkkiä ja jos kirjoitettaessa  tämä 
                     
ylittyy,niin merkit menevät vasemmalta piiloon.Rivi,jolla on yli 80
                     
merkkiä, näkyy  näytössä  siten, että  oikeassa päässä  riviä  on  nuoli 
                     
oikealle.
                     
                     
                     
Rivin   voi  päättää  Return:lla  tai  kohdistimen   ohjausnäppäimillä 
                     
(nuolinäppäimillä). Mikäli   rivillä  on   kielioppivirhe, tulee   siitä 
                     
virheilmoitus komentoriville.
                     
                     
                     
                     
                     
OHJELMARUUTU
                     
                     
                     
Editoriruudusta  voidaan siirtyä ohjelmaruutuun  kolmella  erilaisella 
                     
tavalla:
                     
                     
                     
-Käynnistämällä  ohjelma  painamalla  Shift ja  F10  tai  valitsemalla 
                     
hiirellä komentoriviltä RUN.
                     
                     
                     
(paluu editoriruutuun ohjelman päätyttyä Return:illa)
                     
                     
                     
-Painamalla F9 tai valitsemalla hiirellä FLIP.
                     
                     
                     
(paluu jotain näppäintä painamalla tai hiiren vasemmalla näppäimellä)
                     
                     
                     
-Painamalla  Esc  tai  Shift ja F9 tai  valitsemalla  hiirellä  DIRECT 
                     
jolloin komennot voi kirjoittaa ohjelmaruutuun (paluu ED-komennolla).
                     
                     
                     
Ohjelma  pysähtyy  kesken  suorituksen  painamalla  Control,Shift   ja 
                     
Alternate samanaikaisesti.
                     
                     
                     
ASIAAN
                     
                     
                     
Palataanpa GFA-editoriin, yllä on siis musta tekstipalkki, joka sisältää 
                     
editorikomennot ja sen alla tyhjä kuvaruutu. 
                     
Nyt voit kokeilla ensimmäistä käskyäsi, kirjoita
                     
                     
                     
print "Hei GFA:n opiskelija!" 
                     
                     
                     
ja paina Return, jolloin tulkki tarkistaa kirjoittamasi ja jos kaikki 
                     
on oikein kohdistin siirtyy seuraavalle riville. 
                     
Valitse nyt komentopalkin oikeasta kulmasta Run tai paina Shift ja F10.
                     
GFA ajaa komennon niin nopeasti, että kuvaruudun vasempaan yläkulmaan 
                     
ilmestyy tuo tekstisi ja saman tien kuvaruudun keskelle  ilmestyy 
                     
dialog boxiin ilmoitus ohjelman päättymisestä.
                     
                     
                     
Tällaista yhtä komentoriviä ei voi vielä kutsua ohjelmaksi. Se ei ala 
                     
eikä pääty mitenkään.
                     
                     
                     
Varsinainen ohjelma koostuu tietyistä osista.
                     
                     
                     
                       ! REM = remarks, merkitylle riville voi 
                     
                       ! kirjoittaa selvennyksiä ohjelmasta
                     
@Paaohjelma            ! Ohjelmalla täytyy olla alku ja nimi, huomaa
                     
                       ! että varsinaiseen ohjelmakoodiin ei voi 
                     
                       ! kirjoittaa skandeja
                     
komento                ! käsky mitä pääohjelma tekee
                     
       @Aliohjelma     ! aliohjelma
                     
       komento         ! käsky mitä aliohjelma tekee
                     
       Return          ! ohjelmalohkot merkitään päättyviksi Returnilla
                     
lopetuskomento         ! ohjelma lopetetaan usein johonkin lopetuskäskyyn
                     
                       ! joka pyytää käyttäjää lopettamaan ohjelman
                     
Return                 ! ohjelmalohko, nyt pääohjelma, lopetetaan 
                     
                       ! Returnilla
                     
                     
                     
Sitten esimerkkinä varsinainen ohjelma, jota sopii tutkia: 
                     
                     
                     
REM ******************************************************************
                     
REM rivi on tarkoitettu ohjelmoijalle muistiinpanoksi, sitä ei suoriteta.
                     
REM
                     
@Paaohjelma 
                     
REM
                     
PROCEDURE paaohjelma
                     
       @Aliohjelma
                     
       REM seuraavaksi aliohjelmakutsun jälkeen ohjelman suoritus
                     
       REM palaa tänne... 
                     
       @GRAFFITI ! JA SUORITTAA SEURAAVAN ALIOHJELMAN NIMELTÄÄN GRAFFITI.
                     
       REM
                     
RETURN
                     
REM
                     
REM
                     
PROCEDURE aliohjelma
                     
 REM suorittaa tuon printtauskäskyn kuvaruudulle
                     
     print "Hei GFA:n opiskelija!" 
                     
 REM jokainen aliohjelma eli proseduuri päättyy RETURN-komentoon
                     
 REM jolloin se palaa pääohjelmaan    
                     
RETURN
                     
REM
                     
REM
                     
PROCEDURE graffiti
                     
     CLS 
                     
     PRINT " GRAFIIKAN TULOSTUS GFA BASICILLA"
                     
     t=TIMER
                     
     REM monimutkaisia laskutoimituksia voi tehdä esim. samalla kun
                     
     rem antaa pisteelle X- ja Y- koordinaatit, pilkun jälkeen oleva
                     
     rem ykkönen sytyttää pikselin, nolla sen tilalla sammuttaa...
                     
     rem  
                     
     FOR i&=1 TO 2700
                     
          PSET (i&/36*COSQ(i&*1.8))+320,(i&/36*SINQ(i&*1.8))+120,1
                     
     NEXT i&
                     
     REM
                     
     t2=TIMER
                     
     PRINT AT(10,18);" kesti ";(t2-t)/200;" sek"
                     
     PRINT "paina HIIREN nappia";
                     
     PRINT " niin pääset pois"
                     
     REPEAT
                     
     UNTIL MOUSEK
                     
CLS
                     
RETURN
                     
REM********************************************************************
                     
                     
                     
                     
                     
                     
                     


Takaisin

(C) Marko, Suomen Atari-sivut / ArkiSTo 2003