Obligement - L'Amiga au maximum

Vendredi 22 septembre 2017 - 06:38  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · 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

 


En pratique : Assigner des fonctions à des touches (AmigaOS 1.x)
(Article écrit par Pierre Ardichvili et extrait d'A-News (Amiga News) - août 1989)


Les clés inaccessibles

Une des hontes du CLI, et que le Shell perpétue, c'est qu'il ne fournit aucun moyen direct de programmation des touches de fonction F1 à F10. Ce genre de carence est digne d'un PC, pas de l'Amiga. Voici quelques solutions...

Ce serait pourtant si commode de pouvoir définir "à la volée" une de ces clés par une syntaxe du genre :

def alt-f1 "format drive df0: name Toto Noicons"

Ou encore :

def sh-f3 "dir > prt: df0: opt a"

Ou encore :

def ctrl-f9 "climb stairs"

Pourquoi l'utilisateur de l'AmigaDOS reste systématiquement privé de cette possibilité est pour moi un mystère. Mon esprit mal tourné me fait penser qu'il s'agit tout simplement d'un manque de recherche d'information auprès des utilisateurs de la part des services de marketing, mais, comme j'aime bien Commodore, comme nous tous d'ailleurs, j'ajouterai que ce n'est pas une exception. Il suffit de voir le nombre de voitures dont les phares restent allumés quand on coupe le contact pour se rendre compte de ce que les problèmes causés par les pannes de batterie dues à cette stupidité de conception laissent absolument froids les services de marketing de bien des constructeurs.

Bon, une fois de plus, nous ferons appel à notre inépuisable domaine public.

Funckey

Le premier programme d'activation des clés de fonction qui me soit tombé sous la main est Funckey. Je l'ai trouvé sur une disquette d'un groupe d'utilisateurs anglais dont j'ai perdu la trace. Il a un inconvénient majeur : il ne marche pas bien avec nos claviers français. Par exemple, pour obtenir, en pressant une touche :

run amibug

Il faut taper :

run q;ibug

Le principe est simple (?) : vous collez sur vos touches, avec des lettres adhésives rouges, les symboles correspondant au clavier usa0 (c'est dans le manuel de votre Amiga, quelque part au fond d'une annexe). A côté du "A" vous mettez "Q", etc. Pour avoir un "a", il faudra donc taper "q". Pour le "m", c'est plus dur, car le "m" minuscule correspond sur le clavier américain à ";". Malheureusement, ça ne marche pas pour tous les symboles, et il faut faire des essais. On pourrait arriver à une approche plus rationnelle en disposant des tables des "keycodes" du clavier américain et du clavier français.

Jusque-là, on s'en sort quand même. J'en entends déjà qui ricanent en disant entre leurs dents "yaka passer en setmap usa0 et utiliser le clavier comme si c'était un clavier américain". Bien sûr, mais alors les touches de fonction ne sortent correctement qu'en restant configuré en setmap usa0. Si vous retournez en setmap f, vous obtiendrez des trucs folklo. Essayez, vous verrez.

Mais ce n'est pas tout, je n'ai jamais réussi à faire accoucher un ":" par Funckey avec le clavier français.

Bon, comme dirait le capitaine Haddock qui a laissé tomber son monocle, "Nestor, un autre, je vous prie".

Mach II

Au tour de Mach II. Superbe programme à tout faire, il comporte :
  • Une Sunmouse de bonne qualité.
  • Un accélérateur de souris.
  • Une fonction Click-to-Front pour amener à l'avant-plan une fenêtre dont il ne dépasse qu'un petit bout. et ceci en un ou deux clics (la commande en un clic n'est pas appréciée par Deluxe Paint par exemple, le système au lieu de déposer un pixel veut amener à l'avant-plan une fenêtre qui y est déjà).
  • Une horloge.
  • Un chronomètre.
  • Un indicateur permanent des capacités mémoire avec avertissement de limite inférieure.
  • Une ouverture de fenêtre CLI ou Shell par pression sur "Amiga gauche + Esc", à la PopCLI.
  • Un dispositif d'assombrissement (réglable) de l'écran après un temps (réglable) d'inactivité.
  • Un dispositif d'escamotage du pointeur après un temps (réglable) d'inactivité.
  • Un réveil.
  • Une brosse à dents, etc.
Le tout se démarre en startup-sequence, et le panneau de contrôle apparaît en cliquant dans la barre d'horloge qui reste sagement dans le haut de la fenêtre en cours de l'écran Workbench. Mach II pèse 29 ko, ce qui peut sembler beaucoup, mais on peut l'enlever à tout instant et il ne laisse pas de saloperies en mémoire. On trouve Mach II version 2.4c sur Fish 163 et en téléchargement sur DEEP.

Mach II

J'allais oublier la programmation des touches de fonction ! Elle se fait le plus simplement du monde en appelant le tableau de contrôle, en choisissant un préfixe (Amiga ou Ctrl-Amiga), la touche F1 à F10 à définir, puis en tapant dans la fenêtre ad hoc le texte qui doit sortir lorsque l'on pressera simultanément la touche de fonction et le préfixe choisi. C'est donc instantané, et on peut sauver la nouvelle définition de la touche ou pas.

Manque de pot, ce programme souffre du même défaut que Funckey en ce qui concerne le clavier français. Le plus piquant est que l'auteur, Brian Moats, appartient à un groupe qui s'intitule Polyglot Software ! Je lui ai envoyé ma contribution, car c'est un programme en shareware, sous la forme d'un billet de 100 balles, ce qui a dû lui poser des problèmes de change dans le bled où il réside (Boise, dans l'Idaho ; pour vous donner le genre, les plaques minéralogiques des voitures de l'état d'Idaho portent le texte "Idaho, famous potatoes" (sic). J'y suis allé, j'en suis revenu, mais ça m'a laissé des traces). Il n'a pas dû comprendre et n'a pas répondu à mes commentaires, mais qui sait, peut-être la version 3.0 de Mach II reconnaîtra-t-elle les claviers étrangers. Les Américains ont toujours de la peine à imaginer qu'il y a un monde extérieur aux États-Unis et qu'en plus, il est différent. Entre nous, quelle est la capitale du South Dakota ? Comme ce n'est pas dans la rubrique-à-brac qui est ma principale référence culturelle, je ne le sais pas non plus.

Quoi qu'il en soit, pour le cas où vous tomberiez sur ce genre de programme, voici la table de conversion qui vous permettra quand même de vous en servir (pas dans tous les cas, malheureusement, voir plus haut au sujet de Funckey). Dans la colonne de gauche, vous trouvez ce qu'il faut taper dans la fenêtre de Mach II pour qu'en pressant une touche de fonction, sur un Amiga 2000, configuré en setmap f, il apparaisse sur la ligne de commande de CLI ou Shell le caractère figurant dans la colonne de droite (aucune garantie pour un A1000 ou un A500).

Note : la lettre "a" signifie qu'il faut utiliser la touche du clavier alphabétique, la lettre "n" signifie qu'il faut utiliser la touche du pavé numérique. Dans les cas où il n'est rien marqué, c'est qu'il n'y a qu'une possibilité. Ne croyez pas que je vous prenne pour des demeurés, on n'est jamais assez explicite dans ce genre de choses.

table conversion clavier

Et s'il y a des erreurs dans cette table, essayez autre chose.

Il y a une autre famille de programmes, qui permettent de redéfinir tout le clavier, y compris les touches de fonction spéciales, et de sauver cette définition sous la forme d'un fichier que l'on sauve dans devs:keymaps. On peut donc avoir une bardée de définitions différentes du clavier, et les appeler par une commande "setmap". Ceci peut être très utile pour les jeux d'aventure, on peut se créer tout un vocabulaire appelable par une seule pression de touche.

SetKey

Le premier est SetKey, que j'ai trouvé sur la disquette T8AG 22 (également disponible sur Fish 70 en version 1.0 démo). A l'origine c'était un programme commercial, mais l'auteur l'a mis dans le domaine public faute d'en vendre suffisamment. SetKey est extrêmement simple d'emploi et ne demande pas de description, il faut toutefois signaler que le clavier représenté est celui de l'Amiga 1000 (en fait, je ne suis même pas sûr de ceci, ce qui est sûr, c'est que ce n'est pas un clavier d'A2000) mais ceci ne présente aucun inconvénient en ce qui concerne la programmation des clés de fonction.

SetKey 2.0

SetKey marche très bien avec le clavier français, à part un malheur. C'eut été trop beau. Un clavier créé à partir du keymap f, puis modifié par SetKey, ne reconnaît pas l'accent circonflexe ni le tréma, ce qui fait que pour utiliser correctement un traitement de texte, il faut d'abord refaire un setmap. En américain, une touche sans avance chariot comme le tréma ou l'accent circonflexe s'appelle une "dead key". La documentation est savoureuse à ce sujet : "Setkey ne gère pas les dead keys ; nous avons eu quelque difficulté à comprendre ce que c'est, sachez que de toute façon ça ne sert à rien (sic)". Comme l'auteur n'a aucune intention de modifier son programme, tant pis pour nous.

Keybird

Le second, récemment apparu et trouvé sur Amicus 25, s'appelle Keybird. Disons immédiatement que pour notre double malheur il est écrit en AmigaBasic, car, uno, cela ne le rend pas vraiment rapide, on s'en serait douté, et deuzio, comme vous le savez sans doute déjà, la gestion de la fonction MOUSE(0) par l'AmigaBasic interprété est défectueuse. S'il ne se passe pas quelques secondes entre deux appels consécutifs à MOUSE(0), cette fonction retourne des valeurs fantaisistes. Les réponses de Keybird à la souris sont donc occasionnellement aléatoires. J'ai donc compilé Keybird avec AC-Basic et tout est rentré dans l'ordre. Pour ceux qui n'ont pas de compilateur, et en attendant que la version compilée paraisse en téléchargement, ne vous lamentez pas trop tout de même car ce programme est puissant, et permet de faire strictement tout ce qu'il est possible de faire d'un clavier d'Amiga. Vous pouvez définir pour virtuellement toutes les touches, avec huit combinaisons de préfixes, n'importe quelle chaîne de 32 caractères maximum.

Ce programme accepte de prendre pour base le keymap f, donc on ne perd rien des caractères accentués, on garde l'usage de la clé "morte" accent circonflexe-tréma et on peut définir les touches de fonction comme on veut.

Je n'en dirai pas beaucoup plus ici, car il faudrait, pour bien apprécier ce programme en écrire un essai et une description complète. La doc, en américain évidemment, est assez importante (environ 300 lignes) et elle est dense. Ne vous attendez pas à vous servir du programme en un quart d'heure ; mais il ne faudra pas non plus trois mois de labeur acharné pour obtenir le début de quelque chose comme avec DBW Render par exemple. Si vous voulez réellement avoir une idée de ce qu'on peut faire avec un clavier d'Amiga, la lecture de cette doc est irremplaçable.

Il y a toutefois une chose que je vais développer en quelques lignes, je l'ai trouvé dans la doc de Keybird, car ceci peut vous éviter des surprises lors de l'utilisation de tout programme qui modifie les fichiers keymaps. Supposons que votre startup-sequence comporte l'instruction :

sys:system/setmap f

C'est donc la définition "f" qui est en service. Si vous modifiez le fichier devs:keymaps/f, sans en changer le nom, et que vous refaites l'instruction :

sys:system/setmap f

Vous constaterez que vos changements ne seront pas pris en compte par le système. Celui-ci voit que le fichier "f" est déjà en service et n'effectue pas un rechargement. Pour constater l'effet de vos modifications, il faudra soit redémarrer, soit sauver vos modifications sous un autre nom, par exemple "f1", et faire :

sys:system/setmap f1

En ne faisant pas attention à cette caractéristique de l'AmigaDOS, on risque de croire comme cela m'est arrivé, que le mécanisme de sauvegarde de SetKey ou de Keybird est bogué.

Pour finir

Il reste une chose à mentionner au sujet de la gestion des clés de fonction par les programmes d'application, et elle est importante lors l'utilisation des utilitaires décrits ci-dessus.

Un programme d'application qui utilise les clés de fonction spéciales peut s'y prendre (l'explication qui suit est une spéculation car je ne suis pas allé lire les programmes sources, c'est au-dessus de mes moyens, peut-être un de nos caïds du C pourra-t-il nous écrire un petit complément d'information ) de deux manières : ou il utilise le handler RAW:, et lit les codes de clés du clavier, en y associant ses propres définitions, ou il utilise le gestionnaire de console habituel (CON:, NEWCON:). Dans le premier cas, ses définitions des clés de fonction prendront le pas sur toute autre lorsque la fenêtre du programme sera activée ; dans le second cas, il se peut que les définitons de clés de fonction émises par le programme ne soient pas prises en compte par le système.

Prenons comme exemple le programme Hed, un éditeur similaire à EdPlus, en moins puissant. Ayant donné au moyen de SetKey une définition à la série des touches shift-F1 à shift-F10, et ayant nommé le keymap correspondant fk1, j'ai constaté qu'en lançant Hed après avoir fait setmap fk1, que les fonctions de recherche de chaînes, et d'autres, commandées par les touches shift-F1 à shift-F10, de Hed, ne fonctionnaient pas. Il y avait à cela deux remèdes, soit refaire setmap f avant d'utiliser Hed, soit refaire mon fichier fk1 en utilisant les préfixes shift-alt de manière à ce qu'il n'y ait pas de conflit.

Il y a donc intérêt à bien examiner les conflits potentiels entre tous les candidats à l'utilisation des clés de fonction, et à se servir en conséquence du choix de préfixes offert par les différents programmes.

Bon, avec ceci, si comme moi vous n'êtes pas programmeur, vous pourrez tout de même vous servir à votre guise de ces fameuses clés F1 à F10, moyennant l'absorption éventuelle d'une certaine quantité d'aspirine, en attendant que Commodore veuille bien mettre dans les futures versions de l'AmigaDOS un moyen simple de programmer les clés de fonction par l'utilisateur de la machine.

Amusez-vous bien.


[Retour en haut] / [Retour aux articles]