Skip to main content

tremplin micro newsletter issue 17

  • PublicationApple Periodicals
  • Pages82
  • Sourcetremplin_micro_newsletter_issue_17.pdf
← Magazines tremplin micro newsletter issue 17
/ 82
Source: Internet Archive — Aggregated Apple-era periodicals, 1981–2012.
Page 1
Loading…
Text content (OCR)
fA Re ee esolution Haute R votre GS! Be inc Gas Sur tremplin | SOMMAIRE micro 17 ‘Apple et ProDOS (noms et BIMESTRIEL Le numéro : 33 F Abonnement d'un an : 190 F (6 numéros) Tous nos prix sont indiqués TTC. EDITIONS JIBENA Direction-Rédaction : Editions JIBENA Guy-HACHETTE La Petite Motte — Senillé 86100 CHATELLERAULT. Téléphone : 49-93-66-66 PuBLICiTE : Raymond JULLIEN (1) 45.75.41.81 Commission paritaire : Les revues qui choisissent d'étre réellement au service du Lecteur, en ne lobligeant pas glaner, dans plusieurs magazines, les renseignements concernant sa machine, ne bénéficient pas du numéro de Commission Paritaire, et pas davantage des torifs pos- taux réduits. TREMPLIN MICRO — Bimestriel —Cest une publication des Editions JIBENA, 4, rue de lo Cour-des-Noves, 75020 PARIS — §.A. ov copital de 3600000F — Imprimé por CTTE-PRESS/PARIS — Service de vente : Presse-Promotion, tél: 49.90,65.08 — Dépat légal la date de parution — Inscrip- tion & la Commission Paritaire des Publica- tions et Agences de Presse : en cours — Directeur de la Publication : Guy-Clément COGNE — Dittusion NM.P.P. La Disquette TREMPLIN MICRO Avec Ia collaboration de : ARGOS, Claude AUBRY, Didier CHARRON, Maurice CHAVELLI, Bruno CHEVALLIER, Marcel COTTINI, Rafi DERYEGHIYAN, Roland JOST, Yvan KOENIG, NESTOR, Clément RENARD. Yvan KOENIG avisité Apple Expo ............. 00.200 e eee 2 LEPOLYGLOTTE avec Maurice CHAVELLI ea 3 WAR Un jeu d'aventure pour Apple ...........------.0000055 9 (nous ne publions pas ce long programme, mais vous recevrez la disquette de Rafi DERYEGHIYAN... pour 20 F). FONTE pour AppleWorks (Didier CHARRON) ..............- n CLASSEMENT suivant la longueur (Clément RENARD) . 19 PLACE.DOS - DOS 3.3 pas mort (Marcel COTTINI) .. . 21 PAVES ALEATOIRES en Basic plus langage machine ae A LOUPE (Roland: JOST) wisscosmineace gan memeiem aves ra] UN X DEUX, initiation au langage machine (Nestor) ........ 36 BLOLIB.A et BLOLIB.V, toujours de I'initiation (Nestor) ....... 37 GS Basic: Il arrive... avec les outils ..............5555 (89 MELANGEUR, pour méler aléatoirement N mots (Nestor)... 40 QUATRE OPERATIONS, du Basic au LM ........... 2.20.00. 43 RND @ ou 1 : comment obtenir aléatoirement desGetdes1]... 44 ALLER-RETOUR jusqu’aux routines arithmétiques du 65C02... 45 TRI.B, trier une liste de nombre sur un octet . . 46 MINI-DOC Encore un Startup sous ProDOS (Bruno CHEVALLIER) .... 51 MLI Petite initiation en langage machine (Argos) 61 C CONVERT! Un micro-programme en C (Nestor) ee 769 HGR MONOCHROME Réponse intéressante 4 un Lecteur ..... 65 SuperMacroWorks La version francaise existe !............ 69 GRIBOUILLE PARLANT Le génie logiciel francais .. . . 70 Yvan KOENIG se déchaine dans un courrier spécial ........... 73 TURBO PASCAL TUTOR Pour comprendre TURBO PASCAL... 78 BIBLIOTHEQUE INFORMATIQUE .................055 20,66,68,74 TREMPLIN MICRO YVAN KOENIG « visite Apple expo... Je sais : certains vont supposer que cette fois les fruits de la passion m’ont frappé deux fois. Cest peut-étre vrai, mais, 4 mon retour d’'APPLE expo, je suis persuadé que le GS, malgré des débuts difficiles en France, décolle enfin. Les raisons de ses difficultés initiales sont multiples : prix sans doute trop élevé, défauts dans les programmes livrés avec la machine, difficulté d’accés aux outils de développement, sans oublier, si j'en crois divers appels de lecteurs et des informations de source sire, le comportement suicidaire de certains concessionnaires. Les prix viennent de baisser. Les programmes ont fait l'objet de révisions. II convient de préciser que certains des problé- mes rencontrés par les utilisateurs ne sont pas en totalité imputables aux auteurs, qui étaient (et sont encore) tributaires des outils de source APPLE (systéme d’exploitation encore évolutif, drivers disponibles de maniére tardive). Atten- tion ! je ne porte aucune accusation contre CUPERTINO ! L'équipe qui travaille sur la machine (nous avons rencontré trois de ses membres) semble tellement éprise de perfec- tionnisme qu'elle remanie sans cesse ce qu'elle vient de sortir. Rich Williams nous a d’ailleurs apporté la ver- sion 3.1 du systéme d’exploitation, mais il y a fort @ parier qu'il existera une version 3.1+ lorsque cette version 3.1 sera parvenue 4 vos machines. II nous a, par ailleurs, présenté un éditeur d'icénes, et surtout un outil de géné- ration de sons, tout @ fait remarquables. Nous avons enregistré avec plaisir l'annonce pour 88, de la vraie version 16 bits du systéme d'exploitation. Des nouveautés hard sont aussi a |'ordre du jour, mais le développeur que je suis (ou plutét que j'étais encore) a promis la discrétion. Je rappelle & ceux qui n‘ont pu obtenir de leur fournisseur les mises 4 jour 1.1 de GS.PAINT et 2.0 de GS.WRITE qu'ils peuvent les demander directement 4 Version Soft. Apres avoir tiré les lecons des difficultés d'accés aux outils de développement, APPLE a remanié la présentation de ceux-ci et a confié leur diffusion a une nouvelle structure, 4 savoir : D.D.A. _|. Development "Technopole", rue Faraday 78180 Montigny le Bretonneux Tél. : (1) 30.45.26.62. J'ai rencontré de jeunes développeurs dont l'enthousiasme pour le GS tranchait avec le scepticisme affiché par certains (BORLAND par exemple). Ayant fait part de certains propos alarmistes aux représentants du team GS, j'ai été frappé par leur surprise et je crois pouvoir dire qu'ils travaillent dur pour que toute crainte se révéle vaine. De son cété, J.-L. GASSEE a affirmé qu’'APPLE gagne de l'argent avec le GS et que cela le con- duisait & penser que |'APPLE II sera encore pré- sent dans 10 ans, avec des modifications bien sor. Il n'a rien voulu annoncer aux 200 person- nes (au moins) qui I'écoutaient, mais nous som- mes tous sortis convaincus de la mise en ceuvre prochaine d'un systeme de communication entre les deux gammes APPLE. Enfin, et je sais que vous n’allez pas me croire, le BASIC spécial GS existe. Je I’ai vu a I'ceuvre, et il sera disponible chez D.D.A. lorsque vous lirez ces lignes. Aux U.S.A., A.P.D.A. le vend au prix de 50$ et annonce déja un compilateur pour ce BASIC. Avant de vous quitter, je tiens & mentionner ce qui restera mon meilleur souve- nir d'APPLE expo, 4 savoir le sourire d’Alexan- dre FERAY (18 ans), lauréat, avec son langage Forth pour GS, du concours APPLE/Version Soft (que les 4 autres lauréats ne m‘en veuillent pas, ma réaction n’enlevant rien aux mérites de leurs programmes). Yvan KOENIG GUY-HACHETTE ILITAI Maurice CHAVELLI LE POLYGLOTTE Je ne suis pas un fervent adepte de la langue d’ori- gine de mon Apple chéri et, un matin de nostalgie, je me suis mis en téte de lui apprendre ma langue maternelle. J'avais pas mal avancé mon projet lors- que je me suis apercu que jallais remplacer une contrainte linguistique par une autre alors que la grande qualité de |'informatique est plutét la sou- plesse ! J'ai alors imaginé un Basic idéal, modifié a loisir, et qui me permette diutiliser aussi bien le PRINT classique que IMPRIME, MARQUE, ECRIT... suivant thinaur du moment ! Cest dans cette optique un rien surréaliste que s'est construit Le Polyglotte. Ce dernier permet de modifier & tout moment la syntaxe d'un mot réservé du Basic, sans pour autant corriger les pro- grammes. Mais j’ai découvert en chemin une possi- bilité que je n’avais pas prévue au départ. Les mots-clés dans un programme Basic sont représen- tés par des codes (Tokens) dont le premier est $80 pour END, le second $81 pour FOR et ainsi de suite jusqu’a $EA pour MID$ (vous pouvez consulter utile- ment 4 ce sujet l'article de NESTOR 4 la page 6 de Tremplin Micro n°10). Il reste donc 21 codes dispo- nibles de $EB a $FF ! En temps normal ces tokens ne sont pas utilisables, mais avec Le Polyglotte ils le deviennent, il est ainsi facile d’ajouter des commandes au Basic de la maniere la plus naturelle qui soit. Le Basic est tout entier contenu en mémoire morte, il n'est donc pas possible de le modifier. Par contre, il utilise une routine située en mémoire vive pour lire les programmes et le buffer d'entrée en com- mande directe : c'est le fameux CHRGET situé en $B1, ce dernier étant donc orienté, ou plutat déso- rienté, sur la routine d’analyse du Polyglotte. II est ainsi possible de capter et d'interpréter une ins- truction avant |'Applesoft. ProDos m’a également donné beaucoup de soucis ! Lui aussi interpréte tout au moyen du mode trace du Basic standard, et il se trouve pris au piége en essayant d'écrire le "£", ce qui l'envoie finalement dans la gestion de sortie de ProDos en $9E2C. Les mots-clés du Basic sont tous situés dans une table qui commence en $DGD9. En version de base, le Polyglotte comprend la méme table, mais située en mémoire vive donc modifiable. Les mots-clés du Basic apparaissent sur votre écran dans deux cas : * lorsque vous entrez des instructions au clavier, * lorsque vous utilisez la commande LIST. Dans le premier cas, il peut s‘agir d'une commande directe ou de l'enregistrement d'une ligne d'un pro- gramme. Dans les deux cas il faut tokéniser, c'est- a-dire remplacer les mots-clés par leur code. La routine de tokénisation standard se situe en $D559. Le Polyglotte reprend cette routine mais l'oriente évidemment sur sa propre table. Dans le deuxiéme cas, le Basic utilise la routine LIST située en $D6A5 ; le Polyglotte comporte une routine identique, mais orientée sur sa propre table. Le Polyglotte comporte une gestion complete et ne pose pas de probléme particulier quant 4 son utili- sation. II convient toutefois d’étre prudent dans le choix des mots-clés que vous affectez. Si vous rem- placez FOR par DE, il ne faut pas ensuite remplacer WAIT par DELAI car les deux premiéres lettres de ce mot seront déja considérées comme un mot-clé et vous déboucherez sur un SYNTAX ERROR, en anglais lui ! Soyez prudent également avec vos noms de variables et n'oubliez pas qu'ils doivent respecter les mots-clés. Pour limiter l'encombre- ment de la table, j’ai limité la longueur des mots- clés 410 caractéres. (suite page 4) TREMPLIN MICRO 3 D'autre part, Le Polyglotte est assemblé en $8A00 mais il doit au préalable étre chargé et lancé en $4000. En effet, il doit d'abord “faire sa place” en décalant les buffers de ProDos vers le bas et ensuite se reloger. Vous pouvez donc calculer que Le Polyglotte occupe en tout 4K de $8A00 4 $9A00. Lorsque vous étes satisfait du Polyglotte que vous avez constitué, vous devez le sauver avec I'option correspondante du menu. Par la suite, pour le retrouver, il vous suffira de faire un BRUN , et le tour sera joué, méme si vous aviez un autre Poly- glotte en place. Cette manceuvre ne vous fait pas perdre le programme Basic en place, mais écrase 8 pages a partir de $4000. Le menu du Polyglotte s'obtient par pomme ouverte et le point d'interrogation actionnés en méme temps ! Classiquement, il existe deux méthodes pour ajou- ter une commande au Basic. La premiére, la plus courante, utilise |'Ampersand (&) et vous avez de trés nombreux exemples dans Tremplin Micro. La deuxiéme, plus rarement employée, consiste 4 modi- fier CHRGET : c'est cette méthode qui a été retenue par Le Polyglotte. Mais le grand avantage de ce der- nier réside dans |'utilisation de nouveaux tokens, ce qui simplifie considérablement le probleme. Le Polyglotte vous demande juste un nom pour votre commande et l’adresse de celle-ci. Il est bien entendu que le nom est modifiable par la suite. Le programme correspondant doit respecter le fonc- tionnement de CHRGET. Le Polyglotte empile l'adresse $D7D1 pour le retour et place le token correspondant en $6. Je vous propose, dans la dis- quette d’accompagnement de ce numéro 17, deux exemples d'illustration, le premier est le classique IF THEN ELSE, le second est inspiré du Pascal : c'est le REPEAT UNTIL. Les deux sont relogeables, les sources* comportent tous les renseignements nécessaires. J'espére que ces deux exemples vous inspireront. Vous pouvez trés facilement adapter la routine SWAP parue dans Tremplin Micro n°4 ou le FILL de Tremplin Micro n°7, mais laissez plutét s'exprimer votre imagination... * EXEMPLE. SOURCE (un seul fichier). . Les conseils du sage NESTOR POLY.OBJET ayant été lancé par BRUN POLY.OBJET,A$4000 (ne pas oublier V'adresse) vous |'activerez, comme le précise Maurice Chavelli en appuyant simultanément sur POMME OUVERTE et le POINT D'INTERROGATION. Un menu apparaitra alors et vous propo- sera ces options : — EDITER LES COMMANDES ACTUELLES. — AJOUTER UNE COMMANDE. — SUPPRIMER UNE COMMANDE. — SAUVER LE POLY ACTUEL. Vous utiliserez fléche droite ou fléche gau- che pour effectuer votre choix. Personnel- lement, j‘aurais préféré les deux autres fle- ches, plus logiques et je pense que notre ami YVAN KOENIG serait de mon avis. Pas de probléme particu- lier. On se proméne dans la liste, toujours avec les fleches. Deux colonnes : le premier token est celui que pratique votre Apple. Le second est le, méme, sauf modification. A ce stade, pour modifier une commande, il suffit de presser la touche RETURN et de taper le mot (le vétre) qui remplacera le mot-clef actuel. Ainsi, 4 la place du classique END vous pourriez rentrer FIN. Moi, je préfére OUF ! Quand c'est fait : RETURN, ordre parfaitement compris par tout Apple, mais auquel les IBM et compatibles préfé- rent ENTER. AJOUTER Il y a ceux qui savent (Maurice)... et les autres. Cest vrai que l'emploi de |l'option AJOU- TER tombe sous le sens... quand on sait. Bien ! C'est quand méme pas la mer 4 boire. Imaginons que vous puissiez instal- ler une routine de COPIE D'ECRAN & l'adresse $300... et qu'elle y soit effecti- vement. Pour |'automatiser par une com- mande /MP, il vous suffira de taper IMP (évidemment) quand POLYGLOTTE vous le demandera puis 0300 quand il s‘inquié- tera de l'adresse. Tout ¢a est enfantin. Pour le reste, aucun probléme particu- lier... sauf que Maurice Chavelli jove avec les buffers de ProDOS, mais il faut bien s‘amuser, pas vrai. LESOURCE Vous le trouverez sur la disquette car il est bien trop long pour figurer dans la revue. 4 GUY-HACHETTE POLY OBJET Si vous n‘avez jamais saisi une routine en langage machine, tapez d'abord un CALL - 151, puis sitét l'apparition de l'astérisque ( * ), tapez gentiment chaque ligne, sans vous presser. Attention ! ne tenez pas compte du total indiqué en bout de ligne. Il est destiné aux heureux possesseurs de notre disquette SIGNATURE et permet de vérifier la saisie. Quand vous aurez terminé, sauvez la totalité de la routine par un indispensable : BSAVE POLY.OBJET, AS8AQ0, LSCI3 TREMPLIN MICRO 8A00: AD 8A10: 20 8A20: 85 8A30: AD 8A40: BC BA50: Ag BA60: 92 8A70: BC 8A80: DO BA90: 86 BAAD: 86 SABO: DO 8ACO: 8A 8AD0: 59 BAEO: 4C SAFO: FD 8B00: 92 8B10: AO 8B20: 24 8B30: 3A 8B40: F9 8B50: 91 8B60: 58 8B70: 09 8B80: C9 8B90: DO 8BA0: DO 8BB0: 4C 8BCO: AD 8BDO: 91 8BE0: 20 8BFO: 32 8C00: 20 8C10: 04 8C20: 25 8C30: 8C 8C40: 8B 8C50: Ag 8C60: 5B 8C70: B3 8C80: 02 8090: DO 8CAO;: 1C 8CBO: 08 8CCO: 8C 8CDO: 8D 8CEO: E6 8CFO: CS 8000: 91 8D10: 90 8D20: 1C 8D30: Ag 8040: 20 8D50: AB 8B 90 DO 03 Ag 40 FE Ad 3BC1 EAC4 FéSA 9728 A3C0 D07BC B46F 9A10 5888 DFS4 PADS 2D0E 7442 111E CBC7 0A2B 8i1E2 EFA3 198D 8097 88AC 918C CAAg FaB6 E3EC PAIS 8657 7C3D 33DF FA37 5858 BSOF 0718 8B4B 0275 7FE3 A0B7 6B29 FB48 A8D4 $554 21F3 E141 C136 9C3C SBA? 66C8 S0c2 76C6 F492 SADE cccB E185 0475 LE POLYGLOTTE coos: sue 8060: 00 8070: E3 8080: 8D 8090: FC 8DA0: 07 8DB0: 90 8DCO: 02 8DD0: DO 8DEO: 92 BDFO: 41 8E00: 8D 8E10: 59 8E20: EE 8E30: 8B 8E40: 33 8E50: DB 8E60: 00 8E70: E6 8E80: Bi BE90: 68 8EA0: 98 SEBO: 20 8ECO: ES SEDO: 91 8EEO: ES 8EFO: DO 8F00: C9 8F10: C9 8F20: FS 8F30: 1C 8F40: E6 8F50: 1C 8F60: 24 8F70: BD 8F80: 20 8F90: FB 8FA0: CF 8FBO: 20 8FCO: 8A BFDO: 06 8FEO: FS 8FFO: SA 9000: 3A 9010: DO 9020: 05 9030: 02 9040: 02 9050: AD 9060: 85 9070: 09 Bi 92 AD ay 1c 38 co 24 20 4c 00 Bi FO ED 2A ay FB 08 02 1A 91 DB 08 E3 Do cs 8B E6 92 06 A0 Ag 8E 10 Fé Ag 04 1C bo 1A bo ES 02 1D cé 4E 20 bo F2 4c 20 a1 20 BD E6 cc DA Ag 3E ES 4c DB 8c 14 58 Ag 70 00 1A E2 ag 0A 9D 92 1578 EF60 339A 27B6 9753 4818 7CA8 D940 BB72 S1F7 CEDO EA61 C35c A464 ADSS B864 9D3E 773D SBAO 9CFB BAD DESB 4336 7A54 2066 1329 2DA7 9084 90F4 0025 0838 £62C 45A9 B542 OBSD 07E1 4784 965C 0130 2139 8266 13F7 EF72 11€2 2041 BAI? 5622 2174 B479 6B43 QUESTION Lecteur de votre reve depuis le premier numéro, j‘opprécie le nombre et lo qualité des orticles, et surtout leur caractére didactique. Trés modeste programmeur en Bosic Applesolt, vous m aver tiré sans le savoir de bien des tracos et je ne m étendra pos, cor vous connaissez bien cela, sur la joie de voir enfin un petit programme fourner, méme si le résultat est dé oux ficelles découvertes dans TREMPLIN MICRO plutét qué mes talents personnels. i je vous écris avjourdthu, cest que [i intention de changer mon ‘vieil” Apple {IC pour un Apple IIGS et que ce projet me plonge dans des abimes de perplexité. Je mexplique ; ma configuration actuelle est lo suivante. APPLE IIC 128 KO. 1 LECTEUR EXTERNE MARQUE APPLE (5 pouces 1/4), 1 MONITEUR ZENITH MONOCHROME R JONSTICN APPLE CABLE PERITEL "CHAT MAUVE” (Pour les jeux en couleurs). Je trovoille principalement sur APPLE- WORKS V1.2 ainsi que sur VERSION TEL et VERSION CALC. Mes questions sont les ‘suivontes # Sijachéte un IIGS, quels sont les péri- phériques ue je pourrai conserver 5 + Mes logiciels tourerontils sur un NGS? Si je viens vous ennuyer avec ces ques- tions, c'est que malgré de nombreuses démarches auprés de différents reven- deurs (y compris ceux qui mont vend mon lIC il y @3 ons) je n'ai jamais obtenu de réponses précises. L'un me dit que mon lecteur 5 pouces 1/4, bien que de marque Apple, ne sero pas compatible; un second le contredit ; un troisiéme me pré- dit des problémes sans nom entre le lIGS et IIMAGEWRITER | ; un autre moassure ‘que mon Modem est fotalement incompa- tible ; quand & APPLE FRANCE, ils n'ont jamais doigné répondre 6 mes lettres... Voilé! vous étes donc mon demier recours, jespére que vous pourrer mécloirer et, dans lattente de vous lire, je vous prie de recevoir mes cordiales solutations. Jo. P. (PARIS 13*) GUY-HACHETTE 2 REPONSE 9080: 20 OC FD C9 95 DO 04 B1 28 DO OF C9 88 DD 07 BA BLES 9090: FO EE Cé 24 DO E9 C9 BD FO 1S CP AL 90 E2CP ED 456! 90A0: BO DE EO 0A FO DA 9D 00 02 20 ED FD E8 DO D1 9D 79711 a mois que je sae 6 | 2080: 00 02 4C 9C FC 20 58 FC AD 00 B1 1A DO 03 20 3F ASF? WE er eercnnt Came | 9OCO: 91 AS 14 85 1C AS 1B 85 1D AO 00 84 24 B1 18 FO 0454 de certains de leurs revendeurs | 9000: OF 48 09 80 20 ED FD ES 18 DO 02 E6 19 68 10 ED 781 agréés, mais a ne semble pos | 90E0: B1 1A FO 33 A OD 85 24 A9 AD 20 ED FD AY BE 20 3634 Soméliorer. 90F0: ED FD ES 24 E6 24 ES 24 BI 1A 48 09 80 20 ED FD SaAe Je vais essoyer déclirer vote | 9100: ES 1A DO 02 E6 1B 68 10 EF ES 25 AS 259 17 FO 1 7DF lone: 9110: 06 20 22 FC 4C C9 90 AS 25 CA BE ES 92 60 AD 00 E790 * Votre lecteur 5° IK est proboble- | 9120: CO 10 FB 8D 10 CO 60 AO 27 B1 28 09 80 91 28 88 EDF2 meth un UNDIK beige Vest rer. | 9130: 10 F7 60 AQ 27 B1 28 29 3F 91 28.88 10 F7 60 AM 48C0 peut cependont sil sogit din | 9140: DO 85 18 85 19 A B3 85 1A AI 94 85 1B 60 Aé BB D571 exemploie ‘oncien” quil ot | 9150: CA AO 04 84 13 EB BD 00 02 24 13 70 04.C9 20 FO 3930 besoin dine petite intervention | 9160: F4 85 OE C9 22 FO 74 70 4D C9 3F D0 04 A9 BA DO C9A2 pkg flelltesnsl 9170: 45 C9 30 90 04 C9 3C 90 3D 84 AD AP 83.85 9D AF 34600 renseigner Sivousen nerloce. | 9180: 93 85 9E AD 00 84 OF 88 86 BB CA CB DO 02 ES 9E 4497 sion, i foudrait le brancher sur un | 9190: EB BD 00 02 C9 20 FO F8 38 Fi 9D FO EE C9 80 DO 0285 G5 et essayer le FINDER dela dis- | 91A0: 41 05 OF C9 CS DO OD BD 01 02 C9 4E FO 34.09 4F- F703 qn gatime sone ive | 91Bo: FO 30 A9 C5 A4 AD EB C8 99 FB 01 B9 FB 01 FO 39 3002 une icéne, tout vo bien. Sinon, | 9100: 38 E9 3A FO 04 C9 49 DO 02 85 13 38 EP 78 DD 86 «BEA écriver ou SAV en précisont e | 91D0: 85 OE BD 00 02 FO DF CS OE FO DB C8 99 FB OL EB Aand numéro de série de votre lecteur. 250F prcspbecns’<Aagtad ped 2085 oe cme we 1% P| 9210: FO 09 C9 C9 FO 05 C9 2C FO OL 40 20 OC DA 20 1A ind © Votre sours seo inutilsoble mais | 9220+ DS 20 B7 00 FO 10 C9 C9 FO 04 C9 2C DO EC 20 B1 BERS [eGS est iré avec SA sours 9230: 00 20 OC DA DO E4 68 68 AS 50 05 S1 DO 06 AI FF 3153 © Le doystick sera viilsable. 9240: 85 50 85 51 AO 01 Bi 9B FO 44 20 58 D8 20 FB DA EAL! + Le céble Péritel Chot Mowe est | 9250: C8 B1 9B AA C8 Bi 9B C5 51 DO 04 £4 $0 FO 02 BO 4792 sons obet ici. $i vous acheter une | 9260: 2D 84 85 20 24 ED AY 20 A4 85 29 7F 20 SC DBAS SUFD nite centrale seule, il existe un | 9270: 24 C9 21 90 07 20 FB DA AP 05 85 24 C8 BI 9B DO EDS céile qu vous pemetra duller | 9280: 1D AB B1 9B AA CB B1 9B 86 9B B5 9C DO BS AI OD Ba4D "PERTE résubol vorint de cor. | 92903 20 SC DB 4C D2 D7 CB DO 02 E46 FE BI 9D 60 10 CC SaF4 rect & linsupportable selon les | 92A0: 38 E9 7F AA 84 85 AD 83 84 9D AD 93 84 9E AO FF E78B séléviseurs) 92B0: CA FO 07 20 96 92 10 FB 30 Fé A 20 20 SC DB 20 747A * LIMAGEWRITER | est compatible | 92C0: 96 92 30 05 20 SC DB DO Fé 20 SC DB AI 20 DO 98 =F 202 pd hed omibr ded peti 92D0: AD AD AZ F2 AD 30 CO CA EA EA DO FB 88 EA EA DO 1706 proline (* | 9260: F1 60 00 00 00 00 00 C2 D3 C1 D6 C500 D2 CSCS 3445 4 , 92F0: C9 D8 AD BA AD 00 DO CF CC D9 AE AC C1 A4 B4 BO 1202 pies ppm lpragral 9300: BO BO AC CC A4 B1 BO BO BO 8D AD AD AD AD AD AD B5a8 sur ce point 9310: AB D2 CS D4 D5 D2 CE AY AD AD AD AD AD AB CS D3 4791 De toutes focons, jenvoie copie de | 9320: C3 AP AD AD AD AD AD AD AD BE AD AD AD AD AD AD a5? votre lettre et de ma réponse GAPPLE | 9330: AD 00 AD AD AD AD AD AD AB D2 C5 D4 DS D2 CE AP 3E%! peur quis pussent eventvelement, | 9340: AQ AD AD AB CS D3 C3 AI AD AD AD AD BC AD AD AD EBS competion co conrigr. Yran Keng, | 2350: AD AD BE AD AD AD AD AD AD 00 AD AD AD AD AD AD EEE ’ | 9360: AD AD AD AB D2 C5 D4 DS D2 CE AP AD AD AD AD BC 4E4D thw 9370: AD AO AD AD AD BE AD AD AD AD AD AD AD AD AD AD 4838 9380: AD 00 AD AD AD AD AD AD AD CC C5 D3 AD CF DS D4 4570 9390: C9 CC D3 AD C4 DS AD DO CF CC D9 C7 CC CF D4 D4 F4EF 93A0: C5 00 AD AD AD AD CS C4 C9 D4.C5 D2 AN CCC5 D3 AEDS 9380: AO C3 CF CD CD C1 CE C4.C5 D3 AN C1.C3:D4 DS C5 CB49 93C0: CC CC C5 D3 00 AD AD AD AD C1 CA CF DS D4.C5 D2 FC4A 93D0: AO DS CE CS AD C3 CF CD CD C1 CE C4.C5 00 AD AD 9A20 TREMPLIN MICRO # LE POLYGLOTTE (oLy.oBser: 93E0: AO A 93F0: C3 a ee re c . ta o Pe 7400; Dé C5 D2 AO CC CS AD DO CF CC 9410; C5 CC 00 AD AD AD AD CC ES AD 9420: AQ ES F3 F4 9430: AO 00 AD AO AD AD D1 FS ES EC 9440; 00 AQ AD AD AD D1 FS ES EC EC 9450: F3 F3 ES BF AO AD AD 9460: 00 00 00 00 00 00 00 00 00 00 9470: 00 00 00 00 00 00 00 00 00 00 9480; 00 00 00 45 4E C4 46 4F D2 4E 9490; C1 49 4E 50 55 D4 44 45 CC 44 9400: 47 D2 54 45 58 D4 50 52 9480: SO 4C 4F D4 48 4C 49 CE 56 4C 94CO: 48 47 D2 48 43 4F 4C 4F 52 BD 9400; 52 41 D7 58 44 52 41 D7 48 54 9460: 52 4F 54 BD 53 43 41 4C 45 BD 94F0: 54 52 41 43 C5 4E 4F 54 52 41 9500: 41 CC 49 4E 56 45 52 53 C5 46 9510: 4C 4F 52 BD 50 4F DO 56 54 41 9520: BA 4C 4F 4D 45 4D BA 4F 4E 45 9530: 4D CS 52 45 43 41 4c cc 53 54 9540: 45 44 BD 4C 45 D4 47 4F 54 CF 9550: 45 53 54 4F 52 C5 9560: 52 CE 52 45 CD 53 54 4F DO 4F 9570: 4F 41 C4 53 41 56 C5 44 45 C6 9580: 49 4E D4 43 4F 4E D4 4C 49 53 9590: 47 45 D4 4E 45 07 54 41 9SA0: 43 95B0: AD 9SCO: 4E D4 41 42 D3 55 53 D2 46 52 9500: SO 44 CC 50 4F D3 53 51 D2 52 9SEO: 58 DO 43 4F D3 53 49 CE 54 41 9SFO: 45 CB 4C 45 CE 53 54 52 A4 56 9600: 48 52 Ad 4C 45 46 54 Ad 52 49 9610: 44 A4 00 2 a0 De2F AQ ba D3 i oS FO2D a0 C1 C3 D405 6C4F D205 Cé6 C9 D8 3830 F2 ES £3 F4 BF SFBF EE EF ED BF AO C80 AO E1 E4 F2 E5 1024 00 00 00 00 00.—s«BI0E 00 00 00 00 00 ©0000 00 00 00 00 00 ©0000 58 04 44 41 54 5556 CD 52 45 41 ca OF IC A3 43 41 4C CC 37F9 CE 48 4752 B2 8186 50 4C 4F 04 44 = 8730 C2 48 4F 4D css F188 48 4C 4F 41 C4 B912 C5 4E 4F 52 4D C987 41 53 C8 43 4F «E429 48 49 4D 45 4D «A036 D252 455355 4533 52055350 45 F234 55 CE 49 C6 52 0434 C25245 5455 6F38 57 41 49 D4 4c 4768 4F 48 C5 50 52 7483 43 4C 45 41 02 4FC2 CF 46 CE 53.50 9023 53 54.45 D0 AB 8387 BC 53 47 CE 49 © 0a40 53 4352 4£ AB 0220 C4 4C 4F.C7 451753 41 54 CE 50 45 7052 CC 41 53.63 43 -pcoe 48 54.A4 4D 49-795 A2E8 BORLAND PRESENT Gi APPLE EXPO A l'occasion du salon Apple Expo, BORLAND INTERNATIO- NAL a présenté toute so gomme de logiciels dédiés MacIntosh. Le marché Macintosh étant en pleine croissance et représen- tant pour le constructeur son deuxiéme marché mondial aprés les Etats-Unis, il est nor- mal que BORLAND INTERNA- TIONAL, fidéle 4 une politique commerciale consistant pro- poser des produits aussi popu- loires que possible, suive l'évolution de ce secteur. Devant le succés rencontré par ses logiciels pour PC, lo société, soucieuse d'offrir les mémes performances aux uti- lisateurs de Macintosh, pro- pose donc toute une gamme (langage et bureautique) spé- cifique 4 ce type de produits. Pour BORLAND INTERNATIO- NAL, c'est également la France qui constitue son deuxiéme marché aprés les Etats-Unis. LOGICIELS EXPOSES : Turbo Pascal pour le Mac. Turbo Tutor pour le Mac. Méthodes numériques pour le Mac. Database toolbox pour le Mac. Reflex pour le Mac. Sidekick pour le Mac. Euréka, la solution pour le Mac. L'ASSEMBLEUR ? mais c'est facile ! Commencez par : LE G502 PAS A PAS Offrez-vous nos bouquins de routines (avec disquette). © CLINS D'CEIL AU 6502 ¢ ROUTINES POUR 65C02 ET 6502 ¢ NOUVELLES ROUTINES POUR LE 65C02 (uvrage que nous devons & deux lecteurs de Tremplin Micro). Utilisez le BULLETIN DE COMMANDE a la fin du journal. GUY-HACHETTE WAR est un jeu d’aventure entiérement écrit en Langage Machine. II comporte un véritable analyseur syntaxique. Toutes les explications sont contenues dans le programme : en voya- geant 4 travers le temps et l'espace, vous devrez mettre fin 4 une guerre qui a dévasté la surface de la terre. Un triple probleme se pose donc 4 vous : — trouver la machine a remonter le temps, — en obtenir le fonctionnement, — découvrir le moyen d’arréter la guerre. De plus, vous devez déterminer si la solution se trouve dans le passé ou le futur... Comme dans tout jeu d’aventure, vous donnez vos ordres a l'aide d’un verbe 4 |'impératif suivi d'un nom. Le verbe peut étre abrégé 4 trois let- tres, et le nom 4 quatre. Tapez E, O, N, S, pour vous déplacer, INV pour l'inventaire, QUI pour arréter. A vous de découvrir le reste du vocabulaire. Le programme est composé : ¢ Du fichier binaire "TEXTES" contenant les codes ASCII des messages affichés 4 I'écran. Du fichier binaire "VECTEURS” contenant des adresses. ¢ Enfin, du programme lui-méme : WAR. Le source du programme (WAR.SOURCE et WAR1.SOURCE sur la disquette) a été écrit grace 4 l'assembleur ProCODE. J'ai été obligé de le séparer en deux 4 cause de son im- portance. Pour jouer , faites uniquement BRUN WAR. Le programme charge automatiquement les fichiers TEXTES et VECTEURS : ils doivent donc étre sauvés obligatoirement sous ces noms sur la disquette : — BSAVE WAR,A$4G00,L$1084 — BSAVE VECTEURS,A$800,L$118 — BSAVE TEXTES, A$7000,L$1FBE ATTENTION: Le programme a été concu sous le systéme d'exploitation ProDOS. Pour le faire fonctionner sous DOS 3.3, voici les étapes 4 suivre : — Remplacer les trois premiers codes du pro- gramme WAR par : 4C E2 40. — BLOAD VECTEURS. — BLOAD TEXTES. — BRUN WAR. De plus, 4 chaque fois que le programme vous demandera si vous voulez rejouer, répondez non, rechargez le fichier TEXTES, puis faites BRUN WAR. Je vous livre la solution pour vous prouver qu'elle existe (et par la méme occasion que mon programme fonctionne !). PRENDS VASE, CASSE VASE, REGARDE DEBRIS, PRENDS PASSE, E, N, REGARDE MEUBLES, PRENDS COUTEAU, S, POUSSE TAPIS, (suite page 10). TREMPLIN MICRO SeasnneenEnenAReeeesesoEETOAoSsessenseeZoNeEDeSssoREERLETACTELEeZeseaReesueesseseuaEsEassoesEsEesEBesOe OUVRE TRAPPE, PASSE, VA TRAPPE, PRENDS ALLUMETTES, PRENDS PISTOLET, E, REGARDE CADRAN, POUSSE BOUTON, REGARDE CADRAN, TIRE LEVIER, E, S, TUE CHEVALIERS, PISTOLET, E, E, E, VA CHEMINEE, TOURNE CHE- NET, VA PORTE, PRENDS DIAMANTS, N, O, O, O, S, FOUILLE FOIN, PRENDS PELLE, POSE PIS- TOLET, N, O, N, ©, POUSSE BOUTON, REGARDE CADRAN, POUSSE BOUTON, REGARDE CADRAN, TIRE LEVIER, E, E, DONNE DIAMANTS, ROBOT, PRENDS DESINTEGRA- TEUR, O, O, POUSSE BOUTON, REGARDE CADRAN, POUSSE BOUTON, REGARDE CADRAN, TIRE LEVIER, O, VA ECHELLE, E, E, E, REGARDE SOLDAT, TUE SOLDAT, DESINTEGRA- TEUR, POSE DESINTEGRATEUR,FOUILLE SOL- DAT, PRENDS CLEF, S, OUVRE PORTE, CLEF, POSE CLEF, VA PORTE, PRENDS DYNAMITE, N, N, O, O, O, VA TRAPPE, E, POUSSE BOUTON, POUSSE BOUTON, POUSSE BOUTON, POUSSE BOUTON, TIRE LEVIER, E, ALLUME ALLUMET- TES, REGARDE DYNAMITE, ALLUME MECHE, VA BRECHE, REGARDE CONDUIT, DEVISSE GRILLE, COUTEAU, VA CONDUIT, E, REGARDE PAN- CARTE (!) REGARDE ORDINATEUR, BRANCHE ORDINATEUR, ALLUME ECRAN, REGARDE ECRAN, O, O, O, O, POUSSE BOUTON, POUSSE BOUTON, POUSSE BOUTON, TIRE LEVIER, E, E, S, REGARDE OFFICIER, TUE OFFICIER, COU- TEAU, REGARDE OFFICIER, PRENDS UNI- FORME, ENTERRE OFFICIER, PELLE, S, E, KRIEG, E, TUE GENERAL, COUTEAU. Le programme compte en tout 65 mots dans son vocabulaire. Bien entendu, j'ai essayé de programmer le plus de situations possibles : par exemple, je ne vous conseille pas de fouiller le soldat alors qu'il est encore vivant, ou de le tuer avec une autre arme que le désintégrateur ! Et ce n'est qu'un piége parmi tant d'autres... . Attention ! ce programme est beaucoup trop, long pour étre publié dans la revue, mais TREMPLIN MICRO vous l’offre moyennant une faible participation : 20F. Utilisez obligatoirement notre bulletin de commande 4 la fin du journal. La disquette (ProDOS) comporte non seulement le programme, mais le source. Vous devrez par contre y copier ProDOS et BASIC.SYSTEM. 10 GUY-HACHETTE FONTE | Didier CHARRON pour Apple Ile, Ile, IGS et APPLEWORKS Cet utilitaire a pour objectif de vous permettre d’agrémenter vos textes, sous APPLEWORKS, avec des polices de caractéres personnalisés. Il peut également étre employé avec tout logiciel travaillant sous PRODOS. II est utilisable sous DOS 3.3 en modifiant certaines lignes du programme FONTE. FONTE est divisé en 2 parties : le CHARGEUR et le GENERATEUR. Dans le CHARGEUR comme dans le GENERATEUR, le choix des rubriques se fait toujours avec fléches haute ou basse. © permet de revenir au sommaire sans téléchar- ger, ou aprés avoir chargé une fonte dans l'imprimante (taper 2 fois sur RETOUR). * permet de télécharger la fonte employée lors d'une précédente utilisation de |'utilitaire FONTE (allumer I'imprimante, taper sur RETOUR, attendre le chargement, puis taper RETOUR). Ce logiciel comporte plusieurs volets : 1° STARTUP (écrit en Basic) est le menu de présentation. II vous propose APPLEWORKS — FONTE — MAILING — IMPRIMER FONTES, 2° VOIR permet d'éditer toutes les fontes disponibles sur papier. 3° FONTE permet de charger une fonte dans la mémoire vive de limprimante et aussi de créer ses propres polices de caractéres. Nota : le MAILING n’est qu'une suggestion de programme. Vous pourrez avoir, sur la méme disquette, tous les programmes FONTE, plus ceux d'APPLEWORKS. Vous pourrez aussi ajouter un MAILING éventuel | Les lignes 105 et 215 de STARTUP doivent étre modifiées pour une utilisation sur lo disquette /APPLEWORKS ou la ligne 280 pourrait étre réécrite de Ia facon suivante : 280 PRINT D$"-/APPLEWORKS/APLWORKS.SYSTEM” TREMPLIN MICRO © permet de télécharger une fonte 4 partir d'un choix effectué d’aprés le catalogue des fon- tes disponibles (allumer l'imprimante, taper sur RETOUR, choisir une fonte a l'aide des flé- ches haute ou basse, valider en tapant sur RETOUR, attendre le chargement, et taper sur RETOUR). * permet d’effacer une fonte du disque (taper sur RETOUR, choisir la fonte 4 effacer 4 l'aide des fléches haute ou basse, valider en tapant sur RETOUR, répondre O (oui) pour confirmer). * permet d’accéder au GENERATEUR. (ite poge 12) Il est & noter que pour le démarrage de FONTE sur lo disquette /APPLEWORKS, il est impératif que BASIC.SYSTEM soit devant APLWORKS. SYSTEM sur le catalogue. Marche suivre : Faire une copie des programmes FONTE. © Transférer tous les fichiers de la face 1 d’ APPLEWORKS sur cette nouvelle disquette, & l'aide de MOUSEDESK par exemple. © Effectuer le méme travail avec le MAILING (éventuel). * Renommer Ia disquette /FONTE en /APPLEWORKS avec I'ins- truction RENAME ou avec MOUSEDESK. © Recopier sur la face 2 de votre nouveau disque, la face 2 d'APPLEWORKS. Les fichiers de police de caractéres doivent toujours étre sur la disquette ov se trouve FONTE. Certaines polices de TREMPLIN MICRO sont utilisables, mais les caractéres devront étre déca- és... sinon on aura B au lieu de A, et ainsi de suite. 2 W Il est organisé de la méme facon que le chargeur. a. utiliser une FONTE vierge * permet de créer une fonte 4 partir d'une fonte vierge (taper RETOUR). b. charger une ancienne fonte * permet de créer une fonte a partir de la der- niére fonte établie dans une utilisation précé- dente du logiciel (taper RETOUR). c. charger une nouvelle fonte * permet d’appeler en mémoire une fonte du catalogue pour travailler avec (taper RETOUR, choisir une fonte a l'aide des fléches haute ou basse, taper RETOUR). d. sauvegarder la fonte en mémoire * permet de sauver sur disque la fonte en mémoire (taper RETOUR, taper le nom désiré ~ pour effacer des caractéres : utiliser fleche gauche ou delete -, taper RETOUR quand le nom convient). Dans les rubriques a, b, c, du générateur vous appelez |'éditeur de caractéres : * Alla question : APPEL CAR? vous pouvez répondre par n'importe quel caractére dont le code ASCII est entre 32 et 126 inclus. L'’éditeur vous proposera dans une grille le caractére dessiné point par point. Si vous tapez RETOUR 4 Ia place d'une let- tre, vous aurez une grille vierge. Si vous tapez ESC(escape), vous sortirez de I'édition. * Le curseur est maintenant sur Ia grille, vous pou- vez (re)définir votre caractére. Déplacez-vous avec les fléches. Pour ajoufer ou supprimer un point de la matrice : tapez sur ESPACE. Pour sortir de I'édition, enfoncez la touche ESC (escape). * Alaquestion : TYPE H ou h, tapez H pour utiliser la matrice haute et h pour la matrice basse (lettre avec jambage...) * Ala question : RANGE CAR? vous tapez le carac- tere sous lequel celui que vous avez défini doit étre rangé. Si vous tapez ESC(escape), il n'y aura pas de rangement ; vous sortirez alors de I’édition pour une sauvegarde éventuelle. (?) permet d'avoir le catalogue des fontes disponibles. (ESPACE) sert & définir la matrice d'un caractére. Ce logiciel fonctionne trés bien avec les imprimantes DMP, IMAGEWRITER | et Il. Sur les Apple lle, la carte 80 colonnes est obligatoire, le Kit 65C02 sera aussi le bienvenu, mais n'est pas nécessaire. Le chargement des fontes en mémoire s’effectue tou- jours 4 l'adresse $4000 et 95 caractéres sont disponi- bles (du code ASCII 32 au code ASCII 126 inclus). Ils se présentent sous la forme d'une matrice 8 X 8. Pour faire travailler |'imprimante avec une fonte per- sonnelle, il faut lui envoyer la séquence ESCAPE ' (27 39) et pour revenir a la fonte normale, c'est la séquence ESCAPE $ (27 36). Sous APPLEWORKS, il faut définir une nouvelle imprimante : * menu AUTRES ACTIVITES e menu DONNEES IMPRIMANTE : choisir AJOU- TER IMPRIMANTE * menu AJOUTER IMPRIMANTE : choisir 12 et donner un nom * menu CODE IMPRESSION : définir les codes de l'imprimante « menu SOULIGNEMENT *® menu DEBUT SOULIGNEMENT ESCAPE ' ou ESCAPE ! ESCAPE’ * menu FIN SOULIGNEMENT : répondre ESCAPE $ ou ESCAPE $ ESCAPE ”. Ceci est un exemple, vous pouvez employer GRAS 4 la place de SOULIGNEMENT. Dans le traitement de texte, lorsque vous voulez utili- ser les caractéres spéciaux : tapez CONTROLE-S ; pour revenir aux caractéres normaux: tapez CONTROLE-S. II faut savoir qu’aprés chaque retour chariot, le soulignement est annulé. Au moment de l'impression, demandez la nouvelle imprimante. ll foudra taper CONTROLE-G a la place de CONTROLE-S si vous avez paramétré votre impri- mante sur les caractéres gras. L'utilisation de la fonte vierge permet d’éditer un texte en occultant tous les mots écrits en caractéres personnalisés. répondre CREE.FONTE.FIM 10 DS = CHR$ (4) Tapez et lancez ce 20 PRINT D$"CREATE FONTE.FIN,TTXT" | court programme 30 PRINT D$"OPEN FONTE.FIN,TTXT” pour créer 50. PRINT "VIERGE” appear lors (RETOUR) _ valide tous vos choix. 60 PRINT "VIERGE" » la premiere (ESC) vous raméne toujours a l'état précédent. IO FRINT DY SLOSE on 2 GUY-HACHETTE 100 105 110 115 120 125 DS = CHRS (4):BS = "RUN" PRINT D$"PRE3": PRINT D$"PRE FIX/TM17/FONTE" REM MENU DATA weseeeeeesee «SOMMAIRE.. 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200 205 210 215 “"“Imprimer les fo ntes ~~ * DATA && 1 = - 1: RESTORE : PRINT C HRS (12): HOME I = 1 + 1: READ AS: IF AS < > "&&" THEN T$(I1) = AS: GOTO 150 NBE=1-1 HOME :HT = 23 HTAB HT: VTAB 8: INVERSE : P RINT T$(0);: NORMAL HTAB HT: VTAB 10: FOR G = 1 TO 34: PRINT CHR$ (255);: N EXT G: PRINT FOR I = 1 TO NBE VTAB 10 + I: HTAB HT: PRINT TSI) NEXT I HTAB HT: VTAB 10 + I: FOR G = 1 TO 34: PRINT CHR$ (255) 33 NEXT G: PRINT 1=1 VTAB 10 + I: HTAB HT + 1: IN VERSE : PRINT MIDS (T$(1),2 432) 3: NORMAL HTAB HT: VTAB 14 + NBE: PRIN T "Sélection :FLECHE HAUT ET BAS" HTAB HT: VTAB 15 + NBE: PRIN T "Validation:RETOUR CHARIOT "5: GET RS IF R$ = CHR$ (27) THEN PRI 884D FCAF b18C 389F 7AB3 25F8 28CF 28CF 2ASB 8183 60E8 45A2 9510 E994 0261 3286 9DCB 16AS 9293 FA26 E322 NT D$"RUN/TM1 7/STARTUP" AB4D 220 IF ASC (R$) = 13 THEN PRIN T : GOTO 275 438F 225 IF ASC (R$) = 10 THEN 255 = 32E8 230 IF ASC (R$) < > 11 THEN 20 5 4387 235 VTAB 10 + I: HTAB HT: PRINT T$(1) 3286 240 1=1-1 7ASC 245 IF I < 1 THEN I = NBE CBAA 250 GOTO 200 333D 255 VTAB 10 + I: HTAB HT: PRINT T$(1) 3286 260 1=14+1 8058 265 IF I > NBE THEN I = 1 8AAB 270 GOTO 200 333D 275 ON I GOTO 280,285,290,295 OBA 280 PRINT D$"-APLWORKS.SYSTEM" 5119 285 PRINT D$ + BS + “FONTE” psp 290 GOTO 200 333D 295 PRINT D$ + BS + "VOIR" FASC 100 Be = 8 “70tSeeeseee . OciA 105 DIM C$(8,8) 580A 110 FOR F = 1 T0 8: FORD =1T 8:C$(D,F) = ".": NEXT D: NEX TF EBA 115 D$ = CHRS (4) B3A4 120 E$ = CHR$ (27) CFDA 125 PRINT D$*PREFIX": INPUT PF& 47AC 130 REM 135 TEXT : HOME : PRINT D$"PRE3" : PRINT 1CE6 140 DIM G$(50): PRINT D$"OPEN "; PF$;",TDIR": PRINT D$"READ " ;PFS FA3D 145G=1 4048 150 INPUT A$: INPUT A$: INPUT A$ 582F 155 INPUT G$(G):G$(G) = MID$ (G $(G) ,2,15) ABC2 160 IF G$(G) = "" THEN 175 CF25 165 IF MID$ (G$(G),1,3) = "FT." THEN G$(G) = MID$ (G$(G),4, 12:6=G+1 EDS PaRasessUaasNORESSsORARONNZEAETUTO NEON FONNCC OEE NEAAeRAGHAODNAAAAOMOREAUERERAIELATGHOCEHHMRODDRARATOES TREMPLIN MICRO 13 170 175 180 185 190 (suite et fin) GOTO 155 G = G - 1: PRINT D$*CLOSE" PRINT D$"BLOAD FONTE.CODE" REM IMPRIMANTE VTAB 18: HTAB 10: PRINT “Al1 umer 1’Imprimante (DMP/IW) “ 32 INPUT AS VTAB 18: HTAB 10: PRINT “Edi tion des fontes disponibles 195 200 PRINT D$"PR£1": PRINT E$"q"; CHR (9)"136N"; CHRS (15); C HRS (9)"2" PRINT E$"!" PRINT “EDITION DES FONTES": PRINT PRINT "SYSTEME ““"""3: FOR L = 32 TO 126: PRINT CHR$ (L) jy: NEXT L: PRINT FOR U = 1 TO G:K$ = KS = "FT." + K& PRINT D$"BLOAD"K" ,A$4000" CALL 768 PRINT G$(U) ;E$"“";: FOR L = 32 TO 126: PRINT CHRS (L);: NEXT L: PRINT E$"$" 205 210 215 220 225 230 235 240 GSU) 100 105 PRINT CHR (4)"PRE3": PRINT VTAB 12: PRINT “. o€ Auteur desseeeee «Didier. .CHARRON. LOMEM: 20000:B$ = * ne “""""33 FOR D = 0 TO 9: READ E: POKE 820 + D,E: NEXT : DA TA 104,168,104,166,223,154,7 2,152,72,96: DIM C$(8,8): FO RF =170 8: FORD=1 708 :C$(D,F) = ".": NEXT Dt NEXT F:D$ = CHR$ (4):E$ = CHRS (27) PRINT D$"PREFIX": INPUT PFS PRINT : DIM G$(50): PRINT D$ "OPEN ";PF$;",TDIR": PRINT D $"READ" ;PF$:G = 1: INPUT A$: INPUT A$: INPUT AS INPUT G$(G):G$(G) = MIDS (6 $(G),2,15): IF G$<G) = "" TH EN 140 130 IF MID$ (G$(G),1,3) = "FT." 115 120 125 2046 S06E OFAD A7AE 9807 oA4a? 0288 BOE? BC48 1669 7682 7800 8331 9C9B Bé688 47AC SBFC o719 245 NEXT U asp? 250 PRINT E$; CHR$ (34) 8BFD 255 PRINT D$"RUN STARTUP" FFAE 100 TEXT : NORMAL :D$ = CHRS (4 ) CD3E 105 HOME : VTAB 12: INVERSE : PR INT "FT.VIERGE EN COURS": NO RMAL B0AS 110 A = 16384 9217 115 FOR I = 0 TO 3: READ R: POKE 1 + A,Ri NEXT Apso 120 A =A + 3:B = 31:F = 72 24B6 125 B= B+ 1: POKE A + 1,B: POK EA + 2,F apse 130 FOR I =A + 370A + 10: POK E 1,0: NEXT 2855 135 A =A + 10: IF A < 17337 THE N 125 cops 140 POKE 1,0 1ESE 145 PRINT D$"BSAVE FT.VIERGE,AS4 000,L955": PRINT D$"RUN STAR TUP* F9D9 150 DATA 27,43,27,73 C2AA THEN G$(G) = MID$ (G$<G),4, 12):6=G6+1 oEDS 135 GOTO 125 1B43 140 G = G - 1: PRINT D$"CLOSE":H = 0: IF PEEK ¢ - 1088) - 22 4< =0 THENH=1 C1E3 145 PRINT D$"BLOAD FONTE.CODE": PRINT D$"OPENFONTE.FIN,TTXT" : PRINT D$*READ FONTE.FIN": INPUT HS: INPUT I$: PRINT D$ "CLOSE":H$ = HS + MIDS (BS, 1,12 - LEN (HS)):1$ = I$ + MIDS (B$,1,12 - LEN (1$)):1 = 6 720 150 PRINT D$"PRE3": PRINT 4552 155 GOSUB 300: ONERR GOTO 290 4368 160 IF 1) 14 THEN I = 6 323D 165 IF 1 < 6 THEN I = 14 9B3F 170 IF I = 10 THEN VTAB I: HTAB 353 PRINT * "777777" "; CF4I 175 VTAB I: HTAB 3: PRINT "=)"3: GOSUB 500: IF E = 10 THEN V TAB 1: HTAB 3: PRINT " ~"j:1 OTe GUY-HACHETTE 4 }o--——- 180 185 190 195 200 205 210 215 220 225 230 235 240 245 250 255 260 265 270 275 280 285 290 = 1 + 2: GOTO 160 IF E = 11 THEN VTAB I: HTAB 3: PRINT " “"3:I = 1 - 2: GO TO 160 IF E = 13 THEN 195 GOTO 175 ON (1 / 2) - 2 GOTO 200,230, 235,340,385 VTAB 22: HTAB 39: GOSUB 500: IF E < > 13 THEN 220 IF J$ < > "* THEN I$ = JS IF FS < > “* THEN HS = FS PRINT D$"OPENFONTE.FIN,TTXT* : PRINT D$"WRITE FONTE.FIN": PRINT H$: PRINT I$: PRINT DS "CLOSE": PRINT D$"RUNSTARTUP IF E = 27 THEN 160 GOTO 200 F$ = H$: GOSUB 275: GOTO 200 vei IF J <¢ 1 THEN J = 6G IF J > G THEN J = 1 VTAB 10: HTAB 35: INVERSE : PRINT “ ";G$¢J);" "3: NORMAL : PRINT " “77> ™ TTT eeene hs a TAB 34: GOSUB 500: IF E = 11 THEN J = J - 1: GOTO 240 IF E = 10 THEN J = J + 1: GO TO 240 IF E = 13 THEN F% = G$(J): G OSUB 275: GOTO 200 IF E = 27 THEN PRINT " “""~ woe eee ";: GOTO 160 GOTO 240 IF F% = "" THEN 240 K$ = "FT." + F$: PRINT D$"BL OAD"K$" ,A$4000": VTAB 18: HT AB 10: PRINT “Allumer 1/’Impr imante (DMP/IW) ";: GOSUB 50 0: PRINT D$"PRE1": PRINT ES" N"; CHR (9)"80N"; CHRS (15) 3 CHRS (9)"2": CALL 768 PRINT D$"PRE€3": PRINT : GOSU B 300: VTAB 19: HTAB 10: PRI NT “Fonte "js INVERSE : PRIN T ® SES 3" NORMAL : PRINT " installée "3: RETURN POKE 216,0: VTAB 22: HTAB 39 : PRINT *."3;: VTAB 18: POKE 1403,69: INVERSE : PRINT " E RREUR ";: NORMAL : CALL 820: POKE 216,128: POP*: GOSUB 54 O: POKE 1403,69: PRINT " ~~~ B42F 619C 6989 4948 9899 D749 896E E465 EC10 3330 32A5 7548 881E E21c 7541 ASBF B129 2484 4B41 AABS 3B84 Fo15 295 300 305 310 315 320 325 330 335 “="""33 GOTO 160 POKE 216,0: VTAB 18: POKE 14 03,69: INVERSE : PRINT " ERR EUR ";: NORMAL : CALL 820: P OKE 216,128: GOSUB 540: POKE 1403,69: PRINT © ""°°°"*® 33 GOTO 605 IF H = 1 THEN 310 FOR D = 2 TO 23: VTAB D: HTA Bi: PRINT "!";: POKE 1403,7 9: PRINT “ NEXT D: VTAB 23: HTAB 2: FOR D = 2 TO 79: PRINT "_"“;: NEXT : GOTO 315 PRINT E%: INVERSE : FOR D = 2 TO 23: VTAB D: HTAB 1: PRI NT "2"33 HTAB 80: PRINT "_"; : NEXT D: VTAB 24: HTAB 2: F OR D = 2 TO 79: PRINT "L";: NEXT D: PRINT CHR (24);: N ORMAL VTAB 1: HTAB 2: FOR D = 1 TO NEXT D: VTAB 3: HTAB 5S: PRINT "<?> Catalo gue des fontes ~~~" nombre d e fontes disponibles: "3: IN VERSE : PRINT * "3G;* "3: NO RMAL : PRINT “ "3: VTAB 4: H TAB 2 FOR D = 1 TO 78: PRINT “_";: NEXT D: VTAB 20: HTAB 2: FOR D = 1 TO 78: PRINT “_";: NEX T D: VTAB 6: HTAB 6: PRINT “ «+eeeRetour au SOMMAIRE";: I F H$ = "" THEN VTAB 8: HTAB 6: PRINT “Charger ancienne ~ FONTE";: GOTO 330 VTAB 8: HTAB 6: PRINT "Charg er ancienne ~“FONTE" HTAB 3 5S: INVERSE : PRINT "“ “;H$;" "3: NORMAL VTAB 10: HTAB 6: RINT "Char ger nouvelle 35: PRINT " VTAB 12: HTAB 6: PRINT "Supp rimer ~“"une “FONTE";: VTAB 14: HTAB 6: PRINT "Créer “"n ouvelle “FONTE";: VTAB 15: H TAB 2 FOR D = 1 TO 78: PRINT "_";: NEXT D: VTAB 22: HTAB 16: PR INT " “Sommaire <RETOUR>.... «eeeeSESC> changer de FONTE" yj: RETURN 9OFF 2B4E c290 2CA1 9A2C AID? 6c0s Poseseeqscreassr 25 S05 DrenEssesDoEsarTZasenssAensasannnsnseasspINeNeCnATAREAeROseRINeReeseveceaaELOnsesEeR TREMPLIN MICRO 15 & FONTE (suite) 340 VTAB 14: HTAB 35: PRINT " ~~ es 345 IF 350 IF 355 VTA : PRINT * AB 34: GOSUB 500: IF E = 27 THEN PRINT “ “3: GOTO 160 IF E = 11 THEN J = J - 1: GO TO 345 360 365 IF E = 10 THEN J = J + 1: GO TO 345 370 IF E = 13 THEN HTAB 30: PRI NT "O/N";: GOSUB 500: IF E = 79 THEN GOSUB S50: VTAB 12: HTAB 30: PRINT “ 375 HTAB 30: PRINT “ ~~"; 160 380 GOTO 345 385 PRINT D$"BLOADFT .VIERGE ,AS40 oo" GOSUB 565: GOTO 580 IF H = 1 THEN 405 FOR D = 6 TO 14: VTAB D: POK E 1403,55: PRINT “!"3: POKE 1403,64: PRINT “!"3: NEXT D: UTAB 14: POKE 1403,56: FOR D = 1 TO 8: PRINT "_"3: NEXT : TAB 5: POKE 1403,56: FOR D = 1 TO 8: PRINT "_";: NEXT GOTO 410 PRINT E$: INVERSE : FOR D = 6 TO 13: VTAB D: HTAB 56: PR INT "2";: POKE 1403,64: PRIN T *_";: NEXT D: VTAB 14: HTA B 57: FOR D = 1 TO 8: PRINT "L";: NEXT Dz PRINT CHRS (2 4);: NORMAL : VTAB 5: HTAB S 7: FOR D = 1 TO 8: PRINT *_" 3: NEXT D 410 K = 1: IF E = 13 THEN K = 0 415 FOR D = 56 TO 63: FOR F = 6 TO 13: IF K = 1 THEN VTAB F : POKE 1403,D: PRINT C$<F - 5,D - 55);: GOTO 425 420 VTAB F: POKE 1403,D: PRINT “ 390 395 400 405 4617 881E E21C ci06 3CC7 03cS DBFC 1A68 4347 7407 1053 o759 3461 BDBB S4AE 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 Sis 520 ."3:C$(F - 5,D - 55) = *." NEXT F: NEXT D:M = VTAB 6: POKE 1403,5 = 56: GOSUB 570 IF E = 32 THEN GOSUB 820 IF E = 8 THENC =C ~ 1: IF C < 56 THEN C = 63 IF E = 21 THENC =C + 1: IF C > 63 THEN C = 56 IF E = 11 THENL =L - 1: IF L < 6 THEN L = 13 IF E = 10 THENL =L + 1: IF L > 13 THEN L = 6 IF E = 27 THEN 470 VTAB L: POKE 1403,C: PRINT C $(L - 5,C - 55); CHR$ (8);: GOSUB 570: GOTO 435 UTAB 14: POKE 1403,34: PRINT “TYPE H ou h “3: GOSUB 540: 1403,34: PRINT y: IF E= 720 RE = 104 THEN VL = E: GOTO 480 GOTO 470 VTAB 14: POKE 1403,34: PRINT "RANGER CAR? “;: GOSUB 540: VTAB 14: POKE 1403,34: PRINT a) REPSPRECES Ty IEE we 27-7 HEN I = 12: POKE .1403,35: PR int 2 cere “;: GOTO 40 5 IF E < 32 OR E > 126 THEN 47 0 IF E ) 31 AND E ¢ 127 THEN GOSUB 830: GOSUB 800: GOTO 4 10 GOTO 430: GOTO 160 E = PEEK ( - 16384): IF E < 128 THEN PRINT "_";: FOR F = 1 TO 50: NEXT F: PRINT CH R$ (8);" "3: FOR F = 1 TO 50 : NEXT F: PRINT CHR$ (83: GOTO 500 POKE - 16368,0:E = E - 128: IF E < > 63 THEN RETURN VTAB 6: POKE 1403,55: INVERS ) 4 6:L = 6:C E : PRINT “ CATALOGUE DES FO NTES";: NORMAL :N = 0 L = 8: FORL = 8 TO 13:N=N + 1: IF N > G THEN VTAB POKE 1403,55: PRINT “ oon GOTO 530 IF L = 13 AND N ¢ = G THEN VTAB L: POKE 1403,55: INVERS 96CF 5851 78F4 B335 7784 14DC 56c8 38C4 148A 369D CC9C F046 Fl48 oco2 B9AD 12B6 4888 4573 96ES GUY-HACHETTE 16 alae alah dle Lee Ee 525 530 535 540 545 550 555 560 565 570 575 580 585 E © PRINT " == SUITE "se NORMAL : GOSUB 540:N =N - 1 : GOTO 530 VTAB L: POKE 1403,55: PRINT G$(N); SPC¢ 15 - LEN (G$<(N) 3 NEXT L: IF N ¢ = G THEN 515 VTAB 13: POKE 1403, 5S: INVER SE : PRINT * “""""33 NORMAL : GOSUB 500: FOR L = 6 TO 13: VTAB L: POK E 1403,55: PRINT " BEA nemo sed "$3 NEXT : GOTO 160 E = PEEK ¢ - 16384): IF E < 128 THEN PRINT "_";: FOR F = 1 TO 50: NEXT F: PRINT CH R$ (8);" "3: FOR F = 1 TO 50 : NEXT F: PRINT CHRS (8);: GOTO 540 POKE ~- 16368,0:E = E - 128: RETURN IF 1% = G$(J) THEN I$ = *" IF H® = G$(J) THEN H$ = *" PRINT D$"DELETE FT."G$(J): F OR O = J TO G - 1:68(0) = GS (O + 1): NEXT O:G=G-1:V TAB 3: HTAB 5S: PRINT "<?> Ca talogue des fontes ““""~ re de fontes disponibles :~" 3: INVERSE : PRINT " * 3: NORMAL : PRINT " * RN VTAB 3: HTAB 5: PRINT “ ~"°C réation “de “fontes ~""""nom bre de fontes disponibles :~ ";: INVERSE : PRINT " "3G;" ";: NORMAL : PRINT “ "3: RET URN E = PEEK ¢ - 16384): IF E ¢ 128 THEN INVERSE : PRINT C$ (L - 5,C - 55);: NORMAL : FO R P = 1 TO 50: NEXT P: PRINT CHRS (8);C$(L - 5,C - 55);: FOR P = 1 TO SO: NEXT P: PRI NT CHR$ (8);: GOTO 570 POKE - 16368,0:E = E - 128: RETURN ONERR GOTO 295:F$ = ** IF I$ = "" THEN VTAB 8: HTA B 6: PRINT “Charger ancienne “FONTE";: HTAB 30: PRINT “ Reta oRae esha eee “3: GOTO 6 SS9F A10C 2948 S9C6 é6BC9 A635 1133 PAIS AA02 4ED5 é6BC9 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 VTAB 8: HTAB 6: PRINT “Charg er ancienne “FONTE";: HTAB 3 S: INVERSE : PRINT " ";1$;" bal NOL : PRINT * VTAB 6: ‘irae 6: PRINT “Utili ser “FONTE “vierge"; VTAB 12: HTAB 6: PRINT "Sauy egarder ~““la “FONTE";: VTAB 22: HTAB 16: PRINT "<ESC> Po ur retour au Menu Précédent =6 IF I > 12 THEN I = 6 IF 1 <¢ 6 THEN I = 12 VTAB 12: HTAB 30: PRINT " ~~ VTAB I: HTAB 30: "PRINT "dans : GOSUB 540: IF E = 11 THEN VTAB I: HTAB 30: PRINT “ ~*; 1 = I - 2: GOTO 605 IF E = 10 THEN VTAB I: HTAB 30: PRINT " ““3:1 = 1+ 2: G OTO 605 IF E = 13 THEN 645 IF E = 27 THEN FOR P = 5 TO 14: VTAB P: HTAB 30: PRINT " “s;: NEXT PsI = 14: G oTO 155 GOTO 620 VTAB I: HTAB 30: PRINT " “"" 3: ON (I 7 2) - 2 GOTO 650,6 55,665,705 J$ = "": VTAB 10: HTAB 35: P Le aaa “3: GOS UB 800: GOTO 395 IF I$ = "" THEN 605 J$ = "": PRINT D$"BLOAD FT." 1$" ,A$4000": GOSUB 800: GOTO 395 vai IF J < 1 THEN J IF J > G THEN J 1 VTAB 10: HTAB 35: INVERSE : PRINT " ";G$(J)3" "3: NORMAL : PRINT SPC¢ 14 - LEN (G$¢ J)))5;: HTAB 34: GOSUB 540: I =6 FE = 11 THEN J = J - 1: GOT 0 670 IF E = 10 THEN J = J + 1: GO TO 670 1680 2c80 30E0 303B 8F3D O84E SA97 BCCE 7089 4281 1F43 8B52 6C8D CB7A 7548 881E E21c 219C 9ECS SEMEEESISS ORISA SONAL ANOANUSOOLASAST AAR SSSA STOLILA GSH LG TUSTSTARE TST PALA TOT TSISTTTASE STILLS eAEe TREMPLIN MICRO 7 690 695 700 705 710 715 720 725 730 735 740 745 750 755 760 765 770 775 780 785 FONTE (suite) IF E = 27 THEN PRINT " “~~~ ae "s: GOTO 605 IF E = 13 THEN J$ = G$¢J): P RINT D$"BLOAD FT."J$" ,A$4000 “: VTAB 10: HTAB 30: PRINT * GOSUB 800: GOTO 395 GOTO 670 N= 0:L$ = “": IF J$ = "" TH EN 715 L$ = J$: GOSUB 840:N = LEN (L$): VTAB 12: HTAB 30: PRIN T “=>"53 POKE 1403,34: PRINT L$;: GOTO 735 VTAB 12: HTAB 30: PRINT "=>" 3: HTAB 35 GOSUB 540: IF E = 27 THEN 40 5 IF E <¢ 65 OR E > 90 THEN 720 PRINT CHR (E);:N = N # deb $= 1% + CHR (E) GOSUB 540: IF E = 27 THEN V TAB 12: HTAB 30: PRINT “ “~~ : GOTO 605 IF E = 13 THEN M$ = L$ + MI DS (B$,1,12 - LEN (L$): GO SUB 780: IF @ = 1 THEN 605 IF Q@ = 2 THEN PRINT D$;"BSA VE FT."5L%;",A$4000,L955"::@ = 0: GOTO 605 IF E = 13 THEN PRINT D$;"BS AVE FT.";L$;",A$4000,L955":G = G + 1:68(G) = L$ + MIDS ¢ B$,1,12 - LEN (L$)):J$ = LS : GOSUB 565: GOTO 605 IF E = 8 OR E = 127 THEN PR INT CHR® (8);" "5 CHRS (8);: N=N- 1: IF N ¢ 1 THEN LS GOTO 715 IF E = 8 OR E = 127 THEN L$ = MIDS (L$,1, LEN (L$) - 1): GOTO 735 IF ¢E ¢ 48 OR E > 57) AND (E < 65 OR E > 90) AND (E << > 46) THEN 735 IF N > = 12 THEN N = 12: GO TO 735 PRINT CHR (E);:N =N # UeL $= L$ + CHRS (E): GOTO 735 = 170 G: IF GS NEXT R: IF @ = 0 THEN RETUR N BDA8 6F6A FC48 ODD6 8301 495E scoD 6306 3740 1110 817E 6E9D 6F40 248B 34D1 3688 Bécé F9C4 5483 2581 790 795 800 805 810 815 820 825 830 835 840 845 850 855 VTAB 17: HTAB 6: PRINT " La fonte ";: INVERSE : PRINT " ";M$" "3: NORMAL : PRINT " e xiste déja “/Retour pour acc epter “;: GOSUB 540: IF E = 13 THEN @ = 2 VTAB 17: HTAB 6: PRINT SPC¢ 60);: RETURN VTAB 14: POKE 1403,34: PRINT “APPEL “CAR? ";: GOSUB 540: IF E = 27 THEN POKE 1403,34 2 PRINE, © “SSS Een ate & = 12: GOTO 605 IF E = 13 THEN RETURN IF E < 32 OR E > 126 THEN 80 0 PRINT CHR$ (E);: FOR C = 1 TO 8:A = PEEK (16389 + (E - 32) * 10 + C): FORL = 1 TO 8:S = 128 / 2° CL - 12:89 - L,C) = CHRS ¢ - INT (A / S) * 4+ 46):A =A - INT (A / §) * S: NEXT L: NEXT Cs RE TURN IF C#{L - 5,C - 55) = "#" TH EN C#(L - 5,C - 55) = ".": R ETURN IF C#(L - 5,C - 55) = "." TH EN C#(L - 5,C - 55) = "#": R ETURN POKE 16388 + (E - 32) * 10,E : POKE 16389 + (E - 32) * 10 »VL: FOR C = 1 TO 8:B = O: F OR L = 1 TO 8: IF C#(L,C) = "*#" THEN B= B+ 2° (L - 1) NEXT L: POKE 16389 + (E - 32 > * 10 + C,B: NEXT C: RETURN Aaz=1 IF A > LEN (L%) THEN 855 IF MID$ (L$,A,1) ¢ >" "T HEN A = A + 1: GOTO 845 L$ = MIDS (L$,1,A - 1): RET URN 7843 427C E7F8 7998 DEFF EA28 7224 3224 74FO 18E6 5342 oBc7 7388 129A FONTE.CODE %2"~ *300.332 0300- AY FF 85 06 AY 3F 0308- AD C8 BE 85 08 AD 0310- 85 09 ES 06 AS 06 0318- ES 07 Cé 08 AS 08 0320- DO 06 AS OF FO OC 0328- AO 00 Bi 06 20 ED 0330- 12 03 60 07 BE 02 FF 09 4c GUY-HACHETTE INITIATION CLASSEMENT (alphabétique, mais suivant la longueur) Ce micro-programme ne prétend pas étre un modéle du genre. Il vous montre seulement comment trier une liste dans |'ordre alphabéti- que, mais en priorité suivant la longueur des mots. Vous noterez que le tri alphabétique est effectué en plusieurs fois, précisément par groupe de mots de n lettres. 100 TEXT : HOME :D% = CHR (4) 7938 105 S = 20: VTAB 23: PRINT “TAPE R DES MOTS (RIEN POUR ARRETE R)";: VTAB 1: PRINT : VTAB 1 BOSC 110 DIM M$<S + 1) 8694 115 FOR N = 1 TO S: PRINT N" "33 INPUT “-> "3M$(N)3 IF M$<N) = "" THEN 125 B004 120 NEXT N BDO 125 K = O:IN=N - t:L1 = 30 F9DS 130 FOR I = 1 TON:L = LEN (M$¢ 1)): IF L > L2 THENL2 =L E54D 135 IF L < Li THEN LI =L BDAS 140 NEXT 0582 145 FOR I = L1 TO L2 5056 150 K1 = K 8697 155 FOR J = K + 1 TON: IF LEN (M8(J)) < > 1 THEN 175 4D5F 156 IF J = K + 1 THEN 171 8068 160 M$ = M$(J) 3B4D 165 FOR X = J TOK + 2 STEP -1 2M$(X) = MS(X - 1): NEXT X Sco0é 170 M$(K + 1) = MB AE47 W7iK=K+1 215F 175 NEXT J A3CC 180 IF Ki = K THEN 210 3C9B 185 IF K = K1 + 1 THEN 210 1A94 190 F = 0: FOR 2 = Ki + 1 TOK - 1 FoAS 195 IF M®(Z) < = M$(Z + 1) THEN 205 490A 200 M& = M$(2):M$(2) = MSZ + 1) 2M$(2 + 1) = M$:F = 1 OEA? 205 NEXT Z: IF F THEN 190 C067 210 NEXT I 9DCB 215 FOR I = 1 TON: VTAB I: HTAB L2 + 8: PRINT M$(I1): NEXT 4308 220 VTAB 22: PRINT : PRINT "(E)N “(A)PPLESOFT ~(M)ENU DI SK "y: GET R$ 0As8 225 = "M" OR R& = "m" THEN PRINT D$"RUN /TM17/STARTUP" 4002 230 IF R$ = "E" OR R$ = “e" THEN RUN SAB? 235 IF R& = "A" OR R$ = "a" THEN HOME : END 5SE26 240 GOTO 220 273F QUESTION LUC n’est pas @ sa place. —SSSaa Qu’est-ce qui a pu se passer ? 1. ADELE 1. Guy 2. BENOIT 2. ADELE 3. GUY 3. ANNIE 4, RAOUL 4. LUC §. LUC 5. RAOUL 6. ANNIE 6. BENOIT TREMPLIN MICRO it) Votre bibliotheque INFORMATIQUE | »:s«s:0« —< ; —s | ¢ LA PROGRAMMATION EN BASIC AVEC ProDOS (Apple) Qui peut se vanter de bien connaitre Pro- DOS ? Vous... alors, bravo ! Parcourez tout de méme les 265 pages de ce manuel “otficiel” et je parie que vous y appren- drez encore quelques détails ignorés. Je vous signale au passage qu'il est accom- pagné de sa disquette (ProDOS 1.1.1), laquelle comporte notamment le pro- gramme de renumérotage (et autres commodités), intitulé "APA". INTER EDITIONS, 87 rue du Maine, 75014 PARIS Tél. : 43.27.74.50 ¢ INTRODUCTION AU BASIC (par Pierre LE BEUX) Si le MS BASIC — beaucoup plus structuré ing notre bon vieil AppleSoft — n‘a plus secrets pour vous, c'est sans doute parce que vous chatouillez parfois le cla- vier d'un IBM PC ou de quelque clone (pas drdle du tout !). Pierre LE BEUX vous propose, dans cette nouvelle édition, non pas un survol rapide du MS BASIC, mais bien une étude compléte et méthodique de ce langage. Je ne vous conseille pas d’escamoter le cha- pitre "introduction et pas davantage le sui- vant, consacré aux “généralités du langage Basic”. Ils vous procureront certainement une meilleure connaissance du Basic en général et du MS BASIC en particulier. J'ai beaucoup apprécié la présentation claire et concise de ce gros manuel (500 pages), mais plus encore les nombreux exemples dont il est émaillé (I'auteur sait sortir des sentiers battus !) : tris, carrés magiques, probleme des huit reines, etc. Pierre LE BEUX, ingénieur de |'Ecole Cen- trale, docteur en informatique de |'Uni- versité de Californie est aussi professeur 4 l'Université de technologie de Compie- gne. On se prend 4 envier ses éléves ! SYBEX, 6-8 imposse du Curé, 75018 PARIS, Tél. : 42.00.95.95 e TECHNIQUES DE PROGRAMMATION EN C LA GESTION DES (par R. A. RADCLIFFE et T. J. RAAB) Cet ouvrage (traduit de l'américain par Yann Festal) se présente sous la forme d'un manuel de haut niveau destiné @ la fois aux programmeurs expérimentés et aux déve- loppeurs. I! aborde deux aspects fondamen- taux des logiciels d'application : l'interacti- vité et le besoin permanent de stocker des données. De nombreux exemples illustrent les fonctions d'entrée, de validation, d'atfi- chage et de stockage. Lo premiére partie, consacrée au concept de structure de données, regroupe les techni- ques d'encodage, de décodage et de valida- tion. La deuxiéme partie traite des diffé- rents types de données et comprend un cha- pitre entier sur le développement de types de données personnalisés. Lo troisieme par- tie présente des exemples d'applicat.on cor- respondants aux parties | et 2. Les auteurs : — Robert A. Radcliffe est consultant en systémes d'information. II concoit et met en place des logiciels informati- ques ainsi que des applications pour micro-ordinateurs. — Thomas J. Raab se spécialise dans la recherche micro-informatique et les technologies de pointe. 676 pages brochées. SYBEX, 6-8 impasse du Curé 75018 PARIS. TECHNIQUES DE PROGRAMMATION EN LA GESTION DE DONNEES ¢ AMSTRAD PCI512, GUIDE DU GRAPHISME (par G. FAGOT-BARRALY) Ce guide permet de tirer le meilleur parti des possibilités graphiques de |'Amstrad PC1512. Il s‘adresse a la fois aux débu- tants et aux programmeurs confirmés. II décrit, par un grand nombre de program- mes, de dessins et de photographies d’écrans, toutes les instructions qui con- cernent le graphisme. Plusieurs chapitres traitent, entre autres : Du multifenétrage, caractéristique de l'ordi- nateur — des notions relatives ‘au tracé des figures géométriques — de /affichage alphanumérique — des commandes de des- sin — du graphisme de type LOGO. Le livre (305 pages au format 160X220) se termine par l'analyse des méthodes qui permettent de déplacer ou d’agrandir un motif ou encore de lui faire subir symétries et rotations. Uauteur: Georges Fagot-Barraly, profes- seur de mathématiques et d'informatique, est spécialiste de l'utilisation des — micro- ordinateurs dans |'enseignement. II est l'outeur de nombreuses publications sur la programma- tion en BASIC et en Assembleur. SYBEX, 6-8 impasse du Curé, 75018 PARIS, Tél. : 42.03.95.95 suseeeeuanacnecacouasescesenserenseseusannsesconsassaenessensoseaasserseenassceceussen.ueuenseeseenoeee 20 GUY-HACHETTE SugasceesrennsaannesnessaseesescerecoeasssaeesenneseseeussseReeoenEENaseaeseeesasvaseeoesNoReRoseseBCES ILITAIRE Marcel COTTINI PLACE-DOS Configuration requise : tout Apple // avec une RAM de 64 Ko ou plus, le DOS 3.3 Slave, et un lecteur de disquettes 5 pouces 1/4. PLACE DOS est un programme écrit en Basic Applesoft, permettant de sauvegarder (Write) sur les pistes $00-$02 d'une disquette déja initialisée, un systeme d’exploi- tation placé en mémoire centrale et patché par le programme PATCH DOS. Son fonctionnement convient tout aussi bien pour un DOS Slave autre que le DOS 3.3. Lorsque le programme est exécuté, il appelle un sous-programme en langage machine : RWTS.OBJ. Par la suite, HIMEM est déclaré 4 16384. Le programme, d'une structure des plus simples, exploite certaines astuces liées au DOS 3.3. Un menu clair et précis renseigne |'utilisateur sur la poursuite éventuelle de l’exécu- tion en cours, permettant un suivi des principales phases du programme. La tou- che ESC (Escapade) autorise un retour au menu précédent, ou l’abandon pur et simple du programme avec l'option du numéro du slot. . APROPOS DU PROGRAMME Les variables SL et DR mémorisent respectivement les numéros du slot et du drive ou se trouve la dis- quette 4 traiter. Le numéro de la disquette actuelle est lu, puis mémorisé pour une application future. Le nom du programme de boot, sauvegardé sur la piste $01 secteur $09 de la disquette, sera déclaré, puis formaté dans une chaine de caractéres limitée 4 30 codes ASCII. Cette contrainte est dictée par le DOS 3.3 qui n‘accepte qu'un maximum de 30 carac- téres pour un nom de fichier. Uacceptation du nom du boot suppose certaines contraintes : © Un maximum de 30 caractéres est autorisé. © Le premier caractére du nom sera un caractére alphabetique. © Aprés le premier caractére alphabétique, tout carac- tére sera toléré. © Lebit7 sera mis 41 (ligne 630). * Les touches de déplacement sont tolérées. * Les minuscules sont interdites. PHASES ESSENTIELLES DU PROGRAMME Lignes 170-200 Affichage du menu 4 I'écran. Lignes 210-256 Mémorisation du numéro du slot. Lignes 260-310 _Mémorisation du numéro du drive. Ligne 350 Annule une ancienne chaine du méme nom. Lignes 360-480 Composition de la chaine de caracté- res avec lenom du boot. Formate la chaine de caractéres avec les variables tableau. Lignes 510-590 On détermine le type de fichier booté : A = AppleSoft ; B = Binaire ; E = EXEC. Lignes 610-630 On poke le nom du programme de boot dans le tampon mémoire réservé , au DOS. Lignes 640-750 On sauvegarde le DOS implanté en mémoire centrale sur les trois pre- miéres pistes de la disquette et dans un ordre déterminé. lignes 770-800 Gestion d'une erreur éventuelle. Lignes 810-820 On quitte le programme. (suite poge 22) Ligne 500 SescresesesnsanesEeesecaseveas eee seEREEEUss ese ee EesRasesseeNesseOeeeeEsEeBeZaBeUEsROssAveoReEoRSenADe TREMPLIN MICRO 21 aaa laltaladlaleatalaialalalal 100 Ne 120 130 140 150 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 370 380 390 REM REM REM REM REM REM PRINT CHRS (4);’BRUN RWTS.OBJ" HIMEM: 16384 DIM NO$(32) ONERR GOTO 800 REM SLOT ET DRIVE TEXT : HOME : NORMAL SL = PEEK (43626): REM SLOT DR = PEEK (43624): REM DRIVE VOL = PEEK (46017): REM NUMERO DE LA DISQUETTE REM MENU TEXT : HOME : INVERSE : PRINT " PLACE LE DOS MODIFIE”: NORMAL : PRINT : PRINT “SUR LES PISTES $00-$02 DE LA DISQUETTE” PRINT FOR X = PRINT VTAB 8: HTAB 1: PRINT “ - LA DISQUETTE SE TROUVE:" REM SLOT NUMBER VTAB 9: HTAB 1: PRINT ” GET SL$ IF SL$ = CHR$ (27) THEN GOTO 810 IF SL$ < "3" OR SL$ > "7" THEN 220 PRINT SL$ REM DRIVE NUMBER VTAB 10: HTAB 1: PRINT” i: GET DRS IF DR$ = CHR$ (27) THEN VTAB 9: CALL - 868: GOTO 200 IF DR$ < "1" OR DR$ > "2" THEN 270 PRINT DR$ SL = VAL (SL$):DR = VAL (DR$): REM REVECTORISE SLOT & DRIVE REM BOOT NAME VTAB 8: HTAB 1: 1 TO 40: PRINT "%";: NEXT X: - SLOT : ";: ~ DRIVE: " CALL - 958: PRINT “BOOT: "; REM ANNULE LA CHAINE FOR NUL = @ TO 30:NO$(NUL) = "":NO$ = NO$(NUL): NEXT NUL: REM ANNULE L'ANCIENNE CHAINE REM HELLO NAME FOR HEL = 0 T0 30 VTAB 8: HTAB7 + HEL: GET NO$(HEL) IF HEL<> @ AND NO$(HEL) = CHR$ (13) 400 410 420 430 440 450 460 470 480 490 500 510 520 530 540 550 560 570 580 590 600 610 620 THEN NO$(HEL) = '": GOTO 500: REM TESTE LA TOUCHE RETURN IF NO$(G) = CHR$ (27) THEN VTAB 8: HTAB 1: CALL - 958: GOTO 270: REM TESTE LA TOUCHE ESCAPE IF NO$(HEL) = CHR$ (27) THEN VTAB 8: HTAB 7: CALL - 868: GOTO 340: REM TOUCHE ESC (RETOUR AU MENU) IF HEL = 30 THEN HEL = 29: VTAB 8: HTAB 7 + HEL: CALL - 868: GOSUB 796: GOTO 380: REM TESTE LES 30 CARACTERES ADMIS IF NO$(HEL) = CHR$ (8) AND HEL> @ THEN NOS$(HEL) = “":HEL = HEL - 1: VTAB 8: HTAB 7 + HEL: CALL - 868: GOTO 380: REM TESTE LA TOUCHE FLE CHE GAUCHE IF HEL< @ THEN HEL = 0: GOSUB 790: NO$(@) = "": VTAB 8: HTAB 7: CALL -868: GOTO 340: REM PREMIER CARACTERE ? IF NO$(@) < CHR$ (65) OR NO$(G) > CHR$ (90) THEN GOSUB 790: GOTO 380: REM PREMIER CARACTERE ALPHABETIQUE ? IF NO$(HEL) < CHR$ (32) OR NO$(HEL) > CHR$ (95) THEN GOSUB 790: GOTO 380: REM CARACTERES SUIVANTS ? VTAB 8: HTAB 7 + HEL: PRINT NOS(HEL);: REM AFFICHE LE CARACTERE TAPE NEXT HEL REM FORMATE LA CHAINE FOR CAR = @ TO 29:NO$ = NO$ + NO$(CAR): NEXT CAR REM FILE TYPE VTAB 8: HTAB 1: "(A)PPLESOFT OU GET PKS IF PK$ = CHR$ (27) THEN GOTO 330 IF PK$<> "A" AND PK$<> "B” AND PK$ < > "E" THEN GOTO 530 VAR = 40514: REM TYPE DE FICHIER IF PK$ = “A” THEN PK$ = “APPLESOFT": POKE VAR,6: GOTO 616 IF PK$ = "B" THEN PK$ = "BINAIRE”: POKE VAR,52: GOTO 610 IF PK$ = "E” THEN PK$ = “EXEC”: POKE VAR,20: GOTO 616 REM POKE HELLO NAME VTAB 8: HTAB 1: CALL - 958: FLASH : PRINT " WRITE DOS - - - -": NORMAL: PRINT : PRINT “BOOT NAME: ";NO$: PRINT “FICHIER : ";PK$: PRINT "VOLUME “VOL FOR NO = 1 TO 31: POKE 43636 + NO,160: NEXT NO: REM ANNULE HELLO CALL - 958: PRINT INAIRE ( (E)XEC —» "; 22 GUY-HACHETTE 640 650 670 690 700 70 720 730 FOR | = 1 TO LEN (NO$): POKE 43636 + |, ASC ( MID$ (NO$,I)) + 128: NEXT I: REM POKE LE NOM NO$ REM WRITE DOS & DISK(SL,DR,G00) BUFF = 46592 POKE 43615,0: REM ANNULE LA COM MANDE POKE 47083, VOL: REM POKE LE NUMERO DU VOLUME ACTUEL FOR | = 0 TO 9: & WSEC(@@,1, BUFF): BUFF = BUFF + 256: NEXT| BUFF = 39680 FOR | 16 TO 15: & WSEC(@0,1,BUFF): BUFF = BUFF + 256: NEXT | BUFF = 41216 FOR| = 1TO1: & WTRK(I, BUFF): NEXT I 740 750 760 770 780 790 800 810 820 BUFF = 45312 FOR | = @ TO 2: & WSEC(@2,1,BUFF):BUFF = BUFF + 256: NEXT GOTO 120 REM GESTION ERREUR HOME : VTAB 12: & BELL: & BELL: PRINT "I/O ERROR - LECT/ECRITURE IMPOSSI BLE.": PRINT "TAPEZ UNE TOUCHE POUR CONTINUER....”: GET R$: RETURN FOR BIP = 1 TO 10: & BELI: NEXT BIP: RETURN GOSUB 776: GOTO 170 REM QUITTER LE PROGRAMME HOME : PRINT : PRINT "GOOD BYE.-": & BELL: END Tapez ces codes suivant le 9000: AY 17 8D Fé processus 9010: AD EA B7 8D habituel et 9020: FO 1A C9 FF 9030: DE £8 BD 4C sauvez'voire 9040: 19 Ad 19 BD programme par 9050: 00 52 53 45 un BSAVE 9060: 57 54 52 4B RWTS.OBJ, 9070: F3 90 73 91 9080: 00 85 3C 20 A$9000,LSOIFA 9090: AS BB 85 42 90A0: C8 DO F7 84 Si vous possédez 9080: 89 4C Bi 00 notre disquette oe 76 a : + 43 a 90E0: 00 00 00 00 90F0: 03 00 00 00 l'exactitude de la 9100: 03 4C 99 E1 saisie. 9110: BE DE 20 67 9120: D7 90 AI 00 9130: 03 4C B8 DE 9140: 8E DB 90 4C 9150: D9 90 20 BE 9160: DE 20 67 DD 9170: 90 4C BB DE 9180: 04 4C 12 D4 9190: DA 90 18 AD WT ie 91A0: CE DE 90 CE 91B0: A9 02 8D E1 91C0: 90 4C 8D 91 BJ 91D0: AB 88 DO FD 91E0: 50 AI 22 AD mee 91FO: 01 FO EE 2C 03 07 FO 90 RUWTS.OBJ ,A$9000 ,L$01FA ag 90 COMPLEMENT DE PLACE.DOS 8D F7 03 AD E9 B7 8D D6 90) = AB46 A2 00 86 19 AD 00 BD 4C 90) = -B2IC B8 DO 07 C8 E8 DO EF 4C C9 P5AE E8 E6 19 DO DF 20 98 DF 0S =C BSS BD 70 90 48 60 44 49 53 4B 486E 53 45 43 00 52 54 52 4B 00 = 44a2 4C 4C 00 42 45 4C 31 00 FF 1BéA 91 AF 91 C3 91 DE ¥1 00 AP 9CEe2 22 DO 2A Eé BB DO 02 E6 BY ABC 43 AO 00 B1 BB C9 22 FO 03) Cia! 65 B8 85 B8 A? 00 65 B9 85 _BNAS AS 81 30 04 AS 82 30 03 4C 0298 3C C8 Bi 83 48 C8 BI 83 85) = 4a 01 00 00 00 E46 90 00 00 00 75AA 01 EF D8 AO DS AY 90 4C D9 BFE 20 67 DD 20 FB ES £0 08 90) = EN99 84 0A 0A 0A 0A 8D DS 90 20) ~DPFD —6 £0 03 BO ES 8E F2 90 BE FI? 8D D8 90 20 B7 00 C9 20 FO) ABDI 20 67 DD 20 FB E6 8E F3 90) 6F1? BB DE 20 67 DD 20 FB E6 8E D884 DD 20 FB Eé 8E DA 90 20 BE EEO AS 50 8D DD 90 AS 51 8D DE ENEB E1 90 20 46 91 20 EA 90 90) = 9938 02 8D E1 90 DO EC A9 OF 8D 4840 OF 8D DE 90 20 EA 90 BO E1 4C3B F3 60 A9 01 8D Et 90 DO OS) FiS4 DE 20 55 91 AD DA 90 8D DP = ABES 5B AO 1B 88 DO FD 2C 30 CO 73CB EE 2C 30 CO CA DO EA 60 AZ Fla? FD 2C 30 CO A8 88 DO FD EF 85414 DO EA 460 8FDF TREMPLIN MICRO 23 PAVES 10 TEXT : NORMAL : PRINT CHRS HV ALEATOIRES (21): HOME 9BC0 15 FOR I = 768 TO 786: READ R: $E6F5 transmet la valeur de H, puis celle de V. POKE 1,R: NEXT AD2E $FBCI calcule l'adresse de base de la ligne V. & @ 20 Y= INT ¢ RND (1) * 23) AEDS $FC2F additionne H 4 cette adresse. i= a We aN ‘ = (1) * 39) and it A ee v5 te pavé (mode inverse) est stocke. 23 35 iF PEEK (49249) < 128 THEN Pomme ouverte (Basic) arréte tout. 5 § 20 1D7E 0300- 20 F5 Eé JSR $E6FS & > 40 VTAB 23: CALL - 868: PRINT 0303- 8A TXA ae "(M)ENU DE DISQUETTE “3: GET 0304- 20 C1 FB JSR FBC1 E a R$: VTAB 22 A484 0307- 20 FS £6 JSR E6FS = £ 45 IF R$ = "M" OR R$ = "m" THEN 030A- 8A TXA at PRINT CHR (4)"RUN STARTUP" 549° 0308- 20 2F FC JSR $FC2F S50 HOME 2F97 030E- Ag 20 LDA £$20 55 DATA 32,245,230,138,32,193,2 0310- 91 28 STA ($28), 51,32,245,230,138,32,47,252, 0312- 60 RTS 169,32,145,40,96 1072 QUESTION REPONSE Merci de votre confiance, mais il me faut vous contredire. ProDOS se borne, lors du Boot, & identifier trois classes de périphériques : les = Sy (© <0"FeS 80 colonnes, les périphériques stockant les infos et les horloges (Jemploie dans ce cas le pluriel car les nouvelles versions reconnaissent la Thunderclock et 1 horloge //GS). Monsieur KOENIG, Puisque vous disposez de PRODOS 1.1.1, je vous suggére de faire BLOAD PRODOS, TSYS,A$2000, CALL - 151 puis Abonné 4 Tremplin Micro, je me permets de vous écrire pour une question que j'ai déja posée au Support Technique Apple (je suis membre du club Apple). La voici : Lors du Boot de ProDOS*, une routine teste tous les slots (de 1 47) et reconnait donc certaines cartes (Thunderclock, driver, souris (II*), Super série...). Pour ce faire, ProDOS doit sans doute avoir une table de références. A quelle adresse se trouve-t-elle ? Le Support Technique Apple ma simplement conseillé de consulter ma documentation, car il se dit "support technique et non de développement” ! Je dois vous avouer que cette réponse me reste coincée dans la gorge ! Espérant que vous puissiez répondre 4 ma question, agréer monsieur, mes sincéres salutations. €.G. (LEBLANC MESNI). * ProDOS 1.0.2/1.1.1 utilisés. 252A LLLLL.. jusqu’d 2674. Cest la zone d'identification des périphériques. Ce n'est pas trop difficile 4 interpréter. Je traduis ci-aprés une page de la DOC ProDOS APPLE. Durant sa mise en place, ProDOS recherche les dispositifs de stockage/lecture de blocs. Pour le connecteur n, ProDOS considére qu'il est en présence d'un "lecteur de disque” si la ROM associée & ce connecteur contient les identificateurs suivants octet Cn07 est présent dans la table $Cn01 = $20 $Cn03 = $00 $Cn05 = $03 de ProDOS, mais il n'est pas testé. ProDOS contréle ensuite le contenu de l'adresse $CnFF : Si CnFF = $00, ProDOS considére qu'il o trouvé un lecteur de type DISK II équipé des ROMs 16 secteurs et stocke, dans la table de “devices” intégrée s'il s'agit de ProDOS16, dans la table de “devices” en page globale s'il s‘agit de ProDOS8, l'adresse du “Driver de DISK II". Ces routines de gestion de DISK Il sont integrées & ProDOS et supportent tout lecteur qui émule un lecteur DISK Il APPLE (16 secteurs). Pour mémoire, cela suppose, entre autres, 289 blocs et un seul volume. Si CnFF = SFF, ProDOS considére qu'il est en présence d'un DISK II équipé des ROMs 13 secteurs. Comme il ne sait pas manipuler ce format, il quitte ce connecteur et poursuit ses recherches. Si CnFF contient une voleur différente de $00 ou SF, ProDOS considére qu'il a trouvé un “contréleur de disque intelligent’, Si en outre l'octet d'état en SCnFE indique que le périphérique supporte les oppels READ et STATUS, ProDOS range dans lo table de devices (P8 ou P16) l'adresse du driver correspondant, & savoir : $Cn pour l'octet hout et le contenu de SCnFF pour l'octet bos. En d'autres termes, $CnFF contient l'octet bas du driver correspondant au connecteur n°, Les adresses spéciales de la ROM sont : SCnFC/FD Nombre total de blocs sur ce périphérique. Information utile pour créer lo table d'occupation du volume et |'en-téte du CATalogue principal aprés le formatage. Si la valeur stockée a cette adresse est nulle, le nombre de blocs doit étre obtenu & I'aide d'un appel 4 lo routine STATUS pour CE périphérique. SCnFE Cest l'octet “status” de ce périphérique. Les bit 0 et | doivent étre 4 1 pour que ProDOS installe le vecteur relatif & ce périphérique dons sa table de “devices” Bit n° Signification du bit mis & 1 3. périphérique supportant le Formatage. 7 support amovible 2 onpeut écrire sur ce périphérique. 6 périphérique interruptible 1 onpeut lire sur ce périphérique. 5-4 nombre de volumes dece “device” (Ja3) | on peut appeler STATUS sur ce périphérique, © SCnFF Octet bos du point d’entrée du driver relotif & ce connecteur, que ProDOS placera dans sa table de "devices" Je compléterai en signalant que lo carte contrdleur de lecteurs 3°5 est un périphérique supportant 4 volumes tout comme le "SMARTPORT” du llc ou du lIGS. Yvan KOENIG. 24 GUY-HACHETTE eens TILITAIRE Les lecteurs de Tremplin Micro sont certainement des familiers de la télématique en général, et du MINITEL en particulier. Ce Roland JOST dernier posséde une touche nommée LOUPE qui permet un agrandissement de I'écran. Avec LOUPE, votre APPLE vaudra bien un MINITEL et méme plus, puisque le déroulement d'écran et la copie sur imprimante vous sont offerts en sus. Si vous disposez de l’assembleur EDASM (Tool- kit) d'APPLE en version DOS ou ProDOS, entrez le source tel quel et compilez-le sous le nom de LOUPE.A. Si vous disposez d'un autre assembleur pour APPLE, tapez le source en fai- sant les modifications nécessaires. Sinon, pas- sez en mode Moniteur par CALL - 15] et entrez le programme en hexadécimal : BAGG: 20 FA 8A AD OG CO etc... Sauvez sur une disquette par BSAVE LOUPE.A, A$8AGG,L$262. Pour accélérer le tracé HGR, LOUPE.A utilise des tables d’adresses. Pour éviter la saisie de ces tables, employez le programme CREATABHGR. Création de LOUPE.@ : BLOAD LOUPE.A RUN CREATABHGR BSAVE LOUPE.G,A$8AG@,L$528 Tapez maintenant le programme BASIC DEMO. LOUPE et sauvez-le. Si vous possédez la disquette IMAGEWRITER TOOLKIT (DOS 3.3), transférez le programme en langage machine GF de cette disquette sur celle qui contient LOUPE.@ et DEMO.LOUPE. Pour cela, faites : BLOAD GF puis, sur votre disquette, BSAVE GF,A$9000,L$200. Ayez aussi sur la disquette une image graphi- que haute résolution de votre choix, puis fai- tes RUN DEMO.LOUPE. Dés que l'image HGR est affichée, vous pouvez utiliser les commandes suivantes : * L pour passer en mode LOUPE. * $ pour voir l'autre moitié de l'image. * — pour un déroulement d'image vers le haut. * «— pour un déroulement d’image vers le bas. * (RETURN) (touche ENTER) pour revenir a l'image normale. * (ESC) pour retour en mode TEXT. Si GF est présent sur la disquette, il vous est pro- posé une copie écran sur IMAGEWRITER. Répon- dez (O)ui pour obtenir une image 21+ 27. A quoi peut servir LOUPE ? Bien évidemment la majorité des lecteurs de Tremplin Micro peut se passer de LOUPE pour déchiffrer I’écran APPLE. Il existe heureuse- ment d'autres utilisations : 1, Donner un look neuf 4 des images graphi- ques (portraits par exemple) en effectuant une dilatation dans le sens de la hauteur. 2. Ecrire des affiches 21* 27 si vous disposez d'un utilitaire d'écriture de texte en page graphique. Dans ce domaine, EDIGRAPH (paru dans Pom’s) me rend de grands services (suite page 26) TREMPLIN MICRO 25 4, Employer des sous-programmes de LOUPE pour vos propres applications : a. sp. LOUPE: programme de dilatation verticale d'une image HGR stockée en page 1. Les 91 premiéres lignes dilatées sont stockées en page HGR 2 ($4000- $5FFF), la deuxiéme moitié de l'image dilatée se trouve en page graphique 3 ($6660-$7FFF). Appel par CALL 35433. sp. SWAP : ce programme échange le contenu de deux pages graphiques, en occurrence ici la page 2 ($4000-$5FFF) et la page 3 ($6000-$7FFF). Appel par CALL 35551. ¢. sp. SCROLLUP : réalise un déroulement de la page 2 vers le haut, la page 3 alimente le bas de la page 2. Ce qui disparait de la page 2 est réécrit en fin de page 3. On peut réaliser ainsi un déroulement sans fin. Appel par CALL 35328 ($8AQQ) suivi de CALL 35614 ($8BIE) pour dérouler I'écran d'une ligne vers le haut. Exemple de programme de déroule- s ment continu : BLOAD IMAGE1,A$4000 : charge 1°° image en page 2 BLOAD IMAGE2,A$6000 : charge 2° image en page 3 400 CALL 35328 : REM initialise le mode déroulement 410 CALL 35614 : GOTO 410 d. sp. SCROLLDOWN : action identique & SCROLLUP mais vers le bas. Appel par CALL 35328 suivi de CALL 35726. 4, Enfin le dernier intérét de LOUPE, et non le moindre, est didactique. En effet, la ges- tion des pages graphiques de |'APPLE // n‘est pas évidente 4 priori. L'étude du pro- gramme source permettra aux lecteurs de se familiariser avec la manipulation des octets en page graphique. Quelques explications : Une page graphique d’APPLE // comporte 192 lignes de 40 octets. Les 7 premiers bits d'un octet représentent chacun un point de |'écran (allumé si bit=1 ou éteint si bit=@). On retrouve ainsi les 280 points disponibles hori- zontalement en haute résolution. Les octets de la page graphique ne sont mal- heureusement pas stockés en mémoire de facgon séquentielle. Les adresses de début des 192 lignes ne peuvent étre obtenues qu’aprés un calcul qui prend du temps s'il doit étre répété de nombreuses fois, et ceci méme en assembleur. C'est donc pour des raisons de rapidité que l'on utilise des tables contenant ces adresses de début de ligne. En réalité, il faut une table pour les octets bas des adresses (TABIL) et une autre pour les octets hauts (TAB1H, TAB2H et TABSH pour les pages 1, 2 et 3 respectivement). Le principe de la loupe est de grossir l'image dans le sens de la hauteur, donc de dupliquer chaque ligne de la page 1 en I'écrivant deux fois en page 2 (pour les 91 premiéres lignes) et en page 3 (pour les 91 derniéres lignes). Le swapping (échange) des pages 2 et 3 con- siste 4 échanger chaque octet d'une page avec l'octet correspondant de l'autre page. Le déroulement d'écran (scrolling) est beau- coup plus compliqué. Prenons le cas du dérou- lement vers le haut et décomposons les diffé- rentes opérations : * Sauvegarde des 40 octets de la premiére ligne (@) de la page 2 dans un tampon. * Copie de la ligne 1 dans Ia ligne @, ... de la ligne n dans la ligne n-1, ... de la derniére ligne (191) dans Ia ligne 190. © Copie de la 1° ligne de la page 3 dans la derniére ligne de la page 2. * Copie de la ligne 1 de la page 3 dans la ligne @ de cette page, ... de la ligne n dans la ligne n-1, ... de la derniére ligne dans la ligne 190. * Enfin copie du tampon dans Ia ligne 191 de la page 3. Toutes ces opérations pour dérouler |'écran d'une ligne vers le haut ; pour x lignes, il fau- dra répéter toute la séquence x fois... Le processus est inversé pour SCROLLDOWN qui effectue un déroulement vers le bas. LOUPE est compatible DOS et ProDOS. Con- trairement 4 certains écrits, le programme GF de la disquette IMAGEWRITER Toolkit (DOS 3.3) est apparemment utilisable sous ProDOS (servez-vous de CONVERT pour Ia conversion). 26 GUY-HACHETTE Les fichiers proposés sur la disquette : 190 200 210 226 230 240 245 250 260 POKE 216,0:IMP = 0 LOUPE = 35433:SWAP = 35551 INPUT "NOM DE L'IMAGE ";NS: IF NS = "" THEN END HGR : POKE - 16302,0 PRINT D$"BLOAD "N$",A$2000" CALL 35328: REM INITIALISE CERTAINS POINTEURS CALL 35367: REM APPEL COMMANDES TEXT IF IMP = 0 THEN 390 350 370 390 LOUPE : Programme source (Assembleur EDASM LOUPE.O : Programme assembleur = LOUPE.A + ProDOS). tables. ‘ DEMO.LOUPE : Driver pour LOUPE.G. LOUPE.A : Programme objet correspondant. LOGO.LOUPE, : Images HGR. CREATASHGR ; Programme BASIC permettant de géné- WLoUrE rer les tables d'adresses nécessaires. Lisez page 35 comment utiliser la démo. DEMO.LOUPE 100 REM DEMO.LOUPE 270 PRINT "VOULEZ-VOUS IMPRIMER 110 REMR.JOST (C) 1986 L'IMAGE (O/N) ?";: GET R$: PRINT R$: (C) i IF R$ <> "O" THEN 396 120 TEXT : HOME : PRINT "DEMONSTRA TION DE LA LOUPE APPLE” 290 PRINT D$"PRE1” 130. PRINT : PRINT 300 PRINT CHR$ (27) + CHR$ (78);: REM 140 IMP = 1 CARACTERES PICA 150 D$ = CHRS (4) 310 PRINT CHR$ (27) + CHR$ (118);: REM 160 PRINT D$”BLOAD LOUPE.O” POSITIONNE LE HAUT DE PAGE 170 ONERR GOTO 190 320 PRINT CHR$ (27) + CHR$ (62);: REM 180 PRINT D$"BLOAD GF”: GOTO 200: REM MODE UNIDIRECTIONNEL GF EST LE PROGRAMME DE HARDCOPY DE LA DISQUETTE IMAGEWRITER TOOL on GUL IOs KIT (DOS 3.3). 340 POKE 6,1: POKE 7,7: CALL 36864: REM HARDCOPY : IMPRIMANTE EN SLOT 1, MODE DOUBLE GRANDEUR. PRINT CHR$ (27) + CHR$ (114);: PRINT CHR (31) + "1";: PRINT CHR$ (27) + CHR$ (102);: REM DEROULEMENT INVERSE + SAUT DE UNE LIGNE + RETOUR AU DEROULEMENT NORMAL CALL SWAP POKE 6,1: POKE 7,7: CALL 36864 PRINT : PRINT D$"PREO” TEXT : END (suite de l'article page 28) TREMPLIN MICRO 27 CREATABHGR 10 REM PROGRAMME DE CREATION DES TABLES DES ADRESSES HAUTE RESOLUTION 11 REM UTILISEES PAR LE PROGRAMME LOUPE. 15 FOR! = @ TO 84: READ X: POKE 768 + 1X: NEXT 20 Z = 35880 30 POKE 236,32 40 FORI=010191 50 CALL 768, 60 POKE Z + |, PEEK (6): REM OCTETS BAS 62 POKE Z + 192 + |, PEEK (7): REM OCTETS HAUTS PAGE 1 64 POKE Z + 384 + I, PEEK (7) + 32: REM OCTETS HAUTS PAGE 2 66 POKE Z + 576 + I, PEEK (7) + 64: REM OCTETS HAUTS PAGE 3 70. ~NEXT 2000 DATA 32, 245,230,32,11,3,133,6,132,7, 96,138,74,74,74,168,185,34,3,72,138, 41,7,10,10,24 DATA = 121,58,3,101,230,168,104,96,0, 128,0,128,0,128,0,128,40,168,40,168, 40,168,40,168 DATA 80,208,80,208,80,208,80,208,0, G,1,1,2,2,3,3,0,0,1,1,2,2,3,3,0,0,1,1,2, 2,3,3,0,0,0,0 . 2010 2026 LOUPE 1 # 14 X1 2 = * LOUPE 15 X2 3 * 16 Yi 4 * (C0) 1986 R.Jost 17 ¥2 5 * 18 AIL 6 * 19 A1H 7 * 20 A2L 8 21 EQU 306 21 A2H 9 22 EQU $07 22 ABL 10 PAGE EQU $09 23 A3H 11 DEPART EQU 318 24 A4L 12 ARRIVEE EQU 1A 25 AGH 13 ARRIVEE2 EQU $1iC 26 * 27 TABIL EQU $8C28 28 TABIH EQU $8CE8 29 TAB2H EQu ; octets bas des adr. des lignes j; octets hauts , page 1 $8DA8 3 octets hauts , page 2 j 30 TAB3H EQU #8E68 ; octets hauts , page 3 31 * 32 KBD Eau C000 3 teste le clavier 33 KBDSTRB EQU C010 3 STROBE 34 TXTCLR EQU C050 3 sélectionne mode graphique 35 MIXCLR EQU C052 3 plein écran ASSEMBLE AVEC PROCODE a partir d'EDASM EQU $EB EQU EC EQU ED EQU EE EQU $3C EQU 3D EQU $3E EQU $3F EQU $40 Avec EDASM EQU $41 de Apple, EQU 342 remplacez EQU 343 l'instruction DA de la ligne 323 par DW. GUY-HACHETTE ee 8A00;: 8A02: 8A05: 8A07: BA09: BANC: BAOE: 8A11: 8A13: BAIS: BAB: SAIA: 8A26: 8A2A: 8A2C: 8A2F: BA31: 8A33: BA36: 8A38: BA3A: 8A3D: 8A41: 8A44: BA46: 8A48: 8A4B: 8A4D: BASF: 8AS2: 8A54: 8AS6: 8AS9: BASA: A2 BD 85 85 BD 85 BD 85 A2 8D 85 85 4 60 10 2c cy dO 4c ce bo 20 Ce 8 20 =o bo ce DO 20 cy bo 20 18 90 00 28 8C 3c 40 As 8D 3D 68 BE 41 BF 28 eC [ SAIC: BD as 8D WME: OS of 8A21: BD 68 8E 8A24: 85 43 8A27: AD 00 CO FB 10 CO 03 D2 07 03 8B WHS LOWSCR MISCR HIRES NEWSTT * * * HAUT BAS GROS ECH PAGE1 CONT EQu EQu EQu EQu ORG LDX LDA STA STA $0054 $coss $c0S7 $D7D2 $8A00 £0 TABIL,X AIL A3L TAB2H ,X AlH TABSH,X 3H £191 TABIL yX A2L AaL TAB2H ,X amt A2H TABSH ,X AgH KBD TEST KBDSTRB £$9B HAUT NEWSTT £895 BAS SCROLLUP £388 WY SCROLLDOWN £$CC ECH LOUPE £3D3 PAGE1 SWAP £$8D CONT HGR TEST 5 i 3 page 1 page 2 haute résolution retour au programme appelant joctet bas des adresses HGR de la 1é@re ligne page 2 et de la lére ligne page 3 octet haut de |’adresse de la derniére ligne page 2 et de la derniére ligne page 3 lit le clavier <ESC> interrompt le scrolling retour au pro. BASIC appelant Fléche droite Fléche gauche Loupe S)wap RETURN retour obligé au début. (suite page 30) TREMPLIN MICRO 29 BASC: SASF: BA62: 8A65: 8AS8: BAST: BASC: BASF: 8A72: 8A75: 8A77: BA79: BA7B: 8A7D: BA7F: 8AB1: 8A83: 8A85: 8A87: 8A89: BASB: 8A8D: BAI0: 8A92: BAIS: 8A97: BAIP: BA9C: BASE: 8AAI: BAA2: BAAS: BAAS: 8AA7: BAAI: BAAC: BABI: 8AB2: BABS: BABS: BABB: BABA: SABC: SABE: 8ABF: BACI: 2c 2c 2c 2c 60 2c 2c 2c 2c A2 86 86 86 a2 86 86 A2 86 A2 86 AS BD 85 BD 85 AS BD 85 BD 18 65 —8 86 BD 85 : BD 18 65 85 Aa B1 a1 a1 ce c4 bo 50 S2 54 57 So 52 > 00 ED 06 co 07 EE 20 09 28 EC ED 28 18 19 06 28 1A E8 co co co 8c 8c 8C 8c 8c 8c LOU PE (PROGRAMME SOURCE : suite) 90 97 * 98 oo 100 LOUPE 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 LOUPE1 LOUPE2 BIT BIT BIT BIT RTS * grossit | BIT BIT BIT BIT LDX STX STX STX LDX STX STX LDX STX LDX STX LDX LDA STA LDA STA LDX LDA STA LDA cLc ADC STA INX STX LDA STA LDA cLe ADC STA LDY LDA STA STA INY cPY BNE * affiche la page 1 sans 1 TXTCLR MIXCLR LOWSCR HIRES image page 1 TXTCLR ; MIXCLR ; MISCR : HIRES ; £00 ; DEPART+1 21 TABIL,X ARRIVEE TABIH,X PAGE ARRIVEE+1 21 TABIL,X =; ARRIVEE2 TAB1H,X PAGE ARRIVEE2+1 x! (DEPART) ,Y (ARRIVEE) ,Y (ARRIVEE2) , X2 LOUPE2 ee effacer sélectionne le mode pleine page numéro 1 et haute résolution stockage entre $4000 sélectionne le mode plein écran page 2 haute résolution initialisation 192 lignes } page 1 d’abord 40 colonnes premiére ligne graphique et $7FFF) graphique recherche son adresse premiére ligne de l’ image dilatée 3} eM page 2 la ligne est dédoublée 1ére colonne on balaye la ligne octet suivant ligne compléte ? non , on boucle GUY-HACHETTE 9AC3: Ed 06 142 INC 21 j Oui , on passe 8ACS: E6 ED 143 INC Y1 } & la ligne suivante 8AC7: AS ED 144 LDA Y1 8AC9: CP 60 145 CMP £%60 j moitié page 1 faite ? 8ACB: DO 08 146 BNE LOUPE3 } mon BACD: AS 09 147 LDA PAGE 2 ‘oul » 1 B8ACF: 18 148 cLe j faut maintenant BADO: 6° 20 149 ADC £%20 3 transférer dans la 8AD2: 85 09 150 STA PAGE } page 3 ($6000-7FFF). 8AD4: A? 00 151 LDA £00 j et on repart a BAD6: 95 06 152 STA 21 5 la premiére ligne BAD: AS ED 153 LOUPE3 LDA Yi SADA: C5 EE 154 CMP 2 j toutes les lignes faites? BADC: DO AD 155 BNE LOUPE1 } mon BADE: 460 156 RTS 3 terming 157 * 158 * échange les pages 2 et 3 159 * A2 00 160 SWAP LOX £300 j initialise 86 EB 161 STX X1 ; 1@re colonne : 86 ED 162 STX Yt j 1@re ligne A2 28 163 LDX £%28 3 40= 86 EC 164 STX X2 j derniére colonnet! A2 CO 165 LDX £$C0 3 192 lignes= 86 EE 166 STX Y2 j derniére ligne+i A2 40 167 LDX £%40 } page 2 86 09 168 STX PAGE : Ad ED 169 SWAPI LOX Y1 } on commence, ligne 0 BD 28 8C 170 LDA TABIL,X j cherche 1|’adresse 85 18 171 STA DEPART 85 1A 172 STA ARRIVEE BD A8 8D 173 LDA TAB2H,X 85 19 174 STA DEPART+1 ; octet de départ BD 68 BE 175 LDA TAB3H,X 85 1B 176 STA ARRIVEE+1 ; adresse d’arrivée Ad EB 177 LbY x1 ° j premiére colonne Bi 18 178 SWAP2 LDA <DEPART),Y ; on balaye la ligne 48 179 PHA } Sauve dans la pile B1 1A 180 LDA (ARRIVEE),Y ; charge de la page arrivée 91 18 181 STA <DEPART),Y ; stocke dans la page départ 68 182 PLA } récupére de la pile 91 «1A 183 STA ‘(ARRIVEE),Y ; stocke dans la page arrivée cs 184 INY j on continue c4 Ec 185 CPY X2 j Jusqu’a la derniére DO Fi 186 BNE SWAP2 j colonne, Eé6 ED 187 INC Y1 j ligne suivante ? AS ED 188 LDA Y1 cS EE 189 CMP Y2 ; DO D4 190 BNE SWAP1 j Oui , On n’a pas terminé 60 191 RTS 3 c’est fini. 192 # 193 * 194 * déroulement (scrolling) vers le haut 195 * (suite page 32) TREMPLIN MICRO s r —— LOU PE (PROGRAMME SOURCE : suite) 196 # on stocke la lére ligne de la page 2 dans le tampon 8BiE: AO 00 197 SCROLLUP LDY £0 } On commence par la colonne 0 8820: B1 3c 198 LIGNE1 LDA <AIL),Y 3 charge un octet de la ligne 8B22: 99 FE 8B 199 STA TAMPON,Y ; et sauve dans le tampon 8B25: C8 200 INY ; balaye la ligne 8B26: CO 28 201 CPY £40 } Jusqu’au bout 8B28: D0 Fé 202 BNE LIGNE! 203 j 8B2A: A2 00 204 LDX £0 3 ligne 0 8B2C: BD 28 8C 205 ECRANI LDA TABIL,X j on copie la ligne n 8B2F: 85 1A 206 STA ARRIVEE 8B31: BD AB BD 207 LDA TAB2H,X 8B34: 85 18 208 STA ARRIVEE+1 8B36: ES 209 INX 8B37: BD 28 8C 210 LDA TABIL,X 3 dans Ta ligne n-1 8B9A: 85 18 211 STA DEPART 8B3C: BD AB BD 212 LDA TAB2H,X 8B3F: 35 19 213 STA DEPART+1 8B41: AD 00 214 LDY £0 8843: B1 18 215 LIGNES! LDA (DEPART) ,Y 8B45: 91 1A 216 STA (ARRIVEE) ,Y 8B47: C8 217 INY 8B48: CO 28 218 CPY £40 8B4A: DO F7 219 BNE LIGNES1 8B4C: E0 BF 220 CPX £191 jy et ceci pour les 192 8B4E: DO DC 221 BNE ECRANI 3 lignes de la page 2 222 ; 8B50: 40 00 223 LDY £0 3 la lére ligne de la 8852: B! 40 224 DLIGNE! LDA (A3L),Y ; page 3 est copiée 8B54: 91 3E 225 STA ‘A2L),¥ 3; dans la derniére ligne 8B56: CB 226 INY 3; de la page 2. 8B57: CO 28 227 cPY £40 8B59: DO F7 228 BNE DLIGNE1 229 H 8B5B: A2 00 230 LOX £0 3} on travaille maintenant 8B5D: BD 28 8C 231 ECRAN2 LDA TABIL,X ; sur la page 3 8B60: 85 14 232 STA ARRIVEE 8B62: BD 468 38E 233 LDA TAB3H,X 8Bé6S: 85 18 234 STA ARRIVEE+1 8B67: ES 235 INX 8B68: BD 28 8C 236 LDA TABIL,X 8B6B: 85 18 237 STA DEPART 8B6D: BD 468 BE 238 LDA TAB3H,X 8B70: 85 19 239 STA DEPART+1 8872: AD 00 240 LDY £0 8B74: Bi 18 241 LIGNES2 LDA <‘DEPART),Y 8B76: 71 14 242 STA (ARRIVEE) ,¥ 8B78: Co 243 INY 8B79: CO 28 244 cPY £40 8B7B: DO F7 245 BNE LIGNES2 8B7D: EO BF 246 cPX £191 8B7F: DO DC 247 BNE ECRAN2 248 32 GUY-HACHETTE 8B81: Al 00 249 LDY £0 j la ligne stockée dans 8883: 89 FE S88 250 DLIGNE2 LDA TAMPON,Y 3 le tampon est copiée 8B86: 9) 42 251 STA ‘A4L),¥ 3 dans la derniére ligne 8B88: C5 252 INY ; de la page 3. 8B89: CO 28 253 CcPY £40 8B8B: D0 Fé 254 BNE DLIGNE2 8B8D: «0 255 RTS 256 * 25? * Déroulement vers le bas 258 «* oo 259 SCROLLDOWN LDY £0 i la derniére ligne de 3E 260 LIGNE191 LDA ‘A2L),Y j la page 2 est copié¢e FE 8B 261 STA TAMPON,Y ; dans le tampon. 262 INY 28 263 cPY £40 Fé 264 BNE LIGNE191 265 H BF 266 LOX £191 28 8C 267 ECRANID LDA TABIL,X j la ligne n de la page 2 14 268 STA ARRIVEE j est copiée dans la ligne AB aD 269 LDA TAB2H,x pontt. 1B 270 STA ARRIVEE+1 271 DEX 28 8C 272 LDA TABIL,X 18 273 STA DEPART SBAC: BD AS 8D 274 LDA TAB2H,X 8BAF: 85 19 275 STA DEPART+1 8BB1: 40 00 276 LDY £0 8BB3: B1 18 277 LIGNES1D LDA DEPART) ,Y SBBS: 91 1A 278 STA (ARRIVEE) ,Y 8BB7: Ca 279 INY 8BB8: CO 28 280 cPY £40 8BBA: D0 F7 281 BNE LIGNES1D 8BBC: £0 00 282 cPxX £0 8BBE: D0 DC 283 BNE ECRANID 284 ; 00 285 LDY £0 j la derniére ligne de 42 286 DLIGNE1D LDA ‘A4L),Y j la page 3 est copiée 3c 287 STA (AIL),Y j dans la 1é@re ligne 288 INY j de la page 2. 28 289 cPY £40 F7 290 BNE DLIGNE1D 291 ; BF 292 LOX £191 3 la ligne n de la page 3 28 8C 293 ECRAN2D LDA TABIL,X 3 est copiée dans 1a 294 STA ARRIVEE ; la ligne n+1. 68 BE 295 LDA TAB3H,X 1B 296 STA ARRIVEE+1 297 DEX 28 8C 298 LDA TABIL,X 18 299 STA DEPART 68 8E 300 LDA TAB3H,X 19 301 STA DEPART+! 00 302 LOY £0 18 303 LIGNES2D LDA (DEPART) ,Y (suite page 34) ] TREMPLIN MICRO 33 8BES: 9! 8BE8: CS 8BE9: CO 8BEB: DO 8BED: £0 8BEF: D0 1A 28 F7 00 oc AD Bg a cs co bo 00 FE 40 8BF1: 8BF3: 8BF6: 8BF8: 8BF9: 8BFB: 8B 28 Fé 8BFD: 8BFE: 00 00 00 03 “AIH. ......8003D A3H. ++... $0041 -ARRIVEE...3001A -DEPART....$0018 -DLIGNE20. .$8BF3 -ECRAN2....%8B5D -LIGNE1....$8B20 -LIGNES2...%8B74 -LOUPE2....$8ABS -MIXCLR....3C052 -SCROLLDOW.$8B8E LOU PE (PROGRAMME SOURCE : suite) 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 STA INY CPY BNE CPX BNE £40 £0 LDY DLIGNE2D LDA STA INY CPY BNE £0 £40 RTS tampon TAMPON DA * * # c’est ici Table des symboles ordre alphabétique AIL. .06..8003C “A3L.......$0040 ~ARRIVEE2. .$001C -DLIGNE!...$8B52 ~ECH.......$8A4B -ECRAN2D...%8BCD -HIRES..... $C057 -LIGNE191..$8B90 -LIGNES2D. .$8BE4 -LOUPE3....$8AD8 -NEWSTT....3D7D2 ~-SCROLLUP. .S8B1E -TABIH. -38CE8 -TAMPON -$8BFE “X2.0. +300EC 22.0 6004 4 80007 TAMPON ,Y (A3L) ,Y que commencent (ARRIVEE) ,Y LIGNES2D ECRAN2D DLIGNE2D $00,303 “A2H. 4.6... 8003F -ASH. -30043 ~BAS. +38A2D -DLIGNE1D. .$8BC2 -ECRAN1....%8B2C -GROS......38A44 -KBD.......$C000 -LIGNES1 le tampon est recopié dans la lére ligne de la page 3. les tables HGR. AZL. eee. $003E -CONT.... -DLIGNE2. -ECRANID. HAUT... + +$8A36 -KBDSTRB...$C010 -LIGNESID. .$8BB3 -LOUPE1....$8A8B -MISCR.. -PAGE1 -SWAP1 -TAB2H.. -TXTCLR. “YQ. cee ee SOOEE 34 GUY-HACHETTE — Pour celles et ceux qui n'ont pas d'assembleur, mais possédent la disquette SIGNATURE d'Yvan KOENIG. Attention ! n‘oubliez pas de compléter LOUPE.A avec la table générée par Ia routine Basic CREATABHGR (page 28) ! /TM17/LOUPE/LOUPE .A ,AS8A00 ,L$0202 BA00: A2 BA10: BE 8A20: 3F 3A30: 9B 8A40: 03 8AS0: DF 8A60: 52 8A70; 55 8A80: 07 03 BD 28 8C 3c 28 60 cg bo 20 57 ao 09 19: E8 Aq ED 85 28 85 8c AD 95 a3 sc co 86 A2 40 es BD 3E co 03 69 1 Lorsque vous utiliserez la routine, 4 partir du STARTUP de notre disquette, choisissez l'option IM.LOUPE (c'est l'image ci-contre) et essayez les commandes indiquées par ce tableau ! CunaeaesrssesonreconD TREMPLIN MICRO TION NESTOR Routine uniquement destinée a vous montrer comment il est possible de mul- tiplier A par B... pour retrouver le résul- tat dans C, étant entendu que A B C peu- vent étre du type A(@) A(1) A(2) aussi bien que A(4) A(5) A(6)... 300: 20 303: AS 305: 48 306: AS 308: 48 309: 20 30C: 85 30E: 84 310: 68 311: 85 313: 68 314: 85 316: 20 319: 20 31C: A4 SIE: AS 320: 18 321: 69 323: 90 325: CB 326: 20 329: 20 $2C: Ad 32E: A5 330: 18 331: 69 333: AA 334: 90 336: C8 337: 26 33A: 4C —3 DF 67 DD 63 EB F9 EA 82 £9 2D €B 2— ED JSR LDA PHA LDA PHA ISR STA STY PLA STA PLA STA ISR ISR LDY LDA CLC ADC BCC INY ISR ISR LDY LDA CLC ADC TAX BCC INY JSR SMP $DEBE $B8 $B9 $DFE3 $06 $07 $89 $B8 $DD67 SEB63 $07 $06 £$05 $0326 SEAF9 $E982 $07 $06 £S0A $0337 $€B2D $ED2E Teste la présence de la virgule. Position de TXTPTR (adresse du dernier caractére obtenu par CHRGET) sauvegardée sur la pile. PTRGET recherche la variable (ici A(@)). Son adresse est en A et Y. On la sauve en $6.7. Restauration de CHRGET. FRNUM évalue la formule pointée par TXTPTR et la met dans FAC. FAC dans ARG. Partie haute de l’adresse de A(@) dans Y. Partie basse + 5 dans A pour adresse de A(1). S'il y a retenue, Ia partie haute (Y) est incrémentée. MOVFM place le nombre pointé par Y,A dans FAC. FMULTT multiplie FAC par ARG. Adresse haute dans Y. Adresse basse majorée de $A (deux fois 5) dans X via A, pour adresse de A(2). Si retenue, on incrémente la partie haute. MOVMF transfére FAC vers le groupe de 5 octets pointé par X et Y. Affiche la valeur de FAC (résultat de la multiplication). . Savon sees en sesensessesonssnamEanaceeessaasseaDERsSsZOSETAAAOEsEAssOAEeeAEEE LEANNA ENS ee ee eAAE Esa oTET EET GUY-HACHETTE INITIATION BLOLIB.A Avec ProDOS, il suffit d’afficher le catalogue de la disquette pour connaitre le monde de BLOCKS FREE... mais il peut se révéler intéressant, dans le cadre d'un programme, avant d’enregistrer des données, d'obtenir ce méme renseignement sans pour autant passer par le catalogue... d’ou cette routine. 300 : 303 : 304 : 306 : 308 : 30A: 30C: 30E : 20 00 BF 80 03 Ag 85 85 AG B9 A2 OA 90 £6 DG E6 CA 10 88 bo Ag 20 20 A6é AS 26 60 03 60 00 06 32 00 06 07 ce FF 07 06 06 62 07 F4 EC 16 5B 42 06 07 24 40 oo TREMPLIN MICRO FB FC ED JSR LDA STA STA LDY LDA LDX ASL BCC INC BNE INC DEX BPL DEY BNE LDA JSR JSR LDX LDA JSR RTS $BFOO £$00 $06 $07 £$C8 S3FFF,Y £$07 $031C $06 $031C $07 $0313 $030E £$16 $FB5B $FC42 $06 $07 $ED24 7 | NESTOR Appel classique du MLI. Commande READ BLOCK. Adresse de la liste des paramétres. Nous allons utiliser deux adresses de la page @ pour y écrire le nombre de blocs disponibles. Y prét. Lecture d'un octet. On passe les 8 bits en revue. Quand un bit est 40, le bloc est occupé. Quand il est 41, il est libre. ASL pousse chaque bit dans la retenue et il suffit d'incrémenter quand celle-ci est 41. Jusqu'a Y = 1 inclus. Curseur au début de la ligne choisie. CLREOP efface jusqu’au bas de I’écran. LINPTR affiche les deux octets de X et A (mode décimal). Retour. Table des paramétres, pour ProDOS... qui en attend 3 : 1. DRIVE et SLOT $60 pour 6, $50 pour 5, etc. (voir pour DRIVE Ia routine BLOLIB.V page suivante). 2. Adresse du Buffer : ici $4000 3. Numéro du Bloc @ lire : ici 6 (BIP.MAP). BSAVE BLOLIB.A,A$300,L$38 37 INI TION NESTOR Appel par CALL 768, S, D, X... o S est le numéro du SLOT, D celui du DRIVE et X la variable qui, au 6 retour, contiendra le nombre de BLOCKS FREE... eee 300: 20 F5 £6 JSR $E6FS | ~GETBYTC transmet (dans X) le numéro du SLOT. 303: BA TXA _| On le passe dans A. 304: GA ASL ae ; Ay a Od 6 devient $60, 5... $50, etc. 307: GA ASL sail 308: «48 PHA SLOT sur Ia pile. oe i Bi FS £6 Sk SESES _| Méme opération pour le numéro de DRIVE. 30D: 4A LSR 1 ov G tombe dans Ia retenue. 30E: BO G4 BCS $0314 Si c'est un, rien @ faire. 310: 68 PLA 7 311: 69 80 ORA £$80 Si c'est @, il faut forcer le bit @ de la valeur SLOT 4 1. 313: 48 PHA a 314: 68 PLA ~] $60 devient $EG (0110 0000... 1110 6000). 315: 8D 4C @3 STA $034C _1 Installation dans la liste des paramétres. 318: 20 GO BF JSR $BFGG Appel du MLI. 31B: 80 $80 : READ Block. 31D: 4B G3 Adresse des paramétres. 3IE: AY GO LDA £$00 7 320: 85 G6 STA $06 Préparation. 322: 85 @7 STA $07 = 324: AO C8 LDY £$C8 Y prét. 326: B69 FF 3F LDA $3FFF,Y | 329: A2 @7 LDX £$07 328: GA ASL 32C: 9 06 BCC $0334 32E: £6 G6 INC $06 339: DO G2 BNE $0334 Voir BLOLIB.A 332: £6 @7 INC $07 334: CA DEX 335: 10 F4 BPL $032B 337: 88 DEY 338: DO EC BNE $0326 _| ae : re Me Dy a GIVAYF rend flottant I’entier relatif dans A,Y (nbre de 33E: 20 F2 £2 JSR $E2F2 | BLOCS). Résultat dans FAC. 341: 26 BE DE JSR $DEBE Teste la derniére virgule. 344: 20 £3 DF JSR $DFE3 Recherche la variable (son adresse est dans A,Y). 347: AA TAX A passe dans X. 348: 4C 2D EB JMP $EB2D MOVMF transfére FAC dans la variable pointée par X et Y. 34B.: G3 7 34C: 60 Liste des paramétres. 34D: O09 40 (Voir BLOLIB.A page 37). 34F: G6 OO 4 BSAVE BLOLIB.V,A$300,L$51 SOSAOOS SEAT TOESLEE EEE OS ESSE TOES OSSSESSESISSSASSSOOVSHTHSAS ATS TASSSSSS SESS ESOS ONSET RIALS SS SOLOS SSeS ss GUY-HACHETTE L AGE POUR LE GS IL ARRIVE... AVEC LES OUTILS AURAIS aimé vous parler lon- guement du Basic qui, je l'espére fera bientét le bon- heur des possesseurs d'APPLE //GS. Hélas | malgré une bonne vingtaine de coups de téléphone dans toutes les directions, malgré la bonne volonté manifestée par certains de mes interlocuteurs (merci tout de méme, Xavier Schott), je n‘ai pas réussi 4 dénicher la documentation (en anglais) qui accompagne norma- lement la disquette. Dommage ! U'événement justifiait, 4 mes yeux du moins, un petit retard dans la mise en vente de TREMPLIN MICRO. A une époque ot la Communication passe par une bonne Information des Médias, il ne semble pos que la Direction d'Apple France tiene réel- lement 4 utiliser cet excellent véhi- cule de l'information qu’est la Presse technique et spécialisée. Hélas | d'autres responsables fran- gais partagent ce point de vue. On se contente de réunir les représentants de la grande presse, a l'occasion de cocktails, petits déjeuners et autres manifestations bien parisiennes : petits fours, boissons fraiches et (ou) alcoolisées... speach de |'attachée de presse (si possible jeune et jolie) et discours du responsable des festi- vités. Tout cela aura peut-étre I'hon- neur de la télévision, justifiera quel- ques lignes dans deux ou trois quoti- diens nationaux... Bref, un truc cer- tes bien ficelé, dont je ne nie pas us sumesanss: TREMPLIN MICRO Guy-HACHETTE l'utilité, mais dont je conteste la valeur sur le plan "information du client potentiel”... notre lecteur. J'aurai sans doute la doc du GS Basic dans quelques jours, en la payant bien entendu, mais trop tard pour vous en parler dans ce numéro. Premier constat GS Basic fonctionne sous ProDOS 16, le futur standard de I'Apple //GS. Pour I'instant, sa durée de charge- ment reste exagérée, mais la pro- chaine nouvelle version de ProDOS 16 devrait améliorer cela. Uéditeur parait un peu lent, mais ce | n'est semble-t-il qu'une illusion. En réalité, il est difficile de perdre un caractére, méme en accélérant la frappe. Comme cela se passe avec APW, il y a mémorisation des trois derniéres lignes, qu'il est facile de rappeler en appuyant sur la fléche correspondant @ cette option. On peut alors insérer et supprimer a volonté dans la ligne, ce qui est évi- demment pratique. Nous n’envie- rons plus IBM sur ce point ! Visiblement, si ce nouveau Basic ressemble 4 notre bon vieil Apple- soft, il n’en a heureusement pas conservé les insuffisances les plus

Showing the first 100000 of 208983 characters.

mp.ls