Järjestelmäohjelmoinnin alkeiskurssi - Osa 6: Loppuyhteenveto HtmlSaku #20, 18.1.1997

Sami Klemola


O hjelmointikurssimme on saapunut tiensä päähän. Tämä on viimeinen osa. Otan käsittelyyn asiat, jotka olen aikaisemmissa osissa lykännyt, ja päätän kaikki päät. Artikkelini ovat aina olleet yli 10 kilotavun mittaisia, mutta tämä viimeinen juttuni tekee poikkeuksen. Käyn vain läpi nopeasti asiat, jotka ovat jääneet roikkumaan. Aiemmin mainitsemani laiteohjaimen tekeminen ei kuulu alkeiskurssin piiriin, vaan se jää edistyneen järjestelmäohjelmoinnin kurssin asiaksi. Sellaista tosin ei näillä näkymillä ole tulossa.

Kirjaisimet

K urssin kolmososassa sivusin ikkunoita käsitellessäni kirjasimia. Nyt on vuorossa hieman lähempi tutustuminen aiheeseen. Kirjasindatahan säilytetään Fonts:-hakemistossa, joka tavallisesti on SYS:Fonts. Hakemistossa on jokaista kirjasinta varten alihakemisto, jossa omissa tiedostoissaan sijaitsee raaka kirjasindata. Päähakemistossa on jokaista kirjasinta varten tiedosto, jossa se kuvaillaan.

Kirjasimia on kahdentyyppisiä, kiinteälevyisiä ja proportionaalisia. Järjestelmä käyttää useimpiin tarkoituksiin kiinteälevyisiä kirjasimia, mutta omat ohjelmat voivat hyödyntää kirjasimia, joissa kirjaimet ovat erilevyisiä. Levyltä kirjasimia voi ladata diskfont.libraryn funktioilla sekä tiedustella, millaisia kirjasimia on saatavilla.

Muistissa olevan kirjasimen voi avata graphics.libraryn OpenFont()-funktiolla. Se asetetaan käyttöön funktiolla SetFont() ja suljetaan lopuksi funktiolla CloseFont(). Jos käytät levyllä olevaa kirjasinta esimerkiksi ikkunassa, se pitää avata ensin OpenDiskFont():lla ennen kuin ikkuna voidaan avata.

Hakemistot

E dellisestä osasta jäivät yli hakemistot. Niiden käsittely on tehokasta ja helppoa. Tässä yhteenveto dos.libraryn hakemistofunktioista:


lock = CreateDir("<nimi>")
Luo nykyiseen hakemistoon alihakemiston, jonka nimi annetaan parametrinä. Palauttaa lukon uuteen hakemistoon.


old = CurrentDir(lock)
Asettaa parametrinä annettuun lukkoon liittyvän hakemiston nykyiseksi hakemistoksi (CD). Palauttaa edellisen nykyisen hakemiston lukon. Jos se on systeemin CD, pistä lukko talteen ja palauta se CD:ksi ennen poistumista ohjelmasta. Muuten tulee outoja ilmiöitä, kun ruudulla lukee muuta ja CD onkin ihan toisaalla. Kutsu vain lopuksi CurrentDir():iä sen ensimmäisellä kerralla palauttama osoite.


plock = ParentDir(lock)
Parametrinä annetaan tiedoston tai hakemiston lukko ja takaisin saadaan lukko sen äitihakemistoon (parent). Jos tätä funktiota kutsuu juurella, saa nollan. Nollalukko tarkoittaa käytännössä kaikkien asemien äitiä, sitä asemaa, jolta kone on bootattu. Nolla on siis - toisin kuin monessa muussa - hyväksyttävä arvo lukolle.


GetCurrentDirName(buffer,length)
Varaa puskuri ja anna sen osoite ja pituus parametreinä. Kutsun jälkeen puskurista löytyy nykyisen hakemiston nimi. Lukkoa ei siis tarvita tätä kutsua käytettäessä. Hakemiston nimi kopioidaan prosessin CLI-struktuurista. Jos sitä ei ole, kutsu ei toimi.


lock = GetProgramDir()
Palauttaa lukon hakemistoon, josta ohjelmakoodi ladattiin. Tämän funktion avulla voit löytää ohjelman yhteydessä sijaitsevan asetustiedoston tai vastaavan. Anna lukko CurrentDir():lle, niin voit avata tiedostoja ohjelmahakemistosta. GetProgramDir():n palauttamaa lukkoa ei tule avata. Vastaava SetProgramDir()-funktio on olemassa. Se asettaa ohjelman lukon.


lock = Lock(name,mode)
Lukitsee tiedoston tai hakemiston. Anna parametrinä kohteen nimi ja halutun lukon moodi. Moodeja on kaksi, jaettu ja poissulkeva.


dlock = DupLock(lock)
Kahdentaa annetun lukon. Saat siis toisen lukon samaan kohteeseen. Kumpikin pitää lopuksi vapauttaa. Alkuperäisen lukon täytyy olla jaettu (shared). DupLockFromFH() antaa jaetun lukon tiedoston kahvasta.


UnLock(lock)
Avaa lukon. Vapauttaa lukitun tiedoston tai hakemiston.

Loppusanat

K as niin. Siinä se. Kurssi päättyy tähän. Lisätietoa ja lisää ohjelmointioppia saat autodocs-tiedostoista ja ROM Kernel Reference -kirjoista. Bokseista saat paljon lähdekoodia opiskeltavaksi. Minä kiitän seurasta ja toivotan kaikille näkemiin.


HtmlSaku numero 20, © Copyright 1993-1997 Suomen Amiga-käyttäjät ry.