GDOS.PRG ja ASSIGN.SYS

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)

Takaisin

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