Obligement - L'Amiga au maximum

Mardi 20 février 2018 - 14:42  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

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


Trucs et astuces

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


Glossaire

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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


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 "offsets" qui, à partir de l'adresse de base d'une bibliothèque ou d'un device, 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 devices en 1.2 ou 1.3 (asl.library, gadtools.library, batclock.resource, etc.). Il s'agit en effet de bibliothèques ou devices 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

RKRM

É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

RKRM

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 :

RKRM
RKRM

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.


[Retour en haut] / [Retour aux articles]