Amiga 4 perehdyttää lukijan Execiin, Amigan käyttöjärjestelmän perustaan. Execin ja sen rutiinien toiminnan tunteminen on välttämätöntä kaikkea Amigan ohjelmointia ajatellen, koska moniajo, laite-IO, kirjastot ja graafinen käyttäjälityntä rakentuvat kaikki kokonaan Execin varaan.
Kirja edellyttää, että lukija tuntee 68000-prosessoriperheen assembler-kielen, muttei edellytä aikaisempaa tietoa Amigan assembler-ohjelmoinnista.
Kirjan mukana seuraavalla levykkeellä on assembler-kääntäjä ja linkkeri sekä muutamia muita apuohjelmia. Kirjan jokainen luku sisältää vähintään yhden aiheeseen liittyvän esimerkin, jotka on lukemisen helpottamiseksi listattu myös kirjassa.
Table of Contents |
Johdanto | 9 |
|
Exec | 11 |
Execin tehtävät | 12 |
Koneen alustus | 12 |
ExecBase struktuuri | 13 |
Sekalaisia Exec-rutiineja | 15 |
|
Kirjastot | 17 |
Ajoaikaiset kirjastot | 18 |
Ajoaikaisten kirjastojen rakenne |
| 19 |
Kirjastojen avaaminen ja sulkeminen | 20 |
Kirjastorutiinien kutsuminen | 22 |
Rutiinien korvaaminen | 24 |
Ajoaikaisen kirjaston luominen | 25 |
Välttämättömät kirjastorutiinit |
| 26 |
| 26 |
Tarpeellisia struktuureja |
| 34 |
Kirjastoihin liittyviä rutiineja | 36 |
|
Listat ja jonot | 37 |
Listojen rakenne | 38 |
Jonot | 39 |
Listojen käsittely | 39 |
Alkioiden etsiminen | 41 |
Tyhjät listat | 42 |
Listoihin ja jonoihin liittyvät struktuurit | 42 |
Listojen käsittelyssä hyödyllisiä rutiineja | 44 |
|
Viestit ja portit | 45 |
Viestit | 46 |
Viestiportit | 46 |
| 48 |
| 48 |
Viestien odottaminen | 51 |
Viestien lähettäminen ja niihin vastaaminen | 52 |
| 53 |
Viesteihin liittyviä rutiineja | 59 |
|
Muistinhallinta | 61 |
Execin iso urakka | 52 |
Listoja tarvitaan | 62 |
Varaaminen ja vapauttaminen | 63 |
Muistityypit | 64 |
Omat muistilistat | 66 |
Muistin kopioiminen | 71 |
AllocEntry | 71 |
Muistinhallintaan liittyvät struktuurit | 76 |
Hyödyllisiä rutiineja | 76 |
|
Taskit ja moniajo | 79 |
Ajan jakoa | 80 |
Taskien tilat | 80 |
Prioriteettien merkitys | 81 |
Odottaminen | 83 |
Moniajon estäminen | 84 |
Taskien luominen | 84 |
Taskien päättyminen | 88 |
Prosessit | 89 |
Prosessien käynnistäminen |
| 89 |
Taskeihin ja miniajoon liittyviä rutiineja | 93 |
|
Keskeytykset | 95 |
Keskeytysten toimintaa | 96 |
Tuttua juttua | 97 |
Kaksi pääryhmää | 98 |
| 101 |
| 103 |
Lupa tarpeen | 107 |
Interrupt-struktuuri | 109 |
Keskeytyksiin liittyviä rutiineja | 109 |
|
IO-Laitteet | 111 |
Tavallisimpia IO-laitteita | 112 |
IO-komennot | 113 |
IORequest-struktuuri | 114 |
IORequest-struktuurin luominen |
| 115 |
IO-laitteen avaaminen | 116 |
Komentojen antaminen | 117 |
| 118 |
| 118 |
| 119 |
| 120 |
Komennon suorituksen päättyminen | 121 |
| 121 |
| 121 |
Pysäyttäminen ja käynnistäminen | 121 |
Komennon keskeyttäminen | 122 |
| 122 |
Perus-IO-komennot | 122 |
Ohjaamiseen tarvittavia rutiineja | 124 |
|
Audio device | 125 |
Äänen tuotanto | 126 |
| 126 |
Kovon ominaisuudet | 127 |
| 128 |
| 131 |
| 131 |
| 132 |
Käyttöjärjestelmän palvelut | 133 |
Äänikomentojen käyttö | 134 |
| 135 |
Esimerkkejä | 136 |
| 140 |
|
Narrator device | 153 |
Translator-kirjasto | 154 |
Narratorin avaaminen ja käyttö | 155 |
| 156 |
| 156 |
Äännemerkit | 157 |
Sano se suomeksi | 159 |
|
Serial device | 165 |
Serial devicen avaaminen | 166 |
Lisää nopeutta | 167 |
IORequest-struktuuri | 167 |
| 169 |
Query-komento | 170 |
Esimerkkejä | 171 |
|
Timer device | 181 |
Kaksi yksikköä | 182 |
IORequest-struktuuri | 183 |
Komennot | 184 |
Timer-rutiinit | 184 |
Timer-esimerkki | 186 |
|
Trackdisk device | 193 |
Levyasemat | 194 |
Laajennettu IORequest-struktuuri | 195 |
Trackdiskin avaaminen | 196 |
IO-komennot | 197 |
| 200 |
| 200 |
MakeBoot-esimerkki | 201 |
|
Hakemisto | 210 |