\IMPRIMEZ VOS CODES A BARRES HP-41 AVEC LE 71!\ \Michael MARKOV [# ] et Eric GENGOUX [#108]\ \^Le programme que nous vous proposons ici a ÅtÅ initialement Åcrit pour HP-75 et pouvait piloter au choix une imprimante ThinkJet ou Epson. (voir CHHU V3N1 de janvier 86). Bien sÃr, j'en connais qui vont dire: "µa y est, on va encore nous parler du 75!". Eh bien, non! L'idÅe naturelle Åtait de le faire "migrer" sur HP-71, de tester au passage la possibilitÅ d'impression sur Laserjet (machine a priori compatible ThinkJet et utilisÅe pour faire votre journal prÅfÅrÅ), et d'adapter le module Epson È la 82905, plus rÅpandue en France (avec une excellente dÅfinition des codes-barre obtenus avec un ruban encreur neuf) Malheureusement au dÅbut, il est apparu que les fonctions hexadÅcimales du 75 et celles du 71 rÅagissaient diffÅremment, voire qu'il n'y avait pas de fonctions appropriÅes sur le 71. Une premiÉre version, utilisant plusieurs LEX inclus dans le projet "CHHU-ROM" aux USA, fut faite; enfin vint la version actuelle de "JPCLEX", dont les fonctions avaient ÅtÅ rÅÅcrites pour pouvoir, entre autres choses, "dÅsinverser les nybbles" (les initiÅs comprendront...). Tout ceci devait permettre de convertir une chaÑne d'octets en son "bit image" et d'y insÅrer les caractÉres de contrÂle voulus, sans acrobaties notables. Le prÅsent programme utilise donc JPCLEX, seulement ce LEX...\ \^J'ai failli oublier l'essentiel: le logiciel lit directement sur la cassette ou la disquette (ceci sans aucun risque, puisqu'on n'y Åcrit rien) les octets du fichier programme, et fait appel È des "menus". Tout est paramÅtrable: hauteur des barres, nombre de rangÅes par page, nombre d'octets par rangÅe, longueur de page, indication ou non de la traduction hexadÅcimale au-dessus de la rangÅe, nombre de "points" pour les barres "0" et "1", l'intervalle, etc... C'est ÅnormÅment plus rapide que tous les programmes d'impression de codes-barre par une HP-41 parus È ce jour (qui nÅcessitaient souvent les DEUX modules "HPIL-DEV" et "PLOTTER", et demandaient parfois plusieurs heures pour un programme un peu long - il ne faut plus maintenant que quelques minutes!), et on ne risque plus de vider les accus de la cassette ou de la 41...\ \^Finis, le folklore des batteries de blocs-secteur pour Åviter la "panne sÉche", la colle et les ciseaux, l'interminable bande de papier thermique... Pour dÅmarrer, c'est tout simple: mettez sur la boucle le 71, l'imprimante (ThinkJet, 82905 ou Laserjet) et la cassette ou disquette, faites RUN BAR713, et laissez-vous guider par les menus... Les programmes HP-41 sont lus par dÅfaut sur la premiÉre unitÅ de mÅmoire de masse sur la premiÉre boucle (mais rien ne vous interdit d'utiliser deux boucles sur le mÁme 71, et de spÅcifier l'identificateur complet du fichier (par ex. "PROG41:3:2" ou "PROG41:TAPE(2):2"...). Tous les types d'instructions sont traitÅs (sauf, peut-Átre, quelques synthÅtiques vraiment, mais alors lÈ vraiment, trÉs tordues!). Espions, sachez qu'un programme PRIVATE donnera des codes-barre eux-mÁmes PRIVATE.\ \^Le principe est simple: on commence par calculer l'emplacement du fichier sur le support, puis on en lit les octets dans une variable-chaÑne, P$. AprÉs quoi, on "parse" la chaÑne pour isoler chacune des "lignes" (i.e. instructions 41) ceci n'est pas absolument indispensable, mais permet d'Åcrire le numÅro des lignes au-dessus des rangÅes, et simplifie le problÉme des instructions È cheval sur deux rangÅes de code. On convertit au fur et È mesure les octets en leur "bit pattern", sans oublier de calculer les numÅros de rangÅe, les limites de la rangÅe de code et le "running checksum" qui va avec. L'impression se fait È partir du "bit pattern" (qui est le mÁme pour toutes les imprimantes), au moyen de l'un des deux modules spÅcialisÅs par type d'imprimante (les sÅquences d'Åchappement, et surtout le principe de fonctionnement graphique, diffÉrent entre ThinkJet et Laserjet d'une part, et 82905 de l'autre.).\ \^Il est possible d'imprimer une seule rangÅe (trÉs utile si votre cartouche d'encre se met È "baver" ou s'Åpuise en cours de travail!) ou de relancer une nouvelle impression (en modifiant les paramÉtres: longueur de page, hauteur, etc.), sans avoir È relire le fichier sur le support. Le maximum de simplicitÅ a donc ÅtÅ recherchÅ pour l'interface utilisateur.\ \^Si vous avez des questions, vous pouvez nous Åcrire (et ce n'est pas la peine de le faire en anglais pour aucun de nous deux!):\ \Michael MARKOV, P.O.Box 17, Lockwood, N.Y.14859, USA\ \ou Eric GENGOUX, 8 rue de Furstenberg, 75006 PARIS\ \^Alors, HAPPY BARCODING! Et soyez gentils: µa fait bien longtemps qu'on ne voit plus beaucoup de programmes pour 41 dans JPC... Maintenant, vous n'avez plus d'excuse!\