Skip to main content

magazine poms38

  • PublicationApple Periodicals
  • Pages76
  • Sourcemagazine_poms38.pdf
← Magazines magazine poms38
/ 76
Source: Internet Archive — Aggregated Apple-era periodicals, 1981–2012.
Page 1
Loading…
Text content (OCR)
La revue francophone indépendante pour les utilisateurs- des : Apple I+, He, Hoeg IIc, ues et Macintosh™ EP rincon atti UltraMacros Version frangaise Pom’s sini Apple Expo 88 Le monde se rejoint ala Villette. Cette année, le succes d’Apple Avec 150 exposants : parte- dans l’entreprise devrait ajouter naires @Apple, créateurs a Apple Expo une saveur toute et éditeurs de logiciels, constructeurs de périphériques. organismes de formation et éditeurs de presse. Mais aussi des conférences, et bien stir » la«Ville Apple». ~ Pour que demain som vraiment un autre jour De plus en plus de particuliére. Le monde du travail rejoint en effet celui des passionnés. Et chacun se retrouve sur une idée : c'est avec des machines puissantes, mais simples d’accés, que l'on donnera al'Homme les = moyens d’exprimer | performances? = le meilleur de y Certes, mais qui : lui-méme, vy permettent a chacun > les ressources de développer sa = ATintéricur. propre richesse. \ = Et cest ainsi Et a, tout le mon- = tout un point de vue de peut se rejoindre. = sur la productivité qui Out s‘impose dans la Grande a 3 Halle de la Villette. Apple Du mercredi 28 septembre au samedi I" octobre. De 10 4 19 h. Métro Porte de Pantin. La Grande Halle, la Villette. Pour le calendrier des conférences ou ('Y"" ZIT ==" d'autres informations : 3614 code: APPLE. i oe ee Numéro 38 septembre-octobre 1988 AW sur 2 colonnes I A.-P. Gaspar G8 Editorial Hervé Thiriez Me ‘ 77 = t Live | Page 37 3 Page7 Interview : Randy Brandt Page 8 Ensoniq 2 Marc Bavant Travaux pratiques (2) Page 11 AppleWorks new look, suite — Eric Weyland “le [Iss] Hc Page 39 C=) Les disquettes ‘Polices’ Ics | He} ——II | Hc Ee) ES) [eee Peete Da.Mover sas Page 17 Frédéric Rozay — & =) =e PR#6 Jean-Luc Bazanegue ce S Page 41 Ratievey i Puzzle Mare Girati eS Ss Bocas as) Ee) age Macintosh : les news [Fou] [fan] Ariel Sebban Page 50 camer iz) Les TimeOut en VF Dimitri Geystor Ics Le La disquette Mac 38 Page 52 es) eae) (aaeee Page 23 Le calcul des Premiers Prime.Factor Pascal Cantot We EI es) Gag Page 27 Apple // for ever Jean-Yves Bourdin [we ee Le Page 53 Applesoft & Dimitri AppleWorks Geystor He Iss Fe a Page 31 Courrier des Lecteurs Page 66 Sommaire des Pom’s Page 68 GC Petites annonces Mots croisés page 74 Les annonceurs ; Apple : p 2 ; Bréjoux A.E. : p 55 ; P. Carlier : p13 ; Logma S.A. : p 73 ; Ubi Soft : p 6 Editions MEV - 12, rue d'Anjou - 78000 Versailles. Tél. : (1) 39 51 24 43. Directeur de la publication : Hervé Thiriez Imprimé en France. No d’impression 784509 — Dépét légal : septembre 1988. Pom’s n° 38 Certaines nuits ne portent pas conseil... Lorsqu'an petit matin demeure, il reste la camee Joker. Bile donne un accés privilégié & notre Ho * sléphonique. Gratuite, la a accompagne chaque abonnement ; un no ut pour les programmes Ponts ProDos/D0S UTILITIES = ( A Noftivian 72. Single Copy iL 7.1 | | Macintosh _* Copic de sauvegarde de la plupart __ des logiciels se Copie de la plupart des logiciels sur disque dur ‘ Récupération de disques _endom- ages” | * Récupération de fichiers effaces _ méme sur disque dur Copy Il est livré avec MacTools |__ Copy II Mac 7.1, MacTools, avec documentation francaise : 500,00 F TTC Abonnés (carte Joker) : 450,00 F TTC Port : 20,00 F MANUELS EN FRANCAIS Copy II Plus 8.3 Apple // * Utilitaire complet pour la gestion des disques et fichiers DOS/ProDOS, y compris conversion automatique * Utilisation de toute la mémoire dis- ______ponible (un 800Ko en une passe par * Récupération de fichiers effacés ° Formatage de disques * Classement alphabétique des fichiers * Sauvegarde de la plupart des logiciels... Copy II Plus 8.3 sur disquette 5,25” ct 3,5”, avec documentation francaise : 500,00 F TTC Abonnés (carte Joker) : 450,00 FTTC Port : 20,00 F Maclools a Editions MEV/Pom's — 12, rue d°Anjou — 78000 Versailles. (1) 39 51 24 43, Commande par Minitel au (1) 39 53 04 40 UN CHALLENGE DE HAUT NIVEAU Du fait de son ouverture sur les marchés extérieurs et de son expansion internationale, UBI SOFT recherche: - DES PROGRAMMEURS EXCEPTIONNELS en C, Assembleur et Turbo Pascal * ayant déja réalisé leur programme et voulant 6tre édités ; * pouvant assurer la conversion de logiciels sur différents formats ; * voulant voir leur programme distribué dans tous les pays du monde. - DES GRAPHISTES DE TALENT | * qui pensent pouvoir égaler et méme surpasser les graphismes de | Zombi, Iron Lord ou Rocket Ranger ; * qui ont une imagination débordante. | - DES MUSICIENS DE GENIE * qui ont envie de mettre leur talent au service de la création ; * pour qui la musique sur micro-ordinateur n'a plus de secret. | VOUS TRAVAILLEZ sur Macintosh, Apple I, Apple II GS, et vous étes passionnés par ces machines ou vous connaissez l’Amstrad, le PC, M.S._X., Spectrum, Commodore 64, ST, Amiga, Nintendo, M.S.X. II. Un futur plein d'avenir peut s’ouvrir a vous. Aujourd’hui, téléphonez ou écrivez a UBI SOFT. Demain vous serez peut-étre choisis pour faire partie d'une équipe de gagnants. NOM ee ave Prénom ...- AGNOSSG sinc cesaeteacensanesderaicatere nec ereemen ember tren wiGe Ske santas ose vteaee Te Tél. . LAN GAG OF cine. naxtnmmuanenccenenpetes MACHINO Nera crxrecoenncimeaaraawtinaes Aretourner a UBI SOFT / christine QUEMARD 1, voie Félix Eboué - 94021 CRETEIL CEDEX - Tél. (1) 48 98 99 00 Ont collaboré & ce numéro Marc Bavant — Jean-Luc Bazanegue Jean-Yves Bourdin - Pascal Cantot A.-P. Gaspar - Dimitri Geystor Mare Girati - Olivier Herz Gérard Michel - Christian Piard Joélle Piard - Frédéric Rozay Hervé Thiriez - Eric Weyland Directeur de la publication rédacteur en chef Hervé Thiriez Rédacteurs Jean-Luc Bazanegue - Christian Piard Siege social Editions MEV — 12, rue d’Anjou 78000 Versailles — @ (1) 39 51 24 43. Serveur Minitel (1) 35 53 04 40 Publicité Editions MEV Diffusion N.M.P.P. Impression Berger-Levrault 18, rue des Glacis 54000 Nancy 83.35.6144 Photos CP & JLB Photogravure Graphotec 21, chemin de la ‘Tour 92350 Le Plessis-Robinson ® (1) 46 30 44 49 Pom’s est une revue indépendante non rattachée 4 Apple Computer, Inc. ni a Apple Computer France S.A.R.L. Apple. le logo Apple, Mac et le logo Macintosh sont des ‘marques déposées d’Apple Computer, Inc. TBM est une marque déposée de International Business Machine. PC et AT sont des marques déposées de la Société IBM. ditions MEV 1988 Toute reproduction intégrale ou partielle, Editorial L'événement TimeOut Ce n'est pas une nouveauté, c'est véritablementl'événement de cette rentrée pour le monde Apple//.In'y avait pas d'espoir de voir adapté 4 notre AppleWorks 1.4 le formidable potentiel des TimeOut : comme nous le disions dans le précédent numéro, nous avons choisi de retrousser nos manches parce que, pour Pom’s, la diffusion de logiciels essentiels n'est pas comprise comme une simple affaire d'achat/vente. Nous vous proposons aujourd'hui les premiers fruits de ce travail d'équipe qui nous a conduit des négociations préalables avec les détenteurs de droits américains jusqu'a ces quatre premiers TimeOut, travail de modification et d'adaptation des softs, de francisation des écrans, de traduction des manuels. De nouveaux fruits, de nouvelles surprises dans les prochains _ numéros. Bientét, dans ces colonnes, l'art et la maniére d'écrire soi- méme son application TimeOut avec exemple et sources, Virus Pom’s ne tombe pas dans la viromania médiatique mais lorsque l'un des plus grands éditeurs de softs pour Macintosh constate in extremis que des disquettes a diffuser ne sont pas saines... De facon accessoire, nous vous offrons sur la disquette de ce numéro six outils Mac qui protégent contre les effets de ces routines malignes. Comme d'une vaccination ou d'un médicament, n'en attendez pas une universalité ; de nouveaux virus mutants et résistants guettent ! Apple Expo Notre rendez-vous annuel vous permettra cette année de rencontrer quelques auteurs de larevue (voir page 67). Vous étes auteurs ou futurs auteurs ? Ne manquez pas de vous présenter et de nous parler de vos projets : c'est par l'écoute attentive de ses lecteurs que Pom’s évolue de effectuée par quelque procédé que ce soit, sans numéro en numéro. Yaccord écrit d'Editions MEV, constitue une contrefacon, Loi du 11 mars 1957, articles 425 et suivants du Code Pénal. Droits de traduction, de reproduction ct d'adaptation réservés pour tous pays. Hervé Thiriez Pom’s n° 38 Th oe eererel:=[_ia&asS_—F__—a—K«—F—F—<—E—GCxzeseeeeeeeeeee ee eer A gauche Randy Brandt accompagné de B. Lissner, auteur d' AppleWorks Le nom de Randy Brandt, des Beagle Brothers, est déja bien connu de nos Iecteurs. A l'occasion de la sortie des premiéres applications TimeOut en version frangaise, Pom’s lui a posé, péle-méle, quelques questions sur son travail, ses projets, le métier de program- meur, les copies- pirates, l'avenir des Apple //, etc. Pom’s — Avez-vous déja écrit de nombreux programmes, et lesquels ? Randy Brandt — Je vous en donne une liste dans l'ordre chronologique : Big-U, MacroWorks, SuperMacro- Works, PathFinder, TimeOut UltraMacros, PatchMania, TimeOut MacroTools et TimeOut PowerPack Mais j'ai aussi contribué aux disques suivants : Extra K, ProByter, Minipix, Late Nite Patches, TimeOut DeskTools II et TimeOut SpreadTool. Pom’s— De tous ceux-ci, en est-il un dont vous étes particuliérement fier? Randy Brandt — C'est sans doute TimeOut UltraMacros ; j'ai réussi, en trés peu de place, a installer un arsenal de commandes d'une puissance étonnante, assorti cn méme temps d'une trés grande souplesse d'emploi pour l'utilisateur. Et j'avoue avoir aussi un faible pour PathFinder ; il fonctionnait deux jours aprés que j'en ai eu l'idée... Pom’s —Nos lecteurs de Pom's aimeraient en savoir un peu plus sur vous. Est-il indiscret de vous demander de vous présenter ? Randy Brandt — Je suis né au Canada, en 1960. Plus précisément au Manitoba — la neige et les grands espaces. Et puis, & l'age de 19 ans, je me suis transporté loin vers le sud : en Californic, & plus de 3 000 kilométrs. J'y ai suivi des études universitaires au Christian Heritage College, avec comme option principale... la biologie. C'est la que j'ai renconué ma femme Joanna, c'est 1A aussi que j'ai commencé & programmer sur un Apple TI+. Tl n'y avail pas, je précise, de cours de Programmation dans mon établissement (j'ai d'ailleurs terminé avec un dipléme de littérature anglaise) ; j'ai appris en autodidacte, en piochant dans Nibble et Call-Apple. Unc fois mes diplémes en poche, j'ai €pousé Joanna et me suis établi aux Etats-Unis. Deux ans plus tard (en 1985), les Beagle Bros m'ont engagé pour travailler 4 la documentation Interview: Brandt dExtra K et de ProByter. Cette méme année j'ai écrit Big-U (un utilitaire sous ProDos), puis vinrent les droits d'auteur de MacroWorks, C'est depuis cette Epoque que, ma foi, la vie me sourit. Pom’s — C'est-a-dire ? Estimez- vous mieux gagner votre vie que, mettons, un médecin, un journaliste, un avocat ? Et pour y arriver, combien d’heures travaillez- vous au total par semaine ? Randy Brandt — Un programmeur peut bien gagner sa vie 4 condition d'avoir sorti un ‘best seller’, ou méme plusieurs. Soyons francs : peu d’entre nous y parviennent. Mes ‘améliorations’ a AppleWorks ont été d'un excellent rapport, mais de 1a & dire que je réussis aussi bien qu'un avocat ou un médecin... Ma femme ct moi avons des gojfits modestes ; nous sommes heureux dans notre petite maison : nous avons notre chambre, nos deux petites filles (Heather — 3 ans — et Erica — 1 an —) ont la leur, et... mes ordinateurs occupent la troisiéme. Nous nous estimons privilégiés d'avoir nowe maison, mais nous la payons 4 tempérament, comme tout le monde. Je travaille environ 60 heures par semaine. Je commence rarement avant 9h30 du matin, et je continue en général au-dela de minuit. Comme je fais des pauses pour langer Erica, ma femme ne me tient pas trop rigueur Pom’s n° 38 des couchers tardifs. De toutes fagons, elle m’a toujours sous la main ! Le vendredi est le jour des Beagle Bros : nous nous retrouvons tous au “bureau’, autour d'un lunch de travail : Je fondateur des Beagle Bert Kersey, le président de la société Mark Simonsen, les programmeurs Alan Bird, Rob Renstrom, Dan Verkade, et moi-méme. Nous échangeons des idées, montrons nos derniéres ‘ceuvres’ ; mais la discussion est tout aussi animée qu'il s'agisse dordinateurs, de sport, de politique ou de n'importe quel autre sujet. Le dimanche est consacré au culte (église Evangélique protestante), aux amis et la détente. Il m'arrive parfois, les dimanches aprés-midi, de faire mon courrier pendant que les ‘dames de la maison’ font la sieste. Toutefois, j'essaie de m'astreindre, autant que possible, 4 accorder aussi 4 mes ordinateurs leur repos dominical. Mais comme la programmation est un exercice plus mental que physique, je narrive jamais a y échapper totalement. Il faut croire que ga “travaille dans ma téte’ méme quand je dors, car il m’arrive de me coucher apres avoir vainement tenté de résoudre un probléme, et d'aller droit & Ja solution le lendemain matin. Pom’s — Et les loisirs ? Randy Brandt — Une fois les ordinateurs éteints ? Il ne leur reste pas beaucoup de place. Par contre, j'ai une télé dans mon bureau, et j'aime bien suivre les sports tout en programmant. J'aime aussi la lecture (fiction et réalité), m'instruire en matiére politique et religieuse, jouer aux échecs, au baskct ct autres sports. J'adore aussi jouer avec mes deux petites filles, Pom’s— Quels conseils donneriez- vous a un jeune qui réve de devenir le Randy Brandt de I'an 2010? Randy Brandt — Si un écolier me demandait comment on devient un programmeur (qui réussit !), je lui conseillerais, avant toute chose, de Suivre des cours de dactylographie, de géométrie et de maths. Tout logiciel représente un ensemble de problémes conceptuels et logiques : des connaissances d’algébre et de géométrie sont particulitrement utiles. De plus, on ne programme pas bien si l'on ne sait pas bicn taper a la machine : il faut donc absolument en Passer par 1a. Bien que je ne pratique que le Basic et l'Assembleur, je recommanderais aux programmeurs A venir d'apprendre le langage C. C'est Ie langage du futur, et je compte d'ailleurs m'y mettre moi-méme. Mes amis Mark, Alan et Rob ont tous les trois appris la programmation a l'université, et ¢a leur donne un avantage sur moi. Quant a moi, j'ai appris la programmation sur le peu de temps de libre que me laissaient mes autres études, I'activisme étudiant (nous appelons cela ‘Student government’), les articles que j'écrivais dans le journal universitaire, etc., etc. Bref, je me suis formé en lisant des revues. Si c'est votre voie, épluchez tous les programmes de Pom’s : il ne suffit pas de les recopier, il faut s'en imprégner si vous voulez programmer & votre tour. Enfin, il faut que programmer soit pour vous un PLAISIR. Sinon, n'insistez pas, allez chercher fortune ailleurs. A ma connaissance, tous les programmeurs qui ont réussi adorent leur métier. J'aime a dire en boutade que je n'ai pas de métier, juste un violon d'Ingres & plein temps ! Pom's — Revenons aux Beagle. Pour le moment, l'essentiel de leur production — nous voulons parler de la nouvelle série TimeOut — se situe dans le sillage d'AppleWorks. Ne craignez-vous pas de mettre ‘tous vos ceufs dans le méme panier’ ? Bientét, Claris va sortir le nouvel AppleWorks GS. N’allez-vous pas étre débordés ? Randy Brandt — Non, pas du tout. AppleWorks GS sera trés Ient par rapport a AppleWorks, et fort gourmand en mémoire (1,25 Méga pour Ie moins). Il ne devrait pas ‘faire de l'ombre’ a la série TimeOut. Beaucoup de ceux qui posstdent un GS hésitcront a sortir quelques centaines de dollars — ou milliers de francs — uniquement pour faire tourner un programme affligé d'une interface graphique poussive. Dvailleurs méme les //c et //e continuent & bien se vendre (du moins aux Etats-Unis), et il y aun grand nombre d'utilisateurs d'AppleWorks qui ne sont pas encore passés TimeOut, et qui y viendront. Je prédis, personnellement, que la majorité de ceux qui achéteront l'AppleWorks GS continucront a faire Yessentiel de leur travail avec AppleWorks et TimeOut, et ne passeront a I'AppleWorks GS que pour des applications spéciales, pour des mises en page élaborées par exemple. Il est bon que Claris ait pris une initiative favorable a l'Apple //, et je m’en réjouis ; mais pour abattre du boulot, vite fait bien fait, le bon vieil AppleWorks est loin d'avoir dit son dernicr mot. D'ailleurs, a l'AppleFest du mois de mai dernier, tant Bob Lissner (l'auteur d'AppleWorks) que Claris (son distributeur) ont annoncé une mise a jour de la demiére version (anglaise) d'AppleWorks. Pom’s — Programmez-vous seul, ou en équipe ? Comment coordonnez- vous votre travail ? Randy Brandt — Tous les programmeurs de chez Beagle travaillent généralement seuls, dans la mesure oi ils ne mettent pas leurs fichiers-sources en commun, Mais on peut dire aussi qu'ils travaillent en €quipe car ils essaient mutuellement leurs programmes, se font des suggestions, ou méme échangent des idécs & développer. Je vous ai déja parlé de nos réunions du vendredi : C'est au cours de ces lunchs que nait I'émulation. Nous sommes, cn quelque sorte, une grande famille : nos €pouses et nos enfants se connaissent, et nous fétons ensemble nos divers anniversaires, en toute amitié. Il n'y a pas de cloison étanche entre le travail et le reste de l'existence. Nos ages ? En moyenne, autour de trente, un peu moins peut-€tre. Matt Reimer est l'exception : il avait 16 ans quand il a commencé chez les Beagle Bros, ilen a 19 aujourd'hui. Mait a travaillé sur les ‘Beagle Screens’. Il écrit actuellement un programme de dessin pour TIGS nommé ‘MiniPaint’, qui sera distribué par JEM SoftWare dés I'hiver prochain pour un prix de 25 dollars. Il en sortira une version plus puissante d'ici une année sans doute, qui sera publié Pom’s n° 38 2) 10 cette fois par Ics Beagle Bros. J'ai fait Ja connaissance de Matt alors que je faisais un remplacement en tant que prof de chimie a son école, a I'époque oii il faisait ses premitres armes chez les Beagle Bros. Etc’est pas hasard que nous avons découvert que nos grands-péres avaient 616 de bons amis, il y a 50 ans, au Canada ! Pom’s — Quels sont vos langages de programmation favoris ? Quels outils de programmation utilisez- vous ? Sur quelle(s) machine(s) ? Randy Brandt — Je n’écris qu'en assembleur 6502, a l'exception des programmes d'installation qui sont en Basic Applesoft. Pardon, j'utilise aussi un troisiéme langage de programmation : c'est UltraMacros sur AppleWorks ! Tout récemment, je suis passé au Macintosh Programmer's Workshop sur Macintosh SE, et 4 son assembleur IIGS. Vu sa puissance, je crois que je finirai par I'utiliser pour tout mon travail futur. Mais la totalité de mes programmes actuels ont été écrits avec Merlin Pro, d'abord sur un /ic, puis sur un IGS. Voici une liste de mon matériel : * Un Apple IIGS avec 1,75 Mégas (GS RAM d'Applicd Engineering) * 1 carte RamFactor (1 Méga) avec batterie autonome (Merlin, AppleWorks, ctc.) * 1 lecteur 3,5" * 1 lecteur 5"1/4 + 1 modem 1200 bauds * 1 écran //e vert Apple //e (pour la programmation) + 1 cran couleur IIGS (pour épater les amis, et pour les logiciels scolaires “Sticky Bear” de ma fille Heather) * 1 imprimante ImageWriter II + 1 Apple //c + 1 Macintosh SE avec disque dur interne 20 Méga. (Mes amis Roger et ‘Tina Wunker, qui font toutes les expéditions des logiciels JEM Software, gérent la liste des clients avec le //c et la Base de données d'AppleWorks). Jusqu'a préscnt, je n'ai employé que Word de MicroSoft, et I'MPW sur le AppleWorks sur le IIGS. Je réserve Word a des travaux spéciaux, que je souhaite imprimer sur la LaserWriter des Beagle. Nous faisons aussi la mise en page de nos manuels avec Word, bien qu'ils soient d'abord écrits sur AppleWorks, puis transférés sur Mac. Pom’s— Vous avez toujours eu pour politique (comme Pom' s) de vendre des programmes non protégés, malgré le risque de les voir piratés. Et pourtant, malgré (ou a cause de ?) leur prix trés raisonnable, ils continuent a bien se vendre. Qu‘avez-vous a dire a ce propos ? Randy Brandt — Ce n’est pas une ‘protection’ qui découragera les déplombeurs ; je dirai méme qui'ils y voicnt un défi. A mon avis, face 4 un bon logiciel non protégé, a un prix abordable, une personne honnéte reste honnéte, alors que le pirate endurci n'y trouve aucune stimulation. Quant au “gagne-petit’ décidé a se procurer des logiciels gratis, il y parvient de toutes facons, protection ou pas. C'est tegretlable, mais cela fait partie des désagréments du métier. Il serait injuste de vouloir imposer, pour une protection illusoire, des désagréments la majorité des acheteurs honnétes. Il est trés difficile, pour ne pas dire impossible, d'utiliser des disques RAM et des disques durs avec des logiciels protégés. Notre politique a toujours été de proposer des logiciels d'accés simple et convivial, et notre clientéle nous en sait gré. Pom’s — Cette clientéle vous écrit-elle beaucoup ? Comment arrivez-vous @ lui répondre et @ Programmer quand-méme ? Randy Brandt — Oui, le courrier ne manque pas : je lui consacre plusieurs heures par semaine ! UltraMacros m'apporte des consolations : la correspondance me prend du temps, mais m'améne souvent de bonnes idées. Je crois que mes correspondants apprécient mes propres suggestions & leurs questions Pom’s— Et Apple, dans tout ga ? Que pensez-vous du IIGS ? Quand ona Randy Brandt — L'avenir du IIGS se présente bien. II est de plus en plus question d'un modélc amélioré, plus rapide, avec une meilleure résolution verticale et d'autres ‘plus’. Les premiéres innovations ne viendront peut-étre pas d'Apple. Déja, des sociétés comme Applied Engineering travaillent sur des accélérateurs et des cartes mémoire perfectionnées. Apple soutient la famille des Apple // (du moins aux U.S.A.) en proposant un //c équipé d'un lecteur interne 3,5". Si Apple pensait que la famille des // était morte et enterréc, il ne se donnerait pas la peine de sortir un nouveau //c. Vu le nombre d'Apple // couramment utilisés dans le monde, je crois que méme si Apple arrétait d'en fabriquer, ils auraient encore un bel avenir devant eux. Connaissez-vous une autre machine qui compte un tel nombre d'utilisateurs dévoués ? Il appartient & des publications comme Pom’s, Nibble, Open Apple et d'autres de faire circuler l'information, maintenir un lien entre les membres de cette immense communauté, de ne pas laisser s'étcindre I'enthousiasme. Quant a moi, j'ai été hcurcux de cette occasion de partager un peu de mon univers personnel avec les lecteurs de Pom’s. J'applaudis aux efforts de votre revue qui a su garder a l'Apple // une place de choix dans un pays quelque peu saisi par la ‘fiévre de Mac’, et je vous envoie & tous un trés amical salut! 2oass CS Disquettes DPA 147 Vous trouverez la description de nos sept premiéres disquettes Apple // Shareware dans le numéro 37 de Pom’s ou sur notre serveur Mac. un /le, faut-il le vendre, ou le mettre a Minitel au: Pour gérer toutes mes fiches, faire niveau ? Quel est l'avenir de l’Apple // mon courrier, etc. j'emploie en général ? (1) 39 53 04 40. Pom’s n° 38 iene rte Le ee Ensonig : Marc Bavant La premiére partie de cet article, publiée dans le numéro 37 de Pom’s, nous a permis de faire connaissance avec la ‘théorie’ de l'Ensoniq ; passons donc mainte- nant a la pratique... Etalonnage du convertisseur Nous savons peu de choses sur ce convertisseur sinon qu'il accepte des tensions comprises entre 0 et 2,5 V. Construisons-nous un petit programme qui se charge d'interroger le convertisseur et de stocker 256 résultats successifs. 1800:LDA £13 ! STA CO3C 1 LDA £82 ! STA CO3E 1 LDx £0 180C:LDA CO3D 1 pec 0 ; histoire de passer § cycles ! DEC 0 0 0 DEC 0 DEC 0 2 000,x ! ! ! ! ! INX ! BNE 80c ! * Pour fonctionner comme souhaité, ce programme doit étre lancé en vitesse lente (sélectionnez vitesse normale dans le tableau de bord, revenez sous Basic et faites un Reset pour étre plus stir). En vitesse rapide, il faudrait ajouter des délais pour atteindre les 32 microsecondes indispensables (faites-le A titre d'exercice). Vérifier 4 l'aide d'un voltmétre que le circuit ne délivre aucune tension entre les broches 1 ct 2 (si c'était lc cas, vous vous seriez trompé de broches !) ct court-circuitez-les. La valeur trouvée par le convertisseur est alors 0. Si vous vous en sentez capables, bricolez une alimentation variable avec une pile et un potentiométre. Reliez la masse au péle moins de la pile et appliquez prudemment et successivement des tensions de 0 a 2,5 V de manitre a étalonner le convertisseur. Pour ma part, aux erreurs de mesure prés je trouve : tension (V) valeur numérique BE D2 Ee 2.4 Fc Ces résultats montrent de maniére flagrante que le convertisscur cst linéaire sur la totalité de son domaine, avec une pemte constante d’environ 110/V. Cette gamme de tensions admissibles va nous poser un petit probléme car la plupart des équipements de reproduction musicale (postes de radio, magnétophones...) fournissent un signal de valeur moyenne nulle, signal qu'il faudra donc polariser autour de 1,2 V si on veut I'utiliser en entrée du convertisseur. Et ceux qui fourniraient éventuellement un signal polarisé n'ont aucune raison d'avoir la tension moyenne que nous recherchons. Un simple couplage par condensateurs et un pont diviscur tel que celui décrit ci-aprés feront l'affaire dans tous les cas. Attention : Mesurez la tension U avant de relier le DOC au montage, U = polarisation continue + signal et vérifier Travaux pratiques impérativement : OU <K25V Ce montage ne _ protige absolument pas le DOC des surtensions ni d'une erreur de polarité dans le branchement de la pile. Si vous ne savez pas distinguer le pOle ‘+ d'une pile de son péle ‘—’ réclamez des dommages-intéréts au Ministére de 1'Education Nationale. i Source sonore ea H ibroche 2 i i Ics broche 1 i i C=2,2nF R2=3R1 R1=10KQ V=4,5a5Y Adaptateur d'entrée du convertisseur analogique ™* numérique Ecoute directe du son numérisé et écrété Ce paragraphe va certainement rappeler des souvenirs 4 ceux qui avaient utilisé l'entrée cassette de leur Apple ][+ ou //e pour numériser des messages qu'on pouvait lui faire restituer d'une voix nasillarde, mais parfaitement intel- ligible et naturelle, 4 tout moment. La technique est ici la méme : on ne regarde que le signe du signal d'cntréc (par rapport a sa valeur moyenne) et on actionne un déplacement de la membrane du haut-parleur 4 chaque changement de signe. Pom’s n° 38 11 actionne un déplacement de la membrane du haut-parleur 4 chaque changement de signe. 1800:LDA £13 ! STA cO3C ! LDA £E2 ! STA CO3E 180A:LDX CO3D ; 4 cycles JSR 830 512+ n*2 (n= nombre de NOP) 1! 9XA 72 BOR 0 32 BPL 80A :3 STX 0 STA C030 BIT C061 BPL 80A RIS y haut-parleur } bouton ou GB 1830 :NOP 1 NOP ! NOP ! NOP ! RTS Une fois encore, les temps sont ajustés pour un fonctionnement 4 1 MHz. Testons tout cela. Choisissez une station de radio, de préférence en modulation de fréquence en raison de la meilleure qualité du son, et au moment des informations pour pouvoir évaluer lintelligibilité. Récupérez le signal de la prise casque, par exemple grace 4 un jack monophonique avec un éventuel adaptateur stéréo-mono, et enfin injectez ce signal a l'entrée du montage polarisatcur aprés avoir pris soin de baisser le réglage de volume du poste. Tlest prudent de garder un volumétre en paralléle sur l'entrée du DOC pour surveiller les tensions appliquées. Lancez le programme ci-dessus, ajustez le volume juste au-dessus du seuil limite, ne lésinez pas sur les aigus et appréciez la qualité de la parole écrétéc c'est-A-dire, dans notre cas, numérisée avec un seul bit par échantillon. Si tout fonctionne correctement, la parole doit étre clairement intelligible et ressembler & ce qui peut sortir d'un walkie-talkie, d'un poste CB ou autres gadgets pas précisément renommés pour leurs qualités musicales. Si ga ne marche... pas cherchez l'erreur ! L'avantage de ce type de numérisation est bien entendu la compacit¢ uu codage qu'il est possible d'atteindre (pour mémoire, les systtmes similaires sur Apple // permettent de stocker une petite dizaine de secondes de parole dans 16Ko, mais cela dépend beaucoup de la qualité du son). La fréquence d'échantillonnage est toutefois un peu faible sur le DOC pour ce genre de technique (I'entrée cassette était mieux adaptée aux échantillonnages rapides sur un bit). Quand vous en avez assez, frappez la touche G ou faites reset. Numérisation et stockage du son dans la RAM privative L'expérience précédente nous aura surtout permis de vérifier que notre montage fonctionne correctement. Nous allons maintenant préparer I'étape suivante cn stockant Ics valeurs numérisées dans la RAM privative du DOC. On peut noter au passage qu'il est dommage que le processeur soit obligé d'intervenir pour cette opération qu'on aimerait bien voir le DOC effectuer seul. Le programme qui suit est une copie du précédent légtrement compliquée par la valse des registres. *1800:LDA £00 ! SYA CO3E ! STA CO3F (acquérir Véchantillon précédent et relancer la numérisution) 1808:LDA CO3E 54+ keycles ! PHA A ! LDA £13 52 ! STA C03C i4+k ! LDA £E2 32 ! STA CO3E i4ek ! LDxX c03D s4tk ! BNE @1C :3 (remplacer les valeurs $00 par $01) ! INX 52-1 (insérer Uéchantillon dans la RAM privative) 181C:LDA £73 12 ! STA CO3C 44k 1 PLA +4 ! STA CO3E s4tk ! sTX cO3D s4ek (continuer jusqu’a 64 Ko échantillons) ! LDA CO3E s4+k ! BEQ 631 s3 ! NOP $2-1 ! IMP 834 33 (astuce pour équilibrer les temps de cycle) 1831:LDA CO3F) =; 4-14k 1834:BNE 808 i3 ! RTS Lancez ce programme par 800G, le prompteur du moniteur réapparaitra aprés un court instant quand toute la RAM privative aura été remplie. Remarque : la valeur 0, qui correspond a une tension rigoureusement nulle, a la mauvaisc propriété d'étre également un ordre darrét pour les oscillateurs qui essaient de la produire, d'od notre INX. Remarque 2 : on a procédé A une astuce pour éviler que la durée de la période d'échantillonnage ne différe selon la branche empruntée par le programme aprés le test de début de page. Ceci n'a sans doute pas grand effet sur la qualité du son et présente l'inconvénient d'allonger cette période dans tous les cas. Exercice 5.1 : on arrive @ une période d'échantillonnage de 59 ou 60 cycles si je ne me wompe pas, ce qui est un peu trop pour un fonctionnement du microprocesseur a 1 MHz et pas assez en principe pour 2,8 MHz. Néanmoins, on verra que grace au ralentissement dQ aux accts & la mémoire lente, ce programme fonctionne également en vitesse “rapide”. En supposant que l'accés ala mémoire lente se fait exactement a 1 MHz, calculez le nombre équivalent k de cycles & 2,8 MHz “ajoutés” aux instructions STore et LoaD. (réponse : k=11 environ) Exercice 5.2 : calculez la fréquence d'échantillonnage correspondant a ce programme tournant & 1 MHz, Calculez le débit binaire moyen de transfert dans la RAM des données numérisées. Calculez le temps de remplissage de la RAM. Mesurez-le et comparez. Exercice 5.3 : mesurez le temps de remplissage pour l'horloge 4 2,8 MHz. Déduisez-en la période et la fréquence d'échantillonnage. Conclusion, Nous pouvons lancer ce programme mais, a ce stade, nous n'aurons pas d'assurance sonore que tout s‘est bien passé. Contentons-nous donc d'observer une page de la RAM privative et de vérifier qu'elle contient Pom’s n° 38 des données plausibles. “! 1840:LDX £0 ! JSL FF40A8 1846:STA 2000,X ! USL FR40AF ! INK ! BNE 846 ! RTS ! * 840G 2000.20KF ; ReadRam ; ReadNxt Remarque : comme nous exécutons ce programme en mode 8 bits, l'octet de poids fort du registre X n'est pas positionné par nous, on observe donc bien une page de la RAM mais on ne sait pas laquelle a priori. 6. Les registres d'oscillateur Voici I'heure du plat de résistance ! Les lecteurs pressés peuvent sauter directement aux expériences mais il ne comprendront pas tout. Il ne sera pas question ici d'entrer dans tous les détails, mais seulement d'essayer d'éclairer la documentation dévelop- peurs sans la paraphraser. La lecture intégrale de cette documentation (Ensoniq DOC ERS, 11 pages) n'est pas nécessaire pour comprendre ce chapitre, mais je la recommande fortement a ceux que le sujet intéresse. Généralités sur les oscillateurs Le DOC est un processeur synchronisé grace a une horloge 4 7,14 MHz (je ne garantis pas cette valeur sur laquelle la documentation semble hésitante). Le cycle de traitement interne du DOC est 8 fois plus long que le cycle d'horloge. Pendant chaque cycle de traitement, le DOC ‘donne la parole’ a un oscillateur, par ordre de numéro croissant et jusqu'a concurrence du nombre d'oscillateurs autorisés (si quatre oscillateurs sont autorisés, le DOC donnera successivement la parole au 0, au 1, au 2, au 3, au 0, etc.). Il consacre ensuite deux cycles au rafraichissement de la RAM. La durée qui sépare deux interrogations successives du méme oscillateur dépend donc du nombre d'oscillateurs autorisés. Par commodité, on lui donnera le nom de période d'échantillonnage du DOC (ne pas confondre cet échantillonnage de sortie avec l'échantillonnage de 32 microsecondes réalisé par le convertisseur d'entrée !) Chaque oscillateur est en fait un générateur d'adresses, c’est-a-dire que lorsque le DOC lui donne la parole, il élabore une adresse de 16 bits a l'aide des informations de commandes que l'utilisateur a placées dans ses registres. Vous aurez siirement deviné que cette adresse désigne un octet de la RAM privative du DOC et que c'est justement cet octet-l4 qui va ensuite passer dans le convertisseur numérique-analogique qui conduit a la broche 3 du connecteur. La génération d'adresse Enuons maintenant dans les détails de la génération d'adresse. Tout d'abord, notons que les calculs d'adresse se font sur 24 bits. A chaque oscillateur est associée une valeur courante sur 24 bits qui est mise a jour a chaque cycle de traitement par addition d'un nombre de 16 bits contenu dans les registres dits de fréquence de cet oscillateur. Les calculs se font dans I'accumulateur de T'unité arithmétique du DOC. Ll faut ensuite procéder a un savant mixage pour obtenir l'adresse recherchée en fonction du contenu de I'accumulateur. Cela se fait a l'aide de trois paramétres : - larésolution ; la page de début de la ‘table d'onde’ ; - lalongueur de la ‘table d’onde’. On peut écrire symboliquement : POUR CHAQUE OSCILLATEUR i ET A CHAQUE CYCLE DE TRAITEMENT FAIRE ACCUMULATEUR = COURANT (i) ACCUMULATEUR ~ ACCUMULATEUR + INCREMENT (i) COURANT (i) = ACCUMULATEUR ADRESSE (i) = F (ACCUMULATEUR, RESOLUTION(i), DEBUT (i), LONGUEUR (i)) PIN TRAITEMENT Parallélement a I'explicitation de la fonction F, nous développerons un exemple numérique en prenant ACCUMULATEUR = $04FF82. Le paramétre de résolution nous permet déja de nous débarrasscr de 8 bits superflus dans I'accumulateur. On peut garder les bits de b23 ab8 : $04FP (résolution 7) de b22ab7: $09FF (résolution 6) etc. de b16ab1: $7FA1 (résolution 0) Vous voyez que dans tous les cas le bit NUMERI LOGICIEL DE CALCUL MENTAL Comprenant 8 niveaux d'additions, 6 de soustractions, 6 de multiplications, 7 de divisions, et des calculs algébriques avec parenthéses : 3000 opérations choisies pour leur intérét pédagogique, s'adressant aux éléves de CM1, CM2, Géme et Séme. Pour Apple //e (64Ko), Apple //c et Apple IIGS Prix du logiciel avec sa copie de sauvegarde et sa notice d'emploi : 210 F TTC + 20 F de port Envoyer ce bon et votre réglement a : P. Carlier — 16, impasse du bureau — 75011 Paris Pom’s n° 38 13 0 est sacrifié (le bit 1 aussi d'ailleurs a cause de ce qui suit). Notez tout de méme que l'accumulateur est sauvegardé pour le cycle suivant, donc le bit 0 n'est pas du tout inutile ! La ‘table d'onde’ (wavetable) est tout simplement un segment de la mémoire RAM privative auquel on veut cantonner I'oscillateur. Autrement dit, on ne I'autorise pas 4 générer des adresses en dehors de ce segment. Pour simplifier les calculs du DOC nous sommes astreints 4 définir des tables d'onde commencant impérativement en début d'une page (c‘est-a-dire avec une adresse divisible par $100) et dont la longueur est un nombre entier de pages, puissance de deux comprise entre 1 et 128 (ce qui correspond a des tailles de 2**8 4 2**15 octets). Noue bonheur ne serait pas complet si on n’ajoutait pas a cela une restriction liant ces deux paramitres, 4 savoir que le début d'une table d'onde doit avoir une adresse multiple de sa longueur. Illustration un segment d'une page peut commencer & n'importe quel début de page ; un segment de 16 pages ne peut commencer qu'a une adresse de la forme $n000 ; un segment de 128 pages (alias 32 Ko) ne peut commencer qu'a Tadresse $0000 ou $8000 ; un segment de 2**L pages ne peut commencer qu'a une adresse de la forme d*2**(L+8), ot d < 2*#(8-L). Plagons-nous dans le cas d'un segment de 16 pages commengant en $A000 (et finissant en $AFFF par conséquent) et reprenons notre exemple. Avec la résolution la plus fine RES=0, notre adresse $04FF82 est devenue $7FA1. Tl nous reste & extraire de ce nombre les 12 bits qui suffiront pour adresser un octet déterminé au sein de la table d'onde. Le DOC choisit les 12 bits de poids fort (S7FAO -> $7FA) d'oi l'adresse définitive $A7FA. De maniére plus générale, si on considére un segment de 2**L pages et une résolution RES, l'adresse générée est formée des 8-L premiers bits du numéro de la premiére page et les 8+L is 14 bits suivants sont extraits de l'accumulateur entre les positions 16+RES et 9+RES-L (bornes incluses). Tout ceci est illustré dans le tableau de la page 11 de la documentation développeurs, mais se résume en une seule égalité qui exprime l'adresse générée au k-itme cycle de traitement : ADRESSE(i) = (DEBUT(i) DIV 2** (8+L))*2"*(8+L) + ((k* INCREMENT()) MOD 24# (8+L)) DIV 2**(9+RES-L)) Cette derniére égalité n'est donnée qu’'a titre indicatif. Si elle vous rebute (ce qui ne serait pas étonnant) contentez-vous de comprendre T'explication donnée ci-dessus. Quelques formules pour mieux saisir On aura compris que la fréquence du son issu du DOC est une fonction des nombreux paramétres décrits ci-dessus. Commengons par exprimer la fréquence d'échantillonnage (inverse de la période d'échantillonnage) désignée dans la documentation par SR. SR = CLK / (@*(0SC + 2)) ou l'on retrouve CLK la fréquence d'horloge, 8 le nombre de cycles d'horloge pour un cycle de traitement, OSC le nombre d'oscillateurs autorisés et 2 le nombre de cycles de rafraichissement. On peut mettre ceci en paralléle avec la fréquence d'échantillonnage d'entrée : SRin = CLK / 8476 oi l'on retrouve 26, le nombre de cycles de waitements par numérisation. Imaginons maintenant que nous définissions unc table d'onde en RAM contenant une période unique d'un signal périodique quelconque. Nous pouvons demander a un oscillateur de parcourir cette table indéfiniment en bouclant (croyez-moi sur parole pour le moment). Le son produit sera donc également périodique et de période égale & la durée de parcours de cette table (période du fondamental). Calculons cette durée ; 4 chaque période de traitement, l'oscillateur incrémente T'adresse qu'il produit d'une quantité n : n= FC / (2**(9+RES-L)) ot FC est l'incrément (contenu des regisures dits de fréquence), RES est la résolution et 2**L est la longueur de la lable en pages. La période du fondamental est donc : T= nombre d'’échantillons lus / fréquence de traitement T= (nombre total / pas de lecture) / SR T= (2**(L+8)/n)/SR= 2**(17+RES) / (FC * SR) Ce n'est pas un hasard si la longueur de la table n'intervient plus dans cette derniére formule c'est une conséquence directe des mécanismes compliqués de calcul d'adresse. C'est méme vraisemblablement leur cause ! De cette maniére, vous avez le choix du pas d'’échantillonnage de votre signal : soit vous choisissez un pas trés fin et alors vous aurez une table d'onde trés longue, soit vous choisissez un pas grossier et alors la méme portion du méme signal tiendra dans une ‘table d'onde’ plus courte. Si les paramétres FC, RES et OSC sont identiques dans les deux cas, vous obtiendrez en sortie du DOC un signal de méme fréquence mais de qualité sonore peut-étre différente. Les registres dits de commande de fréquence $00-$1F et $20-$3F (frequency control, low and high) Ceux de la premiére série contiennent les bits de poids faible et ceux de la seconde les bits de poids fort de Tincrément ajouté 4 la valeur courante des oscillateurs 4 chaque cycle de traitement, Exemple : $05 contient $40 et $25 contient $02 -> incrément de $240 pour l'oscillateur numéro 5 Les registres de volume $40-$5F (volume) En plus du volume général de la sortie commandé par les 4 bits de poids faible du registre $CO3C, on peut commander individuellement et sur une échelle de 0 (mini) 4 255 (maxi) le volume de sortie de chaque oscillateur. C'est cela qui permet 4 la boite a outils d'offrir des définitions d'enveloppe. Les registres d'échantillon $60-$7F (data sample) Chaque registre contient la dernitre Pom’s n° 38 es ee valeur lue dans Toscillateur concerné. la RAM par Les registres dits d'adresse $80-$9F (adress pointer) Chaque registre contient le numéro de la premitre page de la ‘table d'onde’ a laquelle l'oscillateur est rattaché. Rappelons que la longueur de la table d'onde détermine les bits significatifs de ce registre. Les registres de commande $A0-$BF (control) Chaque registre de cette série est composé de plusieurs champs : b7 a b4: canal (ces bits seront présentés sur les broches 4 47 du connecteur Molex & chaque fois que I'oscillateur en question sera actif), b3: autorisation de générer unc interruption 4 la fin de chaque cycle de parcours de la table d'onde associée, b2 a bl: mode de fonctionnement (voir plus bas), bO: arrét de l'oscillateur (spontané ou commandé par forcage de ce bit), rappelons que l'oscillateur s'arréte spontanément s'il génére l'adresse d'une mémoire de contenu 0. Les modes de fonctionnement (commandés par le bit 0) sont 00 (boucle infinic), 01 (une sculc itération), 10 (un oscillateur commande Je volume ou la durée de Ja boucle d'un oscillateur de numéro adjacent), 11 (deux oscillateurs de numéros adjacents prennent la main a tour de rile et indéfiniment). Les registres de longueur/ résolution $C0-$DF (waveform table size/ resolution/ bank select) Chaque registre de cette série est composé de plusieurs champs : b7 a b6 : non utilisés sur IIGS bs a b3 : paramétre L (2**L = nombre de pages de la "table donde") b2 a bO : paramétre RES Nous ne revenons pas sur Icur signification. Mise en pratique Nous allons nous contenter de déterminer par le raisonnement les paramétres a utiliser pour que le DOC nous ‘rejoue’ le contenu de la mémoire que nous venons d'y insérer grace au programme de numérisation. Tout d'abord, on remarque qu'un seul oscillateur ne peut pas parcourir les 64Ko d'un coup. On pourrait penser & lui faire parcourir les 32 premiers Ko, lui demander de générer une interruption, traiter cette interruption en modifiant ses registres pour lui faire parcourir le reste de la RAM. C'est faisable mais il existe une technique beaucoup plus naturelle pour le DOC, & savoir l'utilisation du mode relais (swap mode, %11) qui permet d'enchainer Ie fonctionnement de deux oscillateurs sans aucune discontinuité. Le premier oscillateur travaillera donc sur les adresses $0000 4 $7FFF et le second sur $8000 a SFFFF. Remarque : ce mode nécessite que le premier oscillateur soit de numéro pair et que le second soit de numéro immédiatement supérieur. Nous voulons que la période d'échantillonnage en sortie soit identique 4 celle que nous avons utilisée en entrée. En supposant que Yon a échantillonné l'entrée avec la fréquence maximale SRin, on obtient : osc = 24 Nous voulons également qu'd chaque période d'échantillonnage, l'adresse produite augmente de n=1. Comme L=7, il vient : FC = 2**(2 + RES) Nous pouvons donc choisir ces deux demiers paramitres avec un degré de liberté : RES=0 et FC=$0004 par exemple. Le volume de chaque oscillateur sera réglé 4 une valeur identique, $FF par exemple. 4340 : El 2e (24 oscillateurs ) 40 FF 41 FF (volume) 00 04 20 00 01 04 21 00 (fréqu) 80 00 81 80 (page de début ) CO 38 Cl 38 (longueurlrésolution) AO 06 Al 07 (commande) PF (fin des directives) *320G (chargement des registres ) *300G 2000.20FF (relire et verifier) Normalement, dés I'exécution de la routine de chargement des registres vous devriez entendre le contenu sonore de la RAM privative répété sans relache. Si cela vous convient, vous pouvez continuer 4 travailler en musique (un peu lancinant tout de méme) ou arréter le DOC, soit par un reset, soit par *340 : AQ 01 Al O1 AO 01 Al O1 FF N 3206 La répétition de la séqucnce semble nécessaire dans certains cas. Remarque : en dépit des savants calculs ci-dessus, la fréquence restituée par le DOC est trop grande. Ceci est dit au fail que nous avons supposé que la fréquence d’échantillonnage est égale & la fréquence maximum possible, ce qui est approximatif dans le cas d'une horloge & 2,8 MHz. et carrément faux dans le cas de Il'horloge & 1 MHz. Ajuster la fréquence par I'intermédiaire des paramétres RES ou FC ne peut pas suffire car la modification de l'un de ces paramétres revient toujours 4 doubler ou diviser par deux la fréquence du son. On peut, en revanche, jouer sur le nombre d'oscillateurs pour régler finement la fréquence. Les paramétres suivants sont satisfaisants : 2.8 MHz OSC=27 RES=0 FC=$0004 1 MHz OSC-22 RES-0 FC~$0002 Exercice 6.1 : calculez k (ralentis- sement) en fonction des résultats ci-dessus (résultat : k=10 environ). Exercice 6.2 : essayez différentes valeurs de RES et de FC satisfaisant 4 l'égalité FC = 2**(2 + RES). Exercice 6.3 : utilisez quatre oscillateurs (2 paires) en choisissant leurs numéros assez éloignés pour obtenir un léger décalage entre les deux “voies’ (ex: 0-1 et 13-14). Vous constaterez peut-étre un léger écho. Comment produire un décalage plus important ? Exercice 6.4 : modifier la routine de numérisation pour qu'elle boucle indéfiniment sur elle méme (prévoir quand méme une sortie par appui sur ) et lancer cette routine tandis que les oscillateurs sont en fonctionnement. Qu'obtient-on ? Observez les conséquences du léger désajustement des fréquences d'échantillonnage de lecture et de numérisation, 4 Pom’s n° 38 Impression : Nouvelles Domaine disquettes Public distribuées par Pom’s : des polices de caractéres pour la plupart issues du Macintosh, conyertics pour I'Apple //. Ces polices de caractéres, livrées sur disquettes 5,25' ou 3,5', sont utilisables avec des programmes du type TimeOut SuperFonts, Publish-It !, 816 Paint //e etc. Les quelques exemples ci-contre ont été réalisés & l'aide de TimeOut SuperFonts sur AppleWorks 1.4. A noter que SuperFonts pratique comme le Macintosh : pour imprimer en 12 points par exemple, il recherche en priorité la police 24 points et s'il la trouve, il la réduit & 12 points gagnant ainsi en finesse. Une fois imprimé, il est impossible de savoir si un Mac ou un Apple // avec SuperFonts a travaillé... POLICES 01 : 41 polices Aba Dump 18 — Abbeydecco 14 28 — Aberdeen 12 24 — Akashi 12 — Alexis 24 — Alice 09 12 18 24 — Amslan 18 — Andover 12 — Apl 12 — Apple I 18 — Arabic 24 — Ascii 12 — Asl Finger 14 18 24 36 — Athens 18 — Austin 09 — Austin Econ 09 10 12 18 20 24 — Avant Garde 10 12 14 18 24 — Babylon 09 18 — Barnett 12 18 — Basel 24 48 — Berkeley 18 POLICES 02 : 33 polices Beta Italic 18 24 36 48 — BlockBuster 36 — Boise 09 18 — Bombay 12 24 — Book 36 — Bookman 10 12 14 18 24 — Border 12 — Boston 07 08 09 10 12 14 16 18 20 24 — Bouton 24 — Brenncro 12 24 — Broadway 24 — Broadway E 14 18 — Bubbles 14 POLICES 03 : 35 polices Bubbles 24 — Cairo 09 18 36 — Calligraphy 24 36 72 — Camelot 12 18 24 — Candy 24 — CapCanaveral 09 — Carmel 12 18 24 — Cartoon 12 — Casey 12 24 — Cavanaugh 18 36 — Celtic 72 — Century 18 24 — Chicago Night 12 — Chicago 12 18 24 — ChicMath 09 12 18 24 — Chivalry 18 — Chugach 12 — Ciao 12 24 odOn% fe Bad de Uhadd Teh: tUXbeliziopysestloisvenpbw Portez ce bol de vieux whisky aux 257 juges qui Porter ce bol de yieus whiahy « Portez ce bol de vieux whisky a! Portez ce bol de vieux whisky aux Portez ce bol de v Portes ce hol be vieux whisky aux 2 forsez ce bol de vieux whisky aux 257 juges qui: Portez ce bol de vieux whisky aux 257 juge Portez ce bol de vieux whisky au: Portez ce bol de 1 Portez ce bol de vieun whisky aun 257 ju porcez ce bol de vieux whisky « Portez ce bol de vieux whisky aux 257 juges ¢ Portez ce bol de vieux wl Portez ce bol de vieux whisky aux 257 I Portez oe a de vieux ree aux 25/ | juges qui fume SPEEA 4 PenT: 16 | Pom’s n° 38 Charger les accessoires : F. Rozay N'avez vous jamais eu besoin d'un accessoire de bureau (Classique ou Nouveau) alors que celui-ci ne se trouvait pas sur la disquette de démarrage. Votre disquette systéme est-elle tellement pleine que vous ne pouvez pas y _ stocker vos mini-applications (desk accessories) favorites. Un redémarrage de l'Apple IIGs prend tellement de temps que cela vous rebute. Le but de ce programme est de pallier cet inconvénient' en permettant de charger des NDA et CDA (entendez par la New Desk Accessories et Classic Desk Accesso- ries) sans que ceux-ci ne soient sur la disquette de démarrage. “Movrr’ FONCTIONNE sous PrRoDOS 16 sur Les Apple IIcs Utilisation du programme Llutilisation de ce petit programme est rendue trés simple par I'utilisation d'une fenétre de dialogue ne comportant que quatre boutons. Les boutons Lecteur, Ouvrir, Fermer ont leur rdle habituel, c'est-a-dire de passer d'un lecteur a un autre, d'ouvrir un répertoire ou de charger un fichier, et de fermer un répertoire. Le bouton Quitter permet quant a lui de quitter le programme. Pour mettre un nouvel accessoire de bureau en mémoire, il suffit, apres avoir sélectionné le répertoire contenant les fichiers des DA, de cliquer deux fois sur le nom de celui-ci ou de cliquer une fois pour le sélectionner puis de cliquer dans le bouton Ouvrir. A partir de cet instant l'accessoire est en mémoire et est accessible de l'utilisateur mais n'est pas encore complétement opéra- tionnel. Pour qu'il le devienne il faut quitter le programme. A propos du programme Dans le bloc de données nommé ToolTable, la version de chaque outil Source ‘MOVER.SRC’ mcopy macs init start using Data using prodos using ToolTable * Bank de donnees = * bank de programme * utilisation de l‘adressage => absolu phk plb Sauve l'adresse de la page zero tde sta MyZP * Demarre le Tool Locator _TLstartup Demarre le Memory Manager Pushiord £0 _MMStartup Pom’s n° 38 & charger est indiquée. Celles-ci ne sont valables que pour les personnes qui utilisent la version 3.1 (En attendant la 3.2) du Finder ou les Tools qui sont sur cette disquette. Pour ceux qui font I'erreur de ne pas utiliser cette version, il faut mettre 0 ou un numéro de version inférieur. Exemple: de i2'23,$0200'; S.F.O ? Version 2.0 Si vous voulez utiliser une version antérieure du Standart File Operation, mettre votre numéro de version a la place de $0200, mais ceci A vos risques et périls. Le programme ne vérifie pas si Taccessoire de bureau demandé est déja en mémoire. Ceci permet aux éventuels programmeurs d'accessoires de charger différentes versions de leur ceuvre. Icone/Mover est & mettre dans le répertoire Icons de la disquette contenant le Finder. C'est l'ic6ne Teprésentant ce programme. a PullwWord MyID * prend de la memoire en vage 0 * pour les Tools PushLong £0 PushLong £$700 PushWord MyID Pushiiord £$C001 PushLong £0 _NewHandle pla sta 0 sta @PHandle pla sta 2 17 sta ZPHandle+2 lda "0s sta 4 * Quickdraw en route ? PushWord £0 _oDStatus pla bne Quickroute * Non, alors demarre 4 guickdraw IT da 4 pha PushWord £$80 PushWord £0 PushWord MyID _oDStartup * Oui, alors ne demarre que * 1‘Event Manager Quickroute anop lda 4 ele adc £9300 pha PushWord £255 PushWord £0 PushWord £640 PushWord £0 PushWord £200 PushWord My1D _EMStartup * Place le curseur PushWord £10 PushWord £20 _MoveTo Fond noir, ecriture blanche PushWord £0 _SetBackColor PushWord £$f _SetForeColor * Affiche une phrase pour faire patienter PushLong fWaitString _DrawString * Demarre le Desk Manager _DeskStartup Charge les Tools PushLong £ToolTable _LoadTools ade £3400 pha istartup * Demarre Line Edit Pushword Mj Ida 4 cle ade £9500 pha * Demarre Quickdraw Auxiliary _QDAuxStartup * Demarre Dialog Manager PushWord MyID _Dialogstartup * Demarre Standart File Operation PushWord MyID lda 4 cle adc £9600 pha _SFStartup * Choisit une fleche comme * curseur et affiche-la _InitCursor _ShowCursor end * Affiche une fenetre de * dialogue standart pour * charger un fichier. PutDialog start using Dialog using prodos PushWord £100 PushWord £35 PushLong £Prompt PushLong £0 PushLong £TypeList PushLong £Template PushLong £Hook PushLong £ReplyRec _SFPGetFile Ida Good bne Yabon end * Quitte le programme en fermant * tous les outils qui ont * ete ouverts _oDShutdown PushLong ZPHandle _DisposeHandle Pushitord MyID _MMShutDown _TLShutdown _QUIT QuitParams end Fait patienter l'utilisateur, appelle la routine de chargement en memoire puis appelle la bonne routine d'installation. Yabon start using Data using prodos using Window _WaitCursor PushLong £0 PushLong £ParamList _Newiindow Ida 12 sta theWindow Ida 335 sta theWindow+2 _SetPort jal ContDefProc jsr LoadOne PushLong theWindow CloseWindow _InitCursor PushLong DAHandle lda filetype cmp £$B9 bne PasCDA _InstallcbaA PasCDA cmp £$D8 bne PasNDA _Instal1NDA PasNDA anop br Putbialog end * Charge le Desk Accessory * choisit grace au System Loader LoadOne start using Data using prodos Pushivord £0 Pushivord £0 PushLong £0 Pushivord £0 PushWord £$5000 PushLong £fullname PushWord £1 * affiche un beau fond bleu Quit start _InitialLload PushWord £$dddd using Data PullWord NewID _ClearScreen using Prodos PullLong DAAddress _SF Shutdown PullWord Direct * Demarre Window Manager aPiad ogshuedeen: PullWord DSize | PushWord MyID LisSne Gown PushLong £0 | _WindStartup —ODAnxShutdown PushLong DAAddress | _¢tlShutdown _FindHandle * Demarre Control Manager _WindShutdown PullLong DAHandle PushWord MyID —DeskShutdown rts sae 4 _EMShutdown cat l Pom’s n° 38 * Routine de gestion des Items. Hook start using Data psing prodos using Dialog phb phk plb PullLong Return Pulllong ItemHit PullLong DialogPort PushLong Return plb rtl end * Ecrit un message dans la * fenetre. ContDefProc start using Window PushWord £10 PushWord £20 MoveTo PushLong £Message _brawstring rt] end * Quelques definitions. Define privdata ButtonItem equ 10 ScrollBarItem equ 13 StatText equ 15 UserItem equ 20 ItemDisable equ $8000 end * Donnees pour le chargement * des outils ToolTable privdata de a6 de i'14,30201" de i'16,$0202' de 18, 30202" de '20, $0200" de 21, $0200' de i'23,$0200' end * Donnees generales Data privdata WailString str ‘un instant, 8.¥.P.* MyZP ds 2 MyID ds 2 ROMZP ds 2 NewID da 2 Direct ds 2 DSize ds 2 Comment faire ? © Vous n‘avez pas la disquette Pom’s 38: " saisissez et sauvegardez la récapitulation ‘MOVER’ ; = sous ProDOS 16, depuis le Finder, par exemple, lancez l'application ; t= l'icOne sera le losange traditionnel. ®@ Vous avez la disquette Pom’s 38 : x dans votre dossier ‘Icons’, mettez l'icOne ‘Mover’ que vous trouvez dans le dossier ‘cone’ de la disquette Pom’'s ; «= maintenant, l'application Mover’ a son icone en couleurs. ® Pour essayer: tx Dans le dossier ‘Desk.Accs’ de la disquette Pom’s, vous avez un CDA et un NDA ; chargez-les avec ‘Mover’ : plus besoin de redémarrer le GS... 2PHandle ds 4 Item3 de i2'3' DAHandle ds 4 de 42'28, 265, 40, DAAddress ds 4 375" end de i2'ButtonItem' * Donnees pour la fenetre 4 ro aa * de dialogue ' meet os de iz'o" Dialog privdata ae eas using Define Itemd de i2tae Template de 42'0,0,130 ae 42° 900:289,410, 400° 375" ac i2t-1' de 4£2'ButtonItem' ae tar0e de i4'Quitterstr’ de i4'Iteml, a — Item2, Item3, ae ee Teaud' de a4'o8 de i4'Item5, ; Ttem6, Item/, Iten5 do 42'S Item’ de 42'28, 214,110, de 14‘Item9* eae ae i4'or de 42 ScrollBarItem' Iteml de #2028 ee seid de 12'54, 265, 66, de i2'0 375" de 42'3" de i2'DuttonItem' de i4°0" de i4'Ouvrirstr’ de i2'0' Item6 de i2'6" ae 42"0" de 42/12, 15, 24, a iator 395" de i2'UserItom' Item2 de 4212" de gad” de 42'72, 265, 84, de hee 375" de i2‘0" de 42‘ButtonItem’ de FASS dc i4'FermerStr' Ttem7 de azeze de i2‘o" de 12°28, 15,110, de 42'0' 215" de 4410! de 42‘Userrtem’ Pom’s n° 38 19 F de 44°0" de 42'84,100,116, £lab _DialogShutDown de 42'0° 500° élab Idx £30315 de i2'0! de i410 jsl $£10000 dc ig'o" de i4'o" MEND ParamEnd anop BAEKO L Items. de 428° 4lab _FMStartUp de 420,15, 12, Message str "Veuillez a0 les Eaee0e 395° cutee jsl $£10000 de i2'UserItem' se ates yy. deat" peices pay de ‘ioe Pee A &lab _EMShutDown de 42/0" theWindow ds 4 i ae atone ee Gar jsl $£10000 MEND end MACRO arene ee ott élab _LEStartUp de 421115,15,130, * Donnees pour les appels 6lab Idx £90214 395° * a Provos/16 jsl $£10000 de i2'statText+ prodos privdata MEND ItemDisable* MACRO de i4'VersionStr' —guitparams anop élab _LEShutDown de i2'0" ae 16'0" élab Idx £90314 de 42'0' jsl $£10000 de agra! ReplyRec anop basis Good ds 2 lial! TypeList de 4112, $28, $29" filetype ds = slab _InitialLoad aaeeleyy Os 5 Slab Idx £90911 Ouvrirstr str ‘Ouvrir! Citenase as o jsi $£10000 FermerStr str ‘Fermer' Pitta ds 128 MEND LecteurStr str ‘Lecteur' BAGRO Quitterstr str ‘guitter’ ae élab _TLStartUp Prompt str 'Choisissez un si Sua SPP s. | secesscice «@ Fichier ‘MACS’ iio | Versionstr str ‘Version BACKO MACRO élab _TLShutDown VE-1.2 | élab Ctlstartup lab Idx £30301 | oe ee lab Idx £$0210 jsl $£10000 | Fred. Rozay' “3 | jsl $£10000 MEND MEND MACRO Return ds 4 MACRO &lab _LoadTools qeemet) | aes Slab _Ct1ShutDown élab Idx £$0£01 | saetoore ce: | lab Idx £$0310 js1 $£10000 | js1 $£10000 MEND | end MEND MACRO | MACRO élab _MMStartUp | * Donnees pour 1a Slab DeskStartup &lab Idx £$0202 | * fenetre d'attente &lab ldx £$0205 3jsl $£10000 | jsl $£10000 MEND Window privdata MEND MACRO | MACRO ¢lab _MMShutDown ParamList do i2'ParamEnd- &lab _DeskShutDown slab Idx £30302 ParamList' &lab Idx £$0305 js1 $£10000 de i2'800100000 jsl $£10000 MEND 01100000" MEND MACRO de i4'o° MACRO élab _NewHandle ae. iator &élab _Instal1NDA &lab Idx £0902 a8 12'0,0,0,0° Slab ldx £$0205 jsl $£10000 de aioe Jjsl $£10000 MEND de 12'0,0° bist pecs | oe ea MACRO élab _DisposeHandle a ee élab _Instal1CbA Slab Idx £31002 = élab Idx £$0F05 isl $£10000 ae 42°0,0° jsl $£10000 MEND de 42°0,0° MEND MACRO de i4'o" MACRO élab _FindHandle de 42'08 slab _Dialogstartup élab Idx £$1A02 de dase" &lab Idx £$0215 jsl $£10000 de 440" jsl $£10000 MEND de ig’ MEND MACRO ContDe£Proc’ MACRO &lab _QUIT éparams 20 Pom’s n° 38 a ee ee | &lab jsl $E100A8 de i2"$29" dc i4"¢params" MEND MACRO élab QDStartUp &lab Idx £$0204 jsl $£10000 MEND MACRO &lab _QUShutDown &lab Idx £$0304 jsl $E10000 MEND MACRO &lab _QDStatus &lab Idx £$0604 jsl $£10000 MEND MACRO Slab _ClearScreen &lab Idx £$1504 jsl $£16000 ‘MEND ‘MACRO &lab _SetPort &lab Idx £$1R04 jsl $£10000 MEND MACRO &lab _MoveTo &lab Idx £$3A04 jsl $£10000 MEND MACRO &lab _ShowCursor &lab Idx £$9104 jsl $£10000 MEND MACRO &lab _SetForeColor &lab Idx £$A004 jsl $£10000 MEND MACRO &lab _SetBackColor &lab Idx £$A204 js1 $£10000 ‘MEND MACRO élab _DrawString &lah Idx £SA504 jsl $£10000 MEND MACRO 4lab _Initcursor &lab Idx £S$CA04 js1 $E10000 MEND MACRO élab _SFStartup Slab Idx £$0217 js1 $£10000 MEND MACRO &lab _SFShutDown &lab ldx £$0317 jel $£10000 MEND MACRO élab _SFPGetFile &lab ldx £$0B17 jal $£10000 MEND MACRO élab _WindStartUp &lab Idx £$020E jel $£10000 MEND MACRO élab _WindshutDown &lab ldx £$030E jsl $£10000 MEND MACRO &lab _NewWindow &lab ldx £$090E jsl $£10000 MEND MACRO &lab _CloseWindow &lab ldx £$0B0E jsl $£10000 MEND MACRO 6lab pulllong ¢addrl, éaddr2 &lab ANOP AIF C:&addrl=0,.a AIF C:éaddr2=0, .b LCL &C &C AMID éaddr1,1,1 AIF "&C"="°", , zeropage pullword saddr1 sta éaddr2 pullword gaddr1+2 sta gaddr212 MEXIT -a pullword pullword MEXIT -b pullword saddr1 pullword gaddr1+2Z MEXIT «zeropage ldy £&addrz pullword éaddrl,y Idy £¢addr2+2 pullword éaddrl,y MEND MACRO élab pullword sSYsOPR &lab ANOP pla AIP c:&SYSOPR=0, .end sta &SYSOPR .end MEND MACRO 6lab pushlong éaddr, goffset &lab ANOP ICL &C ECLC &REST &C AMID éaddr,1,1 AIF "6C"="£", immediate AIP "gC"="", , zeropage AIF Cr&é0ffset-0, .nooffset AIF "soffset"="s",.stack Pushword éaddr+?, sof fset pushword saddr, s0ffset MEXIT -nooffset pushword saddr+2 pushword éaddr MEXIT .immediate &REST AMID &addr,2,L:éaddr-1 de I1'$F4',12' (6REST)U-16' dc I1'$F4',I2'&REST' MEXIT «stack pushword gaddr+2,s pushword saddr+2,s MEXLT .2eropage Idy £60ffset +2 pushword éaddr,y ldy £soffsot pushword saddr,y MEND MACRO &lab pushword &SYSOPR élab ANOP AIF cz&SYSOPR=0, .b LCLC &C &C AMID “6SYSOPR",1,1 AIF ("&C"="£") AND. (S:LONGA), - immediate Ida &SYSOPR pha MEXIT -b pha MEXIT -immediate LCLC &REST LCLA &BL &BL ASEARCH "&SYSOPR"," ",1 AIF 6BL20,.a &BL SETA L:&SYSOPRt1 3 &REST AMID "&SYSOPR", 2, &BL-2 de I1'$P4',I2'GREST! MEND MACRO Slab str é&string &lab de il'l:&string',c'sstring’ MEND MACRO &lab _ODAuxStartup &lab Idx £$0212 jsi $£10000 MEND MACRO &lab _QDAuxShutdown &lab Idx £$0312 jsl $#10000 MEND MACRO élab _WaitCursor 6lab Idx £$0A12 isl $£10000 MEND Fichier ‘BUILD’ asml mover.src keep=mover filetype mover s16 Pom’s n° 38 Récapitulation ‘MOVER’ Aprés avoir saisie ce code sous moniteur, faites : create MOVER, t$63 puis : bsave MOVER, a$2000,1$800,t8b3 00 00 00 20 26 £1 00 01 85 00 80 AS F4 El 00 00 05 oo 48 00 18 00 03 a2 oo Fa 9c 30 00 a2 03 00 00 22 oA 04 28 aD 04 05 Do 00 00 oF 13 A2 8B @D gc 00 06 00 R73 00 00 00 03 00 00 00 20 00 00 Fa Fa ap a2 Fa 18 00 OA 04 Fa 22 El OE 48 00 El AS cA 23 00 F4 DO A2 03 00 £1 aD 00 oo OE a2 05 00 00 00 20 00 00 090 00 15 04 oo 69 Fa 00 A2 00 00 Fa 02 a2 05 AD 04 22 7) Fa 00 6A 14 22 00 AD oR El 09 09 04 48 00 00 05 00 05 6D oo 22 6a 68 AB 00 00 00 6 00 oo 57 3? 17 77 02 00 77 04 00 EF 06 00 D7 00 00 00 20 43 a2 00 00 03 06 00 00 ca Fa 22 00 00 7?) 22 10 48 0B 18 00 F4 Fr 00 a2 03 00 El 17 03 22 El 22 1B aD 00 DO OE 00 Fa 1D oo 00 8D 6D 6B 00 on 00 74 00 00 03 03 04 01 00 00 01 00 00 oo 00 00 00 00 00 00 20 AB 02 Fa Fa 68 22 AD 03 00 14 00 P4 El bb 00 02 a2 03 69 00 oo 04 F4 17 22 00 R2 03 48 aa Fa 00 22 26 El 07 22 F4 01 03 F4 00 gc aq Fa Fa 00 00 00 2c 20 73 02 00 00 a5 00 oB 48 AD 00 00 Fe Fé a2 00 22 1¢ 48 00 El oo Fa 30 03 00 £1 06 48 a? 00 00 co 00 05 05 00 00 00 40 20 03 00 00 02 17 68 Az 00 48 SA OF 04 Fe 22 OB El 00 02 A2 91 04 Fa 17 00 A2 03 00 03 22 00 00 01 22 oz 48 22 82 00 09 00 00 00 20 A2 21 07 og 03 Do 04 F4 a2 22 00 As pe oo 03 aD 00 22 17 22 Fa 21 oB El 12 22 00 48 00 2a oo aD cl 0B AD 00 F2 00 22 00 00 20 20 ol 68 AD 22 a7 14 az 00 06 00 A2 22 02 oo 48 oB El 00 02 00 09 03 22 a2 03 00 El A2 00 05 Fa 26 OA 00 20 20 02 aD OB 00 00 as 22 00 02 00 04 00 a2 El AS 03 A2 00 22 00 oo Fe 00 15 22 00 az 02 RT 00 90 05 00 90 03 El Pa 00 00 20 09 00 ra A2 8D El 48 FF 03 04 Fa a2 00 1s AD 00 22 15 48 04 50 00 a2 00 £1 OE 22 15 03 29 Fa AZ El a2 03 oF El Fa a2 11 20€0:02 2000: 00 AD 8D aD aD Fa a2 02 00 2E iF 19 9E as 14 04 02 oz 56 00 82 00 00 00 00 54 00 00 6R 00 00 18 00 00 03 03 04 04 00 as 12 12 2E 00 oo 00 00 00 00 00 00 00 00 00 00 00 00 00 AD 8D aD 9E 04 00 6E 2E 00 OL 03 03 00 00 01 00 00 01 00 00 01 00 00 2c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 03 00 04 01 04 01 00 00 00 00 00 23E0:00 23F0:48 2400:D6 2410:00 2420:00 2430:0F 00 14 04 00 20 20 22 0B 03 00 a5 04 oo ra 22 El AO 00 o1 AD 04 48 12 £1 00 El FS 00 00 03 00 El 04 10 a2 00 00 AZ 20 00 48 co 00 50 FI 1D 1B ao 04 aA 00 02 20 00 00 FF 00 00 36 00 1c 00 OA 1c 03 14 1c 00 03 00 El Liste des fichiers de ‘Mover’ sur la disquette Pom’s 38 Mover sre... 2... Source Mover .............Application Build... 2.5. esse PAChier MACS «6.5.45. .+Fichier de macros Icone/Mover . ..Icéne couleurs Desk.accs/Alarme ..Un CDA exemple Desk.accs/Horloge .Un NDA exemple | | | | | | | | d'assemblage | | 2440:00 2450:00 2460:0F 2470:00 2480:65 2490:69 24A0:20 24B0:65 24¢0:20 24D0:31 2480:79 24F0:20 2900:00 2510:00 2520:00 2530:00 2540:6C 2550:75 2560:73 2570:F5 2580:00 2590:00 25A0:03 25B0:02 25C0:DA 25D0;0B 25E0:F5 25F0:F0 2600:01 2610:02 2620:02 2630:B0 2640:0B 2650:F5 2660:00 2670:02 2680:05 2690:02 26A0:5E 26B0:1D 26C0:F5 26D0:00 26B0:02 26F0:04 2700:02 2710:B8 2720:F6 2730:F5 2740:00 2750:03 2760:03 2770:04 2780:AB 2790:C1 27A0:00 2730:00 27¢0:00 2700:00 27E0:00 27F0:00 00 00 oo 00 72 74 75 20 56 39 00 00 oo 00 00 Fa 6c 65 65 02 28 17 FS FO 00 03 02 4D 21 FS 00 o1 03 02 FC 48 FS 00 02 03 02 a9 1B F5 00 02 04 04 3B CF FS 00 03 02 00 00 00 00 00 00 00 00 a2 00 6D 74 6E 62 46 38 00 00 oo 00 00 01 65 6c 63 00 00 03 oz c3 oR FS FO 01 03 02 62 17 FS 00 01 02 02 2B 416 F5 00 02 03 02 RI SE FS 00 03 03 04 7B 48 00 00 00 00 00 00 00 00 00 00 00 65 65 20 75 2D 38 oo 00 oo 00 00 FF 7A 71 oF og 0B PS FO 00 03 o2 41 2F FS 08 00 68 02 72 72 61 72 31 2c 00 00 oo 90 00 FF 20 75 6E 090 03 02 AF Dc P5 00 ol 04 02 Sc 30 FS 00 01 05 02 23 32 FS 00 02 03 02 Ag Aa PS 00 03 03 04 4F 39 PS 00 00 00 oo 00 00 00 00 00 on Be 07 22 63 65 2E 20 00 00 oo 00 00 FF 70 65 64 09 FS 00 00 02 02 10 50 FS 00 o1 05 02 D6 Aa F5 09 02 05 02 74 13 FS 00 02 04 02 Dz oF PS 00 03 04 04 00 00 00 00 00 00 00 00 00 OF Bg 4c 43 63 61 32 46 00 00 oo 00 00 FF 61 73 65 03 02 62 Fé FS 00 on 04 02 56 3c FS 00 01 04 03 oD 1B FS 00 02 03 02 Al AO FS 00 02 03 04 47 17 FS 00 00 00 00 00 00 00 00 00 00 80 06 65 68 65 75 20 72 00 00 v0 00 cl 00 74 20 73 FS 00 00 02 02 ES OB PS 00 01 o2 02 Ba 2A FS 00 02 03 02 6c 1F FS 00 02 04 02 BC F6 FS 00 03 4 04 23 00 00 00 oo 00 00 00 oF 00 73 4E 63 OF 73 2a 20 65 00 00 oo 00 02 00 69 70 25 02 oF oB FS 00 00 03 02 50 21 FS 00 01 05 02 06 28 FS FO 02 03 02 95 9c FS 00 o2 04 04 ey £7 FS 00 04 00 00 00 00 00 00 00 00 00 04 75 74 69 73 56 20 64 00 00 oo 00 00 cr) 65 65 2B 00 00 03 02 cé oR FS 00 01 03 02 6c 15 FS 00 02 0s 02 5B oF FS 00 02 o4 02 BS oC FS 00 03 03 04 93 73 00 00 00 oo 00 00 00 oc 00 00 76 65 73 6F 65 20 2E 00 00 00 00 00 00 6E 74 22 19 15 PSs 00 00 03 02 44 oF FS FO 01 03 o2 F7 cl FS 00 02 03 oz 85 19 FS 00 02 04 04 37 B? F5 00 03 o4 00 00 00 00 00 00 00 00 00 oo 72 75 69 69 72 20 20 00 00 oo 00 54 2F 74 69 Fl 00 03 02 B2 Dc FS 00 ol 04 02 SF 30 FS FO ol 02 02 27 46 PS 00 02 03 02 AD AG FS 00 03 03 04 63 40 FS 00 00 00 00 00 00 00 8B 09 00 69 72 73 72 73 28 52 00 00 oo 00 00 56 65 74 Ao oB FS 00 00 02 02 1B 50 P5 FO o1 01 00 09 72 07 73 65 69 43 OF 4E 00 00 00 64 65 72 65 00 03 02 a3 Fé FS 00 o1 04 02 59 30 FS 00 o1 05 02 1 19 FS 00 02 03 02 AS A2 P5 FO 03 03 04 4B 32 FS 00 00 00 00 00 00 00 00 14 00 06 20 FS F7 FS 01 03 04 EB 28 FS 00 02 05 02 7c 1D FS 00 02 04 02 33 oF FS 00 03 04 00 00 00 00 00 00 00 02 E86 26 FS 00 02 05 02 78 iF FS 00 02 04 o2 2F a7 FS 09 03 04 oF 00 00 00 00 00 00 00 BF ae FS FS E2 00 00 00 46 75 7A 64 6E 20 61 60 00 oo 00 4 69 71 20 00 02 45 oB FS 00 00 03 02 53 gc FS 00 01 04 02 OA 26 FS 00 02 03 02 99 9E FS 00 02 03 04 43 FF FS 00 o¢ 00 00 00 00 00 00 00 22 Evénement : og. Ly Oui, c'est un événement capital pour tous les Apple // ; les Etats- Unis le vivent depuis prés d'un an déja. Fric Weyland vous en parlait dans son long article du numéro 34 de Pom’s, en ajoutant avec regret «...la série TimeOut ne marche, et ne marchera sans doute jamais que sur la version américaine 2.0 d'AppleWorks, et pas sur la version francaise 1.4. Non que cela soit techniquement impossible : mais il faudrait alors adapter et traduire chacune des applications TimeOut présentes et futures, ce qui représcnte énormément de travail. L'investis- sement est sans doute trop grand pour tre rentable...». Ce que ni Apple Computer, ni Claris, ni les Beagle Bros eux-mémes n'ont pu, ni voulu faire, Pom’s et un programmeur frangais l'ont réalisé. Je tiens a saluer le talent exceptionnel de Danicl Lurot, qui a écrit Ics patches nécessaires & AppleWorks 1.4, et adapté les logiciels TimeOut. Sans lui, tous les utilisateurs frangais d'AppleWorks 1.4 seraient encore une fois restés ‘sur le bord du chemin’. Sans lui, ct sans le dévouement des collaborateurs de Pom’s. Comme vous n'avez peut-étre pas tous en mémoire l'article d'Eric Weyland, il n'est pas inutile de rappeler d'abord ce que sont ces logiciels TimeOut. Et il m'est agréable de pouvoir vous en parler, cette fois-ci, non comme de quelque lointain mirage, mais sachant : W quis sont la; ¥Y quils fonctionnent ; ¥ quis sont entigrement francisés ; VY qu'une documentation frangaise les accompagne. TimeOut... ou la voie royale pour exalter AppleWorks Deux touches magiques O G-Escape vous étes dans TimeOut ; O Escape : vous étes de retour dans AppleWorks. .-Va-ct-vient immédiat, écrans familiers. Il était difficile d'imaginer plus simple. Vous ne quittez pas AppleWorks, c'est le menu TimeOut qui vient a vous. Dans la ‘fenétre’ qui s‘ouvre au milicu de I'écran, la liste des applications disponibles. Vous sélectionnez lapplication. Celle-ci se charge, et fait son travail : © = S'agit-il dc SuperFonts ? Vous pourrez imprimer directement vos fichiers AppleWorks dans un choix extraordinaire de polices Macintosh, en caractéres francais, en faisant varier la taille et le style (italiques, ombré, telicf, inversc), 4 tout moment, méme au milieu d'un mot. Pom‘s propose déja 3 disquettes, regroupant plus de 100 polices. Trois qualités d'impres- sion. Importation d'images HR et DHR. Une retouche a votre texte ? Faites Escape, et vous voila revenu dans AppleWorks, dans le fichier de traitement de texte d’ol vous étiez partis. Préts 4 imprimer ? G-Escape, vous étes A nouveau dans SuperFonts. = S'agit-il de Graph ? Directement de votre tableur, faites (s-Escape. Sélectionnez Graph : c'est & peine si l'on remarque que I'écran a un peu changé ; le titre, en haut ; et en bas, une ligne d'options nouvelles. Ah, mais quelles options ! Elles s'ouvrent les unes aprés les autres, comme des tiroirs (il suffit de cliquer dessus). Elles vous permetient soit de voir a l'écran, soit d'imprimer : des graphiques en barres, en secteurs, en lignes, en barres empilées, en aires, en XY. Avec légendes ou sans légendes. Titrés, et sous-titrés. Avec ou sans quadrillage. Etc., etc. Voulez-vous retoucher voure tableau ? Escape et vous y étes. Voulez-vous voir comment a changé votre graphique ? G-Escape et vous étes de retour dans Graph (Ics options choisies ont été conservées). = S'agit-il de SideSpread ? Vous pouvez imprimer vos grands tableaux & l'horizontale, sans crainte de manquer de place. Vous partez directement du tableur, vous faites G-Escape. Les commandes sont familitres : Imprimer Tout ? Lignes ? Colonnes ? Bloc ? Faites votre choix, et allez-y. C'est tout. Pas de manipulations délicates, pas de manceuvres piégées. Et pas de caractéres bizarres a la place des €, &, ¢ et! Vous disposez de deux polices francisées, chacune en 8 tailles différentes : de quoi tirer des effets de miniaturisation ou de grossissement surprenants. @ S'agit-il d'UltraMacros ? Deux applications TimeOut lui sont adjointes : un compilateur (emploi instantané, plus besoin de revenir a la disquette d'installation pour modifier les macros résidentes), et Macros Options tous les réglages imaginables de la souris ct du curseur, et la création immédiate de fichiers “Task” : des fichiers de macros préts a l'emploi, affectés a une tache spécifique ; on les démarre d'un menu TimeOut sans quitter AppleWorks, ou méme avant de booter AppleWorks au moyen d'un sélecteur genre ProSel (car ut en Pom’s n° 38 93 ce sont des fichiers SYS). Ces deux applications transférées dans TimeOut ont soulagé I'ancétre, qui n'est nul autre que SuperMacroWorks, et ont permis (grace & la place récupérée) d'en faire un véritable langage de programmation. SuperMacroWorks et UltraMacros sont les deux ‘chefs d'orchestres’ sans lesquels il est désormais difficile d'imaginer un AppleWorks amélioré, mais UltraMacros est beaucoup, beaucoup plus puissant. Voila donc les grandes vedettes qui vous attendent. Ce sont incontesta- blement les ‘stars’. Mais il y a aussi les seconds réles, les auxiliaires toujours présents et indispensables. II n'est pas nécessaire de les acheter a part, ils sont fournis avec les logiciels principaux. > Utilitaires est une application qui permet de ‘configurer’ Graph, SideSpread, SuperFonts et les autres (entendez par 1a : choisir les polices de caractéres, les imprimantes, et divers autres paramétres utiles). Cette application permet aussi de crécr instantanément un menu TimeOut supplémentaire pour une nouvelle application TimeOut. > Data Converter crée le pont — qui manquait 4 AppleWorks — entre données du Tableur et de la Base de données. Grace a cette application, le pressc-papiers transforme les tableaux en base de données, et vice versa, sans aucune manipulation particulitre. © Debug offre le contrdle des variables d'UltraMacros, et I'affichage des macros. > Valeurs ASCII donne, par exemple pour Ctrl-I, 9 en décimal, 9 en hexadécimal, 00001001 en binaire, “Tab”, et précise qu’a l'écran c'est un “T” en vidéo inverse. = File Status indique l'état du bureau AppleWorks. => AWP to TXT transforme les fichiers AppleWorks en fichiers ‘Text’ (pratique pour changer de machine ou de programme). Note : PathFinder lui-méme n'est pas une application TimeOut : c'est une précieuse modification d’AppleWorks, qui installe directement dans le menu Autres activités d’AppleWorks les nouvelles options : Ajouter un sous-catalogue, Retrancher un sous-catalogue, Renommer un fichier, Verrouiller un fichier et Déverrouiller un fichier. D'autres applications TimeOut viendront prochainement s'ajouter a la liste, au fur et & mesure de leurs francisations, et de la traduction de leurs documentations. DES EXEMPLES ? PAGES 16 & 30... Le principe du fonctionnement TimeOut, qui a donné son nom a l'ensemble de ces applications, est une invention d’Alan Bird. C'est un programme-noyau (un “kernel” comme disent les américains) qui s'installe dans AppleWorks en modifiant son amorgage. Une fois qu'il y est, il n'en bouge plus. Quand vous I'aurez installé une fois, vous n'aurez plus besoin de recommencer, Ce noyau n'est pas lui-méme une application TimeOut. Son réle est de servir ‘d'entremetteur’ entre AppleWorks et toutes les applications TimeOut qu'il pourra repérer. Comment se fait cette entremise ? * tout d'abord, au démarrage de votre AppleWorks, TimeOut va ‘ausculter’ le disque od se trouvent les applications TimeOut, et mémoriser les noms de toutes les applications présentes ; + deuxigmement, a l'appel du menu TimeOut par -Escape, il affichera la liste ainsi mémorisée, dans laquelle vous ferez votre sélection ; * troisitmement, aussit6t aprés la sélection, TimeOut chargera ct activera l'application choisie ; + Quatrigmement, par la touche Escape, TimeOut vous raménera a AppleWorks. C'est donc un gestionnaire, qui doit connaitre les paramétres d'AppleWorks et ceux des applications, et les préserver 4 chaque appel pour que vous puissiez les retrouver intacts quand vous passerez de I'un a l'autre. Quant aux applications, elles partagent toutes la faculté d'étre appelées par TimeOut a partir d'AppleWorks. Sclon leur degré de complexité, elles feront tourner des programmes puissants, ou se contenteront de tiches relativement subalternes. Bien que théoriquement elles puissent étre des programmes indépendants d'AppleWorks, leur intérét est de pouvoir puiser des données directement dans cet immense réservoir qu'est AppleWorks (fichiers Traitement de texte, Base de données, Tableur), pour accomplir des taches qu'AppleWorks ne sait pas accomplir lui-méme. AppleWorks travaille pour elles, et elles travaillent pour lui (pour notre plus grande satisfaction 4 nous autres, les utilisateurs). Cela vous donne, soit dit en passant, une idée de l'extréme complexité in- terne du fonctionnement de TimeOut : la mémoire de I'Apple étant ce qu'elle est, déja AppleWorks (qui est un programme énorme) devait fonctionner en ‘overlay’, c'est-A-dire que n'étaient appelés en mémoire active que les ‘segments’ dont AppleWorks avait besoin 4 un moment donné. Sans que vous vous en doutiez, AppleWorks se livre continuellement 4 un jeu de ‘chaises musicales’ électronique. La-dessus arrivent TimeOut et ses applications, qui elles aussi entrent dans la danse. Un exercice de haute voltige s'organise, od nul ne doit se trouver au méme moment au méme endroit, tout en sachant exactement quel instant ‘tendre la main au trapéziste d'en face’. Mais rassurez-vous, tout cela est, comme ont dit, ‘transparent pour Iutilisateur’ : l'intégration est parfaitement harmonieuse, et TimeOut se conduit avec des commandes simples et naturelles. Pom’s n° 38 ee ee — | ee e ge e TimeOut : configurations Les applications TimeOut peuvent étre configurées pour fonctionner avec VOTRE matériel. Vous pourrez choisir 48 imprimantes, parmi lesquelles : Apple DMP. Apple ImageWriter Apple Image Writer I Apple Scribe Epson AP 80 Epson FX 80 Epson LQ 800 Epson LQ 1000 Epson LQ 1500 Epson LX 80 Epson MX 70 Epson MX 80 Epson MX100 Epson RX 80 Mannesmann 160 Mannesmann 180 Mannesmann Spirit 80 | NEC PC 8023 NEC PC 8025 Oki 82 Oki 83 Oki 84 Oki 92 Oki 93) 55 interfaces vous sont proposées, parmi lesquelles : Série //c Serial to Parallel //c Ilcs port intégré Apple Centronics Communications Apple Parallel Apple Série Apple SSC Epson APL Graphicard Grappler Grappler + Grappler Serial Microbuffer IT Versacard Serial Versacard Parallel UltraMacros et SuperMacroWorks sont un cas a part ! Un mot tout de suite pour rassurer les possesseurs de SuperMacroWorks : celui-ci est compatible avec TimeOut et la plupart de scs applications (Graph, SideSpread, Superfonts, etc.). Il ne l'est évidemment pas avec TO.Compiler, TO.Macros Options ct TO.Debug, qui sont réservés a UltraMacros. Les macros de SuperMacroWorks et d'UltraMacros fonctionnent méme a l'intéricur de TimeOut et de ses applications |! On peut parfaitement saisir au clavier, par exemple, d'une part la série de commandes qui méne d'un fichier tableur dans AppleWorks jusqu’a son affichage sous une forme graphique donnée dans Graph, et d'autre habitués de SMW, qui ne seront quasiment pas dérangés dans leurs habitudes. En gros, on peut dire que la souris fonctionne de la méme manitre (sauf qu'elle est vraiment réglable, en déplacement et en ‘clic’), et que la saisie des macros au clavier est pratiquement la méme. Mais 18 ou SMW avait une fonction conditionnelle rudimentaire liée au seul caractére sous le curseur, et une unique variable numérique non directement accessible, UltraMacros a une authentique fonction if-then-else appliquable a 26 variables numériques et 10 chaines-texte définissables de fagon indépendante et variée. D'ailleurs, une gamme entitre de nouvelles instructions est congue pour fonctionner avec ces variables comme paramétres. Ajoutez-y les instructions Peck, Poke et méme Call pour les pro- grammeurs les plus audacieux, et vous aurez une petite idée de ce qu'Ultra- TimeOut. La régle du jeu a ainsi été fixée une fois pour toutes. + Ouvert, parce qu'il n'y a pas de limite au nombre des applications que TimeOut pourra appeler, 4 condition qu'elles respectent cette régle du jeu. Mais, me direz-vous, cela fait beaucoup de monde a loger dans mon Apple. Comment vais-je y arriver ? Rassurez-vous, il n'y aura pas de bousculade, tout ce monde n'entrera dans votre Apple que dans la limite de la mémoire disponible. Avez-vous ¢u la prévoyance (comme yous I'a recommandé maintes fois Jean-Yves Bourdin) de renforcer la capacité-mémoire de voue Apple ? Parfait. Les applications TimeOut pourront y séjourner a plusieurs, et étre appelées quasi-instantanément. Sinon ? Elles patienteront dans la salle d'attente (le “disque d'applications TimeOut”), et part la série de commandes qui raméne Macros est capable d'accomplir ! le noyau TimeOut les appellera et les au point de départ. En deux touches fera passer une a unc. seulement on pourra ainsi faire le va-et-vient entre un tableau et sa Une vue Les privilégiés seront évidemment les Teprésentation graphique ! On croit d'ensemble possesseurs de GS : la mémoire de réver... Mais alors, pourquoi UluaMacros ? Parce que c'est autre chose. UltraMacros est un vrai langage de programmation, dans lequel on a inclus SMW par souci de continuité. C'est, en quelque sorte, une ‘fleur’ faite aux Le wait génial d'Alan Bird (créateur de TimeOut) est d'avoir congu, dés le départ, un ensemble a la fois homogéne ct ouvert. + Homogéne, puisqu'il repose sur un gestionnaire unique, le noyau Pom’s n° 38 celui-ci a été dimensionnée en fonction d'applications graphiques tellement voraces par rapport a l'appétit de TimeOut que vous en aurez largement assez pour loger enti¢rement en RAM, par exemple : AppleWorks tout entier, UltraMacros, SuperFonts et la totalité de ses polices de caractéres, plus 25 eee EE EeeeEueES=S=SEeeeEEEEEEeEeEeEeEeEeEeEeEeEeEeEeEeoeee 26 quelques autres applications. Il vous restera quand-méme un Bureau de plusieurs centaines de Ko. Mais, méme dans la pire des hypotheses, les applications TimeOut fonctionneront quand-méme : 1a ou AppleWorks va, TimeOut va aussi. Au prix, néanmoins, de fréquents appels aux lecteurs de disques. Vous voila prévenus. La gestion des disques a été améliorée dans une récente version TimeOut (celle, justement, que diffuse Pom’s) : une nouvelle option de TO.Utilitaires permet de créer & tout moment, sans quitter AppleWorks, un menu TimeOut supplémentaire, lié a un disque d'applications donné : décidez-vous, par exemple, en cours de travail d'utiliser Graph alors que vous avicz chargé SupcrFonts, ct que vous disposez de peu de mémoire ? En quelques secondes, par appel a des menus clairs, SuperFonts est reconduit, et Graph le remplace. Le ‘miracle’ des TimeOut en francais De ce qui précéde vous aurez déja compris que TimeOut, ses applications, UltraMacros et AppleWorks vivent en étroite symbiose. TimeOut était congu au départ pour la version américaine 2.0 et la gérait compte tenu de toutes ses adresses internes spécifiques. Dans la version frangaise 1.4 d'AppleWorks, toutes ces adresses sont décalées ou modifiées. Pour reprendre ma métaphore de I'exercice de haute voltige, imaginez un trapéziste qui s‘élancerait vers son partenaire sans avoir été prévenu qu'on a rallongé a son insu les courroies de son trapéze... C'est exactement ce qui advient si l'on essaie de faire tourner un TimeOut américain sur un AppleWorks francais. Il fallait donc : * modifier AppleWorks ; * modifier TimeOut ; * modifier les applications TimeOut ; * et réconcilier, dans le nouvel ensemble obtcnu, toutes les adresses internes. Je ne parle pas de la francisation, qui vient s'y ajouter par-dessus le marché. Tache impossible ? Quasiment, 4 moins d'un miracle... C'est justement ce qui s'est produit par un heureux concours de circonstances : Daniel Lurot, le programmeur qui a adapté TimeOut, n'avait nullement ce projet en téte au départ. Il ignorait méme tout de TimeOut, et avait commandé aux Beagle Bros un exemplaire de SuperMacroWorks. La destin a voulu qu'on lui envoie par erreur une exemplaire d'UltraMacros, évidemment incompatible avec AppleWorks 1.4. Or, il se trouve que Daniel avait déja, pour satisfaire sa curiosité, entitrement désassemblé AppleWorks 1.4. Oui, oui, vous avez bien lu (ga représente deux classeurs pleins de code, d'une €paisseur de quelques 15 centimétres). Il en connaissait done déja tous les tours et détours ; adapter UltraMacros ne lui a nullement paru étre unc tiche surhumaine, et il a méme essayé diverses facons de s'y prendre. Puis il en a modestement informé I'autcur Randy Brandt, lequel lui a aussit6t recommandé de me contacter. Ce qu'il fit. A partir de 1a, ce qui avait été un heureux coup du sort individuel s'est transformé en travail d'équipe, et un projet plus ambitieux prit corps : pour- quoi ne pas adapter, franciser et diffu- ser, 4 lintention de tous les utilisateurs d'AppleWorks 1.4, les plus intéres- santes des applications TimeOut ? Pari tenu... Dans les revues américaines consacrées aux Apple //, on voit en double page deux publicités trés éloquentes : + la premitre est de Claris (distributeur d'AppleWorks). Elle montre une rutilante Porsche rouge... sur quatre parpaings en guise de roues. Le texte dit «Il y a encore certains possesseurs d'Apple qui n'emploient pas AppleWorks» ; + la deuxiéme est des Beagle Bros. On y voit quatre magnifiques roues A jantes de course... sans rien par-dessus. Le texte dit «Il y a encore des _ utilisateurs d'AppleWorks qui ne connaissent pas TimeOur. La revue Pom’s n'est ni Claris, ni les Beagle Bros, mais grace a elle, et a l'esprit Apple de son équipe, le bolide complet — et francisé — est 4 votre disposition. Installez-vous au volant : croyez-moi, l'expérience en vaut la peine ! Je vous souhaite bonne route, et beaucoup de plaisir. Pom's vous proposera bientét — en exclusivité également — FileMaster (gestion compléte de fichiers sous AppleWorks), DeskTools (une dizaine d’accessoires de bureau, y compris un cryptage de fichiers), MacroTools (de puissantes macros pour AppleWorks). Pour les prochains numéros, Dimitri Geystor vous prépare des utilitaires dont il a le secret, sous UltraMacros. e; Tarif des logiciels en francais — avec manuels francais — pour AppleWorks 1.4 Graph : 850 F TTC (carte Joker : 765 F) SuperFonts (comprenant une quarantaine de polices de caractéres) : 800 F TTC (carte Joker : 720 F) UltraMacros : 650 F TTC (carte Joker : 585 F) SideSpread : 550 F TTC (carte Joker : 495 F) PathFinder: 150 F TTC (les 4 TimeOut inclus sont utilisables si vous avez déja un TimeOut, UltraMacros par exemple) Pom’s n° 38 a ee ee ee ee | Le calcul des Premiers : Pascal Cantot Source du programme ‘PRIME FACTOR’ #Nombre de 32 bits 4 tester #Tndex vers PREMTBL #Diviseur trouvé (16 bits) #Reste (0 si non premier) #Vecteur pour fonction USR() #Racine (par excés) de N1 (16 bits) #Registre flottant secondaire #Résultat division (32 bits) #Temporaire (32 bits) 7OKG de PRIME FACTOR sAdresse table nbres premiers sAffiche erreur X 7A,¥ —> FAC -> $50 ¢PAC -> ARG #SQR(FAC) -> FAC :MOVe byte *MOVe 4-byte word ;SURst ract: Double-byte (16 bits) (16 bits) rime.Factor PRIME FACTOR est un petit programme machine qui peut, en quelques secondes — au pire — déterminer les diviseurs premiers d'un nombre compris entre 2 et 1 073 741 824 (230, soit environ un milliard). Les applications sont nombreuses : + déterminer si un nombre est premier ou non ; = décomposition d'un nombre en produit de facteurs premiers (l'objet de DECOMPOSER), afin de simplifier une fraction, de déterminer le Plus Grand Commun Diviseur de deux nombres, etc. ; + calcul trés simple et trés rapide de tables de nombres premiers : j'ai ainsi mis sur une disquette tous les nombres premiers jusqu’a 580 000, soit 47 600 nombres. Le calcul a pris 8 heures. En Basic, un calcul identique m'avait pris 48 heures ! Autre exemple : il met 6 secondes seulement pour trouver que 42 841 001 est premicr. De plus, le programme en lui-méme présente un intérét pédagogiquc, puisqu'il comprend une routine de division entitre 32 bits par 16 bits, ainsi qu'une routine de conversion d'un nombre flottant en entier 32 bits... Mode d'emploi PRIME.FACTOR s'utilise simple- ment a partir de l'Applesoft par la commande Y = USR (X) (ou PRINT USR(X)), oi X est le nombre entier 4 tester (il doit étre compris entre 2 et 1E9). Y conticnt alors lc plus petit diviseur premier de X, ou zéro si X est premier. Notons que PRIME.FACTOR fonctionnera pour Assembleur Merlin-Pro 1 SRRERR ERR ER AR ER ARE AREA AEE AS ERE om 34 PRIME FACTOR * qre eases pesrenraricede ean eet ‘ a Par P, CANTOY, 20/05/88 * 8 ’ 8 9 10 NI = $0 11 ADRTBL = $4 12 N2 = $6 13 Rk = $8 14 USRIMP = $A 15 SQRNI - $50 16 ARG = $AS 17 RESULT - $EB 18 TEMP4 = SFC 19 20 PRIME = $2000 21 PREMTBL = PRIME+$100 22 23 ERROR = $D412 24 GIVAYF Cd SE2F2 25 GETADR = $E75Z 7 INT (FAC) 26 MAF = SEBEE 27 SOR SEE8D 28 30 a EXP OFF 4 33 MOV MAC 34 LDA $1 35 STA $2 36 << 37 38 MOV4 MAC 39 MOV $1;$2 40 MOV $1+17$2+1 41 MOV $142; $242 42 MOV $1437§2+3 43 << 44 45 SUBD MAC 46 LDA $1 47 SEC 48 SBC $2 49 STA $2 50 LDA §1+1 51 SBC $2+1 52 STA $3+1 Pom’s n° 38 27 X compris entre 1E9 et 4E9 (plus °. ae exactement : 232), mais seulement si >4 : vble-b 16 bits X admet un diviseur inférieur a a ome pate $1 BME ES RAE SOLE ts 32 768. Dans le cas contraire, un = 57 CMP §2 “OVERFLOW ERROR” est envoyé. 58 LDA $1+1 59 SBC §2+1 70 = 1 si $1 >= $2 Exemples : e SSS f USR(12) donne 3 62 ROLD MAC #ROtate Left Double-byte USR(11) donne 0 car 11 est premier 63 ROL $1 USR (20989) donne 139 car20989= 64 ROL $itl 139*151 S a | USR(4284700%) connec) cat Xs 67 ASLE MAC sShift 4-byte word est premier 68 ASL $1 USR (3343549127) donne 31573 69 ROL $1+1 car X = 31573*105899 70 ROLD §1+2 USR(2840783401) donne 74 <x 2 ERROR: cE S ROL4 MA 0 ft 4-b: d jal 0. aC skOtate Left 4-byte wor X>1E9 et Y = 5329942 7 ROLD $i 75 ROLD $1+2 . ¢ 76 << Principe iS 78 | PRIMERACTOR utilise pour ses 79 *####tdesaasassasasansaasavazens calculs une table de tous les nombres ‘ 5 81 ORG PRIME premiers compris entre 2 et 32 768 = g2 (PREMTBL), soit 3 512 enticrscodés 23 seTUSR MOV £>INTFAC32;USRUMP+2 ;Revectorise USR | sur 2 octets. Cette table DOIT étre 84 MOV £<INTFAC32;USRIMP+1 chargée 256 octets aprés le début de RTS PRIME.FACTOR (c'est-a-dire $2100 °° 87 INTFAC32 JSR MAF 7FAC -> ARG si PRIME.FACTOR est assemblé en 5. LDA ARG pexposant -> A $2000) avant toute utilisation de 9 AND £$7F PRIME.FACTOR. 90 STA CNTR #Nbre de bits dans la mantisse PRIME.FACTOR se lance depuis le 92 MOV £0;N1 ;Mise 4 zéro de N1 | [ieee 92 STA 141 disque par BRUN ou — (prononcer 93 SrA Rie “smart RUN”). Il revectorise alors la 94 STA 143 commande “USR” du Basic etrendla 95 main au programme appelant. 96 INTFAC2 DEC CNTR #Convertit ARG 97 BMI INTFAC3 =; en un nombre entier N1 Lors de chaque appel ¥Y = USR(X), 7? ash eer 7 de 32 bits (4 octets) l'argument X est placé dans un 555 Roe | Ree accumulateur flottant, FAC. j9; ROL ARG#+1 PRIME.FACTOR le convertit alors 102 ROL4 N1 en nombre entier sur 4 octets, puisle 103 UMP = -INTFACZ divise successivement par tous les 194 nombres de sa table compris entre 2et 105 INTFAC3 JSR SOR #SQR(FAC) -> FAC | SQR(X), jusqu’a ce que le reste de la 106 JSR GETADR sINT(FAC) -> $50 IRCA); Jus q 107 INC SQRN1 7S'agsure que la valeur division soit nul. Auquel cas, le 39g BNE TESTNUM ; est par excés diviseur est retourné dans FAC, et 109 INC SQRN1+1 T’Applesoft se charge ensuite d'affecter 119 le contenu de FAC & Y. Si aucun 111 TESTNUM MOV £>PREMTBL;ADRTBL+1 diviseur n'est trouvé, alors c'est 0 qui ee BON" ERREN TERT ADRTEE: st placé dans FAC, puis dans Y. 774 tee ee est plac > P * 41¢ BEQ TEST #Toujours pris Enfin, si PRIME.FACTOR arrive Ala 375 fin de sa table (c'est-a-dire si X > 116 TESTLUP INY 3276842, soit environ 1E9), alorsun 127 BNE TESTI message d'erreur est envoyé. } ae INC ADRTBL+1 ROS epee are , 120 TEST3 LDA (ADRTBL),Y ;Met le nombre premier suivant Note : j'ai privilégié ici la vitesse. Si 33) STA N2 3} dans N2 toutefois 7Ko vous semblent trop 122 BEQ OVRFLOW 7Si 00, fin table 28 Pom’s n° 38 123 124 125 126 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 166 169 170 171 EXIT FNDPREM OVRFLOW Iny LDA STA CMPD BCS USK LDA BNE LDA BNE LDA Loy UMP LDA TAY BEQ LDxX MP (ADRTBL) , ¥ N2+1 N2;SQRN1_ ;N2 > racine (N1)? FNDPREM #Si oui, alors Nl premier! biv32 sEffectue N1/N2 R #Reste nul? TESTLUP = #Non -> on continue R+1 TESTLUP N2+1 #Si non premier, N2 ¢ retourne le diviseur GIVAYF £0 #Sinon, retourne 0 EXIT #Toujours pris £69 ;Affiche OVERFLOW ERROR ERROR PEREARARARERA RRA R ERE RE RE RE REE EEE * Division entiére de Nl (32 bits) par N2 (16 bits) bIV32 DIVLUP DIVv2 DIVEND CNTR Mov4 MOV STA LDx DEX BMI ASL4 ROLD CMPD BCS ROL UMP ROL4 SUBD MP RTS Ds NI;TEMP4 ;Dividende -> Temp4 long, vous pouvez toujours modifier PRIME FACTOR en réduisant la table, voire méme en la supprimant totalement (on teste alors tous les entiers impairs). Dans ce dernier cas, la mémoire occupée sera trés faible (moins de 256 octets), mais alors les temps de calcul deviennent trés importants. Comment créer PREMTBL Il est, bien sOr, possible de saisir PREMTBL manuellement, a partir du moniteur. Mais alors “bonjour le travail” ; PREMTBL est longue de 3512 x 2 = 7024 octets. Le mieux est de calculer PREMTBL 4 I'aide du programme Basic CRE.PREMTBL. Celui-ci calcule les 3 512 nombres premiers inférieurs contenus dans PREMTBL, puis les code sur 2 octets et enfin les sauve sous forme binaire dans le fichier PREMTBL, en utilisant le préfixe courant. Pour lancer le calcul, il suffit de taper “RUN CRE.PREMTBL”. Attention, cela prend plus d'une heure ! A vous maintenant de construire vos applications, comme par exemple la simplification de fractions ou la représentation graphique de spirales de nombres premiers. 4 £0;R #Mise 4 zéro du reste R Rtl £32 #Le dividende a 32 bits DIVEND TEMP4 R R:N2 7Si R>=N2, le quotient est 1 DIv2 #sinon 0 RESULT DIVLUP #Toujours pris RESULT R7N2;R 7R - N2->R DIVLUP 1 Programme OFF ‘CRE.PREMTBL’ 10 REM CALCUL ET CREATION DE PREMTBL 20 LOMEM: 16384 PRIME FACTOR 30 DS = CHRS$ (4): DIM K(3512) 40 PRINT : PRINT “CALCUL PREL FONCTIONNE IMINATRE"; guilt TRS 50 K(2) = 1:K(1) = 0:K(3) = 1: N=2 60 FOR I = 5 TO 255 STEP 2 Apple I+, //[e, 70 IF INT (I / 2) = (I / 2) THEN K(I) = 0: GOTO 120 /fe ET IIcs 80 C = INT ( SOR (I)) 90 FOR J=3T0C STEP 2: IF sous DOS 3.3 ou INT (I / J) = (I / J) THE NJ = 999 sous ProDOS fone 110 IF J < 999 THEN PRINT ". “¢sK (2) = 1s =< N+ 2 120 NEXT 130 PRINT : PRINT : PRINT "CA LCUL DE PREMTBL:": PRINT 140 J = 1: FORI ~ 1 70 256: I F K(I) THEN K(J) = I:d = J + 1: PRINT I, 150 NEXT 160 FOR I = 255 TO 32767 STEP 2 170 FOR J =2 70 54 180 IF INT (T / K(J)) = (I / K(J)) THEN J = 99 190 NEXT 200 IF J < 99 THEN PRINT I,: N= N+ 1:K(N) =T 210 NEXT 220 PRINT ; PRINT CHR$ (7)7" CREATION DE PREMTBL” 230 AD& = 8448: REM $2100 240 FOR I = 0 TO 3511:X = K(I +1) Pom’s n° 38 29 F | 250 POKE ADé+I*2+1,x/ 2058:C@ Bl 04 85 07 AS 06 CS 20 PRINT CURG (4) "BRUN PRIME | 256: POKE AD$ + I * 2,X - 2060:50 AS 07 B5 51 BO 12 20 «FACTOR, A$2000" 256 * INT (x / 256): NEXT 2068:83 20 AS 08 DO DF a5 09 30 PRINT CHRS (4) "BLOAD PREM TBL, A$2100" 40 LOMEM: 16364 50 HOME : PRINT "En utilisant 260 PRINT CHR$ (7) 270 PRINT D$"BSAVEPREMTBL, A"A De", L"2 * N 2088:01 85 FD AD UZ 85 FE AS PRIME FACTOR, je peux dec 2R0 TEXT 2090:03 85 FF AS 00 85 08 85 omposer un nombre entier < 2098:09 AZ 20 CA 30 39 U6 FC 4 189 en"; PRINT “produit i 20A0:26 FD 26 FE 26 FF 26 08 de facteurs premiers." Récapitulation 20A8:26 09 A5 08 C5 06 AS 09 60 PRINT :MAX — 32768 ~ 2 20B0:E5 07 BO 0B 26 EB 26 EC 70 PRINT : PRINT : INPUT "Nom | ’ a | PRIME.FACTOR 20B8:26 ED 26 EE 4C YB 20 26 bre a décomposer ou 0 ? "7 3 ir saisi 20C0:EB 26 EC 26 ED 26 EE AS X:X = INT ( ABS (X)) rés av | ae Oe ae ee 20C#:08 38 E5 06 85 08 AS 09 680 PRINT : IF X = 0 THEN END moniteur, vous le sauvegarderez par ba = BSAVE PRIME.FACTORAS2000,L$D9 —-7000#E5 07 85 09 4c 9B 20 60 2008: 00 90 IF X > = MAX THEN PRINT 2000:A9 20 85 0C AQ 09 85 OB “Trop grand!": GOTO 70 Wee eee ae 100 PRINT “Liste des facteurs | 2020:8D D8 20 AS 00 85 00 €5 Programme pieilens de "Xt", 2018:01 85 07 AS 03 CR DA 20 fj * bam ae e 2020:30 13 06 A9 26 AB 26 A? DECOMPOSEUR Bee W Pes es ae 2028:26 A6 26 00 26 01 26 02 0 2030:26 03 4C 1D 20 20 a0 EE 1 REM DECOMPOSITION EN PROD 45, porym y sx = x / Y= GOTO 2038:20 52 F7 E6 50 DO 02 E6 UTT DE FACTEURS PREMIERS ce | 2040:51 AQ 21 85 05 AI 00 8&5 10 TEXT : (E : PRINT “Je ch | 2048:04 AO 00 FO 05 CA DO 02 arge PRIME FACTOR et PREMT 2050:E6 05 Bl 04 85 06 FO 26 Bbaes™ J TimeOut GrarH | VOICI QUELQUES EXEMPLES QUI ILLUSTRENT LA PUISSANCE DE GRAPH. SANS QUITTER APPLEWORKS, LES GRAPHIQUES SE CONSTRUISENT INSTANTANEMENT EXACTEMENT ADAPTES A VOS BESOINS. CHANGEZ UNE VALEUR ET TROIS | | TOUCHES SUFFISENT POUR AFFICHER LE GRAPIIIQUE MODIFIE. ET POURQUOI NE PAS AUTOMATISER CONSTRUCTION ET 28 (22, 5%) IMPRESSION DES GRAPHES AVEC ULTRAMACROS ? 30 Pom’s n° 38 Vous l'avez strement entendu dire, avec un brin d'envie, par des amis qui programment : «Un éditeur de programmes Basic ? J'emploie mon traitement de texte, voyons !». Mais comment font-ils done ? Le principe est fort simple : partant d'un fichier de traitement de texte, on le transforme en un fichier de type TXT (ASCII), on va en Basic Applesoft, on EXECute ce fichicr : & partir de 14, on peut le sauver sous le nom qu'on veut avec SAVE : il est devenu un fichier BAS (faites “RUN”, vous verre7). La réalité est un peu plus complexe, surtout si l'envie vous prend d'aller travailler avec AppleWorks un fichier Basic déji existant. Essayez de transformer directement un fichier BAS en fichier aitement de texte : AppleWorks est d'accord pour convertir n'importe quel fichier en traitement de texte AWP, mais les résultats sont pour le moins déconcertants. Il vous faut d'abord ‘traduire’ votre fichier type BAS en fichier type TXT (ASCII), et malheureusement il n'existe pas en Basic Applesoft de commande qui fasse le contraire d'EXEC. II faut done Tuser une peu. On verra cela un peu plus loin. Tout ceci peut évidemment se maitriser, et un programme sous forme de traitement de texte est quand méme plus facile a travailler que sous sa forme Basic (la procédure de modification en Applesoft avec ESC et les fléches est parfaitement odieuse). Mais, sauf pour les tout petits programmes, ce n'est pas la joie: pour peu qu'il y ait beaucoup d'instructions par numéro de ligne, et des REMs 4 droite et 4 gauche, la lecture ne sera pas facile. Non, non, croyez-moi, ceux qui vous disent que le traitement de texte AppleWorks est Téditeur idéal pour les programmes en Basic Applesoft vous racontent des histoires. Ils ‘friment’. Les avez-vous seulement vus a I'ceuvre ? Mais heureusement SuperMacroWorks peut venir mettre de l'ordre dans ce fouillis, en permettant de formater et déformater votre programme. Ce sera le sujet de cet article, qui vous proposera aussi un certain nombre de macros-commandes pour accélérer et simplifier l'écriture de vos programmes Applesoft. Certes, cela ne vaudra jamais un vérilable éditeur Basic écrit exprés en langage machine (comme Program Writer d'Alan Bird, ou le GPLE des Beagle Bros, ou encore E.P.E. de Pom’s), mais les avantages sont certains par rapport aux misérables moyens d'édition de T'Applesoft abandonné & lui-méme... En fait, je vous propose deux macros de formatage : + l'une ‘aére’ simplement le programme, en allant a la ligne Pom’s n° 38 Dimitri Geystor entre chaque instruction, et en intercalant A chaque fois un trait fait de 5 ‘tirets’. Ce sera la macro <sa-Ctrl-A> du fichier MACROS.BASIC. + T'autre ‘ventile’ le programme, en envoyant chaque instruction séparée & la ligne. C'est la macro <sa-Ctrl-V> du _ fichier MACROS.BASIC. Ilest possible d'aérer et de ventiler a la fois, si vous ne craignez

Showing the first 100000 of 265455 characters.

mp.ls