|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Le mois dernier, nous avons vu dans le détail huit commandes (Assign, CD, Copy, Delete, Dir, Ed, MakeDir, Resident). Il s'agit désormais de les utiliser avec discernement. Ouvrir une fenêtre Shell et taper des commandes au hasard peut se révéler très instructif, mais cela peut aussi représenter du temps de perdu. Après tout, cette rubrique a pour but de vous aider à profiter de votre superbe Amiga en ôtant au Shell ce caractère mystérieux fort rebutant. En d'autres mots, elle vise à vous faire dominer un outil. Elle tente aussi de vous rendre plus productif en ne se contentant pas de commenter les commandes AmigaDOS, mais en exposant comment, par l'enchaînement de commandes AmigaDOS dans un fichier script, vous pouvez rendre aisées des tâches complexes. Le paramétrage d'une imprimante Assez de bla-bla, passons aux choses sérieuses : tentons aujourd'hui de résoudre un problème courant, celui de l'installation et du paramétrage d'une imprimante. L'utilisateur, qui découvre sa machine, fait en général relativement tôt connaissance avec le programme Preferences. En pénétrant dans le tiroir "Prefs", il découvre de nombreuses icônes dont la fonction est relativement simple à comprendre : le programme Preferences est le programme principal, et les icônes Pointer, Printer et Serial permettent d'accéder directement dans le programme Preferences aux paramètres qui l'intéressent. Les petits futés pourront en sélectionnant une de ces icônes, et en choisissant la fonction "Info" du menu "Workbench" se convaincre de la chose. Lorsqu'il a lancé le programme Preferences, cet utilisateur expérimente avec les couleurs de l'écran du Workbench, il change l'heure, il modifie le pointeur, et procède ainsi à toutes sortes de petits réglages. Arrive le moment où il est confronté avec l'écran de sélection de l'imprimante (Printer). Pour ne rien vous cacher, il n'est pas rare qu'il y rencontre sa première déconvenue. Pourquoi ? Parce que son imprimante est rarement présente dans la liste des imprimantes disponibles qu'il fait défiler. Oh, il peut bien choisir le port de connexion de l'imprimante (Serial ou Parallel), il peut spécifier la longueur de son papier comme spécifique (Custom) et égale à 66 lignes, il peut choisir des marges gauche (1) et droite (80), il peut indiquer sa préférence pour la qualité courrier (Letter) ou la qualité brouillon (Draft), il peut retenir un texte espacé avec 6 lignes par pouce (6 LPI) ou un texte dense avec 8 lignes par pouce (8 LPI), il peut encore selectionner une police de caractères standard (10-Pica) ou compressée (15-Fine) ou établir que le papier est continu (Fanfold) ou introduit manuellement feuille à feuille (Single). Mais s'il ne peut choisir son imprimante, il devra se contenter de l'imprimante "générique" qui ne propose aucune fonctionnalité évoluée (polices de caractères, gras, souligné, double largeur,...). Commodore pour expliquer pourquoi il n'y a que le gestionnaire minimum (generic) sur un Workbench : en effet, la disquette Workbench était déjà fort pleine, et que cela n'avait pas de sens de chercher à y mettre tous les pilotes puisque les utilisateurs ont rarement à leur disposition plus d'une ou de deux imprimantes. Les gestionnaires ont été regroupés dans le répertoire "devs/printers" de la disquette "Extras 1.3". De plus, un mécanisme automatique par un programme AmigaDOS est fourni pour faciliter le transfert (nous y reviendrons plus tard). Régler les préférences sur la bonne imprimante est primordial pour des impressions sans tracas, car AmigaDOS et tous les programmes d'applications vont y faire référence. En effet, s'il est toujours possible d'adresser directement les ports série et parallèles de l'ordinateur (aux doux noms de SER: et PAR:), il est beaucoup plus simple et performant pour l'utilisateur comme pour les programmes d'utiliser l'imprimante système du nom de PRT:. Cette imprimante aux capacités extraordinaires (couleurs, graphismes, polices...) reçoit les données à imprimer et, grâce aux paramètres de préférences, les convertit dans le langage de commandes compréhensible par l'imprimante physique connectée au système. La relative complexité de cet ensemble n'en n'a pas facilité la mise au point, la version 1.3 du système apporte de très nombreuses améliorations au prix de l'incompatibilité des gestionnaires, veillez donc à ne pas mélanger les différentes versions ! Identifier l'imprimante Pour pouvoir disposer du gestionnaire de l'imprimante adaptée, un certain nombre d'étapes sont nécessaires. Il convient d'identifier le gestionnaire d'imprimante approprié à votre imprimante ; ce n'est pas toujours évident car parfois celle-ci ne fait pas partie des imprimantes reconnues par Commodore, dont voici la liste obtenue par un :
Cependant, il ne faut pas s'affoler, car les constructeurs d'imprimantes prennent rarement le risque de construire une imprimante munie d'un jeu de commandes particulier. Les imprimantes sont ainsi dotées de modes de compatibilités, qui au moyen d'un réglage des micro-interrupteurs, leur permet de reconnaître et d'exécuter un jeu de commandes plus standard. Ainsi, toute la gamme des Epson 24 aiguilles reconnaît les mêmes commandes, ce qui a conduit Commodore à ne proposer qu'un seul programme d'interface (ou gestionnaire ou encore pilote), celui dénommé EpsonQ. Pour la même raison le pilote CBM-MPS1000 convient à la majorité des imprimantes 9 aiguilles pour compatibles IBM PC, et le pilote HP_LaserJet donne toute satisfaction aux possesseurs d'une imprimante compatible HP_LaserJet et HP_LaserJet+. En cas de doute, seul le procédé des essais et des erreurs vous permettra de sélectionner le pilote le plus adapté. Installer l'imprimante Une fois le pilote identifié, il faut le trouver et l'installer. Pour l'installer, il faut bien sûr disposer d'un peu de place sur son disque système, qui est soit votre copie de travail du Workbench, soit votre disque dur. Pour vérifier l'espace disponible, tapez la commande CLI "Info" qui vous fournira l'espace disponible sur les mémoires de masse de votre système. Voici le résultat de cette commande sur mon système A2000A équipé de 1,5 Mo de mémoire vive, d'une carte passerelle, d'un disque dur de 20 Mo partagé entre MS-DOS et AmigaOS et d'un lecteur de disquette externe.
Comme vous pouvez le constater, ma copie du Workbench est protégée en écriture (merci, les virus) et dispose de 5 blocs libres. Un rien d'arithmétique nous permet de savoir que nous disposons de seulement 2,5 kilo-octets d'espace disponible. Pour installer un gestionnaire d'imprimante, il est prudent de disposer d'une dizaine de ko, en conséquence, il faut faire de la place sur la disquette. Le moyen le plus simple consiste à visionner le contenu de la disquette de manière interactive : tapez donc la commande :
Elle va vous afficher les répertoires et les fichiers suivis d'un point d'interrogation qui symbolise l'attente d'une commande de l'utilisateur. Les commandes que la commande "Dir" en interactif comprend sont :
Lors de votre descente aux enfers, pardon, descente dans la structure d'une disquette, vous rencontrerez sûrement mon favori, le programme "Edit" contenu dans le répertoire C des commandes AmigaDOS. Ce programme de 18 164 octets est un affreux éditeur de texte ligne à ligne dont les origines remontent aux débuts de l'informatique. Il ne présente aucune utilité (sauf dans l'usage hyper spécifique exposé dans le jeu de Nim programmé en AmigaDOS) : c'est donc un favori pour l'effacement. Les personnes les plus pressées peuvent décider de me faire confiance, et de taper la commande CLI :
Donc après avoir vu le paramétrage de Preferences, le choix d'un gestionnaire d'imprimante, et le nettoyage de la disquette système, il nous reste donc à transférer le gestionnaire depuis le répertoire "devs/printers" de la disquette Extras1.3. Attention, les possesseurs d'un seul lecteur doivent passer par une étape intermédiaire visant à rendre residentes des commandes AmigaDOS pour pouvoir manipuler les fichiers de la disquette Extras sans devoir réinsérer la disquette Workbench. Il leur faut donc taper :
Faisons donc d'abord une vérification :
...pour se positionner dans le répertoire Dir pour avoir la liste des pilotes.
...pour le copier dans le répertoire système approprié.
...pour aller dans le répertoire des programmes de gestion des préférences.
...pour lancer le programme proprement dit, il peut être exécuté depuis un CLI ou depuis le Workbench. Sélectionnez le type de l'imprimante et procédez à des choix dans les domaines de l'impression graphique.
...pour réaliser un test en imprimant un fichier depuis le CLI, ou vous pouvez aussi vous servir de NotePad pour tester les modes graphiques (testez notamment l'impact de l'option Scaling=Integer de l'écran 2 pour l'impression graphique de Preferences).
...(ou cliquez sur l'icône) si vous disposez d'un disque dur, car le programme Preferences modifie le fichier de configuration SYS:devs/system-configuration qui est situé sur le disque dur, et non celui qui est présent sur la disquette de démarrage ; si Preferences est initialisé au démarrage avec un fichier, puis est lancé avec un autre fichier de configuration, le conflit va lui faire oublier les deux configurations. En fait, cette procédure a été automatisée par un utilitaire écrit sous AmigaDOS par les ingénieurs de Commodore. Ouvrez en effet le tiroir "Utilities" de votre Workbench, vous découvrirez une icône nommée "InstallPrinter". Avec la commande "Info" du menu "Workbench", vous découvrirez que ce fichier de données (le type de l'icône est "Project") renvoit à un programme C:IconX mentionné comme l'outil de prédilection (Tool). Lorsqu'on clique sur un projet, le Workbench examine le fichier ".info" qui contient le graphisme de l'icône et les informations d'Info, et détermine quel programme peut s'exécuter sur les données contenues dans le fichier. IconX, présent dans le répertoire des commandes, est une sorte d'équivalent à la commande "Execute" : il ouvre une fenêtre (ici définit dans l'information "Tool_Type" : Window=NewCon/0/2/640/192/InstallPrinter) et fait exécuter dans cette fenêtre les commandes AmigaDOS contenues dans le fichier. Ces commandes sont ici reproduites : .key " " indique au CLI qu'il faut opérer une substitution de paramètre, même s'il n'y a aucun argument admissible a la commande " ", les caractères §§ seront remplacés par le numéro du processus CLI qui exécute la procédure (on continue de l'appeler CLI, alors qu'en fait c'est un processus Shell puisque la commande Resident CLI L:Shell-Seg system pure add remplace les appels au CLI par des appels au Shell. .bra { .ket } : les identifiants de paramètres sont désormais { } au lieu des habituels < >, et ceci pour permettre l'utilisation de la redirection des entrées-sorties from {}$$:"". Donne aussi le nom "fromn:" au répertoire courant, où "n" est le numéro du processus CLI qui exécute la procédure. Resident C:Copy add pure Resident C:Dir add pure Resident C:Echo add pure Resident C:Setenv add pure installe quatre commandes en résidence pour pouvoir se passer en partie de la disquette Workbench durant la procédure. failat 21 seuls les codes d'erreurs supérieurs à 20 pourront provoquer l'arrêt de la procédure, et comme les procédures AmigaDOS renvoient 0 pour OK, 5 pour avertissement, 10 pour erreur et 20 pour erreur grave. on est sûr de ne pas s'arrêter en catastrophe. lab y lab yes deux adresses de retour. echo "*Ec *E[4mPrinter Install Program*N*N*E[0mPrinters Available:*N" affiche une jolie ligne de présentation. cd "Extras 1.3:devs/printers" se positionne dans le répertoire des gestionnaires. If error si le code d'erreur est supérieur à 20, l'utilisateur n'a pas inséré le volume "Extras 1.3", et a cliqué sur "Cancel" lorsqu'on le lui a demandé, il convient donc de s'arrêter. skip err l'exécution continue à l'adresse err. ENDIF dir affiche le contenu du répertoire courant, c'est-à-dire la liste de toutes les imprimantes. echo "*NWhich printer? (press RETURN to exit)" noline affiche la ligne sans passer à la suivante, l'interrogation de l'instruction suivante sera donc collée à ce texte. setenv >NIL: q{$$} ? attend l'entrée d'une chaîne de caractères dans la variable "qn" où "n" est le numéro du CLI, cette variable est stockée dans le fichier ENV:qn. IF$q{$$}" " si la chaîne est vide, on arrête. skip err ENDIF echo >>env:q{$$} "to devs:printers" concatène à la chaîne de caractères (qui contient le nom du gestionnaire souhaité) le répertoire de destination. echo "Now copying your printer choice to devs:printers." petit message informatif. copy <env:q{$$} >NIL: ? exécute la commande "Copy" avec la chaîne de caractères complète comme argument (utilisation du signe "?" pour indiquer à la commande qu'elle doit attendre la suite des arguments, utilisation du signe "<" pour donner cette suite non pas à partir de l'entrée standard, mais à partir d'un fichier, et utilisation du signe ">" pour envoyer les messages d'aide de la commande "Copy" générés par l'emploi du "?" dans un trou sans fond, le périphérique NIL:). IF error en cas d'erreur. echo "Error during copy. Do you want to try again?" noline message informatif. skip >NIL: back ? la commande "Skip" attend son paramètre (à cause du signe "?") en n'affichant pas de message (en raison du ">NIL:"), grâce au paramètre "Back", la commande "Skip" peut revenir en arrière ; il y a ici une astuce particulière, la commande "Skip" demande en fait à l'utilisateur l'adresse à laquelle le programme doit sauter alors que l'utilisateur croit répondre à une question normale, ainsi s'il répond "Y" ou "YES" pour recommencer, le programme recommence à l'adresse "Y" ou "YES", si l'adresse est différente, "Skip" va la chercher dans tous les fichiers. ELSE tout s'est bien passé. echo "Now choose this printer using Preferences." encore un message qui rappelle l'importance du programme Preferences. Preferences ENDIF lab err adresse pour les erreurs. endskip la commande "Skip" n'ira pas plus loin, même si elle n'a pas trouvé d'adresse correspondant au choix de l'utilisateur (par exemple, s'il a tapé autre chose que "Y" ou "YES"). cd from {$$}: on revient au répertoire de départ. assign from {$$}: on efface le nom fromn: resident copy remove resident dir remove resident echo remove resident setenv remove on retire de la liste des commandes résidentes les commandes précédemment préchargées, on retrouve donc de la mémoire au détriment de la vitesse d'accès et de l'indépendance par rapport au Workbench.
|