Obligement - L'Amiga au maximum

Vendredi 19 avril 2024 - 06:47  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

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

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des 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,
ALL


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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


En pratique : Présentation et configuration d'ANAIIS
(Article écrit par Gilles Pelletier - mars 2009)


ANAIIS, est un acronyme pompeux qui signifierait en mauvais anglais "Another Native Amiga IO Interface Stack", soit une autre pile native interfaçant l'USB à quelques fonctions du système AmigaOS.

"Another" parce qu'il en existe d'autres comme Poseidon ou Sirion.
"Native" parce que elle a été réalisée en C, c'est du spécifique exec, pas du pompage Linux.
"Amiga" parce cette machine méritait bien ce genre de programme.
"Input/output", input parce que c'est pour une souris ou un clavier, output pour une imprimante.
"Interface" parce que j'avais besoin d'un autre I.
"Stack" parce que ce genre de programme s'appelle ainsi.

Anaiis est une autre écriture du prénom Anaïs, dérivé du prénom féminin Anne, et qui signifie "la grâce" en hébreu. Il y avait déjà Paula, Denise, Agnes (qui est devenu par la suite Agnus, Fat Lady, Fat Agnus, Super Fat Agnus) pour tenir compagnie au 68000, alors pourquoi pas une de plus...

USB, un port série universel

Depuis 1997, les ports série, parallèle et SCSI sont devenus obsolètes face au standard USB. USB, acronyme d'Universal Serial Bus, est un bus de liaison entre périphériques (devices) et ordinateur (host). L'objectif est de remplacer les interfaces série et parallèle de l'ordinateur et de concurrencer les interfaces disques.

Il permet en plus :
  • Le branchement et débranchement sans éteindre l'ordinateur.
  • La reconnaissance automatique des périphériques dès leur branchement.
  • La possibilité de brancher 127 périphériques.
  • L'alimentation des périphériques par un connecteur simple (4 fils).
Différentes vitesses peuvent cohabiter sur un même bus USB : 1,5 Mbps (Low-Speed pour clavier, souris, manette), 12 Mbps (Full-Speed pour modem, réseau, audio, vidéo non compressée, imprimante et toutes les applications nécessitant une garantie de bande passante). Dans sa version 2.0, l'USB autorise le Hi-Speed à 480 Mbps et rivalise avec d'autres types de connexion (FireWire, IDE et SCSI) comme la vidéo non compressée, le stockage (disque dur), les scanners... Il devient difficile de nos jours de trouver des périphériques pourvus d'une interface autre que l'USB (imprimante ou scanner). Autrement dit vous serez obligé d'utiliser l'USB si vous voulez continuer à survivre dans le monde de l'informatique. Des passerelles USB parallèle ou USB série existent, et permettent de continuer à utiliser de vieux périphériques sur un ordinateur dépourvu de port série ou parallèle.

USB et Amiga

