Suivez-nous sur X
|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Livre : Amiga ROM Kernel Reference Manual: Includes and Autodocs (3e édition)
(Article écrit par Xavier Leclercq et extrait d'Amiga News - juin 1992)
|
|
Autant vous prévenir tout de suite. La lecture de cet article risque de frustrer les programmeurs ne possédant
pas la dernière version 37.175 du Kickstart de Commodore. Pour ceux-là, un seul remède pourra les soulager : se
procurer ce fameux Kickstart ! (disponible à achat d'un A500+ par exemple).
Un peu d'histoire
Mais avant d'aborder le vif du sujet, remontons un instant le cours du temps et arrêtons-nous
au début des années 1980. Un micro de l'époque possédait un interpréteur BASIC qui était disponible
dès l'allumage de la machine (ce qui, et en écrivant cela je pense aux premiers IBM, pouvait parfois
prendre plusieurs minutes...). Le débutant disposait d'un environnement directement exploitable
et la plupart du temps programmait en BASIC, sinon en langage machine...
Si l'utilisateur tapait "PRINT bonjour" la ligne était interprétée (comme le fait le CLI)
pour faire appel à la routine en langage machine du "PRINT" et cette routine appelait à
son tour une fonction du "kernel" (noyau) pour afficher les caractères "bonjour"
à l'écran. Le noyau ainsi que l'interpréteur se trouvaient évidemment en ROM. L'avantage
du noyau est simple à comprendre. Un programme en langage machine autre que BASIC peut à
son tour faire appel à cette fonction du noyau pour afficher plusieurs caractères ou lire
un fichier en provenance du lecteur de cassettes, etc. La seule difficulté était de connaître
l'emplacement du début de chaque fonction du noyau.
Deux branches
A partir de cette époque, l'arbre de la micro-informatique s'est divisé en deux ramifications
opposées. D'un côté la branche de la micro "libérée", c'est-à-dire des ordinateurs "ouverts"
où l'on peut envisager n'importe quel emploi de son ordinateur pour autant que ce soit réalisable,
et de l'autre, la branche des machines "fermées", machines dédiées, ou encore ordinateurs applicatifs.
- Dans la première branche se trouvait déjà les premiers micros des années 1980
et se trouve de nos jours l'Amiga (mais pour combien de temps encore ?).
- Dans la deuxième branche on peut trouver le Mac et d'autres environnements spécifiques (et
dans ce dernier cas la documentation technique est dans les mains des constructeurs et dans les
mains de privilégiés qui sont sélectionnés par les constructeurs eux-mêmes).
Ceci dit, revenons-en à l'Amiga et au noyau actuel qui se nomme ici l'exec.library. Comme vous le
savez, Commodore a fait évoluer le Kickstart. En ce qui concerne le Kickstart 1.2 ou 1.3 (v33 et v34),
je pense que cela ne servait pas à grand-chose d'acheter à grands frais les manuels du constructeur
qui sont disponibles chez n'importe qui (mais pas à n'importe quel prix...).
Par contre, parce qu'il n'existe à ma connaissance pas d'autres sources, ces manuels sont devenus
indispensables pour ceux qui désirent exploiter le nouveau Kickstart 37.175. Bien entendu,
il est toujours possible de programmer sous système 2.04 comme on le fait sous 1.3 ou 1.2 mais
cela devient presque un crime ! Je vais d'ailleurs tenter de vous le prouver.
Les manuels techniques
Les manuels techniques Amiga du constructeur Commodore sont les suivants :
- Amiga ROM Kernel Hardware Reference Manual.
- Amiga ROM Kernel Reference Manual: Libraries.
- Amiga ROM Kernel Reference Manual: Devices.
- Amiga ROM Kernel Reference Manual: Includes and Autodocs.
Je vais me contenter pour l'instant de vous parler de l'Amiga ROM Kernel Reference Manual: Includes and Autodocs
(3e édition).
Includes and Autodocs
Si vous ne devez en commander qu'un, je pense que le bon choix reste Includes and Autodocs.
Il s'agit d'une brique de 1003 pages (épaisseur de 3,8 cm et poids de 1,8 kg !) qui met à
nu votre Kickstart 37.175 vous en révélant tout (ou presque).
Je ne recommande pas ce manuel au débutant car il ne s'agit pas d'un manuel qui vous explique
comment programmer en langage machine ou en C.
D'abord, une mise en garde : les concepteurs de l'Amiga adorent le C et le système est bourré
de structures C (après tout, Unix a bien été lui aussi écrit en C). Donc sans les fameux includes <#?.h>
ou <#?.i>, il est pratiquement impensable de programmer correctement (ces fameux inclucles sont
repris en fin de manuel mais bon courage pour essayer de les taper dans leur totalité et sans
faute ! Les <includes.h> recouvrent à eux seuls 168 pages !).
Son contenu
Le contenu de Include and Autodocs est le suivant :
- Pages 16 à 458 : Libraries.
asl, commodities, cx_lib, diskfont, dos, exec, expansion, gadtools, graphics, icon,
iffparse, intuition, keymap, layers, mathieeedoubbas, mathieeedoutrans, mathieeesingbas,
mathieeesingtrans, mathtrans, rexxsyslib, translator, utility et workbench (#?.library).
- Pages 459 à 536 : Devices.
audio, clipboard, console, gameport, input, keyboard, narrator, parallel, printer,
serial, timer, trackdisk (#?.devices).
Attention : c'est étrange mais pour plus de renseignements à propos du ramdrive.device ou
encore du scsi.device, vous devez vous procurer les Amiga ROM Kernel Reference Manual Devices !
- Pages 547 à 566 : Resource.
battclock, battmen, cia, disk, filesystem, misc, potgo (#?.resource).
- Pages 567 à 588 : linker libraries.
amiga, debug (#?.library).
- Pages 589 à 898 : C includes files et Assembly includes files.
Clib, Devices, Dos, Graphics, Hardware, Libraries, Resources, Rexx, Utility, Workbench (#?.h) et (#?.i).
Tout au long du bouquin, chaque fonction est décrite : son nom, ses arguments d'appels, la valeur de
retour possible et éventuellement la description de bogues. A la fin de l'ouvrage se trouvent les
décalages ("offsets") qui, à partir de l'adresse de base d'une bibliothèque ou d'un périphérique logique, permettent l'adressage
des fonctions. Puis viennent la description de toutes les structures C et un index. Ces 200 dernières
pages sont donc des plus intéressantes.
Certains des noms que je cite dans ce sommaire sont inconnus dans la description que vous connaissez
des bibliothèques et périphériques logiques en 1.2 ou 1.3 (asl.library, gadtools.library, batclock.resource, etc.).
Il s'agit en effet de bibliothèques ou périphériques logiques n'existant pas du tout pour les anciennes ROM 1.2/1.3 !
L'asl.library
Prenons l'asl.library qui est une bibliothèque permettant d'afficher une fenêtre de requête de fichiers.
Vous programmez un éditeur de texte et vous avez besoin de demander à l'utilisateur de préciser
quel fichier il compte utiliser pour contenir sa prose. Il s'agit alors d'afficher un "filerequester"
qui présentera dans une fenêtre le contenu d'un répertoire d'une unité que l'utilisateur peut
sélectionner. En langage machine, pour obtenir le répertoire d'un disque,
il faut manipuler des informations telles que le "lock" d'un fichier, etc.
Bref, ce n'est pas vraiment simple. Par contre, à l'aide du Kickstart 37.175 et de l'asl.library,
il me faut 10 secondes montre en main pour créer la source qui affichera la fenêtre de requête de fichiers...
Démonstration
Évidemment, il nous faudra au départ vérifier que l'asl.library est disponible (et donc au minimum
le Kickstart 37.175 - il suffit d'ouvrir une version donnée avec l'OpenLibrary -552(a6)).
Dans ce cas, on exploite une bibliothèque nouvelle. Mais ce n'est pas pour autant que les anciennes
bibliothèques existant déjà en 1.3 n'ont pas évolué en 2.04. C'est absolument fabuleux de constater le
nombre de fonctions qui ont été ajoutées ! Je vais prendre comme référence La Bible de l'Amiga
dernière édition en ce qui concerne la ROM 1.3 pour que vous vous rendiez compte de l'accroissement
incroyable du nombre des fonctions :
- dos.library : 33 fonctions en ROM 1.3, 150 fonctions en 2.04.
- intuition.library : 66 fonctions en ROM 1.3, 110 fonctions en 2.04.
Sans compter le nombre de fonctions qui ont été réécrites pour essayer d'en chasser les bogues...
La dos.library justifie par sa seule présence la puissance de ce système 2.04.
C'est hallucinant de découvrir le nombre de nouvelles fonctions. La carte du multitâche
est ici jouée à 100%. On peut par exemple interdire l'accès à un enregistrement ou bien à un
groupe d'enregistrements et non plus à un fichier entier (c'est une fonction qui est reprise
dans certains langages comme le COBOL).
On peut réaliser une assignation par simple appel de fonction ou encore redéfinir l'invite de
commande ou aller rechercher une ligne encodée avec le CLI, changer de système de gestion de
fichier, changer la taille d'un fichier pour le troncaturer, etc.
C'est très puissant.
Vous êtes en droit de vous poser la question suivante : "En achetant les manuels techniques,
vais-je trouver tout ce qui est possible de connaître sur l'Amiga ?". La réponse est non.
Pourquoi ? La première observation est qu'il existe des fonctions réservées à l'usage exclusif
de Commodore. On peut quand même connaître leur nom en consultant la partie "offsets" à la fin du bouquin.
Exemple : la workbench.library
Ou encore les fonctions Exec schedule(), dispatch(), switch(), etc.
(manipulations de "tasks" par répartitions du temps système selon les priorités).
La deuxième observation est qu'il n'est pas décrit certains programmes système
qui sont présents à partir du Kickstart 37.175 et qui sont liés à l'initialisation du système...
Pourquoi ? Peut-être par peur des virus ? Pourtant ces routines existent bien et sont même
des structures résidentes : diag.init, alert.hook, rom.boot, etc.
Je vous propose quand même un petit programme C pour visualiser la structure de ces programmes
résidents :
Conclusion
Cet "Amiga ROM Kernel Reference Manual: Includes and Autodocs" est un manuel technique qui décrit
chaque fonction mais en donnant très rarement des exemples. Il est indispensable pour le programmeur
qui désire exploiter le Kickstart 37.175. Ce n'est pas un manuel d'apprentissage, ni un manuel pour
débutant et il est impératif d'avoir un minimum de bases en langage C pour l'aborder.
Nom : Amiga ROM Kernel Reference Manual: Includes and Autodocs (3e édition).
Auteur : Commodore.
Éditeur : Addison Wesley Publishing Company.
Genre : livre sur l'Amiga.
Date : 1991.
Prix : 39 $/490 FF.
|
|