D]3 P]01jb1 P]02jb2 P]03jb3 P]04jb4 P]05jb5 P]0Hjbh P]PAjbmini P]fijbrelax ]]P01 00 ]03 ]10 ]P01 06 ]]P01 01 ]23 LIREPIC ]10 ]P01 07 ]]P01 02 ]13 ©1990 par Charles Vassallo ]10 ]P01 08 ]]P01 03 ]43 (33 route des Traouieros, 22730, Trégastel) ]10 ]P01 09 ]]P01 04 ]43 ]10 ]P01 10 ]]P01 05 ]P01 11 ]]P02 00 ]P0H 00 ]P02 06 ]]P02 01 ]P0H 01eci est un utilitaire pour afficher des textes ]P02 07 ]]P02 02 ]P0H 02 illustrés. J'ai toujours regretté que les ]P02 08 ]]P02 03 documentations sur disquette ne contiennent ]P02 09 ]]P02 04 jamais de figure, même dans le cas des notices ]P02 10 ]]P02 05 de programmes graphiques -- un comble! Je me suis ]P02 11 ]]P02 00 mis au travail, et voilà le résultat. "LirePic" ]P02 06 ]]P03 01 est un petit programme en assembleur de 5300 ]P03 07 ]]P03 02 octets. ]P03 08 ]]P03 03 Il ouvre un écran 640x200 avec de 2 à 16 ]P03 09 ]]P03 04 couleurs. Le programme est entièrement contrôlé ]P03 10 ]]P03 05 par la souris. Les figures doivent avoir été mises ]P03 11 ]]P05 00 dans des fichiers IFF/ILBM, par exemple sous la ]P05 06 ]]P05 01 forme de brosses DPaint. Les textes doivent être ]P05 07 ]]P05 02 de purs fichiers ASCII (j'emploie tout simplement ]P05 08 ]]P05 03 ED pour les préparer). Les codes de contrôle ]P05 09 ]]P05 04 doivent être insérés à la main. ]P05 10 ]]P05 05 Les fichiers pour le texte et les figures ]P05 11 ]]P04 00 peuvent être compactés avec PowerPacker, le ]P04 06 ]]P04 01 programme "shareware" bien connu de Nico François. ]P04 07 ]]P04 02 (Notez qu'il y a une version commerciale plus ]P04 08 ]]P04 03 performante de PowerPacker, disponible auprés de ]P04 09 ]]P04 04 UGA ou ses dépositaires). ]P04 10 ]]P04 05 La palette peut changer d'une figure à l'autre ]P04 11 pourvu que deux figures sur les mêmes lignes aient la même palette. Le présent affichage est une démo de ce qu'on peut obtenir avec un écran à 3 plans-bit (8 couleurs simultanées). Transmettez-moi vos réactions/frustrations/suggestions. Peut-être en tiendrais-je compte, si j'ai assez de courage et de connaissances sur le fonctionnement intime de l'Amiga... Mais de grâce, ne confondez pas "LirePic" et ses 5300 octets avec "ProWrite" ou tout autre environnement complet pour réaliser des textes illustrés et les imprimer. "LirePic" n'est qu'un utilitaire de visualisation. Il n'y a pas d'éditeur associé; cela veut dire que les fichiers textes doivent se préparer à la main. ]]PPA 00 ]]PPA 01 ]20LES GADGETS DE LIREPIC ]]PPA 02 Ces gadgets sont visibles en bas de l'écran. De la gauche vers la droite, nous trouvons successivement : ]- ]30<<<< >>>>]10 : gadgets de défilement. Un seul click rapide fait défiler l'affichage d'une seule ligne, vers l'avant ou vers l'arrière. Une pression continue sur le bouton gauche de la souris provoque un défilement accéléré. D'accord, ce n'est pas très joli, surtout si vous avez des images à 16 couleurs, mais je réclame des circonstances atténuantes (voir plus loin). Pour moi, ces gadgets ne sont pas destinés à faire un beau scrolling lent et majestueux, mais un déplacement rapide dans le fichier, différent de ce qu'on obtient avec le gadget de pages. p] AA9 004 42B 900 ]- ]30Le gadget proportionnel de pages]10 : le curseur indique la position relative, dans tout le texte, de la première ligne visible sur l'écran. On peut se déplacer dans le texte en bougeant le curseur. Si on clique dans le gadget à droite (ou à gauche) du curseur, on se déplace d'une page en avant (ou en arrière). ]- ]30<< Find >>]10 : gadgets de recherche, pour localiser une chaine de caractères donnée. En fait il y a 3 gadgets. Commencez par cliquer au centre (sur "Find"). Une fenêtre s'ouvre avec une boite de texte et 3 nouveaux gadgets : "PREV", "NEXT" and "CANCEL". Entrez la chaine de caractères de votre choix (par exemple "<< Find >>", c.à d. les premiers mots de ce paragraphe -- on peut entrer jusqu'à 32 caractères), et pressez la touche RETURN. La fenêtre se ferme et la recherche commence, depuis la première ligne du moment sur l'écran vers la fin. Il y a un flash si la recherche échoue. Vous pouvez maintenant cliquer sur les gadgets ">>" ou "<<" pour chercher d'autres occurrences, en avant ou en arrière. Quand la chaine a été retrouvée, l'écran montre le texte à partir de la ligne contenant la chaine. Vous pouvez maintenant réouvrir la fenêtre de recherche (en cliquant "Find") et chercher d'autres chaines. La chaine précédente n'est pas perdue. Pour y revenir, ouvrez la fenêtre de recherche et cliquez sur le gadget "PREV". Vous pouvez ainsi mémoriser jusqu'à 10 chaines et naviguer de l'une à l'autre avec "PREV" et "NEXT". Evidemment "CANCEL" annule la recherche. Deux remarques : (1) la recherche ne distingue pas les majuscules des minuscules. (2) Si la chaine est trouvée dans la dernière page, l'écran ne montre que cette page, en entier, même si la chaine n'est pas sur la première ligne. ]-]30 PRT/COPY]10 : ce gadget n'apparaît que pour des textes sans illustrations. Son principal intérêt est d'offrir la possibilité de copier ou d'imprimer des fichiers qui auraient été comprimés avec PowerPacker. J'ai préféré le faire disparaître pour des textes illustrés -- immanquablement, on m'aurait reproché de ne pas imprimer le texte avec ses figures! Il ouvre une fenêtre avec une boite de texte qui attend un nom de fichier pour l'opération de copie, et trois gadgets qui parlent d'eux-même : COPY, PRINT et CANCEL. L'impression emploie le printer-device en service dans vos "Preferences". ]-]30 EXIT]10 : ferme l'affichage. ]]PPA 00 ]]PPA 01 ]20COMMENT CELA MARCHE-T-IL ? ]]PPA 02 On obtient le chargement et l'affichage des images, ainsi que divers jeux de couleurs en farcissant le texte de séquences de commande spéciales, consistant en un "]" et divers autres caractères. "LirePic" essaie de tout charger en mémoire, texte et images. Les images sont chargées dans des "bitmaps" auxiliaires et sont affichées ligne par ligne, c'est à dire par tranches de 8 pixels de haut, pour préserver le fonctionnement du scrolling. Il s'ensuit que les figures doivent être déclarées en tête du texte, avec un identificateur de votre choix (quelque chose comme le numéro d'une figure dans un texte) et le chemin ad hoc pour retrouver les fichiers correspondants. Ces figures sont affichées ligne par ligne; pour chaque ligne, il faudra rappeler l'identificateur de la figure et le numéro de la "ligne" à afficher. Si on n'a pas assez de mémoire, on ne chargera pas toutes les images avec le texte. Quand les images suivantes seront appelées, on libèrera la mémoire occupée par les premières images, jusqu'à ce qu'on en ait assez pour charger une nouvelle image. Il était bien sûr nécessaire de permettre ce fonctionne- ment en mémoire faible, mais cela n'a évidemment pas simplifié le programme. On ne peut avoir que des écrans 640x256 (ou 640x200 en NTSC), avec de 1 à 4 plans-bit. Il faut déclarer ce nombre de plans en tête du texte, à cause des complications du fonctionnement en mémoire faible (sinon on prend une valeur par défaut de 2 plans-bits). Les images avec davantage de plans-bit ]sont refusées, mais celles avec moins de plans-bit passent.]20 Deux images qui ]]20partagent les mêmes lignes doivent nécessairement la même palette, mais des ]]20images sur des lignes différentes peuvent avoir des couleurs différentes. Je suis désolé d'avoir dû imposer ces restrictions, mais je n'ai pas su programmer les listes Copper mieux que cela. On n'aura donc au plus que 16 couleurs à la fois par ligne. Le programme prépare une nouvelle liste Copper chaque fois que l'affichage est changé. J'ai choisi la méthode simple de balayer la nouvelle page affichée à chaque changement de page, pour localiser les changements de palette et j'ai renoncé à mettre à jour la liste Copper pendant les scrollings même. En fait ce raffinement aurait été gaché par le fort scintillement inévitable avec les grandes images à 8 ou 16 couleurs. Ce scintillement devrait pouvoir s'éliminer avec un affichage "double buffering", mais je n'ai pas exploré cette voie. Pour le moment, la liste Copper est refaite à la fin des scrollings. Bien, direz-vous, mais pourquoi avoir conservé ces gadgets de défilement au fonctionnement si disgrâcieux ? On peut obtenir le même effet avec le gadget de page. Voire... Essayez donc de vous déplacer de moins d'une page avec le curseur dans un texte de plus de 60 Koctets... Les figures doivent être des fichiers IFF/ILBM, par exemple des brosses DPaint. Le texte se prépare avec ED ou avec votre éditeur de textes préféré. Attention toutefois à ne pas insérer de caractères TAB si votre éditeur en est capable. ]]PPA 00 ]]PPA 01 ]20LES SEQUENCES DE COMMANDE ]]PPA 02 Le texte doit démarrer avec les instructions spéciales suivantes (seulement une instruction par ligne, à partir de l'extrême gauche) : D]n fixe la profondeur (nombre de plans-bits) à n (n=1,2,3, ou 4). Cette ­­­ instruction peut être omise s'il n'y a pas de figure; la profondeur est alors fixée à 2. Cette instruction doit être la première du fichier. G] rgb xyz uvw établit les couleurs des gadgets. Les triplets "rgb", "xyz" ­­­­­­­­­­­­­­ et "uvw" sont les valeurs hexadécimales (de 0 à F) des composantes rouges, vertes et bleues de la couleur de fonds, de la couleur pour les inscriptions et enfin de la couleur pour la boite et le curseur du gadget proportionnel. Cette instruction peut être omise. Dans ce cas, on prend les premières couleurs de la première palette utilisée dans le fichier. Ces couleurs sont conservées pour tout l'affichage. Cette commande permet de pallier des couleurs peu visibles dans l'arrangement par défaut. ]]20 Quand on utilise cette commande, elle doit être la seconde du fichier, ]]20 juste après la déclaration de profondeur et avant les déclarations d'image. Employez des lettres capitales pour les chiffres hexa A,B,C,D,E,F. Les espaces entre les triplets sont facultatifs. P]xxFigFile déclare l'image stockée dans le fichier "FigFile" et lui ­­­­­­­­­­­ associe l'identificateur "xx" qui sera utilisé dans la suite pour désigner cette image. Cet identificateur se compose de 2 caractères arbitraires (00, 01, a1, a2, Ak, etc...). Le nom "FigFile" doit contenir toute l'information nécessaire pour que le programme puisse retrouver le fichier, à partir du directory courant. Attention : ce directory n'est pas le même selon qu'on appelle "LirePic" à partir du CLI ou du Workbench. Dans le 2ème cas, c'est le tiroir qui contient l'icône cliqué ; on n'a alors besoin d'aucune information de chemin si tous les fichiers d'images sont dans le même tiroir que le fichier texte. Il ne faut aucun espace dans les déclarations d'image. Par exemple, pour appeler l'image du fichier "Toto:tiroir/brosse" sous le nom "aa", on invoquera "P]aaToto:tiroir/brosse". Le texte proprement dit commence après la dernière déclaration d'image. Les séquences de commande se répartissent en deux classes: - les séquences x]... (à l'extrême gauche de la ligne) annoncent un changement global pour toute la ligne. - les séquences ]...]xx.. avec le premier ] à l'extrême gauche provoquent une analyse caractère par caractère de toute la ligne, dans l'attente d'une commande ]xx... ultérieure. La première classe ne contient que 2 instructions : f] (au début d'une ligne) imprime la ligne dans la f-ième couleur de la ­­ palette. Attention : "f" part de 1 et est écrit comme un hexa (1,2...A,B,C,D,E,F), c'est à dire ne va jamais jusqu'à la 16-ème couleur dans un affichage à 16 couleurs. Cette notation a été adoptée pour des raisons de compatibilité avec d'anciens utilitaires d'affichage de textes. Elle est malheureuse en ce qu'elle ne coïncide pas avec la convention du système interne de l'Amiga, où les couleurs vont de 0 à F (en d'autres termes, la "première" couleur est toujours la couleur 0) et elle ne sera pas utilisée dans les autres commandes de couleur, plus puissantes. Par analogie, il y a une commande palette : p] RGB UVW XYZ... où "p" est précisément la minuscule "p". Les différents ­­­­­­­­­­­­­­­­ triplets RGB, UVW, XYZ sont les quantités de rouge, vert, bleu pour les différentes couleurs de la palette, écrites comme des hexas de 0 à F (majuscules seulement pour A,B...F). On peut écrire moins de triplets qu'il n'y a de couleurs dans l'affichage ; dans ce cas, seules les premières couleurs sont modifiées. Les espaces sont optionnels. Ne pas mettre de texte après cette commande. La seconde classe de commande comprend d'autres commandes de couleur et les instructions d'affichage d'image. ]...]fb (le premier "]" doit être au début de la ligne) prend la couleur ­­­­­­­ "f" pour le plume et la couleur "b" pour le fonds, jusqu'à l'apparition d'une 2ème commande de couleur ou la fin de la ligne ; f et b sont des nombres hexa 0,1...A, B ..F (majuscules obligatoires). Les couleurs initiales sont restorées à la fin de la ligne. ]]f (or ]...]f), immediatement suivie par la fin de la ligne, signifie que ­­­ la couleur de la plume est dorénavant la couleur "f", jusqu'à une autre instruction du même type. Cette instruction ne sera généralement utilisée qu'une seule fois, au début du texte, pour changer la couleur par défaut de la plume (couleur 1). ]... ]Pxx nn insère la ligne "nn" (nn=00,01,02...) de l'image repérée par ­­­­­­­­­­­­ l'identificateur "xx" lors des declarations. Il doit y avoir un espace entre "xx" et "nn". Attention à employer un identificateur dûment déclaré (na pas changer minuscules et majuscules). Par exemple, pour insérer une image de 4 lignes identifiée par "1a", on écrira les instructions suivantes : ]...(texte)....]P1a 00....(texte)... (ligne initiale) ]...(texte)....]P1a 01....(texte)... (ligne suivante) ]...(texte)....]P1a 02....(texte)... (ligne suivante) ]...(texte)....]P1a 03....(texte)... (dernière ligne) On verra ainsi apparaître l'image avec du texte des deux côtés. Evidemment, on peut supprimer le texte à droite ou à gauche. S'il n'y a pas de texte à gauche, chaque ligne doit commencer par "]]P". Notez que toutes les séquences "]Pxx nn" doivent être parfaitement alignées verticalement, à moins qu'on n'ait rajouté des instructions supplémentaires de couleur dans le texte. ]]PPA 03 ]]PPA 04 ]20SI QUELQUE CHOSE SE PASSE DE TRAVERS... ]]PPA 05 Normalement tous les codes de commande sont éliminés. Les erreurs sont précisément signalées par l'apparition des codes qui n'ont pas été compris. S'il y a un problème lors de la déclaration d'une image (fichier introuvable, ou non IFF), la déclaration correspondante et toutes les suivantes sont affichées en tête du texte (mais sans vérification pour les suivantes). S'il y a un problème avec une "ligne" d'image, la séquence d'appel "]Pxx nn" est affichée à l'écran. Causes possibles: identificateur erroné, numéro de ligne trop grand, ou bien une figure avec trop de couleurs. ]]PPA 00 ]]PPA 01 ]20COMMENT APPELER "LIREPIC" ]]PPA 02 "Lirepic" s'appelle soit depuis le Workbench soit depuis le CLI. Depuis le CLI, tapez lirepic filename Auparavant, prenez un directory courant tel que les figures puissent être trouvées à partir des indications données dans les déclarations. Pour l'emploi à partir du Workbench, donnez un icône de type "Projet" au fichier texte que vous voulez afficher. Sélectionnez cet icône (un seul click) et choisissez "Info" au menu Workbench. La fenêtre "Info" de l'icône s'ouvre. Dans la boite "ToolTypes", tapez :lirepic puis cliquez le bouton "Save" en bas à gauche de l'écran. Il faudra ensuite copier "LirePic" dans le directory principal de la disquette contenant le fichier texte. ]]PPA 00 ]]PPA 01 ]20QUELQUES SUGGESTIONS POUR PREPARER LES FIGURES ET LE TEXTE ]]PPA 02 Je crains fort qu'il ne soit plus simple d"afficher un texte que de le préparer, et cela durera tant qu'il n'y aura pas d'éditeur pour "LirePic". Le premier problème est de préparer les images. A moins de les faire sur mesure pour l'écran de "LirePic", il faudra adapter des images existantes, (et généralement enlever des couleurs) au moyen de DPAINT et PIXMATE. 1 - Pensez aux couleurs de fond et de plume. A mon avis, elles doivent rester les mêmes pout tout le texte. cela signifie que ces couleurs doivent figurer dans toutes les palettes et aux mêmes places (0 et 1 par défaut). Cette mise en place dans les palettes sera l'affaire de PIXMATE. 2 - Réduisez le nombre des couleurs. On n"est pas forcé de travailler avec 16 couleurs. J'accorde que les affichages à 4 couleurs sont quelque peu limités, quoiqu'on puisse obtenir des effets intéressants avec les mélanges optiques ("dithered colors"), mais les affichages à 8 couleurs offrent de bonnes possibilités -- vous en avez un sous les yeux en ce moment. Plus vous avez de couleurs, plus les fichiers d'images sont gros, le chargement lent, et plus vous aurez de scintillements dans les scrollings. La réduction du nombre de couleurs peut se faire avec PIXMATE par les fonctions "Less Colors", "Pack" et "Reformat". 3 - Ouvrez DPAINT en 640x256 avec le nombre requis de couleurs. CHargez votre image et faites en une brosse. Si vous êtes parti d'une image en 320x256, réduisez la hauteur de moitié. Et bien sûr, sauvegardez votre brosse. Le texte peut se préparer avec ED. Le grand problème est de savoir quelle place reste au texte à doite ou à gauche des images, et le nombre de lignes occupées par une image. Je procède par essais et erreurs, par sauvegardes et affichages successifs. Par exemple, pour trouver le nombre de lignes, j'ajoute des instructions "]Pxx nn" jusqu'à ce que l'une d'entre elles apparaisse à l'écran. ] ]Pfi 05 ]Pfi 00 ] ]Pfi 06 D'accord, tout cela ne fait pas ]Pfi 01 ] ]Pfi 07 très professionnel. Considérez que ]Pfi 02 ] ]Pfi 08 c'est un début -- et maintenant, ]Pfi 03 ] ]Pfi 09 voyons ce qu'on peut faire avec... ]Pfi 04 3]CONDITIONS D'EMPLOI DE LIREPIC: Ce programme et sa documentation sont 3]copyrightés. On peut les distribuer librement dans des canaux non 3]commerciaux. On ne doit pas les inclure dans un produit commercial (ni 3]ensemble ni séparément) sans l'accord de l'auteur. La documentation ne 3]doit pas être modifiée.