Sur Amiga, Chris Hodges a eu la fantastique initiative de créer une pile USB fonctionnelle sous le nom de Poseidon. Grâce à sa conception modulaire, Poseidon et son interface Trident sont utilisable sur AmigaOS et MorphOS, avec les contrôleurs suivant : Highway (bus Zorro II), Subway (port horloge A1200), Pegasos (MorphOS), UHCI PCI de DCE sur platine G-Rex, Thylacine USB (bus Zorro II) et bien d'autres. Malheureusement, il est impossible de faire fonctionner Poseidon et Highway sur un Amiga de base avec un 68000 à 7,09 MHz. Ceci est dû à l'utilisation de structures non cadrées sur des adresses paires (le 68000 est incapable de lire ou d'écrire un mot de 16 ou 32 bits à une adresse impaire) et d'interruptions ajustées à la milliseconde (le 68000 de base est trop lent).

La carte Highway

C'est une carte Zorro II compacte et très propre, sur laquelle sont connectés quatre ports USB à travers un concentrateur intégré. Les quatre ports sont répartis sur deux connecteurs de fond d'ordinateur (attention différents des PC !). Cette carte est très ouverte : un module Norway peut s'insérer pour avoir une carte réseau, un module de ROM flash permet d'accueillir une image de ROM ou des programmes à charger pendant la phase de démarrage, un port horloge est aussi présent, pour une interface série rapide ou tout simplement brancher une carte Subway pour le développement. L'installation matérielle ne pose aucun problème.

La carte Subway

C'est une petite plaque entourée de plastique isolant sur laquelle sont connectés d'un côté quatre ports USB à travers un concentrateur intégré et de l'autre un connecteur pour port horloge. La puce qui gère le concentrateur est un uhc124, comme dans la carte Highway, mais gérée d'une autre façon. L'installation matérielle ne pose aucun problème, il suffit de connecter calmement les câbles et de suivre les conseils du site du constructeur www.e3b.de.

La programmation de l'uhc124

Les cartes Highway et Subway sont équipées d'une puce uhc124 de Transdimension. La façon dont sont implémentés les registres est secrète et appartient à E3B. La puce uhc124 permet de gérer 16 requêtes USB par transaction. Dans Highway, la puce est configurée pour effectuer des accès à partir d'une adresse de base (8 bits random access). Dans Subway, elle effectue des accès en séquence à partir de registres (8 bits sequential access).

Dans un premier temps, le programme détecte la carte Highway à partir de la bibliothèque expansion.library, ensuite Subway qui doit résider 0x00d80001 (port horloge standard du A1200) ou à une addresse fournie par l'utilisateur sur une carte tierce (manufacturer, product, offset) ou a une adresse fixe (address).

La pile ANAIIS

Une fois la liste de cartes établie, on détermine les périphériques connectés sur le concentrateur racine (root hub) de façon récursive, en allumant les ports un à un et en interrogeant le périphérique connecté.

Ensuite, une boucle infinie inspecte toutes les 10 millisecondes, l'état des portes (end point) IN connectées. Si un changement intervient sur un noeud (hub), en débranchement, le périphérique en question est retiré des listes, en branchement, un pilote (9,0,0) concentrateur, (3,1,2) souris et (3,1,1) clavier prend en compte immédiatement (sans chargement) le périphérique. Pour une souris, ou un clavier, les requêtes sont traduites en évènements Intuition (intuition events). Les jeux qui utilisent directement le matériel ne fonctionneront pas. Une interface ieee1284.device utilisera la porte OUT pour les imprimantes USB ou une imprimante classique connectée à un émulateur (USB to IEEE1284).

C'est peu mais c'est déjà pas mal. N'oublions pas que l'on s'adresse à des machines de plus de vingt ans, dont les concepteurs n'avaient même pas à l'idée de les faire durer autant.

Installation de la pile ANAIIS

Dans un premier temps, il faut s'assurer d'avoir au moins :
  • Un Amiga avec un 68000 à 7,09 MHz (ne fonctionne pas avec un PowerPC seul).
  • Un Kickstart 1.1 ou le dernier AmigaOS 4.x.
  • Une carte Highway ou une carte Subway.
  • 70 ko de mémoire de libre.
  • Un peu de patience.
Étape 1

Télécharger ANAIIS et copier les fichiers : aminet.net/package/driver/other/anaiis.

Sur Workbench 1.1 (Kickstart version 31) et Workbench 1.2 (Kickstart version 33)

L'interface graphique ne fonctionne pas, il faudra utiliser la commande en ligne usbprefs à la place.
Faire un peu de place sur la disquette en enlevant les polices de caractères (fonts) par exemple.
Copier usbprefs où l'on veut (si possible à côté de Preferences).
Copier usbstart et son icône dans sys:system
Copier usbstop et son icône dans sys:system
Copier usbreset et son icône dans sys:system

Sur Workbench 1.3 (Kickstart 34 et plus)

Copier anaiis où l'on veut (si possible à côté de Preferences dans sys:prefs).
Copier usbstart et son icône dans sys:system
Copier usbstop et son icône dans sys:system
Copier usbreset et son icône dans sys:system

ANAIIS

Sur AmigaOS 4.x (version 50 et plus)

Attention : certains fichiers ont les mêmes noms.
Effectuer une copie du système avant d'installer ANAIIS.
Pour un utilisateur basique, seuls usbstart et s:anaiis.prefs sont important ; usbstop et usbreset ne devraient jamais être activés.

Étape 2

Démarrer la pile en cliquant sur "usbstart". Brancher les périphériques. S'ils fonctionnent, tant mieux ! Sinon certains points sont à paramétrer. L'interface d'ANAIIS utilise pleinement Intuition, en allant un peu au-delà de ses limites, mais suffisante pour mettre en place quelques réglages. Pour les plus téméraires, il y a usbprefs en ligne de commande.

Si rien ne fonctionne, ouvrir l'icône "anaiis" et vérifier l'onglet "Hardware". Si c'est noté "dummy1" c'est mal parti (ze ugly). Si "Highway" ou "Subway" est écrit c'est bien (ze good), si rien n'est écrit ce n'est pas bien (ze bad). Pour une Highway, vérifier que l'item "auto detection" est en place dans l'onglet "Preferences" sous-onglet "System". Pour une Subway, si l'adresse du "clockport" (port horloge) n'est pas 0x00d80001, il faut savoir où on l'a branché, en connaissant l'adresse de base de la carte et son décalage ("offset").

adresse de base   : 0x00e90000
offset            : 0x00004000
adresse clockport : 0x00e94000

ANAIIS

Dans l'onglet "Preferences", sous-onglet "System", sélectionner l'item "Subway" avec le pseudo-bouton cyclique (on clique pour avancer, shift-click pour reculer) et saisir 0x00e94000 dans la zone "Param1". Ensuite, retourner à l'onglet "Hardware", cliquer sur "Close Stack" et fermer. Les paramètres sont sauvés dans s:anaiis.prefs, comme font la plupart des vieux programmes. Recommencer avec usbstart. Attention : si l'adresse est farfelue, le Guru peut très bien venir vous rendre une petite visite.

D'une manière moins brutale, on peut connaitre une carte par son identificateur de fabricant (manufacturer ID) et son identifiant de produit (product ID) et bien sûr le décalage du "clockport". Dans l'onglet "Preferences", sous-onglet "System", sélectionner l'item "Host" et saisir :

Param1 manufacturer 0x00000861
Param2 product      0x000000c8
Param3 offset       0x00004000

ANAIIS

Attention : si l'adresse est farfelue, le Guru peut très bien venir vous rendre une petite visite.

Étape 3

Si la pile fonctionne, il est recommandé de modifier la séquence de démarrage s:startup-sequence en ajoutant la commande suivante, si possible au début :

run >NIL: sys:system/usbstart >NIL:

Imprimante

Là aussi, pas de mystère, une seule imprimante est gérée pour l'instant. Cette limitation est surtout due au printer.device, pas à ANAIIS.

Copier ieee1284.device dans devs:.
Copier usbprint où l'on veut (c:...).
Ne pas oublier de cocher l'option "parallel device patch" dans l'onglet "Preferences", sous-onglet "Printer".

La face visible d'ANAIIS

Un fichier de localisation anaiis.catalog existe. Il faut le copier dans un répertoire catalog/français au même niveau que le programme ANAIIS en 1.3 et en dessous ou alors dans le système lui-même au-dessus. Mais c'est tellement mieux de conserver tous les textes en anglais !

Onglet "Hardware"

Montre les cartes gérant l'USB visibles dans le système.

Quantum
Un truc pas important qui peut perturber pas mal de choses.

Bouton "Reset"
Même chose que l'outil "usbreset".

Bouton "Close Stack"
Même chose que l'outil "usbstop".

ANAIIS

Onglet "Devices"

usbstat est mieux équipé que cet onglet.

Onglet "Preferences/System"

Param1,
Param2,
Param3 regarder "Installation de la pile ANAIIS", étape 2.

Quantum : pas toucher !
8:
9:
10: nominal
11:
12:

Spoof like usbsys.device
Si coché, usbsys.device et usbresource.library sont utilisés, sinon anaiis.device et anaiisresource.library sont présents.

Disable internal drivers
Si coché, seuls les noeuds (hubs) sont gérés, sinon ANAIIS gère les souris, claviers.

ANAIIS

Preferences/Mouse

Goofy mode : comme pour les snowboarders. :)
Si coché, la souris pour les gauchers, sinon c'est pour les droitiers.

