Skip to main content

magazine poms12

  • PublicationApple Periodicals
  • Pages76
  • Sourcemagazine_poms12.pdf
← Magazines magazine poms12
/ 76
Source: Internet Archive — Aggregated Apple-era periodicals, 1981–2012.
Page 1
Loading…
Text content (OCR)
a wil LISTE DES POINTS (06000 - MAD'S - NICE - (93) 88.04.79 EVOLUTION 9000 » MANDELIEU « (93) 49.81.61 MICRO-BOUTIQUE JCR » GET - (24) 55.01.23, MICROPOLIS - TROYES » (25) 72.03.79 | ELEC VIDEO CLUB = CARCASSONNE - (68) 47.0 2 INFORMATIQUE : NARBONNE - (68) 65.15, BASE 2 SOCODET! « RODEZ (65) 42.50.08, ALLIANCE » MARSEILLE - (91) 86.35.99 Le deuxiéme d’une EPINFG - MARSELLE (91) 949413 ne j ee eee longue série de guide Se Shne. anecuibae rag aa” des logiciels. Plus d’un tiers de nou- AYENR INFORMATIQUE BOURGES (48) 65.1657 MICROMATIC - BRIVE = (55) 87 INFORMATIC 19 BRIE” (55) 87:77 08 OMG. MICRO LEADER - DIJON - (80) 30.12.70 é IICRG CRANO INFORMATIVE - BERGERAC veautés. 1 16) 5606081 cr Ta MONTEELIARD Coe = AU SOMMAIRE : BOMEA: VALENCE" (73) 4 2 ECAELECTRONIOUE. 2OURG-LESALENCE (75) an6808 Pa j \) CORDINATEUR 29 = QUIMPER (98) 9599.7 — Une sélection de 416 »\ DISCOUNT INFORM, SERVCE = NIMES " (66) 23.74.21 4 MICRO DIFFUSION - TOULOUSE - (61) 29.81.17, programmes en Anglais MICRO DIFFUSION « BORDEAUX = (56) 81.11.99 4 ETS COCA- BORDEAUX = (61) 9291 18 ° BIB - JER BOUTIQUE = MONTPELLIER ( 7 ou en Francais pour > ARCELLEC SeTeRS. Ws) BT aes mate! APPLE - ATARI - COMMODORE ERO 29: JEAN PERRE'ANORE © LONSE-SAUNIER DETROM INFORMATIQUE - SANT-ETINNE (77) 29 5859 SINCLAIR ZX81 et SPECTRUM c 41) 46.02.40 — Les fiches techniques de CRS AVENIR: WORN Cajon ze V20 et C64 - EPSON HX 20 - eS in ORIC 1 et ORIC ATMOS - IBM PC ae Peon sous meee ='®S_80 - THOMSON TO 7 - aoe a are HECTOR. CORDINATEUR 36 - Lowen (97) Suse 3a chaque programme compre- 57800 - CW. FREYMING MERLEBACH - (87) 81.14.89 nant : g 59000 - ETS BOULANGER LILE (20) 54.98.95, ae see 59000 - BECY INFORMATIQUE « LILLE - (20) 9233.06 La description précise du pro: 59400 - MICROSHOP » CAMBRAI~ (27) 81.98.09 1 59500 - iD DOUAI (27) 88.47.20, 59800 - BOC -LILE (20) 57.91.87 gramme. 60108 - QUENEUTTE » CREIL- (4) 495.04.96 {60200 - LARDET S.A, - COMPIEGNE - (4) 423.07.86 ©3000 IMPACT - CLERMONT.FERRAND « (73) 99.17.55 64110 « ESPACE MICRO 64 - BAYONNE -(59) 59.41.55 S460 I ORMATIGUE BASCO LANDAISEANGLET (59) 31.96.05 (66000 + SERIE INFORMATIQUE - PERPIGNAN (68) 3 {67150 - ETS A FRITSCH - ERSTEIN - (BB) 98.03 51 BON DE COMMANDE A RENVOYER A SPID - 39, RUE V.MASSE - 75009 PARIS Je désire recevoir le "GUIDE DES LOGICIELS” Printemps 1984 Je joins 20 F en cheque (15 F+ 5 F de port) en réglement. Son prix moyen constaté. micro. 69003 « Blap LYON) 660.8437 — En plus vous trouverez : 69400 * MICRO INFORMBEAUIQLAISE -VLLEFRANCHE'/SAONE 71100 = AVENIRELECIRONIQUE = HALON /SAONE (85) 48.73.35 Thabo “Cho ELEerROMGUE AUTON” CoO eo le programme que vous cherchez. 73100 : LORDINATEUR = AIXLES-BAINS (99) 8819.07 Des index pour trouver facilement 14108 ° DSA MRO" ANNEMASSE™ (30) 3831-40 7006 - BUNEZ $A - PARS - 309,08 60 78008 : ENERGY 8: pARS 293.41 33 Us BUREAU "Panis 878-26 48 Ree thee EN VENTE 15 F CHEZ VOTRE GENERAL WDEO «PAR 206,50 30 PIT. Pans = 2563601 Eu pants 30768:58 DE PORT EN RENVOYANT LE MIDE Panis 339.98 PENTASONIC Panis. $0425 18 ANTIGOnE = PANS 7431343 LORDINATEUR -LE Home (38) 815455 EPSLON = MELUN 49981 98 Pt. ELECTRONIGUE TOULON = (94) 93.110 USTE INFORMATIQUE = POMTERS CEOEX (49) 41.43.66 MIN LOIS "SENS = (86) 644193 ASORKOR YONNE- SENS (88) 6451 96 Sa compatibilité avec tel ou tel | ee ts, a en Des conseils pour choisir et acheter Hes oreo as) e505 ce que vous cherchez. 1 ee i ssusco DISTRIBUTEUR OU 15 F + 5 F Ice cemosents Pat a5 soar COUPON CI-DESSOU _ Beers ae Sarat LA HAUTE FIABILITE AXIOME = BOULOGNE - 604,02.21 Nom ‘OLIG « BOULOGNE BILL - (1) 605.0559 DXMA - SAINT-MAUR - 885, Adresse MICROTEK @ - MONACO - (93) 30.67.67 + 88002 - AVM. - EPINAL (29) 82.14.97 Code et ville S$ nl? Sommaire Page Langage * | Niveau * * Disque virtuel 16K par Michel Haag 7 A P-T Charts Unlimited a l’essai par Guy Lapautre 11 Tr Le Calculateur entier par Jacques Duma 15 A P-T Exp (Pi*Sqr (163)) est-il entier ? par Olivier Herz 21 T Analyse de Magic Mailer par Guy Lapautre 22 a Initiation 4 'assembleur (2) par Gérard Michel 23 B-A T Patch du DOS 3.3 par Yvan Koenig 28 B P-T Des tableaux de dimension variable par Gérard Michel 29 A P-T & ONERR GOTO par Dimitri Auer 33 A M-T Programme assembleur 4 la fin d’un programme BASIC par Roland Jost 35 B M-T Des trucs pour Apple Writer II et //e par Hervé Thiriez 39 T Adaptez Apple Writer 1.1 4 l’Apple //e par Jacques Leroy 40 T Un éditeur de shapes par Thierry Le Tallec 41 B-A P-T Nombres flottants en langage machine par Erick Ringot 45 B-A P Un mois avec le Macintosh par Hervé Thiriez 53 T L’Apple //c est né ! par Guy Mathieu 54 T PEEKs et POKEs en Pascal par Jacques Pino 55 P T Les disquettes de Pom’s par Olivier Herz 56 T Imprimez les codes ESC de votre PLE par Pascal Fontanier 59 B T Tracé rapide de cercles par Dominique Bernardi 61 A M-T La micro-informatique au Japon par Olivier Herz 62 T Pom’s a vu MEM/TERM par Guy Lapautre 63 T La famille Apple // par Daniel Garric 67 T Micro-informations par Jean-Michel Gourévitch 69 T Courrier des lecteurs par Alexandre Duback 71 T Courrier des clubs 73 T Bibliographie 73 T Langage : Blasic) - A(ssembleur] - Plascal). (B) signifie : relatif au BASIC. ** Niveau : D(ébutant) - M(oyen) - P(rofessionnel) - T(ous) P-T signifie : programme utilisable par les débutants. mais dont la compréhension est de niveau “Professionnel” Les annonceurs ACER: p. 44 / ALPHA SYSTEMES: p. 4 / APPLE: p. 75 / B.F.I.: p. 6 | CEDIC-NATHAN: p. 51 | COMPUTER 3: p. 38 HELLO : p. 57 / M.B.D.C. : p. 72 - MICRO EXPO: p. 52 | MICRO-PERIPH : p. 66 | L'ORDINATEUR INDIVIDUEL : p. 76 PENTASONIC : p. 14 / P.S.I. Diffusion : p. 64-65 / SATELCOM : p. 58 | SICOB : p. 10 | SPID : p. 2 TELECOMPO : p. 38 Editions MEV — 64-70 rue des Chantiers — 78000 Versailles Directeur de la publication ; Hervé Thiriez, Imprimerie Rosay, 94300 Vincennes. Imprimé en France. Dépot légal : 2° trimestre 1984. Pom’s n° 12 CE FLASH I! ON EST FAIT ‘UN POUR U'AUTRE... Nos cartes coprocesseurs permettent de transformer littéralement un Apple // en lui donnant une vitesse 2 a 20 fois supeniewte en upplesol ou en Pascal et/ou une compatibilité en assembleur ou en langage évolué avec les nouveaux micros du marché. LA PERFORMANCE carte AD 8088 @@ carte 6502 C aie, anne ide ! 100% compatible tra rapide ! 4 fois plus rapide. Sans modifier une ligne des programmes APPLESOFT, la Quel que soit le programme, quel que soit le langage vitesse est multipliée par un coefficient de2a4.Lacarte le microprocesseur 6502 C (3.6 MHZ) divise par 3,6 le permet d’utiliser CP/M-86 bientét MS/DOS, le processeur temps d’exécution. Aucune modification ni matériel, ni arithmétique rapide 8087 a une vitesse époustouflante. logiciel. La carte comporte 64 Ko de mémoire ; 2 ver- Mémoire extensible a 192 Ko. Fonctionnement simultané sions: Apple II +, et Apple //e. du 6502 et de plusieurs cartes AD 8088 possible 4 carte 68000 Vitesse, puissance. Avenir. Le microprocesseur le plus puissant. 3 versions 8, 12.5 et 14 MHZ. 128 Ko de mémoire sur la carte extensible 4812 Ko. Entiérement compatible avec APPLESOFT et DOS 3.3 qu'elle accélére dans un rapport de 3 a 20 selon les program- mes. UCSD-p System complet disponible en version IV.I avec PASCAL, BASIC, FORTRAN. Développements possibles sous UCSD pour IBM PC et XT, VICTOR S1, RAINBOW 100, GOUPIL III, etc., sans recompilation Le 68000 équipe LISA et MC INTOSH ! fe departement 29, bd gambetta - 38000 grenoble ‘ ° tél, (76) 43.19.97 SVSTEMES = diffusion oistautcuas DANS TOUTE LA FRANCE g 8 Editorial D’aucuns annongaient la mort lente d’Apple, étant donné la concurrence de I'IBM PC et des nouveaux 16 et 32 bits 4 haut rapport performance/prix, tels que le QL de Sinclair. Or. tout d’abord, on constate que les nouveaux produits concurrents n'ont pas toujours une naissance sans probléme : ainsi, le QL connait-il en ce moment des difficultés avec des bugs dans son QDOS et des erreurs de conception dans un de ses circuits spéciaux. En outre, la sortie du Macintosh a prouvé qu'il fallait encore compter avec Apple : la demande est telle aux Etats-Unis qu’il est question de lancer une campagne de publicité sur le théme « Nous savions qu'il s’en vendrait un million: nous ne savions pas que cela se ferait en deux semaines... ». Ce douziéme numéro de Pom’s vous apporte la seconde partie de la rubrique « Apprentissage de l'assembleur » assurée par Gérard Michel. Certains mont fait déja fait savoir. a la suite de la premiére lecon, que cette initiation était la meilleure qu‘ils aient jamais vu. Merci pour Gérard. Sur le plan pédagogique, Erick Ringot épluche aussi pour vous la facon dont les nombres flottants sont gérés par votre ordinateur favori. Grace au programme de Michel Haag, tout le monde pourra. sur Apple II Plus et e, transformer la carte d’extension 16K en lecteur de disquettes virtuel. Il est alors possible d'y loger tous ces utilitaires d'usage fréquent, ou de s’en servir pour y placer les tables de référence des programmes Basic. En compensation, les « Pascaliens » apprendront avec Jacques Pino comment faire des PEEKs et des POKEs en Pascal. Comme d’habitude, vous trouverez dans ce Pom’s des tas de programmes tous plus utiles les uns que les autres, Roland Jost montre comment cacher des programmes en assembleur 4 la fin des program- mes Basic. Dominique Bernardi illustre sa facon de tracer rapidement des cercles en écran haute résolution. Dimitri Auer vous permet enfin de créer des tableaux 4 dimension variable en Basic. Yvan Koenig propose un patch du DOS 3.3 permettant d’éliminer plusieurs de ses bugs et limitations. Thierry Le Tallec compléte ses contributions antérieures par un éditeur de shapes de toute beauté. Les utilisateurs d’Apple Writer sont gatés cette fois-ci: Jacques Leroy transforme Apple Writer I pour qu'il fonctionne sur un //e, et je fournis de nombreux trucs d'utilisation pour Apple Writer Il et e. Pour terminer, vous verrez avec Pascal Fontanier comment imprimer les codes ESCape de votre impri- mante. Pom’s vous offre encore dans ce numéro une contribution importante avec le Calculateur Entier de Jacques Duma ; vous pourrez effectuer avec votre Apple Il des calculs avec 500 chiffres significatifs. Comme il fallait 15 pages rien que pour le listing source en assembleur. nous n‘avons pu le mettre que sur la disquette d’accompagnement ; par contre, les lecteurs courageux (ou obstinés) pourront repren- dre le programme 4 partir du code objet publié avec l'article... Olivier Herz utilise le Calculateur Entier Pour sattaquer a la question métaphysique que tous se posent : EXP (PI*SQR(163)) est-il entier ? Les banes d'essai restent au gout du jour: Guy Lapautre a décortiqué Magic Mailer et Charts Unlimi- ted; il nous présente en outre le nouveau service MEM/TERM. L ‘intégrité de nos bancs d’essai est garantie par le fait que nous ne recevons pas de publicité en échange de nos analyses. La sortie du Macintosh signifie-t-elle la disparition progressive de la ligne Apple Il et //e ? L’article de Daniel Garric et la rubrique Micro-Informations, tenue 4 présent par Jean-Michel Gourévitch, vous prouvent le contraire : les nouveaux produis //c et (//x ?) vont compléter la gamme en respectant autant que possible le sacro-saint principe de la compatibilité. Olivier Herz complete ces réflexions sur le marché de la micro-informatique en nous parlant du Japon. Hervé Thiriez Ont collaboré 4 ce numéro : Dimitri Auer — Dominique Bernardi — Jean-Michel Boyer — Alexandre Duback — Jacques Duma — Pascal Fontanier — Daniel Garric - Jean-Michel Gourévitch ~ Michel Haag — Olivier Herz ~ Roland Jost - Yvan Koenig - Guy Lapautre — Jacques Leroy — Thierry Le Tallec - Guy Mathieu — Gérard Michel — Jacques Pino — Erick Ringot — Hervé Thiriez, Rédacteurs : Alexandre Avrane — Gérard Michel. Dessins : Laurent Bidot. Directeur de la publication - rédacteur en chef : Hervé Thiriez - Siége social et abonne- ments : Editions MEV - 49, rue Lamartine - 78000 Versailles - Rédaction et courrier des lecteurs : 59. Bd Glatigny - 78000 Versailles Tél. ; (3) 951.24.43. Régie publicitaire : Force 7 - Anne Jourdan - 5. place du Colonel Fabien - 75010 Paris - Tél, ; 240.22.01 Diffusion auprés des des boutiques et librairies : PS! Diffusion - BP 86 - 77402 Lagny-sur-Mame Cedex. Composition : Télécompo - 13-15, avenue du Petit Parc - 94300 Vincennes - Tél, - 328.18.63. Impressior ‘osay - 47, avenue de Paris - 94300 Vincennes - Tél. 328.18.63, Pom’s n° 12 , DISQUETTES ET MINI DISQUETTES TOUTES CONFIGURATIONS Datalife » Verbatim. - Certification unitaire 100% sans erreur. - Durée de vie : 30 millions de révolutions (standard de I'Industrie 3,5 millions de révolutions). - Anneau de renforcement en standard sur le 5 1/4", -5 1/4" en 48 et 96 TPI, simple et double face. BFI ELECTRONIQUE - 9 RUE YVART - 75015 PARIS. Tél. 533-01-37. 6 Pom’s n° 12 Ce programme transforme les 16K e e t de la carte langage en pseudo-dis- D 1 16 K quette (disque virtuel): c’est-a-dire isque virtue que la carte langage se comportera A comme un lecteur de disquettes 4 Michel Haag accés trés rapide (et a capacité res- treinte). Il est transparent au Basic et au File Manager du DOS. Le pro- gramme FID fonctionne sans diffi- 1G culté avec la pseudo-disquette ainsi PePTTrriTrrerrrreererr reer terres formée par les 16 K de la carte lan- 3 ye * gage. ace RWLC * Sy * Exemples d’utilisation S te BECHER: OBBAGY (NOYES? ‘ Onvacsouvent besout Jers de la thise B [ene neeneneeennenennnenenennennne au point d’un programme, de plu- o; sieurs utilitaires. Ceux-ci peuvent étre | 1° ORG SBEBO disponibles sur la pseudo-disquette oe OBY, #800 Certains programmes doivent fré- | 13 ;EMULATEUR DE DISQUETTE quemment accéder a un fichier texte 14; pour le modifier ou le compléter. Si 15 ; UTILISE LA CARTE LANGUAGE POUR SIMULER on le transfére sur la pseudo-di 16 ;UNE DISQUETTE DE 4 PISTES quette, il ne sera plus nécessaire d’at- 17 tendre que la disquette se mette a 18 IOBP EPZ $48 tourer et qu’elle veuille bien présen- | 19 PTR EPZ §2A ;PAGE = "SECTEUR™ ter le secteur voulu sous la téte de 20 BUFPTR BR SE lecture. Les lectures et écritures pren- | 35 Toate Epo aoe dront moins de temps, surtout si le 23: fichier est a acces direct. Se tee OU te Remarque aux débutants 25 SEC EQU SS 26 BUF EQU $8 Si les paragraphes expliquant le fonc- 27 CMD EQU soc tionnement du programme vous dé- 28 DRV EPZ $02 Ppassent, vous pouvez sauter directe- 29 5 ment 4 la partie “Utilisation” de cet 30 RWLC STY IOBP article. On peut en effet parfaitement | 31 STA IOBP+1 utiliser ce programme sans pour au- 32 LDY #DRV ;TOUT APPEL DE RWTS EST tarit comprendre son fonctionnement 33 LDA (IOBP),Y ;AIGUILLE SUR RWLC. LE (ccmbien de conducteurs connaissent 34 CMP #2 ;CONTROLE EST REDONNE A RWTS la mécanique ?), 35 BEQ RWLC1 :SI LE LECTEUR EST D1 36 JMP SBDO3 37 5 Fonctionnement du 38 ;TRANSFERT DE POINTEURS EN PAGE ZERO programme 33; 40 RWLC1 LDY #BUF :BUFFER DANS BUFPTR A chacune des 64 pages de MEV de 41 LDA (IOBP),Y la carte langage est associé un sec- 42 STA BUFPTR teur. Les trois premiéres pages de la 43 INY premiére tranche de 4K de la carte 44 LDA (IOBP),Y langage, comprises entre $DO000 et | 45 STA BUFPTR+1 $D2FF, correspondent aux trois pre- | 46 LDY #SEC ;SECTEUR DANS SECT miers secteurs de la piste 17. Ils 47 LDA (IOBP),Y contiennent la VTOC (Volume Table 48 STA SECT Of Contents) en page $DO et un ca. | 49 LDY #TRK :PISTE DANS TRACK talogue (directory) de deux secteurs. | 5° LDA (IOBP),¥ Les 13 autres pages de cette tranche 2 . STA TRACK oes hee pce % a8 S ;DETERMINATION DU BLOCK DE 4k sont associées a la seconde tranche 3 1 de 4K et la zone $E000-$FFFF de | 22 ged Cand symoc OU OTR. la carte langage. 57 CMP #3 Le-procramme-e G2 sdnddendieus | 29 BEG RAML }PISTE 3 = 1ERS 4K DE LA L.C.. modules: un module d’initialisation, So BEE ERR. RWLCINIT (utilisé une seule fois) et | 8° fer eon un module d'accés aux “pistes” et | €> pan2 LDA $Co83 ISTE 4,5 OU 6 secteurs” de la carte langage. Ce | 65 LDA sCo83 ON COMMUTE LA PREMIERE ZONE second module, baptisé RWLC, reste 64 8s linitialisati LDA #00 DE 4K DE LA CARTE en mémoire aprés I'initialisation. 65 STA PTR Module RWLCINIT 66 LDA TRACK :PTR = DO+S10*(TRACK-4)+SECT 67 SEC Ce premier module construit la 68 SBC #904 VTOC et un catalogue de 2 secteurs 69 ASL Pom’s n° 12 sur la carte langage. Il procéde en- 79 ASL suite 4 quelques modifications du 74 ASL DOS. Sur la table d’occupation du 72 ASL VTOC, seuls les secteurs existant ef- 73 ADC #SDO 7 fectivement sont signalés comme 74 ADC SECT sTOUJOURS BRANCHE étant lores RWLCINIT met ensuite | 7° eee ae PPISTE: 3) OU! Sid + un BRK ($00) en $BEAF et inhibe la commande DOS INIT. Il place enfin 77 RAMI LDA ago :CALCUL DE LA PAGE un JMP $RWLC aTentrée de RWTS | 78 ae en $BD00 80 LDA SECT Module RWLC 81 ADC #SDO :COMMUTE LA 2IEME ZONE 82 STA PTR+i Ce second module débute en $BEBO 83 LDA SCO8B :"LECTURE" OU “ECRITURE" et comporte 144 octets. Il recouvre 84 LDA SCO8B donc en partie la commande INIT du 85 EXa LDY #CMD DOS. Tout appel de RWTS est ai- 86 LDA CIOBP),Y guillé vers RWLC. Si le lecteur 87 CMP #0 concerné est le lecteur 1, RWLC re- 88 BEQ RET donne le contréle 4 RWTS. Si c'est ee a oA le lecteur 2, RWLC détermine la page de la carte langage qui est invo- 91 CMP #2 ;PROVOQUE UN I/O ERROR guee et procede aux échanges de- | 22... BEG WRITE FCOMMUTE LA, NEW mandés entre cette page et le buffer 94 RET LDA scos2 pointé par TIOB. Si les appels de 95 LDA SCo8a RWTS sont effectués par le File Ma- | Se nee iat" GN SSECTEURE nager du DOS, il sera automatique- | 39 , ment tenu compte de la VTOC créée READ #: par RWLCINIT. Le File Manager ne | oo fpo IDA: CBTR Sey fera référence qu’a des secteurs exis- 100 STA (BUFPTR),Y tant effectivement sur la carte lan- 101 DEY gage. Si par contre on ne souhaite 102 BNE BR1 pas tester soi-méme les numéros de 103 cLe secteur et piste, il faut éviter d’accé- 104 BCC RET der directement a la carte langage 105 WRITE LDY #600 ;ECRIT UN “SECTEUR™ par RWTS, qui continuera cependant 106 BWi LDA (BUFPTR),Y @ donner des résultats parfaitement 107 STA (PTR),Y normaux sur le lecteur 1 108 DEY 109 BNE BW1 Utilisation du 110 Ce er 411 BCC programme 112 LENGTH = *-RWLC Ce programme ne peut fonctionner | 123 END que si une carte langage est installée, et non déja utilisée par le programme (ou un langage, ou un DOS relogé). Il faut faire, dans l’ordre BLOAD RWLC.OBJ Lig BRUN RWLCINIT.OBJ QD pA REE EER RRR BEER On peut a la place exécuter un fi- 35" . chier EXEC qui contiendrait ces deux 43° RWLCINIT * commandes. La pseudo-disquette Sp ‘3 s'est maintenant substituée au se- 6 i* MICHEL HAAG (NOV 83) . cond lecteur qui, par conséquent, ne % ape . peut plus’ eve utilee parle pro. 8 peeeeneaereeenereeen eee rnnennene gramme. Tout ordre du DOS suivi a” oRG #8000 de ”.D2” invoquera dorénavant la n ony S803 pseudo-disquette. De plus, comme | 33 , dans le cas d’un lecteur réel, le dis- 13: que utilisé par défaut restera le dis- 14 PTR EPZ $2A que virtuel jusqu’au prochain appel is: du drive 1 (par exemple avec CATA- ie: LOGD1). Les programmeurs possé- 17; INITIALISE UN VTOC ET UN DIRECTORY SUR LA PREMIERE dant deux lecteurs pourront décon- 18 ONE DE 4K DE LA CARTE, PAGE DO, D1 ET D2. MODIFIE necter RWLC et retrouver le second 19 ;LE DOS. lecteur par POKE 48825,0. Pour re- 20 ; connecter RWLC, il suffira de faire 21 INIT: POKE 48825,2. 22; 23 LDA SCO8B ;VALIDE LA 1ERE TRANCHE DE 4K Pour échanger des fichiers entre la 24 LDA s$COaB }DE MEV DE LA CARTE LANGAGE disquette 1 et la pseudo-disquette, il 25 LDA #0 };MET LE VTOC ET LE DIR AO sera commode di utiliser le FID. Enfin 26 STA PTR un dernier avertissement: les infor- 27 LDA #SD0 mations contenues sur la carte lan- 28 STA PTR+1 Pom’s n° 12 gage sont volatiles et disparaissent 29 BS LDA #0 avec l’extinction de l'appareil; il fau- 30 LDY #$00 dra donc penser (en fin de séance) & Sl B2 STA (PTR),Y transférer sur une disquette réelle le 32 DEY contenu de la carte langage si l'on 33 BNE B2 souhaite le conserver. 34 INC PTR+1 35 LDA PTR+1 Pour les adresses du DOS et la cons- 36 CMP #SD3 truction_de la VTOC, voir Beneath 37 BNE B3 Apple DOS, de Worth et Lechner. 38; Pour l'inhibition de la commande 39 ;vTOC INIT, voir "Une incursion dans les 40 ; mystéres du DOS” (Pom’s 2). 41 LDA #8D0 38 PREMIERS OCTETS DU VTOC 42 STA PTR+1 43 LDY #06 44 Bl LDA VTOCTBL,Y 45 STA (PTR),Y 46 DEY 47 BPL Bl 48 LDA #S7A ;OCTETS 8 A $37 49 STA $D027 50 LDA #803 ;DERNIERE PISTE ALLOUEE 51 STA $D030 52 LDA #801 53 STA $D031 34 STA $D037 3255 OCTETS/SECT 55 LDA #823 3$23 (35) PISTES 56 STA $D034 87 LDA #810 3810 SECTEURS/PISTE 58 STA $DO35 59; 60 ;TABLE D’OCCUPATION DU vTOC 61; 62 LDX #4 ;LES PISTES 3, 4 ET 5 63 LDA #SFF ;SONT LES SEULES LIBRES 64 LDY #0 Récapitulation RWLC.OBJ| 2 °* Raia BEBO- 84 48 85 49 AO 02 Bi 48 A a eboager BEB8- C9 02 FO 03 4C 03 BD AO 5s Thy BECO- 08 B1 48 85 3E C8 Bi 48 BEC8- 85 3F AO 05 Bl 48 85 2D _ INY. BEDO- AO 04 B1 48 85 2E C9 11 a DEX BED8- FO 25 C9 03 FO 21 30 40 ue BNE Ba BEEO- C9 07 10 3C AD 83 CO AD 73 LDA #8F8 ;SAUF LES SECTEURS 0,1 ET 2 BEES- 83 CO A9 00 85 2A AS 2E 74 STA $D045 ;DE LA PISTE $111 BEFO- 38 ES 04 OA OA OA OA 69 75 5 BEF8- DO 65 2D 85 2B 90 11 A9 76 ;DIRECTORY BFOO- 00 85 2A 18 AS 2D 69 DO 77 3 BFO8- 85 2B AD 8B CO AD 8B CO 78 INC PTR+1 ;PROCHAIN SECTEUR DU DIR. BF10- AO OC B1 48 C9 00 FO 09 793 LDY #2 ;PISTE $11, SECTEUR 2 BF18- C9 01 FO OC C5 02 FO 14 80 LDA #811 BF20- 38 AD 82 CO AD 8A CO 60 81 STA (PTR),Y BF28- AO 00 B1 2A 91 3E 88 DO 82 INY BF30- F9 18 90 ED AO 00 B1 3E 83 LDA #2 BF38- 91 2A 88 DO F9 18 90 E1 84 STA (PTR),Y Ré itulati 85 cLe ecapitulation 386 LDA $c082 ;COMMUTE LA MEM RWLCINIT.OBJ 87 LDA SCO8A 8000- AD 8B CO AD 8B CO AS 00 88 ; 8008- 85 2A AS DO 85 2B AS 00 89 ;MODIFIE LE DOS 8010- AO 00 91 2A 88 DO FB E6 30 5 8018- 2B AS 2B C3 D3 DO EF AS 91 LDY #03 sAIGUILLE TOUT APPEL 8020- DO 85 2B AO 06 B9 &F 80 92 BS LDA PATCHTBL,Y ;DE RWTS SUR RWLC 8028- 91 2A 88 10 F8 AS 7A 8D 93 STA SBDOO,Y 8030- 27 DO AS 03 8D 30 DO Ad 94 DEY 8038- 01 8D 31 DO 8D 37 DO AS 35 BPL BS 8040- 23 8D 34 DO AI 10 8D 35 96 LDA #800 sEMPECHE UNE INITIALISATION 8048- DO A2 04 AS FF AO 00 99 37 STA SBEAF 8050- 44 DO C8 99 44 DO C8 C8 98 LDA #$5B ;PROVOQUE UN SNTX ERR POUR 80S8- C8 CA DO F3 AS F8 8D 45 39 STA $A884 ;TOUTE UTILISATION DE INIT 8060- DO E6 2B AO 01 AS 11 91 100 RTS 8068- 2A C8 AS 02 91 2A 18 AD | 101 PATCHTBL JMP SBEBO ;MODIFICATION DU DOS 8070- 82 CO AD 8A CO AO 03 BS | 49> Nop 8078- 8B 80 99 00 BD 88 10 F7 103 VTOCTBL BYT $4,$11,$1,53,0,0,SFE 8080- AS 00 8D AF BE AS SB 8D | jo4 LENGTH = *-INIT 8088- 84 AB 60 4C BO BE EA 04 | 465 END 8090- 11 01 03 00 00 FE Pom’s n° 12 SPECIAL SICOB UN SICOB TRES SPECIAL. PROGICIELS, MINI, MICRO-ORDINATEURS (JOURNEES GRAND PUBLIC: 18 ET 19 MAI) g Spéciol SicoB Information: SICOB (1) 261.52.42 — 4, place de Valois - 75001 Paris 10 Pom’s n° 12 Charts Unlimited est un éditeur gra- phique (ou plus précisément un aide a la réalisation de dessins) vendu $195 par Graphware (5084 Mosiman Road - Middletown - OH 45042). I se présente sous la forme désormais classique d’un classeur rigide, avec documentation et une disquette. Ce programme n’est pas encore, a notre connatssance, vendu en France. Il est destiné a créer et 4 imprimer des schémas et dessins tels que : or- ganigrammes, ordinogrammes de traitement, synoptique de processus industriels, etc. Il ne peut pas servir directement 4 représenter des séries numériques comme le font des logi- ciels tels que Visiplot, Décisionnel Graphique (essai dans le Pom’s 10), Business Graphics ou PFS-Graph. Les avantages et inconvénients de Charts Unlimited sont évalués en fonction de ce qu’un utilisateur est en droit d'attendre d’un tel logiciel, avec parfois référence implicite ou explicite 4 d'autres logiciels de méme objectif. Ils sont présentés sous 7 tétes de chapitres : 1 - Apprentissage du logiciel 2 - La "page” écran 3 - Fonctions de dessin disponibles 4 - Objets et symboles 5 - L’édition sur imprimante 6 - Utilitaires: gestion des disques, liaisons externes 7 - Documentation Apprentissage du logiciel L’abord du logiciel est assez aisé: il se fait grace & un “Tutorial” qui consiste 4 tracer un organigramme d'entreprise, et permet de couvrir la plupart des fonctions du logiciel. Une fonction "AU SECOURS”, invo- quée par la touche "?”, propose un simple synoptique des commandes disponibles. On pourra s’étonner du choix fait pour les lettres plus ou moins mné- motechniques permettant l’appel des commandes (méme en Anglais): E (pour "ERASE”) ou D (pour "DASH LINE”), d’accord, mais B pour dési- gner des "OBJETS STANDARDS” ou Y pour définir des objets... Il faut s’habituer au mode de dépla- cement du curseur : 8 lettres pour les 8 directions dans toutes les comman- des, sauf en mode texte of I’on re- trouve les 4 fléches de direction (pour l’Apple //e). Il est assez commode de configurer son systéme imprimante/interface ... condition que ces deux matériels fi- gurent dans les listes proposées. Sinon, quelques tétonnements sup- plémentaires semblent conduire en général a un résultat satisfaisant. Pom’s n° 12 Charts Unlimited a l’essai Avantages: Simplicité d'emploi - Nombreuses _ fonctionnalités — d’un abord aisé - Ecran clair. Inconvénients : Codes de comman- de pas toujours évidents - Quelques problémes dans le maniement du curseur. Synthése : Dans l'ensemble, pas de gros reproches, malgré quelques in- commodités mineures. Un “Tutorial” bien fait. On commence a "se dé- brouiller” avec Charts Unlimited en 2 heures environ. La ”’page” écran Lécran est une fenétre de 37 colon- nes sur 19 lignes dans une page de 123 colonnes sur 90 lignes. Des échelles placées en haut et 4 gauche de l’écran montrent a quel endroit on se trouve dans la page. En bas, une ligne de commande per- met de savoir quelle est la fonction- nalité en cours. Chaque commande est appelée par une lettre code. On en gpesort TOUJOURS par la touche ESC. Nous avons déja parlé du positionne- ment du curseur. Sauf en mode texte, il se fait par le groupe assez traditionnel de lettres "UI OJ KN M <” pour obtenir les 8 directions de déplacement; il vaut donc mieux é@tre en mode US sur un clavier //e. Les 4 fléches de direction (version /le) servent 4 un déplacement rapide, jusqu’aux bords de I’écran En mode texte, les déplacements se font avec les 4 fléches; RETURN ren- voie a la ligne suivante, DEL efface le caractére sous le curseur (et non le précédent...) et CTRL-I crée un es- pace (pour insertion). On a souvent besoin de désigner une zone rectangulaire de |’écran : sauve- garde, duplication,... Ceci se fait commodément en se placant succes- sivement dans les angles supérieur gauche et inférieur droit, et en "mar- quant” ces angles par RETURN. Par ailleurs, une fonction “VIEW” permet d’obtenir, dans un petit rec- tangle en bas et a droite, un fac-si- mile réduit de la page entiére. Avantages : Ecran clair - Vision trés commode de la page entiére - Mode unique d’entrée et sortie de chaque commande - Puissance de la notion de “zone”. Guy Lapautre Inconvénients: Quelques _ petits problémes de déplacement du cur- seur - La désignation de zones est parfois une commodité dange- reuse : on peut, en l’omettant, perdre complétement le résultat d'une séance de travail. Synthése : La encore, les avantages lemportent sur les inconvénients. On regrettera toutefois qu'il n’y ait pas un verrouillage de la fonction de sau- vegarde quand on a omis de dési- gner préalablement la zone a sauve- garder. Les fonctions de dessin disponibles Elles sont désignées ci-dessous par leur équivalent en frangais. TEXTE : permet l’écriture de tous les caractéres imprimables. L’écriture ne peut pas traverser un dessin déja fait. Elle est limitée a l’intérieur d’une case, ou a une zone vide... LIGNES : droites pointillées (Dash) ou pleines (Solid) tracées grace aux 8 touches de direction. Quelques petits problémes de jonction selon les sens successifs de tracé. OBJETS : on désigne par ce voca- ble des éléments de dessin pré-éta- blis. Il existe un jeu dit standard” de 36 éléments, qu’on peut manipuler, agrandir, déformer, (un mini ”Lisa-Draw”, par anticipation). L’uti- lisateur peut créer autant de jeux qu’il le souhaite (on trouve une cer- taine analogie avec le logiciel de trai- tement de texte Gutenberg - voir Pom’s 11). Mais les fonctions d'agrandissement ne sont pas dispo- nibles. SYMBOLES : analogues aux objets, au nombre de 26, non transforma- bles. L'utilisateur ne peut pas créer ses propres jeux. DUPLICATION : reproduction, 1 ou n fois, d'une “zone”, a intervalles équidistants sur une ligne (encore une idée reprise et développée dans Lisa-Draw) EFFACEMENT d'un point, ou d'une zone. Avantages : Nombreuses fonction- nalités que l'on ne retrouve qu’avec des outils plus puissants mais sensi- blement plus cotiteux. Inconvénients : Ils ne seraient sans doute pas cités si on n’avait pas vu plus fort depuis... mais pas sur le méme matériel ni au méme prix.. 12 On pourra, a la rigueur, regretter 3 choses : l'impossibilité d’agrandir les objets utilisateur, le’ manque d’accés aux points élémentaires sur l’écran (voir Micro Painter, E-Z Draw ou Koala Pad), et enfin absence d’un outil de calcul associé. Synthése : Certains produits récents, sur des ordinateurs plus puissants, ou sur Apple II avec des compléments matériels et logiciels peu économi- ques, nous ont habitués 4 d’excellen- tes performances dans le dessin. Charts Unlimited n’atteint évidem- ment pas ces performances. Mais, par sa simplicité comme par son prix, c’est un outil remarquable aux nom- breuses fonctionnalités. Objets et symboles La palette offerte comprend une Planche de 36 objets dits “standard”, dont beaucoup sont inspirés des des- sins d’ordinogrammes, et une plan- che de 26 symboles variés. La fonc- tion de création permet 4 l'utilisateur de créer autant de planches de 26 objets qu'il le souhaite, en partant dobjets ou symboles existants, de tracés nouveaux et de textes. Les objets standards peuvent de plus @tre agrandis dans une ou deux di- rections (suivant les objets), et par conséquent déformés. Un cercle peut devenir un ovale, un petit carré un grand rectangle, etc. Symboles et objets utilisateur ne peuvent pas étre modifiés dans leurs forme et dimen- sions, Avantages : Tracés rapides, et trés simples dés lors qu’on a constitué sa (ses) propre(s) planche(s) d’objets - Appel rapide, mais seules les plan- ches d’objets standards et de symbo- les peuvent étre visualisées 4 |’écran. Inconvénients: Il est regrettable que les objets créés par l'utilisateur ne disposent pas des mémes fonc- tionnalités que les objets standards - Impossibilité de travailler au niveau du point élémentaire. Synthés: L'idée des planches dobjets”, qui a été reprise par des produits modernes plus dispendieux, est une des grandes forces de Charts Unlimited. Quel dommage que I utili- sateur ne puisse pas, 4 son gré, utili- ser ses propres objets en place des objets standards. L’édition sur imprimante Un large choix d’imprimantes et d’in- terfaces est proposé a T'utilisateur, a partir d’un menu de configuration trés simple 4 utiliser. Le probléme ris- que de se compliquer un peu si ’im- primante et/ou l’interface qu’on pos- séde ne figurent pas dans la liste. Mais un peu d’habitude permet en général de faire des assimilations. S) I Il est possible d'imprimer les graphi- ques, et ce en simple ou double di- mension, verticalement ou horizonta- lement sur le papier. La simple dimension, dite “normale” est en fait trés condensée (elle permet, sur pa- pier 21x31, l'impression d’un graphe de 123 colonnes dans le sens de la largeur du papier. Mais les dessins sont en réalité raccourcis, ce qui in- troduit une déformation des objets et symboles. Liimpression en double dimension ne double en fait que la largeur, res- tituant aux objets leur forme nor- male. Mais il est nécessaire, pour un schéma dépassant une soixantaine de colonnes, de travailler "verticale- ment”. A ce moment, un schéma de 123 colonnes tient juste dans une feuille de papier 21x31, mais seules les 2/3 des lignes supérieures sont imprimées. Avantages : Un bon choix d’impri- mantes et d’interfaces - Deux possibi- lités de dimensions d'impression et deux sens pour chacune d’elles. Inconvénients : Une lenteur d’im- pression presque désespérante (les temps se comptent en longues minu- tes !) Synthése : Bonnes possibiltés, pour qui est patient... Utilitaires : gestion des disques, liaisons exter- nes Le temps de chargement du pro- gramme est assez long, mais on est ensuite tranquille. La configuration imprimante, étant sauvegardée sur le disque programme, est chargée avec celui-ci si on ne souhaite pas la mo- difier. Les fonctions classiques d’échange avec le disque sont présentes. Bien que le travail avec deux lecteurs soit plus confortable, les transferts sont suffisamment peu nombreux pour qu’on puisse se contenter d’un seul lecteur. A signaler un grave inconvénient de la fonction de sauvegarde : si on n’a pas pris la précaution de désigner la zone a sauvegarder, l’option par dé- faut n’est pas "TOUT” mais "RIEN” (pas d’avertissement: on a simple- ment l’impression d’un dysfonction- nement qui disparait aprés deux RE- TURN) ... ce qui bien entendu risque de faire perdre un long temps de tra- vail et, pour comble de malheur, ef- face sans pitié ce qui avait été préala- blement sauvegardé sous le méme nom. Par ailleurs, notons que Charts Unli- mited est un logiciel isolé, non prévu pour communiquer avec d’autres lo- giciels commerciaux. Avantages: Transferts peu nom- breux - Configuration imprimante chargée avec le programme. Inconvénients : Le manque de pro- tection, ou au minimum d’avertisse- ment, contre une sauvegarde sans désignation préalable de zone - L’iso- lement du logiciel, qui ne peut-prati- quer d’échange avec aucun autre. Synthése : Peu de remarques, si ce nest qu’il est difficilement admissible de voir dans un logiciel plein de qua- lités une telle absence de sécurité. Documentation La documentation, en anglais seule- ment (il faut dire que le produit nous est arrivé directement des USA), comporte deux parties distinctes. Pom’'s n° 12 La premiére est un “Tutorial”, qui enseigne l’essentiel du logiciel autour d'un exercice sur la construction de lorganigramme d'une entreprise. Cest simple et bien fait. La seconde est classiquement pré- sentée par fonctions. Les fonctions apparaissent dans l’ordre alphabéti- que de la lettre-code qui sert a les appeler, donc sans aucune logique. Si l'on se souvient par ailleurs que les mnémoniques sont parfois étran- ges, on concoit qu’il edt été préféra- ble de choisir un autre ordre ! Ne croyez pas que l'index final va apporter une aide supplémentaire : il est alphabétique lui aussi.. Enfin, pas de synoptique comme cela existe maintenant pour la plupart des logiciels. Avantages : Bonne approche par le "Tutorial”. Inconvénients : Ordre de présenta- tion peu logique dans la partie "Ma- nuel de Référence” - Absence d’un tableau synoptique - Documentation en anglais seulement, mais pour un produit encore non commercialisé en France. Synthése : C’est propre et bien pré- senté, comme c’est généralement le cas pour les documentations améri- caines - Mais, a l'exception de la par- tie apprentissage, c'est fort peu commode 4 exploiter. Conclusion En avance par rapport aux logiciels de dessin qu’on voit maintenant sur le marché, Charts Unlimited reste un produit trés attrayant et tres compéti- tif, puisqu’il n’exige aucun accessoire matériel. Parmi ses faiblesses : L’isolement du logiciel qui, par ailleurs, ne dis- pose d’aucun outil de calcul - L’im- possibilité de descendre au niveau du point élémentaire - Un traitement moins complet des objets utilisateur que des objets standards - Une insuf- fisance de sécurité au niveau de la sauvegarde. Et, 4 un moindre titre: Une impres- sion extrémement lente - Un certain ésotérisme dans la désignation des commandes - Une documentation peu facile a exploiter. Parmi ses forces: De trés nom- breuses fonctionnalités, capables de satisfaire un utilisateur exigeant - Un écran clair, avec rappel possible d’un schéma complet pour contréle - D’in- téressantes solutions d’impression - Une approche aisée et un apprentis- sage rapide - De trés utiles notions de zones, d’objets et de symboles. Et, 4 un moindre titre : Un bon tuto- rial - Une agréable facilité de configu- ration du systéme d’impression. Pour les possesseurs d’Apple //e Attention a la touche "CAPS LOCK”, qui doit toujours étre enfon- cée (sauf en mode texte): dans le cas contraire, le logiciel “ne comprend rien”, refuse toute entrée sur la ligne réservée et ne prévient pas (mais ne va pas jusqu’a se blo- quer). = PDs. Etfecti¢ ‘TEUS 1 { 1 i Adn/F in. Commerc. Product. Etudes HERA WERHES ERAKLES| PHOEBUS 4 + + i} } { t { i fAd.Gen] [Conpt.| [Nectar] [Autres] [Market] [Gest. | [stocks] [Usine ] [Rech.] [Labo] [Prod] [inter. = “ 1-| | ce 12 ATHENA} | EROS ” Mages | |kRoWOS) jaRTE=.| /CYBELE] [HEpHA-) | RHEA Dyouy PH 1? agents 8 cadres 12 cadres 21 cadres et techniciens 16 agents 276 85 representants (1) 125 owriers Impression CHARTS UNLIMITED Pom’s n° 12 Eftecti¢ total : 295 Etebli le 31/1/1984 Le P. 13 DUO DISK PROMOTION APPLE 1! NOUVEAU PRIX ‘spares capaci 2 Comorenant 1 Uc APPLE le 1 MONE aPme 1 dug ye eFaN IMAGE WRITER 5810 F imprimante congue par APPLE pou voke APPLE. Caratnstues —majusees, miuszues ‘yapmque sot gat pont COFFRET APPLE 698 F Osmensons enigues au cote APPLE, Ven avec ou sans ocaupe numérique CLEF EW MAIN trates, = Ge de OW 20K de Rant Maroge aie we 1 MAGE WRITER 1 SET DE LOGICIEL PU 68000 16192 bis {gene menopnoniques ae Let poer ENSEMBLE APPLE I NOUVEAU PRIX Disponiieuniqutment pour APPLE ‘ssentoleat pour des applet UNE IMPRIMANTE CLEFS EN MAIN POUR VOTRE APPLE =| CARTE LANGAGE 16K APPLE TUG APPLE 1 WONITEUA APPLE +1 LECTEUR § PouCeS 1 SYSTEME APPLE FAN pes yp pascal ‘haa is Disponible égslement en compete (sans ROM ia (98 Fs Comprenant 12800 APPLE Ill NOUVEAU PRIX Comprenant WC APPLE 250 1 MONITEUR APPLE 1 DISUE OUR So LOGICIEL 808° F ae oh JEUX APPLE Pont ba mains Point Sat maths? 000 Sorclirie Chopin Fathoms 40 Zamen Benes ny Heit | CARTE 6522 VIA A Commande de processus ? Vous averbesona une care 6522. Ee vous permet ge spose de 32 hes que vous pouver tint comme tet ens des sorties APPLE FAN ces aucun pergage pou 82 bsaton 0 colones 40 colons tend 495 F ‘ae vote APPLE es chang en cartes extunson son du mele eoaisement APPLE FAN et Un venta carrosse qi sng 8 exter & ne 80 Colonnes APPLE es 2 cates distributes pr APPLE santaaspensbles ans fa majrté des appteatonspotesionneles Vatie APPLE IE sea, wee tend la apace RAM 2 128 Fight ssmulitor OF 989 CARTE EVE 998 Fs wT Fs AK 40 1464 F FLOPPY APPLE 3 POUCES 2950 F CARTE 8088 APPLE 1 Ges appeansprtssongetes gun des ttn temps fess apes tos wegue complete ove SEN i ots INTERFACE SERIE APPLE Cate cate permet 2 modes de tava ihalson AS2a2 classique avec sgnaux de WAND: — ison RS232 ype MODEM bisrectonele 1360 F Extension 6 clones Ra te sare petal 2970 F Saver vous que le toms de ransen un let 3 ouots et seinen dengue ox dun gue Sur 700 iar teu ITACHI Are avantage ine oes suppor et er soland Ge leur pet Ineoriquementabesser 50K Ge mémote mas pout "estar ampati ave fe DOS 3-8 Vest ies 40K JOYSTICK 320 F “a its. Autre avanage spose de shea ago 4 pouvleWe iat 1 place des pales CARTE TAXAN COULEUR a Coad ses mais Indispensable pour interfner votre APPLE avec un APPLE Ie 605 Fs PPLE IE 40 Fs ‘pon 80 colomes ine : KP Maniteur couleur ede AB." Bande podsine vio 15 M2. RE soliton forgone 380. Resclutonvereae 262. Moriteut coir erie” ante ‘tsolutonhorebatl S10, Résolion verte 262 Imprimante 0 10's "Ttlet sont nur aveentrodueton Tei eve ype mache 4 tere KP 911 Imprimante 132 ¢ 148 cps sine eaadsguts que a 810 psa video > 18 126 F 320 anne HORLOGE APPLE 785 F Inaiqueen cara vos programmes hur, a minute et lseeonde CLAVIER TYPE APPLE CARTE 6809 APPLE 2800 F onaue avec sa asquete FLEX et son manuel etl Came donne a vote APPLE a pussance gu CPU 8809, {4 MOTOROLA Hy aa Send ver gone 18M pour vote APPLE DISQUETTES FLOPPY 5 POUCES COMPATIBLE APPLE 2600 F PARALLELE APPLE | 1360 F a same fateh rst ac a fen os ne 1 6 al ane! mpstrs’ OME 1562 F Eien rene ener e dans le ‘Machine language disk 1/0. 378,20 F En liaison directe avec 'a RAM APPLE vous pouver | Complete sans togiciel 1990 “ Doss de mimarsation su csquete ces mes | The evstm 41 80 37020 F | aaiser ou moder ectemen We cou hea aot made 6 We Bnei we ot | Cnr wn ore el Done oder ou eC 88 LOGICIEL APPLE + wsicaLe (rang) 2100 F mca 2420 F : 4690 F serio 100 F PPLE WRITER trator ob te SRF BUSINESS GRAPHIOUE 1975 F “QUICK FILE Water dicho 100 MSILE sone eson lee EO APPLE LO’ 1600 F AGA ge langage 1820 F 200 F 5 OC BASE 200 = Ox TEXTE 3000 F CARTE APPLE-TELL ie OTHER MYSTERIES the custom app! Cceglves sont nite mls eprdsemont ie NEC PLUS ULTRA ce itatureennque Tous les Secrets ot vate TRGB ou Ge are APPLE gets, as 0052 sects ‘ne mysteries 26.00 518.00 F us Haw 0 daon TS 780 avec CP/M APPLE 3100 F La carte 280 es dsguetes GPM is vais), pas oes Imanuels nombreux et complet, vole ce Que vous Pogose kIT CPM ve MICROSOFT Fonchonne aur Rebtel I area, gee pani en von cgi sang GP Ata sans mane 388 5 KOALA PAD 1470 F Cue let de agtastonparet ge ede toutes Testes ettus es rapismesen ores, conme st ‘une table dessin Verde avee manus on Fane logic pour APPLE ‘io Fs £ ‘90m a F 0 oF F 0 6 OFOD S400 F PROGRAMMATEUR DE MEMOIRES | ‘Aves lai ng sur BOM rambo pret de Drgraminer es 2708 2516-2532-27922798 en 21 0 ov CARTE RAM 128K APPLE Compatibie APPLE i+ ou APPLE IE cet carte ois owed son prope syste “REFRESH ef cone ne 14 Pom’s n° 12 Cryptographes et arithméticiens, a vos claviers ! Ce Calculateur Entier permet de faire des opérations avec de trés grands nombres. Il accepte jusqu’a 500 chif- fres par nombre pour les calculs. Le “prompt” qui indique que le pro- gramme attend vos ordres est le signe pour-cent "%”" Les régles de syntaxe de ce Calcula- teur Entier sont formalisées en nota- tion BNF. Les unités syntaxiques dé- finies sont entre chevrons ("<” et ">"), Les termes de leur définition suivent les trois symboles ” Le signe "!” sépare les différentes formes que peut prendre une unité syntaxique. Les parties optionnelles sont notées entre accolades ("{” et ”}"). “RETURN” signifie: taper la touche RETURN. Tous les autres symboles qui ne sont pas entre che- vrons forment l’'alphabet du langage du Calculateur. Mise en route Le code source Lisa est fourni (CAL- CULATEUR.L), ainsi que le code objet en binaire (CALCULA- TEUR.B). La version standard est as- semblée 4 l'adresse 2112 (décimal) ou $840 (hexa). Pour lancer le pro- gramme, il suffit de faire : BRUN CALCULATEUR.B L’écran est effacé et on peut lire, en haut et a gauche : FAIRE : CALL 2112 Si l'on exécute cette instruction, on se retrouve sous le contréle du Cal- culateur Entier. Le prompt est le signe pour-cent "%” Si, par accident, on quitte le pro- gramme (par exemple en faisant RESET ou une erreur DOS), on peut y retourner sans perdre les variables en cours d'utilisation. Pour cela, il’ faut faire : & (en Applesoft) ou CTRL-Y (en mode moniteur). Si, a la suite d'une sortie, on désire réinitialiser le programme, il faut faire : CALL 2112 (en Applesoft) ou 840G (en mode moniteur) Si la position du programme en mé- moire ne vous convient pas, vous pouvez l'assembler A une autre adresse (4 condition qu'elle soit comprise entre $805 et $66D0). Tout ce qui précéde reste valable, Pom’s n° 12 Le Calculateur Entier seule l'adresse d’appel change. Au début, vous verrez apparaitre sur votre écran : FAIRE : CALL aaaa ot aaaa sera l’adresse décimale cor- respondant a I’adresse hexa d'origine de votre programme. Si par exemple vous mettez "ORG $805” en ligne 2 du texte source, le programme affi- chera : FAIRE : CALL 2053 Etudions a présent les possibilités de ce programme. Commandes Le Calculateur Entier est un interpré- teur de lignes. Chaque ligne de commande contient au plus 250 ca- ractéres et doit se terminer par “RE- TURN”. <Ligne> ::= <Commande>”RETURN” || <Commande DOS>"RETURN” <Commande> ::= { <Diése>}<Instruction>|| <Commande> : { <Diése>}<Instruction> <Diése> ::= <Constante># Il peut y avoir plusieurs instructions par ligne, séparées par deux-points ”:”. Les blancs ne sont pas pris en compte. Le <Diése> optionnel devant une <Instruction> représente un facteur répétiteur. La constante qui le pré- céde, et qui doit étre un entier positif inférieur 4 256, indique combien de fois la ligne doit étre exécutée (voir la section sur les facteurs répétiteurs). Une <Commande DOS> est une commande du DOS standard. En fait, on utilisera seulement les commandes CATALOG, BSAVE (pour sauvegarder les résultats d’un travail), BLOAD (pour récupérer un travail en cours), PR#0 et PR#1 (pour diriger l’affichage vers l’écran ou l'imprimante). Une commande du DOS doit bien sir étre seule sur sa ligne Exemples de lignes : %BLOAD nomfichier “RETURN” % 2243: A =2/3:R: $: @ "RE- TURN” Le signe pour-cent °%” est le prompt et la touche RETURN est tapée en fin de ligne. Nous verrons plus loin la signification du "$” et de Parrobas "@” Jacques Duma Instructions Il y a trois types d’instructions, pour Vnitialisation du systéme, les affecta- tions, et les affichages. <Instruction> ::= & ||, |] y || <Affec tation> || <Affichage> |[ <Rien> <Rien> = La virgule (,) est une pause entre deux instructions. A l’exécution, trois bips sont émis et il faut appuyer sur une touche pour continuer. Si CTRL-C est appuyé @ ce moment-la, il y a une interruption normale. Le guillemet (”) permet d’introduire des remarques dans le déroulement dun calcul. Tout ce qui suit le (”) jusqu’au (:) suivant ou jusqu’a la fin de la ligne est simplement recopié a l'écran (les espaces sont supprimés). Par exemple %"ZERO : A=0: 2A: A=A+1: "UN : 2A: "FINI affichera ERO = 00 UN =01 FINI <Rien> signifie q’une_ instruction peut étre vide (dans une ligne, on peut avoir ”::” sans rien entre les deux-points séparateurs). Initialisation & est l'instruction qui permet de dé- saffecter toutes les variables en cours Cutilisation. Cette instruction, avant de réinitialiser tout le systéme, de- mande confirmation par : RAZ (O/N) ? Si la réponse est O pour OUI, le sys- téme est réinitialisé; dans le cas contraire, on retourne au niveau de commande sans rien perdre. Attention : le chargement d'un fichier de variables a partir d’une disquette fait perdre tout le contenu actuel de la mémoire. Instructions d’affectation Ce programme n’est qu’un calcula- teur et non un analyseur d’expres- sions arithmétiques. On ne peut donc faire qu'une opération par instruc- tion, mais on peut avoir plusieurs ins- tructions par ligne. Remarque : si les nombres sont trés grands, les calculs peuvent durer un temps appréciable; il ne faut surtout pas s’impatienter. Se UN Les additions et soustractions sont ra- pides. Une multiplication de deux nombres de 250 chiffres peut durer jusqu’a 15 secondes. L’élévation a une puissance peut at- teindre 25 secondes (2 1685 par exemple) La division est la plus longue : la di- vision d'un nombre de 500 chiffres par un nombre de 1 chiffre peut prendre 60 secondes. <Affectation> ::=<Variable>= <Expression>{;<Variable> } <Expression> ::= {-}<Primaire> ||{-}<Primaire> <Opérateur><Primaire> <Primaire> = <Variable> ||<Constante> <Opérateur> ::=, ' +q-ded Les opérations permises sont donc laddition, la soustraction, la multipli- cation, la division entiére (avec "/”), qui peut fournir son reste (A condi- tion que les deux opérandes soient positifs), la puissance entiére a expo- sant positif (avec ” ”) et enfin la multiplication par une puissance de 10 (avec l’'apostrophe). Voici quelques exemples : A=-3+123:_ B=A°5: C=AB D=~AsC: C=12-A: A=A/A‘A: C=33/5:B Pour la division entiére, on a avec le reste la possibilité d'une affectation double. Exemple Q=13/5_: la valeur 2 est affectée a la variable Q. Q=13/5;R : la valeur 2 est affectée 4 Qetle reste 3 aR. R=13/5;R : la valeur 2 est affectée a R, puis 3 est aussi affecté 4 R. Le 2 est donc perdu, mais on a ainsi ob- tenu le reste de la division en utili- sant une seule variable .. L’option {;<Variable> } n'est accep- tée par le Calculateur, a la suite d'une affectation, que dans le cas de la division. Dans les autres cas, une erreur est détectée. L’apostrophe (’) permet de faire trés rapidement les multiplications et divi- sions par les puissances de 10 (des décalages). X’N est égal 4 X*(10 N). X et N peuvent étre positifs ou néga- tifs. Par exemple, si N=5 et M=— alors ? 123456789'N donne =12 3456 7890 0000 ? 123456789'M donne =01 2345 Si l'exposant de 10 est négatif, cette opération ne rend pas de reste, contrairement a la division. Limites - Les régles suivantes doivent étre respectées : @ les deux opérandes d’une division doivent étre positifs; il n’est pas possible de diviser par zéro; Texposant d'une puissance doit étre positif;, tout résultat aprés calcul doit avoir moins de 509 chiffres. Texposant de 10 dans (’) ne doit pas dépasser 511 en valeur abso- ue. Si l'on désire affecter 4 une variable un nombre de plus de 250 chiffres, il faut procéder par étapes car la ligne est limitée 250 caractéres. Ainsi, un nombre de 400 chiffres sera affecté a la variable X en deux lignes % X=(la suite des 200 premiers chif- fres)'200 “RETURN” % X=X+(la suite des 200 demiers chiffres) “RETURN” Variables On dispose de 26 variables distinctes Chaque variable a pour identificateur une des lettres de l’'alphabet (A...Z) et pour valeur un nombre entier rela- tif, cest-a-dire un entier positif, nul ou négatif. <Variable> ::= AIBIC!DIE!FIG!HII!J!K!L!IM!INIO!P!Q IRISITIU!IVIWIX!Y!Z A /initialisation du systéme, les varia- bles ne sont pas affectées (elles n'ont pas de valeurs) L'utilisation d'une <Variable> non initialisée dans une <Expression> provoque le message d’erreur : ? VARIABLE ’x’ NON AFFECTEE Pour utiliser une <Variable>, il faut donc l'initialiser en lui affectant pour valeur une <Constante> ou une <Expression>. Constantes Une constante est un nombre entier positif <Constante> ::= <Chiffre> || <Constante><Chiffre> <Chiffre> ::= 0!1!2!3!415!6!7/8!9 Il y a cependant une limitation a la taille des constantes. On ne peut pas entrer plus de 250 caractéres au cla- vier; de plus, aprés calcul, le nombre le plus grand ne peut avoir plus de 508 chiffres. Les blancs étant non significatifs dans une ligne, on peut entrer des espaces entre les groupes de chiffres d’une constante, ce qui facilite l’écriture des trés grands nombres. Si une <Constante> est utilisée de maniére répétitive dans un calcul, il vaut mieux l'affecter 4 une <Varia- ble> et utiliser la <Variable>. Les calculs seront plus rapides. Le co- dage d’une constante est en effet assez long. Instructions d’affichage Ces instructions permettent de visua- liser les résultats sur 'écran (ou sur Timprimante, si l'on a fait préalable- ment PR#i avec l'imprimante sur le Slot i). <Affichage: $||@ foe 3<cExpression> ?<Expression> affiche la valeur de Texpression. Le Calculateur passe a la ligne et écrit "=" suivi de la va- leur. Si l’expression est une division, deux résultats sont donnés: le quo- tient puis le reste Les nombres sont écrits avec un es- pace tous les quatre chiffres pour fa- ciliter la lecture. Un caractére CR (Carriage Return) est envoyé tous les 79 caractéres pour que les sorties sur imprimante soient formatées correc- tement. On peut afficher les valeurs de toutes les variables en service @ un instant donné par @. Ceci écrit : AFFICHAGE DES VARIABLES AF- FECTEES : variables et valeurs, par ordre alphabétique Lvaffichage écran est rapide. On peut linterrompre entre chaque variable en tapant sur la barre d’espacement: on le relance de la méme_facon. CTRL-C permet d’arréter I'affichage et de récupérer le prompt. On peut aussi afficher en hexadéci- mal l'adresse et la longueur de la zone mémoire 4 sauvegarder pour conserver les valeurs calculées et af- fectées aux variables en service ’ donne l’adresse et la longueur de la zone mémoire 4 sauvegarder par un BSAVE. Le format est le sui- vant: ZONE A SAUVEGARDER A$xxxx,L$yyyy ot xxxx est l'adresse du début de la zone a sauvegarder et yyyy sa lon- geur, le tout en hexadécimal. Par exemple, pour sauvegarder les variables calculées sur la disquette sous le nom de fichier "MES-CAL- CULS”, il faut faire : %BSAVE__MES-CALCULS,A$xxxx, L$yyyy “RETURN” La valeur de A$xxxx dépend de l'adresse 4 laquelle le programme a été assemblé (on a normalement A$1700). La valeur de L$yyyy est L$0070 a 'initialisation du systéme. Chaque variable affectée occupe 256 octets supplémentaires ($100). On aura ainsi "L$0370” si 3 variables ont été affectées. Pour récupérer ultérieurement les va- leurs sur lesquelles on travaille, il suf- fira de faire : %BLOAD MES-CALCULS "RE- TURN” Pom’s n° 12 Attention : le contenu de la mémoire avant le BLOAD est perdu. Les facteurs répétiteurs Une ligne normale est exécutée une seule fois. Si le <Diése> est utilisé, on peut exécuter une <Ligne> ou une fin de ligne plusieurs fois. La constante qui précéde le diése (#) doit étre un entier positif inférieur ou égal 4 255. Ce nombre indique combien de fois il faut exécuter tout ce qui suit le diése jusqu’a la fin de la ligne (jusqu’au RETURN”). Il peut y avoir plusieurs fois le <Dié- se> sur une méme ligne. Chaque facteur répétiteur porte sur ce qui le suit jusqu’a la fin de la ligne. Le Cal- culateur n'est pas programmable, mais le <Diése> permet de faire assez facilement des calculs répétitifs (comptages, factorielles). Sil y a trop de facteurs répétiteurs sur une méme ligne, il est possible que le programme soit mis en défaut par saturation de la pile. I] vaut donc mieux éviter d’utiliser plus de 15 fois le diése dans la méme ligne (la contrainte est raisonnable ...) La syntaxe impose que chaque diése soit séparé du suivant par au moins une instruction —_ (éventuellement vide). Il y a donc au moins un deux- points entre chaque paire de diéses. Si l'on veut afficher 500 fois la valeur 3, il faut taper la ligne suivante % 10# : 50 # 23 “RETURN” Voici quelques exemples : Le signe pour-cent "%" au début de la ligne est le prompt. La suite est tapée par l'utilisateur jusqu’au "RE- TURN”. Les blancs sont non signifi- catifs (on peut ne pas en mettre). Le reste est affiché par le Calculateur : % ? 2+3 “RETURN” 3# 22+3 “RETURN” 7% A=0: 100# A=A+1 % 2A =0100 % A=0: F=1: 10# @: +1: FEAsF AFFICHAGE DES VARIABLES AFFECTEES : A=00 F=01 AFFICHAGE AFFECTEES : A=10 F=0362 880 AFFICHAGE AFFECTEES : A=20 F=0243 2902 0081 7664 0000 AFFICHAGE DES VARIABLES 10#A=A DES VARIABLES DES VARIABLES Pom’s n° 12 AFFECTEES : A=30 F=0265 2528 5981 2191 0586 3630 8480 0000 00... Cet exemple calcule dans F la facto- tielle de A. Il y a deux boucles imbri- quées. La premiére affiche les variables affectées ("@” est exécuté 10 fois), et exécute la seconde boucle. La seconde incrémente A et multiplie A par F. Les résultats ne sont donc affichés qu’une fois sur dix. Le dernier affichage est A=90 et F la valeur de factorielle 90 (90!). On termine alors les deux bou- cles par le calcul de factorielle 100 (100!), mais la valeur n’est pas affi- chée. Si l'on fait "@”, on affichera A=100 et F=100! A titre d’informa- tion, le dépassement de capacité est obtenu pour la factorielle de 256 (2561). Un autre exemple utile % N= 1225313: K=3: 10#: 60# Q=N/K;R: X=1/R: K=K+2 "RE- TURN” ? DIVISION PAR ZERO % @ “RETURN” AFFICHAGE DES VARIABLES AF- S: @ ” AFFICHAGE DES VARIABLES AF- FECTEES : K=43 R X=00 La premiére ligne permet de chercher si le nombre N=1225313 est premier. Pour cela, on le divise par tous les nombres impairs a partir de K=3 et ceci 600 fois (on arrive ainsi a la racine de N). Il faut donc ajouter 2 4 K 600 fois (10# :60 #). Le quotient est Q, le reste est R. Si N nest pas premier, le reste R prendra la valeur zéro 4 un certain moment. L’ins- truction (X=1/R) permet d’interrompre le calcul cet instant (car il y a divison par zéro). Dans notre exemple, ceci se produit aprés 4 minutes de calcul. On affiche alors les variables, ce qui permet de voir que N=KxQ, c'est-a-dire que 1225313 = 997 * 1229 et n'est done pas premier. On essaye de méme de décomposer 1229 en facteurs premiers. Mais, cette fois, on reprend la main sans erreur. Le nombre 1229 est donc premier. Pour des grands nombres, le temps de calcul reste hélas prohibitif. Interruptions On sait déja qu’il est possible de pro- grammer des arréts (,), d’interrompre ou de reprendre T’affichage avec la barre d’espacement. On peut aussi arréter les calculs par CTRL-C. Cette interruption est non destructive, car elle n’est pas prise en compte n’im- porte quand. Si I’on fait CTRL-C du- rant l’affichage, le message d’inter- ruption apparait 4 l’écran et on retourne au niveau de commande. La valeur des variables (a cet instant) n’est pas modifiée. Si Pon fait CTRL-C au cours d'un calcul, on peut attendre l’interruption entre deux et une dizaine de secon- des. En effet, le CTRL-C n’est pris en compte que dans les divisions et les puissances, mais pas dans les multiplications. Dans le cas d’une af- fectation, si le calcul est interrompu, laffectation n’a pas lieu et la valeur de la variable demeure inchangée. Si le CTRL-C intervient au cours d'un calcul avec facteur répétiteur, il est difficile de savoir si l’interruption a lieu au cours d’un calcul (s'il y a */ ou” ” dans le calcul), ou si ’in- terruption a lieu entre deux répéti- tions. Il faut alors regarder la valeur des compteurs que l’on a_utilisés dans la boucle pour évaluer la posi- tion du point d’interruption Remarque: il n’est pas possible de reprendre un calcul interrompu. Soyez donc patients, car les temps de calcul sont parfois importants. Il peut aussi se produire des interrup- tions accidentelles. Si l'on tape la touche RESET, on se retrouve soit sous contréle de I’Applesoft (ROM Autostart), soit sous le contréle du moniteur (ancienne ROM). Pour retourner dans le Calculateur sans perdre le travail en cours, il faut faire "&” (a partir de l'Applesoft) ou CTRL-Y (a partir du moniteur). Si une erreur est faite dans une commande du DOS, on quitte aussi le Calculateur pour se retrouver sous contréle du Basic. La procédure de retour est la méme. Attention : si on fait RESET pen- dant l'affectation d’une variable, celle-ci sera incorrectement affectée; des erreurs pourront alors se pro- duire avec cette variable. Méfiez-vous par conséquent du RESET. Pour utiliser l’Applesoft et le Calcula- teur ensemble, i faut : - assembler le programme 4 l'adresse $66D0 (ORG $66D0 et OBJ &800) - aprés sauvegarde correcte du code binaire, faire BRUN; FAIRE CALL 26320 apparait a Yécran. Il faut alors faire : HIMEM:26320 : CALL 26320 ; : L?. TO Le Calculateur est alors protégé contre le Basic. Entrées-Sorties Si une imprimante est branchée sur le slot i, faire PR#i pour sortir les ré- sultats sur papier. La présentation & Timprimante n'est pas identique a celle de l’écran. Certains CR ne sont transmis qu’a lécran pour plus de lisibilité, mais les lignes ne sont pas sautées sur |’impri- mante. De plus, les trés grands nom- bres sont présentés par lignes de 80 caractéres sur l'imprimante. Si les sorties se font sur papier, on ne voit rien @ l’écran. Mais si votre interface d'imprimante permet de conserver l'image écran grace & un caractére de contréle, vous pouvez entrer ce caractére (sans tenir compte de l’erreur de syntaxe qu'il provo- quera). Tout doit fonctionner norma- lement. Exemples Voici le résultat d'une séquence de travail normale. Ce qui suit le signe pour-cent "%” est tapé au clavier par Putilisateur, suivi de "RETURN"; le reste est affiché par le Calculateur Entier. CALCULATEUR ENTIER VERSION 1.2 <06.01.1984> %?12345+ 128 =0124 68 S$ ZONE A SAUVEGARDER A$182C, L$0070 %A=-123456789: $ | @: B = A+A:@ ZONE A SAUVEGARDER $1700, [$0170 AFFICHAGE AFFECTEES A= —0123 4567 89 DES VARIABLES AFFICHAGE AFFECTEES, A= —0123 4567 89 B= —0246 9135 78 %?63/5 : ?-12%12 : 22 =12 = 03 = -0144 =0126 7650 6002 2822 9401 4967 0320 5376 ? VARIABLE 'C’ NON AFFECTEE %A= A+ —D ? PRIMAIRE INCORRECT %A=3/0 ? DIVISION PAR ZERO %A=5/3;A : 2A: 2—3/A =02 ? OPERANDE NEGATIF % A=0: 20# : 20# A=A+1 % 2A = 0400 %... etc... etc. DES VARIABLES * 100 :?C Résumé des régles syn- taxiques <Ligne> := <Commande>"RETURN” || <Commande DOS>"RETURN” <Commande> ::= { <Diése>}<Instruction> || <Commande> : { <Diése> } <Instruction> <Diése> = <Constante># <Instruction> ::= & |j, ||” |] <Affectation> || <Affichage> || <Rien> <Affichage > = $ || @ || 2<Expression> <Affectation> ::= <Variable>=<Expression> {:<Variable> } <Expression> ::= {-}<Primaire> ||{-}<Primaire> <Opérateur><Primaire> <Primaire> = <Variable> ||<Constante> <Variable> ::=<Lettre> <Constante> ::=<Chiffre>|| <Constante><Chiffre> <Opérateur> ::= +i-deldod <Lettre> = AIBICIDIE!FIG!H!I!J!K!L!MIN!O! PIQIRIS!ITIUIVIWIX!Y!Z Les messages d’erreur ? ERREUR DE SYNTAXE 2 INTERRUPTION DE L’UTILISA- TEUR Lutilisateur a fait CTRL-C. ? FACTEUR REPETITEUR INCOR- RECT Facteur > 255, ou il manque #. ? DIVISION PAR ZERO ? OPERANDE NEGATIF Les opérandes d'une division doivent étre positifs, ? RESULTAT TROP GRAND Le résultat du calcul a plus de 508 chiffres. ? EXPOSANT NEGATIF Pour une puissance, l’exposant doit étre positif. ? AFFECTATION INCORRECTE Il peut manquer le signe (=). ? PRIMAIRE INCORRECT ? VARIABLE ’x’ NON AFFECTEE La variable dont le nom est (x) n’est pas en service. ? EXPRESSION INCORRECTE ? MAUVAIS OPERATEUR NDLR: le Calculateur est trés utile pour lire le livre passionnant de Fran- cois Le Lionnais “Les nombres re- marquables”, chez Herman. Encore une fois, Pom’s vous offre un pro- gramme qui, a lui seul, se vendrait plus cher que l’'abonnement d'un an avec disquettes. Nous n’avons pas publié le programme source, car il y en aurait pour 15 pages en deux co- lonnes ... Le source, ainsi que la ré- capitulation, se trouve comme d’ha- bitude sur la disquette d’accom- pagnement du numéro. Les droits de auteur seront bien entendu établis sur la base de la longueur totale de Particle, incluant ces 15 pages non publiées. Calculateur Entier Code objet ¥840.1840 0840- AS 4C 8D F5 03 8D F8 03 0848- AS SE 8D F6 03 8D F9 03 0850- A9 09 8D F7 03 8D FA 03 0858- 20 58 FC 20 8C 17 C6 C1 0860- CS D2 C5 BA AO C3 Ci CC 0868- CC AO 87 00 A2 40 a9 08 0870- 20 24 ED 20 8E FD 20 8E 0878- FD A9 4C 8D 40 08 AS 8B 0880- 8D 41 08 AS 08 BD 42 08 0888- 4C D3 03 20 58 FC 20 9B 0890- 17 AO AD AD AD AD AD AD 0898- AD AD AD AD AD AD AD AD O8A0- AD AD AD AD 8D AO C3 C1 O8A8- CC C3 DS CC C1 D4 CS DS 08BO- D2 AO C5 CE D4 C9 CS D2 O8B8- 8D AO AD AD AD AD AD AD 08CO- AD AD AD AD AD AD AD AD O8C8- AD AD AD AD 8D AO AO AO O8DO- AO AO AO AO DE CS D2 DB O8D8~- CS CF CE AO AO B1 AE B2 O8EO- 8D AO AO AO AO AO AO AO O8E8- AD AD AD AD AD AD AD AD O8FO- AD AD AD AD 8D AO AO AO O8F8- AO AO AO AO DO C1 D2 AO 0900- AO CA AE AO C4 DS CD C1 0908- 8D AO AO AO AO AO AO AO 0910- AD AD AD AD AD AD AD AD 0918- AD AD AD AD 8D AO AO AO 0920- AO AO AO AO BC BO B6 AE 0928- BO B1 AE Bl B9 B& B4 BE 0930- 8D AO AO AO AO AO AO AO 0938- AD AD AD AD AD AD AD AD 0940- AD AD AD AD 8D 8D 00 A2 Pom’s n° 12 0948- 7F Ao 0950- FA AS 0958- 8D 98 0960- FC 20 0968- AD AD 0970- AD AD 0978- AO C3 o980- D4 cS 0988- C9 CS 0990- AD AD 0998- AD AD O9A0- AO D2 O9A8- AO D3 O9BO0- D4 C9 O9B8- AD AD o9Cco- AD AD o9cs- 00 De O9D0- ag 00 osp8- 20 D1 O9EO- FO 16 OSE8- A& 68 O9FO- 8A 48 O9F8- 68 DO OA0O- 48 AD OAO8- AS AS. 0A10- 00 FO OA18- DF 09 OA20- DF 15 0A28- 18 20 0A30- 53 OE OA38- OA 6D OAagO- D1 15 0Ad8- 8D 10 OASO- 15 90 OAS8- 18 OA 0Aa60- 90 03 OA68- 90 03 OA70- 20 D1 0A78- 18 90 OA80- 18 20 Oags- 4C 45 OA90- D3 15 OA98- 18 48 OAAO- DO 03 OAA8- FE 17 OABO- 7F OC OAB8- 8D C2 OACO- OA 4C OAC8- 06 20 OADO- 8E FD OAD8- 20 C9 OAEO- 20 3A OAE8- 5A 60 OAFO- 60 7F OAF8- CF DO OBOO- 17 88 OBO8- 88 88 OB10- AO AO OB18- AO AO 0B20- 20 C9 OB28- 20 3A OB30- FF 8D OB38- FB 20 OB40- D8 09 OB48- FF 15 OB50- CS AO OB58- CS C7 OB60- AO Ci OB68- FD AS OB70- 17 ac OB78- 20 DA OB80- FD 20 OB88- D& 09 OB90- FF 15 OB98- C9 C3 OBAO- CS D3 OBA8- C2 CC OBBO- CS C3 OBB8- 8D 00 OBCO- FF 20 Pom’s n° 12 fore} 00 18 3B AD AD c1 DS D2 AD AD cs DS cs AD AD 20 48 15 AA 8D 20 1B FF 385 FS 20 30 co 10 10 29 18 31 30 4c ac 15 03 co 16 48 20 ac FO 8A OA FF 20 a5 FF 60 AO 03 88 88 AO AO is FF 10 B7 20 20 font cl Aa 2c ec FD 8E 20 20 ca AO cs Da Ag D7 9D 8D 4c 17 AD AD cc D2 8D AD AD DO D2 8D AD AD 3A 48 co cA D2 ay 68 48 33 4c co 79 15 18 18 OF 20 OE 03 45 45 29 4c 15 AD cE ce Da 06 ry BD FF FD Fo FO 20 638 00 4c 88 88 AO 8D FO 20 co 15 co 8c AO D2 00 20 Aq AD FD co BC cl Dé D3. cs cL OB 1c oo co AQ AD AD c3 AO AO AD AD D2 AO AO AD AD FF 48 BA 68 15 1s DO Ao DF 15 29 20 aD 8D 18 co 10 ac 16 16 OF 45 ca D2 10 15 09 for AA (ors) 20 ac 17 03 8c 4F 8B 88 88 AO 00 03 3A AD 8D 15 17 D3 ca Ag DA 00 98 20 15. 17 c7 font AO 05) 8D 20 18 18 09 aD AD AD DS cs AD AD AD co D3 AD AD AD AZ 4c FO 8D 48 4c 19 o1 6A 09 FO OF DF 10 10 6D 15 18 45 6D 8D 18 16 Ag 15 18 20 AZ 10 BD 18 cy ca 4c 4c 17 6F oc 08 88 88 Ao 4c ac FF 00 10 FO DA C1 cS 18 FD AD 18 F9 FO c1 cs D2 ci D3 co 3A CA Ag 20 AD AD AD cc CE AD AD AD D3 CF AD AD AD FS DF 3B D3 98 1A 48 48 FD 68 Bo 8D 15 18 18 10 20 AD 16 10 10 6D 8D FO 48 AD Di 05 Fa 04 aD 15 OA Da FF 82 4E FD 20 88 AO AO Ds FF 20 co co 03 CF DS D2 20 20 99 20 17 03 ce AO co ce BA OB 15 co ee 29 bo FD 20 Ag 10 20 oc 25 AA FD FE 838 £8 AO 20 Di Fo 9A OB OB EF ai for} 16 04 bo BO 20 ac OA 20 oD 2c AD 2 18 2c AD 18 03 00 for) Ag 8D 18 18 23 AS EE 18 2B EE 13 DL 15 FF OA bo o1 02 03 04 05 06 18 co 20 DF 03 OA 4c co 2E AD OE 4c 15 04 Aa F9 ry 68 co FD 20 ag FD 2F aD OF FF DA 09 17 FO Ag AD 22 3A BO ag eo 1F i8 20 4c 15 16 AA 15 39 AD i8 AD 18 2F Ds 12 DO 6D 2A 2F 8D 8D 18 27 EE 18 co EC 2c 20 60 2B 23 1B 13 OB 03 Da 20 OE BO 03 BD 17 Ag Ey 18 FE OE 18 FF cD ac AA Ag Do BD FD bo BD oc FE 20 EO 20 ac 20 4c 2D 20 OE48- DO FA 88 DO F4 EE 13 18 OESO- 4C 33 OE EE 13 18 4F 13 OES8- 18 A9 00 38 ED 13 18 8D OE60- 2D 18 AD 2E 18 8D 72 OF OE68- AD 2F 18 8D 73 OF AE 2D OE70- 18 BD FF FF C9 00 DO 09 OE78- EE 2D 18 E8 DO F3 CE 2D OQE80- 18 60 AE 14 18 CA DO 03 OE88- 4C A6 OE CA DO 03 4C CA OE90- OE CA DO 03 4C D8 OE CA OE98- DO 03 4C 4F OF CA DO 03 OEAO- 4C 2A 10 4C 51 10 AD 1C OEA8- 18 CD 20 18 DO 06 8D 2c OEBO- 18 4C 50 12 20 1B 12 DO OEB8- 03 4C BS 13 90 09 20 49 OECO- 14 20 D4 13 20 70 14 4c 4 OEC8- 98 12 AD 20 18 49 FF 8D OEDO- 2C 18 8D 20 18 4C A6 OE E OED8- 20 1B 12 BO 06 20 49 14 OEEO- 20 D4 13 20 BS 13 AD 1C OEE8- 18 4D 20 18 8D 2C 18 AD OEFO- 1E 18 8D 76 12 8D S54 13 OEF8- AD 1F 18 8D 77 12 8D 55 OFOO- 13 AD 22 18 8D 19 13 AD OFO8- 23 18 8D 1A 13 AD 2E 18 OF10- 8D 79 12 8D 73 12 AD 2F OF18- 18 8D 7A 12 8D 74 12 20 OF20- 12 13 FO 08 20 6E 12 CE OF28- 15 18 DO F8 20 4E 13 CE OF30- 1D 18 DO 03 4C A6 16 20 OF38- 12 13 FO 08 20 6E 12 CE OF40- 15 18 DO F8& 20 4E 13 EE OF48- 21 18 DO D3 4C 62 OF aD OFSO- 20 18 FO 03 4C 6D 16 AD OFS8- 1C 18 FO 03 4C 6D 16 AD OF60- 2D 18 C9 FF DO 16 AD 2E OF68- 18 8D 75 OF AD 2F 18 8D OF70- 76 OF A2 FF BD FF FF DO OF78- 03 4C 89 16 20 49 14 20 OF80- D4 13 20 70 14 AS 01 8D OF88- 1A 18 AS OO SD 1B 18 AD OFSO- 1E£ 18 8D 63 13 8D 31 13 OF98- 8D 3E 13 AD 1F 18 8D 64 OFAO- 13 8D 32 13 8D 3F 13 AD OFA8- 26 18 8D 7A 13 8D 89 13 OFBO- 8D A7 13 8D AC 13 8D 9E OFB8- 13 8D A3 13 AD 27 18 8D OFCO- 7B 13 8D 8A 13 8D A8 13 OFC8- 8D AD 13 8D 9F 13 8D Aa OFDO- 13 20 1B 12 FO 02 BO 11 OFD8- 20 SD 13 EE 1A 18 DO 06 OFEO- EE 1B 18 20 B7 15 4C D1 OFE8- OF AD 1A 18 DO 03 CE 1B OFFO- 18 CE 1A 18 AD 1A 18 OD OFF8- 1B 18 FO 1C 20 2A 13 20 1000- 74 13 CE 25 18 20 1B 12 1008- FO 02 BO DD 20 CA 12 20 1010- 99 13 20 B7 15 4C 05 10 1018- 20 62 OF 20 97 14 20 49 1020- 14 20 D4 13 20 70 14 4c 1028- 62 OE 20 22 14 20 ES 14 1030- 20 BS 13 AD C6 13 8D 44 1038- 10 AD C7 13 8D 45 10 A2 1040- FF A9 01 SD FF FF 20 0C 1048- 15 AD 20 18 FO 03 4¢ CS 1050- 16 AD 21 18 18 69 O02 10 1058- 03 4C A6 16 AD 22 18 8D 1060- C2 10 8D 7C 10 AD 23 18 1068- 8D C3 10 8D 7D 10 ag 00 1070- 8D 18 18 8D 19 18 8D 17 1078- 18 AZ FE BD FF FF 48 29 1080- FO 4A 8D 16 18 4A 4A 6D 1088- 16 18 8D 16 18 68 29 OF 1090- 6D 16 18 8D 16 18 20 FF 1098- 11 20 FF 11 AD 16 18 8D 10A0- 18 18 AD 17 18 8D 19 18 10A8- 20 FF 11 20 FF 1i 20 FF 10BO- 11 20 07 12 20 FF 11 20 10B8- 07 12 AS 00 8D 17 18 A2 40CO- FF BD FF FF 48 29 FO 4A ee UN 19 OEE. 10¢8- 10D0- 10D8- 10E0- 10E8- 10FO- 10F8- 1100- 1108- 1110- 1118- 1120- 1128- 1130- 1138- 1140- 1148- 1150- 1158- 1160- 1168- 1170- 1178- 1180- 1188- 1190- 1198- 11A0- 11A8- 11B0- 11B8- 11¢0- 11¢8- 11D0- 11D8- 11E0- 11E8- 11FO- 11F8- 1200- 1208- 1210- 1218- 4220~: 1228- 1230- 1238- 1240- 1248- 1250- 1258- 1260- 1268- 1270- 1278- 1280- 1288- 1290- 1298- 12A0- 12A8- 12B0- 12B8- 12C0- 12C8- 12D0- 12D8- 12E0- 12E8- 12F0- 12F8- 1300- 1308- 1310- 1318- 1320- 1328- 1330- 1338- 1340- 8D 8D 18 14 11 2F 30 20 18 14 ES 20 2c 20 14 19 FF AG AD 68 AE a. 22 AD 13 ce 18 70 18 16 AD 18 DA 8D FF AD 10 4c 13 2E AD 18 19 18 60 1F 8D 12 FF AD 18 79 8D Fa 9D 1D 2D FO AD 18 C1 8D Fa 3D 62 AD 18 2F AD 18 BD FF 20 18 7E DO 18 7 DO co 16 16 8D 18 AD 18 14 Ds oD 20 14 BE 18 BS 20 18 48 16 2D ac 2D AD 18 BD DO 68 14 ED Ag 2E 8D an DB 39 2c AD AS 20 16 16 AD 18 FO 18 438 AE 1E 8D 12 7A 18 FF 18 03 1E 8D 12 c2 38 FF OE 1F 8D 18 22 8D FF 9D 62 60 FF F2 60 FF F2 00 18 18 16 co 19 6E 20 OE 18 49 20 14 8D 13 ag 6E AD AD 18 BS 18 2F 8D 18 EF FG FO ac 18 8D 18 Ds 8D 11 rE 18 1D 16 22 18 18 17 60 06 8D 12 1D DO 18 77 8D BD FF cD 8D 4c 18 BF i2 BD FF 18 FF 8D 03 FF FF OE AO FF 4a AO FF AE Do 4a 68 18 05 18 BE 20 18 B7 20 1A 20 14 18 19 1A 6D 13 AD 18 8D 8D FF AD 03 62 18 1D 8D 11 54 8D FF 8D 18 CE 14 2E 6D 18 AD BO 18 46 AD 03 8D 12 8D FF cA 2D 2D 62 8D BB 8D FF cA 1E 8D 12 00 8D 13 FD FF AD 04 ES 4A 04 Es aD 09 4A 23 20 FO oD 18 14 oc FO 20 15 70 18 D4 Ag 18 18 18 18 Ag 2E 11 8E 33 2c 20 OE BO 18 D7 AD 13 SS ca 4c cs 1D ac 17 18 6D 1D 02 8D 12 23 BD ES 76 AD 12 74 FF Do 18 18 OE BE AD 12 BC a DO 18 FD 8D 13 02 A2 FF CA 2D 18 bo 4A 18 Do 18 EE 6D OF 07 03 6E 20 1s Da ac 14 20 13 00 90 FO 18 8D 18 8B 8D a1 FF 18 12 38 03 AE 11 1E AD 13 E8& 18 02 18 62 18 18 18 38 45 AD 18 FF DO 22 2E AD 12 7D Fa 90 CE 4c 12 2 AD i2 FD Fa 8D 12 FO 8D 13 FE FF DO 18 AE FA 4A AE FA BD 1D 16 6D 12 4c 18 18 97 AD OE Eo 60 49 20 18 02 03 4E 90 21 8D 11 19 8D 8D 13 aD ac 2D AD 18 BD DO 68 BO 20 OE 60 8D 18 cD 60 12 8D FF FS aD 18 2F A2 FF Ds 03 2D AS AD 18 2F AZ FF Da FC AD 12 FA aD FS 9D Fl 8D 21 6A 8D 1D 6A FF 18 1348- 1350- 1358- 1360- 1368- 1370- 1378- 1380- 1388- 1390- 1398- 13A0- 13a8- 13B0- 13B8- 13C0- 13¢8- 13D0- 13D8- 13E0- 13E8- 13F0- 13F8- 1400- 1408- 1410- 1418- 1420- 1428- 1430- 1438- 1440- 1448- 1450- 1458- 1460- 1468- 1470- 1478- 1480- 1488- 1490- 1498- 14A0- 14a8- 14B0- 14B8- 14C0- 14C8- 14D0- 14D8- 14E0- 14E8- 14F0- 14F8- 1500- 1S08- 1510- 1518- 1520- 1528- 1530- 1538- 1540- 1548- 1550- 1558- 1560- 1568- 1570- 1578- 1580- 1588- 1590- 1598- 15A0- 1S5a8- 15BO- 15B8- 1sco- Do 18 FA A2 88 18 FF DO BD 25 60 69 FF FS 8D 13 E8 8D 91 AD 18 1c ac 15 22 8D 18 8E AD 18 35 AD 15 1F 8D 15 1D AD 18 94 AD 18 26 8D 15 24 8D 18 92 AD 18 21 8D 15 27 8D 18 31 AD 18 28 ac BD 18 94 BD 18 11 2E 8D 15 2c 9D BD F7 co 10 B7 AD 06 F3 A2 a8 FF DO 4c SE Fa FF 18 Fs 02 69 Da ce A2 Do 2D 15 1E 8D 18 8E AD 18 35 AD 15 8D 15 1D AD 18 94 AD 18 22 8D 15 20 8D 18 92 AD 18 1D 8D 15 23 aD 18 91 AD 18 24 ac is 28 8D 18 8E 2E 8D is 2c 8D 18 18 92 BD 2D FF 60 10 co 15 00 8D 1D 3E F4 FF cE 13 FF 25 co DO A2 FF 9D 82 AD Ag 8D 60 2F 8D 15 2D AD 18 94 aD 18 1E 8D 15 1c 8D 18 92 AD 18 21 8D 15 2F ED) 18 31 AD 18 1c 4c 15 22 8D 18 8E AD 18 95 AD 15 8D 15 2D 23 8D 15 2F 8D 18 iF 91 BD 18 2c 4c 9D B7 co 00 10 10 co 18 FF 60 FF 1D AO CA 18 00 F3 FF Fe FF 13 2F 00 2c AD 18 94 AD 18 2E 8D 15 2c 8D 18 92 AD 18 2D 8D 15 23 18 91 AD 18 2c 4c is 1E 8D 18 8E AD 18 95: AD 15 2F 8D as 2D AD 18 94 AD 18 1F 91 AD 18 2c ac ry 15 2E 8D 18 8E FF 15 AO co co ry 4c 60 FF AO cA 18 04 bo AE DO CE BD CA FF AD 18 9D 2E 8D 15 8D 18 92 AD 18 21 8D 1s 2F 8D 18 91 AD 18 20 4c 15 2E 8D 18 8E AD 18 95 AD 15 2B 8D 15 29 AD 18 94 AD 18 2E 8D 1s 2c 8D is 2E 8D 18 8E OA AD 35 AD 15 FF 48 DO 10 68 co 1c AO CA 04 Do AE 18 FA 25 09 25 FF BD CA 2E 8D FF AS 18 92 AD 18 1D 8D 15 23 8D 18 91 18 2c 4c 15 22 8D 18 8E AD 18 35 AD 15 27 8D 15 25 AD 18 34 AD 18 2E 8D 15 2c 8D 18 92 AD 18 29 OA BD 18 os BD 1s AA 2F 8D 15 2D A2 E8 AD OE FB 60 83 16 04 DO 18 FA 1D A2 a8 18 EE 18 FF FF bo 18 67 FF FF 8D 15 1F 8D 18 91 AD 18 20 4c ze 8D 18 AD 18 95 AD 15 23 8D 15 21 AD 18 94 AD 18 28 8D 28 8D 18 92 AD 18 25 8D 15 2B 8D 18 AA 2F 8D 15 2D AD AD 18 34 AD 18 00 DO 00 8D 20 438 DO 68 15c8- 15D0- 15D8- 1SEO- 15E8- 15FO- 15F8- 1600- 1608- 1610- 1618- 1620- 1628- 1630- 1638- 1640- 1648- 16S0- 1658- 1660- 1668- 1670- 1678- 1680- 1688- 1690- 1698- 16A0- 16A8- 16B0- 16B8- 16c0- 16C8- 16D0- 16D8- 16E0- 16E8- 16FO- 16F8- 1700- 1708- 1710- 1718- 1720- 1728- 1730- 1738- 1740- 1748- 1750- 1758- 1760- 1768- 1770- 1778- 1780- 1788- 1790- 1798- 17A0- 17A8- 17B0- 17B8- 17C0- 17¢8- 17D0- 17D8- 17E0- 2 7ES- 17FO- 17F8- 1800- 1808- 1810- 1818- 1820- 1828- 1830- 1838- 1840- 60 15 co D1 BA Di DB 8c cs DS fore) BE DS cs cs 8D 8D DS co c3 8D 8D CE Da 09 co Do 8D 17 cc DBO 8D 8D C1 D4 09 ce CF D2 4c AO cs. cs 09 Dé AO 8c c1 8D 17 cs CE cs 8c D6 D2 00 Bl 4c 17 EB 60 04 00 20 00 20 AS 04 1D 60 co 8A 17 19 17 9D 60 E6 00 EE AD 8D as 90 15 30 17 DS CE 4c AO DO AO D3 D2 FF FO co 02 cs 02 8D D2 D4 co cso Da cc cl 4c AO AO cs. D2 4c AO cs ce 8c co D2 00 BF cl C7 4c AO Da ce 8c cs AO 3 ok] D2 co D4 20 D2 00 Av ce 00 BE D3. CF 8D 8D cs D4 cso 20 a2 CF 8s BD 85 19 17 19 17 3D 60 E6 8D AC 54 C7 09 D7 o1 1B DO 15 FF 02 BO 18 fon 18 BF AO c1 09 CE cs AZ Da co D2 DS D2 co CF AO 8D 47 D3 AO ac Ao D4 D2 co cs AO 8D 17 c3 co D4 20 co CE 8D 8c co 68 AO cs 4c AO co D2 00 BF D3 cs 09 BF 20 17 1B 03 1A FO ac FO 4c 03 AS 19 ac AZ oc 17 20 AS AG 02 bo co co BO 60 BO 60 AO ca Ds 20 D4 CF DS cs 09 c1 cs. D2 cs 09 BO CE 8D co DA co AO C1 09 Ds CE 8D ED D4 cs 8c cD c3 8D 17 cl CE ca cs cs CF D2 ac AO AO DS. 20 17 AA 20 86 o1 4c 09 C1 09 Da o1 1B DO Da 20 60 FO 60 1A ac E6 Pom’s n° 03 AO BA o1 38 01 38 cs cs cs. 8c cs. CE D4 20 c3 Do AO ca 20 cs cs BF CF cs 09 cs D4 CE 20 cs 00 BF c3 8D 17 C1 CE 00 8D c2 ED CF Da fol] CE cs co cD D2 AA 20 17 DF 1c 85 F2 20 17 20 17 AS. AS 02 FD OA OB AO FD BA 3D Ad 1A EE FO 60 60 60 60 60 D2 AO 8D 17 D2 AO co D2 8c D4 cs cs. Da 8c D2 C7 4c AO CE D2 20 D3 D2 ca 8c CF C7 ac D4 CF 8D 8D co D2 4c BF FD CE cs DO AO ca. os G1 DBO 8D a? DF 20 17 84 19 17 ED 60 FO 60 1A ac E6 AS 42 ca 00 20 AS 04 1D 60 D3 F1 20 co 20 co 20 D2 D3 8D D2 c4 cc ed 17 cs. D4 CE 8D 17 C1 font cs ca AO CF 8c DS CF 8D D3 CL co cs D2 00 BF D2 D2 co AO cs 20 AO cs D2 co D4 DS cs 8D 20 17 B1 ac 1D AO FD AO FD BA sD Aa 1A A4 OB OA Fa 19 ol 60 00 EXP(PIxSQR(163)) est-il entier ? Le probléme Ii y a quelques années, la revue Sciences & Vie annoncait dans ses récréations _ mathématiques que EXP(PIxSQR(163)) était entier et va- lait +262.537.412.640.768.744, en avangant que des calculs poussés sur ordinateur n’avaient donné que des chiffres 9 dans les 2 millions de pre- miéres décimales. La revue parlait méme d’une démonstration basée sur le nombre d’Euler (nombre irra- tionnel, comme PI et e). Calcul sur TI 58 Je voulais en avoir le coeur net. Aussi, en 1979, j'attaquai le pro- bleéme’muni de ma calculatrice TI 58. J'utilisai pour cela un programme de multiplication de nombres de 50 chif- fres. Comme toutes les autres opéra- tions étaient manuelles 4 cause de la faible capacité de la calculatrice, j’uti- lisai de nombreuses astuces pour cal- culer la racine carrée et l’exponen- tielle. Aprés un aprés-midi de calcul (et un autre pour vérification), j’ob- tins un résultat 4 50 chiffres (donc 31 décimales, dont au moins 25 de- vaient étre bonnes en tenant compte des erreurs d’arrondi). Qu’obtins-je ? Calcul en Basic En 1981, muni d’un Apple, je déci- dai de confirmer ce résultat avec un programme Applesoft (joint sur la disquette d’accompagnement de ce numéro, afin que les lecteurs intéres- sés puissent "l’éplucher”). Ce pro- gramme utilise des tableaux pour sto- cker, par tranches de 4 chiffres, des grands nombres. De plus, il posséde des routines pour faire des multiplica- tions et additions de grands nombres ou des divisions de grands nombres par une constante d’au plus 4 chif- fres. La, les résultats sont obtenus bien plus rapidement (14 mn pour 80 chiffres, 5 mn avec un pro- gramme compilé). Le Calculateur Entier Enfin, tel Zorro, arrive le Calculateur Entier de Jacques Duma, muni de la division de grands nombres; je vais montrer dans les lignes qui suivent a quel point il devient alors facile de programmer ce calcul. NDLR: Olivier Herz a rédigé son ar- ticle a partir de la version 1.0 du cal- culateur. La lecture de cet article a amené Jacques Duma 4 réaliser et a nous envoyer la version 1.2, publiée dans ce numéro. Cette version a Pom’s n° 12 ajouté la pause entre deux instruc- tions (,), introduction des remarques (”) et surtout la multiplication par une puissance de 10 (’). Ainsi, le programme adapté 4 cette version calcule-t-il le résultat en cinq minutes de moins que EXP.EXEC ! Nous avons décidé de ne pas modi- fier le texte original d’ Olivier pour lui garder sa virginité initiale (au texte, bien sdr). Le lecteur relativisera donc certaines remarques et pourra d’au- tant mieux apprécier la qualité des. analyses d’Olivier et l'utilite de ses observations. 1 - Comme on travaille uniquement sur des nombres entiers, il va falloir utiliser une constante multiplicative pour transformer des nombres déci- maux en nombres entiers. Soit par exemple, pour des calculs sur 100 décimales (on pourrait aller presque jusqu’a 254=508/2 décimales) : K=10 100 Bien entendu, K n’est pas nécessaire- ment une puissance de 10. Voir 4 ce sujet la remarque (2). 2 - Pour calculer la racine carrée de 163, on utilise la méthode de New- ton, par approximations successives avec la formule User = (U,+163/U,) / 2, en prenant 13 comme approximation de départ. Soit : R=K*K: R=163«R: U=13«K: 7#: X=R/U: U=X+U: U=U/2 7 itérations suffisent pour avoir 100 bonnes décimales. 3 - PI est supposé connu (le Palais de la Découverte publie 2000 déci- males sur une carte postale). Et l'on calcule PlxSQR(163) : R=3 14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280 34825 34211 70679*U : R=R/K 4 - On obtient 40.109... et l'on va calculer EXP(40.109...) = EXP(40) * EXP(0.109...). On ne garde donc que la partie décimale du résultat : X = 40«K: R = R-X 5 - On calcule son exponentielle par développement limité avec la formule EXP(X) = 1 + X + X 2/2 + X'n/n!=somme des U,, avec Up=1 et U, = U,—1*X/n: S=K: I=0: U=K: 45#: I=I+1: U=UsR : U=U/K: U=U/1: S=S+U On calcule suffisamment de termes (ici 45) pour que U,, soit négligeable. 6 - On calcule de la méme fagon, avec ici X=1 Olivier Herz E= 0: U=K: 70#: I=I+1: U=U/: E=E+U 7 - Il ne reste plus qu’a calculer et fournir le résultat (avec 100 décima- les, dont peut-étre 80 a 90 de signifi- catives): S=SxE: S=S/K 2S Que pensez-vous du résultat ? Scien- ces & Vie n’avait-il pas publié son ar- ticle dans le numéro d’avril ? Remarques (1) Tous ces résultats peuvent étre obtenus automatiquement grace au fichier EXP.EXEC. Il suffit de se met- tre dans le calculateur et d’EXECuter ce fichier pour ce faire; on obtient le résultat (ici 100 chiffres) en un peu plus de 20 minutes. Faire MON CLO au préalable si lon veut voir Pavancement des calculs. On peut en effet utiliser de véritables programmes pour ce calculateur grace aux fichiers EXEC. Utilisez Ap- plewriter II ou reportez-vous au nu- méro 3 de Pom’s (p. 55) ou au re- cueil (p. 142) pour fabriquer de tels fichiers. (2) Au vu de ces calculs, il semble qu’on puisse émettre un regret pour le calculateur. On aurait gagné beau- coup de temps dans les calculs pour nombres non entiers si l'on avait eu une opération donnant, a partir d’un grand nombre N et d’un entier (posi- tif ou négatif) K de 3 chiffres au plus, le résultat N*(10 K). Les nombres étant codés en BCD, ce calcul aurait été ultra-rapide. (3) Bien entendu, en utilisant des as- tuces, on peut aller bien plus vite. Mais la méthode utilisée présente lavantage d’étre la plus simple. Liste de EXP.EXEC K=10°100 R=K+K: R=1634R: U=13«K: 7#: X=RU : U=X+U : U=U/2 R=3 14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280 34825 34211 70679«U : R=R/K X = 40«K:R=R-X K: I=0: U=K: 45#: I=I+1: : U=U/K: U=U/1: S=S+U. : IsI+1: 40# : S=SsE : S=S/K 2S Analyse de Magic Mailer Guy Lapautre Présentation du produit Magic Mailer (Autocourrier pour Ia version francaise) est un_ logiciel complémentaire @ Magic Window (Autotexte), distribué par ARTSCI Inc. et diffusé en France par Ordina- teur Express. Nous emploierons dans la suite les noms francais La version que nous avons testée est théoriquement adaptée a l'Apple //e, mais pas plus que la version 2 d’Au- totexte: elle n’utilise pas les possibili- tés nouvelles du clavier. C'est d’ail- leurs moins ennuyeux que pour Autotexte, car les mouvements de curseur sont beaucoup moins fré- quents. C’est pourtant dommage Il convient de remarquer qu’Auto- courrier est exclusivement destiné a Timpression et ne permet de créer aucun texte ni fichier. L’utilisateur est censé utiliser Autotexte pour créer les textes proprement dits et les fichiers (bien qu'il soit possible, dans certai- nes conditions, d'utiliser des fichiers exogénes, en créant un “moniteur”). La présentation sous reliure est cor- recte, sans avoir le raffinement de nombreux logiciels pour Apple. La documentation est rédigée en an- glais. Une traduction en francais est également fournie (avec quelques adaptations). Les auteurs préviennent qu'il s’agit d'une version provisoire. Nous y avons effectivement trouvé un certain nombre d’erreurs ou im- propriétés. Telle qu'elle est, elle a le mérite d'exister. Fonctionnalités de base Autocourrier est avant tout un "adresseur automatique”. Il permet d’adresser commodément des lettres- type a toutes les personnes enregis- trées dans un fichier, ou & une sélec- tion d’entre elles. La sélection, s'il y a lieu, se fait 4 partir du contenu de certains champs, avec une trés large combinaison de conditions logiques. Allant un peu plus loin, il est possible de faire figurer conditionnellement des mots, membres de phrases ou paragraphes permettant de personna- liser les lettres. Les données éditables sont de 4 types : @ des textes figurant dans la “lettre” créée sous Autotexte: @ des données figurant dans le fi- chier associé: e@ des "constantes”, en particulier une date; ® des données entrées au clavier au fur et a mesure de l'impression. En revanche. Autocourrier__ ne comporte strictement aucune possibi- lité de calcul. ce qui interdit son em- ploi pour des opérations, méme trés simples, du type facturation ou édi- tion de devis. Le document a éditer Créé sous Autotexte. il se présente comme un document normal dans lequel on aurait opéré un certain nombre d’aménagements. Des zones sont réservées aux don- nées issues du fichier: elles sont repé- rées par des identifieurs que l'on re- trouve dans le “moniteur™ du fichier. Ces identifieurs permettent en outre de sélectionner l’édition de portions de texte selon le contenu des champs du fichier associé, de jouer avec les majuscules et minuscules. Des symboles de justification peuvent étre introduits dans le texte. si des zones de longueurs variables font que la justification systématique faite sous Autotexte ne puisse pas tou- jours convenir. Des symboles spéciaux peuvent étre utilisés, par exemple pour les ehsem- bles titre‘nom/prénoms, ou la date. Ces options sont certes intéressantes. mais on aboutit assez vite 4 un texte ésotérique si on veut aller loin dans les possibilités du logiciel Le fichier associé Quill soit créé sous Autotexte ou adapté a partir d'un fichier exogéne, ce fichier comporte un premier enre- gistrement vide, qui indique sa struc- ture (en rappelant que les identifieurs utilises sont ceux qu'on retrouve dans le texte) Bien entendu, rien n’interdit d’avoir un fichier comportant des rubriques non utilisées dans un texte, mais qui pourront l'étre dans un autre (au méme titre que le texte peut contenir des identifieurs non présents dans le fichier, et qui correspondront a des données 4 entrer au clavier) Le fichier, considéré comme un véri- table texte par Autocourrier, est par définition logé en mémoire centrale avec le texte lui-méme. Il ne saurait donc étre volumineux ! Cette limita- tion en rend l'emploi difficile pour de grosses applications professionnelles. Il existe toutefois un palliatif, avec Putilisation d'une forme de chainage Signalons par ailleurs qu'on peut fort bien travailler sans fichier, en rentrant au clavier les données pour lesquel- les des identifieurs ont été placés dans le texte, ce qui est une solution séduisante pour des applications de petit volume, en permettant une per- sonnalisation de lettres a peu de frais, au niveau d'applications “per- sonnelles/professionnelles” Utilisations Deux options de base aménent a quatre modes d’exploitation : © en continu ou cas par cas: ® tout le fichier ou une sélection. Dans la pratique. deux d’entre elles sont particuligrement utiles @ en continu avec sélection (si on peut exprimer la sélection sous forme de critéres logiques): © cas par cas et tout le fichier (per- mettant une sélection a l'examen de chaque enregistrement). Voilé un des points forts d’Autocour- rier, d’autant plus que les possibilités de sélection logique sont trés éten- dues et, comme le disent diailleurs les auteurs de la documentation. “plus simples @ mettre en oeuvre qu’a expliquer” (un effort pourrait cependant étre fait pour clarifier les explications...). En résumé Autocourrier est un honnéte systeme d'adressage automatique, dont deux points forts sont les larges possibilités de sélection de rubriques etiou de paragraphes, et un systéme trés complet de sélection dans le fichier associé, On regrettera principalement un cer- tain ésotérisme des textes si on utilise beaucoup d’options, ainsi que l'ab- sence compléte de fonctions de cal- cul. Enfin, comme dans le cas d’Au- tocourrier. il est dommage que les auteurs n’aient pas pris en compte les possibilités accrues offertes par le clavier de l'Apple //e. a Pom’s n° 12 Puisque nous n’avons pas été sub- mergés par un courrier nous intimant ordre de mettre fin sur le champ a cette série, nous la poursuivrons sans plus attendre par l’examen de nou- velles instructions choisies dans le ré- pertoire du langage assembleur. Les instructions de comparaison Elles jouent en assembleur le méme réle fondamental qu’en Basic, en permettant d’orienter le programme vers différents traitements selon le ré- sultat de tests effectués sur des varia- bles caractéristiques. On ne peut toutefois comparer direc- tement deux variables quelconques, par exemple le contenu de I'adresse $32 avec celui de l'adresse $303, ni une variable quelconque 4 une va- leur donnée, par exemple le contenu de l'adresse $18 et la valeur #$A0. En fait, la comparaison "stricto sensu” n'est possible qu’entre l'un des registres du microprocesseur (ac- cumulateur, registre X ou registre Y) et “autre chose” (variable ou cons- tante). Il faut cependant noter que certaines instructions agissant sur une case: moire, sans lien direct avec une véri- table comparaison, peuvent donner lieu a des tests significatifs par le biais de ce que nous avions appelé “le dernier résultat”, dans l'article précé- dent, lors de l'examen des instruc- tions BEQ et BNE. Nous en trouve- rons d’ailleurs un exemple plus loin. L’assembleur se distingue en outre du Basic en ce que l’opération de comparaison est réalisée séparément du test effectué sur son résultat. Ainsi, alors que l'on fait "IF A=B THEN...” en Basic, on écrirait en as- sembleur une séquence du type: "Comparer A et B” puis "Si le résul- tat de la comparaison est l’égalité alors...”. Le microprocesseur soustrait en fait B de A (mais sans changer la valeur de A), et positionne le “der- nier résultat” en conséquence; le test porte donc en définitive sur la valéur de ce “dernier résultat”. Pour ce qui est des tests autorisés, nous ne retiendrons pour I'instant que ceux qui ont déja été évoqués dans larticle précédent, a savoir Tégalité (testée par BEQ, soit "der- nier résultat” = 0) et la différence (testée par BNE, soit “dernier résul- tat” <> 0). Nous traiterons des autres possibilités dans un prochain article, dans lequel sera précisée la Pom’s n° 12 Initiation a l’assembleur (2) nature réelle de notre fameux “der- nier résultat”. Comparaison avec l’accumula- teur Le code “mnémonique” de T'instruc- tion est CMP, ce qui suffit pour indi- quer que Tun des termes de la comparaison est l’accumulateur. Le second terme dépend de ce qui suit CMP. On peut ainsi comparer a l’accumu- lateur soit une valeur donnée, soit le contenu d'une adresse. Dans Cette seconde hypothése, tous les modes d’adressage sont autorisés pour défi- nir l'adresse concernée. Vous trouve- rez ci-aprés la liste des syntaxes pos- sibles pour l’instruction CMP et les codes hexadécimaux correspondants (ADS désigne une étiquette symboli- que affectée a l'adresse dans le pro- gramme en assembleur). © CMP valeur = CMP #$NN = C9 NN (exemple : C9 AO) e@ CMP adresse en page zéro = CMP ADS = CMP $aa = C5 aa ®@ CMP adresse quelconque = CMP ADS = CMP $aaaa = CD octet bas/octet haut (exemple: CMP $90FF = CD FF 90) @ CMP "adresse page zéro”.X CMP ADS,X = CMP $aa,X DS adresse @ CMP ADS,X = CMP $aaaa,X = DD octet bas/octet haut @ CMP ADS.Y = CMP $aaaa,Y = D9 octet bas/octet haut @ CMP (ADS,X) = CMP ($aa,X) = Cl adresse e CMP (ADS,.Y) = CMP ($aa).Y = D1 adresse Notez bien que le contenu de l'accu- mulateur n'est pas affecté par l’opé- ration de comparaison, ce qui auto- rise les comparaisons en chaine, telles que CMP #$80 BEQ ETIQUETTE1 CMP #$8D BEQ ETIQUETTE2 Comparaison avec le registre X Le code mnémonique est CPX. La encore, il est possible de compa- rer X avec une valeur ou le contenu d'une adresse, mais seul l’adressage direct non indexé est autorisé Le contenu de X demeure inchangé, ce qui permet également les compa- raisons en chaine. Gérard Michel e CPX valeur = CPX_#$NN = EO NN (par exemple, EO 04) e@ CPX adresse page zéro = CPX ADS = CPX $aa = E4 adresse © CPX adresse quelconque = CPX ADS = CPX $aaaa = EC octet bas/octet haut Comparaison avec le registre Y Le code mnémonique est CPY. Mémes_ remarques générales que pour CPX. @ CPY valeur = CPY #$NN = CO NN © CPY adresse page zéro = CPY ADS = CPY $aa = C4 adresse @ CPY adresse quelconque = CPY ADS = CPY $aaaa = CC octet bas/octet haut Augmenter ou diminuer le contenu d’une adresse INC Cette instruction permet d’augmenter de 1 le contenu de ladresse donnée apres INC et correspondrait a “A=A+1” en Basic. Elle agit directe- ment sur l'adresse concernée, sans qu'il soit nécessaire de passer par Tintermédiaire d’un registre. Une adresse correspondant a un octet, son contenu ne peut prendre qu’une valeur comprise entre $0 et $FF (0 & 255 en décimal). Ainsi, si adresse ADR contient $FF et que vous faites "INC ADR”, vous trouve- rez 0 dans ADR (de méme que 9+1=0 si on ne compte que sur un chiffre !). De plus, notre fameux “dernier résul- tat” tient compte de la valeur de ladresse aprés son traitement par INC; il devient nul si l’adresse contient 0 (comme dans le cas ci- dessus) et sera différent de 0 dans tous les autres cas. On peut donc ef- fectuer des tests significatifs par BNE aon en sortie d'une instruction Ceci est particuligrement utile lorsque Yon veut manipuler l’adresse-base d'un adressage indirect indexé par Y, ou, de maniére générale, une valeur supérieure 4 255 et qui occupe donc deux octets. Supposons ainsi que Pon ait a incrémenter de 1 en 1 une valeur stockée aux adresses $18 (octet bas) et $19 (octet haut). La sé- quence d’instructions 4 utiliser serait Ins.1 INC $18 Ins.2 BNE Ins.4 Ins.3 INC $19 Ins.4 .. On augmente l’octet bas de 1; si le résultat n'est pas nul, on saute a la suite du programme, sinon on aug- mente l’octet haut de 1. Si l'on arrive 4 Ins.1 avec 0418” dans $18-$19, on aura 0518” en arrivant a Ins.4, mais si l'on arrive avec "FF18” on aura 0019” aprés étre passé par les deux INC. L’adressage indirect ne peut étre uti- lisé avec INC. e INC adresse page zéro = INC ADS = INC $aa = E6 adresse e INC adresse quelconque = INC ADS = INC $aaaa = EE octet bas/octet haut @ INC “adresse page zéro”,.X = INC ADS,X = INC $aa,X = F6 adresse e INC “adresse quelconque’,X = INC ADS,X = INC $aaaa,X = FE octet bas/octet haut DEC Comme on pouvait légitimement s’y attendre, DEC permet de diminuer de 1 le contenu d'une adresse. La encore, le “dernier résultat” évolue en fonction du contenu de l’adresse aprés DEC, mais on ne peut I’utiliser aussi facilement qu’avec INC pour la manipulation de valeurs sur deux octets, puisque l’octet haut doit dimi- nuer lorsque l’octet bas vaut $FF et non lorsqu’il vaut 0 (de méme que l'on ne change de dizaine que lors- que le chiffre des unités tombe a 9 et non a 0). En reprenant notre. exemple précé- dent, la séquence d’instructions a uti- liser avec DEC serait : Ins.1 DEC $18 Ins.2 LDA $18 Ins.3 CMP #$FF Ins.4 BNE Ins.6 Ins.5 DEC $19 Ins.6 ... (on aurait pu également utiliser les registres X ou Y en lieu et place de Tl'accumulateur) @ DEC adresse page zéro = DEC ADS = DEC $aa = C6 adresse DEC adresse quelconque = DEC ADS = DEC $aaaa = CE octet bas/octet haut e DEC “adresse page zéro”,X DEC ADS.X = DEC $aa,X = Di adresse e@ DEC “adresse quelconque”,X DEC ADS,X = DEC $aaaa,X DE octet bas/octet haut Gill Wl Saut inconditionnel : JMP Les instructions BEQ et BNE, main- tenant bien connues de tous, provo- quent un branchement a un endroit 24 donné du programme si le résultat du test effectué sur le “dernier résul- tat” répond a leur attente (respective- ment égal 4 0 et différent de 0). De plus, nous avons vu que le branche- ment se fait en fonction d’un dépla- cement et non directement sur une adresse que !’on indiquerait derriére BEQ ou BNE. On se “branche” 10 octets plus bas, ou encore 48 octets plus haut, si la condition est satisfaite. Linstruction JMP, en revanche, pro- voque un saut "inconditionnel” a ladresse indiquée 4 sa suite; elle se rapproche en cela de J'instruction GOTO du Basic. Ainsi, "JMP $FDEO” (ou JMP ADR si ADR a été définie comme étiquette pour $FDEOQ) provoquera un saut a l'adresse $FDEO dés que sera ren- contré le code de JMP. JMP differe de JSR comme GOTO de GOSUB : un RTS ne raménerait pas a l'instruction qui suit JMP mais celle qui suit le dernier JSR effec- tué dont on ne serait pas encore re- venu. Il est possible d’utiliser JMP avec T'adressage indirect: le saut se fait alors a l’adresse contenue dans Tadresse indiquée aprés JMP. e JMP adresse absolu = JMP ADS = JMP $aaaa = 4C octet bas/octet haut e JMP adresse indirect = JMP (ADS) = JMP ($aaaa) = 6C octet bas/octet haut La pile du microprocesseur Lorsque le microprocesseur rencon- tre une instruction JSR, il doit stocker quelque part l’adresse du point de retour a laquelle raménera le RTS de fin de la sous-routine. II dispose pour cela d'un “silo” bien & lui, baptisé “pile”. En simplifiant, on peut dire que l’adresse de retour est posée sur le sommet de la pile et que le pro- cesseur vient l'y reprendre lorsqu’il rencontre un RTS. Considérons par exemple les instruc- tions suivantes : Adresse 0 JSR Adresse 2 Adresse 1 Suite du programme Adresse 2 JSR Adresse 4 Adresse 3 RTS Adresse 4 JSR Adresse 6 Adresse 5 RTS Adresse 6 LDA $FO ----+--++ RTS Aprés le “JSR Adresse 6”, la pile contiendra dans I’ordre : Adresse 5 Adresse 3 Adresse 1 Le RTS qui suit "Adresse 6” ramé- nera donc a "Adresse 5”, dont le RTS raménera aloys 4 “Adresse 3” qui provoquera finalement le retour 4 “Adresse 1”. La pile est de type "dernier entré - premier sorti”: une nouvelle donnée a stocker est tou- jours posée sur le dessus et, chaque fois qu'il doit récupérer une informa- tion stockée dans la pile, le proces- seur prend toujours celle qui se trouve au sommet. Le programmeur peut également uti- liser cette pile pour des stockages temporaires. En particulier, deux ins- tructions permettent d’empiler et de dépiler l’accumulateur : @ PHA (code 48): dépose le contenu de Taccumulateur au sommet de la pile e PLA (code 68): transfére l’octet qui se trouve au sommet de la pile dans l’accumulateur. Cela limite le nombre d’adresses a utiliser pour une sauvegarde momen- tanée d'information, dans le cas par exemple ow l'on veut sauvegarder le contenu de certaines adresses avant Tappel d'une sous-routine qui utilise et modifie ce contenu, puis récupérer les valeurs initiales au retour de la sous-routine. De méme si l'on doit calculer la nouvelle adresse-base d'un adressage indirect post-indexé par Y en ajoutant a l'ancienne adresse une valeur obtenue juste- ment par adressage post-indexé sur la base de cette ancienne adresse (le principe consiste alors a mettre dans Taccumulateur octet bas de l'adresse, lui ajouter la donnée obte- nue avec la valeur adéquate de Y, empiler l'accumulateur, charger en- suite l'accumulateur avec I’octet haut de l’adresse, lui ajouter la donnée obtenue avec la seconde valeur adé- quate de Y, stocker le résultat dans Foctet haut de l'adresse, puis dépiler dans l’accumulateur et stocker ce dernier dans l’octet bas de l'adresse - ce que l'on ne pouvait faire dés le début puisque cela aurait modifié ladresse-base avant que lon ait ré- cupéré la valeur correcte a ajouter a Yoctet haut, d’ot incohérence des ré- sultats) Lorsque |’on utilise la pile pour sto- cker des données, il convient de se rappeler que, pour le bon fonction- nement du systéme, tout ce qui a pu étre déposé sur une information doit étre retiré avant la récupération a bon escient de celle-ci. Le petit pro- gramme suivant, par exemple, conduirait 4 des résultats peu confor- mes aux espérances du program- meur : LDA $18 Pom’s n° 12 En effet, l'accumulateur est empilé, puis le "JSR SR” provoque le dépét au sommet de la pile de l'adresse de retour. Dans la sous-routine SR, PLA transfére dans l’accumulateur l’octet qui se trouve au sommet de la pile, soit l'un des deux octets de l'adresse de retour, puis le RTS entrainera un branchement sur une “pseudo” adresse de retour composée de l'un des octets de l'adresse véritable et de la valeur empilée par PHA avant l'appel de la sous-routine. Il y a peu de chances pour que cette “pseudo” adresse soit la méme que celle de Tinstruction suivant “JSR SR” et, a moins que cela ne soit délibérément voulu, vous risquez quelques surpri- ses. Exemples d’application Nous vous proposons trois petits pro- grammes diillustration, sans grand in- térét pratique il est vrai, mais qui of- frent tous l'avantage de rendre visibles les résultats de leur exécu- tion. Exemple 1 Le programme Basic remplit ’écran avec des caractéres quelconques avant d’appeler la routine en langage machine. Cette derniére attend une saisie au clavier de la forme *IC1/C2/RETURN” (par exemple ‘AT/) et remplace ensuite tous les caractéres Cl affichés par des carac- téres C2 (par exemple tous les A par des T). Analysons donc en détail le pro- g

Showing the first 100000 of 300805 characters.

mp.ls