Tässä jutussa kerrotaan joidenkin grafiikkaa ja/tai eri kirjasin-
tyylejä käyttävien ohjelmien mukana tulevasta ohjelmasta GDOS.PRG
sekä sen käyttämästä tiedostosta ASSIGN.SYS. ST:tä käsittelevien
kirjojen ja lehtien esitykset graafisen käyttäjäympäristön eri osien
tehtävistä poikkeavat hieman toisistaan. Niissä on myös puutteita
ja suoranaisia virheitäkin. Osittain tilanne johtuu siitä että mitään
virallista dokumentaatiota GDOS:sta ja laiteohjaimista ei ole toistai-
seksi saatavilla. Tämä esitys pyrkii olemaan mahdollisimman johdonmu-
kainen ja paikkansapitävä kooste saatavilla olevasta informaatiosta.
Graafisten laitteiden ohjauksesta GEM:ssä
-----------------------------------------
GEM (Graphics Environment Manager) tekee mahdolliseksi yhdenmukaisten
graafisten syöttö- ja tulostuspalveluiden tarjoamisen ohjelmoijalle
samaan tapaan kuin TOS (Tramiel Operating System / The Operating
System) tarjoaa yhdenmukaisia käyttöjärjestelmäpalveluita.
Graafisten tulostuslaitteiden suuret erot vaikeuttavat tilannetta:
näytön resoluutio ja värien määrä vaihtelee, teksti voidaan tulostaa
merkkigeneraattorin avulla tai bittikarttaa käyttäen. ST:n näyttö on
bittikarttapohjainen, mikä tekee ST:stä hyvin joustavan mutta hitaamman
tekstitulostuksessa. Muut tulostuslaitteet kuten kirjoittimet, piir-
turit ja kamerat, ovat vieläkin vaihtelevampia ominaisuuksiltaan.
Kehitys kehittyy. Vaikka suuri erottelukyky (High Resolution) ST:ssä
on hyvinkin tarkka, ei se ole aivan riittävä DTP-ohjelmille (Desktop
Publishing, julkaisuohjelmat) puhumattakaan pikkutarkasta sävykuvien
toistosta. Suurtarkkuusnäytöt ovat tulossa. DR (Digital Research)
on ottanut tämän huomioon ja toteuttanut GEM:n siten, että sitä voidaan
käyttää pitkällä tulevaisuudessakin.
GEM tukee kahta koordinaattijärjestelmää, NDC:tä (Normalized Device
Coordinates) ja RC:tä (Raster Coordinates). NDC-järjestelmän origo
(0,0) on vasemmassa alakulmassa. Oikean yläkulman koordinaatit ovat
(32767,32767). RC-järjestelmän origo on vasemmassa yläkulmassa. ST:n
näytön oikean alakulman koordinaatit ovat resoluutiosta riippuen
(639,399), (639,199) tai (319,199).
NDC-koordinaatit ovat laite- ja resoluutioriippumattomia. Nämä yleis-
pätevät koordinaatit muunnetaan käytössä olevalle tulostuslaitteelle
sopiviksi rasterikoordinaateiksi. Jokaista erottelukykyä varten on
oma muunnoksensa. Muunnosohjelma saa tämän tiedon ohjelmalta, jota
kutsutaan Device Driveriksi (oheislaitteen ajuriksi). Lisäksi ajuri
huolehtii mm. eri kirjasintyylien (fonttien) käsittelystä. Jokaisella
oheislaitteella on oma ajurinsa, jonka kautta tapahtuu kaikki tulostus
ko. laitteelle. Ajureiden muodostamaa kokonaisuutta kutsutaan GIOS:ksi
(Graphic Input/Output System). ST:n näytön ajurit ovat nykyään pysyvästi
ROM:ssa.
GDOS (Graphic Device Operating System) on se osa GEM:ä, joka lataa
tarvittavat ajurit muistiin. Se tekee myös NDC->RC -muunnoksen ja antaa
tuen fonttien sekä metatiedostojen käsittelyyn (metatiedosto on stan-
dardoitu tapa siirtää grafiikkaa sovellukselta toiselle GEM:ssä). GDOS
ladataan koneen käynnistyksen yhteydessä RAM:in AUTO-kansiosta. GDOS:a
ei myydä erikseen, se tulee kuitenkin monien ohjelmien mukana. Tällöin
seuraa myös ohjelman käyttämä erityinen ASSIGN.SYS-tiedosto sekä mah-
dollisesti kokoelma erilaisia fontteja sisältäviä .FNT-tiedostoja sekä
ajureita (juuri nämä on lueteltu ASSIGN.SYSissä). Sovellusohjelma saa
graafisen työaseman avauskutsun v_openvwk (open virtual workstation:
näyttö on virtuaalinen työasema, koska se on jaettu Desktopin, GEM-
sovelluksen sekä Desk Accessoryjen kanssa) tai v_openwk (open workstation:
kaikki muut laitteet) parametrina olevassa taulukossa tarvittavat tiedot
työaseman graafisista kyvyistä.
Kun Atari julkisti ST-tietokoneensa, siihen ei valitettavasti sisältynyt
GDOS:a. Se saattoi johtua halusta säästää muistia, erimielisyyksistä
DR:n kanssa tai muista syistä; varmaa tietoa asiasta ei ole. Tämä mer-
kitsi sitä, ettei ollut mitään keinoa käsitellä erilaisia oheislaite-
ajureita. Ongelma kierrettiin sijoittamalla ajurit kolmea eri erotte-
lukykyä varten ROM:iin ja jättämällä kirjoittimien (merkkipohjaisten)
ajurien tekeminen ohjelmistokehittäjien harteille. Myöhemmin Atari
toteutti GDOS:n TSR (Terminate-and-Stay-Resident) -ohjelmana. Tällä
hetkellä sen uusin versio on 1.1. USA:ssa Codehead Software niminen
yritys myy omaa versiotaan GDOS:sta, sen nimi on G+PLUS. Se on kuulemma
nopeampi kuin alkuperäinen ja antaa vaihtaa ASSIGN.SYS-tiedostoa ilman,
että konetta tarvitsee käynnistää uudelleen.
ASSIGN.SYS
----------
ASSIGN.SYS on tavallinen ASCII-tekstitiedosto. Sen on sijaittava
käynnistyslevyn päähakemistossa (se ei siis saa olla kansiossa).
ASSIGN.SYS:stä käy ilmi mitä ajureita on käytettävissä, mitä kirjasin-
tyyppejä on eri ajureita varten ja mistä nämä löytyvät. Ajurit ja fontit
sijaitsevat kukin omissa tiedostoissaan ja niillä pitää olla sama hake-
mistopolku (Pathname) eli niiden pitää olla samassa hakemistossa (Folder,
Directory). Kaikilla ASSIGN.SYS:illä on samanlainen perusrakenne. Isojen
ja pienten kirjainten välillä ei tehdä eroa. Puolipisteen jälkeen riville
kirjoitettu teksti tulkitaan kommentiksi kuten joissakin assemblereissa.
ASSIGN.SYS:n ensimmäinen rivi voi olla esimerkiksi:
path = c:\gemsys
Tämä rivi kertoo GDOS:lle mistä ajurit ja fontit löytyvät. Esimerkissä
ne löytyvät C-levyaseman kansiosta GEMSYS. Path-rivin pitää olla
ensimmäisenä tiedostossa. Polun maksimipituus on 64 merkkiä. Seuraavaksi
ilmoitetaan käytettävissä olevat ajurit numerojärjestyksessä fontteineen:
01p screen.sys ; default
02p screen.sys ; low res driver
atss10lo.fnt
atss12lo.fnt
atss14lo.fnt
21 laser.sys ; laser printer
atss10ls.fnt
atss12ls.fnt
31r metafile.sys
Ensiksi GDOS:lle kerrotaan, että laitteen 01 ajuri on "screen.sys".
Toiseksi ilmenee, että ajuri on pysyvästi asennettu ("p" = permanent,
ROM:ssa). Kolmanneksi ajurille ei ole lisäfontteja, koska niitä ei ole
lueteltu seuraavilla riveillä. Esimerkin "default" (=oletus) selitetään
tässä tekstissä myöhemmin.
Seuraavaksi näemme, että laitteen 02 ajuri on myös "screen.sys" ja sehän
on asennettu pysyvästi. Numero 02 on varattu 320x200 erottelukyvyn aju-
rille (03 = 640x200, 04 = 640x400). Esimerkissämme 320x200 erottelukyvyn
ajurille on kolme fonttia.
Atari suosittaa seuraavanlaista käytäntöä fonttien nimeämisessä:
merkit esim. sisältö
1-2 at AT, aina ATarin fontti
3-4 ss kirjasintyyppi, tässä swiSS (Helvetica)
5-6 10 kirjasinkoko pisteinä, tässä siis 10
7-8 lo oheislaitetyyppi, tässä LOw resolution
Kun ohjelma käyttää VDI-funktiota vst_load_fonts, kaikki kolme fonttia
ladataan muistiin ja palautuva arvo 3 kertoo ohjelmalle, että käy-
tettävissä on kolme fonttia.
Seuraavaksi esimerkissämme löytyy oheislaite numero 21. Nimestä selviää
että kyseessä on jonkinlainen laserkirjoitin. Numeron yhteydessä ei ole
kirjainta "p", joten ajuri pitää lukea levyltä tarvittaessa. Kirjoitti-
melle on kaksi fonttia.
Viimeisenä on metafile-ajuri numero 31. Metafile on .GEM-päätteinen
levytiedosto, johon voidaan tulostaa sekä grafiikkaa että tekstiä ja
ottaa se käyttöön tarvittaessa. Sen tunnistenumeron perässä on "r"
(=resident), joka tarkoittaa, että se pitää ladata pääohjelman käyn-
nistyksen yhteydessä ja sen pitää pysyä muistissa ohjelman ajon ajan.
Kaikki GEM-ohjelmat eivät tarvitse metafile-ajuria, mutta jos ne tuot-
tavat tai käyttävät .GEM-loppuisia tiedostoja (Easy Draw, Timeworks DTP,
HyperChart jne.), tarvitsevat ne metafile-ajuria.
Sallitut ajurien numerot ovat
1 -10 näyttölaitteet
11-20 piirturit
21-30 kirjoittimet
31-40 metatiedostot
41-50 kamerat
51-60 grafiikkatabletit
Oletusajuri
-----------
Miksi Atari ei suosita ajurin 01 käyttöä? Se on monitoiminen, ei
mikään määrätty oheislaiteajuri vaan paremminkin oletusarvo (default
value), joka antaa aina oikean näyttöajurin ohjelman käyttöön.
Varsin näppärää, mutta fonttien kanssa tullee vaikeuksia, varsinkin jos
aikoo vaihtaa resoluutiota. Tästä syystä Atari ei suosita ohjelmien
tekijöille 01-oletusajuria. Kaikki eivät noudata tätä suositusta ja
niinpä 01:n kohdalta ASSIGN.SYS:ssä voi löytää ison kasan fontteja.
Älä poista niitä, koska ohjelma voi käyttää 01-ajuria ja tarvita näin
ollen ko. fontteja.
ASSIGN.SYS:n muuttaminen
------------------------
Koska ASSIGN.SYS on tavallinen ASCII-tekstitiedosto, sitä voi muuttaa
tavallisella tekstitoimittimella kuten 1STWORD (ei-WP -moodissa) tai
EMACS. Käytännössä muuntelussa on kuitenkin omat sudenkuoppansa.
Levykekoneen käyttäjä järjestää ohjelmansa siten, että sovellusohjelman
ajoon tarvittava konfigurointi ja installointi tehdään sen omalta käyn-
nistysdisketiltä. Kiintolevyn omistaja taas pyrkii yhdistämään nämä
käynnistystiedot yhteen C-levyasemalla olevaan ASSIGN.SYS:iin ja sijoit-
tamaan kaikki fontit ja ajurit samaan kansioon. Tässä on yksi syy miksi
muuttaa ASSIGN.SYS:siä. Toinen syy on se, että useat ohjelmat (kuten
Timeworks DTP) pystyvät käyttämään lisäfontteja. Teoriassa minkä tahansa
GDOS:a käyttävän ohjelman pitäisi kyetä samaan. Käytännössä kannattaa
kuitenkin varautua yllätyksiin.
Poikkeuksia:
------------
Easy Draw ei osaa löytää GEMSYS-kansiota kuin samalta levyltä missä
ASSIGN.SYS on.
Jotkut ohjelmat kuten CALLIGRAPHER käyttävät kaikkia muita paitsi SWISS
DUTCH-fontteja, joita taas muut ohjelmat ilman muuta käyttävät.
Jotkut ohjelmat (HyperChart) tyytyvät vain ja ainoastaan näihin kahteen
fonttiin eivätkä sitten suvaitse muita.
GEMSYS-kansiosta latautuvat vain ne fontit, jotka on lueteltu
ASSIGN.SYSissä.
Degas Elite ei siedä joitakin pienempiä kirjasinkokoja: Swissin alle
kymmenen pisteen fontti ei kelpaa kun taas vastaava Dutch käy.
Fonttien pitää todella olla suuruusjärjestyksessä: joistakin itse
tehdyistä fonteista saattaa erehtyä. Fonttieditorit ilmaisevat kir-
jainten suuruuden ja sallivat jopa niiden muuttamisen.
Timeworks DTP ei hyväksy numeroa 254 suurempia kirjasinlajin tunnuksia,
itse asiassa GEM sallii tunnukset aina 32767:ään asti; ongelman voi kier-
tää numeroimalla fontin fonttieditorilla pienemmäksi, tässä tapauksessa
pienemmäksi kuin 255.
Timeworks DTP voi käyttää korkeintaan seitsemää fonttia samanaikaisesti.
ASSIGN.SYS:n komentorivien jälkeen tulevat kommentit voivat myös aiheut-
taa ongelmia, joten jos mikään muu ei tehoa niin niiden poistaminen saat-
taa auttaa.
Lyhenteiden selityksiä
----------------------
GEM Graphics Environment Manager
VDI Virtual Device Interface
GDOS Graphic Device Operating System
GIOS Graphic Input/Output System
AES Application Environment Services
TOS Tramiel Operating System / The Operating System
GEMDOS Graphics Environment Manager Disc Operating System
BIOS Basic Input/Output System
XBIOS eXtended Basic Input/Output System
GEM GEM on Atarin graafinen käyttäjäliitäntä. GEM:ssä
on kaksi rutiinikirjastoa: VDI ja AES.
VDI VDI:ssä on kaikki olennaiset grafiikkafunktiot kuten
viivojen, ja ympyröiden piirto, alueen täyttö jne.
VDI koostuu GDOS:sta, GIOS:sta sekä metatiedostojen
käsittelyrutiineista.
GDOS GDOS sisältää kaikki laiteriippumattomat funktiot.
GIOS GIOS sisältää kaikki laiteriippuvat funktiot. Kaikki
graafiset funktiot ohjataan GDOS:n kautta GIOS:lle,
joka sitten ohjaa ko. oheislaitetta ajurin avulla.
Ohjelmoija ei siis käytä suoraan GIOS:a. GDOS lataa
tarvittavat ajurit muistiin.
AES AES sisältää ikkunoiden, ikonien, hiiren, valikoiden
sekä dialog boxien jne. käsittelyrutiinit.
TOS TOS on Atari ST:n käyttöjärjestelmä. TOS koostuu kolmesta
rutiinikirjastosta: GEMDOS:sta, BIOS:sta ja XBIOS:sta.
GEMDOS GEMDOS on TOS:n laiteriippumaton osa. GEMDOS:ssa on
funktioita, joiden avulla ohjelma voi mm. lukea
näppäimistöä, tulostaa kuvaruudulle ja kirjoittimelle
sekä käyttää muita liitäntöjä. Toinen tärkeä
funktioryhmä on tiedosto- ja levytoiminnot.
BIOS BIOS kuuluu TOS:n laiteriippuvaan osaan. Sen avulla GEMDOS
kommunikoi laitteiston kanssa. BIOS sisältää mm. syöttö-
ja tulostusfunktiot näppäimistölle, kuvaruudulle, sarja-
portille sekä levyasemille.
XBIOS XBIOS kuuluu myös TOS:n laiteriippuvaan osaan. Sen tehtävänä
on tukea Atari ST:n laitteiston erityispiirteitä kuten
näyttömuisti- ja väritoimintoja sekä oheispiirien ohjausta.
Kirjallisuutta
--------------
Richard Seel:
Programmer's Clinic Special GDOS and Assign.sys
STWorld November 1988
Sheldon Leemon:
COMPUTE!'s Technical Reference Guide: Atari ST Volume One: VDI
Compute! Publications, Inc.
Greensboro, North Caroline, USA 1987
ISBN 0-87455-093-9
Norbert Szczepanowski & Bernd Gunther:
Atari ST GEM Programmer's Reference
First Publishing Ltd
Berkshire, England 1986
ISBN 0948015-667
(Sama kuin Data Beckerin ja Abacuksen kirja)
Esa Matti Lippu (ja Jan Alanco)
|