Middle button
Si coché, les évènements pour le bouton du milieu sont générés, aucun sinon.

Wheel
Si coché, les codes 0x7a pour haut, 0x7b pour bas, 0x7c pour gauche, 0x7d pour droite sont générés comme évènements claviers (eh oui !), sinon rien.

Wheel OS4
Si coché, les évènements roulette spécifiques à AmigaOS 4.x sont générés.
Aucun effet sur les autres versions du système.

ANAIIS

Preferences/Keyboard

ColdReboot on Ctrl-Winl-Winr.
Si coché, il est possible de redémarrer le système avec la combinaison Ctrl+Winl+Winr sur le clavier USB, comme Ctrl+lamiga+ramiga (les doubleurs de ROM ne fonctionnent pas...).

Key repeat delay
Délai de répétition du clavier. Le délai en secondes avant répétition est affiché à droite, ce qui est rare sur Amiga...

Key repeat speed
Vitesse de répétition du clavier. Le délai en secondes entre deux émissions de caractères est affiché à droite.

ANAIIS

Preferences/HID

Cet onglet concerne la lowlevel.library. Deux colonnes à droite de chaque port indiquent son état. La présence d'une seule colonne indique l'absence de la lowlevel.library (ce qui est le cas ici avec le Workbench 1.3). Pour plus de détails consulter la documentation sur les fonctions GetKey() et ReadJoyPort(). L'utilisateur peut influer sur le comportement de ces deux fonctions en sélectionnant le mode à l'aide du bouton cyclique :

