ANAIIS - Another Native Amiga Input/output Interface Stack - 1.02

ANAIIS, le retour (ou la suite).

Quoi de neuf depuis les dernières versions
ANAIIS fonctionne toujours avec Highway ou Subway. Beaucoup de bugs ont été corrigés, surtout ceux qui ne sévissaient qu'en 1.3. (le 1.1 n'a pas été testé!!) On peut désormais utiliser des clefs usb au lieu de disquettes.

Installation de la pile ANAIIS
Dans un premier temps, il faut s'assurer d'avoir au moins:

  • un Amiga avec un 68000 à au moins 7.14Mhz
  • un kickstart 1.1 ou plus
  • une carte Highway ou une carte Subway
  • 100 Ko de RAM de libre
  • des péripheriques usb
  • un peu de patience

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

    WB 1.1 (Kickstart version 31)
    WB 1.2 (Kickstart version 33)
    WB 1.3 (Kickstart 34 et plus)
    AmigaOS3.x
    Faire un peu de place sur la disquette en enlevant les fontes par exemple... copier anaiis où l'on veut (si possible à coté 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

    AmigaOS4.0 (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.

    Etape 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 (fonctionne sur tous les OS, même sur un antique A1000).
    Si rien ne fonctionne, ouvrir l'icône anaiis et vérifier le menu "Hardware". Si c'est vide c'est mal parti. Si l'état n'est pas à 2, c'est un problème hardware, il faudra vérifier les branchements. Sinon, tout va bien. Pour une Highway, vérifier que l'item "auto detection" est en place à partir du menu "Preferences", onglet "Preferences" (encore!) sous-onglet "System". Pour une Subway, si l'adresse du "clockport" n'est pas 0x00d80001, il faut savoir où on l'a branché, en connaissant l'adresse de base de la carte et son offset.

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






    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 gourou 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 l'offset 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
    
    !!ATTENTION!! si l'adresse est farfelue, le gourou peut très bien venir vous rendre une petite visite.

    Etape 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.

    stack 8000
    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".
    un simple copy fichier prt: fonctionne, mais quelquefois des décalages interviennent dans les impressions graphiques et DirectDump refuse carrément de fonctionner. usbprint fait son travail comme il faut, il ne passe pas par le système mais envoie ses données directement à l'imprimante usb.


    Clefs usb, disques SATA
    copier usbscsi.device dans devs:
    copier massive où l'on veut.
    copier fat95 dans l: (non fourni, mais il se trouve sur aminet)
    brancher le péripherique usb, lancer massive
    si la clef provient du monde PC de taille <= 4Go en fat32, on doit la voir apparaitre après quelques secondes s'angoisse.

    Les filesystem(s)
    Sur 1.3 fat95 et fastfilesystem sont utilisables. Si le disque ou la partition fait plus de 100Mo, il faut oublier OFS et passer au FFS.
    Attention, OFS est extrèmement instable.
    A partir du 2.04, PFS peut être utilisé. usbscsi.device gère les disques avec TD64 (64 bits pour les disques "modernes")

    Formater son disque
    massive a un grand nombre de paramètres (consulter la documentation, en anglais, ça vous fera les pieds (de l'exercice))
    Si l'on escamotte mount (en mettant une parenthèse devant par exemple) on peut aller modifier le fichier ram:usbkey0 pour changer de filesystem et dostype, ou tout simplement partitionner le disque avec HDToolBox ou HDInstool.

    Ensuite on monte tranquillement le disque
    mount usbkey0: from ram:usbkey0

    Puis on formatte
    format drive usbkey0: name disque FFS quick
    au bout de quelques instant un disque apparait sur le workbench.

    Le disque est alors utilisable! mais il faut être patient, voire même très patient... mais c'est plus rapide qu'un lecteur de disquettes et rend service quand on sait que son disque dur de 1.2Go est mort et que l'on a eu le temps de mettre son contenu à l'abri...

    Attention, si l'on retire la clef alors qu'un assign pointe sur le disque ou qu'une fenêtre affiche encore son contenu, on risque d'avoir un gros problème. Si cela arrive, il faut utiliser unmount usbkey0: et si assign donne toujours l'entrée usbkey0:, il faut faire un assign usbkey0: dismount suivi d'un assign usbkey0: remove. Si l'on suit ces petites recommandations, l'icône de la clef doit disparaitre.



    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!
    Un grand nombre de modifications ont été apportées dans la version 1.02 par rapport à la 0.99. Certaines listes sont encore expérimentales (des liens et des infos en trop qui débordent allégrement en dehors de l'écran...), mais un jour viendra où tout fonctionnera. Certains onglets sont devenus des menus.

    Menu "System"
    Montre certaines libraries du système.
    Ne rigolez pas, il sait quand on est sur un UAE ou un vrai Amiga ;)
    Menu "Hardware"
    Montre les cartes gérant l'usb visibles dans le système.
    Menu "Devices"
    Une belle liste qui déborde. Synchronisé avec les branchements /débranchements à chaud
    Menu "Interfaces"
    Comment faire des arbres façon windows avec intuition ? ben cliquez sur les - ou les + pour voir...
    Menu "Statistics"
    Montre le nombre de transactions et le débit de données de et vers l'usb.
    Comme vous pouver le constater, c'est de l'arithmétique 64 bits sur un pauvre 68000...
    Menu "Preferences"
    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.

    HCD path
    chemin indiquant où se trouvent les .uhcdevice, pilotes permettant à ANAIIS d'avoir d'autres matériels que Highway et Subway.

    FD path
    En friche!!

    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 (et oui!), sinon rien.

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

    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.


    Preferences/HID
    Cet onglet concerne la lowlevel.library. Deux colonnes à droite de chaque port indique son état. La présence d'une seule colonne indique l'absence de la lowlevel.library (ce qui est le cas ici avec le WB1.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 joystick)
    Port 2 port 2 (souris ou joystick)
    Port 3 port 3 (souris ou joystick)

    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.

    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.

    Preferences/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 OS4.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) http://aminet.net/package/dev/c/usblist
    anaiis_print (imprimante) http://aminet.net/package/dev/c/anaiis_print
    Massive (aka X-Mass)
    Donkey'shoot (ptp + massstorage, en cours de dev, encore une histoire d'ânes)
    et certainement d'autres comme pl2303 (connecteur série) http://thylacine.boing.net/updates.html

    Le futur ?
    Il faudrait rendre tout ceci "romable" pour pouvoir monter des disques à l'initialisation, voire utiliser le "boot menu" avec la souris et le clavier usb, mais je suis sur un driver PCL3 (complet avec les 5 modes de compression) et un XL (PCL6) pour pouvoir imprimer... le plus rapidement possible (peux pas tout faire, les journées n'ont que 24 heures)