Skip to main content

magazine poms45

  • PublicationApple Periodicals
  • Pages76
  • Sourcemagazine_poms45.pdf
← Magazines magazine poms45
/ 76
Source: Internet Archive — Aggregated Apple-era periodicals, 1981–2012.
Page 1
Loading…
Text content (OCR)
La revue francophone indépendante pour les utilisateurs d'Apple BASE DE DONNEES APPLEWORKS UTILITAIRES MAcINTOSH ET APPLE II WORDING... ‘ *y : Mil ...LA solution pour relier aux Apple //e et ][+ : un “Apple 3.5 GS Platinum” 800Ko un lecteur Macintosh 800Ko un lecteur Macintosh 400Ko un lecteur Chinon 800Ko un Unidisk 5,25” 140Ko Connectée a n‘importe quel port, elle pilote deux lecteurs (méme différents, pouvant totaliser 1,6 méga). Elle permet le travail bit bit avec tous les lecteurs d’aujourd’hui (ce travail était impos- sible avec l’Unidisk 3.5”). Carte UDC : 1 050,00 F TTC franco Tarif carte Pom’s Joker : 945,00 F TTC Logma S.A. — 12, rue d’Anjou — 78000 Versailles — Tél : 39 51 24 43 Numéro 45 Domaine Public Mac novembre-décembre 1989 Disquette Mac J Editorial e: & fo Jean-Christophe Krust Hervé Thiriez Page 5S Pears Sse Page 34 Then —_ 2 MacroMind Director EERE St BOGE ; AuthorWare [les J ile WG Tey Hae fre] = Philippe Mathieu ay =) ey Page 6 = == Page 36 AppleWorks 3. Word et Laser Dimitri Geystor it ae Wording Aiwa ———= | Page 9 fre] ‘al Christian Piard aa) ae Page 40 Base de Données Programmation AppleWorks Domaine Public [z Dimitri Geystor Share-Free-Ware ; e Jean-Yves Bourdin i ys) (ae Page 10 “Me We =, =) eas Page 42 Organiseur II WMacihIOgh J.-L. Schmitt Page 17 Les News frase] fre) Ariel Sebban Math : e & Pythagore a a= Page 46 We Paul Canal ee] 7 Page 21 TimeOut ReportWriter Dimitri Geystor Lies} (ell re ag (=) (eee Page 23 Les nouveaux supports Lemps-Machine Echanitillon = Alain Raynaud C= Page 26 = ce Ariel Sebban a) TS) Page 5S Apple // for ever Jean-Yves Bourdin Ics He a pag =) Page 57 Sondage Page 70 Courrier des lecteurs Page 71 Petites annonces Page 74 Mots croisés Page 74 Les annonceurs ; Bréjoux : page 8 ; Gribouille S.A. : page 16 ; Logitech : page 76 ; ToolBox : page 7. Editions MEV - 12, rue d'Anjou - 78000 Versailles. Tél. : (1) 39 51 24 43, Directeur de la publication : Hervé Thiriez Pom’s n° 45 Granp Concours pu Logic, GS GS Cuus v’OR Lr GS CLUB ORGANISE LE CONCOURS DU MEILLEUR LOGICIEL POUR APPLE IIGs, A COMPTER DU 1ER DECEMBRE 1989. CE CONCOURS EST OUVERT A TOUS. | Des Prix EARS | AU | TROPHEE TER PRIX UN DISQUE DUR INTERNE VULCAN 40 MEGAS GS Cuus : 2eME PRIX UN DISQUE DUR INTERNE VULCAN 20 MEGAS 3EME PRIX UNE CARTE ACCELERATRICE TRANSWARP Brejoux AE. Lyon Le Concours Peary. VERSAILLES Ce concours ne concerne que des logiciels dits “sérieux” (voire professionnels) capables d’intéresser un grand nombre d’utilisateurs. Les programmes proposés devront étre en langue francaise, fonctionner sous ProDOS 16 en mode Desktop (écran graphique, menus déroulants, ctc.) et étre compatibles avec le GS/OS 5.0. Quelques exemples et idées : — utilitaires de gestion-disques ; — ultilitaires de gestion de l’Ensoniq et du son ; — base de données, gestion de fichiers ; — comptabilité ; — outils graphiques ; — ete, Les candidats au concours sont invités & présenter d’abord au GS Club un projet écrit, détaillé, décrivant le but et les finalités du programme, ceci dans le courant de janvier 90. Le jury statuera sur la validité du projet, suggérera au | CALENDRIER REMISE AU CLUB DU PROJET | — Janvier 1990 —Jun 1990 REMISE AU CLUB D’UNE PREVERSION | | —Sepremprt 1990 REMISE DE LA VERSION DEFINITIVE —Ocrosri 1990 — REMISE DES PRIX (APPLE Expo) | besoin aux candidats quelques idées ou modifications du projet et décidera alors de I’habilitation du candidat 4 concourir. Les programmes déja diffusés au 31 décembre 1989, que ce soit de fagon commerciale ou en FreeWare/Share Ware, ne pourront étre retenus, Les améliorations simples de produits déja existants & cette date sont aussi exclues. Si le projet est accepté, aucune diffusion publique du produit — méme en pré-version—, ne devra étre faite avant la remise des prix sous peine d’exclusion du concours. Aucune contrainte concernant le langage de programmation n’est imposée. Les candidats devront prévoir un manuel expliquant les fonctions, astuces et contraintes du programme. Leur logiciel devra pouvoir se traduire facilement dans une autre langueet,encas d’édition, le source devra étre remis a1’éditeur.En outre, l’autcur s’engagera a assurer un suivi de son ceuvre. Les trois logiciels primés feront l'objet d’une diffusion officielle par la revue Pom’s. CONTACT, RENSEIGNEMENTS, REGLEMENT : GS Cius Mr Denis MELCHIOR 6, IMPASSE DE LA CROIX POMMIER 94120 FonTenay sous Bots Ont collaboré a ce numéro Jean-Luc Bazanegue Jean-Yves Bourdin - Jay Han Dimitri Geystor - Olivier Herz Jean-Christophe Krust - Nathalie Laudat Daniel Lurot - Philippe Mathieu Gérard Michel - Christian Piard Joélle Piard - Alain Raynaud Jean-Luc Schmitt - Ariel Sebban. Directeur de la publication rédacteur en chef Hervé Thiriez Rédacteurs Jean-Luc Bazanegue - Christian Piard Sidge social Editions MEV — 12, rue d’ Anjou 78000 Versailles _ (1) 39 51 24 43 Serveur Minitel (1) 39 53 04 40 Publicité Editions MEV Diffusion N.M.P.P. impression Mame — 49, boulevard Preuilly BP 1701 —37017 Tours Cedex ® 4737.08.08 Photos CP & JLB Dessins Gilles Coursier Photogravure Graphotec — 21, chemin de la Tour 92350 Le Plessis-Robinson B (1) 46 30.44.49 Pom’s est une revue indépendante non rattachée & Apple Computer, Inc. ni 4 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. IBM est une marque déposée de International Business Machine. PC et AT sont des marques déposées de la Société IBM. @Editions MEV 1989 Toute reproduction intégrale ou partielle, effectuée par quelque procédé que ce soit, sans l'accord écrit Editions MEV, constituc une contrefagon. Loi du 11 mars 1957, articles 425 et suivants du Code Pénal. Droits de traduction, de reproduction et d'adaptation réservés pour tous pays. Editorial Apple Expo Une débauche d'écrans 4 faire palir le Cinémascope, des nuances 4 y perdre un coloriste, des versions 8 4 surprendre votre disque dur de 600 mégas, des 68HC000 a surprendre votre banquier, des streptomycines anti-dernier-virus... Des Ilyper-HyperCard aussi. Des mégahertz encore. Et surtout des visiteurs passionnés a la grand'messe Apple de plus en plus orientée carte-de-crédit-épanouie. Des Apple //? Un peu, trop peu, mais un Emile Schwarz bien efficace au stand Apple. Et de bonnes nouvelles, une nouvelle boutique 4 Paris : Bréjoux. Une a Argenteuil : ToolBox. L'Apple // est toujours jeune, dopé par la passion. Bréjoux et Pom/’s siassocient 4 l'initiative du GS Club d'organiser un grand concours : le Trophée GS Club. Les gagnants recevront des prix, mais ils ont aussi l'assurance de voir leurs ceuvres logicielles éditées par votre revue préférée ; les pré-projets déja recus laissent augurer du meilleur... Au chapitre émotion, Jean-Luc Bazanegue nous abandonne lachement, il est en route vers de nouvelles aventures, en restant toutefois un rédacteur privilégié de la revue : nous voyons poindre déja un programme Mac en C. Pour pratiquer son humour dévastateur, nous aurions da ouvrir a cette occasion une rubrique nécrologie ! Bonne route. Un peu d'ordre dans les news s'avérait nécessaire : sur la disquette Apple //, vous trouverez désormais un fichier AppleWorks ordonnant les sujets abordés dans Apple // for ever, ct sur la disquette Mac, le méme travail concernant les News Mac sera confié 4 une pile HyperCard. Hervé Thiriez Pom’s n° 45 Discret : L heure en Votre Apple // n'a pas d'horloge ? Voici une petite routine, discréte puisqu'elle se cache dans la page 2, avec laquelle vous indiquerez le jour et l'heure 4 ProDOS : plus de fichiers ‘sans date’, et pas de conflit avec d'autres routines en assembleur... Introduction Pour utiliser pleinement les possibilités de datation du ProDOS, on peut, sous Basic, utiliser l’excellent Datheur de Bruno Frénart paru dans le Pom’s 24. Mais j’ai souvent rencontré des problémes de conflit avec d’autres aides a la programmation en Rasic. Ainsi, Datheur on ces aides se plantaient en présence de l'autre (souvent, sans qu’on sache Iequel des deux I’avait causé, le Basic plantait, et on perdait la main). Le petit utilitaire de mise a I"heure que je vous propose a, quant a lui, une grosse qualité : il est uts sommaire et offre des fonctions limitées. Comment ¢a marche Le fait que le programme soit ‘léger’ apporte ici un avantage : il peut se loger tout entier dans le buffer d’entrée en $200, endroit que tout le monde respecte (contrairement a l’espace jamais libre en $300). En effet, le Basic et ProDOS ne cessent pas de l’utiliser et de chambouler ce qui y est, et personne n’ose y mettre ses routines. Mais si ce n’est qu’un petit utilitaire de mise A Vheure de la date et de I’heure du ProDOS, un petit programme qui ne dure que le temps de la mise & I’heure et qui est abandonné ensuite, comme aucune entrée au clavier n’intervient pendant son déroulement, on peut y travailler tranquillement. D’oii l’idée de ce programme. Il faut toutefois apporter un bémol au ‘tranquillement’. En effet, des que l’interpréteur de commandes ProDOS est sollicité, il s’empresse d’ utiliser un zone commangant en $280 pour y mettre le ‘pathname’ complet du fichier 1e 2 Jay Han anquel on accéde. N’ayant pu comprimer le code de manitre & ce qu'il n’y ail aucun conflit, je me suis contenté d’y laisser un espace de maneuvre assez large pour les utilisations courantes. Cependant, il ne faudra pas que le nom du fichier (seul, sans préfixe) dépasse 12 caractéres, et que le nom complet avec préfixe dépasse 23 caractéres, sans quoi I’interpréteur de commandes (le Basic Interpreter) se mettrait a ‘écraser’ le code. Cette remarque ne vaut que pour ceux qui entreront la récapitulation hexadécimale a la main puis la sauveront avec un ‘Bsave’. Pour les autres, aucune crainte ; une fois le programme chargé, le BI. n' écrit plus rien en $200. Mode d’emploi Tl est des plus simples. Pour lancer le programme, faire un ‘BRUN’ ou, micux, utilisez la commande “tirct”. Le programme affiche alors une série de cinq chiffres, respectivement : le jour, le mois, l'année, I"heure, et la minute. Réglez ces chiffres avec les fléches gauche, droite, haut, bas, puis validez le tout avec un <return>. C’est fait, la date est enregisurée, vous pouvez faire le ‘SAVE’ salvateur et tout-a-fait 4 I’heure. Un conseil pour une utilisation agréable : mettez cet utilitaire dans le disque virluel /RAM, et appelez-le d'un nom court ; taper -/RAM/T par exemple ne prend qu'un instant. Comment saisir la récapitulation C’est un peu compliqué. Suivez bien le guide, ou achetez la disquette d’accompagnement Pom’s, qui contient d'ailleurs, comme d’habitude, bien des choses fort utiles. Pour commencer, videz la mémoire de tout programme Basic. Puis faites cALZ-151 pour entrer dans le Moniteur. Tapez la récapitulation, sans omettre d’cspaccs, ni cn rajouter. Puis faites : BSAVE<nom>,A3912, B39FF 212<912, 9FFMJ BSAVE<nom>,A$212,ES2FFI Pom’s n° 45 Faites encore attention que <nom> ne dépasse pas les 12 caractéres, ct que le nom du fichicr complet, avec son préfixe, ne dépasse pas 23 caractéres. Une fois ceci fait, vous pouvez copier le fichier dans tous les sens sans risque ; son nom peut avoir la longueur que vous désirez, 4 l’'intérieur toutefois des limitations du ProDOS. En guise de conclusion Cette utilisation possible de la zone $200 donne des idées. Ainsi, on pourrait penser & une sorte de TimeOut sous Basic, commengant par un petit module qui se chargera en $200 et qui s’occupera de sauvegarder un portion de mémoire sur disque puis de charger et lancer une application a l’endroit sauvegardé. Cette application fera certaines choses, et sortira en appelant un autre module en $200 qui rappellera la portion de mémoire sauvegardéc avant de rendre la main au ProDOS. A ce prix, il est malheureusement impensable d’utiliser de tels systemes sans Ics mettre préalablement sur Ic disque virtucl... Source Time.Sce +4* TIMER *** RAPPELLE, MODIFIE, SAUVEGARDE LA DATE *** PAR JAY HAN, AVEC PRODOS EDASM 4#** AVANT D'ENTRER LE CODE, 'BSAVE NOM, AS2 #** SAISIR PUIS SAUVEGARDER AVEC 'BSAVENOM! *** OU LE NOM A UNE LONGUEUR DE ...: ORG $212 712 CARACT. #DONNEES ET PO. DATE EQU $BF90 TAB zou $0 STORE = FQU $1 MINUTES EQU $1 HEURES QU $2 ANNEE = FQ $3 MOIS EQu 34 sour EQU $5 INVFLAG EQU $32 cH EQU $24 FQUELQUES ROUTINES DU cHeo EQu $578 PRBYTE QU SFDDA INKEY = EQU $FD1D 7 SAUVEGAROE Lx £5 SAVE IDA TAB, X PHA DEX BPL SAVE #RECHERCHE DE LA DATE EN COURS LDA DATE PHA AND iSiF STA JOUR ISR DATE+1 AND £SE0 La pomme sans les pépins TOOLBOX 6, rue Henri Barbusse 95100 ARGENTEUIL ©: (1) 30 76 18 64 Le Magasin de I'Apple II Vente directe et par correspondance Toutes les nouveautés chaque semaine directement des USA Achat et Dépot Vente de matériel d'oceasion Démonstration de Matériels et de Logiciels Avantagcs pour Ics Membres de TAssociation ToolBox Disque dur 32MB Tempsd’accés 40Ms-SCSI 5920 Fr(TTC) avec carte SCSI ProDOSS - ProDOS16 - GS/OS 5.0 - Tous les logiciels de qualité sont disponibles chez TOOLBOX. Hyperstudio - Merlin 8/16+ - Publish it - Prosel 16 Instant synthe - Tul Pascal Il- Appleworks GS - Printshop GS, ETC ... Arkanoid II - Test Drive - Sword of Sodan - Dungeon Master - Rocket Ranger - Zany Golf - Gnarly Golf ... - Documentation francaise complate et support technique sur nos produits Programmes Freeware et Shareware - Reprise des logiciels achetés chez TOOLBOX - Catalogue de cartes d’extension RAM - Disques Durs - Librairie Cours d'initiation : Systeme ProDOS/GSOS - Appleworks + Timeout - Langages Demander contre 50,00 Fr. notre catalogue complet (Nov. 89) ISR STA MOIS EDA DATE+1 STA ANNEE LDA DATE+2 STA MINUTES LDA DATE+3 STA HEURES #CONVERSION HEX EN DCB conv #BNE ASSURE C=0 BNE CONVi conv2 STA STORE,X BPL CONV #POINTS DIENTREE A LA BOUCLE OUCLE GENERALE BIGLOOP LbY £4 sTY cH Loop cpy TAB BNE PRINT ISR INVFLAG PRINT LDA STORE,¥ USR PRBYTE sE87F Pom’s n° 45 IGS: HIE: me: ( BREJOUX.AE... ct TOUS VOS APPLE II SONT EN FETE! Extensions mémoire (GS Ram et GS Ram Plus), Alimentation permanente (RamKeeper) Accélérateur 6.25 Mhz (TransWarp GS) Compatibilité MS-DOS avec PC-Transporter, Disque Dur interne 20/40/100 Mo Vulcan Co-processeur mathématique (FastMath) Le son avee Sonic Blaster, Audio Animator. Extensions mémoire, Alimentation permanente Disque Dur interne 20/40/100 Mv Vulcan Disque dur winchester 3.5" externe 20 Mo Accélérateur 3,6 Mhz (TransWarp) ete ... Extension mémoire avec ou sans horloge et CP/AM, UniDisk 800K et kit de mise a niveau. TOUT LE MATERIEL APPLE II sur mesure: Apple II GS, LaserWriter, ImugeWriter II... LES MEILLEURS LOGICIELS a des prix U.S.A dont en exclusivité: ProSel 16, HyperStudio AppleWorks GS, AppleWorks 3.0 Nombreux prix 4 la baisse. Profitez en! BREJOUX.AE 29 A rue Montribloud 69009 LYON Tel: 78.36.52.69 Fax: 78.25.50.84 Récapitulation Time.Obj Apreés avoir saisi ces codes sous monileur, vous les Sauvegarderez par : Bsave 0912:8F o910:4a 0920785 0928:93 0930784 93a:n8 9940:ED 0948:24 0950:02 0958:5E 0960:20 vyee:co 0970:a7 0978:a9 0980:a0 o9a:e0 Time.obj, a$912, e$9f6 68 29 £0 6A 4A 4a 4A 85 04 AD 91 BF 03 AD 92 BF 85 01 AD 0990:D9 CC Fé 69 00 DB 95 U1 BF 85 02 A2 04 A900 0998:4C 57 02 FS EO 01 4c A? 01 FO 08 F8 18 69 01 69R0:02 CA 10 9F 30 9B EB EO AA DO FA 95 01 CA 10 08A8:05 DO 98 A2 00 FO 94 AZ AZ 04 86 00 AO 0¢ 84 —0980:05 AD 90 BS 00 FO 08 ce C4 00 DO 02 46 32 B9 0988:F8 38 £9 01 DE DO Fa 96 90 20 DA ED 38 26 32 99C0:95 99 CA DO EC 6D 92 BE 7B 05 86 10 EB AI AQ O9CEZAS 03 OA 85 00 AS 04 OA 1B FD AB AG 00 BS 01 99D0:0A OA OR OA OS OS BD 90 88 FO 3A D0 14C5 AO 998: BF BA 2A > 00 BD 91 BF D9 AN AD AO AD AO AO —O9ED:AS 07 BD 93 AF 68 95 00 AQ AD AO AO CS AU CY O9EBZE8 EO 06 D0 F8 60 68 95 AO CO 95 FO 18.CO 8A 99F 0:00 E8 £0 06 DO FB 60 84 11 C0 8D FO 21 CO 8D © «09F 8:22 56 4F 40 55 4D 45 3A STO. VAL BAS RET? REST ome SED SRC oMP SBC sya DEX ANE, STA LDA ASL STA LDA ASL ASI. ASL ASL ORA TxA ROI, PLA STA INK cex BNE Rrs HAUT £895 ECHE DROITE pKOLTE ESER BAS £98D RET £588 INPUT IGNORE LE RES? FAUGMENTE LA VALEUR. a) 2RFQ ASSURE C=1 STORE, x BIGLOOP #DIMINUE LA VALEUR #1 #BEQ ASSURE C- STO, VAL {DECREMENTE TA. STO,LOOP ;X>0 OK RST.LOOP ;X<0 ALORS X=4 #INCREMENTE TA: £5 STO.L00P —3X<5:0K £0 #X-5 ALORS X-0 SYO.LUOP TOUJOURS PRIS B B SCONVERSTON NCR RN HEX £5 £0 STORE-1,X RET 1 RET2 SYUKE=1, RRTT 2A LA SORITE, X=0 GMISE DANS LA PAGE: DATE+2 ¢A CONTIENT LES MINUTES ANNE TAB #ANNEE MOIS Jour DATE sMOIS ET JOUR 2X0 TAB + TAB=TAMPON DATE+1 HEURES HEURES DATE+3 F410 Xe #RESTITUTION TAB, X £6 REST Pom’s n° 45 GLOBALE PRODOS Dimitri Geystor Nous vous le laissions déja entendre, et cette fois-ci c’cst une confirmation. Tl est temps de lever un coin du voile, maintenant que I’on commence a y voir plus clair. C’est que |'histoire “secréte” de la francisation d’AppleWorks 3.0 a été, jusqu’a présent, pleine de rebondissements. Vous comprendrez mieux les choses si je rappelais que I’un des auteurs du nouvel AppleWorks 3.0 est Randy Brandt — ce méme Randy Brandt qui, lorsqu’il avait congu SuperMacroWorks, en avait fait une variante francaise (pour AppleWorks 1.4), sans méme savoir, m’a-t-il confié, si quclqu’un 1’utiliscrait jamais... Le hasard a voulu que, grace 4 pas mal d’efforts de ma part et & un moment décisif, grace a l’entrée en sctne de Pom’s, la prémonition de Randy devienne réalité. Toujours grace 4 Randy, qui a su me mettre en contact avec Daniel Lurot (mais je vous ai déja conté cette histoire —voir le numéro 38 de Pom’s—), les TimeOut francais ont vu le jour et vous en étes les bénéficiaircs privilégiés. Je n’ai donc été qu’a moitié surpris quand, il y a trois mois, j’ai regu de Claris USA un coup de téléphone de la directrice de marketing des produits Apple //. Elle m’appclait de Ia part de Randy, et voulait savoir quelles étaient les perspectives pour une version francisée d’AppleWorks 3.0. En fait, ses projets étaient encore plus ambitieux, car elle souhaitait une véritable “localisation” multilingue (comme on le dit dans le jargon de ces boites) sous l’égide et l’étiquette de Claris : emballage, manuel, service aprés-vente, et tout, et tout. Pressenti, Daniel Lurot se faisait fort de réaliser la version frangaise (et aussi I’allemande, soit dit en passant). Des pourparlers s’engagérent — et qui dans ces pourparlers flancha le premier ? Claris soi-méme : son département juridique aurait soufflé a l’oreille de la direction commerciale qu’un logiciel sous emballage Claris voudrait dire que Claris y engagerait non seulement beaucoup d’argent, mais aussi toute sa responsabilité. Prise en tenaille entre les juristes et les financiers de I’ entreprise (et quelle entreprise, c’est un “machin” atteint de gigantisme a l'image d’Apple), la directrice idéaliste dut tempérer sa vision. Plus question donc, pour quiconque, de vendre un AppleWorks 3.0 frangais complet, En revanche, si quelqu’un était capable —me dit-on— de franciser un leWorks 3.0 AppleWorks 3.0 américain (sans vendre un AppleWorks pour autant, nuance !), Claris n’y voyait aucun inconvé- nient, et donnait sa bénédiction des deux mains. Quand a l’AppleWorks 3.0 américain, et lui seul, ii serait disponible par le réseau des distributeurs habituels Claris. Aprés avoir versé une larme sur un beau projet mort-né, on pouvail quand-méme publier les bans d'une future union entre l’AppleWorks 3.0 américain, vendu cn France par Bréjoux, et un logiciel de francisation congu et commercialisé par Pom's (qui, lui, ne se dédisait pas). Mais attention, les futurs époux faisant chambre A part, chaque utilisateur devra acheter les deux logiciels. Dvailleurs, Bréjoux s’étant fort bien débrouillé, tout possesseur d’un AppleWorks authentique quelle qu’en soit la version (1.2, 1.3 ou 1.4 et méme 2.0) peut d’ores et déja l’échanger contre la somme vraiment trés modique de 970 F TTC. Faute de quoi il devra eu faire l’acquisition pour le prix normal, et encore trés abordable, de 1770 F TTC. Vu ce que représente l’AppleWorks 3.0, c’est une aubaine. Pour amplifier l’aubaine, Pom's proposera de son cOié, en méme temps qu’une francisation de cet AppleWorks, Ic nouveau et plus puissant UltraMacros 3.0 (lui aussi francisé). A quel prix, me direz vous ? Il n'est pas encore décidé, car la francisation est en cours et fixer un prix risquerait d’étre préjudiciable soit 4 ceux qui font le travail, soit aux acheteurs. Disons que ce sera le plus juste prix, pour que nul n’y trouve & redire. La date ? Au tout début de I’annéc prochaine — I’horizon s’approche. Et les TimeOut actuels ? Une chose est certaine, ils ne seront compatibles qu’avec l’AppleWorks 1.4 (actucllement €puisé, mais dont Bréjoux essaie de faire ré-imprimer un certain nombre d’exemplaires). Pom’s continuera donc a les diffuser. Il y aura sans doute aussi quelques TimeOut 3.0 francisés parmi les plus puissants et les plus professionnels : SpreadTools, ReportWriter, SuperFonts, Graph, etc. Mais j’empiéte sur I’avenir, évitons de tirer des plans sur la cométe. Pour l’heure, fid@le 4 sa vocation, Pom’s a relevé seul le défi de l’AppleWorks 3.0 francisé. Comme naguére Randy Brandt pour SuperMacroWorks, misons sur son succes. G Pom’s n° 45 —— PL 10 Programmation AppleWorks Dimitri Geystor Quoi de plus naivement innocent qu’une base de données AppleWorks - et quoi de plus rétif A manier, en vérité. Cet article yous propose un ensemble de macro-commandes qui yous faciliteront la tache ; ces commandes sont décrites et commentées ci-dessous. Il est recommandé d’en faire un fichier Task, & la maniére du fichier Task pour Traitement de textes présenté dans le numéro 43 de Pom’s. Ce numéro 43 donne des explications complétes sur les fichiers Task d*UltraMacros. En préambule, voici un rappel de quelques notions : ® Un fichier ‘lask est un fichier de macros, de type SYS, que vous pouvez créer avec I’application Macro Options d’UltraMacros. Une fois créé, ce fichier réside aux cétés du fichier ULTRA.SYSTEM sur votre disquette AppleWorks. Il conticnt vos macros pré-compilées prétes & ’emploi, et n’a pas besoin d’étre chargé sur le Bureau d' AppleWorks pour €ire activé. > On peut lactiver instantoe*mcni a partir d’Apple- Works par l’application Macro Options du menu TimeOut, Dans ce cas, la deuxitme macro du fichier sera automatiquement exécutée. On peut aussi l’activer avant de démarrer AppleWorks au moyen d'un sélecteur de programmes du type ProSel ou Bird’s Better Bye. Dans ce cas, le fichier Task provoque automatiquement le démar rage d’AppleWorks, et exécute la premiére macro qu’il contient. "Le fichicr “source” (c’est-d-dire les macros écrites en Tdt AppleWorks) est nécessaire une seule fois, a la création du fichier Task, Ensuite, on n’en a plus besoin pour activer les macros, mais il est sage de I’archiver pour pouvoir relire les commentaires en cas de modifications. La disquette Pom’s 45 contient le fichier Task nommé BDD.TSK, qui correspond aux macros décritcs dans cet article. Elle contient aussi le fichier d’aide TO. AIDE. BDD,a placer dans le méme sous-catalogue que vos autres applications TimeOut. Vous pourrez l’appeler avec la commande Option-?. Macros de démarrage du fichier Task <ba-$>:<all (Envoie au Menu principal d'Apple ks, en cas de démarrage par sé lecteur, hors AppleWorks) (correspond 4 la pause pour insér er le disque Programme } (valide le date) (enchaine sur la deuxiéme macro) Note : Si vous avez un lecteur 5,25”, e/ou si vous n’avez pas d’horloge, faites précéder les <rin> correspondants d'une commande <input> afin qu’AppleWorks fasse la pose qui permettra de retourner la disquette eYou insérer la date. <ba <all (Démarrage avec Macro Options) msg ' Macros BdD activées '>! Dans cet exemple, la deuxitme macro contient simplement un message d’information. Comme la premiére macro renvoie aussi a la deuxiéme, ce message s’affichera dans tous les cas de lancement du fichier Task. Macro de lancement des fichiers Task Cette macro s’utilise & partir d’ AppleWorks. Elle affiche une liste des fichiers Task disponibles. <ba &>:<all $0="Macro Options" oa-Esc find rtn rtn msg ' Choix = tléches. ESC pour abandonner ': KIN pour valider, begin k=key if k=10 down rpt olse if k=11 up rpt el se if k=13 rtn stop clse if k=27 esc esc s top >! Macro d’aide (appel de To.Aide.BdD) ?:<adb $0-"Aide.Bdp" oa-esc sa-ctrl-f (cherche $0; resultat da ns 2) if z = 0 then msg $0 + 'n @ pas été touve : stop (on arréte tout si la recherch e est négative ) elseoff : rtn>! (démarrer l'application) Les deux macros ci-aprés sont le nouveau “module de recherche ZMM v2.0”. La recherche passe successivement en rcvuc tous les menus TO, jusqu’& ce que l’application demandée soit trouvée, ou la liste épuisée. hell Pom’s n° 45 <ctri-f>:<all ; y - peek 7794 * 256 + peek 779 3 (identif.le premier menu) begin sa-ctrl-z (recherche avec ZMM v1.0 ) if z = 0 then tab (négatf, changer de menu) x = peek 7794 * 256 + peek 7793 (identifica tion. du menu actuel) ifnot x = y then (si nouvean menu, continue la recherche) ept>! NOTE: si x = y on est revenu au premier men u, il nty a pins qu'a abandonner... éctrl-z>:<all : 2 = 0: find : z= 1>! Module simple (pour liste unique), donne le résultat booléen dans Z : 0 = pas trouvé, 1 = trouve. Macros concernant les bases de données Rappel de quelques notions Un fichier BdD contient un ensemble d’ informations, regroupées en “fiches”, dont chacune contient A son tour un méme nombre de “rubriques”, ou “catégories”. Ces catégorics sont les données élémentaires dont la Base est composée. On peut consulter directement ces informations a l’écran, soit fiche aprés fiche (format monofiche), soit sous forme d’un tableau od chaque fiche occupe une ligne (format multifiches). On passe d’une présentation a |’autre au moyen de la commande @-Z. Alors que la souris d’UltraMacros permet de circuler sans entraves dans un fichier Tableur, il n’en est pas de méme dans unc Base de données en format multifiches : @® Les fléches (donc la souris) déplacent le curseur & Vintéricur d’une seule rubrique ; Ce sont les commandes TAR et @-TAB qui font sauter le curseur de catégorie en catégorie, vers la droite et vers la gauche respectivement, ® Ensuite, ct c’est une limitation beaucoup plus génante, quand le curseur arrive 4 l’extréme droite de l’écran, un TAB de plus le fait passer au début de la ligne suivante. De méme, si le curscur est 4 gauche de I’écran, @-TAB le fait remonter A l’extréme droite de la ligne précédente. Si votre fiche est longue, il y a de bonnes chances qu’un certain nombre de catégories restent toujours hors le vue, 4 la droite du tableau. Que faire ? De deux choses l'une : soit passer en mode monofiche avec @-Z (et on perd le bénéfice de la vuc d’ensemble), soit restructurer le format multifiches avec la commande @-X d’AppleWorks : c’est possible, mais fastidieux. Mon premicr souci a donc été de construire quelques macros qui contourneraient ces inconvénients. Nous allons voir tout d’abord quelques macros de déplacement rapide du curseur, en format multifiches, dans la limite des catégories visibles. Pour faire sauter le curseur en début de ligne (ou de fiche), il suffit de tirer parti d’un comportement “inné” d’ AppleWorks : si l’on fait @-X et qu’on revienne aussitét a l’écran de départ, le curseur est toujours renvoyé a la premitre catégorie de la ligne (ou de la fiche). Curseur sur la premiére catégorie visible de la fiche pi<adb oa-x esc esc>! (curseur sur lére catégorie visible) Pour envoyer le curseur a la derniére catégorie (visible) de la ligne, les choses sont moins simples. On procéde comme suit : on envoie d’abord le curseur sur la premitre catégorie de la ligne avec <sa-p>, on fait <oa-tab> pour reculer 4 la catégorie visible précédente c’est-a-dire justement la derniére catégorie de la ligne au-dessus, puis on fait <down> pour revenir a la ligne de départ. Comme toujours, pour une bonne programmation, il faut essayer de prévoir Ic cas particulicr qui fait exception : si Je curseur est au début de la premiére ligne, impossible de reculer avec <oa-lab>. II faut taper d’abord <down>, et <oa-tab> cnsuitc. Et comment savoir si I’on est sur la premiére ligne ? La commande UltraMacros <posn x,y> renvoie, fort heureusement en “‘y” le numéro de la fiche. Au fait, comme la commande <sa-p> fonctionne aussi en format monofiche, pourquoi ne pas concevoir une commande <sa-d> capable de renvoyer a la derniére catégorie visible, quel que soit le format ? Aussitét dit, aussit6t fait, et voici le résultat : Curseur sur la derniére catégorie visible de la fiche d:<adb (curseur sur derniére catégorie visib le de la fiche) Pposn x,y (y est le numéro de la fiche) p=peek $7020 (quel format ?) if p=82 goto ba-4 else (si monofiche, aller en ba-4) if y=1 sa-p down oa-tab else (si 1ére lign) Sa-p oa-tab down >! (sinon) Note : A tout moment, la commande k=peek $7¢20 d'UltraMacros permet de connaitre le type d' affichage : Pom’s n° 45 11 12 monofiche si k = 82, multifiches si k = 47. Par exemple : <ba-9>:<adb k-peck $7c20 if k=82 bell msg ' Mettez-vous en format multifiches avec Pomme-Z ' + stop>! (verifier format) <ba-4>:<adb (sous-routine : format monofiche) if y-1 sa-p oa-down up else Sa-p up oa-down >! Déplacements rapides en format multi- fiches | Pour des déplacements rapides dans ensemble d’ un format multifiches (toujours dans la limite des catégories | visibles) essayez la macro suivante : | 2seadp (déplacement du curseur dans tableau av ee fléches) (format multifiches, svp) ‘ Fléches/souris déplacent curseur, BSC revient au mode normal ': begin k-key (cette boucle réaffecte les t zoom msg ouches) if k=@ va-lab cpt else down rpt else | up ipl else tab rpt else msg "": stop else rpt>! Organisation d’une présentation Rappel : La commande @-X sert A modifier l’organisation des catégories d'une fiche. En format monofiche, on peut seulement déplacer les catégories. En format multifiches, on peut non seulement déplacer les catégories avec @-{léches, mais aussi en effacer certaines avec @-E ; une catégorie effacée ne disparait que provisoircment, ct on peut la faire réapparaitre avec Par conséquent, un format multifiches qui a subi des manipulations peut afficher un nombre de catégories inférieur au nombre de catégories définies lors de la création du fichier, En outre, il peut les afficher dans un ordre différent de celui des catégories définies initialement. AppleWorks se souvient, cependant, du nombre de catégorics définies initialement, et de leur ordre. Dans UluaMacros, lacommande <posn x, y> donne en x le numéro de la catégorie telle que définie initialement, et en y le numéro de la fiche. <peek $7c23 * 256 + peek $7c?7> donne le no mbre Lotal de fiches, <peek $7221> donne le nombre de catégorie d éfinies initialemeat, <peek $?cdc> donne le nombre de catégories lement présentes en format multifi ches. Par exemple, la macro suivante (en format multifiches) donne plusieurs renseignements. Renseignements sur une fiche fi<adb (renseignements sur la fiche) zoom (format multifiches, svp) insert oa~a (rend le curseur plus visible) peek $7¢23*256 tpeek $7c22 $1 = str$a peek $721 $2 - strget v=peek $7ede $3-str$v: posn o,f $4 - str$c: $5 - str$ fi: msg ' Fiche '+$5 + ' de '+$1+4"' fiches + Cat.définie No ' + $4 + ', Tot.Cat.= ' + S2EEyisibles = 9 + 83+ * ¢ key msg "">! Daas les macros qui vont suivre nous allons tirer parti de la commande @-X pour réorganiser le format mullifiches, Note : Pour minimiser les clignotements d' écrans lors de Il’ exécution des diverses commandes successives, nous utiliserons aussi deux sous-routines spéciales proposées par Randy Brandt pour déconnecter, puis reconnecter I écran. Ces routines spéciales font partie des nombreux exemples de la récente disquette MacroTools II, disponible en version francaise auprés de Pom's. Voici ces deux sous-routines. Elles fonctionnent partout dans AppleWorks. Amusez-vous & les essayer : vous leur trouverez sirement d’autres emplois. Connecter et déconnecter I’écran inhiber 1'écran) poke 4114, 96>! i:¢all : poke 4112,169 : (sons-rontine + poke 4113,0: 2:<all (sous-routine : désinhiber 1'écran) poke 4112,96 >! Passons maintenant a une application simple. La macro sa-x échange les colonnes | et 2 du format multifiches. Echanger les deux premiéres colonnes xz<adb (échanger col.1 et col.?) zoom sa-1 (inhiber 1'écran) coax ca->escesc (échanyer les 2 col.) {reconnecter 1‘écran) (nécessaire pour “valider") sa-2 esc esc! Voici maintenant quelques macros un peu plus complexes. Cette fois-ci, on ne déconnecte pas I'écran, car l’opération Pom’s n° 45 est contrélée visuellement. @-x envoie A I'écran “CHANGER ORGANISATION”, on est invité & placer le curseur sur la catégorie voulue, puis chaque macro fait son travail. Ces macros sont pilotées par souris (Clic = RTN), mais elles peuvent aussi tre commandées du clavier. Effacer une catégorie (effacer une catégorie) ba-1 (sélection de la catégorie) oa-E (effacement) esc esc >! (retour) Insérer une catégorie Note : la catégorie est insérée ala gauche du curseur. iz<adb (insérer une catégorle) x=peek $7c21 (nombre de catégories définies) yo-peek $7cede (nombre de catégories visibles) if x=y bell msq ' Toutes les catégories défin ies sont visibles ‘: stop else fon arréte si rien 4 insérer) bal (sous-routine : sélection positiun) oa-i (écran "Insérer catégorie) msg ‘ Sélectionner la caléyurie 4 insérer, va lider avec CLIC ': begin k-key if k=27 esc esc esc stop else if k=10 down ret else if k=11 up rpt else ifnot k=13 tpt else rtn (validation) esc escr! (etuur) Les deux macros suivantes sont congues pour enchainer plusieurs modifications successives, sans jamais quitter V’écran “CHANGER ORGANISATION” : quand on a changé une largeur de colonne, ou déplacé une catégorie on clique et on retombe sur le début de la macro ; on peut alors soit modifier une autre catégorie, soit quitter avec ESC. Note : il est aussi possible de quitter toutes ces macros avec ESC @ tout moment, méme si le message ne le dit pas. Modifier une largeur de colonne Li<adb (modifier une largeur de colonne) ba-1 (sélection de 1a catégorie) bell msg * Fléches Dr/Gauche pour Ela rgir/Rétrécir ; CLIC pour terminer ': begin k=key if k=27 esc esc stop else if k=8 oa-left pt else if k=21 oa-right if k-13 goto sa-b rpt>! rpt else else Déplacer une catégorie b:<adb (bouger une catégorie) ba-l Slection de la catégorie) bell mog * Fléches Dr/Gauche pour dép Jacer la cat.; CLIC pour terminer ': begin k-key if k=27 esc esc stop else if k-21 oa-> rpt else if k=8 oa-< rpt else if k-13 goto sa-b else rpt>! Astuce : Comme il n’existe pas de commande simple pour revenir a l’ordre initial des catégories, il est recommandé de créer une premiére fiche ob chaque catégorie contiendra son numéro d'ordre initial : 1, 2, etc. Si cette fiche est placéc au début du format monofiche, elle sera constamment visible sur l’écran “CHANGER ORGANISATION” (celui que fait apparaitre #-X), et il yous sera alors trés facile de rétablir l'ordre initial avec la macro <ba-d>. Routine de sélection pour les macros précédentes <ba-1>:<adb (sélection de la catégoric) zoom (format multifiches, svp) bell insert oa-a (rend le curseur + apparent) mag ' Position avec Fléches.D/G + CLIC = Valider ; ESC = Stop oa-x begin ctrl-x k=key (ctrl-x sert 4 réaff icher le curseur) if k=27 esc esc stop else if k-21 right tpt else if k=@ left rpt else ifnot k-13 rpta! Nous sommes maintenant préts & écrire les macros qui permettront de faire circuler un format monofiche de gauche a droite et de droite 4 gauche, avec Option-Fléche droite et Option-Fléche gauche. Le principe est le suivant : ® On commence par lire le nombre de catégories actuellement affichées avec peck $7cdc. On déconnecte Lécran, on fait @-X, et on met un compteur a zéro. @ Ensuite, les deux macros sont différentes Option-FLéche gauche, qui décale une catégorie vers la gauche, se contente d’une boucle unique qui déplace la Pom’s n° 45 13 catégorie la plus a gauche de n positions vers la droite ; Option-Fléche droite a besoin d'abord (premitre boucle), de Placer le curseur sur la catégorie 4 déplacer, puis d’une dcuxiéme boucle qui raméne cette catégorie de n positions vers la gauche. ® Enfin, on revicnt au format multifiches, on reconnecte l’écran et on fait <esc esc> pour valider l'opération. Décaler un gauche liste multifiches vers la <left>:<adb (décaler une liste vers la gauche) zoom (format multifiches, svp) n=peek $7ede (nb de catégories affichées) sa-l (on déconnecte 1'écran) Oa-x x=0 (CHANGE ORGANISATION, compt 4 0) begin (déplacer catégorie : boucle jus qu'a x=n) x=x+1 ifnot x=n oa-> rpt else esc esc sa-2 (retour 4 la liste et reconn ecter 1'écran) esc esc >! (valider) Décaler une liste multifiches vers la droite <right>:<adb (décale une liste vers la droite) zoom (format muititicnes, svp) n=peek $7cde (nb de catégories affichées) sa-1 (on déconnecte 1'écran) oa-x x-0 (CHANGE ORCANISATION, compt 4 0) begin (boucle 1 : curseur sur catégori e 4 déplacer) x=x+1 ifnot x=n right rpt else begin (boucle 2 : déplacer catégorie) x=x-1 ifnot x=0 oa-< rpt else esc esc sa-Z (retour 4 la liste et reconn ecter 1'écran) esc esc >! (valider) Moins il y a de catégories dans une fiche, et plus ces macros s’exécutent rapidement. On ne peut pas éviter le léger clignotement di a <esc esc>, mais on a bel et bien réalisé un “scrolling” horizontal, et surmonté l'une des carences les plus agagantes de la base de données d'AppleWorks 1.4... En fait, ce “scrolling” est une boucle sans fin, et si vous répétez la méme commande n fois, vous vous retrouvez au point de départ. Avant de passer & autre chose, trois petites macros bien utiles pour la saisie : Return envoie vers le bas (format multifiches) Note : C'est le bon choix pour utiliser la commande AppleWorks @-", qui recopie la cellule de la ligne placée juste au-dessus. <ba-down>:<adb (return - vers le bas ) poke $7cld,68 >! Return envoi la droite (format mu vers ‘iches) <ba-right>:<adb (return = vers la droite) poke $7cld,A2>! Copier une rubrique (tous formats) e:<adb (copier une catégorie) cell msg ' Placez le curseur sur la destinatio n, puis RTN ' input sa-0 rtn msg Localiser ou rechercher ? La Base de données, comme les deux autres modules d’AppleWorks, est dotée d’une commande @-L pour “Jocaliser”. Mais cette commande fonctionne de fagon un peu différente : ® La référence & chercher ne peut étre qu'une chaine de caractéres (max 30 car), sans distinction de majuscules ou minuscules, ® Larecherche se fait d'un coup, du début jusqu’a la fin de la liste des fiches. ® Si la liste a été préalablement sélectionnée par @-R, la recherche ne portera que sur la sélection ainsi obtenue. L'inverse n'est pas vrai ; si vous faites d'abord une recherche par @-L, et aussit6t apres une sélection par @-R, la sélection ne ticndra pas compte du résultat de la recherche précédente. Autrement dit, le résultat de @-L est éphémére, a simple valeur indicative, alors que le remaniement par #-R reste en vigucur jusqu’a la sélection suivante (le résultat de @-R est méme conservé sur disque, si vous sauvegardez le fichier 4 ce moment-la). ® Toutes les fiches répondant au critére de recherche sont affichées immédiatement (pas de “Chercher suivant ?” comme dans le TdT). Moralité : il vaut toujours mieux faire la recherche & partir d’un format multifiches, pour apprécier le résultat d'un seul coup d’oeil. ® L'objet de la recherche est toujours une fiche entiére. et la demande de recherche #-L ne permet pas de se limiter & telle ou telle catégorie. C’est sans doute le plus grave défaut de cette commande, par ailleurs fort efficace. La commande @-R de la Base de données n‘est pas une commande de recherche a proprement parler, mais une 14 Pom’s n° 45 commande de sélection. Elle permet de choisir la catégorie qui fera l’objet de la sélection, le type de la sélection (égal A, contient, commence par, etc.), et opére, si on le souhaite, sur trois niveaux de sélection successifs liés entre cux par Ics opérateurs booléens “et” et “ou”, plus un opérateur “A” qui sélectionne toutes les catégories comprises entre deux valeurs données. C'est donc un outil trés puissant, et de ce fait plus “lourd” a manicr. Rien ne vous empéche, évidemment, de construire des macros congues pour accomplir une sélection particuliére, en fonction de vos besoins, bien au contraire ! Mais c'est du travail sur mesure, que vous seul pourrez faire. Cependant, les macros ci-aprés sont des exemples que vous pourrez facilement adapter a vos désirs. La macro qui suit a un réle bien délimité : utiliser la commande @-R (régles de sélection) pour faire une recherche, comme avec @-L (localiser), mais avec la faculté de choisir d'abord la catégorie sur laquelle se fera la recherche. J'ai utilisé 4 cette fin le critére “Commence par...”, & concurrence de 10 caractéres, qui permet une recherche trés souple. Par exemple, dans un fichier Adresses, on pourra faire une recherche immédiate sur la ou les premiéres lettres soit du nom, soit du prénom, soit de la localité, etc. On pourra méme retrouver un numéro de téléphone dont on se rappelle les premiers chiffres. Recherche rapide d’un mot dans une catégorie donnée Note : J’ai choisi délibérément de sélectionner la catégorie de référence a partir d’une liste en format multifich€s. Ceci exclut les catégories non visibles a !’écran. Par contre, dans Ia variante sa-g donnée plus bas, le choix est possible & partir de toutes les catégories définies. m<adb (recherche d'un mot dans une carégorie) zoom fon cherche en format multifiches) insert oa-a (rendre le curseur + visible) bell msg ‘ Fléches = Curseur sur 1a colon ne 4 prospecter. RIN = Valider ': begin ctrl-x k=key (boucle : choix de la eatégorie) if k=27 bell msg ‘ Abandon ‘ : stop else if k=21 tab rpt else if k=8 oa-tab rpt else ifnot k=13 rpt else posn x,y (x est 1a catégorie choisie} poke $7edd,0 oa-r (sélection - toutes les fiches) print str$ x : (catégorie sur laquelle se fait la recherche) rtn >8< (régle de sélect = "Commence par...") rtn msg ' Tapez le début du mot cherché, vali dez avec RTN ': $l=getstr 10 print $1 : rtn esc (pas d'autre sélection) $i=screen 20,13,3 if $1="Pas" : msg "" : key ese osc stop (test : échec de la recherche) else bell {sinon, recherche réussie, fin) msq ' Terminé ; faire SA-T pour revenir 4 "Toutes les fiches" ‘>! Comme Ic résultat est permanent (a la différence de #-L), il faut un moyen rapide de revenir A I'affichage “Toutes les fiches”. Le voici : Retour 4 la sélection “Toutes les fiches” ti<adb {sélection ; toutes les fiches) poke $7cdd,0 esc esc >! Voici une autre macro, qui sélectionne une ““gamme” de fiches, située entre deux critéres que vous indiquerez, et ce sans qu'il soit nécessaire de faire un ti (@-T) sur la catégorie en question, Par exemple, supposons que dans votre liste d’adresses, vous ayez fait un wi alphabétique sur les prénoms, et que yous souhaiticz trouver (sans modifier la présentation) toutes les fiches od les noms commencent par D, E, F et G : actionnez la macro ci-aprés, et donnez comme premiére référence “d”, et comme deuxitme référence “g”. Elle fera le reste. Sélection d'une gamme_ de fiches dans une catégorie g:<adb (sélection d'une gamme de fichos dans u ne categorie) zoom oa-z (cherche en format monofiche) insert oa-a (rendre le curseur + visible) bell msg ' Fléches H/B - Cursecur sur la cat egorie 4 prospecter. RIN = Valider ': bogin -x k-key (boucle : choix de la ca tégorie) if k-27 bell msg ' Abandon ' : stop else if k=11 up rpt else if k-10 down rpt else ifnot k=13 rpt else posn x,y (x est la catégorie choisie) zoom fon revient en format multifiches) poke $7cdd,0 oa-r (sélection — toutes les fiches) print str$ x: (catéyorie sur laquelle se f ait la recherche) rtn >8< (régle de sélect = "Commence par. rtn msg ' Tapez le critére de début de gamme, v alidez avec RTN Sl=getstr 10 print $1 : rtn down down rtn (céygle "a") msq ' Tapez le critére de fin de gamme, val idez avec RIN ‘*: Pom’s n° 45 15 ee 7 . i | ” Sl=getstr 10 print 51 : esc (pas on) Si=screen 20,13,3 if $1= key esc esc (test : échee de 1, else bell (si msg ' Terminé Vous aurez sirement noté les similitudes entre les macros N et G. Elles vous serviront de modéle pour construire vos propres macros de sélection “A la carte”. A propos : les régles de sélection des macros précédentes concernent la base de données elle-méme (c’est-a-dire |’écran REVUE/ AJOUT/MODIF.). Elles ne changent en rien les régles de sélection qui pourraicnt étre en vigueur dans d’éventucls formats de rapports. Quand vous crécz un rapport, vous déterminez a partir de zéro sa présentation et ses régles de sélection. Autrement dit, quel que soit l’'agencement de I’écran REVUF/ AJOUT/MODFF., votre point de départ pour chaque nouveau rapport est la sélection “Toutes les fiches”, ainsi que la totalité des catégorics du fichicr, dans leur ordre initial tel que défini 4 la création du fichier lui-méme. D’aillcurs, si jamais vous modificz la structure initiale du fichier de Bases de Données, vous perdez nécessairement tous les formats de rapports existants (il peut y en avoir jusqu’a 8). En revanche, vous avez le droit de changer le nom du fichier, le nom des catégorics aussi bicn que leur agencement. : Nw Lu /remaaamas | Pour Apple //e, Apple //c, Apple Gs. Frappe au kilométre, rapidité d'écriture, souplesse de correction. Glossaire puissant, recherche - remplacement. Creation de caractéres téléchargeables sur Image Writer (notation mathématique, alphabets étrangers etc...) Impression rapide, pilotage précis de mise en page. Coupure correcte des mots, justification en proportionnel, condensé et expansé. Gribouille, une valeur sre pour un public averti. Pour recevoir Gribouille, envoyez ce bon de commande a: As , rue Humbiol Je vous prie de m'envoyer a l'adresse Be le logiciel Gribouille Prix (port compris) * version //e - /ic pour lecteur de disquettes 5 1/4 SO9frH.T. 710 fr 7.7.0. * version //e - /ic pour lecteur de disquettes 31/2 632 f HT. 750frT.TC. * version GS 835 fr H.T. 990M TTC. Ci-joint un cheque de.. ..dtancs libellé a l'ordre de GRIBOUILLE SARL Jl est donc sage, lors de la création d’un fichier BdD, de prévoir un certain nombre de calégories vides, que vous serez peut-€tre bien content d’utiliser plus tard. Les commandes du fichier BDD.TSK G-@-& — Macro de lancement des fichiers TASK 6-2 Appel de Aide.BdD é-P Curseur sur premitre catégorie visible €D Curscur sur demitre catégorie visible éZ Déplacements rapides du curseur dans liste-tableau €-F Renseignements sur une fiche pL PLAT EEE ex Echange les deux premiéres colonnes d'une liste-tableau GE Efface une catégorie €-1 Instre une catégorie eL Modifie une largeur de colonne €B Bouge (déplace) une catégorie é-— Décale une liste multifiches vers la gauche €— Decale une liste multifiches vers la droite "RTN" envoic vers le bas "RTN" envoie vers la droite ec Copie une cellule (rubrique) €M Recherche d'un mot dans une catégorie €-T Retour a la sélection “Toutes les fiches" €-G _ Sélectionne d'une gamme de fiches dans une catégorie G G-6-L G-€-5 16 Pom’s n° 45 Un de mes ordinateurs préférés, peut-érre celui dont je me sers le plus souvent... n’est pas un Apple. I] s‘agit du Psion-Organiseur, d’Aware. C'est pourtant dans Pom’s que je souhaite en faire I'éloge : c’est & mon avis le périphérique le plus intelligent de T’Apple. De la taille d’une calculette ou d’un agenda, il tient dans la poche. Nous révons tous d’avoir notre Apple en permanence avec nous. Mais “portable” n'est pas du tout synonyme de “portatif”: vus l’encombrement et le poids, on n’a pas son //e ou son Mac portable sur soi en permanence. Le Psion, c’est une maniére d’avoir son Apple dans la poche... Présentation Le Psion Organiseur est un véritable ordinateur de poche de 13,7 centimétres de long sur 7,5 de large, la taille d’une calculette, son poids est négligeable (250g). Il est du coup parfaitement conforme aux réglements des examens francais, et sera accepté (sauf réglement contraire spécifique, ou surveillant d’examen possédant lui-méme un Psion) dans toutes les épreuves od la calculette est acceptée. I] est connectable directement a tout ordinateur muni d’une sortie RS 232, donc & tous les Apple comme aux “compatibles” des “galériens”. Tl existe quatre modéles d'Organiseur. Dans l’ordre de prix et de performance : le CM, XP, LZ et LZ 64. D’aspect extérieur les quatre se ressemblent, mais sous le capot, la différence se fait jour. Les modéles CM et XP Ils sont de la méme génération. Munis tous deux de 32Ko de Rom, ils se différencient par la taille de la mémoire vive (Ram) : 32Ko pour le XP, 8Ko pour le CM. Ces deux Psions peuvent seulement afficher 2 lignes de 16 caracitres sur l’écran LCD type calculette. rganiseur II Quand on appuie sur la touche ON, un menu apparait. On peut alors : > calculer avec la fonction CALC : le Psion peut servir de machine & calculer avec des fonctions comme sinus, cosinus, racine carrée etc. > utiliser un agenda et un réveil sophistiqués : ces deux Psions sont équipés d’une horloge interne, pouvant vous donner Ja date et I’heure a tout moment. Une fonction alarme peut vous réveiller au moment désiré. Une fonction agenda, permet de mémoriser des rendez-vous, de lister l'ensemble des rendez-vous de la semaine, d’cffectucr un recherche sur ces rendez-vous, et de déclencher unc alarme quelque temps avant le rendez-vous. > programmer : le Psion étant un micro-ordinateur de poche, il a bien entendu son langage de programmation. C'est l'OPL, un Basic d'aujourd"hui bien influencé par le Pascal (c’est-a-dire structuré, avec Do/Until, Goto étiquette, iffelse/endif, et des procédures). Ce langage est assez facile d'utilisation, les initiés & l'AppleSoft programmeront en OPL sans problme majeur et feront leurs propres applications : je le répéte, c'est un ordinateur, pas une calculette. A noter : des procédures OPL peuvent étre appelées directement dans la calculette."TVA : 2000” ou “TTC : 2000”... Les fonctions les plus intéressantes de ce langage sont RECH pour Rechercher et SAUV, pour Sanvegarder. Chaque fois que vous voulez enregistrer quelque chose, téléphone, notes de cours, “antiséches”, etc. Vous entrez dans le menu SAUY, et vous sauvegardez votre fiche. Point important : le Psion n’a pas de lecteur de disqueties. II sauve donc dans de la ram alimentée en permanence par une pile. La mémoire n‘est effacée que lorsque vous retirez la pile, mais si vous voulez seulement changer une pile usée, vous avez quelques secondes pour le faire, sans que les données soient perdues. La fonction RECH permet de rechercher un enregistrement dans la mémoire du J.-L. Schmitt Psion, ou d’y lister fiche aprés fiche wut ce que vous y avez entré. De plus, lorsqu’& Vintérieur de cette fonction vous appuyez sur “Mode”, vous pouvez modifier cette fiche, et la resauvegarder immédiatement. L'idéal pour modifier une fiche. En quelque sorte, AppleWorks dans la Rom de la calculette... Bien entendu, vous n’étes pas obligés de tout conserver : RAZ vous permet de réinitialiser votre Psion et de tout y effacer, et EFFACE vous permet d’effacer un enregistrement dans la mémoire sauvegardée. Les Musts : Psion LZ et LZ 64 Ces deux Psions nouveaux vicnnent d’arriver en France, et ont été présentés & l’Apple Expo. Aware ct le fabricant anglais, proposent une mise & jour de votre ancien modéle, contre un prix variant entre 1293 F et 1886 F suivant le Psion que vous avez déja. Je ne connais qu’une autre marque d’ordinateurs qui propose A ses clients ces mises & jour systématiques : devinez laquelle... En fait, Aware fait carrément l’échange de votre ancien Psion contre un neuf. Utilisateurs de Psion qui avez un modéle XP ou CM, je vous donnerais le méme conseil qu'aux utilisateurs d’Apple : faites l’échange, cela vaut le coup. Vous avez un Psion neuf, une année de garantie nouvelle, un mois d’assistance téléphonique gratuite, et vous étes a jour. Les Psions LZ et LZ 64 reprennent bien évidemment toute les options du XP et CM. Cependant quand vous allumez voure LZ, la différence saute aux yeux : vous avez 4 lignes de 20 caractéres, et une foule d’options supplémentaires. Vous pouvez choisir la langue d'utilisation : Anglais, Francais, Alle- mand. Les grands voyageurs pourront savoir Vheure et le code téléphonique de 400 villes dans le monde, ceci afin de ne plus réveiller en pleine nuit votre corespondant & Anchorage ou Osaka, Pom’s n° 45 17 = ; = 4 ; z : 3 : = = z ; 4 : Votre “Psion” peut désormais étre protégé par un mot de passe dés V’allumage, et vos données pourront @tre protégées par encrytage, ceci pour €viter que des petits curicux ne volent les informations dans le Psion, ou que le surveillant de l’examen ne comprenne quelque chose 4 votre calculette. Un conseil 4 ce sujet : commencez par mettre un mot de passe & votre Psion. Sinon, tant que cette fonction reste vierge, quelqu’un d’autre risque d’en mettre un & votre place. Or, évidemment, il faut donner le mot de passe pour pouvoir le changer ensuite... Le Psion dispose également avec ces nouveaux modéles d'un chronométre et d’un compte a rebours. Une des fonctions nouvelles est le bloc-notes. Le bloc-notes, ou plus exactement les blocs-notes, sont les endroits idéaux pour dresser des listes de taches. Ils posstdent leur propre calculatrice, pour tenir 4 jour le montant de vos frais par exemple. De plus, vos données pourront étre protégées (par un mot de passe dif- férent bien entendu de celui utilisé lors de l’allumage). Le bloc-notes peut également étre trié par ordre alpha- bétique. Le langage de programmation s'est enrichi de nouvelles commandes : 21 au total ! L’agenda s'est enrichi de fonctions bien utiles : “Couper et Coller” pour reporter vos rendez-vous par exemple (c’est vraiment l’Apple dans la poche...), L’agenda offre également un planning hebdomadaire graphique, divisé en 4 tranches horaires, mais entiérement paramétrable. L’option alarme se subdivise dans le nouvel Organiseur en trois types d’alarme différents, pour vous réveiller en douceur. La hase de données a été étendue : loption XFICH permet de créer différents fichiers (par exemple : “Mathématiques”, “Prix des articles”, “Téléphone”). On peut limiter les recherches a l’intérieur de ces fichiers, et non sur l’ensemble de la mémoire de l’Organiseur, comme c’était Ic cas avec les modéles CM et XP. Pour aller — plus loin | Si yous souhaitez devenir un utilisateur expérimenté de |’Orga- niseur II, et un programmeur en OPL: tw Deux ouvrages (en anglais) sont diffusés par Aware. %* On peut recevoir un bullctin technique trimestriel_d’Aware au prix de 250 FHT par an. ** JI n’existe pas, a notre connais- sance, de “Pom’s-Psion”. Mais si vous @tes nombreux & vous Jaisser séduire par le Psion, peut- tre nous demanderez-vous une rubrique OPL dans Pom’s... * En tout cas, Pom’s suggére tout de suite un intéressant exercicea ses lecteurs programmeurs : un simulateur de Psion/interpréteur OPL sur Apple. * Le microprocesseur de Psion est un HD6303X 8 bits. Il fait du “bank-switching” entre $8000 et SC000 pour ses 64Ko de Rom, entre $4000 et $8000 pour ses 64Ko de Ram utilisateurs d’Apple //, cela devrait vous rap- | peler quelque chose... Le “Psion” s’est également enrichi d'une fonction “outils” qui permet, non seulement de désactiver le son, mais est une sorte de “DOS”, en tout cas un systéme, complet : formatage des RamPak, catalogues, copie de fichiers, etc. Je suis méme parvenu a taper sur le Psion des choses comme “DIR A” : sans avoir de boutons... Le Psion LZ fait d’origine 32Ko de mémoire et le LZ 64, comme son nom I’indique, 64Ko. Autant qu’un Apple //e... La Rom quant a elle a é1é poussée 4 64Ko sur les deux modéles. Les petits freres Je me dois, pour étre complet, de mentionner l’existence d'autres Psions, réservés A des usages spécialisés : ils ne peuvent fonction- ner qu’avec des “dataPaks” pré- programmés, et ne disposent ni de l'agenda, ni de la calculatrice, ni de la base de donnée, Le “POS 350” posséde 96 kilos de ram pour les saisies importantes, “|’Alphapos” privilégie lui la saisie numérique. Les périphériques du périphérique Les “Iectcurs de disquettes” du Psion, ce sont ses deux ports (slots), dans lesquels, sans augmenter I’encombre- ment, on peut insérer deux sortes de “mémoires de masse” : les “Data- Paks” et les “RamPaks”. Les DataPaks sont des modules ot vous pouvez enregiser vos données. Vous pouvez effacer ensuite ces données, mais attention, le DataPak ne vous restitue pas l’espace que vous avez effacé. Celui-ci n’apparaitra plus Jors d’une recherche, mais la capacité de youre DataPak ira en diminuant. Vous pouvez utiliser un effaceur 4 ultra-violets (il faut alors sortir le DataPak de son port) : celui-ci vous restituera la place perdue, mais vous enlévera toutes les données a Vintérieur de votre DataPak (les DataPak sont des Eproms). Cela parait poser probleme : en fait, la solution, c’est Apple (voir ci-dessous). Les RamPaks ne sont ajoutables qu’aux modéles XP, LZ, et LZ 64. C’est cn fait de la Ram alimentéc que vous ajoutez dans l’un des deux ports prévus a cet effet. Méme lorsque vous enlevez la pile principale du Psion, les RamPaks ne s’effacent pas : ils sont auto-alimentés. L’avantage du RamPak est donc que vous pouvez effacer des données sans aucun probleme, et récupérer la mémoire libérée sans sortir le RamPak de son port, tout comme. passer le RamPak avec son contenu d'un Psion a Tautre : c’est la Speedisk du Psion. 18 Pom’s n° 45 Les DataPaks existent en version 16, 32, 64 et 128 kilos. Les RamPaks n’cxistent qu’en version de 32 Kilos, mais Aware pense améliorer sa gamme d’ici peu. Une imprimante thermique de 80 colonnes peut étre adjointe au Psion. Elle est trés petite également, puisque qu’elle fait avec le Psion moins de 26 em dc long pour 16 cm de large. Elle peut imprimer en 20, 40, 60 ou 80 colonnes, des caractéres en double hautcur ou soulignés ou encore des graphiques points par points. Elle est cependant assez lente, et limprimante est souvent interdite dans les examens. La Comms-Link permet aussi d’imprimer directement sur Image- Writer, un interface série/paralléle permet de connecter le Psion sur unc imprimante paralléle. Mais la vraie solution pour l’impression, c'est l’Apple et son imprimante : envoyez dans l’Apple, sauvez sur disque, et imprimez. Les logiciels du Psion Aware propose également bon nombre de logiciels, sous forme de “Paks” a enfiler dans l’un des deux ports de votre Psion. “MathPak” peut résondre des équa- tions linéaires jusqu’a 10 inconnues, calculer un Khi-carré, résoudre des équations du 3¢me degré. “Formulateur” est capable de résoudre n’importe quelle opération, a partir du moment oi elle peut s’écrire sous la forme d’une formule mathématique. Pour les financiers, “Top finance” effectue une gestion de compte bancaire, des conversions de deviscs, et le calcul d’intéréts simples ou composés. “Portfulio”, gestion de portefeuille boursier, calculera vos plus values ou moins values sur les titres que vous avez achetés, déduira les commissions, et pourra calculer au jour le jour la valeur de votre portcfeuille, Des logiciels de gestion de fichier, des vérificateurs d’orthographe anglaise, ainsi qu’un petit dictionnaire multilingue de 700 mots — anglais, francais, espagnol, italien, allemand— appelé “Travel Pak”, sont également disponibles. Le meilleur logiciel est & mon avis “SpreadSheet”, qui est un véritable tablcur dans votre Psion. Ses tableaux sont compatibles avec Multiplan, Excel, et Lotus 123. Moyennant quciqucs astuces, on peut aussi les récupérer dans le tableur d’ Apple- Works Gs. Ah... Psion! S€duit, il faut ’avouer, par! article de J..L. Schmitt, et par le Psion, Pom’s a conclu un accord spécial avec un revendeur Apple qui est aussi un revendeur Psion. Tout abonné de Pom’s a droit, sur présentation de sa carte joker, a une réduction de 10% sur la gamme Psion chez : KA -—L’'Informatique Douce 14, rue Magellan —75008 Paris | 2 (1)4723 7200 | (Monsieur J.C. Muscat) “SpreadSheet” offre cn fait toutes les fonctionnalités d’un véritable tableur Apple : format fixe, scientifique, re- calcul automatique, référenccs ab- solues ou relatives, largeur de colon- nes variable, etc. La communication le hard Je Pai dit dans V'introduction, le Psion se connecte 4 tout Apple muni d’une sortie RS 232. Cette connexion se fait par l’intermédiaire d'une “Comms- Link”, qui est un cable reliant Ic Psion a votre Apple. Pour les Apple, il est cependant nécessaire d'utiliser également un cable de liaison dit “cable de modem croisé” ou “nul modem”, entre le cable “Comms-Link” et votre sortie communication. Le vendeur de Comms-Link devrait vous fournir ce cable. S’il ne le fait pas, changez de magasin. Ce service vous sera effectué par Binary Informatique & Strasbourg ou par Dassuciation Toolbox. Pour les adeptes du fer 4 souder, le schéma de ce cable est le suivant : De la mini din vers le connecteur de la Comms-Link ; Mini din 8 Comms-Link 2 7 3 vides 1 a 4 5 La communication le soft Lorsque vous connectez la Comms-Link au Psion, un menu supplémentaire apparait dans le Psion : “Comms”. “Comms” permet de paramétrer vos transferts, en choisissant la vitesse de transfert, le protocole de communication, la parité etc, La “Comms-Link” est fournie avec un livre facile d’accts qui vous permettra de faire communiquer aisément Apple et Psion. Pour les utilisateurs du J[+, //e, ou //c, faites vos uansfert en 1200 bauds, Pour les utilisateurs de Mac ou de GS, la vitesse peut sans problémes étre portée 4 2400 bauds. Tl faut cependant savoir que le Psion n’accepte que des fiches de 254 caractéres maximum 4 l’intérieur de votre fichier, avec au maximum 16 lignes. Le Psion coupcra la fiche si vous ne respectez. pas ces impératifs. Possesseurs de Macintosh, vous trouverez sur la disquette Mac de ce numéro un programme (en ShareWare) pour communiquer entre le Psion et le Mac. Deux avantages : c’est un accessoire de bureau, ct il cst parfaitement fiahle. Pom’s n° 45 19 Les possesseurs de GS ont aussi leur programme en ShareWare, il s’agit de FreeTerm, qui est performant et facilement paramétrable, Pour ceux qui sont néanmoins allergique a la langue de Shakespeare, je conscillerais VS Com, dans sa version 1.14 (qui est, grace aux efforts d’Apple France, désormais non protégée, quoi qu’en aient dit quelques imprudents), Je souhaite cependant souligner ici la valeur d'un programme de commu- nication entre le Psion et |’ Apple. Ce programme fait de l’Apple //GS la meilleure machine du marché pour la communication avec le Psion : il s’agit tout simplement... d’Apple- Works-Gs. On a souvent entendu dire que le module de communication d’Apple- Works-GS ne sert pas, ici en France. Avec le Psion, vous ne pourrez plus vous passez de ce module. AppleWorks-GS permet une souplesse Wutilisation inégalée, méme sur Macintosh, J’entends déja les cris des lecteurs macintoshiens, mais c’est un fait. Aprés le transfert Psion vers Apple /IGS, on passe directement du module communication au traitement en textes, sans avoir & sauvegarder quoi que ce soit sur disque. On peut modifier chaque fiche, repasser Ie tout dans le module de communication, et je retransférer en bloc dans le Psion, Le tout en Ram... Et en quelques secondes, Sur Macintosh, il faut sauvegarder et recharger votre fichier au moins 2 fois. Sans compter qu’Apple- Works-GS reprend directement tous les fichiers que je mettais dans mon Psion sous l’ancien format d’Apple- Works 8 bits : il est donc inutile de convertir les fichiers AppleWorks cn fichiers texte. L’intégration, voila le secret qui rend AppleWorks-GS imbattable. Que je n’entende plus jamais dire que certains modules d’AppleWorks-GS ne sont pas utiles en France! Le Psion, le GS et AppleWorks-GS constituent un ensemble parfaitement intégré. Les programmes que je conseillerais aux utilisateurs d’un Apple // 8 bits (je considére I’Apple // 8 bits, avec disquettes et imprimante, comme un u’s bon... périphérique du Psion!) sont Version Tel ou Access II. Possesscurs d’ Apple //, vous trouverez sur la disquette 3,5 de ce numéro, dans le sous-catalogue /COM.PSION, un certain nombre d’applications, Free- Ware ou ShareWare, qui devraient marcher pour la communication avec le Psion. Mais ricn ne vaut, je le répete, AppleWorks-GS. Les périphériques du périphérique : suite... Sachez que vous pouvez, si vous le désirez, alimenter votre Psion a partir de l’allume cigare de votre voiture. Le Psion est connectable directement au minitel, par l'intermédiaire d’un adaptateur minitel qui permet d’ utiliser le minitel comme modem pour envoyer les données renfermées dans le Psion. On peut également adjoindre au Psion un crayon optique qui le transforme en lecteur de code barres intelligent. L’Apple... dans la poche A quoi cela sert-il d’avoir un ordinateur, si nos fichiers utilisés et consultés le plus souvent (agenda, liste de téléphones, liste et prix des articles, etc.), soit sont sur papier et méme pas sur |’ordinateur, comme vos liste d’adresses et de téléphones, soit doivent étre réimprimés sur papier chaque semaine, comme vos listes de prix ? Ce qu’il nous faut, c’est évident, ce n'est pas un “portable” encombrant de quelques kilos : c’est un Apple dans la poche. 20 | | Des Prog de Comm... | Surla disquette Apple // quiac- compagne optionnellement ce | numéro, vous trouverez deux programmes de communica- tion : * FreeTerm, en freeware et: ¢ TIC 2.03, en shareware a $30. Cet Apple dans la poche, vous en révez : moi, je l’ai (qui Il’aurait cru !). Je consulte et modifie mes données ot je veux, quand je veux. Rentré prés de mon Apple, je les transfére, les manipule et les retravaille 4 ma guise, puis je me les remets dans la poche. Plus de papier, et méme plus de disquettes. Je ne rajouterai que deux choses > Cela fait plusieurs années que je transporte et utilise le Psion. L’cmballage, fort solide, témoigne pourtant de quelques chutes retentissantes : il fonctionne toujours... => C'est bientét Noél. Que préférez-vous : la 827@me bouteille d'aprés-rasage, ou l’Apple dans la poche ? Adresses Aware 7/9, rue des Petites Ecuries 75010 Paris Binary Informatique 8, rue du Travail 67000 Strasbourg. KA - L’Informatique Douce 14, rue Magellan — 75008 Paris Toolbox 35, boulevard Richard Wallace 92800 Puteaux SG; Pom’s n° 45 Maths : e & Pythagore Calcul de e Des deux nombres transcendants les plus connus, z et e, c'est le premier qui a fait l'objet des recherches les plus nombreuses car il est plus ancien et plus difficile 4 calculer. Des programmes de calcul de a sont relativement faciles a trouver et Pom’s en a déja publié un. Bien que le calcul de e soit plus facile, il est rare de trouver un programme qui lui soit consacré ; celui-ci est basé sur le développement en série : j et e=l+q tart sous la forme 1 1 1 1 TD ivscd a(t+ay Otay d+ x (++ Q)))) Le nombre de décimales exactes est lié au nombre de factorielles calculées. Le calcul de ¢ est done précédé du calcul du nombre d'itérations nécessaires. Alors que pour 7, avec un programme compilé, il ne faut guére penser pouvoir calculer plus de 1 000 décimales (en plusicurs heures) sur un micro-ordinateur, pour e, il n'est pas absurde, dans les mémes conditions, den obtenir 10 000, la série convergeant rapidement. Le Programme On détermine le nombre de factorielles a calculer par le sous-programme de la ligne 690... et on passe au calcul. Le reste du programme n’est que détails concernant l'affichage : alignement des décimales par groupes de 10 en colonnes suivant la longueur de la ligne, arrét de l'affichage au nombre exact de décimales demandé, car on en calcule quelques unes de plus par mesure de sécurité et les dernigres pourraient étre fausses. Quelques remarques dans le programme précisent certains détails. Le calcul étant tres simple pour la machine, I'expérience montre qu'on ne gagne que trés peu de temps en compilant le programme... sauf si l'on veut obtenir plusieurs milliers de décimales ! Le programme calcule les décimales par paires, quel que soit M on aura donc toujours un nombre pair de décimales). Paul Canal Notons cnfin que le ‘logiciel’ proposé constitue essentiellement un ‘noyau’ ; l'ergonomie maximale n'est peut-éire pas au rendez-vous ! Programme ‘DEC.E’ VIAB (22): PRINT "Pour démarrer le program me, APPUYER SUR UNE TOUCHE": GET AS 200 CLEAR : HOME 0 INPUT "TAPEZ 40 OU 80 suivant que vous ete sen mode 40 ou 80 colonnes, ou bien 120 s i vous etes sur imprimantes 120 caractéres par ligne INPUT “NOMBRE DE DECIMALES DESIREES ?";M: IF M < 10 THEN M = 10 30 DIM N(M) 40 GOSUB 690 50 NFAC = INT (1.4 * INT (NA + 1)) 60 KEM NFAU est le nombre de tactorielles ca leulées du dévellopement en série de e. OR S = NFAC TO 1 STEP - 1 N(1) N(i) +1 PRINT "gi REM Afttichage inutile : pe rmet cependant de surveiller la marche du calcul : affiche l'argument de la tactorie lle calculée. La ligne peut etre supprimée 300 MM =M-1 FOR H = 1 TO MM 329 @ INT (N(H) / S) 330 R = N(H) -S* 9 340 N(H + 1) = R * 100 + N(H + 1) 350 N(H) = @ 360 NEXT H 370 NEXT 5 380 PRINT 390 N(1) = N(L) + 4 400 HOME 410 PRINT "e = "ZN(1);", 420 FOR I - 2 TO uM 430K = 1-2 410 IF C = 80 GOTO 550 450 IF C = 120 GOTO 620 460 IF K/5- INT (K / 5) = 0 THEN PRINT " 470 IF K>0O AND K/15- INT (K / 15) - 0 TH EN PRINT CHR$ (13);" "7 490 IFK12> =M/2 4 2 THEN 530 490 IF N(I) < 10 THEN PRINT " 500 REM Les décimales sont valculées par 2 a la fois : si la premiére des ? est un zéro celui-ci ne s'affiche pas, la ligne 470 ( OU 550 OU 630, SUIVANT LE CAS) force 1'impr ession de ce zéro. Pom’s n° 45 21 22 510 520 530 PRINT N(I); NEXT I VTAB (22): HTAB (20) (O/N) 2": GET AS: THEN 200 SEPAS oe EPORAL Six TF K > 0 AND K / 35 - INT (K / 35) = 0 TH EN PRINT CHR (13)7¢" "7 T1eeK +2 =M / 2 + 2 THEN 530 IF N(I) < 10 THEN PRINT "0"; PRINT N(T); NEXT I GOTO 530 LOK G So IF K>0OANDK/ 55 - INT (K / 55) — © EN PRINT CHR$ (13);7" "+ IF K+2> =M/2 + 2 THEN 530 IF N(I) < 10 THEN PRINT "0"; PRINT N(I)? NEXT I GOTO 530 NI - 1:NS = M NA = (NI + NS) / 2 V- NA * LOG (NA) / LOG (10) IF ABS (V - M) < 10E - 8 THEN IF V < M THEN NI ~ NA: GOTO 700 IF V > M THEN NS = NA: GOTO 700 T “Autre valeur 540 550 “on INT THEN ® 73) = 560 570 580 590 600 610 620 INT (K / 5) - 017 630 640 650 660 670 680 690 700 710 770 730 740 RETURN Nombres de Pythagore Les nombres de Pythagore sont bien connus, ce sont ceux qui correspondent A la relation : AA2Z4+BA2=CA2 Les programmes qui les donnent sont nombreux ; ils donnent en général une liste par ordre croissant, A partir de 3, 4 et 5. Il y a cependant un moyen rapide et simple d'en trouver & coup sar et, par la méme méthode, de trouver 3 nombres correspondant a la relation plus générale : ANN+BAN=CAN La méthode a été décritc par un mathématicien russe B. Kordiemsky, dans l'ouvrage Matematicheskaia Smekalta, paru aux Editions d’Etat de Littérature technico- mathématiques - Moscou. Une traduction de cet ouvrage par I. Demidoff a été éditée en 1963 par Dunod, c'est 1a que je Tai découverte. Le programme est basé sur I'égalité complexe ou : (a+ b*i)82 =a%24+b%24+2*i%2*a*b Cest-a-dire : (at+i*b)42=a%2-bA24+2* at bri On pose : ar2-b*2=x et: 2*a*b=y On a négligé le i, c'est 1a l'essentiel ! Et le programme se réduit a: XA2 4 YA2 =(AA2 +BA2)42 Les trois nombres : X, Yet (A%2 +B%2)%2 forment toujours un triplet de Pythagore. L’ égalité générale en puissance n conduit de méme a: xA2+y%2=(a%2+b%2)0n C Programme ‘PYTHAGORE’ 10 HOME 20 PRINT : PRINT “1- Nombres de Pythagore :A*2 + B*2 = c*2" 30 PRINT : PRIN - A*2 + B*Z = c*3" 40 PRINT : PRINT "3- A*2 + B42 = 074" IF 2$ “ THEN 90 "2" THEN 170 THEN 250 80 HOME 90 PRINT " Pour terminer donner 4 A et B la va leur 0" . 100 INPUT "A = "7As invur = “7B 110 IF A - 0 AND B = 0 THEN END 120X=A*A-B* BY=2*A*B 130 X - ABS (X):¥ — ABS (Y) 140N=A*At+B*B 150 PRINT : PRINT X;" RENE or + 12Y: BYP 7N TN PRINT : COTO 100 180 INPUT "A = "7A: INPUT "B ~ "7B 190 IF A= 0 AND B = 0 THEN END 200 =A ]2 ~~ 2A Ro BY Be 2-3 * B RA 2 210N=A*A1B*B 220 X = ABS (X):Y¥ = ABS (Y) 230 PRINT : PRINT X¢" "7¥7" "pN" -> "7X * KES FORE RUS EN EON 240 PRINT ; PRINT ; GOTO 180 250 HOME 260 INPUT "A = ";A:; INPUT “B = "7D 270 TF A= 0 AND B = 0 THEN END 2B0X=A*A*A*A-G*A*A*D*BIB* B*B* BY =4%* (ATA A*B-A*B *~B* B) 2O0N=A*A+B*B 300 X = ABS (X):¥ = ABS (¥) 310 PRINT : PRINT X;" Li 320 Pom’s n° 45 imeOut Re Trés bientét le nouveau TimeOut “ReportWriter”, version frangaise, sera au catalogue de Pom’s. En fait il est déja prét, et il tourne dans sa version préliminaire. Nous attendons pour le mettre en vente que nous parvienne la nouvelle version “propre” des Beagle, afin d’éliminer les quelques petits défauts d’enfance qui entachaient encore la premiére version américaine. Il est donc temps de faire les présentations... «L’événement le plus important dans lunivers du ProDOS 8 al’AppleFest de mai 1989 a Boston» C’est dans ces termes que le saluait la revue A2-Central du mois de juin. S’ajoutant 4 Spreadlools (déja commer- cialisé par Pom’s en version frangaise), ce nouveau TimeOut donne a AppleWorks ses véritables lettres de noblesse professionnelles. Ceci ne fait que souligner le paradoxe de la double €volution des Apple //: alors qu’en mode 16 bits le GS joue encore dans la cour des petits (malgré la complexité croissante de son nouveau systéme d’exploitation), le ProDOS 8, dans son incarnation AppleWorks/TimeOut est parfaitement rodé, et également a I’aise aussi bien a la maison qu’au bureau, dans les professions libérales, & l’école, dans I’ atelier ou la petite entreprisc. Ses grands atouts : un systéme d’exploitation familier et simple, une interface homogéne, un écran texte rapide et sans fanfreluches inutiles. Ceci dit, ReportWriter vous demandera quand méme quelques efforts d’apprentissage. Son manuel, le plus épais de tous les TimeOut, mérite d’étre lu et relu. Mais que fait donc au juste ReportWriter ? Pour mieux comprendre ce que ReportWriter apporte de neuf, retournons-nous vers AppleWorks tcl que nous le connaissons encore actuecllement. Pour imprimer un “rapport” a partir d’une Base de données, AppleWorks ne vous laisse que deux choix : soit un format “tableau”, soit ore Dimitri Geystor un format “étiquette”. Autrement dit vous pouvez imprimer vos données soit cn tableau avec unc fiche par ligne, soit fiche aprés fiche, A raison d’une “page” par fiche. En format tableau, vous pouvez créer au maximum trois colonnes calculées & partir des données (au moyen d’opérations arithmétiques simples). Dans un format comme dans |’autre vous interviendrez avec une certaine maitrise sur l’aspect (largeur, emplacement) des rubriques, et une faculté de tri et de sélection par catégories. Ce n’est déja pas mal. Mais vous ne pourrez jamais travailler que sur les données que conticnt le fichicr Base de données auqucl cst indissolublement lié le “format de rapport” que vous avez créé. ReportWriter a émancipé les formats de rapports, et les a rendus relationnels. Désormais, vous pourrez construire vos rapports en puisant vos données dans des fichiers Base de données, ‘Tableur ou ‘Iraitement de texte (et méme a partir du clavier). En les puisant dans un seul fichier, ou dans plusieurs fichiers 4 la fois. Vous pourrez définir des liens, appliquer des opérations arithmétiques, mathématiques et logiques (individuclles ou en cascade). Enfin, si vous le désirez, vous pourrez méme répercuter le résultat de vos calculs dans les fichiers oi: vous aurez puisé vos données, Le modile de rapport créé est un fichier indépendant, que vous pouvez sauver — donc auquel vous pourrez revenir & tout moment. Et chaque rapport que vous créez est lui-méme une fichier ASCII sur disque, done archivé ct toujours disponible. Genése d’un rapport avec ReportWriter Chaque création de rapport est articulée sur un fichier principal, que l’on appelle “Fichier Pilote”. Ce fichier peut &tre une Base de données ou un Tableur. C’est ce fichier qui pilote la création du rapport (fiche par fiche ou ligne par ligne), tout en suivant Ics indications du modtle de rapport que vous aurez. défini. Le Modéle de rapport est votre cuvre C'est une sorte de “calque” dans lequel vous définissez toutes les caractéristiques du futur rapport. A l’impression, Pom’s n° 45 23 ee ce modéle sera répété autant de fois que ReportWriter lira de fiches (ou de lignes) dans le Fichier Pilote : > Vous construisez ce modéle dans un éditeur, qui ressemble & un éditeur de traitement de textes, en y introduisant d’une part du texte, qui sera reproduil avec chaque fiche du rapport, et d’autre part des “champs”, c’est- a-dire des espaces spéciaux oi iront s"inscrire successivement les diverses données du rapport. > Une fois que vous avez fait la “mise en page” du modéle, il vous reste a définir le contenu de chaque champ, afin que ReportWriter sache quelles données y inscrire lors de la genése du rapport. > Ces données pourront étre puisées soit dans le Fichier Pilote, soit dans un autre fichier AppleWorks (dit “fichier de renvoi”) situé sur le Bureau (TdT, BdD ou T), ou encore calculées d’aprés une formule contenue dans la définition du champ, ou enfin tapées au clavicr. Lors de la genése du rapport, ReportWriter suit un ordre bicn précis : si vous avez prévu des saisics au clavier, il les demande d’abord. Puis il préléve les données nécessaires dans le Fichier Pilote. Ensuite, il parcourt les champs du Modéle (dans leur ordre de définition), et selon leurs indications consulte les fichiers de renvoi et fait les calculs. Votre Modéle peut contenir des champs “de travail”, qui ne seront jamais imprimés, mais serviront a faire des calculs intermédiaires. ReportWriter vous offre aussi la faculté, si vous le souhaitez, de répercuter (reporter) le contenu d'un champ dans un fichicr de renvoi (par exemple, si le rapport est une facture, vous pouvez “reporter” dans votre fichier “Clients” la date d’établissement de la facture, et son montant). Enfin, le rapport ainsi créé cst aussit6t cnregistré sous la forme d’un fichier ASCII sur disque, que vous pourrez imprimer a loisir avec l’option “Imprimer” de ReportWriter. En résumé, pour créer un rapport : On choisit le Fichier Pilote (obligatoirement) On va dans !’éditeur, et on fait la mise cn page du Modble On définit les paramétres de chaque Champ du Modéle On met (facultativement) sur le Bureau les fichiers de renvol On déclenche la genése du Rapport On imprime le rapport quand on veut (a I’écran ou sur papier) avec l’option d’impression de Report- Writer. ©® © © ®8 Ces étapes élémentaires constituent les opérations de base. A Vintéricur des étapes 2 et 3, vous disposez d’une multiplicité de variantes ob votre créativité n’aura que lembarras du choix pour s’exprimer, C’est pourquoi je conseille de lire attentivement le manuel, et d’y revenir réguligrement tant que vous n’aurez pas acquis la maitrise de ReportWriter : c’est un logiciel d’une richesse extraordinaire, qu’on découvre —et savoure— progres- sivement. Comment fonctionne un “renyoi” en mode relationnel ? Supposons que vous ayez un fichier BdD (nommé CLIENTS) d’adresses de clients, dont les catégories sont : Nom, Prénom, Numéro et Rue, Lieudit, Code postal, Localité, etc. Supposons que vous ayez par ailleurs un Tableur (nommé SOLDES.CLIENTS), oi vous inscrivez dans une colonne Ics noms de vos clients, et dans une autre le montant de leur compte (débiteur ou créditeur). Supposons que vous souhaitiez relancer ceux de vos clients dont le solde est débiteur. ReportWriter vous permet de Ie faire, en créant un Modéle qui sera précisément votre lettre de relance ! Reprenons plus en détail les étapes générales décrites plus haut : @ Le fichier pilote sera Clients. Vous le. mettez donc sur le Bureau d’ AppleWorks, Pendant que vous y étes, mettez-y aussi Ic fichicr Soldes.Clicnts, puisque vous en aurez besoin pour les renvois. @ Vous appelez ReportWriter avec Pomme-Escape : le menu principal de ReportWriter s’affiche, et vous y choisissez l’option “Editer un modéle”. Vous étes aussitdt envoyé dans |’éditeur. Comme dans un traitement de textes, vous y tapez votre lettre de rappel, sauf que pour les parties variables (nom, prénom, adresse, montant du solde débiteur si vous souhaitez le mentionner, etc.) vous ménagez des “champs” au moyen d’un caractére spécial. Ce sera le “corps” de votre rapport. ® Maintenant vous allez définir successivement chacun des champs : vous placez le curseur sur le premier caractére d’un champ, et vous tapez Pomme-N : un nouveau menu apparait, qui vous invite a donner les indications dont ReportWriter a besoin pour retrouver les données : le nom du champ, puis la source des données. Pour les données contenues dans le fichier pilote, la source est, si j’ose dire, déja sous la main : il suffit d’indiquer la catégorie (BdD) ou la colonne (Tableur). Mais il nous faut aussi ordonner & ReportWriter de lire le solde du client dans le Tableur Soldes.Clients. Voici Pom’s n° 45 comment se fait Ie renvoi : > On indique la nature de la source : “Index par clé” ; la clé é1ant par exemple le champ NOM. > ReportWriter saura qu’il faut rechercher une clé identique dans une colonne du fichier Soldes.Clicnts ; la valeur correspondante, contenue dans une colonne du lableur que vous spécifiez également, sera renvoyée dans le champ que vous aurez nommé, par exemple, “SOLDE” dans le Modéle : Modéle Tableur Soldes.Clients —— Colonne “Nom” | Champ “‘Solde” «<——— Colonne “‘Solde” Champ “Nom” A ce point, vous avez indiqué 4 KeportWriter les cheminements qu’il doit suivie. Il reste a lui dire quelles fiches il faut qu’il imprime (en effet, vous ne voulez pas relancer les clients dont le solde est positif). Il faut done écrire une “régle de sélection” pour n'imprimer que les fichiers o SOLDE est inférieur & zéro. Comme il s’agit de “cuisine interne”, on ne mettra pas ces renseignements dans le corps du rapport, mais dans la “zone de travail”, qui elle ne s’imprime jamais. Vous allez donc créer un champ, dans cette zone, en précisant que sa source est un “calcul”, et le définir par la formule ARULES(SOLDE<V). C’est tout simple. Report- Writer se le tiendra pour dit. ® Le fichier Soldes.Clients, je le rappelle, doit étre sur Je Bureau. ® Le Modéle étant prét, il reste a créer le rapport. Vous tapez Pomme-G (comme “genése”) et indiquez sur quel disque écrire le rapport (car le rapport se crée directement sur disque). Un “thermométre” apparait & l’écran, qui se remplit au fur et 4 mesure du travail de création (plus ou moins long selon la longueur du fichier pilote et la complexité du modele). Et voila, vous étes préts 4 imprimer. ReportWriter vous sortira —mieux qu’un listing— une série intelligente de lettres de relance. Et si vous voulez vraiment faire du “cousu main”, vous pourrez inclure dans votre Modéle (qui peut lui aussi étre sauvé sur disque, bien entendu, pour y revenir d’autres fois) un champ de “report”, avec une indication qui sera reportée dans le fichier tableur “Soldes.Clients”, par exemple : “Relance faite”, Calculs et fonctions dans ReportWriter Divers calculs et fonctions peuvent étre insérés dans la définition du Modéle. Quand on ne veut pas qu’ils apparaissent, il suffit de les inclure dans la zone de travail au licu du corps du rapport. En plus des quatre opérations arithmétiques, on dispose : » de fonctions donnant la valeur absolue dune expression, son inversc, sa valcur cntitre, sa partie décimale, sa racine carrée ; > — de fonctions donnant le minimum ou le maximum de deux valeurs ; > d’une fonction d’arrondi, d’arrondi par défaut ou d’arrondi par excés ; » de fonctions portant sur une série de valeurs : moyen- ne, nombre de valeurs, valeur maximale, valeur minimalc, somme des valeurs ; > de fonctions sur chaines “texte” : concaténer, re- chercher une chaine dans un champ (‘“‘contient”), tronquer & droite, onquer & gauche, extraire au centre, convertir en majuscules ou minuscules, définir une chaine de caractéres, transformer une valeur numérique en texte ; > de fonctions spéciales : renvoyer un paragraphe entier dun fichier TdT, renvoyer le Nigme mot d’unc liste, renvoyer la position d’un mot dans une liste, appliquer la fonction conditionnelle IF (assortie du ET et du OU logiques), appliquer unc régle de sélection (voir ARULES de l’exemple ci-dessus) ; > = d'une douzaine de fonctions date et heure différentes. Présentation d’un rapport En plus du corps du rapport, et de sa “zone de travail” €voqués ci-dessus, vous pourrez (facultativernent) ajouter 4 votre rapport un tite et/ou une conclusion (qui ne s’imprimeront qu’une fois), des hauts et/ou bas de page (qui s'imprimeront 4 chaque page), ainsi que des sous-totaux. Et bien entendu ReportWriter posséde son propre choix d’options d’impression (ni gras ni souligné, malheureusement). Au fait, vous ai-je dit que le format de Téditeur permet de tavailler sur 127 colonnes et 240 lignes (défilement vertical mais aussi horizontal par figéches ou souris, mieux que l’éditeur du TdT d’AppleWorks !). Alors, un petit peu de patience encore —d’ici le prochain numéro de Pom’s, ct peut-¢tre méme avant— pensez a consulter son serveur Minitel au (1) 39 53 04 40. Pom’s n° 45 —————————————— ee ee ee a a : ; : : : ; ; dl Temps-Machine Présentation Maintenant que le MultiFinder s’est imposé, chacun dispose sur le bureau de son Macintosh de plusieurs applications simultanément. Le plus souvent, on a impression qu’une seule d’entre-elles travaille réellement & un moment donné, méme si certaines sont programmées de maniére & partager Ie temps machine disponible. Ainsi, on peut effectuer une compilation compléte avec MPW en tache de fond. Le but du programme Echantillon est de mesurer la part réclle de temps que chaque application consomme pendant une période précisée a l’avance. Utilisation Une fois l’application Echantillon lancée, il convient d'indiquer cette période, par l’intermédiaire de deux indications : la durée effective pendant laquelle le programme réalise ses mesures, et la pause avant que commence la premiére mesure, Celle-ci est comptée a partir du moment od on choisit Echantilloner dans le menu Fichier . Aprés ce choix, il convient de quitter le programme, et d’installer l'environnement tel qu’on veut le mesurer. Lorsque la période s'est écoulée, il faut relancer Vapplication Echantillon et choisir le menu Récupérer les résultats . Comme les logicicls de présentation graphiques proposent une puissance difficilement égalable (camemberts en relief French Exce... Finder Echantilton Alain Raynaud et en couleurs !), le programme ne propose aucun dessin en sortie. Il enregistre dans un fichier le temps utilisé par chaque application, fichier qui sera alors utilisable par tout logiciel spécialisé, pour obtenir le graphique ci-contre. A noter ; le programme tronque le nom des applications au 12éme caractére, remplacant la partie absente par *...’ . II peut éue utile d’avoir une indication sur la période d’échantillonage : celle-ci peut correspondre a la présence en haut a gauche d’un trait noir (dans la barre des menus). Pour cela, il faut cocher l’option ‘Signaler la période réelle...’ dans le premier dialogue. I] est également possible de changer la signature de I’application afin qu'un double clic charge directement une application capable de représenter les résultats. Il peut étre utile d’avoir une indication sur la période d’échantillonnage : celle-ci peut correspondre & la présence en haut & gauche d’un trait noir (dans la barre des menus). Pour cela, il faut cocher l’option ‘Signaler la période réelle...’ dans le premier dialogue. I] est également possible de changer la signature de l’application afin qu’un double clic charge directement une application capable de représenter les résultats, De plus, tous ces réglages peuvent étre enregisirés afin de devenir permancnis, Qu’en conclure ? En observant, avec Echantillon, Lutilisation du Macintosh, on risque d’avoir quelques surprises : tel programme qu’on imaginait ne faisant rien utilise 30% de la machine, ou inversement tel autre qu’on avait éliminé le pensant grand consommateur se révéle étre raisonnable. Par exemple, il faut se méfier de MPW qui méme ne faisant rien occupe beaucoup de temps. Comment ¢a marche ? Le programme installe une VBLTask dans la System Heap, qui est appelée tous les 60émes de seconde. Cette routine note dans un buffer a la fois l'heure, par Ticks et le nom de l’application courante par CurApName. En effet, le MultiFinder ne réalise pas de changement de contexte lors de ces interruptions. Lorsque les mesures sont finies, le programme principal explore le buffer et calcule le temps de chacun : il stocke, dans un fichier utilisable par un Pom’s n° 45 tableur, le nombre de fois oi il a interrompu chaque application. Dans certains cas, il se peut que des interruptions aient été manquées, si l’on formate une disquette par exemple. II est possible de comptabiliser aussi ccs temps morts. Le rdle du programme s’achéve 1a, La donnée indispensable —qui est l’adresse du buffer Jorsqu’on quitte le programme— est enregistrée dans la ressource “BPtr’ afin de pouvoir s‘en souvenir lorsque Vutilisateur revient chercher les résultats de I’échantil- Jonnage. Le premier élément du buffer est un Magic Number, c’est-a-dire un nombre d'une valeur fixée a Vavance pour point de référence, qui sert a indiquer si les mesures sont finies ou non. Le deuxiéme élément est le pointeur sur la zone mémoire oii réside la VBLTask. Il n'y a ainsi aucun probléme pour désallouer les deux blocs logés dans la System Heap. Les réglages sont enregistrés dans la ressource ‘Sttg’. Classiquement, trois /ong (durée, délai, creator) sont d’abord stockés. Par contre, les booléens (signaler, manques, Efface) sont tous trois compactés en un seul long (un bit chacun donc il reste encore de la place pour 29 autres) au licu de consacrer un word a chacun. II faut cependant noter que cette méthode qui consiste a utiliser des ressources de l'application pour les réglages interdit le fonctionnement en multi-utilisateurs. La structure du fichier en sortie est ués simple : on wouve d’abord les noms des applications rencontrées, séparés les uns des autres par une tabulation (ASCII 09). Aprés un retour chariot (ASCII 13), figurent les temps de chaque application, également séparés par une tabulation. Si, aprés un échantillonnage non effacé de la mémoire, on charge le programme sur une autre machine disposant de beaucoup moins de mémoire, il se peut qu’il il y ait un plantage. En effet, dans ce cas le programme ira chercher des données & une adresse qui, correspondant a l’ancienne machine, peut étre trés haute dans la mémoire et n’existe pas dans la nouvelle machine. D’oi un Bus Error par exemple. Il €tait spécialement important que les statistiques rapportées par le programme correspondent a la situation réelle d’utilisation. C’est pourquoi il a fallut utiliser cette méthode en ‘temps différé’. Si on avait écrit un accessoire de bureau du méme genre que le A propos du Finder, affichant en permanence la consommation, il se serait trouvé que, cet accessoire étant lui-méme un consom- mateur, il aurait faussé les conditions de la mesure. Choix d’un langage Le corps principal du programme, contenant essentiel- lement I"interface utilisateur est écrit en MPW C. La VBLTask cst écrite cn MPW Assembler, mettant ainsi en évidence l'utilisation de plusieurs langages différents dans la réalisation d’un méme programme. L’assembleur posséde l’avantage d'une grande sécurité : scules Ics instructions du fichier source intervicnnent, alors qu’avec un langage évolué, il faut tenir compte des agissements du compilateur : on n’est jamais complétement stir de ce qui va se passer, on est obligé de tatonner. En langage machine, ce qui se passe est entitrement écrit. Ainsi, il était pratiquement impératif d’écrire la routine qui reloge sa voisine en assembleur, Par contre, il faut reconnaitre que les langages évolués offrent une rapidité d’écriture incomparable. Les fichiers source Le programme se batit a l'aide de wois fichiers source. Echantillon.a, Echantillon.c et Echantillon.r décrivant respectivement la partie en langage machine, langage C, et ressource du programme, Le fichier qui permet de réunir l'ensemble est un script de MPW : Echantillon.make. Il suffit de demander & MPW de batir (Build) Echantillon : tout se passe automatiquement, et en tache de fond si désiré. Pour obtenir Echantillon.r, on peut utiliser la commande DeRez Echantillon.Rsrc > Echantillon.r : le fichier résultat (.r ) est nettement plus gros que le fichier initial (.Rsrc ). oe, GS | . | Comment faire ? @ lancez l'application ‘Echantillon’ par un double ‘clic’ depuis le Finder ; | @ sélectionnez l'article = ‘Paramétres d'échantillonnage’ dans le menu ‘Réglages’ ; @ fixezlapause avantle début du traitement (par défaut 10 secondes) ainsi que la durée dudit traitement (par défaut 300 secondes). Norons que le résultat ne sera exploitable q'une fois ce délai écoulé ; @ sélectionnez l'article ‘Echantillonner’ dans le menu ‘Fichier’ ; @ une fois le délai écoulé, quittez l'application ; @ lancez nouveau I'application ‘Echantillon’ par un double ‘clic’ depuis le Finder ; € sélectionnez l'article ‘Récupérer les résultats’ dans le menu ‘Fichier’ ; © vous disposez maintenant d'un fichier ‘texte’ utilisable depuis n'importe quel programme Mac. Pom’s n° 45 27 Source ‘Echantillon.make’ 4 File: chant 111on.make # Target Echant ition # Source: Echantillon.c Echantillon.r Echantillon.a # Created: — Lundi 11 Septembre 1989 11:30:07 Echantillon.c.o f Echantillon.make Echantilion.c © -w Echantilion.c Echantillon ff Echantillon.make Echantillon.r Rez Fchantillon.r -append -o Echantillon échantillon.a.o f Echantillon.make Echantillon.a Asm “wh -1 -font monaco, 9 Echantillon.a SOURCES = Echantillon.c Echantillon.r Echantillon.a ORIFCTS = Echantillon.c.o Echantillon.a.o Echantillon ff Echantillon.make {OBJECTS} Link -w -t APPL -c '22227@ {OBJECTS} 0 "(CLibraries}*CRunt ime.o a "(Librarica)"Interface.o 9 "(CLibraries)"stdcLib.o 2 "(CLibraries) "CSANELib.o 9 "(CLibraries}"Math.o 0 "(Clibraries)"CInterface.o 3 ~o Bchantilion Source ‘Echantillon.c’ p * échantillonage : temps CPU consacré 4 chaque application * * partie en langage C : interface utilisateur et extraction* * des données enregist rées * sf vold Debug (vold) = OxASFF ; dong ECHRUN (long, long) extern; include <Limlts.h> finclude — <Types.h> finclude — <Resources.h> finclude —— <QuickDraw.h> include — <Fonts.h> finclude <tvents.h> finclude <Windows.h> finclude — <Menus.h> Hnclude —<Text Edit .h> finclude <Dialogs.h> finclude Desk. h> finclude —<ToolUti1s.h> include <Memory.h> include <Files.h> Haoclude — <osutils.h> finclude <Controls.h> finclude —<Packages.h> Monuandle menu[4) ; Windowtr — PresWindow ; Dialogrtr — EchDialog, Calcbialog + Handle BPrRes ; Boolean signaler, Temps Inva! ide=false,manques, NoBufhvail, Efface 7 tong duree, delal, bullet, creator ¢ Result () { Jong Nom [16], Nom2 [16], Nom3 [16], Cuz Bul, other Bul; Jeng Temp1, Temp2, Temp3, CurTime, OldTime, J, ks Nbre[16]; int A,match, free ; Point where 7 srReply reply ¢ StringHandle prompt, orgName,ManqName ; osErr error ; Jong fileType='TEXT' ; refNun ; nombre ; Curkufebuffert® 2 For (1-0;1<16741++) { Nom [i]=0 Nom2 [i ]= Nom3[4]=0 ¢ Nbre[i]-0 ) BlockMove ( (Ptr) CurBuf, (Ptr) &CurT: OldTime=CurTime-1 3 while (CurTime!=0) { BlockMove ( (ver) (curBuf+4), (Ptr) sTempl, 4) ¢ BlockMove ( (Ptr) (CurBuf+8), (Ptr) &Temp2,4) 7 BlockMave( (Ptr) (CurBuftl2), (Ptr) &Temp3, 4) ; match=-1 7 for(i=1;i<l6s4++) Lf (Nom [1J--Templ66Nom2{i]-- Temp2¢éNom3[iJ==Temp3) match=1 + 4f (natch==-1) { free—1 7 for(iml;i<16;1++) 1£ (tam (1]~-086Nom2 [i ]-— 066Nom3[i]==0) free=i + Nol [free]=Temol ; Nom2[free]=Temp2 ; Nom3{free]—Temp3 ; match=free ; } Nore[match]=Nbre [match] +1 7 Nore[0}-Nbre[0]+(CurTime-OldTime-1) + CurBuf=CurBultl6 ; OldTinme=CurTime + BlockMove ( (Ptr) CurBuf, (Ptr) &CurTime, 4) ; } where.h=200 ¢ where.v-100 7 prompt=GetString (1000) orgNane=GetString (1001) ; SFPutFile (where, (Str255) *prompt, (Str255) torgName, (DlgHookProcPtr) 0, sreply) + 41£ (reply.good) t error=FsDelete((str255) reply. fName, reply. vRefNum) ; error=Create( (Str255) reply. fNane, reply. vRefNum, (OsType) creator, (OSType) FileType) ; 4£ (error—-noErr) ( error=FSOpen ( (Str255) reply. fName, reply. vRefNum, érefNum) ; 4f (error—-noErr) { for (4=1;4<16;4++) de 4f (Nhre[1}!=0) t JoNom1 (1]/ (long) 16777216 + Uf ($23) ke3 ; else kej ; if (j>1) error=Fsitrite (refNum, 6k, (Ptr) 1+ (Ptr) éNem1[1]) + 4£(j>2) kd 7 else k-j-3 + 1f(j23) exror=Fswrite (refNum, sk, (Ptr) sNom2(1]) 7 Af(f>11) k=4 7 else k=j-7 7 if (j>7) error=FsWrite(refNum, &k, (Ptr) éNom3[1]) Pom’s n° 45 4£($>11) { k-201 ¢ fre error=tswrite (refNum, &}, (Ptr) 3+ (Ptr}&ék) ¢ J ke9: jolt error=FSWrite (refNum, £3, (Ptr)3+(Ptr)&k) + } ) 4f (manques) f MangName=Gat String (1002) ; §-(Str255) *ManqName [0] ; error=FSWrite (retNum, &j, (Ptr}1+{Ptr) *angName) 7 } kel}: fale error-FSWrite (refNum, & J, (Ptr) 3+ (Ptr) sk) + Lor (1-1; 1816;.144) { 4 (Nom1[41/ (ong) 16777216) !=0 } { NumTostring (Nbre |i}, nombre) + kenombre[0] + error=FSWrite(refNum, &k, (Ptr) 1+(Ptr}snombre) ; ke9 ¢ Jali error-Fsirite (refNum, £3, (Ptr)3+(Ptr)&k) + } J 4f (manques) €. NumTostring (Nbre [0], nombre) + kenombre {0} 7 error=FSWrite (retNum, &k, (Ptr}1+ (Ptr) énombre) + t kel3 3 jel; error-[owrite (refNum, 6}, (Ptr) 31 (Ptr)ék) 7 error=rstlose(refnum) ; if (Ef face) i BlockMove ( (Ptr) 4+ (Ptr) buffer, (Ptr)sotherBuf, 4) + DispusPts ((Ptr) buffer) + DisposPtr ((PtrjotherBut} 7 buffer=0 ; RlockMove( (Ptr) sbuffer, (Ptr) *BPrRes, 4) 7 ChangedResource (BPrRes) 7 wWriteResource (BPrRes) ; DisableItem(menu[2],2) + Dowenu (cholx) Jong choix ; t int chotxl,chotx?,t 2 Ste255 name, tempStr 7 Grafptr port ; Boolean result=false ; Rect box ¢ ControlHandle item ; short hit, itemtype + Handle settings ; Jong booleens ; choixl-Hiword(choix) + LE (choLxi!=0) fi choix2=Loword (choix) ; if ( (choixtm==1) && (choix?>) ) t SetItem (menu[1], chotx2, sname) ; GetPort (sport) ; choixl=OpenDeskAcc (name) SetPort (port) ; ) if( (choixi==1) && (choix2=-1) ) Showiindow(Preswindow) ; Af¢ (choixl==2) && (choix2==1) } Pom’s n° 45 if (signales) but ter=ECHRUN ( (long) 60"duree, (Jong) 60*delai + (1ong)0x80000001) + else buf fer-ECHRUN ( (long) 60*duree, (dong) 604delat+(ong}1) + if (butter !=0) Move ( (Ptr) khnffer, (Ptr) #RPrRes, 4) 2 ChangedResource (SPzRes) + writeResource(aPrRes) ; } } 1f( (chotxt==?) && (chotx?==?) } Result 2 4£( (choixl--2) 55 (choix2—-t) ) t booleens= (ong) signaler+2* (long) manques+4* (long) Efface ; settings=GetResource('Sttg', 1000) ; MLock {settings} 7 BlockMove ((Ptr)éduree, (Ptr) ‘settings, 4) + BlockMove ( (Ptr) sdelai, (Ptr)4+ (Ptr) *settings,4) 7 BlockMove ( (Ptr) écreator, (Ptr) 8+ (Ptr) *settings, 4) + AlockMave ( (Ptr) éboaleens, (Ptr) 12+ (Ptr) *settings, 4) HUnlock (settings) 7 ChangedResource (settings) ; WriteResource (settings) ; } 4£{ (choixiee2) && (choix: 4f( (choixl==4) s6 (choix2- { BringToFront (EchDialog) + ShowiWindow (EchDialog) + hited; while( (hit!-1) &@ (hit!-2) } { BringToFront (EchDialog) + ModalDialog (0, shit) + if (hit--8) { GetDItem (EchDialog, hit, éitentype, & (Handle) item, &box) ; SetCt lValue (item, 1-GetCtlv

Showing the first 100000 of 291664 characters.

mp.ls