-- : laisser faire la lowlevel.library.
USB : le périphérique usb est pris en compte.
Merge : le périphérique usb et l'existant sont pris en compte.

Keyboard clavier

Port 0 port 0 (souris).
Port 1 port 1 (souris ou manette).
Port 2 port 2 (souris ou manette).
Port 3 port 3 (souris ou manette).

Le programme playHID prend en compte un joypad Thrustmaster et rend ses données dans le port 3. Jamais pu le tester dans un jeu, vu que la plupart tuent le système, or ANAIIS a un besoin vital d'exec.

ANAIIS

Preferences/Printer

Parallel device patch
Si coché, la fonction exec OpenDevice() est modifiée pour détourner tous les appels au "parallel.device" en "ieee1284.device". Dans Preferences (ou Prefs) vérifier que l'imprimante est bien de type parallèle, et que son pilote est compatible.

ANAIIS

About

Devinez !?

Debug

Pour l'utilisateur de base, merci de laisser Trace et Audit à 0, sinon le système risque d'être très perturbé. Le programme USBTrace est nécessaire pour générer des traces ou des fichiers d'audit en RAM:.

La face cachée d'ANAIIS

L'interface API est compatible avec Sirion. Consulter les documentations usbsys.doc inclues dans le SDK d'AmigaOS 4.x disponible sur le site d'Hyperion.

Attention toutefois, certaines fonctions ne réagissent certainement pas de la même manière que sur l'original Sirion, car le code et l'architecture sont vraiment différents.

Dans le palais des horreurs logicielles, on peut citer :
  • usblist (liste des interfaces).
  • anaiis_print (imprimante).
  • X-Mass (masstorage, en cours de développement).
  • Donkey'shoot (PTP + massstorage, en cours de développement, encore une histoire d'ânes).
  • Et certainement d'autres comme pl2303 (connecteur série).
Conclusion

ANAIIS, tout comme l'Amiga ou la vraie Anaïs est caractérielle, imprévisible, mais tellement attachante et passionnante à développer ;). Maintenant, arrêtez de vous plaindre si vous n'arrivez toujours pas à dessiner avec un ordinateur. Les souris bas de gamme actuelles sont bien meilleures que le haut de gamme d'il y a 20 ans, et les souris optiques ne s'encrassent jamais ! L'USB existe bel et bien sur Amiga Classic.


[Retour en haut] / [Retour aux articles]